; ModuleID = 'concrete_fft.5a520b89991ad9c4-cgu.0' source_filename = "concrete_fft.5a520b89991ad9c4-cgu.0" 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" %"core::sync::atomic::AtomicU8" = type { i8 } %"core::fmt::Formatter<'_>" = type { %"core::option::Option", %"core::option::Option", { ptr, ptr }, i32, i32, i8, [7 x i8] } %"core::option::Option" = type { i64, [1 x i64] } %"pulp::x86::V4" = type { %"pulp::core_arch::x86::Sse", %"pulp::core_arch::x86::Sse2", %"pulp::core_arch::x86::Fxsr", %"pulp::core_arch::x86::Sse3", %"pulp::core_arch::x86::Ssse3", %"pulp::core_arch::x86::Sse4_1", %"pulp::core_arch::x86::Sse4_2", %"pulp::core_arch::x86::Popcnt", %"pulp::core_arch::x86::Avx", %"pulp::core_arch::x86::Avx2", %"pulp::core_arch::x86::Bmi1", %"pulp::core_arch::x86::Bmi2", %"pulp::core_arch::x86::Fma", %"pulp::core_arch::x86::Lzcnt", %"pulp::core_arch::x86::Avx512f", %"pulp::core_arch::x86::Avx512bw", %"pulp::core_arch::x86::Avx512cd", %"pulp::core_arch::x86::Avx512dq", %"pulp::core_arch::x86::Avx512vl" } %"pulp::core_arch::x86::Sse" = type { {} } %"pulp::core_arch::x86::Sse2" = type { {} } %"pulp::core_arch::x86::Fxsr" = type { {} } %"pulp::core_arch::x86::Sse3" = type { {} } %"pulp::core_arch::x86::Ssse3" = type { {} } %"pulp::core_arch::x86::Sse4_1" = type { {} } %"pulp::core_arch::x86::Sse4_2" = type { {} } %"pulp::core_arch::x86::Popcnt" = type { {} } %"pulp::core_arch::x86::Avx" = type { {} } %"pulp::core_arch::x86::Avx2" = type { {} } %"pulp::core_arch::x86::Bmi1" = type { {} } %"pulp::core_arch::x86::Bmi2" = type { {} } %"pulp::core_arch::x86::Fma" = type { {} } %"pulp::core_arch::x86::Lzcnt" = type { {} } %"pulp::core_arch::x86::Avx512f" = type { {} } %"pulp::core_arch::x86::Avx512bw" = type { {} } %"pulp::core_arch::x86::Avx512cd" = type { {} } %"pulp::core_arch::x86::Avx512dq" = type { {} } %"pulp::core_arch::x86::Avx512vl" = type { {} } %"{closure@src/unordered.rs:306:29: 306:31}.840" = type { ptr, { ptr, i64 }, { ptr, i64 } } %"num_complex::Complex" = type { double, double } %"fft_simd::c64x2" = type { %"num_complex::Complex", %"num_complex::Complex" } %"{closure@src/unordered.rs:306:29: 306:31}.838" = type { ptr, { ptr, i64 }, { ptr, i64 } } %"{closure@src/unordered.rs:306:29: 306:31}.834" = type { ptr, { ptr, i64 }, { ptr, i64 } } %"{closure@src/unordered.rs:306:29: 306:31}.836" = type { ptr, { ptr, i64 }, { ptr, i64 } } %"{closure@src/unordered.rs:306:29: 306:31}.842" = type { ptr, { ptr, i64 }, { ptr, i64 } } %"{closure@src/unordered.rs:306:29: 306:31}" = type { ptr, { ptr, i64 }, { ptr, i64 } } %"core::fmt::rt::Argument<'_>" = type { ptr, ptr } %"core::fmt::Arguments<'_>" = type { { ptr, i64 }, { ptr, i64 }, %"core::option::Option<&[core::fmt::rt::Placeholder]>" } %"core::option::Option<&[core::fmt::rt::Placeholder]>" = type { ptr, [1 x i64] } %"core::option::Option>" = type { ptr, [5 x i64] } %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>>>>>>, fft_simd::c64x4)>" = type {} %"fft_simd::c64x4" = type { %"num_complex::Complex", %"num_complex::Complex", %"num_complex::Complex", %"num_complex::Complex" } %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>>>>>>, fft_simd::c64x4)>" = type {} %"unordered::Plan" = type { %"aligned_vec::ABox<[num_complex::Complex], aligned_vec::ConstAlign<128>>", %"aligned_vec::ABox<[usize], aligned_vec::ConstAlign<128>>", %"aligned_vec::ABox<[num_complex::Complex], aligned_vec::ConstAlign<128>>", %"aligned_vec::ABox<[num_complex::Complex], aligned_vec::ConstAlign<128>>", ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, i64, i8, [7 x i8] } %"aligned_vec::ABox<[usize], aligned_vec::ConstAlign<128>>" = type { %"core::ptr::non_null::NonNull<[usize]>", %"aligned_vec::ConstAlign<128>", %"core::marker::PhantomData<[usize]>" } %"core::ptr::non_null::NonNull<[usize]>" = type { { ptr, i64 } } %"aligned_vec::ConstAlign<128>" = type {} %"core::marker::PhantomData<[usize]>" = type {} %"aligned_vec::ABox<[num_complex::Complex], aligned_vec::ConstAlign<128>>" = type { %"core::ptr::non_null::NonNull<[num_complex::Complex]>", %"aligned_vec::ConstAlign<128>", %"core::marker::PhantomData<[num_complex::Complex]>" } %"core::ptr::non_null::NonNull<[num_complex::Complex]>" = type { { ptr, i64 } } %"core::marker::PhantomData<[num_complex::Complex]>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit8::Dit8>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit16::Dit16>>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dit4::Dit4>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif8::Dif8>>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>>>>>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit4::Dit4>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>>>>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif16::Dif16, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif4::Dif4>, fft_simd::c64x4)>" } %"core::marker::PhantomData<(dif4::Dif4>, fft_simd::c64x4)>" = type {} %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit16::Dit16>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif8::Dif8>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dif16::Dif16>>>>, fft_simd::c64x4)>" } %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, %"pulp::x86::V4", %"core::marker::PhantomData<(dit8::Dit8>>>, fft_simd::c64x4)>" } %"std::time::Instant" = type { %"std::sys::pal::unix::time::Instant" } %"std::sys::pal::unix::time::Instant" = type { %"std::sys::pal::unix::time::Timespec" } %"std::sys::pal::unix::time::Timespec" = type { i64, i32, [1 x i32] } %"core::time::Duration" = type { i64, i32, [1 x i32] } %"core::fmt::builders::DebugStruct<'_, '_>" = type { ptr, i8, i8, [6 x i8] } %"ordered::Plan" = type { ptr, ptr, %"aligned_vec::ABox<[num_complex::Complex], aligned_vec::ConstAlign<128>>", %"aligned_vec::ABox<[num_complex::Complex], aligned_vec::ConstAlign<128>>", i8, [7 x i8] } %FftImpl = type { [10 x ptr], [10 x ptr] } %"dyn_stack::mem::GlobalPodBuffer" = type { %"dyn_stack::mem::GlobalMemBuffer" } %"dyn_stack::mem::GlobalMemBuffer" = type { ptr, i64, i64 } %"ordered::Method" = type { [2 x i32], i32, [1 x i32] } %"core::option::Option" = type { [2 x i32], i32, [1 x i32] } %"unordered::Method::UserProvided" = type { [1 x i8], i8, [6 x i8], i64 } %"unordered::Method::Measure" = type { [1 x i64], %"core::time::Duration" } %"::vectorize::Impl>" = type { %"unordered::Plan::fwd_monomial::Impl<'_>", %"pulp::x86::V4" } %"unordered::Plan::fwd_monomial::Impl<'_>" = type { ptr, { ptr, i64 }, i64 } @str.0 = internal unnamed_addr constant [25 x i8] c"attempt to divide by zero" @alloc_513570631223a12912d85da2bec3b15a = private unnamed_addr constant <{}> zeroinitializer, align 8 @alloc_c8f96e127133e2a1439d308cf7152792 = private unnamed_addr constant <{ [72 x i8] }> <{ [72 x i8] c"/rustc/a84bb95a1f65bfe25038f188763a18e096a86ab2/library/core/src/time.rs" }>, align 1 @alloc_4fccf952c9892dc212f30f84225a4d2a = private unnamed_addr constant <{ [60 x i8] }> <{ [60 x i8] c"can not convert float seconds to Duration: value is negative" }>, align 1 @alloc_6690d2678f9b4fe23e6fbd8fc55c8f17 = private unnamed_addr constant <{ [73 x i8] }> <{ [73 x i8] c"can not convert float seconds to Duration: value is either too big or NaN" }>, align 1 @alloc_a77dd710febbd98d6ad81a0d962ea162 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c8f96e127133e2a1439d308cf7152792, [16 x i8] c"H\00\00\00\00\00\00\00|\03\00\00\17\00\00\00" }>, align 8 @alloc_374c9df73b8540d3e9b0cfbfed1be08c = private unnamed_addr constant <{ [25 x i8] }> <{ [25 x i8] c"overflow in Duration::new" }>, align 1 @alloc_b7c1c22a954085a45dacf7c670d25258 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_374c9df73b8540d3e9b0cfbfed1be08c, [8 x i8] c"\19\00\00\00\00\00\00\00" }>, align 8 @alloc_949a62a310af3b81c0d50e48c5b3f1ee = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c8f96e127133e2a1439d308cf7152792, [16 x i8] c"H\00\00\00\00\00\00\00\D6\00\00\00\19\00\00\00" }>, align 8 @alloc_a6e8913658d98d0dbd0444b57ddfd811 = private unnamed_addr constant <{ [27 x i8] }> <{ [27 x i8] c"chunk size must be non-zero" }>, align 1 @alloc_1f6e2bb373e6c20cda1457c91e8d33ed = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_a6e8913658d98d0dbd0444b57ddfd811, [8 x i8] c"\1B\00\00\00\00\00\00\00" }>, align 8 @vtable.2 = private unnamed_addr constant <{ ptr, [16 x i8], ptr }> <{ ptr @"_ZN4core3ptr26drop_in_place$LT$usize$GT$17h654693b979dd704fE", [16 x i8] c"\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h5651f103d0f453bfE" }>, align 8 @alloc_b99730e73100e73a81f4fbfe74b3821d = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_513570631223a12912d85da2bec3b15a, [8 x i8] zeroinitializer }>, align 8 @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E = external local_unnamed_addr global %"core::sync::atomic::AtomicU8" @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE = external local_unnamed_addr global %"core::sync::atomic::AtomicU8" @_ZN4pulp4Arch18__static_available9AVAILABLE17h17923c2266a5df53E = external local_unnamed_addr global %"core::sync::atomic::AtomicU8" @alloc_b0f75d2f000046282f87eeb3267426fe = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c">" }>, align 1 @alloc_cf29c7f9d2677151c3c3b4d187597802 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr @alloc_513570631223a12912d85da2bec3b15a, [8 x i8] zeroinitializer, ptr @alloc_b0f75d2f000046282f87eeb3267426fe, [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8 @alloc_1de3153655534beaefdc3794dac1ab5a = private unnamed_addr constant <{ [97 x i8] }> <{ [97 x i8] c"/home/arthur/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.14.3/src/internal.rs" }>, align 1 @alloc_18bad253193bf95ffbb763d7477c2a5c = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_1de3153655534beaefdc3794dac1ab5a, [16 x i8] c"a\00\00\00\00\00\00\00 \00\00\00\03\00\00\00" }>, align 8 @alloc_49a1e817e911805af64bbc7efb390101 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"\0A" }>, align 1 @alloc_0d3885499b57ed2e56cb9b63952d2ca5 = private unnamed_addr constant <{ [58 x i8] }> <{ [58 x i8] c"\0Abuffer is not large enough to allocate an array of type `" }>, align 1 @alloc_97d986f3e0ba6a2a23479ebdfc91148c = private unnamed_addr constant <{ [87 x i8] }> <{ [87 x i8] c"` of the requested length:\0A - remaining buffer length (after adjusting for alignment): " }>, align 1 @alloc_53412884a6bc00dfddfef1a8e1050d5a = private unnamed_addr constant <{ [29 x i8] }> <{ [29 x i8] c",\0A - requested array length: " }>, align 1 @alloc_91d16892003a5ae3285cccf7b8b371ec = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c" (" }>, align 1 @alloc_50a7cae0262e27e426430f770b0fde0a = private unnamed_addr constant <{ [9 x i8] }> <{ [9 x i8] c" bytes),\0A" }>, align 1 @alloc_eb25b5dc9a883efb3919fa7bd45e7374 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr @alloc_0d3885499b57ed2e56cb9b63952d2ca5, [8 x i8] c":\00\00\00\00\00\00\00", ptr @alloc_97d986f3e0ba6a2a23479ebdfc91148c, [8 x i8] c"W\00\00\00\00\00\00\00", ptr @alloc_53412884a6bc00dfddfef1a8e1050d5a, [8 x i8] c"\1D\00\00\00\00\00\00\00", ptr @alloc_91d16892003a5ae3285cccf7b8b371ec, [8 x i8] c"\02\00\00\00\00\00\00\00", ptr @alloc_50a7cae0262e27e426430f770b0fde0a, [8 x i8] c"\09\00\00\00\00\00\00\00" }>, align 8 @alloc_1f7fc42a9b6b1ec9b5e38597959d4b5e = private unnamed_addr constant <{ [84 x i8] }> <{ [84 x i8] c"\0Abuffer is not large enough to accomodate the requested alignment\0A - buffer length: " }>, align 1 @alloc_40b0f4e28f7342bdf5ca8cbccd493979 = private unnamed_addr constant <{ [25 x i8] }> <{ [25 x i8] c"\0A - requested alignment: " }>, align 1 @alloc_62ef972db32501c3b0d5b243ed40915b = private unnamed_addr constant <{ [31 x i8] }> <{ [31 x i8] c"\0A - byte offset for alignment: " }>, align 1 @alloc_7477c3d7abef718869dfed4e3c236330 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr @alloc_1f7fc42a9b6b1ec9b5e38597959d4b5e, [8 x i8] c"T\00\00\00\00\00\00\00", ptr @alloc_40b0f4e28f7342bdf5ca8cbccd493979, [8 x i8] c"\19\00\00\00\00\00\00\00", ptr @alloc_62ef972db32501c3b0d5b243ed40915b, [8 x i8] c"\1F\00\00\00\00\00\00\00", ptr @alloc_49a1e817e911805af64bbc7efb390101, [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8 @alloc_2320ba13188a3f2e49598825f428fda4 = private unnamed_addr constant <{ [25 x i8] }> <{ [25 x i8] c"num_complex::Complex" }>, align 1 @alloc_a9355e4955bea6abaf95430dcaa9cc02 = private unnamed_addr constant <{ [15 x i8] }> <{ [15 x i8] c"src/fft_simd.rs" }>, align 1 @alloc_ac6499bda0a6edeb36850752072117d5 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a9355e4955bea6abaf95430dcaa9cc02, [16 x i8] c"\0F\00\00\00\00\00\00\00;\01\00\00\0D\00\00\00" }>, align 8 @alloc_9037f2f7beb4e9378318d7782c7cab43 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a9355e4955bea6abaf95430dcaa9cc02, [16 x i8] c"\0F\00\00\00\00\00\00\00<\01\00\00\0D\00\00\00" }>, align 8 @alloc_69e2b79a2a1494ce77b87493ac41f924 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a9355e4955bea6abaf95430dcaa9cc02, [16 x i8] c"\0F\00\00\00\00\00\00\00=\01\00\00\0D\00\00\00" }>, align 8 @alloc_a691f5a32a904158f67ac58a49ef8f4e = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a9355e4955bea6abaf95430dcaa9cc02, [16 x i8] c"\0F\00\00\00\00\00\00\00>\01\00\00\0D\00\00\00" }>, align 8 @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5 = private unnamed_addr constant <{ [10 x i8] }> <{ [10 x i8] c"src/lib.rs" }>, align 1 @alloc_bc19144355b5f6348ca5b0e0efdfd21e = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5, [16 x i8] c"\0A\00\00\00\00\00\00\00\B1\00\00\00$\00\00\00" }>, align 8 @alloc_92ecc2f1f945bef2a4ac149e21489214 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5, [16 x i8] c"\0A\00\00\00\00\00\00\00\C5\00\00\00\11\00\00\00" }>, align 8 @alloc_f15bc705775877ba7fa4ddbd82a00e5e = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5, [16 x i8] c"\0A\00\00\00\00\00\00\00\C6\00\00\00\11\00\00\00" }>, align 8 @alloc_7f9dea55f442986021cc9ce39498d4a4 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5, [16 x i8] c"\0A\00\00\00\00\00\00\00\C7\00\00\00\11\00\00\00" }>, align 8 @alloc_cc78bc361b124a43b5dbd9f63038eb72 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5, [16 x i8] c"\0A\00\00\00\00\00\00\00\C8\00\00\00\11\00\00\00" }>, align 8 @alloc_e8f8dc8c2b4470f2145c106979ea8daf = private unnamed_addr constant <{ [10 x i8] }> <{ [10 x i8] c"cast_slice" }>, align 1 @alloc_a14c34eba40c576a6249806baf07fe01 = private unnamed_addr constant <{ [14 x i8] }> <{ [14 x i8] c"cast_slice_mut" }>, align 1 @alloc_d1084648e479974e70c9329824bf76f9 = private unnamed_addr constant <{ [9 x i8] }> <{ [9 x i8] c"mid > len" }>, align 1 @alloc_2b3e40161faa82f936e1f97ea2aea002 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_d1084648e479974e70c9329824bf76f9, [8 x i8] c"\09\00\00\00\00\00\00\00" }>, align 8 @alloc_0fae9671e55a3eb323fa0683df3e7bcf = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"src/dif2.rs" }>, align 1 @alloc_53973d2fe29b4adba8bb7390b5678745 = private unnamed_addr constant <{ [8 x i8] }> zeroinitializer, align 8 @alloc_6ec67c04328476ddffba5779951f4c00 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_0fae9671e55a3eb323fa0683df3e7bcf, [16 x i8] c"\0B\00\00\00\00\00\00\00|\00\00\00\05\00\00\00" }>, align 8 @alloc_e7c4d37f337e66a858596f43595df04b = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_f5ffd2fd1476bab43ad89fb40c72d0c5, [16 x i8] c"\0A\00\00\00\00\00\00\00\8A\00\00\00\0A\00\00\00" }>, align 8 @alloc_e58b299652ff622f00ce4a110ab50d75 = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"src/dit2.rs" }>, align 1 @alloc_8b30ecf10cfb39ba8782796f025cb964 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_e58b299652ff622f00ce4a110ab50d75, [16 x i8] c"\0B\00\00\00\00\00\00\00t\00\00\00\05\00\00\00" }>, align 8 @alloc_40882b2820811e76065dd1cff70d71df = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"src/dif4.rs" }>, align 1 @alloc_1b2545642a9bdfc4ff02124e6915c842 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_40882b2820811e76065dd1cff70d71df, [16 x i8] c"\0B\00\00\00\00\00\00\00\E1\00\00\00\05\00\00\00" }>, align 8 @alloc_a251bf4255107e62933f149d8f81ac4d = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"src/dit4.rs" }>, align 1 @alloc_f81a68b33b27ce74a6fe7f327eaa67c7 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a251bf4255107e62933f149d8f81ac4d, [16 x i8] c"\0B\00\00\00\00\00\00\00\CA\00\00\00\05\00\00\00" }>, align 8 @alloc_a122fe9d2aa82a0ae8c49c12a8e0385b = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"src/dif8.rs" }>, align 1 @alloc_3394413369392750f968ae9ebbb95188 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a122fe9d2aa82a0ae8c49c12a8e0385b, [16 x i8] c"\0B\00\00\00\00\00\00\00j\01\00\00\05\00\00\00" }>, align 8 @alloc_59aa7f3e02306f2a7e7c958f2abe10cb = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"src/dit8.rs" }>, align 1 @alloc_9941fe261bb839bc485daec7a55c3e0a = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_59aa7f3e02306f2a7e7c958f2abe10cb, [16 x i8] c"\0B\00\00\00\00\00\00\00G\01\00\00\05\00\00\00" }>, align 8 @alloc_a932df3647bc7e949917fc1e0a34c9d6 = private unnamed_addr constant <{ [12 x i8] }> <{ [12 x i8] c"src/dif16.rs" }>, align 1 @alloc_cc389ea8ffbac55d4e22ae197e085e0e = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_a932df3647bc7e949917fc1e0a34c9d6, [16 x i8] c"\0C\00\00\00\00\00\00\00\15\03\00\00\05\00\00\00" }>, align 8 @alloc_916cfed93e857fadee8dfd2406664dc8 = private unnamed_addr constant <{ [12 x i8] }> <{ [12 x i8] c"src/dit16.rs" }>, align 1 @alloc_9f9c1a2fba17fd436f6db33315954035 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_916cfed93e857fadee8dfd2406664dc8, [16 x i8] c"\0C\00\00\00\00\00\00\00\C6\02\00\00\05\00\00\00" }>, align 8 @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004 = private unnamed_addr constant <{ [14 x i8] }> <{ [14 x i8] c"src/ordered.rs" }>, align 1 @alloc_ef3d74fe318c8f93c82ea6bf5727aec8 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00p\00\00\00#\00\00\00" }>, align 8 @alloc_c02ab310a9ba126e88020d38180d63fc = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00q\00\00\00\22\00\00\00" }>, align 8 @alloc_d2338b042a385d9f7000e396b9fa70e7 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00s\00\00\00&\00\00\00" }>, align 8 @alloc_44d96b7e2f99499a4769e219f65882a5 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00w\00\00\00\1D\00\00\00" }>, align 8 @alloc_defc14adf7d0042fd5980f68e887c0d4 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00\B7\00\00\00\0A\00\00\00" }>, align 8 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf = private unnamed_addr constant <{ [37 x i8] }> <{ [37 x i8] c"assertion failed: n.is_power_of_two()" }>, align 1 @alloc_87855c5d7b3c745421b566ef514582d8 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00j\00\00\00\05\00\00\00" }>, align 8 @alloc_a500d906b91607583596fa15e63c2ada = private unnamed_addr constant <{ [40 x i8] }> <{ [40 x i8] c"internal error: entered unreachable code" }>, align 1 @alloc_feac8914a9f83e63647655d545fc571c = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00\86\00\00\00\12\00\00\00" }>, align 8 @alloc_3e79479e97db69285ea6f953d78f10f9 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Plan" }>, align 1 @alloc_9a9e0d0b735fdc92678304642744192b = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"algo" }>, align 1 @vtable.3 = private unnamed_addr constant <{ ptr, [16 x i8], ptr }> <{ ptr @"_ZN4core3ptr51drop_in_place$LT$concrete_fft..ordered..FftAlgo$GT$17hc007d073b835a474E", [16 x i8] c"\01\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00", ptr @"_ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" }>, align 8 @alloc_91a1caf18117f9d24e09981586d01594 = private unnamed_addr constant <{ [8 x i8] }> <{ [8 x i8] c"fft_size" }>, align 1 @vtable.4 = private unnamed_addr constant <{ ptr, [16 x i8], ptr }> <{ ptr @"_ZN4core3ptr26drop_in_place$LT$usize$GT$17h654693b979dd704fE", [16 x i8] c"\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E" }>, align 8 @alloc_7a32b4b39aba00e218ea4642e861cf8c = private unnamed_addr constant <{ [41 x i8] }> <{ [41 x i8] c"assertion failed: n.trailing_zeros() < 11" }>, align 1 @alloc_e3e2504e41d8656822ccecf09aa87df7 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00\F9\00\00\00\09\00\00\00" }>, align 8 @alloc_cf5080b62438d956622c758f8fa3d336 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00\F8\00\00\00\09\00\00\00" }>, align 8 @alloc_60a524fb834afd57f307b7d04603d463 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00]\01\00\00&\00\00\00" }>, align 8 @alloc_3446e1dc06b48e31ed98466b344bc684 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c659a3fe43fe0d8f72c4bb0bb24d4004, [16 x i8] c"\0E\00\00\00\00\00\00\00w\01\00\00&\00\00\00" }>, align 8 @alloc_c82e98d8633f570e6382ede3cd7f58b5 = private unnamed_addr constant <{ [16 x i8] }> <{ [16 x i8] c"src/unordered.rs" }>, align 1 @alloc_5540c84a5b85a8d06bf4cc168a21e29b = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00r\01\00\00\1D\00\00\00" }>, align 8 @alloc_348fd65bf0eca10ac00e3881651a53b2 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00s\01\00\00)\00\00\00" }>, align 8 @alloc_2b453d9dfef93db1387dc62eedcb4c05 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00{\01\00\00\15\00\00\00" }>, align 8 @alloc_b14aed5dae6705c6de901d98465c8f68 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\A0\01\00\00\22\00\00\00" }>, align 8 @alloc_9a9a72bdc5573320e6bf177353a05dbd = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\AA\01\00\00\14\00\00\00" }>, align 8 @alloc_65bf8e6758aaa52f95ca455c714c2e91 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\D3\01\00\00\22\00\00\00" }>, align 8 @alloc_9f3a19f0643858dc45576d8a9a7d0ac7 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\D4\01\00\00\14\00\00\00" }>, align 8 @alloc_23aaf07ea6675c54f5a006c735776ed9 = private unnamed_addr constant <{ [9 x i8] }> <{ [9 x i8] c"base_algo" }>, align 1 @alloc_aa8ef6711671480af422804f2087ae0a = private unnamed_addr constant <{ [9 x i8] }> <{ [9 x i8] c"base_size" }>, align 1 @alloc_affb4e630a58f255ee027bf99bbb4b6f = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\\\02\00\00\12\00\00\00" }>, align 8 @alloc_2ad520fd496b99c1e1cbfc94caa2e58a = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00]\02\00\00.\00\00\00" }>, align 8 @alloc_5ac6ed7eac038ea1d84c55755c287937 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00^\02\00\00$\00\00\00" }>, align 8 @alloc_1f06c28544b05a0f88a3fc9c8bdd6a58 = private unnamed_addr constant <{ [53 x i8] }> <{ [53 x i8] c"divide by zero error when dividing duration by scalar" }>, align 1 @alloc_e2819e4bcbdfa757c30e329c57bd5691 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c8f96e127133e2a1439d308cf7152792, [16 x i8] c"H\00\00\00\00\00\00\00j\04\00\00\1F\00\00\00" }>, align 8 @alloc_22460b73d0f7fdee7225299fde5b029a = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00w\02\00\00?\00\00\00" }>, align 8 @alloc_1312267fc6527cdf35ba767b644ca73d = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00w\02\00\00H\00\00\00" }>, align 8 @alloc_58e32998b4625961b670ebf41d4a8af6 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00{\02\00\00\0E\00\00\00" }>, align 8 @alloc_e48b756d1912c502591c96b0a6f8e5ff = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00}\02\00\00\0A\00\00\00" }>, align 8 @alloc_2420b864b0bffd768c5745a839437d48 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00}\02\00\00\1C\00\00\00" }>, align 8 @alloc_f0d0102bd2a65844ad38a919b286bec2 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00}\02\00\00&\00\00\00" }>, align 8 @alloc_ae03e973fea8e622a2c224bccb02a0e7 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00z\02\00\00#\00\00\00" }>, align 8 @alloc_fe928c4090004f2463e4844bad8ec9c9 = private unnamed_addr constant <{ [29 x i8] }> <{ [29 x i8] c"assertion failed: base_n <= n" }>, align 1 @alloc_f3f13e2156ec97bab13fe57f76687913 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\98\02\00\00\11\00\00\00" }>, align 8 @alloc_7d65d51328ef359a47d2a1a34ac05ab0 = private unnamed_addr constant <{ [30 x i8] }> <{ [30 x i8] c"assertion failed: base_n >= 32" }>, align 1 @alloc_e5f5041d1d1330b63cafdc6f1bcd44ef = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\9A\02\00\00\15\00\00\00" }>, align 8 @alloc_47b483d9dcbbda38514940099886fd9b = private unnamed_addr constant <{ [47 x i8] }> <{ [47 x i8] c"assertion failed: base_n.trailing_zeros() <= 10" }>, align 1 @alloc_6eb6e2f6364f5fea5b2858aaaabbe156 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\9C\02\00\00\11\00\00\00" }>, align 8 @alloc_47f9332e8b0f88a5f1b1c39d5d43a024 = private unnamed_addr constant <{ [42 x i8] }> <{ [42 x i8] c"assertion failed: base_n.is_power_of_two()" }>, align 1 @alloc_691990e8957f935589950b689d23796f = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\97\02\00\00\11\00\00\00" }>, align 8 @alloc_1033ffd84d1a6b0873949db14c2eaee6 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\93\02\00\00\09\00\00\00" }>, align 8 @alloc_86d6454de431c621dc87a6776e0ff7ff = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00:\03\00\00\09\00\00\00" }>, align 8 @alloc_a325cd44180ca81be07c363cf3e65625 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00;\03\00\00&\00\00\00" }>, align 8 @alloc_43efcd11700c07ac74aba018a6284297 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00Y\03\00\00\11\00\00\00" }>, align 8 @alloc_b664c7a4a3eefca7bfb9186b14833af4 = private unnamed_addr constant <{ [42 x i8] }> <{ [42 x i8] c"assertion failed: degree < this.fft_size()" }>, align 1 @alloc_48204a8f2dcffebc600b6086120a294b = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00Z\03\00\00\11\00\00\00" }>, align 8 @alloc_21d6ac4e98ab2512bf59a22af475cadd = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00d\03\00\00\11\00\00\00" }>, align 8 @alloc_640be1ca528f6a352bdf5246e81818da = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00f\03\00\00\17\00\00\00" }>, align 8 @alloc_0426b419837a8055dfeadaee9ff1adb0 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00c\03\00\00\11\00\00\00" }>, align 8 @alloc_c84814423ac606c67b2b2f78da85d79d = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\9F\03\00\00\09\00\00\00" }>, align 8 @alloc_09dab78c7562f28dcce399d7d96d34c2 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00\A0\03\00\00&\00\00\00" }>, align 8 @alloc_e10e6c859244ba0294dfd57dd7316164 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Dif2" }>, align 1 @alloc_01d4d1b2049c8daa77b73fb05880d112 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Dit2" }>, align 1 @alloc_e235cd12c9be5a3ddb6cf0d67b8114b8 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Dif4" }>, align 1 @alloc_91f8c9fcb142038b337807c6912a20c7 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Dit4" }>, align 1 @alloc_2f09a68cfbfda8f5365942497f18e45f = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Dif8" }>, align 1 @alloc_30d20426f0d94799eff84a0c110dc6e7 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"Dit8" }>, align 1 @alloc_c8507ac2b61608840f92adf5c37a7302 = private unnamed_addr constant <{ [5 x i8] }> <{ [5 x i8] c"Dif16" }>, align 1 @alloc_59552aff940c1e9ce97a31fcc85f07b4 = private unnamed_addr constant <{ [5 x i8] }> <{ [5 x i8] c"Dit16" }>, align 1 @alloc_a30bc3139301f3ccf4562a88e7b9a42f = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00G\01\00\00\01\00\00\00" }>, align 8 @alloc_43280851d52ab33b05930d4c1dd3aed1 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00H\01\00\00\01\00\00\00" }>, align 8 @alloc_6730b3da977ae3807266990e0097f311 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00I\01\00\00\01\00\00\00" }>, align 8 @alloc_3286ce7dcee51f84ec1b7126e82f741d = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00K\01\00\00\01\00\00\00" }>, align 8 @alloc_3c3428d6ae47c967a7776e95c7db9c05 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00L\01\00\00\01\00\00\00" }>, align 8 @alloc_adc7f824967bf866f1e4c58e620b85f9 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_c82e98d8633f570e6382ede3cd7f58b5, [16 x i8] c"\10\00\00\00\00\00\00\00M\01\00\00\01\00\00\00" }>, align 8 @switch.table._ZN12concrete_fft9unordered4Plan3new17h0e00385d94bb7a76E = private unnamed_addr constant [8 x i64] [i64 2, i64 2, i64 4, i64 4, i64 8, i64 8, i64 16, i64 16], align 8 @"switch.table._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" = private unnamed_addr constant [8 x i64] [i64 4, i64 4, i64 4, i64 4, i64 4, i64 4, i64 5, i64 5], align 8 @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" = private unnamed_addr constant [8 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_e10e6c859244ba0294dfd57dd7316164 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_01d4d1b2049c8daa77b73fb05880d112 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_e235cd12c9be5a3ddb6cf0d67b8114b8 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_91f8c9fcb142038b337807c6912a20c7 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_2f09a68cfbfda8f5365942497f18e45f to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_30d20426f0d94799eff84a0c110dc6e7 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_c8507ac2b61608840f92adf5c37a7302 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @alloc_59552aff940c1e9ce97a31fcc85f07b4 to i64), i64 ptrtoint (ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E" to i64)) to i32)], align 4 ; <&T as core::fmt::Debug>::fmt ; Function Attrs: nonlazybind uwtable define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h5651f103d0f453bfE"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %self, ptr noalias noundef align 8 dereferenceable(64) %f) unnamed_addr #0 { start: %_3 = load ptr, ptr %self, align 8, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds %"core::fmt::Formatter<'_>", ptr %f, i64 0, i32 4 %_4.i = load i32, ptr %0, align 4, !alias.scope !5, !noalias !8, !noundef !3 %_3.i = and i32 %_4.i, 16 %1 = icmp eq i32 %_3.i, 0 br i1 %1, label %bb2.i, label %bb1.i bb2.i: ; preds = %start %_5.i = and i32 %_4.i, 32 %2 = icmp eq i32 %_5.i, 0 br i1 %2, label %bb4.i, label %bb3.i bb1.i: ; preds = %start ; call core::fmt::num::::fmt %3 = tail call noundef zeroext i1 @"_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17h1790d9aa2b3be9e9E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_3, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) br label %"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E.exit" bb4.i: ; preds = %bb2.i ; call core::fmt::num::imp::::fmt %4 = tail call noundef zeroext i1 @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_3, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) br label %"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E.exit" bb3.i: ; preds = %bb2.i ; call core::fmt::num::::fmt %5 = tail call noundef zeroext i1 @"_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$usize$GT$3fmt17h89a30fb843638fecE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_3, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) br label %"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E.exit" "_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E.exit": ; preds = %bb1.i, %bb4.i, %bb3.i %_0.0.in.i = phi i1 [ %4, %bb4.i ], [ %5, %bb3.i ], [ %3, %bb1.i ] ret i1 %_0.0.in.i } ; <&T as core::fmt::Display>::fmt ; Function Attrs: nonlazybind uwtable define internal noundef zeroext i1 @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %self, ptr noalias noundef align 8 dereferenceable(64) %f) unnamed_addr #0 { start: %_3.0 = load ptr, ptr %self, align 8, !nonnull !3, !align !10, !noundef !3 %0 = getelementptr inbounds i8, ptr %self, i64 8 %_3.1 = load i64, ptr %0, align 8, !noundef !3 ; call ::fmt %_0 = tail call noundef zeroext i1 @"_ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17h1a79630b9923a4c7E"(ptr noalias noundef nonnull readonly align 1 %_3.0, i64 noundef %_3.1, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) ret i1 %_0 } ; core::fmt::num::::fmt ; Function Attrs: inlinehint nonlazybind uwtable define internal noundef zeroext i1 @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E"(ptr noalias noundef readonly align 8 dereferenceable(8) %self, ptr noalias noundef align 8 dereferenceable(64) %f) unnamed_addr #1 { start: %0 = getelementptr inbounds %"core::fmt::Formatter<'_>", ptr %f, i64 0, i32 4 %_4 = load i32, ptr %0, align 4, !noundef !3 %_3 = and i32 %_4, 16 %1 = icmp eq i32 %_3, 0 br i1 %1, label %bb2, label %bb1 bb2: ; preds = %start %_5 = and i32 %_4, 32 %2 = icmp eq i32 %_5, 0 br i1 %2, label %bb4, label %bb3 bb1: ; preds = %start ; call core::fmt::num::::fmt %3 = tail call noundef zeroext i1 @"_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17h1790d9aa2b3be9e9E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %self, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) br label %bb6 bb4: ; preds = %bb2 ; call core::fmt::num::imp::::fmt %4 = tail call noundef zeroext i1 @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %self, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) br label %bb6 bb3: ; preds = %bb2 ; call core::fmt::num::::fmt %5 = tail call noundef zeroext i1 @"_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$usize$GT$3fmt17h89a30fb843638fecE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %self, ptr noalias noundef nonnull align 8 dereferenceable(64) %f) br label %bb6 bb6: ; preds = %bb4, %bb3, %bb1 %_0.0.in = phi i1 [ %4, %bb4 ], [ %5, %bb3 ], [ %3, %bb1 ] ret i1 %_0.0.in } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h000c325da584b34fE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h964e4fe775fd2ff6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h00573d7f258c7a77E(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h202f1e3c1f6328c4E"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c72115b86d9a6dfE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0286692b65f5948dE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3771600784db2f56E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h02ef88083453d12cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha6a520064dce76a6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0319b77e7ac64271E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1630d306646eec02E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h043ce95777fa6581E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h03f97eb99d26eb6eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0459a621b30b4a09E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h12c9472e43001bbaE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h04bf106a2332ccadE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2e07ca4aba52be51E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0517a052e2a50be6E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5407c980bf1b1d78E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h075c80a398111b32E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfda96b676381de6dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h06ed2f17232d36fcE"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h07b7206357be8eabE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5f2b7d84865b23adE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h08f06705d05a44a9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5d665fddc0e82355E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h095a5706a85e40f8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3d359fbd856574fcE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h097dca61406d6c69E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h809923997401ea54E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08bb3619961b284bE"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0c43f7932b3b65e2E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7ab50fe670528430E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h28e83d2ff83c2f1fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h0edf0836dda0919eE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c41d58dc55f606cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h10170623f4eeea51E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h23e28afe4f512b2aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4a05d175c066a228E"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h127454c6109fb2aaE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h35c87a89d9ec5218E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3cd5aaabc5298360E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h138a9e2b1a60dfbeE(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h22c1ccbcadd5eb9aE"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h150fbe092b23bf33E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hce7021865030e01bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08d65cf4270dbd09E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h15e5b201080a809aE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hed645aaa573c99ddE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1668850afd322a31E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h58eeb456e8a9b012E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h16c70899b49d8857E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: %_4.i = alloca %"pulp::x86::V4", align 1 %f.i = alloca %"{closure@src/unordered.rs:306:29: 306:31}.840", align 8 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %_4.i) %4 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !11 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !11 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hb6f1bd6b6107f7d3E.exit" bb3.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3c3428d6ae47c967a7776e95c7db9c05) #22, !noalias !11 unreachable "_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hb6f1bd6b6107f7d3E.exit": ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %f.i), !noalias !11 store ptr %_4.i, ptr %f.i, align 8, !noalias !11 %6 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f.i, i64 0, i32 1 store ptr %0, ptr %6, align 8, !noalias !11 %7 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f.i, i64 0, i32 1, i32 1 store i64 %1, ptr %7, align 8, !noalias !11 %8 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f.i, i64 0, i32 2 store ptr %2, ptr %8, align 8, !noalias !11 %9 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f.i, i64 0, i32 2, i32 1 store i64 %3, ptr %9, align 8, !noalias !11 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h268e18d0b49f5df0E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %f.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %f.i), !noalias !11 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %_4.i) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1725b205673979f9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !15) tail call void @llvm.experimental.noalias.scope.decl(metadata !18) %4 = shl nsw i64 %3, 4 %_13.i2.i = urem i64 %4, 48 %new_len.i.i = udiv i64 %4, 48 %5 = icmp eq i64 %_13.i2.i, 0 br i1 %5, label %bb16.i.i, label %bb15.i.i bb16.i.i: ; preds = %start %mid5.i.i.i = lshr i64 %1, 1 %6 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid5.i.i.i %7 = sub i64 %1, %mid5.i.i.i %mid36.i.i.i = lshr i64 %1, 2 %8 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid36.i.i.i %9 = sub nsw i64 %mid5.i.i.i, %mid36.i.i.i %mid47.i.i.i = lshr i64 %7, 1 %10 = getelementptr %"num_complex::Complex", ptr %6, i64 %mid47.i.i.i %11 = sub i64 %7, %mid47.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i.i.i, i64 %9) %_0.0.sroa.speculated.i.i.i4.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i.i.i) %_0.0.sroa.speculated.i.i.i12.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i, i64 %11) %_0.0.sroa.speculated.i.i.i23.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i, i64 %new_len.i.i) %_2.i.i.i12.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i, 0 br i1 %_2.i.i.i12.not.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE.exit", label %bb8.i.i.preheader bb8.i.i.preheader: ; preds = %bb16.i.i %min.iters.check = icmp ult i64 %_0.0.sroa.speculated.i.i.i23.i, 32 br i1 %min.iters.check, label %bb8.i.i.preheader157, label %vector.scevcheck vector.scevcheck: ; preds = %bb8.i.i.preheader %12 = add nsw i64 %_0.0.sroa.speculated.i.i.i23.i, -1 %mul.result = shl nsw i64 %12, 4 %13 = getelementptr i8, ptr %8, i64 %mul.result %14 = icmp ult ptr %13, %8 %15 = shl i64 %mid36.i.i.i, 4 %16 = or disjoint i64 %15, 8 %scevgep = getelementptr i8, ptr %0, i64 %16 %mul.result2 = shl nsw i64 %12, 4 %mul.overflow3 = icmp ugt i64 %12, 1152921504606846975 %17 = getelementptr i8, ptr %scevgep, i64 %mul.result2 %18 = icmp ult ptr %17, %scevgep %19 = or i1 %18, %mul.overflow3 %mul.result5 = shl nsw i64 %12, 4 %20 = getelementptr i8, ptr %6, i64 %mul.result5 %21 = icmp ult ptr %20, %6 %22 = shl i64 %mid5.i.i.i, 4 %23 = or disjoint i64 %22, 8 %scevgep7 = getelementptr i8, ptr %0, i64 %23 %mul.result9 = shl nsw i64 %12, 4 %24 = getelementptr i8, ptr %scevgep7, i64 %mul.result9 %25 = icmp ult ptr %24, %scevgep7 %mul.result12 = shl nsw i64 %12, 4 %26 = getelementptr i8, ptr %10, i64 %mul.result12 %27 = icmp ult ptr %26, %10 %28 = add nuw i64 %mid5.i.i.i, %mid47.i.i.i %29 = shl i64 %28, 4 %30 = or disjoint i64 %29, 8 %scevgep14 = getelementptr i8, ptr %0, i64 %30 %mul.result16 = shl nsw i64 %12, 4 %31 = getelementptr i8, ptr %scevgep14, i64 %mul.result16 %32 = icmp ult ptr %31, %scevgep14 %33 = or i1 %14, %19 %34 = or i1 %21, %33 %35 = or i1 %25, %34 %36 = or i1 %27, %35 %37 = or i1 %32, %36 br i1 %37, label %bb8.i.i.preheader157, label %vector.memcheck vector.memcheck: ; preds = %vector.scevcheck %38 = shl nuw nsw i64 %_0.0.sroa.speculated.i.i.i23.i, 4 %39 = getelementptr i8, ptr %0, i64 %38 %scevgep18 = getelementptr i8, ptr %39, i64 -8 %scevgep19 = getelementptr i8, ptr %0, i64 8 %scevgep20 = getelementptr i8, ptr %0, i64 %38 %40 = shl i64 %mid36.i.i.i, 4 %41 = add i64 %38, %40 %42 = getelementptr i8, ptr %0, i64 %41 %scevgep21 = getelementptr i8, ptr %42, i64 -8 %43 = or disjoint i64 %40, 8 %scevgep22 = getelementptr i8, ptr %0, i64 %43 %scevgep23 = getelementptr i8, ptr %0, i64 %41 %44 = shl i64 %mid5.i.i.i, 4 %45 = add i64 %38, %44 %46 = getelementptr i8, ptr %0, i64 %45 %scevgep24 = getelementptr i8, ptr %46, i64 -8 %47 = or disjoint i64 %44, 8 %scevgep25 = getelementptr i8, ptr %0, i64 %47 %scevgep26 = getelementptr i8, ptr %0, i64 %45 %48 = shl i64 %mid47.i.i.i, 4 %49 = getelementptr i8, ptr %0, i64 %45 %50 = getelementptr i8, ptr %49, i64 %48 %scevgep27 = getelementptr i8, ptr %50, i64 -8 %51 = add i64 %44, %48 %52 = or disjoint i64 %51, 8 %scevgep28 = getelementptr i8, ptr %0, i64 %52 %53 = getelementptr i8, ptr %0, i64 %38 %54 = getelementptr i8, ptr %53, i64 %44 %scevgep29 = getelementptr i8, ptr %54, i64 %48 %bound0 = icmp ugt ptr %scevgep20, %0 %bound1 = icmp ult ptr %scevgep19, %scevgep18 %found.conflict = and i1 %bound0, %bound1 %bound030 = icmp ugt ptr %scevgep21, %0 %bound131 = icmp ult ptr %8, %scevgep18 %found.conflict32 = and i1 %bound030, %bound131 %conflict.rdx = or i1 %found.conflict, %found.conflict32 %bound033 = icmp ugt ptr %scevgep23, %0 %bound134 = icmp ult ptr %scevgep22, %scevgep18 %found.conflict35 = and i1 %bound033, %bound134 %conflict.rdx36 = or i1 %conflict.rdx, %found.conflict35 %bound037 = icmp ugt ptr %scevgep24, %0 %bound138 = icmp ult ptr %6, %scevgep18 %found.conflict39 = and i1 %bound037, %bound138 %conflict.rdx40 = or i1 %conflict.rdx36, %found.conflict39 %bound041 = icmp ugt ptr %scevgep26, %0 %bound142 = icmp ult ptr %scevgep25, %scevgep18 %found.conflict43 = and i1 %bound041, %bound142 %conflict.rdx44 = or i1 %conflict.rdx40, %found.conflict43 %bound045 = icmp ugt ptr %scevgep27, %0 %bound146 = icmp ult ptr %10, %scevgep18 %found.conflict47 = and i1 %bound045, %bound146 %conflict.rdx48 = or i1 %conflict.rdx44, %found.conflict47 %bound049 = icmp ugt ptr %scevgep29, %0 %bound150 = icmp ult ptr %scevgep28, %scevgep18 %found.conflict51 = and i1 %bound049, %bound150 %conflict.rdx52 = or i1 %conflict.rdx48, %found.conflict51 %bound053 = icmp ult ptr %scevgep19, %scevgep21 %bound154 = icmp ult ptr %8, %scevgep20 %found.conflict55 = and i1 %bound053, %bound154 %conflict.rdx56 = or i1 %conflict.rdx52, %found.conflict55 %bound057 = icmp ult ptr %scevgep19, %scevgep23 %bound158 = icmp ult ptr %scevgep22, %scevgep20 %found.conflict59 = and i1 %bound057, %bound158 %conflict.rdx60 = or i1 %conflict.rdx56, %found.conflict59 %bound061 = icmp ult ptr %scevgep19, %scevgep24 %bound162 = icmp ult ptr %6, %scevgep20 %found.conflict63 = and i1 %bound061, %bound162 %conflict.rdx64 = or i1 %conflict.rdx60, %found.conflict63 %bound065 = icmp ult ptr %scevgep19, %scevgep26 %bound166 = icmp ult ptr %scevgep25, %scevgep20 %found.conflict67 = and i1 %bound065, %bound166 %conflict.rdx68 = or i1 %conflict.rdx64, %found.conflict67 %bound069 = icmp ult ptr %scevgep19, %scevgep27 %bound170 = icmp ult ptr %10, %scevgep20 %found.conflict71 = and i1 %bound069, %bound170 %conflict.rdx72 = or i1 %conflict.rdx68, %found.conflict71 %bound073 = icmp ult ptr %scevgep19, %scevgep29 %bound174 = icmp ult ptr %scevgep28, %scevgep20 %found.conflict75 = and i1 %bound073, %bound174 %conflict.rdx76 = or i1 %conflict.rdx72, %found.conflict75 %bound077 = icmp ult ptr %8, %scevgep23 %bound178 = icmp ult ptr %scevgep22, %scevgep21 %found.conflict79 = and i1 %bound077, %bound178 %conflict.rdx80 = or i1 %conflict.rdx76, %found.conflict79 %bound081 = icmp ult ptr %8, %scevgep24 %bound182 = icmp ult ptr %6, %scevgep21 %found.conflict83 = and i1 %bound081, %bound182 %conflict.rdx84 = or i1 %conflict.rdx80, %found.conflict83 %bound085 = icmp ult ptr %8, %scevgep26 %bound186 = icmp ult ptr %scevgep25, %scevgep21 %found.conflict87 = and i1 %bound085, %bound186 %conflict.rdx88 = or i1 %conflict.rdx84, %found.conflict87 %bound089 = icmp ult ptr %8, %scevgep27 %bound190 = icmp ult ptr %10, %scevgep21 %found.conflict91 = and i1 %bound089, %bound190 %conflict.rdx92 = or i1 %conflict.rdx88, %found.conflict91 %bound093 = icmp ult ptr %8, %scevgep29 %bound194 = icmp ult ptr %scevgep28, %scevgep21 %found.conflict95 = and i1 %bound093, %bound194 %conflict.rdx96 = or i1 %conflict.rdx92, %found.conflict95 %bound097 = icmp ult ptr %scevgep22, %scevgep24 %bound198 = icmp ult ptr %6, %scevgep23 %found.conflict99 = and i1 %bound097, %bound198 %conflict.rdx100 = or i1 %conflict.rdx96, %found.conflict99 %bound0101 = icmp ult ptr %scevgep22, %scevgep26 %bound1102 = icmp ult ptr %scevgep25, %scevgep23 %found.conflict103 = and i1 %bound0101, %bound1102 %conflict.rdx104 = or i1 %conflict.rdx100, %found.conflict103 %bound0105 = icmp ult ptr %scevgep22, %scevgep27 %bound1106 = icmp ult ptr %10, %scevgep23 %found.conflict107 = and i1 %bound0105, %bound1106 %conflict.rdx108 = or i1 %conflict.rdx104, %found.conflict107 %bound0109 = icmp ult ptr %scevgep22, %scevgep29 %bound1110 = icmp ult ptr %scevgep28, %scevgep23 %found.conflict111 = and i1 %bound0109, %bound1110 %conflict.rdx112 = or i1 %conflict.rdx108, %found.conflict111 %bound0113 = icmp ult ptr %6, %scevgep26 %bound1114 = icmp ult ptr %scevgep25, %scevgep24 %found.conflict115 = and i1 %bound0113, %bound1114 %conflict.rdx116 = or i1 %conflict.rdx112, %found.conflict115 %bound0117 = icmp ult ptr %6, %scevgep27 %bound1118 = icmp ult ptr %10, %scevgep24 %found.conflict119 = and i1 %bound0117, %bound1118 %conflict.rdx120 = or i1 %conflict.rdx116, %found.conflict119 %bound0121 = icmp ult ptr %6, %scevgep29 %bound1122 = icmp ult ptr %scevgep28, %scevgep24 %found.conflict123 = and i1 %bound0121, %bound1122 %conflict.rdx124 = or i1 %conflict.rdx120, %found.conflict123 %bound0125 = icmp ult ptr %scevgep25, %scevgep27 %bound1126 = icmp ult ptr %10, %scevgep26 %found.conflict127 = and i1 %bound0125, %bound1126 %conflict.rdx128 = or i1 %conflict.rdx124, %found.conflict127 %bound0129 = icmp ult ptr %scevgep25, %scevgep29 %bound1130 = icmp ult ptr %scevgep28, %scevgep26 %found.conflict131 = and i1 %bound0129, %bound1130 %conflict.rdx132 = or i1 %conflict.rdx128, %found.conflict131 %bound0133 = icmp ult ptr %10, %scevgep29 %bound1134 = icmp ult ptr %scevgep28, %scevgep27 %found.conflict135 = and i1 %bound0133, %bound1134 %conflict.rdx136 = or i1 %conflict.rdx132, %found.conflict135 br i1 %conflict.rdx136, label %bb8.i.i.preheader157, label %vector.ph vector.ph: ; preds = %vector.memcheck %n.vec = and i64 %_0.0.sroa.speculated.i.i.i23.i, 576460752303423484 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %55 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %56 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %57 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %58 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %59 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %index %wide.vec = load <24 x double>, ptr %59, align 8, !alias.scope !18, !noalias !15 %strided.vec = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec137 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec138 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec139 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec140 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec141 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %wide.vec142 = load <8 x double>, ptr %55, align 8, !alias.scope !15, !noalias !18 %strided.vec143 = shufflevector <8 x double> %wide.vec142, <8 x double> poison, <4 x i32> %strided.vec144 = shufflevector <8 x double> %wide.vec142, <8 x double> poison, <4 x i32> %wide.vec145 = load <8 x double>, ptr %57, align 8, !alias.scope !15, !noalias !18 %strided.vec146 = shufflevector <8 x double> %wide.vec145, <8 x double> poison, <4 x i32> %strided.vec147 = shufflevector <8 x double> %wide.vec145, <8 x double> poison, <4 x i32> %wide.vec148 = load <8 x double>, ptr %56, align 8, !alias.scope !15, !noalias !18 %strided.vec149 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %strided.vec150 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %wide.vec151 = load <8 x double>, ptr %58, align 8, !alias.scope !15, !noalias !18 %strided.vec152 = shufflevector <8 x double> %wide.vec151, <8 x double> poison, <4 x i32> %strided.vec153 = shufflevector <8 x double> %wide.vec151, <8 x double> poison, <4 x i32> %60 = fneg <4 x double> %strided.vec137 %61 = fmul <4 x double> %strided.vec147, %60 %62 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %strided.vec146, <4 x double> %61) %63 = fmul <4 x double> %strided.vec137, %strided.vec146 %64 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %strided.vec147, <4 x double> %63) %65 = fneg <4 x double> %strided.vec139 %66 = fmul <4 x double> %strided.vec150, %65 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec138, <4 x double> %strided.vec149, <4 x double> %66) %68 = fmul <4 x double> %strided.vec139, %strided.vec149 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec138, <4 x double> %strided.vec150, <4 x double> %68) %70 = fneg <4 x double> %strided.vec141 %71 = fmul <4 x double> %strided.vec153, %70 %72 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec140, <4 x double> %strided.vec152, <4 x double> %71) %73 = fmul <4 x double> %strided.vec141, %strided.vec152 %74 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec140, <4 x double> %strided.vec153, <4 x double> %73) %75 = fadd <4 x double> %strided.vec143, %67 %76 = fadd <4 x double> %strided.vec144, %69 %77 = fsub <4 x double> %strided.vec143, %67 %78 = fsub <4 x double> %strided.vec144, %69 %79 = fadd <4 x double> %62, %72 %80 = fadd <4 x double> %64, %74 %81 = fsub <4 x double> %62, %72 %82 = fsub <4 x double> %64, %74 %83 = fadd <4 x double> %75, %79 %84 = fadd <4 x double> %76, %80 %85 = fsub <4 x double> %77, %82 %86 = fadd <4 x double> %78, %81 %87 = fsub <4 x double> %75, %79 %88 = fsub <4 x double> %76, %80 %89 = fadd <4 x double> %77, %82 %90 = fsub <4 x double> %78, %81 %interleaved.vec = shufflevector <4 x double> %83, <4 x double> %84, <8 x i32> store <8 x double> %interleaved.vec, ptr %55, align 8, !alias.scope !15, !noalias !18 %interleaved.vec154 = shufflevector <4 x double> %85, <4 x double> %86, <8 x i32> store <8 x double> %interleaved.vec154, ptr %56, align 8, !alias.scope !15, !noalias !18 %interleaved.vec155 = shufflevector <4 x double> %87, <4 x double> %88, <8 x i32> store <8 x double> %interleaved.vec155, ptr %57, align 8, !alias.scope !15, !noalias !18 %interleaved.vec156 = shufflevector <4 x double> %89, <4 x double> %90, <8 x i32> store <8 x double> %interleaved.vec156, ptr %58, align 8, !alias.scope !15, !noalias !18 %index.next = add nuw i64 %index, 4 %91 = icmp eq i64 %index.next, %n.vec br i1 %91, label %middle.block, label %vector.body, !llvm.loop !20 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i, %n.vec br i1 %cmp.n, label %"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE.exit", label %bb8.i.i.preheader157 bb8.i.i.preheader157: ; preds = %vector.memcheck, %vector.scevcheck, %bb8.i.i.preheader, %middle.block %iter.i.sroa.29.013.i.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ 0, %bb8.i.i.preheader ], [ %n.vec, %middle.block ] br label %bb8.i.i bb15.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !23 unreachable bb8.i.i: ; preds = %bb8.i.i.preheader157, %bb8.i.i %iter.i.sroa.29.013.i = phi i64 [ %92, %bb8.i.i ], [ %iter.i.sroa.29.013.i.ph, %bb8.i.i.preheader157 ] %92 = add nuw nsw i64 %iter.i.sroa.29.013.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.29.013.i %_3.i2.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %iter.i.sroa.29.013.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %iter.i.sroa.29.013.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %iter.i.sroa.29.013.i %_3.i.i.i.i.i = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i %w1.0.i.i = load double, ptr %_3.i.i.i.i.i, align 8, !alias.scope !18, !noalias !15, !noundef !3 %93 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i, i64 8 %w1.1.i.i = load double, ptr %93, align 8, !alias.scope !18, !noalias !15, !noundef !3 %94 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 1 %w2.0.i.i = load double, ptr %94, align 8, !alias.scope !18, !noalias !15, !noundef !3 %95 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 1, i32 1 %w2.1.i.i = load double, ptr %95, align 8, !alias.scope !18, !noalias !15, !noundef !3 %96 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 2 %w3.0.i.i = load double, ptr %96, align 8, !alias.scope !18, !noalias !15, !noundef !3 %97 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 2, i32 1 %w3.1.i.i = load double, ptr %97, align 8, !alias.scope !18, !noalias !15, !noundef !3 %_33.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18, !noundef !3 %98 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_33.1.i.i = load double, ptr %98, align 8, !alias.scope !15, !noalias !18, !noundef !3 %_34.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18, !noundef !3 %99 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i, i64 8 %_34.1.i.i = load double, ptr %99, align 8, !alias.scope !15, !noalias !18, !noundef !3 %_35.0.i.i = load double, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18, !noundef !3 %100 = getelementptr inbounds i8, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, i64 8 %_35.1.i.i = load double, ptr %100, align 8, !alias.scope !15, !noalias !18, !noundef !3 %_36.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18, !noundef !3 %101 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i, i64 8 %_36.1.i.i = load double, ptr %101, align 8, !alias.scope !15, !noalias !18, !noundef !3 %_6.i11.i.i.i = fneg double %w1.1.i.i %b.i12.i.i.i = fmul double %_34.1.i.i, %_6.i11.i.i.i %102 = tail call double @llvm.fma.f64(double %w1.0.i.i, double %_34.0.i.i, double %b.i12.i.i.i) %b1.i13.i.i.i = fmul double %w1.1.i.i, %_34.0.i.i %103 = tail call double @llvm.fma.f64(double %w1.0.i.i, double %_34.1.i.i, double %b1.i13.i.i.i) %_6.i8.i.i.i = fneg double %w2.1.i.i %b.i9.i.i.i = fmul double %_35.1.i.i, %_6.i8.i.i.i %104 = tail call double @llvm.fma.f64(double %w2.0.i.i, double %_35.0.i.i, double %b.i9.i.i.i) %b1.i10.i.i.i = fmul double %w2.1.i.i, %_35.0.i.i %105 = tail call double @llvm.fma.f64(double %w2.0.i.i, double %_35.1.i.i, double %b1.i10.i.i.i) %_6.i.i.i.i = fneg double %w3.1.i.i %b.i7.i.i.i = fmul double %_36.1.i.i, %_6.i.i.i.i %106 = tail call double @llvm.fma.f64(double %w3.0.i.i, double %_36.0.i.i, double %b.i7.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i, %_36.0.i.i %107 = tail call double @llvm.fma.f64(double %w3.0.i.i, double %_36.1.i.i, double %b1.i.i.i.i) %_0.i.i.i = fadd double %_33.0.i.i, %104 %_0.i3.i.i = fadd double %_33.1.i.i, %105 %_0.i.i28.i = fsub double %_33.0.i.i, %104 %_0.i3.i29.i = fsub double %_33.1.i.i, %105 %_0.i.i30.i = fadd double %102, %106 %_0.i3.i31.i = fadd double %103, %107 %_0.i.i32.i = fsub double %102, %106 %_0.i3.i33.i = fsub double %103, %107 %_0.i.i34.i = fadd double %_0.i.i.i, %_0.i.i30.i %_0.i3.i35.i = fadd double %_0.i3.i.i, %_0.i3.i31.i %_0.i.i36.i = fsub double %_0.i.i28.i, %_0.i3.i33.i %_0.i3.i37.i = fadd double %_0.i3.i29.i, %_0.i.i32.i %_0.i.i38.i = fsub double %_0.i.i.i, %_0.i.i30.i %_0.i3.i39.i = fsub double %_0.i3.i.i, %_0.i3.i31.i %_0.i.i40.i = fadd double %_0.i.i28.i, %_0.i3.i33.i %_0.i3.i41.i = fsub double %_0.i3.i29.i, %_0.i.i32.i store double %_0.i.i34.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18 store double %_0.i3.i35.i, ptr %98, align 8, !alias.scope !15, !noalias !18 store double %_0.i.i36.i, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18 store double %_0.i3.i37.i, ptr %100, align 8, !alias.scope !15, !noalias !18 store double %_0.i.i38.i, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18 store double %_0.i3.i39.i, ptr %99, align 8, !alias.scope !15, !noalias !18 store double %_0.i.i40.i, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !15, !noalias !18 store double %_0.i3.i41.i, ptr %101, align 8, !alias.scope !15, !noalias !18 %exitcond.not.i = icmp eq i64 %92, %_0.0.sroa.speculated.i.i.i23.i br i1 %exitcond.not.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE.exit", label %bb8.i.i, !llvm.loop !24 "_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE.exit": ; preds = %bb8.i.i, %middle.block, %bb16.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1786d51001395883E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h06c29465d01e7a2bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h178a09fa99b3d60fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7593309efa0596eeE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h179868e957f6b3fbE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2a228fe7c342074dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1853b8c7b1b02310E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1fed50b416316d35E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1865e9442db81ca0E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4100621e54298db9E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h19861c604fc94768E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he995f1c3f2a4cc81E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h19b684a5ecffd696E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb3f02642362e9e1aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h19e7e8737ff41a54E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h41ab3db4475fa0beE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1ae0e14613b93943E"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1a74821c1faedc3eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h73e0adf05228675bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1abc269ba09ec36cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h31582feecbf4a6b8E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1ac11e53b1426369E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h98ff4c97d7673981E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1ac77871344e47bcE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4b73a8a5ce49690fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1be21f260b2d43d8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0303cb4b9cd38ca7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1c48943f3fe062daE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hac09fcb73d929b37E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1d728453a3c5abfbE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb8b4b54fe33e62c6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1da9b5565fdccb96E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd7b4af2deeafe959E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1e4f2de343c8e0c9E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h418e5301b6172027E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1efccd2d53705160E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hde76f88ac7deff8dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1fa39286938b1f2eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7edcbb1eb2b4e988E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h1fa4449d1f3169d2E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !25) tail call void @llvm.experimental.noalias.scope.decl(metadata !28) %4 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !30 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !30 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %bb2.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_adc7f824967bf866f1e4c58e620b85f9) #22, !noalias !30 unreachable bb2.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i %6 = and i64 %1, 1 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb17.i.i.i.i.i, label %bb16.i.i.i.i.i bb17.i.i.i.i.i: ; preds = %bb2.i %8 = shl nsw i64 %3, 4 %_13.i.i.i.i = urem i64 %8, 224 %new_len.i.i.i.i = udiv i64 %8, 224 %9 = icmp eq i64 %_13.i.i.i.i, 0 br i1 %9, label %bb20.i.i.i.i.i, label %bb19.i.i.i.i.i bb16.i.i.i.i.i: ; preds = %bb2.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !31 unreachable bb20.i.i.i.i.i: ; preds = %bb17.i.i.i.i.i %10 = lshr exact i64 %1, 1 %new_len2.i.i.i.i = and i64 %10, 576460752303423487 %mid1.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 1 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid1.i.i.i.i.i.i %12 = sub nsw i64 %new_len2.i.i.i.i, %mid1.i.i.i.i.i.i %mid5.i5.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 2 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid5.i5.i.i.i.i.i.i %14 = sub nsw i64 %mid1.i.i.i.i.i.i, %mid5.i5.i.i.i.i.i.i %mid36.i10.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 3 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid36.i10.i.i.i.i.i.i %16 = sub nsw i64 %mid5.i5.i.i.i.i.i.i, %mid36.i10.i.i.i.i.i.i %mid47.i15.i.i.i.i.i.i = lshr i64 %14, 1 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %mid47.i15.i.i.i.i.i.i %18 = sub i64 %14, %mid47.i15.i.i.i.i.i.i %mid5.i.i.i.i.i.i.i = lshr i64 %12, 1 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %mid5.i.i.i.i.i.i.i %20 = sub i64 %12, %mid5.i.i.i.i.i.i.i %mid36.i.i.i.i.i.i.i = lshr i64 %12, 2 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %mid36.i.i.i.i.i.i.i %22 = sub nsw i64 %mid5.i.i.i.i.i.i.i, %mid36.i.i.i.i.i.i.i %mid47.i.i.i.i.i.i.i = lshr i64 %20, 1 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %mid47.i.i.i.i.i.i.i %24 = sub i64 %20, %mid47.i.i.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i10.i.i.i.i.i.i, i64 %16) %_0.0.sroa.speculated.i.i.i4.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i.i.i, i64 %mid47.i15.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i.i.i, i64 %18) %_0.0.sroa.speculated.i.i.i23.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i.i.i, i64 %mid36.i.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i34.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i23.i.i.i, i64 %22) %_0.0.sroa.speculated.i.i.i45.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i34.i.i.i, i64 %mid47.i.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i56.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i45.i.i.i, i64 %24) %_0.0.sroa.speculated.i.i.i67.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i56.i.i.i, i64 %new_len.i.i.i.i) %_2.i.i.i653.not.i.i.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i67.i.i.i, 0 br i1 %_2.i.i.i653.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h181323534c1e5ef5E.exit", label %bb12.i.i.i.i.i bb19.i.i.i.i.i: ; preds = %bb17.i.i.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !40 unreachable bb12.i.i.i.i.i: ; preds = %bb20.i.i.i.i.i, %bb12.i.i.i.i.i %iter.i.i.sroa.57.0654.i.i.i = phi i64 [ %25, %bb12.i.i.i.i.i ], [ 0, %bb20.i.i.i.i.i ] %25 = add nuw nsw i64 %iter.i.i.sroa.57.0654.i.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.i.i.sroa.57.0654.i.i.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i %w1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !28, !noalias !41 %26 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i, i64 1 %w2.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %26, align 8, !alias.scope !28, !noalias !41 %27 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i, i64 2 %w3.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %27, align 8, !alias.scope !28, !noalias !41 %28 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i, i64 3 %w4.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !28, !noalias !41 %29 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i, i64 4 %w5.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %29, align 8, !alias.scope !28, !noalias !41 %30 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i, i64 5 %w6.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %30, align 8, !alias.scope !28, !noalias !41 %31 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0654.i.i.i, i64 6 %w7.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %31, align 8, !alias.scope !28, !noalias !41 %_53.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_54.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_55.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_56.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_57.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_58.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_59.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %_60.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %32 = shufflevector <4 x double> %_54.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %34 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %35 = fmul <4 x double> %34, %32 %36 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %_54.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %35) #23 %37 = shufflevector <4 x double> %_55.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %39 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %40 = fmul <4 x double> %39, %37 %41 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %_55.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %40) #23 %42 = shufflevector <4 x double> %_56.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %43 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %44 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %45 = fmul <4 x double> %44, %42 %46 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %_56.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %45) #23 %47 = shufflevector <4 x double> %_57.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %48 = shufflevector <4 x double> %w4.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %49 = shufflevector <4 x double> %w4.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %50 = fmul <4 x double> %49, %47 %51 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %_57.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %50) #23 %52 = shufflevector <4 x double> %_58.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w5.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %54 = shufflevector <4 x double> %w5.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %54, %52 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %53, <4 x double> %_58.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %55) #23 %57 = shufflevector <4 x double> %_59.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %58 = shufflevector <4 x double> %w6.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w6.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %59, %57 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %_59.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %60) #23 %62 = shufflevector <4 x double> %_60.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %63 = shufflevector <4 x double> %w7.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %64 = shufflevector <4 x double> %w7.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %64, %62 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %63, <4 x double> %_60.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %65) #23 %67 = fadd <4 x double> %_53.i.i.sroa.0.0.copyload.i.i.i, %51 %68 = fsub <4 x double> %_53.i.i.sroa.0.0.copyload.i.i.i, %51 %69 = fadd <4 x double> %41, %61 %70 = fsub <4 x double> %41, %61 %71 = bitcast <4 x double> %70 to <4 x i64> %72 = xor <4 x i64> %71, %73 = bitcast <4 x i64> %72 to <4 x double> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fadd <4 x double> %36, %56 %76 = fsub <4 x double> %36, %56 %77 = fadd <4 x double> %46, %66 %78 = fsub <4 x double> %46, %66 %79 = bitcast <4 x double> %78 to <4 x i64> %80 = xor <4 x i64> %79, %81 = bitcast <4 x i64> %80 to <4 x double> %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fadd <4 x double> %67, %69 %84 = fadd <4 x double> %75, %77 %85 = fsub <4 x double> %67, %69 %86 = fsub <4 x double> %75, %77 %87 = bitcast <4 x double> %86 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = fsub <4 x double> %68, %74 %92 = fsub <4 x double> %76, %82 %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %92, %96 %98 = fmul <4 x double> %97, %99 = fadd <4 x double> %68, %74 %100 = fadd <4 x double> %76, %82 %101 = bitcast <4 x double> %100 to <4 x i64> %102 = xor <4 x i64> %101, %103 = bitcast <4 x i64> %102 to <4 x double> %104 = shufflevector <4 x double> %103, <4 x double> poison, <4 x i32> %105 = fadd <4 x double> %100, %104 %106 = fmul <4 x double> %105, %107 = fadd <4 x double> %83, %84 %108 = fadd <4 x double> %91, %98 %109 = fsub <4 x double> %85, %90 %110 = fsub <4 x double> %99, %106 %111 = fsub <4 x double> %83, %84 %112 = fsub <4 x double> %91, %98 %113 = fadd <4 x double> %85, %90 %114 = fadd <4 x double> %99, %106 store <4 x double> %107, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %108, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %109, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %111, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %113, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 store <4 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !25, !noalias !42 %exitcond.not.i.i.i = icmp eq i64 %25, %_0.0.sroa.speculated.i.i.i67.i.i.i br i1 %exitcond.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h181323534c1e5ef5E.exit", label %bb12.i.i.i.i.i "_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h181323534c1e5ef5E.exit": ; preds = %bb12.i.i.i.i.i, %bb20.i.i.i.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h20581689dd8920eaE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h64f43a13d277049fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h206a16aa640d1130E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hca7a51cdc7d0321fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h20e04d95ba8bdf79E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h82b57366c2eece62E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h211ace6e34799c35E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3b9bd248865c2917E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h244113317c21b9d4E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf9a8f6e1c93c6a7cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2518230c8a974652E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0e6ea17ba832356eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h255b113b51e1dd7aE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf5ac62e6f5e367c2E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h25b63e7838be1625E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc43363985977744fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2618ae3f91292788E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7c917178f3783879E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c534fcadd1c262bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h29bcea11fc3e04dbE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9770f79c3b1b2d78E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2a102e58d217dd6aE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3c30aa6807d5ffa6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2a2745f2b48217b5E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h884c20ba690e1299E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2a6b0633466a4c5dE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h06ac1d28c16f6e5cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2c7ce3adaf1a0a93E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcc8fa6a9cbaaab03E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h2cebb053acc32075E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !43) tail call void @llvm.experimental.noalias.scope.decl(metadata !46) %4 = shl nsw i64 %3, 4 %_13.i2.i = urem i64 %4, 48 %new_len.i.i = udiv i64 %4, 48 %5 = icmp eq i64 %_13.i2.i, 0 br i1 %5, label %bb16.i.i, label %bb15.i.i bb16.i.i: ; preds = %start %mid5.i.i.i = lshr i64 %1, 1 %6 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid5.i.i.i %7 = sub i64 %1, %mid5.i.i.i %mid36.i.i.i = lshr i64 %1, 2 %8 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid36.i.i.i %9 = sub nsw i64 %mid5.i.i.i, %mid36.i.i.i %mid47.i.i.i = lshr i64 %7, 1 %10 = getelementptr %"num_complex::Complex", ptr %6, i64 %mid47.i.i.i %11 = sub i64 %7, %mid47.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i.i.i, i64 %9) %_0.0.sroa.speculated.i.i.i4.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i.i.i) %_0.0.sroa.speculated.i.i.i12.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i, i64 %11) %_0.0.sroa.speculated.i.i.i23.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i, i64 %new_len.i.i) %_2.i.i.i12.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i, 0 br i1 %_2.i.i.i12.not.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E.exit", label %bb8.i.i.preheader bb8.i.i.preheader: ; preds = %bb16.i.i %min.iters.check = icmp ult i64 %_0.0.sroa.speculated.i.i.i23.i, 32 br i1 %min.iters.check, label %bb8.i.i.preheader157, label %vector.scevcheck vector.scevcheck: ; preds = %bb8.i.i.preheader %12 = add nsw i64 %_0.0.sroa.speculated.i.i.i23.i, -1 %mul.result = shl nsw i64 %12, 4 %13 = getelementptr i8, ptr %6, i64 %mul.result %14 = icmp ult ptr %13, %6 %15 = shl i64 %mid5.i.i.i, 4 %16 = or disjoint i64 %15, 8 %scevgep = getelementptr i8, ptr %0, i64 %16 %mul.result2 = shl nsw i64 %12, 4 %mul.overflow3 = icmp ugt i64 %12, 1152921504606846975 %17 = getelementptr i8, ptr %scevgep, i64 %mul.result2 %18 = icmp ult ptr %17, %scevgep %19 = or i1 %18, %mul.overflow3 %mul.result5 = shl nsw i64 %12, 4 %20 = getelementptr i8, ptr %8, i64 %mul.result5 %21 = icmp ult ptr %20, %8 %22 = shl i64 %mid36.i.i.i, 4 %23 = or disjoint i64 %22, 8 %scevgep7 = getelementptr i8, ptr %0, i64 %23 %mul.result9 = shl nsw i64 %12, 4 %24 = getelementptr i8, ptr %scevgep7, i64 %mul.result9 %25 = icmp ult ptr %24, %scevgep7 %mul.result12 = shl nsw i64 %12, 4 %26 = getelementptr i8, ptr %10, i64 %mul.result12 %27 = icmp ult ptr %26, %10 %28 = add nuw i64 %mid5.i.i.i, %mid47.i.i.i %29 = shl i64 %28, 4 %30 = or disjoint i64 %29, 8 %scevgep14 = getelementptr i8, ptr %0, i64 %30 %mul.result16 = shl nsw i64 %12, 4 %31 = getelementptr i8, ptr %scevgep14, i64 %mul.result16 %32 = icmp ult ptr %31, %scevgep14 %33 = or i1 %14, %19 %34 = or i1 %21, %33 %35 = or i1 %25, %34 %36 = or i1 %27, %35 %37 = or i1 %32, %36 br i1 %37, label %bb8.i.i.preheader157, label %vector.memcheck vector.memcheck: ; preds = %vector.scevcheck %38 = shl nuw nsw i64 %_0.0.sroa.speculated.i.i.i23.i, 4 %39 = getelementptr i8, ptr %0, i64 %38 %scevgep18 = getelementptr i8, ptr %39, i64 -8 %scevgep19 = getelementptr i8, ptr %0, i64 8 %scevgep20 = getelementptr i8, ptr %0, i64 %38 %40 = shl i64 %mid5.i.i.i, 4 %41 = add i64 %38, %40 %42 = getelementptr i8, ptr %0, i64 %41 %scevgep21 = getelementptr i8, ptr %42, i64 -8 %43 = or disjoint i64 %40, 8 %scevgep22 = getelementptr i8, ptr %0, i64 %43 %scevgep23 = getelementptr i8, ptr %0, i64 %41 %44 = shl i64 %mid36.i.i.i, 4 %45 = add i64 %38, %44 %46 = getelementptr i8, ptr %0, i64 %45 %scevgep24 = getelementptr i8, ptr %46, i64 -8 %47 = or disjoint i64 %44, 8 %scevgep25 = getelementptr i8, ptr %0, i64 %47 %scevgep26 = getelementptr i8, ptr %0, i64 %45 %48 = shl i64 %mid47.i.i.i, 4 %49 = getelementptr i8, ptr %0, i64 %38 %50 = getelementptr i8, ptr %49, i64 %40 %51 = getelementptr i8, ptr %50, i64 %48 %scevgep27 = getelementptr i8, ptr %51, i64 -8 %52 = add i64 %40, %48 %53 = or disjoint i64 %52, 8 %scevgep28 = getelementptr i8, ptr %0, i64 %53 %54 = getelementptr i8, ptr %0, i64 %38 %55 = getelementptr i8, ptr %54, i64 %40 %scevgep29 = getelementptr i8, ptr %55, i64 %48 %bound0 = icmp ugt ptr %scevgep20, %0 %bound1 = icmp ult ptr %scevgep19, %scevgep18 %found.conflict = and i1 %bound0, %bound1 %bound030 = icmp ugt ptr %scevgep21, %0 %bound131 = icmp ult ptr %6, %scevgep18 %found.conflict32 = and i1 %bound030, %bound131 %conflict.rdx = or i1 %found.conflict, %found.conflict32 %bound033 = icmp ugt ptr %scevgep23, %0 %bound134 = icmp ult ptr %scevgep22, %scevgep18 %found.conflict35 = and i1 %bound033, %bound134 %conflict.rdx36 = or i1 %conflict.rdx, %found.conflict35 %bound037 = icmp ugt ptr %scevgep24, %0 %bound138 = icmp ult ptr %8, %scevgep18 %found.conflict39 = and i1 %bound037, %bound138 %conflict.rdx40 = or i1 %conflict.rdx36, %found.conflict39 %bound041 = icmp ugt ptr %scevgep26, %0 %bound142 = icmp ult ptr %scevgep25, %scevgep18 %found.conflict43 = and i1 %bound041, %bound142 %conflict.rdx44 = or i1 %conflict.rdx40, %found.conflict43 %bound045 = icmp ugt ptr %scevgep27, %0 %bound146 = icmp ult ptr %10, %scevgep18 %found.conflict47 = and i1 %bound045, %bound146 %conflict.rdx48 = or i1 %conflict.rdx44, %found.conflict47 %bound049 = icmp ugt ptr %scevgep29, %0 %bound150 = icmp ult ptr %scevgep28, %scevgep18 %found.conflict51 = and i1 %bound049, %bound150 %conflict.rdx52 = or i1 %conflict.rdx48, %found.conflict51 %bound053 = icmp ult ptr %scevgep19, %scevgep21 %bound154 = icmp ult ptr %6, %scevgep20 %found.conflict55 = and i1 %bound053, %bound154 %conflict.rdx56 = or i1 %conflict.rdx52, %found.conflict55 %bound057 = icmp ult ptr %scevgep19, %scevgep23 %bound158 = icmp ult ptr %scevgep22, %scevgep20 %found.conflict59 = and i1 %bound057, %bound158 %conflict.rdx60 = or i1 %conflict.rdx56, %found.conflict59 %bound061 = icmp ult ptr %scevgep19, %scevgep24 %bound162 = icmp ult ptr %8, %scevgep20 %found.conflict63 = and i1 %bound061, %bound162 %conflict.rdx64 = or i1 %conflict.rdx60, %found.conflict63 %bound065 = icmp ult ptr %scevgep19, %scevgep26 %bound166 = icmp ult ptr %scevgep25, %scevgep20 %found.conflict67 = and i1 %bound065, %bound166 %conflict.rdx68 = or i1 %conflict.rdx64, %found.conflict67 %bound069 = icmp ult ptr %scevgep19, %scevgep27 %bound170 = icmp ult ptr %10, %scevgep20 %found.conflict71 = and i1 %bound069, %bound170 %conflict.rdx72 = or i1 %conflict.rdx68, %found.conflict71 %bound073 = icmp ult ptr %scevgep19, %scevgep29 %bound174 = icmp ult ptr %scevgep28, %scevgep20 %found.conflict75 = and i1 %bound073, %bound174 %conflict.rdx76 = or i1 %conflict.rdx72, %found.conflict75 %bound077 = icmp ult ptr %6, %scevgep23 %bound178 = icmp ult ptr %scevgep22, %scevgep21 %found.conflict79 = and i1 %bound077, %bound178 %conflict.rdx80 = or i1 %conflict.rdx76, %found.conflict79 %bound081 = icmp ult ptr %6, %scevgep24 %bound182 = icmp ult ptr %8, %scevgep21 %found.conflict83 = and i1 %bound081, %bound182 %conflict.rdx84 = or i1 %conflict.rdx80, %found.conflict83 %bound085 = icmp ult ptr %6, %scevgep26 %bound186 = icmp ult ptr %scevgep25, %scevgep21 %found.conflict87 = and i1 %bound085, %bound186 %conflict.rdx88 = or i1 %conflict.rdx84, %found.conflict87 %bound089 = icmp ult ptr %6, %scevgep27 %bound190 = icmp ult ptr %10, %scevgep21 %found.conflict91 = and i1 %bound089, %bound190 %conflict.rdx92 = or i1 %conflict.rdx88, %found.conflict91 %bound093 = icmp ult ptr %6, %scevgep29 %bound194 = icmp ult ptr %scevgep28, %scevgep21 %found.conflict95 = and i1 %bound093, %bound194 %conflict.rdx96 = or i1 %conflict.rdx92, %found.conflict95 %bound097 = icmp ult ptr %scevgep22, %scevgep24 %bound198 = icmp ult ptr %8, %scevgep23 %found.conflict99 = and i1 %bound097, %bound198 %conflict.rdx100 = or i1 %conflict.rdx96, %found.conflict99 %bound0101 = icmp ult ptr %scevgep22, %scevgep26 %bound1102 = icmp ult ptr %scevgep25, %scevgep23 %found.conflict103 = and i1 %bound0101, %bound1102 %conflict.rdx104 = or i1 %conflict.rdx100, %found.conflict103 %bound0105 = icmp ult ptr %scevgep22, %scevgep27 %bound1106 = icmp ult ptr %10, %scevgep23 %found.conflict107 = and i1 %bound0105, %bound1106 %conflict.rdx108 = or i1 %conflict.rdx104, %found.conflict107 %bound0109 = icmp ult ptr %scevgep22, %scevgep29 %bound1110 = icmp ult ptr %scevgep28, %scevgep23 %found.conflict111 = and i1 %bound0109, %bound1110 %conflict.rdx112 = or i1 %conflict.rdx108, %found.conflict111 %bound0113 = icmp ult ptr %8, %scevgep26 %bound1114 = icmp ult ptr %scevgep25, %scevgep24 %found.conflict115 = and i1 %bound0113, %bound1114 %conflict.rdx116 = or i1 %conflict.rdx112, %found.conflict115 %bound0117 = icmp ult ptr %8, %scevgep27 %bound1118 = icmp ult ptr %10, %scevgep24 %found.conflict119 = and i1 %bound0117, %bound1118 %conflict.rdx120 = or i1 %conflict.rdx116, %found.conflict119 %bound0121 = icmp ult ptr %8, %scevgep29 %bound1122 = icmp ult ptr %scevgep28, %scevgep24 %found.conflict123 = and i1 %bound0121, %bound1122 %conflict.rdx124 = or i1 %conflict.rdx120, %found.conflict123 %bound0125 = icmp ult ptr %scevgep25, %scevgep27 %bound1126 = icmp ult ptr %10, %scevgep26 %found.conflict127 = and i1 %bound0125, %bound1126 %conflict.rdx128 = or i1 %conflict.rdx124, %found.conflict127 %bound0129 = icmp ult ptr %scevgep25, %scevgep29 %bound1130 = icmp ult ptr %scevgep28, %scevgep26 %found.conflict131 = and i1 %bound0129, %bound1130 %conflict.rdx132 = or i1 %conflict.rdx128, %found.conflict131 %bound0133 = icmp ult ptr %10, %scevgep29 %bound1134 = icmp ult ptr %scevgep28, %scevgep27 %found.conflict135 = and i1 %bound0133, %bound1134 %conflict.rdx136 = or i1 %conflict.rdx132, %found.conflict135 br i1 %conflict.rdx136, label %bb8.i.i.preheader157, label %vector.ph vector.ph: ; preds = %vector.memcheck %n.vec = and i64 %_0.0.sroa.speculated.i.i.i23.i, 576460752303423484 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %56 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %57 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %58 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %59 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %60 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %index %wide.vec = load <24 x double>, ptr %60, align 8, !alias.scope !46, !noalias !43 %strided.vec = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec137 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec138 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec139 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec140 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %strided.vec141 = shufflevector <24 x double> %wide.vec, <24 x double> poison, <4 x i32> %wide.vec142 = load <8 x double>, ptr %56, align 8, !alias.scope !43, !noalias !46 %strided.vec143 = shufflevector <8 x double> %wide.vec142, <8 x double> poison, <4 x i32> %strided.vec144 = shufflevector <8 x double> %wide.vec142, <8 x double> poison, <4 x i32> %wide.vec145 = load <8 x double>, ptr %57, align 8, !alias.scope !43, !noalias !46 %strided.vec146 = shufflevector <8 x double> %wide.vec145, <8 x double> poison, <4 x i32> %strided.vec147 = shufflevector <8 x double> %wide.vec145, <8 x double> poison, <4 x i32> %wide.vec148 = load <8 x double>, ptr %58, align 8, !alias.scope !43, !noalias !46 %strided.vec149 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %strided.vec150 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %wide.vec151 = load <8 x double>, ptr %59, align 8, !alias.scope !43, !noalias !46 %strided.vec152 = shufflevector <8 x double> %wide.vec151, <8 x double> poison, <4 x i32> %strided.vec153 = shufflevector <8 x double> %wide.vec151, <8 x double> poison, <4 x i32> %61 = fadd <4 x double> %strided.vec143, %strided.vec149 %62 = fadd <4 x double> %strided.vec144, %strided.vec150 %63 = fsub <4 x double> %strided.vec143, %strided.vec149 %64 = fsub <4 x double> %strided.vec144, %strided.vec150 %65 = fadd <4 x double> %strided.vec146, %strided.vec152 %66 = fadd <4 x double> %strided.vec147, %strided.vec153 %67 = fsub <4 x double> %strided.vec146, %strided.vec152 %68 = fsub <4 x double> %strided.vec147, %strided.vec153 %69 = fadd <4 x double> %61, %65 %70 = fadd <4 x double> %62, %66 %71 = fadd <4 x double> %63, %68 %72 = fsub <4 x double> %64, %67 %73 = fneg <4 x double> %strided.vec137 %74 = fmul <4 x double> %72, %73 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %71, <4 x double> %74) %76 = fmul <4 x double> %strided.vec137, %71 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %72, <4 x double> %76) %78 = fsub <4 x double> %61, %65 %79 = fsub <4 x double> %62, %66 %80 = fneg <4 x double> %strided.vec139 %81 = fmul <4 x double> %79, %80 %82 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec138, <4 x double> %78, <4 x double> %81) %83 = fmul <4 x double> %strided.vec139, %78 %84 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec138, <4 x double> %79, <4 x double> %83) %85 = fsub <4 x double> %63, %68 %86 = fadd <4 x double> %64, %67 %87 = fneg <4 x double> %strided.vec141 %88 = fmul <4 x double> %86, %87 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec140, <4 x double> %85, <4 x double> %88) %90 = fmul <4 x double> %strided.vec141, %85 %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec140, <4 x double> %86, <4 x double> %90) %interleaved.vec = shufflevector <4 x double> %69, <4 x double> %70, <8 x i32> store <8 x double> %interleaved.vec, ptr %56, align 8, !alias.scope !43, !noalias !46 %interleaved.vec154 = shufflevector <4 x double> %75, <4 x double> %77, <8 x i32> store <8 x double> %interleaved.vec154, ptr %58, align 8, !alias.scope !43, !noalias !46 %interleaved.vec155 = shufflevector <4 x double> %82, <4 x double> %84, <8 x i32> store <8 x double> %interleaved.vec155, ptr %57, align 8, !alias.scope !43, !noalias !46 %interleaved.vec156 = shufflevector <4 x double> %89, <4 x double> %91, <8 x i32> store <8 x double> %interleaved.vec156, ptr %59, align 8, !alias.scope !43, !noalias !46 %index.next = add nuw i64 %index, 4 %92 = icmp eq i64 %index.next, %n.vec br i1 %92, label %middle.block, label %vector.body, !llvm.loop !48 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i, %n.vec br i1 %cmp.n, label %"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E.exit", label %bb8.i.i.preheader157 bb8.i.i.preheader157: ; preds = %vector.memcheck, %vector.scevcheck, %bb8.i.i.preheader, %middle.block %iter.i.sroa.29.013.i.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ 0, %bb8.i.i.preheader ], [ %n.vec, %middle.block ] br label %bb8.i.i bb15.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !49 unreachable bb8.i.i: ; preds = %bb8.i.i.preheader157, %bb8.i.i %iter.i.sroa.29.013.i = phi i64 [ %93, %bb8.i.i ], [ %iter.i.sroa.29.013.i.ph, %bb8.i.i.preheader157 ] %93 = add nuw nsw i64 %iter.i.sroa.29.013.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.29.013.i %_3.i2.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %iter.i.sroa.29.013.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %iter.i.sroa.29.013.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %iter.i.sroa.29.013.i %_3.i.i.i.i.i = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i %w1.0.i.i = load double, ptr %_3.i.i.i.i.i, align 8, !alias.scope !46, !noalias !43, !noundef !3 %94 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i, i64 8 %w1.1.i.i = load double, ptr %94, align 8, !alias.scope !46, !noalias !43, !noundef !3 %95 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 1 %w2.0.i.i = load double, ptr %95, align 8, !alias.scope !46, !noalias !43, !noundef !3 %96 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 1, i32 1 %w2.1.i.i = load double, ptr %96, align 8, !alias.scope !46, !noalias !43, !noundef !3 %97 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 2 %w3.0.i.i = load double, ptr %97, align 8, !alias.scope !46, !noalias !43, !noundef !3 %98 = getelementptr inbounds [3 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.29.013.i, i64 2, i32 1 %w3.1.i.i = load double, ptr %98, align 8, !alias.scope !46, !noalias !43, !noundef !3 %_6.i5.i.i.i = fneg double %w1.1.i.i %_6.i2.i.i.i = fneg double %w2.1.i.i %_6.i.i.i.i = fneg double %w3.1.i.i %99 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %100 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %101 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %102 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %103 = fadd <2 x double> %99, %101 %104 = fadd <2 x double> %100, %102 %105 = fadd <2 x double> %103, %104 store <2 x double> %105, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %106 = fsub <2 x double> %99, %101 %107 = fsub <2 x double> %100, %102 %108 = shufflevector <2 x double> %107, <2 x double> poison, <2 x i32> %109 = fsub <2 x double> %106, %108 %110 = fadd <2 x double> %106, %108 %111 = shufflevector <2 x double> %109, <2 x double> %110, <2 x i32> %112 = shufflevector <2 x double> %111, <2 x double> poison, <2 x i32> %113 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %114 = insertelement <2 x double> %113, double %w3.1.i.i, i64 1 %115 = fmul <2 x double> %112, %114 %116 = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %117 = shufflevector <2 x double> %116, <2 x double> poison, <2 x i32> zeroinitializer %118 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %117, <2 x double> %111, <2 x double> %115) %119 = shufflevector <2 x double> %110, <2 x double> %109, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i5.i.i.i, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %127 = fsub <2 x double> %103, %104 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i2.i.i.i, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 store <2 x double> %118, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !43, !noalias !46 %exitcond.not.i = icmp eq i64 %93, %_0.0.sroa.speculated.i.i.i23.i br i1 %exitcond.not.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E.exit", label %bb8.i.i, !llvm.loop !50 "_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E.exit": ; preds = %bb8.i.i, %middle.block, %bb16.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h302ff213fc35b967E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h771272ce831d4a4fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h318cf9026bb13870E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: %_4.i = alloca %"pulp::x86::V4", align 1 %f.i = alloca %"{closure@src/unordered.rs:306:29: 306:31}.838", align 8 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %_4.i) %4 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !51 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !51 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha0fd83e95eee54c8E.exit" bb3.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3286ce7dcee51f84ec1b7126e82f741d) #22, !noalias !51 unreachable "_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha0fd83e95eee54c8E.exit": ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %f.i), !noalias !51 store ptr %_4.i, ptr %f.i, align 8, !noalias !51 %6 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f.i, i64 0, i32 1 store ptr %0, ptr %6, align 8, !noalias !51 %7 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f.i, i64 0, i32 1, i32 1 store i64 %1, ptr %7, align 8, !noalias !51 %8 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f.i, i64 0, i32 2 store ptr %2, ptr %8, align 8, !noalias !51 %9 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f.i, i64 0, i32 2, i32 1 store i64 %3, ptr %9, align 8, !noalias !51 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17haaee66dac2368b6dE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %f.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %f.i), !noalias !51 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %_4.i) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h33317e12ea3a8c19E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf97d1d54e2713546E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h335053178fa6d3d3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h67adc6148f484afdE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h33c0e7a616f1a7b8E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h07f5ff009bc7a7cdE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h33deb5de25fd2d58E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5233fab38f5b6026E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h342d7c1848bd507cE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd1fe2728027240b7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h358fe581f2e1c411E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6b129e5dae0ddb8fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3601bcc36a74b6e3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0eac7b5dcb8b7592E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h362df0cd08218524E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7073cb222a4bdfecE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h363009ad56eabd90E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he58dcc63249b979eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3935393503bf4e15E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc7659f76a4ab3799E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h396f966ddeae67ddE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2f039564e7210fa1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h39fe6d403d2906beE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h44b89be497dd35c3E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3a6db6188b47f1f8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hbc19dbac4c25a29bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3c1d5b1aabfed9ffE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf03eaab66abbb107E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3c7503bdac670885E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h30f63b3e966b2757E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3cd3cf06e5dd1d47E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4323d5d3b8d24106E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3dcbd228650df949E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfaa8b062e0401dd7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h3fb778f5a66a08cbE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h40b9baf698c66902E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h40f4b6dfdf44ac20E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd808e1dbfd861110E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h41342e1f98595c54E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h09a01f119f96a509E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h431bd8be7dd67df6E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd15d2272f926f09dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h437254b76ef6b930E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h308437491cd54e99E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h43991bb1d0c2b002E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he3ff8e96b4bfa382E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h43e1ec8a2c22051bE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he322d373ec6072e9E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h456ede137ee0cb99E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h59d4b4fffcf96db2E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h46bdaa267e6b2cebE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h12b5594aa9f7fe50E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h47248c3661c52b46E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h39964f274619d0afE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h479b1e159c177d0fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h81ce9b9021fd41deE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h47fd729c86e270b3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h188d59fb75825670E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h499d7916cbd71990E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he3b9f30c2a75017eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h499ffe64f41c2ca9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he8c71033b2a7503aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h49e1aab93503da34E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #3 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !55) tail call void @llvm.experimental.noalias.scope.decl(metadata !58) %mid16.i.i = lshr i64 %1, 1 %4 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid16.i.i %5 = sub i64 %1, %mid16.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid16.i.i, i64 %5) %_0.0.sroa.speculated.i.i.i1.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %3) %_2.i.i.i7.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i1.i, 0 br i1 %_2.i.i.i7.not.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E.exit", label %bb5.i.i.preheader bb5.i.i.preheader: ; preds = %start %min.iters.check = icmp ult i64 %_0.0.sroa.speculated.i.i.i1.i, 24 br i1 %min.iters.check, label %bb5.i.i.preheader37, label %vector.scevcheck vector.scevcheck: ; preds = %bb5.i.i.preheader %6 = add nsw i64 %_0.0.sroa.speculated.i.i.i1.i, -1 %mul.result = shl i64 %6, 4 %7 = getelementptr i8, ptr %4, i64 %mul.result %8 = icmp ult ptr %7, %4 %9 = shl i64 %mid16.i.i, 4 %10 = or disjoint i64 %9, 8 %scevgep = getelementptr i8, ptr %0, i64 %10 %mul.result2 = shl i64 %6, 4 %mul.overflow3 = icmp ugt i64 %6, 1152921504606846975 %11 = getelementptr i8, ptr %scevgep, i64 %mul.result2 %12 = icmp ult ptr %11, %scevgep %13 = or i1 %12, %mul.overflow3 %14 = or i1 %8, %13 br i1 %14, label %bb5.i.i.preheader37, label %vector.memcheck vector.memcheck: ; preds = %vector.scevcheck %15 = shl i64 %_0.0.sroa.speculated.i.i.i1.i, 4 %16 = getelementptr i8, ptr %0, i64 %15 %scevgep4 = getelementptr i8, ptr %16, i64 -8 %scevgep5 = getelementptr i8, ptr %0, i64 8 %scevgep6 = getelementptr i8, ptr %0, i64 %15 %17 = shl i64 %mid16.i.i, 4 %18 = add i64 %15, %17 %19 = getelementptr i8, ptr %0, i64 %18 %scevgep7 = getelementptr i8, ptr %19, i64 -8 %20 = or disjoint i64 %17, 8 %scevgep8 = getelementptr i8, ptr %0, i64 %20 %scevgep9 = getelementptr i8, ptr %0, i64 %18 %bound0 = icmp ugt ptr %scevgep6, %0 %bound1 = icmp ult ptr %scevgep5, %scevgep4 %found.conflict = and i1 %bound0, %bound1 %bound010 = icmp ugt ptr %scevgep7, %0 %bound111 = icmp ult ptr %4, %scevgep4 %found.conflict12 = and i1 %bound010, %bound111 %conflict.rdx = or i1 %found.conflict, %found.conflict12 %bound013 = icmp ugt ptr %scevgep9, %0 %bound114 = icmp ult ptr %scevgep8, %scevgep4 %found.conflict15 = and i1 %bound013, %bound114 %conflict.rdx16 = or i1 %conflict.rdx, %found.conflict15 %bound017 = icmp ult ptr %scevgep5, %scevgep7 %bound118 = icmp ult ptr %4, %scevgep6 %found.conflict19 = and i1 %bound017, %bound118 %conflict.rdx20 = or i1 %conflict.rdx16, %found.conflict19 %bound021 = icmp ult ptr %scevgep5, %scevgep9 %bound122 = icmp ult ptr %scevgep8, %scevgep6 %found.conflict23 = and i1 %bound021, %bound122 %conflict.rdx24 = or i1 %conflict.rdx20, %found.conflict23 %bound025 = icmp ult ptr %4, %scevgep9 %bound126 = icmp ult ptr %scevgep8, %scevgep7 %found.conflict27 = and i1 %bound025, %bound126 %conflict.rdx28 = or i1 %conflict.rdx24, %found.conflict27 br i1 %conflict.rdx28, label %bb5.i.i.preheader37, label %vector.ph vector.ph: ; preds = %vector.memcheck %n.vec = and i64 %_0.0.sroa.speculated.i.i.i1.i, 9223372036854775804 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %21 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %23 = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %23, align 8, !alias.scope !58, !noalias !55 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %21, align 8, !alias.scope !55, !noalias !58 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %22, align 8, !alias.scope !55, !noalias !58 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %24 = fneg <4 x double> %strided.vec29 %25 = fmul <4 x double> %strided.vec35, %24 %26 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %strided.vec34, <4 x double> %25) %27 = fmul <4 x double> %strided.vec29, %strided.vec34 %28 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %strided.vec35, <4 x double> %27) %29 = fadd <4 x double> %strided.vec31, %26 %30 = fadd <4 x double> %strided.vec32, %28 %31 = fsub <4 x double> %strided.vec31, %26 %32 = fsub <4 x double> %strided.vec32, %28 %interleaved.vec = shufflevector <4 x double> %29, <4 x double> %30, <8 x i32> store <8 x double> %interleaved.vec, ptr %21, align 8, !alias.scope !55, !noalias !58 %interleaved.vec36 = shufflevector <4 x double> %31, <4 x double> %32, <8 x i32> store <8 x double> %interleaved.vec36, ptr %22, align 8, !alias.scope !55, !noalias !58 %index.next = add nuw i64 %index, 4 %33 = icmp eq i64 %index.next, %n.vec br i1 %33, label %middle.block, label %vector.body, !llvm.loop !60 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %_0.0.sroa.speculated.i.i.i1.i, %n.vec br i1 %cmp.n, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E.exit", label %bb5.i.i.preheader37 bb5.i.i.preheader37: ; preds = %vector.memcheck, %vector.scevcheck, %bb5.i.i.preheader, %middle.block %iter.i.sroa.15.08.i.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ 0, %bb5.i.i.preheader ], [ %n.vec, %middle.block ] %.neg = or disjoint i64 %iter.i.sroa.15.08.i.ph, 1 %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i1.i, 1 %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %bb5.i.i.prol.loopexit, label %bb5.i.i.prol bb5.i.i.prol: ; preds = %bb5.i.i.preheader37 %34 = or disjoint i64 %iter.i.sroa.15.08.i.ph, 1 %_3.i.i.i.i.i.i.i.prol = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.15.08.i.ph %_3.i2.i.i.i.i.i.i.prol = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %iter.i.sroa.15.08.i.ph %_3.i.i.i.i.i.prol = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.15.08.i.ph %w1.0.i.i.prol = load double, ptr %_3.i.i.i.i.i.prol, align 8, !alias.scope !58, !noalias !55, !noundef !3 %35 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.prol, i64 8 %w1.1.i.i.prol = load double, ptr %35, align 8, !alias.scope !58, !noalias !55, !noundef !3 %_6.i.i.i.prol = fneg double %w1.1.i.i.prol %36 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.prol, align 8, !alias.scope !55, !noalias !58 %37 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.prol, align 8, !alias.scope !55, !noalias !58 %38 = insertelement <2 x double> poison, double %w1.1.i.i.prol, i64 0 %39 = insertelement <2 x double> %38, double %_6.i.i.i.prol, i64 1 %40 = fmul <2 x double> %37, %39 %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> %42 = insertelement <2 x double> poison, double %w1.0.i.i.prol, i64 0 %43 = shufflevector <2 x double> %42, <2 x double> poison, <2 x i32> zeroinitializer %44 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %43, <2 x double> %37, <2 x double> %41) %45 = fsub <2 x double> %36, %44 %46 = fadd <2 x double> %36, %44 store <2 x double> %46, ptr %_3.i.i.i.i.i.i.i.prol, align 8, !alias.scope !55, !noalias !58 store <2 x double> %45, ptr %_3.i2.i.i.i.i.i.i.prol, align 8, !alias.scope !55, !noalias !58 br label %bb5.i.i.prol.loopexit bb5.i.i.prol.loopexit: ; preds = %bb5.i.i.prol, %bb5.i.i.preheader37 %iter.i.sroa.15.08.i.unr = phi i64 [ %iter.i.sroa.15.08.i.ph, %bb5.i.i.preheader37 ], [ %34, %bb5.i.i.prol ] %47 = icmp eq i64 %_0.0.sroa.speculated.i.i.i1.i, %.neg br i1 %47, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E.exit", label %bb5.i.i bb5.i.i: ; preds = %bb5.i.i.prol.loopexit, %bb5.i.i %iter.i.sroa.15.08.i = phi i64 [ %61, %bb5.i.i ], [ %iter.i.sroa.15.08.i.unr, %bb5.i.i.prol.loopexit ] %48 = add nuw nsw i64 %iter.i.sroa.15.08.i, 1 %_3.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.15.08.i %_3.i2.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %iter.i.sroa.15.08.i %_3.i.i.i.i.i = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.15.08.i %w1.0.i.i = load double, ptr %_3.i.i.i.i.i, align 8, !alias.scope !58, !noalias !55, !noundef !3 %49 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i, i64 8 %w1.1.i.i = load double, ptr %49, align 8, !alias.scope !58, !noalias !55, !noundef !3 %_6.i.i.i = fneg double %w1.1.i.i %50 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !55, !noalias !58 %51 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i, align 8, !alias.scope !55, !noalias !58 %52 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %53 = insertelement <2 x double> %52, double %_6.i.i.i, i64 1 %54 = fmul <2 x double> %51, %53 %55 = shufflevector <2 x double> %54, <2 x double> poison, <2 x i32> %56 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %57 = shufflevector <2 x double> %56, <2 x double> poison, <2 x i32> zeroinitializer %58 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %57, <2 x double> %51, <2 x double> %55) %59 = fsub <2 x double> %50, %58 %60 = fadd <2 x double> %50, %58 store <2 x double> %60, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !55, !noalias !58 store <2 x double> %59, ptr %_3.i2.i.i.i.i.i.i, align 8, !alias.scope !55, !noalias !58 %61 = add nuw nsw i64 %iter.i.sroa.15.08.i, 2 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %48 %_3.i2.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %48 %_3.i.i.i.i.i.1 = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %48 %w1.0.i.i.1 = load double, ptr %_3.i.i.i.i.i.1, align 8, !alias.scope !58, !noalias !55, !noundef !3 %62 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.1, i64 8 %w1.1.i.i.1 = load double, ptr %62, align 8, !alias.scope !58, !noalias !55, !noundef !3 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %63 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !55, !noalias !58 %64 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !alias.scope !55, !noalias !58 %65 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %66 = insertelement <2 x double> %65, double %_6.i.i.i.1, i64 1 %67 = fmul <2 x double> %64, %66 %68 = shufflevector <2 x double> %67, <2 x double> poison, <2 x i32> %69 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> zeroinitializer %71 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %70, <2 x double> %64, <2 x double> %68) %72 = fsub <2 x double> %63, %71 %73 = fadd <2 x double> %63, %71 store <2 x double> %73, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !55, !noalias !58 store <2 x double> %72, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !alias.scope !55, !noalias !58 %exitcond.not.i.1 = icmp eq i64 %61, %_0.0.sroa.speculated.i.i.i1.i br i1 %exitcond.not.i.1, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E.exit", label %bb5.i.i, !llvm.loop !61 "_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E.exit": ; preds = %bb5.i.i.prol.loopexit, %bb5.i.i, %middle.block, %start ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h4a5102123bb237f3E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !62) tail call void @llvm.experimental.noalias.scope.decl(metadata !65) %4 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !67 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !67 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %bb2.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_43280851d52ab33b05930d4c1dd3aed1) #22, !noalias !67 unreachable bb2.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i %6 = and i64 %1, 1 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb13.i.i.i.i.i, label %bb12.i.i.i.i.i bb13.i.i.i.i.i: ; preds = %bb2.i %8 = shl nsw i64 %3, 4 %_13.i.i.i.i = urem i64 %8, 96 %new_len.i.i.i.i = udiv i64 %8, 96 %9 = icmp eq i64 %_13.i.i.i.i, 0 br i1 %9, label %bb16.i.i.i.i.i, label %bb15.i.i.i.i.i bb12.i.i.i.i.i: ; preds = %bb2.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !68 unreachable bb16.i.i.i.i.i: ; preds = %bb13.i.i.i.i.i %10 = lshr exact i64 %1, 1 %new_len2.i.i.i.i = and i64 %10, 576460752303423487 %mid5.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 1 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid5.i.i.i.i.i.i %12 = sub nsw i64 %new_len2.i.i.i.i, %mid5.i.i.i.i.i.i %mid36.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 2 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid36.i.i.i.i.i.i %14 = sub nsw i64 %mid5.i.i.i.i.i.i, %mid36.i.i.i.i.i.i %mid47.i.i.i.i.i.i = lshr i64 %12, 1 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %mid47.i.i.i.i.i.i %16 = sub i64 %12, %mid47.i.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i.i.i.i.i.i, i64 %14) %_0.0.sroa.speculated.i.i.i4.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i.i.i, i64 %mid47.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i.i.i, i64 %16) %_0.0.sroa.speculated.i.i.i23.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i.i.i, i64 %new_len.i.i.i.i) %_2.i.i.i217.not.i.i.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i.i.i, 0 br i1 %_2.i.i.i217.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h1d5cf2a32f59bd75E.exit", label %bb8.i.i.i.i.i bb15.i.i.i.i.i: ; preds = %bb13.i.i.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !77 unreachable bb8.i.i.i.i.i: ; preds = %bb16.i.i.i.i.i, %bb8.i.i.i.i.i %iter.i.i.sroa.29.0218.i.i.i = phi i64 [ %17, %bb8.i.i.i.i.i ], [ 0, %bb16.i.i.i.i.i ] %17 = add nuw nsw i64 %iter.i.i.sroa.29.0218.i.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.29.0218.i.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.i.i.sroa.29.0218.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.i.i.sroa.29.0218.i.i.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.i.i.sroa.29.0218.i.i.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [3 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.29.0218.i.i.i %w1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !65, !noalias !78 %18 = getelementptr inbounds [3 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.29.0218.i.i.i, i64 1 %w2.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %18, align 8, !alias.scope !65, !noalias !78 %19 = getelementptr inbounds [3 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.29.0218.i.i.i, i64 2 %w3.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %19, align 8, !alias.scope !65, !noalias !78 %_33.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 %_34.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 %_35.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 %_36.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 %20 = fadd <4 x double> %_33.i.i.sroa.0.0.copyload.i.i.i, %_35.i.i.sroa.0.0.copyload.i.i.i %21 = fsub <4 x double> %_33.i.i.sroa.0.0.copyload.i.i.i, %_35.i.i.sroa.0.0.copyload.i.i.i %22 = fadd <4 x double> %_34.i.i.sroa.0.0.copyload.i.i.i, %_36.i.i.sroa.0.0.copyload.i.i.i %23 = fsub <4 x double> %_34.i.i.sroa.0.0.copyload.i.i.i, %_36.i.i.sroa.0.0.copyload.i.i.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = fsub <4 x double> %20, %22 %36 = shufflevector <4 x double> %35, <4 x double> poison, <4 x i32> %37 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %39 = fmul <4 x double> %38, %36 %40 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %35, <4 x double> %39) #23 %41 = fadd <4 x double> %21, %27 %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %44 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %45 = fmul <4 x double> %44, %42 %46 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %41, <4 x double> %45) #23 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 store <4 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 store <4 x double> %40, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 store <4 x double> %46, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !62, !noalias !79 %exitcond.not.i.i.i = icmp eq i64 %17, %_0.0.sroa.speculated.i.i.i23.i.i.i br i1 %exitcond.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h1d5cf2a32f59bd75E.exit", label %bb8.i.i.i.i.i "_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h1d5cf2a32f59bd75E.exit": ; preds = %bb8.i.i.i.i.i, %bb16.i.i.i.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0e62d4012cafc93aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h4b16fb2b737842b6E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h63b12b65e5d9cb28E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h4e4520cffc7ed69cE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha643f31964ea6388E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h4e90bdb3ed0dfe5cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd55ced5b5a8391a2E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h4eb25c26df97bfa6E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he380288968a79360E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h502c2f04705a68beE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2a52137469dd54d1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h51a97271a361c766E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h02163e5cfee57332E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h53e4754dc4ada05eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9e1ca0a4cf24a045E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h541998eec51e8bbbE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h281a6e3785e661b7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h55e0991b81774a62E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h90d79d5a952dfff6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h56e4eea5a710db62E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4b9306ec6c9d836bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h57aa008c2a673837E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h58daaaedc595e503E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5900a228b954337fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h33f15a68e1ba28ffE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h598a7202f1e1b3a8E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdfff3127cc4d222aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h59fa938d445379b9E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9fff76fa583a3407E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5a4881f49354c7a5E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hee43161a513b63b1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5a5875b4873913a3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf3a174ed64975089E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5b22a83d5911ba15E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd782de32f063c955E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5b4d4673b4a9cda8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !80) tail call void @llvm.experimental.noalias.scope.decl(metadata !83) %4 = shl nsw i64 %3, 4 %_13.i.i = urem i64 %4, 112 %new_len.i.i = udiv i64 %4, 112 %5 = icmp eq i64 %_13.i.i, 0 br i1 %5, label %bb20.i.i, label %bb19.i.i bb20.i.i: ; preds = %start %mid1.i.i.i = lshr i64 %1, 1 %6 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid1.i.i.i %7 = sub i64 %1, %mid1.i.i.i %mid5.i5.i.i.i = lshr i64 %1, 2 %8 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid5.i5.i.i.i %9 = sub nsw i64 %mid1.i.i.i, %mid5.i5.i.i.i %mid36.i10.i.i.i = lshr i64 %1, 3 %10 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid36.i10.i.i.i %11 = sub nsw i64 %mid5.i5.i.i.i, %mid36.i10.i.i.i %mid47.i15.i.i.i = lshr i64 %9, 1 %12 = getelementptr %"num_complex::Complex", ptr %8, i64 %mid47.i15.i.i.i %13 = sub i64 %9, %mid47.i15.i.i.i %mid5.i.i.i.i = lshr i64 %7, 1 %14 = getelementptr %"num_complex::Complex", ptr %6, i64 %mid5.i.i.i.i %15 = sub i64 %7, %mid5.i.i.i.i %mid36.i.i.i.i = lshr i64 %7, 2 %16 = getelementptr %"num_complex::Complex", ptr %6, i64 %mid36.i.i.i.i %17 = sub nsw i64 %mid5.i.i.i.i, %mid36.i.i.i.i %mid47.i.i.i.i = lshr i64 %15, 1 %18 = getelementptr %"num_complex::Complex", ptr %14, i64 %mid47.i.i.i.i %19 = sub i64 %15, %mid47.i.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i10.i.i.i, i64 %11) %_0.0.sroa.speculated.i.i.i7.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i15.i.i.i) %_0.0.sroa.speculated.i.i.i15.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i7.i, i64 %13) %_0.0.sroa.speculated.i.i.i26.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i15.i, i64 %mid36.i.i.i.i) %_0.0.sroa.speculated.i.i.i37.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i26.i, i64 %17) %_0.0.sroa.speculated.i.i.i48.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i37.i, i64 %mid47.i.i.i.i) %_0.0.sroa.speculated.i.i.i59.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i48.i, i64 %19) %_0.0.sroa.speculated.i.i.i70.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i59.i, i64 %new_len.i.i) %_2.i.i.i16.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i70.i, 0 br i1 %_2.i.i.i16.not.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E.exit", label %bb12.i.i.preheader bb12.i.i.preheader: ; preds = %bb20.i.i %min.iters.check = icmp ult i64 %_0.0.sroa.speculated.i.i.i70.i, 48 br i1 %min.iters.check, label %bb12.i.i.preheader594, label %vector.scevcheck vector.scevcheck: ; preds = %bb12.i.i.preheader %20 = add nsw i64 %_0.0.sroa.speculated.i.i.i70.i, -1 %mul.result = shl nsw i64 %20, 4 %21 = getelementptr i8, ptr %0, i64 %mul.result %22 = icmp ult ptr %21, %0 %scevgep = getelementptr i8, ptr %0, i64 8 %mul.result2 = shl nsw i64 %20, 4 %mul.overflow3 = icmp ugt i64 %20, 1152921504606846975 %23 = getelementptr i8, ptr %scevgep, i64 %mul.result2 %24 = icmp ult ptr %23, %scevgep %25 = or i1 %24, %mul.overflow3 %mul.result5 = shl nsw i64 %20, 4 %26 = getelementptr i8, ptr %10, i64 %mul.result5 %27 = icmp ult ptr %26, %10 %28 = shl i64 %mid36.i10.i.i.i, 4 %29 = or disjoint i64 %28, 8 %scevgep7 = getelementptr i8, ptr %0, i64 %29 %mul.result9 = shl nsw i64 %20, 4 %30 = getelementptr i8, ptr %scevgep7, i64 %mul.result9 %31 = icmp ult ptr %30, %scevgep7 %mul.result12 = shl nsw i64 %20, 4 %32 = getelementptr i8, ptr %8, i64 %mul.result12 %33 = icmp ult ptr %32, %8 %34 = shl i64 %mid5.i5.i.i.i, 4 %35 = or disjoint i64 %34, 8 %scevgep14 = getelementptr i8, ptr %0, i64 %35 %mul.result16 = shl nsw i64 %20, 4 %36 = getelementptr i8, ptr %scevgep14, i64 %mul.result16 %37 = icmp ult ptr %36, %scevgep14 %mul.result19 = shl nsw i64 %20, 4 %38 = getelementptr i8, ptr %12, i64 %mul.result19 %39 = icmp ult ptr %38, %12 %40 = add nuw i64 %mid5.i5.i.i.i, %mid47.i15.i.i.i %41 = shl i64 %40, 4 %42 = or disjoint i64 %41, 8 %scevgep21 = getelementptr i8, ptr %0, i64 %42 %mul.result23 = shl nsw i64 %20, 4 %43 = getelementptr i8, ptr %scevgep21, i64 %mul.result23 %44 = icmp ult ptr %43, %scevgep21 %mul.result26 = shl nsw i64 %20, 4 %45 = getelementptr i8, ptr %6, i64 %mul.result26 %46 = icmp ult ptr %45, %6 %47 = shl i64 %mid1.i.i.i, 4 %48 = or disjoint i64 %47, 8 %scevgep28 = getelementptr i8, ptr %0, i64 %48 %mul.result30 = shl nsw i64 %20, 4 %mul.overflow31 = icmp ugt i64 %20, 1152921504606846975 %49 = getelementptr i8, ptr %scevgep28, i64 %mul.result30 %50 = icmp ult ptr %49, %scevgep28 %51 = or i1 %50, %mul.overflow31 %mul.result33 = shl nsw i64 %20, 4 %52 = getelementptr i8, ptr %16, i64 %mul.result33 %53 = icmp ult ptr %52, %16 %54 = add nuw i64 %mid1.i.i.i, %mid36.i.i.i.i %55 = shl i64 %54, 4 %56 = or disjoint i64 %55, 8 %scevgep35 = getelementptr i8, ptr %0, i64 %56 %mul.result37 = shl nsw i64 %20, 4 %57 = getelementptr i8, ptr %scevgep35, i64 %mul.result37 %58 = icmp ult ptr %57, %scevgep35 %mul.result40 = shl nsw i64 %20, 4 %59 = getelementptr i8, ptr %14, i64 %mul.result40 %60 = icmp ult ptr %59, %14 %61 = add nuw i64 %mid1.i.i.i, %mid5.i.i.i.i %62 = shl i64 %61, 4 %63 = or disjoint i64 %62, 8 %scevgep42 = getelementptr i8, ptr %0, i64 %63 %mul.result44 = shl nsw i64 %20, 4 %64 = getelementptr i8, ptr %scevgep42, i64 %mul.result44 %65 = icmp ult ptr %64, %scevgep42 %mul.result47 = shl nsw i64 %20, 4 %66 = getelementptr i8, ptr %18, i64 %mul.result47 %67 = icmp ult ptr %66, %18 %68 = add nuw i64 %mid1.i.i.i, %mid47.i.i.i.i %69 = add i64 %68, %mid5.i.i.i.i %70 = shl i64 %69, 4 %71 = or disjoint i64 %70, 8 %scevgep49 = getelementptr i8, ptr %0, i64 %71 %mul.result51 = shl nsw i64 %20, 4 %72 = getelementptr i8, ptr %scevgep49, i64 %mul.result51 %73 = icmp ult ptr %72, %scevgep49 %74 = or i1 %22, %25 %75 = or i1 %27, %74 %76 = or i1 %31, %75 %77 = or i1 %33, %76 %78 = or i1 %37, %77 %79 = or i1 %39, %78 %80 = or i1 %44, %79 %81 = or i1 %46, %80 %82 = or i1 %81, %51 %83 = or i1 %53, %82 %84 = or i1 %58, %83 %85 = or i1 %60, %84 %86 = or i1 %65, %85 %87 = or i1 %67, %86 %88 = or i1 %73, %87 br i1 %88, label %bb12.i.i.preheader594, label %vector.memcheck vector.memcheck: ; preds = %vector.scevcheck %89 = shl nuw nsw i64 %_0.0.sroa.speculated.i.i.i70.i, 4 %90 = getelementptr i8, ptr %0, i64 %89 %scevgep53 = getelementptr i8, ptr %90, i64 -8 %scevgep54 = getelementptr i8, ptr %0, i64 8 %scevgep55 = getelementptr i8, ptr %0, i64 %89 %91 = shl i64 %mid36.i10.i.i.i, 4 %92 = add i64 %89, %91 %93 = getelementptr i8, ptr %0, i64 %92 %scevgep56 = getelementptr i8, ptr %93, i64 -8 %94 = or disjoint i64 %91, 8 %scevgep57 = getelementptr i8, ptr %0, i64 %94 %scevgep58 = getelementptr i8, ptr %0, i64 %92 %95 = shl i64 %mid5.i5.i.i.i, 4 %96 = add i64 %89, %95 %97 = getelementptr i8, ptr %0, i64 %96 %scevgep59 = getelementptr i8, ptr %97, i64 -8 %98 = or disjoint i64 %95, 8 %scevgep60 = getelementptr i8, ptr %0, i64 %98 %scevgep61 = getelementptr i8, ptr %0, i64 %96 %99 = shl i64 %mid47.i15.i.i.i, 4 %100 = getelementptr i8, ptr %0, i64 %96 %101 = getelementptr i8, ptr %100, i64 %99 %scevgep62 = getelementptr i8, ptr %101, i64 -8 %102 = add i64 %95, %99 %103 = or disjoint i64 %102, 8 %scevgep63 = getelementptr i8, ptr %0, i64 %103 %104 = getelementptr i8, ptr %0, i64 %89 %105 = getelementptr i8, ptr %104, i64 %95 %scevgep64 = getelementptr i8, ptr %105, i64 %99 %106 = shl i64 %mid1.i.i.i, 4 %107 = add i64 %89, %106 %108 = getelementptr i8, ptr %0, i64 %107 %scevgep65 = getelementptr i8, ptr %108, i64 -8 %109 = or disjoint i64 %106, 8 %scevgep66 = getelementptr i8, ptr %0, i64 %109 %scevgep67 = getelementptr i8, ptr %0, i64 %107 %110 = shl i64 %mid36.i.i.i.i, 4 %111 = getelementptr i8, ptr %0, i64 %107 %112 = getelementptr i8, ptr %111, i64 %110 %scevgep68 = getelementptr i8, ptr %112, i64 -8 %113 = add i64 %106, %110 %114 = or disjoint i64 %113, 8 %scevgep69 = getelementptr i8, ptr %0, i64 %114 %115 = add i64 %89, %106 %116 = getelementptr i8, ptr %0, i64 %115 %scevgep70 = getelementptr i8, ptr %116, i64 %110 %117 = shl i64 %mid5.i.i.i.i, 4 %118 = getelementptr i8, ptr %0, i64 %115 %119 = getelementptr i8, ptr %118, i64 %117 %scevgep71 = getelementptr i8, ptr %119, i64 -8 %120 = add i64 %106, %117 %121 = or disjoint i64 %120, 8 %scevgep72 = getelementptr i8, ptr %0, i64 %121 %122 = add i64 %89, %106 %123 = getelementptr i8, ptr %0, i64 %122 %scevgep73 = getelementptr i8, ptr %123, i64 %117 %124 = shl i64 %mid47.i.i.i.i, 4 %125 = getelementptr i8, ptr %0, i64 %122 %126 = getelementptr i8, ptr %125, i64 %124 %127 = getelementptr i8, ptr %126, i64 %117 %scevgep74 = getelementptr i8, ptr %127, i64 -8 %128 = add i64 %106, %124 %129 = add i64 %128, %117 %130 = or disjoint i64 %129, 8 %scevgep75 = getelementptr i8, ptr %0, i64 %130 %131 = getelementptr i8, ptr %0, i64 %89 %132 = getelementptr i8, ptr %131, i64 %106 %133 = getelementptr i8, ptr %132, i64 %124 %scevgep76 = getelementptr i8, ptr %133, i64 %117 %bound0 = icmp ugt ptr %scevgep55, %0 %bound1 = icmp ult ptr %scevgep54, %scevgep53 %found.conflict = and i1 %bound0, %bound1 %bound077 = icmp ugt ptr %scevgep56, %0 %bound178 = icmp ult ptr %10, %scevgep53 %found.conflict79 = and i1 %bound077, %bound178 %conflict.rdx = or i1 %found.conflict, %found.conflict79 %bound080 = icmp ugt ptr %scevgep58, %0 %bound181 = icmp ult ptr %scevgep57, %scevgep53 %found.conflict82 = and i1 %bound080, %bound181 %conflict.rdx83 = or i1 %conflict.rdx, %found.conflict82 %bound084 = icmp ugt ptr %scevgep59, %0 %bound185 = icmp ult ptr %8, %scevgep53 %found.conflict86 = and i1 %bound084, %bound185 %conflict.rdx87 = or i1 %conflict.rdx83, %found.conflict86 %bound088 = icmp ugt ptr %scevgep61, %0 %bound189 = icmp ult ptr %scevgep60, %scevgep53 %found.conflict90 = and i1 %bound088, %bound189 %conflict.rdx91 = or i1 %conflict.rdx87, %found.conflict90 %bound092 = icmp ugt ptr %scevgep62, %0 %bound193 = icmp ult ptr %12, %scevgep53 %found.conflict94 = and i1 %bound092, %bound193 %conflict.rdx95 = or i1 %conflict.rdx91, %found.conflict94 %bound096 = icmp ugt ptr %scevgep64, %0 %bound197 = icmp ult ptr %scevgep63, %scevgep53 %found.conflict98 = and i1 %bound096, %bound197 %conflict.rdx99 = or i1 %conflict.rdx95, %found.conflict98 %bound0100 = icmp ugt ptr %scevgep65, %0 %bound1101 = icmp ult ptr %6, %scevgep53 %found.conflict102 = and i1 %bound0100, %bound1101 %conflict.rdx103 = or i1 %conflict.rdx99, %found.conflict102 %bound0104 = icmp ugt ptr %scevgep67, %0 %bound1105 = icmp ult ptr %scevgep66, %scevgep53 %found.conflict106 = and i1 %bound0104, %bound1105 %conflict.rdx107 = or i1 %conflict.rdx103, %found.conflict106 %bound0108 = icmp ugt ptr %scevgep68, %0 %bound1109 = icmp ult ptr %16, %scevgep53 %found.conflict110 = and i1 %bound0108, %bound1109 %conflict.rdx111 = or i1 %conflict.rdx107, %found.conflict110 %bound0112 = icmp ugt ptr %scevgep70, %0 %bound1113 = icmp ult ptr %scevgep69, %scevgep53 %found.conflict114 = and i1 %bound0112, %bound1113 %conflict.rdx115 = or i1 %conflict.rdx111, %found.conflict114 %bound0116 = icmp ugt ptr %scevgep71, %0 %bound1117 = icmp ult ptr %14, %scevgep53 %found.conflict118 = and i1 %bound0116, %bound1117 %conflict.rdx119 = or i1 %conflict.rdx115, %found.conflict118 %bound0120 = icmp ugt ptr %scevgep73, %0 %bound1121 = icmp ult ptr %scevgep72, %scevgep53 %found.conflict122 = and i1 %bound0120, %bound1121 %conflict.rdx123 = or i1 %conflict.rdx119, %found.conflict122 %bound0124 = icmp ugt ptr %scevgep74, %0 %bound1125 = icmp ult ptr %18, %scevgep53 %found.conflict126 = and i1 %bound0124, %bound1125 %conflict.rdx127 = or i1 %conflict.rdx123, %found.conflict126 %bound0128 = icmp ugt ptr %scevgep76, %0 %bound1129 = icmp ult ptr %scevgep75, %scevgep53 %found.conflict130 = and i1 %bound0128, %bound1129 %conflict.rdx131 = or i1 %conflict.rdx127, %found.conflict130 %bound0132 = icmp ult ptr %scevgep54, %scevgep56 %bound1133 = icmp ult ptr %10, %scevgep55 %found.conflict134 = and i1 %bound0132, %bound1133 %conflict.rdx135 = or i1 %conflict.rdx131, %found.conflict134 %bound0136 = icmp ult ptr %scevgep54, %scevgep58 %bound1137 = icmp ult ptr %scevgep57, %scevgep55 %found.conflict138 = and i1 %bound0136, %bound1137 %conflict.rdx139 = or i1 %conflict.rdx135, %found.conflict138 %bound0140 = icmp ult ptr %scevgep54, %scevgep59 %bound1141 = icmp ult ptr %8, %scevgep55 %found.conflict142 = and i1 %bound0140, %bound1141 %conflict.rdx143 = or i1 %conflict.rdx139, %found.conflict142 %bound0144 = icmp ult ptr %scevgep54, %scevgep61 %bound1145 = icmp ult ptr %scevgep60, %scevgep55 %found.conflict146 = and i1 %bound0144, %bound1145 %conflict.rdx147 = or i1 %conflict.rdx143, %found.conflict146 %bound0148 = icmp ult ptr %scevgep54, %scevgep62 %bound1149 = icmp ult ptr %12, %scevgep55 %found.conflict150 = and i1 %bound0148, %bound1149 %conflict.rdx151 = or i1 %conflict.rdx147, %found.conflict150 %bound0152 = icmp ult ptr %scevgep54, %scevgep64 %bound1153 = icmp ult ptr %scevgep63, %scevgep55 %found.conflict154 = and i1 %bound0152, %bound1153 %conflict.rdx155 = or i1 %conflict.rdx151, %found.conflict154 %bound0156 = icmp ult ptr %scevgep54, %scevgep65 %bound1157 = icmp ult ptr %6, %scevgep55 %found.conflict158 = and i1 %bound0156, %bound1157 %conflict.rdx159 = or i1 %conflict.rdx155, %found.conflict158 %bound0160 = icmp ult ptr %scevgep54, %scevgep67 %bound1161 = icmp ult ptr %scevgep66, %scevgep55 %found.conflict162 = and i1 %bound0160, %bound1161 %conflict.rdx163 = or i1 %conflict.rdx159, %found.conflict162 %bound0164 = icmp ult ptr %scevgep54, %scevgep68 %bound1165 = icmp ult ptr %16, %scevgep55 %found.conflict166 = and i1 %bound0164, %bound1165 %conflict.rdx167 = or i1 %conflict.rdx163, %found.conflict166 %bound0168 = icmp ult ptr %scevgep54, %scevgep70 %bound1169 = icmp ult ptr %scevgep69, %scevgep55 %found.conflict170 = and i1 %bound0168, %bound1169 %conflict.rdx171 = or i1 %conflict.rdx167, %found.conflict170 %bound0172 = icmp ult ptr %scevgep54, %scevgep71 %bound1173 = icmp ult ptr %14, %scevgep55 %found.conflict174 = and i1 %bound0172, %bound1173 %conflict.rdx175 = or i1 %conflict.rdx171, %found.conflict174 %bound0176 = icmp ult ptr %scevgep54, %scevgep73 %bound1177 = icmp ult ptr %scevgep72, %scevgep55 %found.conflict178 = and i1 %bound0176, %bound1177 %conflict.rdx179 = or i1 %conflict.rdx175, %found.conflict178 %bound0180 = icmp ult ptr %scevgep54, %scevgep74 %bound1181 = icmp ult ptr %18, %scevgep55 %found.conflict182 = and i1 %bound0180, %bound1181 %conflict.rdx183 = or i1 %conflict.rdx179, %found.conflict182 %bound0184 = icmp ult ptr %scevgep54, %scevgep76 %bound1185 = icmp ult ptr %scevgep75, %scevgep55 %found.conflict186 = and i1 %bound0184, %bound1185 %conflict.rdx187 = or i1 %conflict.rdx183, %found.conflict186 %bound0188 = icmp ult ptr %10, %scevgep58 %bound1189 = icmp ult ptr %scevgep57, %scevgep56 %found.conflict190 = and i1 %bound0188, %bound1189 %conflict.rdx191 = or i1 %conflict.rdx187, %found.conflict190 %bound0192 = icmp ult ptr %10, %scevgep59 %bound1193 = icmp ult ptr %8, %scevgep56 %found.conflict194 = and i1 %bound0192, %bound1193 %conflict.rdx195 = or i1 %conflict.rdx191, %found.conflict194 %bound0196 = icmp ult ptr %10, %scevgep61 %bound1197 = icmp ult ptr %scevgep60, %scevgep56 %found.conflict198 = and i1 %bound0196, %bound1197 %conflict.rdx199 = or i1 %conflict.rdx195, %found.conflict198 %bound0200 = icmp ult ptr %10, %scevgep62 %bound1201 = icmp ult ptr %12, %scevgep56 %found.conflict202 = and i1 %bound0200, %bound1201 %conflict.rdx203 = or i1 %conflict.rdx199, %found.conflict202 %bound0204 = icmp ult ptr %10, %scevgep64 %bound1205 = icmp ult ptr %scevgep63, %scevgep56 %found.conflict206 = and i1 %bound0204, %bound1205 %conflict.rdx207 = or i1 %conflict.rdx203, %found.conflict206 %bound0208 = icmp ult ptr %10, %scevgep65 %bound1209 = icmp ult ptr %6, %scevgep56 %found.conflict210 = and i1 %bound0208, %bound1209 %conflict.rdx211 = or i1 %conflict.rdx207, %found.conflict210 %bound0212 = icmp ult ptr %10, %scevgep67 %bound1213 = icmp ult ptr %scevgep66, %scevgep56 %found.conflict214 = and i1 %bound0212, %bound1213 %conflict.rdx215 = or i1 %conflict.rdx211, %found.conflict214 %bound0216 = icmp ult ptr %10, %scevgep68 %bound1217 = icmp ult ptr %16, %scevgep56 %found.conflict218 = and i1 %bound0216, %bound1217 %conflict.rdx219 = or i1 %conflict.rdx215, %found.conflict218 %bound0220 = icmp ult ptr %10, %scevgep70 %bound1221 = icmp ult ptr %scevgep69, %scevgep56 %found.conflict222 = and i1 %bound0220, %bound1221 %conflict.rdx223 = or i1 %conflict.rdx219, %found.conflict222 %bound0224 = icmp ult ptr %10, %scevgep71 %bound1225 = icmp ult ptr %14, %scevgep56 %found.conflict226 = and i1 %bound0224, %bound1225 %conflict.rdx227 = or i1 %conflict.rdx223, %found.conflict226 %bound0228 = icmp ult ptr %10, %scevgep73 %bound1229 = icmp ult ptr %scevgep72, %scevgep56 %found.conflict230 = and i1 %bound0228, %bound1229 %conflict.rdx231 = or i1 %conflict.rdx227, %found.conflict230 %bound0232 = icmp ult ptr %10, %scevgep74 %bound1233 = icmp ult ptr %18, %scevgep56 %found.conflict234 = and i1 %bound0232, %bound1233 %conflict.rdx235 = or i1 %conflict.rdx231, %found.conflict234 %bound0236 = icmp ult ptr %10, %scevgep76 %bound1237 = icmp ult ptr %scevgep75, %scevgep56 %found.conflict238 = and i1 %bound0236, %bound1237 %conflict.rdx239 = or i1 %conflict.rdx235, %found.conflict238 %bound0240 = icmp ult ptr %scevgep57, %scevgep59 %bound1241 = icmp ult ptr %8, %scevgep58 %found.conflict242 = and i1 %bound0240, %bound1241 %conflict.rdx243 = or i1 %conflict.rdx239, %found.conflict242 %bound0244 = icmp ult ptr %scevgep57, %scevgep61 %bound1245 = icmp ult ptr %scevgep60, %scevgep58 %found.conflict246 = and i1 %bound0244, %bound1245 %conflict.rdx247 = or i1 %conflict.rdx243, %found.conflict246 %bound0248 = icmp ult ptr %scevgep57, %scevgep62 %bound1249 = icmp ult ptr %12, %scevgep58 %found.conflict250 = and i1 %bound0248, %bound1249 %conflict.rdx251 = or i1 %conflict.rdx247, %found.conflict250 %bound0252 = icmp ult ptr %scevgep57, %scevgep64 %bound1253 = icmp ult ptr %scevgep63, %scevgep58 %found.conflict254 = and i1 %bound0252, %bound1253 %conflict.rdx255 = or i1 %conflict.rdx251, %found.conflict254 %bound0256 = icmp ult ptr %scevgep57, %scevgep65 %bound1257 = icmp ult ptr %6, %scevgep58 %found.conflict258 = and i1 %bound0256, %bound1257 %conflict.rdx259 = or i1 %conflict.rdx255, %found.conflict258 %bound0260 = icmp ult ptr %scevgep57, %scevgep67 %bound1261 = icmp ult ptr %scevgep66, %scevgep58 %found.conflict262 = and i1 %bound0260, %bound1261 %conflict.rdx263 = or i1 %conflict.rdx259, %found.conflict262 %bound0264 = icmp ult ptr %scevgep57, %scevgep68 %bound1265 = icmp ult ptr %16, %scevgep58 %found.conflict266 = and i1 %bound0264, %bound1265 %conflict.rdx267 = or i1 %conflict.rdx263, %found.conflict266 %bound0268 = icmp ult ptr %scevgep57, %scevgep70 %bound1269 = icmp ult ptr %scevgep69, %scevgep58 %found.conflict270 = and i1 %bound0268, %bound1269 %conflict.rdx271 = or i1 %conflict.rdx267, %found.conflict270 %bound0272 = icmp ult ptr %scevgep57, %scevgep71 %bound1273 = icmp ult ptr %14, %scevgep58 %found.conflict274 = and i1 %bound0272, %bound1273 %conflict.rdx275 = or i1 %conflict.rdx271, %found.conflict274 %bound0276 = icmp ult ptr %scevgep57, %scevgep73 %bound1277 = icmp ult ptr %scevgep72, %scevgep58 %found.conflict278 = and i1 %bound0276, %bound1277 %conflict.rdx279 = or i1 %conflict.rdx275, %found.conflict278 %bound0280 = icmp ult ptr %scevgep57, %scevgep74 %bound1281 = icmp ult ptr %18, %scevgep58 %found.conflict282 = and i1 %bound0280, %bound1281 %conflict.rdx283 = or i1 %conflict.rdx279, %found.conflict282 %bound0284 = icmp ult ptr %scevgep57, %scevgep76 %bound1285 = icmp ult ptr %scevgep75, %scevgep58 %found.conflict286 = and i1 %bound0284, %bound1285 %conflict.rdx287 = or i1 %conflict.rdx283, %found.conflict286 %bound0288 = icmp ult ptr %8, %scevgep61 %bound1289 = icmp ult ptr %scevgep60, %scevgep59 %found.conflict290 = and i1 %bound0288, %bound1289 %conflict.rdx291 = or i1 %conflict.rdx287, %found.conflict290 %bound0292 = icmp ult ptr %8, %scevgep62 %bound1293 = icmp ult ptr %12, %scevgep59 %found.conflict294 = and i1 %bound0292, %bound1293 %conflict.rdx295 = or i1 %conflict.rdx291, %found.conflict294 %bound0296 = icmp ult ptr %8, %scevgep64 %bound1297 = icmp ult ptr %scevgep63, %scevgep59 %found.conflict298 = and i1 %bound0296, %bound1297 %conflict.rdx299 = or i1 %conflict.rdx295, %found.conflict298 %bound0300 = icmp ult ptr %8, %scevgep65 %bound1301 = icmp ult ptr %6, %scevgep59 %found.conflict302 = and i1 %bound0300, %bound1301 %conflict.rdx303 = or i1 %conflict.rdx299, %found.conflict302 %bound0304 = icmp ult ptr %8, %scevgep67 %bound1305 = icmp ult ptr %scevgep66, %scevgep59 %found.conflict306 = and i1 %bound0304, %bound1305 %conflict.rdx307 = or i1 %conflict.rdx303, %found.conflict306 %bound0308 = icmp ult ptr %8, %scevgep68 %bound1309 = icmp ult ptr %16, %scevgep59 %found.conflict310 = and i1 %bound0308, %bound1309 %conflict.rdx311 = or i1 %conflict.rdx307, %found.conflict310 %bound0312 = icmp ult ptr %8, %scevgep70 %bound1313 = icmp ult ptr %scevgep69, %scevgep59 %found.conflict314 = and i1 %bound0312, %bound1313 %conflict.rdx315 = or i1 %conflict.rdx311, %found.conflict314 %bound0316 = icmp ult ptr %8, %scevgep71 %bound1317 = icmp ult ptr %14, %scevgep59 %found.conflict318 = and i1 %bound0316, %bound1317 %conflict.rdx319 = or i1 %conflict.rdx315, %found.conflict318 %bound0320 = icmp ult ptr %8, %scevgep73 %bound1321 = icmp ult ptr %scevgep72, %scevgep59 %found.conflict322 = and i1 %bound0320, %bound1321 %conflict.rdx323 = or i1 %conflict.rdx319, %found.conflict322 %bound0324 = icmp ult ptr %8, %scevgep74 %bound1325 = icmp ult ptr %18, %scevgep59 %found.conflict326 = and i1 %bound0324, %bound1325 %conflict.rdx327 = or i1 %conflict.rdx323, %found.conflict326 %bound0328 = icmp ult ptr %8, %scevgep76 %bound1329 = icmp ult ptr %scevgep75, %scevgep59 %found.conflict330 = and i1 %bound0328, %bound1329 %conflict.rdx331 = or i1 %conflict.rdx327, %found.conflict330 %bound0332 = icmp ult ptr %scevgep60, %scevgep62 %bound1333 = icmp ult ptr %12, %scevgep61 %found.conflict334 = and i1 %bound0332, %bound1333 %conflict.rdx335 = or i1 %conflict.rdx331, %found.conflict334 %bound0336 = icmp ult ptr %scevgep60, %scevgep64 %bound1337 = icmp ult ptr %scevgep63, %scevgep61 %found.conflict338 = and i1 %bound0336, %bound1337 %conflict.rdx339 = or i1 %conflict.rdx335, %found.conflict338 %bound0340 = icmp ult ptr %scevgep60, %scevgep65 %bound1341 = icmp ult ptr %6, %scevgep61 %found.conflict342 = and i1 %bound0340, %bound1341 %conflict.rdx343 = or i1 %conflict.rdx339, %found.conflict342 %bound0344 = icmp ult ptr %scevgep60, %scevgep67 %bound1345 = icmp ult ptr %scevgep66, %scevgep61 %found.conflict346 = and i1 %bound0344, %bound1345 %conflict.rdx347 = or i1 %conflict.rdx343, %found.conflict346 %bound0348 = icmp ult ptr %scevgep60, %scevgep68 %bound1349 = icmp ult ptr %16, %scevgep61 %found.conflict350 = and i1 %bound0348, %bound1349 %conflict.rdx351 = or i1 %conflict.rdx347, %found.conflict350 %bound0352 = icmp ult ptr %scevgep60, %scevgep70 %bound1353 = icmp ult ptr %scevgep69, %scevgep61 %found.conflict354 = and i1 %bound0352, %bound1353 %conflict.rdx355 = or i1 %conflict.rdx351, %found.conflict354 %bound0356 = icmp ult ptr %scevgep60, %scevgep71 %bound1357 = icmp ult ptr %14, %scevgep61 %found.conflict358 = and i1 %bound0356, %bound1357 %conflict.rdx359 = or i1 %conflict.rdx355, %found.conflict358 %bound0360 = icmp ult ptr %scevgep60, %scevgep73 %bound1361 = icmp ult ptr %scevgep72, %scevgep61 %found.conflict362 = and i1 %bound0360, %bound1361 %conflict.rdx363 = or i1 %conflict.rdx359, %found.conflict362 %bound0364 = icmp ult ptr %scevgep60, %scevgep74 %bound1365 = icmp ult ptr %18, %scevgep61 %found.conflict366 = and i1 %bound0364, %bound1365 %conflict.rdx367 = or i1 %conflict.rdx363, %found.conflict366 %bound0368 = icmp ult ptr %scevgep60, %scevgep76 %bound1369 = icmp ult ptr %scevgep75, %scevgep61 %found.conflict370 = and i1 %bound0368, %bound1369 %conflict.rdx371 = or i1 %conflict.rdx367, %found.conflict370 %bound0372 = icmp ult ptr %12, %scevgep64 %bound1373 = icmp ult ptr %scevgep63, %scevgep62 %found.conflict374 = and i1 %bound0372, %bound1373 %conflict.rdx375 = or i1 %conflict.rdx371, %found.conflict374 %bound0376 = icmp ult ptr %12, %scevgep65 %bound1377 = icmp ult ptr %6, %scevgep62 %found.conflict378 = and i1 %bound0376, %bound1377 %conflict.rdx379 = or i1 %conflict.rdx375, %found.conflict378 %bound0380 = icmp ult ptr %12, %scevgep67 %bound1381 = icmp ult ptr %scevgep66, %scevgep62 %found.conflict382 = and i1 %bound0380, %bound1381 %conflict.rdx383 = or i1 %conflict.rdx379, %found.conflict382 %bound0384 = icmp ult ptr %12, %scevgep68 %bound1385 = icmp ult ptr %16, %scevgep62 %found.conflict386 = and i1 %bound0384, %bound1385 %conflict.rdx387 = or i1 %conflict.rdx383, %found.conflict386 %bound0388 = icmp ult ptr %12, %scevgep70 %bound1389 = icmp ult ptr %scevgep69, %scevgep62 %found.conflict390 = and i1 %bound0388, %bound1389 %conflict.rdx391 = or i1 %conflict.rdx387, %found.conflict390 %bound0392 = icmp ult ptr %12, %scevgep71 %bound1393 = icmp ult ptr %14, %scevgep62 %found.conflict394 = and i1 %bound0392, %bound1393 %conflict.rdx395 = or i1 %conflict.rdx391, %found.conflict394 %bound0396 = icmp ult ptr %12, %scevgep73 %bound1397 = icmp ult ptr %scevgep72, %scevgep62 %found.conflict398 = and i1 %bound0396, %bound1397 %conflict.rdx399 = or i1 %conflict.rdx395, %found.conflict398 %bound0400 = icmp ult ptr %12, %scevgep74 %bound1401 = icmp ult ptr %18, %scevgep62 %found.conflict402 = and i1 %bound0400, %bound1401 %conflict.rdx403 = or i1 %conflict.rdx399, %found.conflict402 %bound0404 = icmp ult ptr %12, %scevgep76 %bound1405 = icmp ult ptr %scevgep75, %scevgep62 %found.conflict406 = and i1 %bound0404, %bound1405 %conflict.rdx407 = or i1 %conflict.rdx403, %found.conflict406 %bound0408 = icmp ult ptr %scevgep63, %scevgep65 %bound1409 = icmp ult ptr %6, %scevgep64 %found.conflict410 = and i1 %bound0408, %bound1409 %conflict.rdx411 = or i1 %conflict.rdx407, %found.conflict410 %bound0412 = icmp ult ptr %scevgep63, %scevgep67 %bound1413 = icmp ult ptr %scevgep66, %scevgep64 %found.conflict414 = and i1 %bound0412, %bound1413 %conflict.rdx415 = or i1 %conflict.rdx411, %found.conflict414 %bound0416 = icmp ult ptr %scevgep63, %scevgep68 %bound1417 = icmp ult ptr %16, %scevgep64 %found.conflict418 = and i1 %bound0416, %bound1417 %conflict.rdx419 = or i1 %conflict.rdx415, %found.conflict418 %bound0420 = icmp ult ptr %scevgep63, %scevgep70 %bound1421 = icmp ult ptr %scevgep69, %scevgep64 %found.conflict422 = and i1 %bound0420, %bound1421 %conflict.rdx423 = or i1 %conflict.rdx419, %found.conflict422 %bound0424 = icmp ult ptr %scevgep63, %scevgep71 %bound1425 = icmp ult ptr %14, %scevgep64 %found.conflict426 = and i1 %bound0424, %bound1425 %conflict.rdx427 = or i1 %conflict.rdx423, %found.conflict426 %bound0428 = icmp ult ptr %scevgep63, %scevgep73 %bound1429 = icmp ult ptr %scevgep72, %scevgep64 %found.conflict430 = and i1 %bound0428, %bound1429 %conflict.rdx431 = or i1 %conflict.rdx427, %found.conflict430 %bound0432 = icmp ult ptr %scevgep63, %scevgep74 %bound1433 = icmp ult ptr %18, %scevgep64 %found.conflict434 = and i1 %bound0432, %bound1433 %conflict.rdx435 = or i1 %conflict.rdx431, %found.conflict434 %bound0436 = icmp ult ptr %scevgep63, %scevgep76 %bound1437 = icmp ult ptr %scevgep75, %scevgep64 %found.conflict438 = and i1 %bound0436, %bound1437 %conflict.rdx439 = or i1 %conflict.rdx435, %found.conflict438 %bound0440 = icmp ult ptr %6, %scevgep67 %bound1441 = icmp ult ptr %scevgep66, %scevgep65 %found.conflict442 = and i1 %bound0440, %bound1441 %conflict.rdx443 = or i1 %conflict.rdx439, %found.conflict442 %bound0444 = icmp ult ptr %6, %scevgep68 %bound1445 = icmp ult ptr %16, %scevgep65 %found.conflict446 = and i1 %bound0444, %bound1445 %conflict.rdx447 = or i1 %conflict.rdx443, %found.conflict446 %bound0448 = icmp ult ptr %6, %scevgep70 %bound1449 = icmp ult ptr %scevgep69, %scevgep65 %found.conflict450 = and i1 %bound0448, %bound1449 %conflict.rdx451 = or i1 %conflict.rdx447, %found.conflict450 %bound0452 = icmp ult ptr %6, %scevgep71 %bound1453 = icmp ult ptr %14, %scevgep65 %found.conflict454 = and i1 %bound0452, %bound1453 %conflict.rdx455 = or i1 %conflict.rdx451, %found.conflict454 %bound0456 = icmp ult ptr %6, %scevgep73 %bound1457 = icmp ult ptr %scevgep72, %scevgep65 %found.conflict458 = and i1 %bound0456, %bound1457 %conflict.rdx459 = or i1 %conflict.rdx455, %found.conflict458 %bound0460 = icmp ult ptr %6, %scevgep74 %bound1461 = icmp ult ptr %18, %scevgep65 %found.conflict462 = and i1 %bound0460, %bound1461 %conflict.rdx463 = or i1 %conflict.rdx459, %found.conflict462 %bound0464 = icmp ult ptr %6, %scevgep76 %bound1465 = icmp ult ptr %scevgep75, %scevgep65 %found.conflict466 = and i1 %bound0464, %bound1465 %conflict.rdx467 = or i1 %conflict.rdx463, %found.conflict466 %bound0468 = icmp ult ptr %scevgep66, %scevgep68 %bound1469 = icmp ult ptr %16, %scevgep67 %found.conflict470 = and i1 %bound0468, %bound1469 %conflict.rdx471 = or i1 %conflict.rdx467, %found.conflict470 %bound0472 = icmp ult ptr %scevgep66, %scevgep70 %bound1473 = icmp ult ptr %scevgep69, %scevgep67 %found.conflict474 = and i1 %bound0472, %bound1473 %conflict.rdx475 = or i1 %conflict.rdx471, %found.conflict474 %bound0476 = icmp ult ptr %scevgep66, %scevgep71 %bound1477 = icmp ult ptr %14, %scevgep67 %found.conflict478 = and i1 %bound0476, %bound1477 %conflict.rdx479 = or i1 %conflict.rdx475, %found.conflict478 %bound0480 = icmp ult ptr %scevgep66, %scevgep73 %bound1481 = icmp ult ptr %scevgep72, %scevgep67 %found.conflict482 = and i1 %bound0480, %bound1481 %conflict.rdx483 = or i1 %conflict.rdx479, %found.conflict482 %bound0484 = icmp ult ptr %scevgep66, %scevgep74 %bound1485 = icmp ult ptr %18, %scevgep67 %found.conflict486 = and i1 %bound0484, %bound1485 %conflict.rdx487 = or i1 %conflict.rdx483, %found.conflict486 %bound0488 = icmp ult ptr %scevgep66, %scevgep76 %bound1489 = icmp ult ptr %scevgep75, %scevgep67 %found.conflict490 = and i1 %bound0488, %bound1489 %conflict.rdx491 = or i1 %conflict.rdx487, %found.conflict490 %bound0492 = icmp ult ptr %16, %scevgep70 %bound1493 = icmp ult ptr %scevgep69, %scevgep68 %found.conflict494 = and i1 %bound0492, %bound1493 %conflict.rdx495 = or i1 %conflict.rdx491, %found.conflict494 %bound0496 = icmp ult ptr %16, %scevgep71 %bound1497 = icmp ult ptr %14, %scevgep68 %found.conflict498 = and i1 %bound0496, %bound1497 %conflict.rdx499 = or i1 %conflict.rdx495, %found.conflict498 %bound0500 = icmp ult ptr %16, %scevgep73 %bound1501 = icmp ult ptr %scevgep72, %scevgep68 %found.conflict502 = and i1 %bound0500, %bound1501 %conflict.rdx503 = or i1 %conflict.rdx499, %found.conflict502 %bound0504 = icmp ult ptr %16, %scevgep74 %bound1505 = icmp ult ptr %18, %scevgep68 %found.conflict506 = and i1 %bound0504, %bound1505 %conflict.rdx507 = or i1 %conflict.rdx503, %found.conflict506 %bound0508 = icmp ult ptr %16, %scevgep76 %bound1509 = icmp ult ptr %scevgep75, %scevgep68 %found.conflict510 = and i1 %bound0508, %bound1509 %conflict.rdx511 = or i1 %conflict.rdx507, %found.conflict510 %bound0512 = icmp ult ptr %scevgep69, %scevgep71 %bound1513 = icmp ult ptr %14, %scevgep70 %found.conflict514 = and i1 %bound0512, %bound1513 %conflict.rdx515 = or i1 %conflict.rdx511, %found.conflict514 %bound0516 = icmp ult ptr %scevgep69, %scevgep73 %bound1517 = icmp ult ptr %scevgep72, %scevgep70 %found.conflict518 = and i1 %bound0516, %bound1517 %conflict.rdx519 = or i1 %conflict.rdx515, %found.conflict518 %bound0520 = icmp ult ptr %scevgep69, %scevgep74 %bound1521 = icmp ult ptr %18, %scevgep70 %found.conflict522 = and i1 %bound0520, %bound1521 %conflict.rdx523 = or i1 %conflict.rdx519, %found.conflict522 %bound0524 = icmp ult ptr %scevgep69, %scevgep76 %bound1525 = icmp ult ptr %scevgep75, %scevgep70 %found.conflict526 = and i1 %bound0524, %bound1525 %conflict.rdx527 = or i1 %conflict.rdx523, %found.conflict526 %bound0528 = icmp ult ptr %14, %scevgep73 %bound1529 = icmp ult ptr %scevgep72, %scevgep71 %found.conflict530 = and i1 %bound0528, %bound1529 %conflict.rdx531 = or i1 %conflict.rdx527, %found.conflict530 %bound0532 = icmp ult ptr %14, %scevgep74 %bound1533 = icmp ult ptr %18, %scevgep71 %found.conflict534 = and i1 %bound0532, %bound1533 %conflict.rdx535 = or i1 %conflict.rdx531, %found.conflict534 %bound0536 = icmp ult ptr %14, %scevgep76 %bound1537 = icmp ult ptr %scevgep75, %scevgep71 %found.conflict538 = and i1 %bound0536, %bound1537 %conflict.rdx539 = or i1 %conflict.rdx535, %found.conflict538 %bound0540 = icmp ult ptr %scevgep72, %scevgep74 %bound1541 = icmp ult ptr %18, %scevgep73 %found.conflict542 = and i1 %bound0540, %bound1541 %conflict.rdx543 = or i1 %conflict.rdx539, %found.conflict542 %bound0544 = icmp ult ptr %scevgep72, %scevgep76 %bound1545 = icmp ult ptr %scevgep75, %scevgep73 %found.conflict546 = and i1 %bound0544, %bound1545 %conflict.rdx547 = or i1 %conflict.rdx543, %found.conflict546 %bound0548 = icmp ult ptr %18, %scevgep76 %bound1549 = icmp ult ptr %scevgep75, %scevgep74 %found.conflict550 = and i1 %bound0548, %bound1549 %conflict.rdx551 = or i1 %conflict.rdx547, %found.conflict550 br i1 %conflict.rdx551, label %bb12.i.i.preheader594, label %vector.ph vector.ph: ; preds = %vector.memcheck %n.vec = and i64 %_0.0.sroa.speculated.i.i.i70.i, 288230376151711740 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %vector.ph ], [ %vec.ind.next, %vector.body ] %134 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %135 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %136 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %137 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %138 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %139 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index %140 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %141 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index %142 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %142, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %143 = getelementptr inbounds i8, <4 x ptr> %142, i64 8 %wide.masked.gather552 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %143, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %144 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 1 %wide.masked.gather553 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %144, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %145 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather554 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %145, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %146 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 2 %wide.masked.gather555 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %147 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather556 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %148 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 3 %wide.masked.gather557 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %148, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %149 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather558 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %149, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %150 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 4 %wide.masked.gather559 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %150, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %151 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather560 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %152 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 5 %wide.masked.gather561 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %153 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather562 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %153, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %154 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 6 %wide.masked.gather563 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %155 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather564 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !83, !noalias !80 %wide.vec = load <8 x double>, ptr %134, align 8, !alias.scope !80, !noalias !83 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec565 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec566 = load <8 x double>, ptr %138, align 8, !alias.scope !80, !noalias !83 %strided.vec567 = shufflevector <8 x double> %wide.vec566, <8 x double> poison, <4 x i32> %strided.vec568 = shufflevector <8 x double> %wide.vec566, <8 x double> poison, <4 x i32> %wide.vec569 = load <8 x double>, ptr %136, align 8, !alias.scope !80, !noalias !83 %strided.vec570 = shufflevector <8 x double> %wide.vec569, <8 x double> poison, <4 x i32> %strided.vec571 = shufflevector <8 x double> %wide.vec569, <8 x double> poison, <4 x i32> %wide.vec572 = load <8 x double>, ptr %140, align 8, !alias.scope !80, !noalias !83 %strided.vec573 = shufflevector <8 x double> %wide.vec572, <8 x double> poison, <4 x i32> %strided.vec574 = shufflevector <8 x double> %wide.vec572, <8 x double> poison, <4 x i32> %wide.vec575 = load <8 x double>, ptr %135, align 8, !alias.scope !80, !noalias !83 %strided.vec576 = shufflevector <8 x double> %wide.vec575, <8 x double> poison, <4 x i32> %strided.vec577 = shufflevector <8 x double> %wide.vec575, <8 x double> poison, <4 x i32> %wide.vec578 = load <8 x double>, ptr %139, align 8, !alias.scope !80, !noalias !83 %strided.vec579 = shufflevector <8 x double> %wide.vec578, <8 x double> poison, <4 x i32> %strided.vec580 = shufflevector <8 x double> %wide.vec578, <8 x double> poison, <4 x i32> %wide.vec581 = load <8 x double>, ptr %137, align 8, !alias.scope !80, !noalias !83 %strided.vec582 = shufflevector <8 x double> %wide.vec581, <8 x double> poison, <4 x i32> %strided.vec583 = shufflevector <8 x double> %wide.vec581, <8 x double> poison, <4 x i32> %wide.vec584 = load <8 x double>, ptr %141, align 8, !alias.scope !80, !noalias !83 %strided.vec585 = shufflevector <8 x double> %wide.vec584, <8 x double> poison, <4 x i32> %strided.vec586 = shufflevector <8 x double> %wide.vec584, <8 x double> poison, <4 x i32> %156 = fneg <4 x double> %wide.masked.gather552 %157 = fmul <4 x double> %strided.vec568, %156 %158 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %strided.vec567, <4 x double> %157) %159 = fmul <4 x double> %wide.masked.gather552, %strided.vec567 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %strided.vec568, <4 x double> %159) %161 = fneg <4 x double> %wide.masked.gather554 %162 = fmul <4 x double> %strided.vec571, %161 %163 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather553, <4 x double> %strided.vec570, <4 x double> %162) %164 = fmul <4 x double> %wide.masked.gather554, %strided.vec570 %165 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather553, <4 x double> %strided.vec571, <4 x double> %164) %166 = fneg <4 x double> %wide.masked.gather556 %167 = fmul <4 x double> %strided.vec574, %166 %168 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather555, <4 x double> %strided.vec573, <4 x double> %167) %169 = fmul <4 x double> %wide.masked.gather556, %strided.vec573 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather555, <4 x double> %strided.vec574, <4 x double> %169) %171 = fneg <4 x double> %wide.masked.gather558 %172 = fmul <4 x double> %strided.vec577, %171 %173 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather557, <4 x double> %strided.vec576, <4 x double> %172) %174 = fmul <4 x double> %wide.masked.gather558, %strided.vec576 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather557, <4 x double> %strided.vec577, <4 x double> %174) %176 = fneg <4 x double> %wide.masked.gather560 %177 = fmul <4 x double> %strided.vec580, %176 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather559, <4 x double> %strided.vec579, <4 x double> %177) %179 = fmul <4 x double> %wide.masked.gather560, %strided.vec579 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather559, <4 x double> %strided.vec580, <4 x double> %179) %181 = fneg <4 x double> %wide.masked.gather562 %182 = fmul <4 x double> %strided.vec583, %181 %183 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather561, <4 x double> %strided.vec582, <4 x double> %182) %184 = fmul <4 x double> %wide.masked.gather562, %strided.vec582 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather561, <4 x double> %strided.vec583, <4 x double> %184) %186 = fneg <4 x double> %wide.masked.gather564 %187 = fmul <4 x double> %strided.vec586, %186 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather563, <4 x double> %strided.vec585, <4 x double> %187) %189 = fmul <4 x double> %wide.masked.gather564, %strided.vec585 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather563, <4 x double> %strided.vec586, <4 x double> %189) %191 = fadd <4 x double> %strided.vec, %173 %192 = fadd <4 x double> %strided.vec565, %175 %193 = fsub <4 x double> %strided.vec, %173 %194 = fsub <4 x double> %strided.vec565, %175 %195 = fadd <4 x double> %163, %183 %196 = fadd <4 x double> %165, %185 %197 = fsub <4 x double> %163, %183 %198 = fsub <4 x double> %165, %185 %199 = fadd <4 x double> %158, %178 %200 = fadd <4 x double> %160, %180 %201 = fsub <4 x double> %158, %178 %202 = fsub <4 x double> %160, %180 %203 = fadd <4 x double> %168, %188 %204 = fadd <4 x double> %170, %190 %205 = fsub <4 x double> %168, %188 %206 = fsub <4 x double> %170, %190 %207 = fadd <4 x double> %191, %195 %208 = fadd <4 x double> %192, %196 %209 = fadd <4 x double> %199, %203 %210 = fadd <4 x double> %200, %204 %211 = fsub <4 x double> %191, %195 %212 = fsub <4 x double> %192, %196 %213 = fsub <4 x double> %199, %203 %214 = fsub <4 x double> %200, %204 %215 = fsub <4 x double> %193, %198 %216 = fadd <4 x double> %194, %197 %217 = fsub <4 x double> %201, %206 %218 = fadd <4 x double> %202, %205 %219 = fsub <4 x double> %217, %218 %220 = fadd <4 x double> %217, %218 %221 = fmul <4 x double> %219, %222 = fmul <4 x double> %220, %223 = fadd <4 x double> %193, %198 %224 = fsub <4 x double> %194, %197 %225 = fadd <4 x double> %201, %206 %226 = fsub <4 x double> %202, %205 %227 = fadd <4 x double> %225, %226 %228 = fsub <4 x double> %226, %225 %229 = fmul <4 x double> %227, %230 = fmul <4 x double> %228, %231 = fadd <4 x double> %207, %209 %232 = fadd <4 x double> %208, %210 %233 = fadd <4 x double> %215, %221 %234 = fadd <4 x double> %216, %222 %235 = fsub <4 x double> %211, %214 %236 = fadd <4 x double> %212, %213 %237 = fsub <4 x double> %223, %229 %238 = fsub <4 x double> %224, %230 %239 = fsub <4 x double> %207, %209 %240 = fsub <4 x double> %208, %210 %241 = fsub <4 x double> %215, %221 %242 = fsub <4 x double> %216, %222 %243 = fadd <4 x double> %211, %214 %244 = fsub <4 x double> %212, %213 %245 = fadd <4 x double> %223, %229 %246 = fadd <4 x double> %224, %230 %interleaved.vec = shufflevector <4 x double> %231, <4 x double> %232, <8 x i32> store <8 x double> %interleaved.vec, ptr %134, align 8, !alias.scope !80, !noalias !83 %interleaved.vec587 = shufflevector <4 x double> %233, <4 x double> %234, <8 x i32> store <8 x double> %interleaved.vec587, ptr %135, align 8, !alias.scope !80, !noalias !83 %interleaved.vec588 = shufflevector <4 x double> %235, <4 x double> %236, <8 x i32> store <8 x double> %interleaved.vec588, ptr %136, align 8, !alias.scope !80, !noalias !83 %interleaved.vec589 = shufflevector <4 x double> %237, <4 x double> %238, <8 x i32> store <8 x double> %interleaved.vec589, ptr %137, align 8, !alias.scope !80, !noalias !83 %interleaved.vec590 = shufflevector <4 x double> %239, <4 x double> %240, <8 x i32> store <8 x double> %interleaved.vec590, ptr %138, align 8, !alias.scope !80, !noalias !83 %interleaved.vec591 = shufflevector <4 x double> %241, <4 x double> %242, <8 x i32> store <8 x double> %interleaved.vec591, ptr %139, align 8, !alias.scope !80, !noalias !83 %interleaved.vec592 = shufflevector <4 x double> %243, <4 x double> %244, <8 x i32> store <8 x double> %interleaved.vec592, ptr %140, align 8, !alias.scope !80, !noalias !83 %interleaved.vec593 = shufflevector <4 x double> %245, <4 x double> %246, <8 x i32> store <8 x double> %interleaved.vec593, ptr %141, align 8, !alias.scope !80, !noalias !83 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %247 = icmp eq i64 %index.next, %n.vec br i1 %247, label %middle.block, label %vector.body, !llvm.loop !85 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %_0.0.sroa.speculated.i.i.i70.i, %n.vec br i1 %cmp.n, label %"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E.exit", label %bb12.i.i.preheader594 bb12.i.i.preheader594: ; preds = %vector.memcheck, %vector.scevcheck, %bb12.i.i.preheader, %middle.block %iter.i.sroa.57.017.i.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ 0, %bb12.i.i.preheader ], [ %n.vec, %middle.block ] br label %bb12.i.i bb19.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !86 unreachable bb12.i.i: ; preds = %bb12.i.i.preheader594, %bb12.i.i %iter.i.sroa.57.017.i = phi i64 [ %248, %bb12.i.i ], [ %iter.i.sroa.57.017.i.ph, %bb12.i.i.preheader594 ] %248 = add nuw nsw i64 %iter.i.sroa.57.017.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.57.017.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i %w1.0.i.i = load double, ptr %_3.i.i.i.i.i, align 8, !alias.scope !83, !noalias !80, !noundef !3 %249 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i, i64 8 %w1.1.i.i = load double, ptr %249, align 8, !alias.scope !83, !noalias !80, !noundef !3 %250 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 1 %w2.0.i.i = load double, ptr %250, align 8, !alias.scope !83, !noalias !80, !noundef !3 %251 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 1, i32 1 %w2.1.i.i = load double, ptr %251, align 8, !alias.scope !83, !noalias !80, !noundef !3 %252 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 2 %w3.0.i.i = load double, ptr %252, align 8, !alias.scope !83, !noalias !80, !noundef !3 %253 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 2, i32 1 %w3.1.i.i = load double, ptr %253, align 8, !alias.scope !83, !noalias !80, !noundef !3 %254 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 3 %w4.0.i.i = load double, ptr %254, align 8, !alias.scope !83, !noalias !80, !noundef !3 %255 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 3, i32 1 %w4.1.i.i = load double, ptr %255, align 8, !alias.scope !83, !noalias !80, !noundef !3 %256 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 4 %w5.0.i.i = load double, ptr %256, align 8, !alias.scope !83, !noalias !80, !noundef !3 %257 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 4, i32 1 %w5.1.i.i = load double, ptr %257, align 8, !alias.scope !83, !noalias !80, !noundef !3 %258 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 5 %w6.0.i.i = load double, ptr %258, align 8, !alias.scope !83, !noalias !80, !noundef !3 %259 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 5, i32 1 %w6.1.i.i = load double, ptr %259, align 8, !alias.scope !83, !noalias !80, !noundef !3 %260 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 6 %w7.0.i.i = load double, ptr %260, align 8, !alias.scope !83, !noalias !80, !noundef !3 %261 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 6, i32 1 %w7.1.i.i = load double, ptr %261, align 8, !alias.scope !83, !noalias !80, !noundef !3 %_53.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %262 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_53.1.i.i = load double, ptr %262, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_54.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %263 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_54.1.i.i = load double, ptr %263, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_55.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %264 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_55.1.i.i = load double, ptr %264, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_56.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %265 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i, i64 8 %_56.1.i.i = load double, ptr %265, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_57.0.i.i = load double, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %266 = getelementptr inbounds i8, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_57.1.i.i = load double, ptr %266, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_58.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %267 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_58.1.i.i = load double, ptr %267, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_59.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %268 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_59.1.i.i = load double, ptr %268, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_60.0.i.i = load double, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83, !noundef !3 %269 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i, i64 8 %_60.1.i.i = load double, ptr %269, align 8, !alias.scope !80, !noalias !83, !noundef !3 %_6.i71.i.i.i = fneg double %w1.1.i.i %b.i72.i.i.i = fmul double %_54.1.i.i, %_6.i71.i.i.i %270 = tail call double @llvm.fma.f64(double %w1.0.i.i, double %_54.0.i.i, double %b.i72.i.i.i) %b1.i73.i.i.i = fmul double %w1.1.i.i, %_54.0.i.i %271 = tail call double @llvm.fma.f64(double %w1.0.i.i, double %_54.1.i.i, double %b1.i73.i.i.i) %_6.i68.i.i.i = fneg double %w2.1.i.i %b.i69.i.i.i = fmul double %_55.1.i.i, %_6.i68.i.i.i %272 = tail call double @llvm.fma.f64(double %w2.0.i.i, double %_55.0.i.i, double %b.i69.i.i.i) %b1.i70.i.i.i = fmul double %w2.1.i.i, %_55.0.i.i %273 = tail call double @llvm.fma.f64(double %w2.0.i.i, double %_55.1.i.i, double %b1.i70.i.i.i) %_6.i65.i.i.i = fneg double %w3.1.i.i %b.i66.i.i.i = fmul double %_56.1.i.i, %_6.i65.i.i.i %274 = tail call double @llvm.fma.f64(double %w3.0.i.i, double %_56.0.i.i, double %b.i66.i.i.i) %b1.i67.i.i.i = fmul double %w3.1.i.i, %_56.0.i.i %275 = tail call double @llvm.fma.f64(double %w3.0.i.i, double %_56.1.i.i, double %b1.i67.i.i.i) %_6.i62.i.i.i = fneg double %w4.1.i.i %b.i63.i.i.i = fmul double %_57.1.i.i, %_6.i62.i.i.i %276 = tail call double @llvm.fma.f64(double %w4.0.i.i, double %_57.0.i.i, double %b.i63.i.i.i) %b1.i64.i.i.i = fmul double %w4.1.i.i, %_57.0.i.i %277 = tail call double @llvm.fma.f64(double %w4.0.i.i, double %_57.1.i.i, double %b1.i64.i.i.i) %_6.i59.i.i.i = fneg double %w5.1.i.i %b.i60.i.i.i = fmul double %_58.1.i.i, %_6.i59.i.i.i %278 = tail call double @llvm.fma.f64(double %w5.0.i.i, double %_58.0.i.i, double %b.i60.i.i.i) %b1.i61.i.i.i = fmul double %w5.1.i.i, %_58.0.i.i %279 = tail call double @llvm.fma.f64(double %w5.0.i.i, double %_58.1.i.i, double %b1.i61.i.i.i) %_6.i56.i.i.i = fneg double %w6.1.i.i %b.i57.i.i.i = fmul double %_59.1.i.i, %_6.i56.i.i.i %280 = tail call double @llvm.fma.f64(double %w6.0.i.i, double %_59.0.i.i, double %b.i57.i.i.i) %b1.i58.i.i.i = fmul double %w6.1.i.i, %_59.0.i.i %281 = tail call double @llvm.fma.f64(double %w6.0.i.i, double %_59.1.i.i, double %b1.i58.i.i.i) %_6.i.i.i.i = fneg double %w7.1.i.i %b.i55.i.i.i = fmul double %_60.1.i.i, %_6.i.i.i.i %282 = tail call double @llvm.fma.f64(double %w7.0.i.i, double %_60.0.i.i, double %b.i55.i.i.i) %b1.i.i.i.i = fmul double %w7.1.i.i, %_60.0.i.i %283 = tail call double @llvm.fma.f64(double %w7.0.i.i, double %_60.1.i.i, double %b1.i.i.i.i) %_0.i.i.i = fadd double %_53.0.i.i, %276 %_0.i3.i.i = fadd double %_53.1.i.i, %277 %_0.i.i76.i = fsub double %_53.0.i.i, %276 %_0.i3.i77.i = fsub double %_53.1.i.i, %277 %_0.i.i78.i = fadd double %272, %280 %_0.i3.i79.i = fadd double %273, %281 %_0.i.i80.i = fsub double %272, %280 %_0.i3.i81.i = fsub double %273, %281 %_0.i.i82.i = fadd double %270, %278 %_0.i3.i83.i = fadd double %271, %279 %_0.i.i84.i = fsub double %270, %278 %_0.i3.i85.i = fsub double %271, %279 %_0.i.i86.i = fadd double %274, %282 %_0.i3.i87.i = fadd double %275, %283 %_0.i.i88.i = fsub double %274, %282 %_0.i3.i89.i = fsub double %275, %283 %_0.i.i90.i = fadd double %_0.i.i.i, %_0.i.i78.i %_0.i3.i91.i = fadd double %_0.i3.i.i, %_0.i3.i79.i %_0.i.i92.i = fadd double %_0.i.i82.i, %_0.i.i86.i %_0.i3.i93.i = fadd double %_0.i3.i83.i, %_0.i3.i87.i %_0.i.i94.i = fsub double %_0.i.i.i, %_0.i.i78.i %_0.i3.i95.i = fsub double %_0.i3.i.i, %_0.i3.i79.i %_0.i.i96.i = fsub double %_0.i.i82.i, %_0.i.i86.i %_0.i3.i97.i = fsub double %_0.i3.i83.i, %_0.i3.i87.i %_0.i.i98.i = fsub double %_0.i.i76.i, %_0.i3.i81.i %_0.i3.i99.i = fadd double %_0.i3.i77.i, %_0.i.i80.i %_0.i.i100.i = fsub double %_0.i.i84.i, %_0.i3.i89.i %_0.i3.i101.i = fadd double %_0.i3.i85.i, %_0.i.i88.i %_0.i.i102.i = fsub double %_0.i.i100.i, %_0.i3.i101.i %_0.i3.i103.i = fadd double %_0.i.i100.i, %_0.i3.i101.i %_4.i.i.i.i = fmul double %_0.i.i102.i, 0x3FE6A09E667F3BCD %_7.i.i.i.i = fmul double %_0.i3.i103.i, 0x3FE6A09E667F3BCD %_0.i.i104.i = fadd double %_0.i.i76.i, %_0.i3.i81.i %_0.i3.i105.i = fsub double %_0.i3.i77.i, %_0.i.i80.i %_0.i.i106.i = fadd double %_0.i.i84.i, %_0.i3.i89.i %_0.i3.i107.i = fsub double %_0.i3.i85.i, %_0.i.i88.i %_0.i.i108.i = fadd double %_0.i.i106.i, %_0.i3.i107.i %_0.i3.i109.i = fsub double %_0.i3.i107.i, %_0.i.i106.i %_4.i53.i.i.i = fmul double %_0.i.i108.i, 0x3FE6A09E667F3BCD %_7.i54.i.i.i = fmul double %_0.i3.i109.i, 0x3FE6A09E667F3BCD %_0.i.i110.i = fadd double %_0.i.i90.i, %_0.i.i92.i %_0.i3.i111.i = fadd double %_0.i3.i91.i, %_0.i3.i93.i %_0.i.i112.i = fadd double %_0.i.i98.i, %_4.i.i.i.i %_0.i3.i113.i = fadd double %_0.i3.i99.i, %_7.i.i.i.i %_0.i.i114.i = fsub double %_0.i.i94.i, %_0.i3.i97.i %_0.i3.i115.i = fadd double %_0.i3.i95.i, %_0.i.i96.i %_0.i.i116.i = fsub double %_0.i.i104.i, %_4.i53.i.i.i %_0.i3.i117.i = fsub double %_0.i3.i105.i, %_7.i54.i.i.i %_0.i.i118.i = fsub double %_0.i.i90.i, %_0.i.i92.i %_0.i3.i119.i = fsub double %_0.i3.i91.i, %_0.i3.i93.i %_0.i.i120.i = fsub double %_0.i.i98.i, %_4.i.i.i.i %_0.i3.i121.i = fsub double %_0.i3.i99.i, %_7.i.i.i.i %_0.i.i122.i = fadd double %_0.i.i94.i, %_0.i3.i97.i %_0.i3.i123.i = fsub double %_0.i3.i95.i, %_0.i.i96.i %_0.i.i124.i = fadd double %_0.i.i104.i, %_4.i53.i.i.i %_0.i3.i125.i = fadd double %_0.i3.i105.i, %_7.i54.i.i.i store double %_0.i.i110.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i111.i, ptr %262, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i112.i, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i113.i, ptr %266, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i114.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i115.i, ptr %264, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i116.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i117.i, ptr %268, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i118.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i119.i, ptr %263, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i120.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i121.i, ptr %267, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i122.i, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i123.i, ptr %265, align 8, !alias.scope !80, !noalias !83 store double %_0.i.i124.i, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !80, !noalias !83 store double %_0.i3.i125.i, ptr %269, align 8, !alias.scope !80, !noalias !83 %exitcond.not.i = icmp eq i64 %248, %_0.0.sroa.speculated.i.i.i70.i br i1 %exitcond.not.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E.exit", label %bb12.i.i, !llvm.loop !87 "_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E.exit": ; preds = %bb12.i.i, %middle.block, %bb20.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5b5b52509be1a1b9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h397e7993292cc70bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5bb5b26d783a8927E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8db9d1403bbdc85dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5d254d713970c606E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h886aae89fc49674cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5d50a3898b8a15e4E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h50a9ae5a437f3a2dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5dce8947a55f950bE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0422ff1d6363fdb6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5e5f3c578297eb53E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb370d48835eccebfE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5e7d135dc3982535E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he9ff83625188b5e1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h5fc8a52c39806279E(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5ef0a115ddd16686E"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6029c48b2d629121E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h10d70efcf19df9b2E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h605098a361b861b4E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h812c46984bfa53abE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6094fdda0b5c1db8E(ptr noalias nocapture nonnull readnone align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #2 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h63242b55b12176b9E"(i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) unreachable } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h60a1c0d0e8bd306dE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h48a7b9b66d1eba9fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6102b75ae125a70cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h25e3f0a2ec521fd8E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6157286ebe6aaedfE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc795e8e3a1c9b55cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h626aaf5b31b63219E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8a66465b895f2d2dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h629c0f4e7966fa6dE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9d62a17afc6e86cfE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h633277617446ba57E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha882f69e8296bfb4E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6409063d70320d68E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf4e2a2f727b6c9cfE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h655741d47a42e420E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf0940a7f8802a85fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h65d8794cf2ad35dcE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h67606ca2ea1bfbb5E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h65fd19313e7ee888E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd8853f1125fa01d7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h67180ff697900a83E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9ab75efb3ac8499dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h67d87fe3dde48509E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h79d73806784543c0E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h687b1e4cf0ae5b32E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he7198309d3772d3cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h689de500788fa50cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf3b9397a0a5cda4aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6ab2952fc8d89babE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd8d8a8ee03f56353E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6c65615d953c9a67E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd14acd249a9fcd66E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6e408824efd25b39E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h37203a4d7dc0c6b1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6eae222a51387a69E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6614edcb417f9413E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6f69fc71b13c25f3E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hac16e62aa3dfe03eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h6fa767e8bbe341e3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17haf9d9fce6e52139fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h71a74110cdf4a3a1E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha00b9c5f1c7caea0E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h71ae0a85278e85b6E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd4a737322983f846E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h71ef7fd3ea55d378E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: %_4.i = alloca %"pulp::x86::V4", align 1 %f.i = alloca %"{closure@src/unordered.rs:306:29: 306:31}.834", align 8 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %_4.i) %4 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !88 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !88 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hbd963fec13970a20E.exit" bb3.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_43280851d52ab33b05930d4c1dd3aed1) #22, !noalias !88 unreachable "_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hbd963fec13970a20E.exit": ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %f.i), !noalias !88 store ptr %_4.i, ptr %f.i, align 8, !noalias !88 %6 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f.i, i64 0, i32 1 store ptr %0, ptr %6, align 8, !noalias !88 %7 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f.i, i64 0, i32 1, i32 1 store i64 %1, ptr %7, align 8, !noalias !88 %8 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f.i, i64 0, i32 2 store ptr %2, ptr %8, align 8, !noalias !88 %9 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f.i, i64 0, i32 2, i32 1 store i64 %3, ptr %9, align 8, !noalias !88 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h636123ad7411ee9aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %f.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %f.i), !noalias !88 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %_4.i) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h730454751d500f1eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf621022a85b02b44E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h73329400916abe63E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4c6ce95381d450ffE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h754fb9d412d5b3eeE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc9f4788c4692de61E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h766b06bad806956dE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6a1949af3e51ace7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h775f9f9754f429bcE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h24bb69a00f912260E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h77ac2ee9729ffc0aE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf97a5dbf406c3b03E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h77decbe99a796593E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb78af5f0247024b6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h78f2f9cb1e90cee3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hec1b8d18ac71a346E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h79aae62d777d92fdE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb64f7aa9065b7b6cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7ade0115a0b7cb39E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he697cbc907661bbbE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7b082f24805a691eE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf9451898d1f3903dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7cab27b8a92f225aE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7c982dc63ea08c00E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7cd26be4957e5aefE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb50a87dc61c000dfE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7e4a23bc4c3746a8E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0abd4df83fba86e1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7e99af5c60475581E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2ad227394b2261a8E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7eb4cf7d783eaa9eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2d925ad87ca7951eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7ed905db65b44d81E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4c13c035098a1d2cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h7ef4661cbeb82121E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd32ba6122274b6cfE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h80a678a8622cddefE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf20873f6ab76e888E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h812b5ed072befcd5E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7cc454e0c2dcfbb1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h82fc8ddafeee4899E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h28482f94bfb6dd05E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h832232daa4e7a621E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h26b3f622c9ad302fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h832986be3c6709b3E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8b7bcb70b9990b73E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8369cbb07bb21fc2E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h077b4f4fa3869a39E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h83e75844db8f90c4E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcb84e1837fb74817E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8469a712155d2637E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb4e6516353ac180eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8477eaaf78c518d2E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h99b3396de48c9f08E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h84f863933d030792E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h03d9fb3a6be50066E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8522edf03841fd2dE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hbe00fea886c055adE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h85a17475f55bdd90E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5c25f45fc9b933ccE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h85ea903155e58fefE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h460178b1005f8592E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8627f190de1074bfE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #3 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !92) tail call void @llvm.experimental.noalias.scope.decl(metadata !95) %mid14.i.i = lshr i64 %1, 1 %4 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid14.i.i %5 = sub i64 %1, %mid14.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid14.i.i, i64 %5) %_0.0.sroa.speculated.i.i.i1.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %3) %_2.i.i.i7.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i1.i, 0 br i1 %_2.i.i.i7.not.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E.exit", label %bb5.i.i.preheader bb5.i.i.preheader: ; preds = %start %min.iters.check = icmp ult i64 %_0.0.sroa.speculated.i.i.i1.i, 24 br i1 %min.iters.check, label %bb5.i.i.preheader37, label %vector.scevcheck vector.scevcheck: ; preds = %bb5.i.i.preheader %6 = add nsw i64 %_0.0.sroa.speculated.i.i.i1.i, -1 %mul.result = shl i64 %6, 4 %7 = getelementptr i8, ptr %4, i64 %mul.result %8 = icmp ult ptr %7, %4 %9 = shl i64 %mid14.i.i, 4 %10 = or disjoint i64 %9, 8 %scevgep = getelementptr i8, ptr %0, i64 %10 %mul.result2 = shl i64 %6, 4 %mul.overflow3 = icmp ugt i64 %6, 1152921504606846975 %11 = getelementptr i8, ptr %scevgep, i64 %mul.result2 %12 = icmp ult ptr %11, %scevgep %13 = or i1 %12, %mul.overflow3 %14 = or i1 %8, %13 br i1 %14, label %bb5.i.i.preheader37, label %vector.memcheck vector.memcheck: ; preds = %vector.scevcheck %15 = shl i64 %_0.0.sroa.speculated.i.i.i1.i, 4 %16 = getelementptr i8, ptr %0, i64 %15 %scevgep4 = getelementptr i8, ptr %16, i64 -8 %scevgep5 = getelementptr i8, ptr %0, i64 8 %scevgep6 = getelementptr i8, ptr %0, i64 %15 %17 = shl i64 %mid14.i.i, 4 %18 = add i64 %15, %17 %19 = getelementptr i8, ptr %0, i64 %18 %scevgep7 = getelementptr i8, ptr %19, i64 -8 %20 = or disjoint i64 %17, 8 %scevgep8 = getelementptr i8, ptr %0, i64 %20 %scevgep9 = getelementptr i8, ptr %0, i64 %18 %bound0 = icmp ugt ptr %scevgep6, %0 %bound1 = icmp ult ptr %scevgep5, %scevgep4 %found.conflict = and i1 %bound0, %bound1 %bound010 = icmp ugt ptr %scevgep7, %0 %bound111 = icmp ult ptr %4, %scevgep4 %found.conflict12 = and i1 %bound010, %bound111 %conflict.rdx = or i1 %found.conflict, %found.conflict12 %bound013 = icmp ugt ptr %scevgep9, %0 %bound114 = icmp ult ptr %scevgep8, %scevgep4 %found.conflict15 = and i1 %bound013, %bound114 %conflict.rdx16 = or i1 %conflict.rdx, %found.conflict15 %bound017 = icmp ult ptr %scevgep5, %scevgep7 %bound118 = icmp ult ptr %4, %scevgep6 %found.conflict19 = and i1 %bound017, %bound118 %conflict.rdx20 = or i1 %conflict.rdx16, %found.conflict19 %bound021 = icmp ult ptr %scevgep5, %scevgep9 %bound122 = icmp ult ptr %scevgep8, %scevgep6 %found.conflict23 = and i1 %bound021, %bound122 %conflict.rdx24 = or i1 %conflict.rdx20, %found.conflict23 %bound025 = icmp ult ptr %4, %scevgep9 %bound126 = icmp ult ptr %scevgep8, %scevgep7 %found.conflict27 = and i1 %bound025, %bound126 %conflict.rdx28 = or i1 %conflict.rdx24, %found.conflict27 br i1 %conflict.rdx28, label %bb5.i.i.preheader37, label %vector.ph vector.ph: ; preds = %vector.memcheck %n.vec = and i64 %_0.0.sroa.speculated.i.i.i1.i, 9223372036854775804 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %21 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %23 = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %23, align 8, !alias.scope !95, !noalias !92 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %21, align 8, !alias.scope !92, !noalias !95 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %22, align 8, !alias.scope !92, !noalias !95 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %24 = fadd <4 x double> %strided.vec31, %strided.vec34 %25 = fadd <4 x double> %strided.vec32, %strided.vec35 %26 = fsub <4 x double> %strided.vec31, %strided.vec34 %27 = fsub <4 x double> %strided.vec32, %strided.vec35 %28 = fneg <4 x double> %strided.vec29 %29 = fmul <4 x double> %27, %28 %30 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %26, <4 x double> %29) %31 = fmul <4 x double> %strided.vec29, %26 %32 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %27, <4 x double> %31) %interleaved.vec = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec, ptr %21, align 8, !alias.scope !92, !noalias !95 %interleaved.vec36 = shufflevector <4 x double> %30, <4 x double> %32, <8 x i32> store <8 x double> %interleaved.vec36, ptr %22, align 8, !alias.scope !92, !noalias !95 %index.next = add nuw i64 %index, 4 %33 = icmp eq i64 %index.next, %n.vec br i1 %33, label %middle.block, label %vector.body, !llvm.loop !97 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %_0.0.sroa.speculated.i.i.i1.i, %n.vec br i1 %cmp.n, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E.exit", label %bb5.i.i.preheader37 bb5.i.i.preheader37: ; preds = %vector.memcheck, %vector.scevcheck, %bb5.i.i.preheader, %middle.block %iter.i.sroa.15.08.i.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ 0, %bb5.i.i.preheader ], [ %n.vec, %middle.block ] %.neg = or disjoint i64 %iter.i.sroa.15.08.i.ph, 1 %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i1.i, 1 %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %bb5.i.i.prol.loopexit, label %bb5.i.i.prol bb5.i.i.prol: ; preds = %bb5.i.i.preheader37 %34 = or disjoint i64 %iter.i.sroa.15.08.i.ph, 1 %_3.i.i.i.i.i.i.i.prol = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.15.08.i.ph %_3.i2.i.i.i.i.i.i.prol = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %iter.i.sroa.15.08.i.ph %_3.i.i.i.i.i.prol = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.15.08.i.ph %w1.0.i.i.prol = load double, ptr %_3.i.i.i.i.i.prol, align 8, !alias.scope !95, !noalias !92, !noundef !3 %35 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.prol, i64 8 %w1.1.i.i.prol = load double, ptr %35, align 8, !alias.scope !95, !noalias !92, !noundef !3 %_6.i.i.i.prol = fneg double %w1.1.i.i.prol %36 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.prol, align 8, !alias.scope !92, !noalias !95 %37 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.prol, align 8, !alias.scope !92, !noalias !95 %38 = fadd <2 x double> %36, %37 store <2 x double> %38, ptr %_3.i.i.i.i.i.i.i.prol, align 8, !alias.scope !92, !noalias !95 %39 = fsub <2 x double> %36, %37 %40 = shufflevector <2 x double> %39, <2 x double> poison, <2 x i32> %41 = insertelement <2 x double> poison, double %_6.i.i.i.prol, i64 0 %42 = insertelement <2 x double> %41, double %w1.1.i.i.prol, i64 1 %43 = fmul <2 x double> %40, %42 %44 = insertelement <2 x double> poison, double %w1.0.i.i.prol, i64 0 %45 = shufflevector <2 x double> %44, <2 x double> poison, <2 x i32> zeroinitializer %46 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %45, <2 x double> %39, <2 x double> %43) store <2 x double> %46, ptr %_3.i2.i.i.i.i.i.i.prol, align 8, !alias.scope !92, !noalias !95 br label %bb5.i.i.prol.loopexit bb5.i.i.prol.loopexit: ; preds = %bb5.i.i.prol, %bb5.i.i.preheader37 %iter.i.sroa.15.08.i.unr = phi i64 [ %iter.i.sroa.15.08.i.ph, %bb5.i.i.preheader37 ], [ %34, %bb5.i.i.prol ] %47 = icmp eq i64 %_0.0.sroa.speculated.i.i.i1.i, %.neg br i1 %47, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E.exit", label %bb5.i.i bb5.i.i: ; preds = %bb5.i.i.prol.loopexit, %bb5.i.i %iter.i.sroa.15.08.i = phi i64 [ %61, %bb5.i.i ], [ %iter.i.sroa.15.08.i.unr, %bb5.i.i.prol.loopexit ] %48 = add nuw nsw i64 %iter.i.sroa.15.08.i, 1 %_3.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.15.08.i %_3.i2.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %iter.i.sroa.15.08.i %_3.i.i.i.i.i = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.15.08.i %w1.0.i.i = load double, ptr %_3.i.i.i.i.i, align 8, !alias.scope !95, !noalias !92, !noundef !3 %49 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i, i64 8 %w1.1.i.i = load double, ptr %49, align 8, !alias.scope !95, !noalias !92, !noundef !3 %_6.i.i.i = fneg double %w1.1.i.i %50 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !92, !noalias !95 %51 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i, align 8, !alias.scope !92, !noalias !95 %52 = fadd <2 x double> %50, %51 store <2 x double> %52, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !92, !noalias !95 %53 = fsub <2 x double> %50, %51 %54 = shufflevector <2 x double> %53, <2 x double> poison, <2 x i32> %55 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %56 = insertelement <2 x double> %55, double %w1.1.i.i, i64 1 %57 = fmul <2 x double> %54, %56 %58 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %59 = shufflevector <2 x double> %58, <2 x double> poison, <2 x i32> zeroinitializer %60 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %59, <2 x double> %53, <2 x double> %57) store <2 x double> %60, ptr %_3.i2.i.i.i.i.i.i, align 8, !alias.scope !92, !noalias !95 %61 = add nuw nsw i64 %iter.i.sroa.15.08.i, 2 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %48 %_3.i2.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %48 %_3.i.i.i.i.i.1 = getelementptr inbounds [1 x %"num_complex::Complex"], ptr %2, i64 %48 %w1.0.i.i.1 = load double, ptr %_3.i.i.i.i.i.1, align 8, !alias.scope !95, !noalias !92, !noundef !3 %62 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.1, i64 8 %w1.1.i.i.1 = load double, ptr %62, align 8, !alias.scope !95, !noalias !92, !noundef !3 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %63 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !92, !noalias !95 %64 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !alias.scope !92, !noalias !95 %65 = fadd <2 x double> %63, %64 store <2 x double> %65, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !92, !noalias !95 %66 = fsub <2 x double> %63, %64 %67 = shufflevector <2 x double> %66, <2 x double> poison, <2 x i32> %68 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %69 = insertelement <2 x double> %68, double %w1.1.i.i.1, i64 1 %70 = fmul <2 x double> %67, %69 %71 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %72 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> zeroinitializer %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %72, <2 x double> %66, <2 x double> %70) store <2 x double> %73, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !alias.scope !92, !noalias !95 %exitcond.not.i.1 = icmp eq i64 %61, %_0.0.sroa.speculated.i.i.i1.i br i1 %exitcond.not.i.1, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E.exit", label %bb5.i.i, !llvm.loop !98 "_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E.exit": ; preds = %bb5.i.i.prol.loopexit, %bb5.i.i, %middle.block, %start ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h888106451980ecbeE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h120700363758ff43E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h88cd72113026415eE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h994102207487ae89E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h88f8f4bf36c447b5E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9d873a86d9b867f5E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8999a214c0431230E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8bf626a7a4190435E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8ac8ecab5c1bea69E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h53d608e8f500e5a4E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8b40e2c80a4260bbE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdfdfb9ffc2666b11E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8bbf81733dc296b3E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5e39f01dfe4737d5E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8bf85e17d8a380e6E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8fd31236f50bc334E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h8fb3d64614ebdcf8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !99) tail call void @llvm.experimental.noalias.scope.decl(metadata !102) %4 = shl nsw i64 %3, 4 %_13.i.i = urem i64 %4, 112 %new_len.i.i = udiv i64 %4, 112 %5 = icmp eq i64 %_13.i.i, 0 br i1 %5, label %bb20.i.i, label %bb19.i.i bb20.i.i: ; preds = %start %mid1.i.i.i = lshr i64 %1, 1 %6 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid1.i.i.i %7 = sub i64 %1, %mid1.i.i.i %mid5.i5.i.i.i = lshr i64 %1, 2 %8 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid5.i5.i.i.i %9 = sub nsw i64 %mid1.i.i.i, %mid5.i5.i.i.i %mid36.i10.i.i.i = lshr i64 %1, 3 %10 = getelementptr %"num_complex::Complex", ptr %0, i64 %mid36.i10.i.i.i %11 = sub nsw i64 %mid5.i5.i.i.i, %mid36.i10.i.i.i %mid47.i15.i.i.i = lshr i64 %9, 1 %12 = getelementptr %"num_complex::Complex", ptr %8, i64 %mid47.i15.i.i.i %13 = sub i64 %9, %mid47.i15.i.i.i %mid5.i.i.i.i = lshr i64 %7, 1 %14 = getelementptr %"num_complex::Complex", ptr %6, i64 %mid5.i.i.i.i %15 = sub i64 %7, %mid5.i.i.i.i %mid36.i.i.i.i = lshr i64 %7, 2 %16 = getelementptr %"num_complex::Complex", ptr %6, i64 %mid36.i.i.i.i %17 = sub nsw i64 %mid5.i.i.i.i, %mid36.i.i.i.i %mid47.i.i.i.i = lshr i64 %15, 1 %18 = getelementptr %"num_complex::Complex", ptr %14, i64 %mid47.i.i.i.i %19 = sub i64 %15, %mid47.i.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i10.i.i.i, i64 %11) %_0.0.sroa.speculated.i.i.i7.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i15.i.i.i) %_0.0.sroa.speculated.i.i.i15.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i7.i, i64 %13) %_0.0.sroa.speculated.i.i.i26.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i15.i, i64 %mid36.i.i.i.i) %_0.0.sroa.speculated.i.i.i37.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i26.i, i64 %17) %_0.0.sroa.speculated.i.i.i48.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i37.i, i64 %mid47.i.i.i.i) %_0.0.sroa.speculated.i.i.i59.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i48.i, i64 %19) %_0.0.sroa.speculated.i.i.i70.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i59.i, i64 %new_len.i.i) %_2.i.i.i16.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i70.i, 0 br i1 %_2.i.i.i16.not.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E.exit", label %bb12.i.i.preheader bb12.i.i.preheader: ; preds = %bb20.i.i %min.iters.check = icmp ult i64 %_0.0.sroa.speculated.i.i.i70.i, 48 br i1 %min.iters.check, label %bb12.i.i.preheader594, label %vector.scevcheck vector.scevcheck: ; preds = %bb12.i.i.preheader %20 = add nsw i64 %_0.0.sroa.speculated.i.i.i70.i, -1 %mul.result = shl nsw i64 %20, 4 %21 = getelementptr i8, ptr %0, i64 %mul.result %22 = icmp ult ptr %21, %0 %scevgep = getelementptr i8, ptr %0, i64 8 %mul.result2 = shl nsw i64 %20, 4 %mul.overflow3 = icmp ugt i64 %20, 1152921504606846975 %23 = getelementptr i8, ptr %scevgep, i64 %mul.result2 %24 = icmp ult ptr %23, %scevgep %25 = or i1 %24, %mul.overflow3 %mul.result5 = shl nsw i64 %20, 4 %26 = getelementptr i8, ptr %6, i64 %mul.result5 %27 = icmp ult ptr %26, %6 %28 = shl i64 %mid1.i.i.i, 4 %29 = or disjoint i64 %28, 8 %scevgep7 = getelementptr i8, ptr %0, i64 %29 %mul.result9 = shl nsw i64 %20, 4 %30 = getelementptr i8, ptr %scevgep7, i64 %mul.result9 %31 = icmp ult ptr %30, %scevgep7 %mul.result12 = shl nsw i64 %20, 4 %32 = getelementptr i8, ptr %8, i64 %mul.result12 %33 = icmp ult ptr %32, %8 %34 = shl i64 %mid5.i5.i.i.i, 4 %35 = or disjoint i64 %34, 8 %scevgep14 = getelementptr i8, ptr %0, i64 %35 %mul.result16 = shl nsw i64 %20, 4 %36 = getelementptr i8, ptr %scevgep14, i64 %mul.result16 %37 = icmp ult ptr %36, %scevgep14 %mul.result19 = shl nsw i64 %20, 4 %38 = getelementptr i8, ptr %14, i64 %mul.result19 %39 = icmp ult ptr %38, %14 %40 = add nuw i64 %mid1.i.i.i, %mid5.i.i.i.i %41 = shl i64 %40, 4 %42 = or disjoint i64 %41, 8 %scevgep21 = getelementptr i8, ptr %0, i64 %42 %mul.result23 = shl nsw i64 %20, 4 %43 = getelementptr i8, ptr %scevgep21, i64 %mul.result23 %44 = icmp ult ptr %43, %scevgep21 %mul.result26 = shl nsw i64 %20, 4 %45 = getelementptr i8, ptr %10, i64 %mul.result26 %46 = icmp ult ptr %45, %10 %47 = shl i64 %mid36.i10.i.i.i, 4 %48 = or disjoint i64 %47, 8 %scevgep28 = getelementptr i8, ptr %0, i64 %48 %mul.result30 = shl nsw i64 %20, 4 %mul.overflow31 = icmp ugt i64 %20, 1152921504606846975 %49 = getelementptr i8, ptr %scevgep28, i64 %mul.result30 %50 = icmp ult ptr %49, %scevgep28 %51 = or i1 %50, %mul.overflow31 %mul.result33 = shl nsw i64 %20, 4 %52 = getelementptr i8, ptr %16, i64 %mul.result33 %53 = icmp ult ptr %52, %16 %54 = add nuw i64 %mid1.i.i.i, %mid36.i.i.i.i %55 = shl i64 %54, 4 %56 = or disjoint i64 %55, 8 %scevgep35 = getelementptr i8, ptr %0, i64 %56 %mul.result37 = shl nsw i64 %20, 4 %57 = getelementptr i8, ptr %scevgep35, i64 %mul.result37 %58 = icmp ult ptr %57, %scevgep35 %mul.result40 = shl nsw i64 %20, 4 %59 = getelementptr i8, ptr %12, i64 %mul.result40 %60 = icmp ult ptr %59, %12 %61 = add nuw i64 %mid5.i5.i.i.i, %mid47.i15.i.i.i %62 = shl i64 %61, 4 %63 = or disjoint i64 %62, 8 %scevgep42 = getelementptr i8, ptr %0, i64 %63 %mul.result44 = shl nsw i64 %20, 4 %64 = getelementptr i8, ptr %scevgep42, i64 %mul.result44 %65 = icmp ult ptr %64, %scevgep42 %mul.result47 = shl nsw i64 %20, 4 %66 = getelementptr i8, ptr %18, i64 %mul.result47 %67 = icmp ult ptr %66, %18 %68 = add nuw i64 %mid1.i.i.i, %mid47.i.i.i.i %69 = add i64 %68, %mid5.i.i.i.i %70 = shl i64 %69, 4 %71 = or disjoint i64 %70, 8 %scevgep49 = getelementptr i8, ptr %0, i64 %71 %mul.result51 = shl nsw i64 %20, 4 %72 = getelementptr i8, ptr %scevgep49, i64 %mul.result51 %73 = icmp ult ptr %72, %scevgep49 %74 = or i1 %22, %25 %75 = or i1 %27, %74 %76 = or i1 %31, %75 %77 = or i1 %33, %76 %78 = or i1 %37, %77 %79 = or i1 %39, %78 %80 = or i1 %44, %79 %81 = or i1 %46, %80 %82 = or i1 %81, %51 %83 = or i1 %53, %82 %84 = or i1 %58, %83 %85 = or i1 %60, %84 %86 = or i1 %65, %85 %87 = or i1 %67, %86 %88 = or i1 %73, %87 br i1 %88, label %bb12.i.i.preheader594, label %vector.memcheck vector.memcheck: ; preds = %vector.scevcheck %89 = shl nuw nsw i64 %_0.0.sroa.speculated.i.i.i70.i, 4 %90 = getelementptr i8, ptr %0, i64 %89 %scevgep53 = getelementptr i8, ptr %90, i64 -8 %scevgep54 = getelementptr i8, ptr %0, i64 8 %scevgep55 = getelementptr i8, ptr %0, i64 %89 %91 = shl i64 %mid1.i.i.i, 4 %92 = add i64 %89, %91 %93 = getelementptr i8, ptr %0, i64 %92 %scevgep56 = getelementptr i8, ptr %93, i64 -8 %94 = or disjoint i64 %91, 8 %scevgep57 = getelementptr i8, ptr %0, i64 %94 %scevgep58 = getelementptr i8, ptr %0, i64 %92 %95 = shl i64 %mid5.i5.i.i.i, 4 %96 = add i64 %89, %95 %97 = getelementptr i8, ptr %0, i64 %96 %scevgep59 = getelementptr i8, ptr %97, i64 -8 %98 = or disjoint i64 %95, 8 %scevgep60 = getelementptr i8, ptr %0, i64 %98 %scevgep61 = getelementptr i8, ptr %0, i64 %96 %99 = shl i64 %mid5.i.i.i.i, 4 %100 = getelementptr i8, ptr %0, i64 %89 %101 = getelementptr i8, ptr %100, i64 %91 %102 = getelementptr i8, ptr %101, i64 %99 %scevgep62 = getelementptr i8, ptr %102, i64 -8 %103 = add i64 %91, %99 %104 = or disjoint i64 %103, 8 %scevgep63 = getelementptr i8, ptr %0, i64 %104 %105 = getelementptr i8, ptr %0, i64 %89 %106 = getelementptr i8, ptr %105, i64 %91 %scevgep64 = getelementptr i8, ptr %106, i64 %99 %107 = shl i64 %mid36.i10.i.i.i, 4 %108 = add i64 %89, %107 %109 = getelementptr i8, ptr %0, i64 %108 %scevgep65 = getelementptr i8, ptr %109, i64 -8 %110 = or disjoint i64 %107, 8 %scevgep66 = getelementptr i8, ptr %0, i64 %110 %scevgep67 = getelementptr i8, ptr %0, i64 %108 %111 = shl i64 %mid36.i.i.i.i, 4 %112 = getelementptr i8, ptr %0, i64 %89 %113 = getelementptr i8, ptr %112, i64 %91 %114 = getelementptr i8, ptr %113, i64 %111 %scevgep68 = getelementptr i8, ptr %114, i64 -8 %115 = add i64 %91, %111 %116 = or disjoint i64 %115, 8 %scevgep69 = getelementptr i8, ptr %0, i64 %116 %117 = getelementptr i8, ptr %0, i64 %89 %118 = getelementptr i8, ptr %117, i64 %91 %scevgep70 = getelementptr i8, ptr %118, i64 %111 %119 = shl i64 %mid47.i15.i.i.i, 4 %120 = getelementptr i8, ptr %0, i64 %89 %121 = getelementptr i8, ptr %120, i64 %95 %122 = getelementptr i8, ptr %121, i64 %119 %scevgep71 = getelementptr i8, ptr %122, i64 -8 %123 = add i64 %95, %119 %124 = or disjoint i64 %123, 8 %scevgep72 = getelementptr i8, ptr %0, i64 %124 %125 = getelementptr i8, ptr %0, i64 %89 %126 = getelementptr i8, ptr %125, i64 %95 %scevgep73 = getelementptr i8, ptr %126, i64 %119 %127 = shl i64 %mid47.i.i.i.i, 4 %128 = getelementptr i8, ptr %0, i64 %89 %129 = getelementptr i8, ptr %128, i64 %91 %130 = getelementptr i8, ptr %129, i64 %127 %131 = getelementptr i8, ptr %130, i64 %99 %scevgep74 = getelementptr i8, ptr %131, i64 -8 %132 = add i64 %91, %127 %133 = add i64 %132, %99 %134 = or disjoint i64 %133, 8 %scevgep75 = getelementptr i8, ptr %0, i64 %134 %135 = getelementptr i8, ptr %0, i64 %89 %136 = getelementptr i8, ptr %135, i64 %91 %137 = getelementptr i8, ptr %136, i64 %127 %scevgep76 = getelementptr i8, ptr %137, i64 %99 %bound0 = icmp ugt ptr %scevgep55, %0 %bound1 = icmp ult ptr %scevgep54, %scevgep53 %found.conflict = and i1 %bound0, %bound1 %bound077 = icmp ugt ptr %scevgep56, %0 %bound178 = icmp ult ptr %6, %scevgep53 %found.conflict79 = and i1 %bound077, %bound178 %conflict.rdx = or i1 %found.conflict, %found.conflict79 %bound080 = icmp ugt ptr %scevgep58, %0 %bound181 = icmp ult ptr %scevgep57, %scevgep53 %found.conflict82 = and i1 %bound080, %bound181 %conflict.rdx83 = or i1 %conflict.rdx, %found.conflict82 %bound084 = icmp ugt ptr %scevgep59, %0 %bound185 = icmp ult ptr %8, %scevgep53 %found.conflict86 = and i1 %bound084, %bound185 %conflict.rdx87 = or i1 %conflict.rdx83, %found.conflict86 %bound088 = icmp ugt ptr %scevgep61, %0 %bound189 = icmp ult ptr %scevgep60, %scevgep53 %found.conflict90 = and i1 %bound088, %bound189 %conflict.rdx91 = or i1 %conflict.rdx87, %found.conflict90 %bound092 = icmp ugt ptr %scevgep62, %0 %bound193 = icmp ult ptr %14, %scevgep53 %found.conflict94 = and i1 %bound092, %bound193 %conflict.rdx95 = or i1 %conflict.rdx91, %found.conflict94 %bound096 = icmp ugt ptr %scevgep64, %0 %bound197 = icmp ult ptr %scevgep63, %scevgep53 %found.conflict98 = and i1 %bound096, %bound197 %conflict.rdx99 = or i1 %conflict.rdx95, %found.conflict98 %bound0100 = icmp ugt ptr %scevgep65, %0 %bound1101 = icmp ult ptr %10, %scevgep53 %found.conflict102 = and i1 %bound0100, %bound1101 %conflict.rdx103 = or i1 %conflict.rdx99, %found.conflict102 %bound0104 = icmp ugt ptr %scevgep67, %0 %bound1105 = icmp ult ptr %scevgep66, %scevgep53 %found.conflict106 = and i1 %bound0104, %bound1105 %conflict.rdx107 = or i1 %conflict.rdx103, %found.conflict106 %bound0108 = icmp ugt ptr %scevgep68, %0 %bound1109 = icmp ult ptr %16, %scevgep53 %found.conflict110 = and i1 %bound0108, %bound1109 %conflict.rdx111 = or i1 %conflict.rdx107, %found.conflict110 %bound0112 = icmp ugt ptr %scevgep70, %0 %bound1113 = icmp ult ptr %scevgep69, %scevgep53 %found.conflict114 = and i1 %bound0112, %bound1113 %conflict.rdx115 = or i1 %conflict.rdx111, %found.conflict114 %bound0116 = icmp ugt ptr %scevgep71, %0 %bound1117 = icmp ult ptr %12, %scevgep53 %found.conflict118 = and i1 %bound0116, %bound1117 %conflict.rdx119 = or i1 %conflict.rdx115, %found.conflict118 %bound0120 = icmp ugt ptr %scevgep73, %0 %bound1121 = icmp ult ptr %scevgep72, %scevgep53 %found.conflict122 = and i1 %bound0120, %bound1121 %conflict.rdx123 = or i1 %conflict.rdx119, %found.conflict122 %bound0124 = icmp ugt ptr %scevgep74, %0 %bound1125 = icmp ult ptr %18, %scevgep53 %found.conflict126 = and i1 %bound0124, %bound1125 %conflict.rdx127 = or i1 %conflict.rdx123, %found.conflict126 %bound0128 = icmp ugt ptr %scevgep76, %0 %bound1129 = icmp ult ptr %scevgep75, %scevgep53 %found.conflict130 = and i1 %bound0128, %bound1129 %conflict.rdx131 = or i1 %conflict.rdx127, %found.conflict130 %bound0132 = icmp ult ptr %scevgep54, %scevgep56 %bound1133 = icmp ult ptr %6, %scevgep55 %found.conflict134 = and i1 %bound0132, %bound1133 %conflict.rdx135 = or i1 %conflict.rdx131, %found.conflict134 %bound0136 = icmp ult ptr %scevgep54, %scevgep58 %bound1137 = icmp ult ptr %scevgep57, %scevgep55 %found.conflict138 = and i1 %bound0136, %bound1137 %conflict.rdx139 = or i1 %conflict.rdx135, %found.conflict138 %bound0140 = icmp ult ptr %scevgep54, %scevgep59 %bound1141 = icmp ult ptr %8, %scevgep55 %found.conflict142 = and i1 %bound0140, %bound1141 %conflict.rdx143 = or i1 %conflict.rdx139, %found.conflict142 %bound0144 = icmp ult ptr %scevgep54, %scevgep61 %bound1145 = icmp ult ptr %scevgep60, %scevgep55 %found.conflict146 = and i1 %bound0144, %bound1145 %conflict.rdx147 = or i1 %conflict.rdx143, %found.conflict146 %bound0148 = icmp ult ptr %scevgep54, %scevgep62 %bound1149 = icmp ult ptr %14, %scevgep55 %found.conflict150 = and i1 %bound0148, %bound1149 %conflict.rdx151 = or i1 %conflict.rdx147, %found.conflict150 %bound0152 = icmp ult ptr %scevgep54, %scevgep64 %bound1153 = icmp ult ptr %scevgep63, %scevgep55 %found.conflict154 = and i1 %bound0152, %bound1153 %conflict.rdx155 = or i1 %conflict.rdx151, %found.conflict154 %bound0156 = icmp ult ptr %scevgep54, %scevgep65 %bound1157 = icmp ult ptr %10, %scevgep55 %found.conflict158 = and i1 %bound0156, %bound1157 %conflict.rdx159 = or i1 %conflict.rdx155, %found.conflict158 %bound0160 = icmp ult ptr %scevgep54, %scevgep67 %bound1161 = icmp ult ptr %scevgep66, %scevgep55 %found.conflict162 = and i1 %bound0160, %bound1161 %conflict.rdx163 = or i1 %conflict.rdx159, %found.conflict162 %bound0164 = icmp ult ptr %scevgep54, %scevgep68 %bound1165 = icmp ult ptr %16, %scevgep55 %found.conflict166 = and i1 %bound0164, %bound1165 %conflict.rdx167 = or i1 %conflict.rdx163, %found.conflict166 %bound0168 = icmp ult ptr %scevgep54, %scevgep70 %bound1169 = icmp ult ptr %scevgep69, %scevgep55 %found.conflict170 = and i1 %bound0168, %bound1169 %conflict.rdx171 = or i1 %conflict.rdx167, %found.conflict170 %bound0172 = icmp ult ptr %scevgep54, %scevgep71 %bound1173 = icmp ult ptr %12, %scevgep55 %found.conflict174 = and i1 %bound0172, %bound1173 %conflict.rdx175 = or i1 %conflict.rdx171, %found.conflict174 %bound0176 = icmp ult ptr %scevgep54, %scevgep73 %bound1177 = icmp ult ptr %scevgep72, %scevgep55 %found.conflict178 = and i1 %bound0176, %bound1177 %conflict.rdx179 = or i1 %conflict.rdx175, %found.conflict178 %bound0180 = icmp ult ptr %scevgep54, %scevgep74 %bound1181 = icmp ult ptr %18, %scevgep55 %found.conflict182 = and i1 %bound0180, %bound1181 %conflict.rdx183 = or i1 %conflict.rdx179, %found.conflict182 %bound0184 = icmp ult ptr %scevgep54, %scevgep76 %bound1185 = icmp ult ptr %scevgep75, %scevgep55 %found.conflict186 = and i1 %bound0184, %bound1185 %conflict.rdx187 = or i1 %conflict.rdx183, %found.conflict186 %bound0188 = icmp ult ptr %6, %scevgep58 %bound1189 = icmp ult ptr %scevgep57, %scevgep56 %found.conflict190 = and i1 %bound0188, %bound1189 %conflict.rdx191 = or i1 %conflict.rdx187, %found.conflict190 %bound0192 = icmp ult ptr %6, %scevgep59 %bound1193 = icmp ult ptr %8, %scevgep56 %found.conflict194 = and i1 %bound0192, %bound1193 %conflict.rdx195 = or i1 %conflict.rdx191, %found.conflict194 %bound0196 = icmp ult ptr %6, %scevgep61 %bound1197 = icmp ult ptr %scevgep60, %scevgep56 %found.conflict198 = and i1 %bound0196, %bound1197 %conflict.rdx199 = or i1 %conflict.rdx195, %found.conflict198 %bound0200 = icmp ult ptr %6, %scevgep62 %bound1201 = icmp ult ptr %14, %scevgep56 %found.conflict202 = and i1 %bound0200, %bound1201 %conflict.rdx203 = or i1 %conflict.rdx199, %found.conflict202 %bound0204 = icmp ult ptr %6, %scevgep64 %bound1205 = icmp ult ptr %scevgep63, %scevgep56 %found.conflict206 = and i1 %bound0204, %bound1205 %conflict.rdx207 = or i1 %conflict.rdx203, %found.conflict206 %bound0208 = icmp ult ptr %6, %scevgep65 %bound1209 = icmp ult ptr %10, %scevgep56 %found.conflict210 = and i1 %bound0208, %bound1209 %conflict.rdx211 = or i1 %conflict.rdx207, %found.conflict210 %bound0212 = icmp ult ptr %6, %scevgep67 %bound1213 = icmp ult ptr %scevgep66, %scevgep56 %found.conflict214 = and i1 %bound0212, %bound1213 %conflict.rdx215 = or i1 %conflict.rdx211, %found.conflict214 %bound0216 = icmp ult ptr %6, %scevgep68 %bound1217 = icmp ult ptr %16, %scevgep56 %found.conflict218 = and i1 %bound0216, %bound1217 %conflict.rdx219 = or i1 %conflict.rdx215, %found.conflict218 %bound0220 = icmp ult ptr %6, %scevgep70 %bound1221 = icmp ult ptr %scevgep69, %scevgep56 %found.conflict222 = and i1 %bound0220, %bound1221 %conflict.rdx223 = or i1 %conflict.rdx219, %found.conflict222 %bound0224 = icmp ult ptr %6, %scevgep71 %bound1225 = icmp ult ptr %12, %scevgep56 %found.conflict226 = and i1 %bound0224, %bound1225 %conflict.rdx227 = or i1 %conflict.rdx223, %found.conflict226 %bound0228 = icmp ult ptr %6, %scevgep73 %bound1229 = icmp ult ptr %scevgep72, %scevgep56 %found.conflict230 = and i1 %bound0228, %bound1229 %conflict.rdx231 = or i1 %conflict.rdx227, %found.conflict230 %bound0232 = icmp ult ptr %6, %scevgep74 %bound1233 = icmp ult ptr %18, %scevgep56 %found.conflict234 = and i1 %bound0232, %bound1233 %conflict.rdx235 = or i1 %conflict.rdx231, %found.conflict234 %bound0236 = icmp ult ptr %6, %scevgep76 %bound1237 = icmp ult ptr %scevgep75, %scevgep56 %found.conflict238 = and i1 %bound0236, %bound1237 %conflict.rdx239 = or i1 %conflict.rdx235, %found.conflict238 %bound0240 = icmp ult ptr %scevgep57, %scevgep59 %bound1241 = icmp ult ptr %8, %scevgep58 %found.conflict242 = and i1 %bound0240, %bound1241 %conflict.rdx243 = or i1 %conflict.rdx239, %found.conflict242 %bound0244 = icmp ult ptr %scevgep57, %scevgep61 %bound1245 = icmp ult ptr %scevgep60, %scevgep58 %found.conflict246 = and i1 %bound0244, %bound1245 %conflict.rdx247 = or i1 %conflict.rdx243, %found.conflict246 %bound0248 = icmp ult ptr %scevgep57, %scevgep62 %bound1249 = icmp ult ptr %14, %scevgep58 %found.conflict250 = and i1 %bound0248, %bound1249 %conflict.rdx251 = or i1 %conflict.rdx247, %found.conflict250 %bound0252 = icmp ult ptr %scevgep57, %scevgep64 %bound1253 = icmp ult ptr %scevgep63, %scevgep58 %found.conflict254 = and i1 %bound0252, %bound1253 %conflict.rdx255 = or i1 %conflict.rdx251, %found.conflict254 %bound0256 = icmp ult ptr %scevgep57, %scevgep65 %bound1257 = icmp ult ptr %10, %scevgep58 %found.conflict258 = and i1 %bound0256, %bound1257 %conflict.rdx259 = or i1 %conflict.rdx255, %found.conflict258 %bound0260 = icmp ult ptr %scevgep57, %scevgep67 %bound1261 = icmp ult ptr %scevgep66, %scevgep58 %found.conflict262 = and i1 %bound0260, %bound1261 %conflict.rdx263 = or i1 %conflict.rdx259, %found.conflict262 %bound0264 = icmp ult ptr %scevgep57, %scevgep68 %bound1265 = icmp ult ptr %16, %scevgep58 %found.conflict266 = and i1 %bound0264, %bound1265 %conflict.rdx267 = or i1 %conflict.rdx263, %found.conflict266 %bound0268 = icmp ult ptr %scevgep57, %scevgep70 %bound1269 = icmp ult ptr %scevgep69, %scevgep58 %found.conflict270 = and i1 %bound0268, %bound1269 %conflict.rdx271 = or i1 %conflict.rdx267, %found.conflict270 %bound0272 = icmp ult ptr %scevgep57, %scevgep71 %bound1273 = icmp ult ptr %12, %scevgep58 %found.conflict274 = and i1 %bound0272, %bound1273 %conflict.rdx275 = or i1 %conflict.rdx271, %found.conflict274 %bound0276 = icmp ult ptr %scevgep57, %scevgep73 %bound1277 = icmp ult ptr %scevgep72, %scevgep58 %found.conflict278 = and i1 %bound0276, %bound1277 %conflict.rdx279 = or i1 %conflict.rdx275, %found.conflict278 %bound0280 = icmp ult ptr %scevgep57, %scevgep74 %bound1281 = icmp ult ptr %18, %scevgep58 %found.conflict282 = and i1 %bound0280, %bound1281 %conflict.rdx283 = or i1 %conflict.rdx279, %found.conflict282 %bound0284 = icmp ult ptr %scevgep57, %scevgep76 %bound1285 = icmp ult ptr %scevgep75, %scevgep58 %found.conflict286 = and i1 %bound0284, %bound1285 %conflict.rdx287 = or i1 %conflict.rdx283, %found.conflict286 %bound0288 = icmp ult ptr %8, %scevgep61 %bound1289 = icmp ult ptr %scevgep60, %scevgep59 %found.conflict290 = and i1 %bound0288, %bound1289 %conflict.rdx291 = or i1 %conflict.rdx287, %found.conflict290 %bound0292 = icmp ult ptr %8, %scevgep62 %bound1293 = icmp ult ptr %14, %scevgep59 %found.conflict294 = and i1 %bound0292, %bound1293 %conflict.rdx295 = or i1 %conflict.rdx291, %found.conflict294 %bound0296 = icmp ult ptr %8, %scevgep64 %bound1297 = icmp ult ptr %scevgep63, %scevgep59 %found.conflict298 = and i1 %bound0296, %bound1297 %conflict.rdx299 = or i1 %conflict.rdx295, %found.conflict298 %bound0300 = icmp ult ptr %8, %scevgep65 %bound1301 = icmp ult ptr %10, %scevgep59 %found.conflict302 = and i1 %bound0300, %bound1301 %conflict.rdx303 = or i1 %conflict.rdx299, %found.conflict302 %bound0304 = icmp ult ptr %8, %scevgep67 %bound1305 = icmp ult ptr %scevgep66, %scevgep59 %found.conflict306 = and i1 %bound0304, %bound1305 %conflict.rdx307 = or i1 %conflict.rdx303, %found.conflict306 %bound0308 = icmp ult ptr %8, %scevgep68 %bound1309 = icmp ult ptr %16, %scevgep59 %found.conflict310 = and i1 %bound0308, %bound1309 %conflict.rdx311 = or i1 %conflict.rdx307, %found.conflict310 %bound0312 = icmp ult ptr %8, %scevgep70 %bound1313 = icmp ult ptr %scevgep69, %scevgep59 %found.conflict314 = and i1 %bound0312, %bound1313 %conflict.rdx315 = or i1 %conflict.rdx311, %found.conflict314 %bound0316 = icmp ult ptr %8, %scevgep71 %bound1317 = icmp ult ptr %12, %scevgep59 %found.conflict318 = and i1 %bound0316, %bound1317 %conflict.rdx319 = or i1 %conflict.rdx315, %found.conflict318 %bound0320 = icmp ult ptr %8, %scevgep73 %bound1321 = icmp ult ptr %scevgep72, %scevgep59 %found.conflict322 = and i1 %bound0320, %bound1321 %conflict.rdx323 = or i1 %conflict.rdx319, %found.conflict322 %bound0324 = icmp ult ptr %8, %scevgep74 %bound1325 = icmp ult ptr %18, %scevgep59 %found.conflict326 = and i1 %bound0324, %bound1325 %conflict.rdx327 = or i1 %conflict.rdx323, %found.conflict326 %bound0328 = icmp ult ptr %8, %scevgep76 %bound1329 = icmp ult ptr %scevgep75, %scevgep59 %found.conflict330 = and i1 %bound0328, %bound1329 %conflict.rdx331 = or i1 %conflict.rdx327, %found.conflict330 %bound0332 = icmp ult ptr %scevgep60, %scevgep62 %bound1333 = icmp ult ptr %14, %scevgep61 %found.conflict334 = and i1 %bound0332, %bound1333 %conflict.rdx335 = or i1 %conflict.rdx331, %found.conflict334 %bound0336 = icmp ult ptr %scevgep60, %scevgep64 %bound1337 = icmp ult ptr %scevgep63, %scevgep61 %found.conflict338 = and i1 %bound0336, %bound1337 %conflict.rdx339 = or i1 %conflict.rdx335, %found.conflict338 %bound0340 = icmp ult ptr %scevgep60, %scevgep65 %bound1341 = icmp ult ptr %10, %scevgep61 %found.conflict342 = and i1 %bound0340, %bound1341 %conflict.rdx343 = or i1 %conflict.rdx339, %found.conflict342 %bound0344 = icmp ult ptr %scevgep60, %scevgep67 %bound1345 = icmp ult ptr %scevgep66, %scevgep61 %found.conflict346 = and i1 %bound0344, %bound1345 %conflict.rdx347 = or i1 %conflict.rdx343, %found.conflict346 %bound0348 = icmp ult ptr %scevgep60, %scevgep68 %bound1349 = icmp ult ptr %16, %scevgep61 %found.conflict350 = and i1 %bound0348, %bound1349 %conflict.rdx351 = or i1 %conflict.rdx347, %found.conflict350 %bound0352 = icmp ult ptr %scevgep60, %scevgep70 %bound1353 = icmp ult ptr %scevgep69, %scevgep61 %found.conflict354 = and i1 %bound0352, %bound1353 %conflict.rdx355 = or i1 %conflict.rdx351, %found.conflict354 %bound0356 = icmp ult ptr %scevgep60, %scevgep71 %bound1357 = icmp ult ptr %12, %scevgep61 %found.conflict358 = and i1 %bound0356, %bound1357 %conflict.rdx359 = or i1 %conflict.rdx355, %found.conflict358 %bound0360 = icmp ult ptr %scevgep60, %scevgep73 %bound1361 = icmp ult ptr %scevgep72, %scevgep61 %found.conflict362 = and i1 %bound0360, %bound1361 %conflict.rdx363 = or i1 %conflict.rdx359, %found.conflict362 %bound0364 = icmp ult ptr %scevgep60, %scevgep74 %bound1365 = icmp ult ptr %18, %scevgep61 %found.conflict366 = and i1 %bound0364, %bound1365 %conflict.rdx367 = or i1 %conflict.rdx363, %found.conflict366 %bound0368 = icmp ult ptr %scevgep60, %scevgep76 %bound1369 = icmp ult ptr %scevgep75, %scevgep61 %found.conflict370 = and i1 %bound0368, %bound1369 %conflict.rdx371 = or i1 %conflict.rdx367, %found.conflict370 %bound0372 = icmp ult ptr %14, %scevgep64 %bound1373 = icmp ult ptr %scevgep63, %scevgep62 %found.conflict374 = and i1 %bound0372, %bound1373 %conflict.rdx375 = or i1 %conflict.rdx371, %found.conflict374 %bound0376 = icmp ult ptr %14, %scevgep65 %bound1377 = icmp ult ptr %10, %scevgep62 %found.conflict378 = and i1 %bound0376, %bound1377 %conflict.rdx379 = or i1 %conflict.rdx375, %found.conflict378 %bound0380 = icmp ult ptr %14, %scevgep67 %bound1381 = icmp ult ptr %scevgep66, %scevgep62 %found.conflict382 = and i1 %bound0380, %bound1381 %conflict.rdx383 = or i1 %conflict.rdx379, %found.conflict382 %bound0384 = icmp ult ptr %14, %scevgep68 %bound1385 = icmp ult ptr %16, %scevgep62 %found.conflict386 = and i1 %bound0384, %bound1385 %conflict.rdx387 = or i1 %conflict.rdx383, %found.conflict386 %bound0388 = icmp ult ptr %14, %scevgep70 %bound1389 = icmp ult ptr %scevgep69, %scevgep62 %found.conflict390 = and i1 %bound0388, %bound1389 %conflict.rdx391 = or i1 %conflict.rdx387, %found.conflict390 %bound0392 = icmp ult ptr %14, %scevgep71 %bound1393 = icmp ult ptr %12, %scevgep62 %found.conflict394 = and i1 %bound0392, %bound1393 %conflict.rdx395 = or i1 %conflict.rdx391, %found.conflict394 %bound0396 = icmp ult ptr %14, %scevgep73 %bound1397 = icmp ult ptr %scevgep72, %scevgep62 %found.conflict398 = and i1 %bound0396, %bound1397 %conflict.rdx399 = or i1 %conflict.rdx395, %found.conflict398 %bound0400 = icmp ult ptr %14, %scevgep74 %bound1401 = icmp ult ptr %18, %scevgep62 %found.conflict402 = and i1 %bound0400, %bound1401 %conflict.rdx403 = or i1 %conflict.rdx399, %found.conflict402 %bound0404 = icmp ult ptr %14, %scevgep76 %bound1405 = icmp ult ptr %scevgep75, %scevgep62 %found.conflict406 = and i1 %bound0404, %bound1405 %conflict.rdx407 = or i1 %conflict.rdx403, %found.conflict406 %bound0408 = icmp ult ptr %scevgep63, %scevgep65 %bound1409 = icmp ult ptr %10, %scevgep64 %found.conflict410 = and i1 %bound0408, %bound1409 %conflict.rdx411 = or i1 %conflict.rdx407, %found.conflict410 %bound0412 = icmp ult ptr %scevgep63, %scevgep67 %bound1413 = icmp ult ptr %scevgep66, %scevgep64 %found.conflict414 = and i1 %bound0412, %bound1413 %conflict.rdx415 = or i1 %conflict.rdx411, %found.conflict414 %bound0416 = icmp ult ptr %scevgep63, %scevgep68 %bound1417 = icmp ult ptr %16, %scevgep64 %found.conflict418 = and i1 %bound0416, %bound1417 %conflict.rdx419 = or i1 %conflict.rdx415, %found.conflict418 %bound0420 = icmp ult ptr %scevgep63, %scevgep70 %bound1421 = icmp ult ptr %scevgep69, %scevgep64 %found.conflict422 = and i1 %bound0420, %bound1421 %conflict.rdx423 = or i1 %conflict.rdx419, %found.conflict422 %bound0424 = icmp ult ptr %scevgep63, %scevgep71 %bound1425 = icmp ult ptr %12, %scevgep64 %found.conflict426 = and i1 %bound0424, %bound1425 %conflict.rdx427 = or i1 %conflict.rdx423, %found.conflict426 %bound0428 = icmp ult ptr %scevgep63, %scevgep73 %bound1429 = icmp ult ptr %scevgep72, %scevgep64 %found.conflict430 = and i1 %bound0428, %bound1429 %conflict.rdx431 = or i1 %conflict.rdx427, %found.conflict430 %bound0432 = icmp ult ptr %scevgep63, %scevgep74 %bound1433 = icmp ult ptr %18, %scevgep64 %found.conflict434 = and i1 %bound0432, %bound1433 %conflict.rdx435 = or i1 %conflict.rdx431, %found.conflict434 %bound0436 = icmp ult ptr %scevgep63, %scevgep76 %bound1437 = icmp ult ptr %scevgep75, %scevgep64 %found.conflict438 = and i1 %bound0436, %bound1437 %conflict.rdx439 = or i1 %conflict.rdx435, %found.conflict438 %bound0440 = icmp ult ptr %10, %scevgep67 %bound1441 = icmp ult ptr %scevgep66, %scevgep65 %found.conflict442 = and i1 %bound0440, %bound1441 %conflict.rdx443 = or i1 %conflict.rdx439, %found.conflict442 %bound0444 = icmp ult ptr %10, %scevgep68 %bound1445 = icmp ult ptr %16, %scevgep65 %found.conflict446 = and i1 %bound0444, %bound1445 %conflict.rdx447 = or i1 %conflict.rdx443, %found.conflict446 %bound0448 = icmp ult ptr %10, %scevgep70 %bound1449 = icmp ult ptr %scevgep69, %scevgep65 %found.conflict450 = and i1 %bound0448, %bound1449 %conflict.rdx451 = or i1 %conflict.rdx447, %found.conflict450 %bound0452 = icmp ult ptr %10, %scevgep71 %bound1453 = icmp ult ptr %12, %scevgep65 %found.conflict454 = and i1 %bound0452, %bound1453 %conflict.rdx455 = or i1 %conflict.rdx451, %found.conflict454 %bound0456 = icmp ult ptr %10, %scevgep73 %bound1457 = icmp ult ptr %scevgep72, %scevgep65 %found.conflict458 = and i1 %bound0456, %bound1457 %conflict.rdx459 = or i1 %conflict.rdx455, %found.conflict458 %bound0460 = icmp ult ptr %10, %scevgep74 %bound1461 = icmp ult ptr %18, %scevgep65 %found.conflict462 = and i1 %bound0460, %bound1461 %conflict.rdx463 = or i1 %conflict.rdx459, %found.conflict462 %bound0464 = icmp ult ptr %10, %scevgep76 %bound1465 = icmp ult ptr %scevgep75, %scevgep65 %found.conflict466 = and i1 %bound0464, %bound1465 %conflict.rdx467 = or i1 %conflict.rdx463, %found.conflict466 %bound0468 = icmp ult ptr %scevgep66, %scevgep68 %bound1469 = icmp ult ptr %16, %scevgep67 %found.conflict470 = and i1 %bound0468, %bound1469 %conflict.rdx471 = or i1 %conflict.rdx467, %found.conflict470 %bound0472 = icmp ult ptr %scevgep66, %scevgep70 %bound1473 = icmp ult ptr %scevgep69, %scevgep67 %found.conflict474 = and i1 %bound0472, %bound1473 %conflict.rdx475 = or i1 %conflict.rdx471, %found.conflict474 %bound0476 = icmp ult ptr %scevgep66, %scevgep71 %bound1477 = icmp ult ptr %12, %scevgep67 %found.conflict478 = and i1 %bound0476, %bound1477 %conflict.rdx479 = or i1 %conflict.rdx475, %found.conflict478 %bound0480 = icmp ult ptr %scevgep66, %scevgep73 %bound1481 = icmp ult ptr %scevgep72, %scevgep67 %found.conflict482 = and i1 %bound0480, %bound1481 %conflict.rdx483 = or i1 %conflict.rdx479, %found.conflict482 %bound0484 = icmp ult ptr %scevgep66, %scevgep74 %bound1485 = icmp ult ptr %18, %scevgep67 %found.conflict486 = and i1 %bound0484, %bound1485 %conflict.rdx487 = or i1 %conflict.rdx483, %found.conflict486 %bound0488 = icmp ult ptr %scevgep66, %scevgep76 %bound1489 = icmp ult ptr %scevgep75, %scevgep67 %found.conflict490 = and i1 %bound0488, %bound1489 %conflict.rdx491 = or i1 %conflict.rdx487, %found.conflict490 %bound0492 = icmp ult ptr %16, %scevgep70 %bound1493 = icmp ult ptr %scevgep69, %scevgep68 %found.conflict494 = and i1 %bound0492, %bound1493 %conflict.rdx495 = or i1 %conflict.rdx491, %found.conflict494 %bound0496 = icmp ult ptr %16, %scevgep71 %bound1497 = icmp ult ptr %12, %scevgep68 %found.conflict498 = and i1 %bound0496, %bound1497 %conflict.rdx499 = or i1 %conflict.rdx495, %found.conflict498 %bound0500 = icmp ult ptr %16, %scevgep73 %bound1501 = icmp ult ptr %scevgep72, %scevgep68 %found.conflict502 = and i1 %bound0500, %bound1501 %conflict.rdx503 = or i1 %conflict.rdx499, %found.conflict502 %bound0504 = icmp ult ptr %16, %scevgep74 %bound1505 = icmp ult ptr %18, %scevgep68 %found.conflict506 = and i1 %bound0504, %bound1505 %conflict.rdx507 = or i1 %conflict.rdx503, %found.conflict506 %bound0508 = icmp ult ptr %16, %scevgep76 %bound1509 = icmp ult ptr %scevgep75, %scevgep68 %found.conflict510 = and i1 %bound0508, %bound1509 %conflict.rdx511 = or i1 %conflict.rdx507, %found.conflict510 %bound0512 = icmp ult ptr %scevgep69, %scevgep71 %bound1513 = icmp ult ptr %12, %scevgep70 %found.conflict514 = and i1 %bound0512, %bound1513 %conflict.rdx515 = or i1 %conflict.rdx511, %found.conflict514 %bound0516 = icmp ult ptr %scevgep69, %scevgep73 %bound1517 = icmp ult ptr %scevgep72, %scevgep70 %found.conflict518 = and i1 %bound0516, %bound1517 %conflict.rdx519 = or i1 %conflict.rdx515, %found.conflict518 %bound0520 = icmp ult ptr %scevgep69, %scevgep74 %bound1521 = icmp ult ptr %18, %scevgep70 %found.conflict522 = and i1 %bound0520, %bound1521 %conflict.rdx523 = or i1 %conflict.rdx519, %found.conflict522 %bound0524 = icmp ult ptr %scevgep69, %scevgep76 %bound1525 = icmp ult ptr %scevgep75, %scevgep70 %found.conflict526 = and i1 %bound0524, %bound1525 %conflict.rdx527 = or i1 %conflict.rdx523, %found.conflict526 %bound0528 = icmp ult ptr %12, %scevgep73 %bound1529 = icmp ult ptr %scevgep72, %scevgep71 %found.conflict530 = and i1 %bound0528, %bound1529 %conflict.rdx531 = or i1 %conflict.rdx527, %found.conflict530 %bound0532 = icmp ult ptr %12, %scevgep74 %bound1533 = icmp ult ptr %18, %scevgep71 %found.conflict534 = and i1 %bound0532, %bound1533 %conflict.rdx535 = or i1 %conflict.rdx531, %found.conflict534 %bound0536 = icmp ult ptr %12, %scevgep76 %bound1537 = icmp ult ptr %scevgep75, %scevgep71 %found.conflict538 = and i1 %bound0536, %bound1537 %conflict.rdx539 = or i1 %conflict.rdx535, %found.conflict538 %bound0540 = icmp ult ptr %scevgep72, %scevgep74 %bound1541 = icmp ult ptr %18, %scevgep73 %found.conflict542 = and i1 %bound0540, %bound1541 %conflict.rdx543 = or i1 %conflict.rdx539, %found.conflict542 %bound0544 = icmp ult ptr %scevgep72, %scevgep76 %bound1545 = icmp ult ptr %scevgep75, %scevgep73 %found.conflict546 = and i1 %bound0544, %bound1545 %conflict.rdx547 = or i1 %conflict.rdx543, %found.conflict546 %bound0548 = icmp ult ptr %18, %scevgep76 %bound1549 = icmp ult ptr %scevgep75, %scevgep74 %found.conflict550 = and i1 %bound0548, %bound1549 %conflict.rdx551 = or i1 %conflict.rdx547, %found.conflict550 br i1 %conflict.rdx551, label %bb12.i.i.preheader594, label %vector.ph vector.ph: ; preds = %vector.memcheck %n.vec = and i64 %_0.0.sroa.speculated.i.i.i70.i, 288230376151711740 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %vector.ph ], [ %vec.ind.next, %vector.body ] %138 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %139 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %140 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %141 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %142 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %143 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index %144 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %145 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index %146 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %147 = getelementptr inbounds i8, <4 x ptr> %146, i64 8 %wide.masked.gather552 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %148 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 1 %wide.masked.gather553 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %148, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %149 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather554 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %149, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %150 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 2 %wide.masked.gather555 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %150, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %151 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather556 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %152 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 3 %wide.masked.gather557 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %153 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather558 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %153, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %154 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 4 %wide.masked.gather559 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %155 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather560 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %156 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 5 %wide.masked.gather561 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %157 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather562 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %158 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 6 %wide.masked.gather563 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %159 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather564 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !alias.scope !102, !noalias !99 %wide.vec = load <8 x double>, ptr %138, align 8, !alias.scope !99, !noalias !102 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec565 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec566 = load <8 x double>, ptr %139, align 8, !alias.scope !99, !noalias !102 %strided.vec567 = shufflevector <8 x double> %wide.vec566, <8 x double> poison, <4 x i32> %strided.vec568 = shufflevector <8 x double> %wide.vec566, <8 x double> poison, <4 x i32> %wide.vec569 = load <8 x double>, ptr %140, align 8, !alias.scope !99, !noalias !102 %strided.vec570 = shufflevector <8 x double> %wide.vec569, <8 x double> poison, <4 x i32> %strided.vec571 = shufflevector <8 x double> %wide.vec569, <8 x double> poison, <4 x i32> %wide.vec572 = load <8 x double>, ptr %141, align 8, !alias.scope !99, !noalias !102 %strided.vec573 = shufflevector <8 x double> %wide.vec572, <8 x double> poison, <4 x i32> %strided.vec574 = shufflevector <8 x double> %wide.vec572, <8 x double> poison, <4 x i32> %wide.vec575 = load <8 x double>, ptr %142, align 8, !alias.scope !99, !noalias !102 %strided.vec576 = shufflevector <8 x double> %wide.vec575, <8 x double> poison, <4 x i32> %strided.vec577 = shufflevector <8 x double> %wide.vec575, <8 x double> poison, <4 x i32> %wide.vec578 = load <8 x double>, ptr %143, align 8, !alias.scope !99, !noalias !102 %strided.vec579 = shufflevector <8 x double> %wide.vec578, <8 x double> poison, <4 x i32> %strided.vec580 = shufflevector <8 x double> %wide.vec578, <8 x double> poison, <4 x i32> %wide.vec581 = load <8 x double>, ptr %144, align 8, !alias.scope !99, !noalias !102 %strided.vec582 = shufflevector <8 x double> %wide.vec581, <8 x double> poison, <4 x i32> %strided.vec583 = shufflevector <8 x double> %wide.vec581, <8 x double> poison, <4 x i32> %wide.vec584 = load <8 x double>, ptr %145, align 8, !alias.scope !99, !noalias !102 %strided.vec585 = shufflevector <8 x double> %wide.vec584, <8 x double> poison, <4 x i32> %strided.vec586 = shufflevector <8 x double> %wide.vec584, <8 x double> poison, <4 x i32> %160 = fadd <4 x double> %strided.vec, %strided.vec576 %161 = fadd <4 x double> %strided.vec565, %strided.vec577 %162 = fsub <4 x double> %strided.vec, %strided.vec576 %163 = fsub <4 x double> %strided.vec565, %strided.vec577 %164 = fadd <4 x double> %strided.vec570, %strided.vec582 %165 = fadd <4 x double> %strided.vec571, %strided.vec583 %166 = fsub <4 x double> %strided.vec570, %strided.vec582 %167 = fsub <4 x double> %strided.vec571, %strided.vec583 %168 = fadd <4 x double> %strided.vec567, %strided.vec579 %169 = fadd <4 x double> %strided.vec568, %strided.vec580 %170 = fsub <4 x double> %strided.vec567, %strided.vec579 %171 = fsub <4 x double> %strided.vec568, %strided.vec580 %172 = fadd <4 x double> %strided.vec573, %strided.vec585 %173 = fadd <4 x double> %strided.vec574, %strided.vec586 %174 = fsub <4 x double> %strided.vec573, %strided.vec585 %175 = fsub <4 x double> %strided.vec574, %strided.vec586 %176 = fadd <4 x double> %160, %164 %177 = fadd <4 x double> %161, %165 %178 = fadd <4 x double> %168, %172 %179 = fadd <4 x double> %169, %173 %180 = fsub <4 x double> %160, %164 %181 = fsub <4 x double> %161, %165 %182 = fsub <4 x double> %168, %172 %183 = fsub <4 x double> %169, %173 %184 = fadd <4 x double> %162, %167 %185 = fsub <4 x double> %163, %166 %186 = fadd <4 x double> %170, %175 %187 = fsub <4 x double> %171, %174 %188 = fadd <4 x double> %187, %186 %189 = fsub <4 x double> %187, %186 %190 = fmul <4 x double> %188, %191 = fmul <4 x double> %189, %192 = fsub <4 x double> %162, %167 %193 = fadd <4 x double> %163, %166 %194 = fsub <4 x double> %170, %175 %195 = fadd <4 x double> %171, %174 %196 = fsub <4 x double> %194, %195 %197 = fadd <4 x double> %195, %194 %198 = fmul <4 x double> %196, %199 = fmul <4 x double> %197, %200 = fadd <4 x double> %176, %178 %201 = fadd <4 x double> %177, %179 %202 = fadd <4 x double> %184, %190 %203 = fadd <4 x double> %185, %191 %204 = fneg <4 x double> %wide.masked.gather552 %205 = fmul <4 x double> %203, %204 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %202, <4 x double> %205) %207 = fmul <4 x double> %wide.masked.gather552, %202 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %203, <4 x double> %207) %209 = fadd <4 x double> %180, %183 %210 = fsub <4 x double> %181, %182 %211 = fneg <4 x double> %wide.masked.gather554 %212 = fmul <4 x double> %210, %211 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather553, <4 x double> %209, <4 x double> %212) %214 = fmul <4 x double> %wide.masked.gather554, %209 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather553, <4 x double> %210, <4 x double> %214) %216 = fsub <4 x double> %192, %198 %217 = fsub <4 x double> %193, %199 %218 = fneg <4 x double> %wide.masked.gather556 %219 = fmul <4 x double> %217, %218 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather555, <4 x double> %216, <4 x double> %219) %221 = fmul <4 x double> %wide.masked.gather556, %216 %222 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather555, <4 x double> %217, <4 x double> %221) %223 = fsub <4 x double> %176, %178 %224 = fsub <4 x double> %177, %179 %225 = fneg <4 x double> %wide.masked.gather558 %226 = fmul <4 x double> %224, %225 %227 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather557, <4 x double> %223, <4 x double> %226) %228 = fmul <4 x double> %wide.masked.gather558, %223 %229 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather557, <4 x double> %224, <4 x double> %228) %230 = fsub <4 x double> %184, %190 %231 = fsub <4 x double> %185, %191 %232 = fneg <4 x double> %wide.masked.gather560 %233 = fmul <4 x double> %231, %232 %234 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather559, <4 x double> %230, <4 x double> %233) %235 = fmul <4 x double> %wide.masked.gather560, %230 %236 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather559, <4 x double> %231, <4 x double> %235) %237 = fsub <4 x double> %180, %183 %238 = fadd <4 x double> %181, %182 %239 = fneg <4 x double> %wide.masked.gather562 %240 = fmul <4 x double> %238, %239 %241 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather561, <4 x double> %237, <4 x double> %240) %242 = fmul <4 x double> %wide.masked.gather562, %237 %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather561, <4 x double> %238, <4 x double> %242) %244 = fadd <4 x double> %192, %198 %245 = fadd <4 x double> %193, %199 %246 = fneg <4 x double> %wide.masked.gather564 %247 = fmul <4 x double> %245, %246 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather563, <4 x double> %244, <4 x double> %247) %249 = fmul <4 x double> %wide.masked.gather564, %244 %250 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather563, <4 x double> %245, <4 x double> %249) %interleaved.vec = shufflevector <4 x double> %200, <4 x double> %201, <8 x i32> store <8 x double> %interleaved.vec, ptr %138, align 8, !alias.scope !99, !noalias !102 %interleaved.vec587 = shufflevector <4 x double> %206, <4 x double> %208, <8 x i32> store <8 x double> %interleaved.vec587, ptr %142, align 8, !alias.scope !99, !noalias !102 %interleaved.vec588 = shufflevector <4 x double> %213, <4 x double> %215, <8 x i32> store <8 x double> %interleaved.vec588, ptr %140, align 8, !alias.scope !99, !noalias !102 %interleaved.vec589 = shufflevector <4 x double> %220, <4 x double> %222, <8 x i32> store <8 x double> %interleaved.vec589, ptr %144, align 8, !alias.scope !99, !noalias !102 %interleaved.vec590 = shufflevector <4 x double> %227, <4 x double> %229, <8 x i32> store <8 x double> %interleaved.vec590, ptr %139, align 8, !alias.scope !99, !noalias !102 %interleaved.vec591 = shufflevector <4 x double> %234, <4 x double> %236, <8 x i32> store <8 x double> %interleaved.vec591, ptr %143, align 8, !alias.scope !99, !noalias !102 %interleaved.vec592 = shufflevector <4 x double> %241, <4 x double> %243, <8 x i32> store <8 x double> %interleaved.vec592, ptr %141, align 8, !alias.scope !99, !noalias !102 %interleaved.vec593 = shufflevector <4 x double> %248, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec593, ptr %145, align 8, !alias.scope !99, !noalias !102 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %251 = icmp eq i64 %index.next, %n.vec br i1 %251, label %middle.block, label %vector.body, !llvm.loop !104 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %_0.0.sroa.speculated.i.i.i70.i, %n.vec br i1 %cmp.n, label %"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E.exit", label %bb12.i.i.preheader594 bb12.i.i.preheader594: ; preds = %vector.memcheck, %vector.scevcheck, %bb12.i.i.preheader, %middle.block %iter.i.sroa.57.017.i.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ 0, %bb12.i.i.preheader ], [ %n.vec, %middle.block ] br label %bb12.i.i bb19.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !105 unreachable bb12.i.i: ; preds = %bb12.i.i.preheader594, %bb12.i.i %iter.i.sroa.57.017.i = phi i64 [ %252, %bb12.i.i ], [ %iter.i.sroa.57.017.i.ph, %bb12.i.i.preheader594 ] %252 = add nuw nsw i64 %iter.i.sroa.57.017.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.sroa.57.017.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %iter.i.sroa.57.017.i %_3.i.i.i.i.i = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i %w1.0.i.i = load double, ptr %_3.i.i.i.i.i, align 8, !alias.scope !102, !noalias !99, !noundef !3 %253 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i, i64 8 %w1.1.i.i = load double, ptr %253, align 8, !alias.scope !102, !noalias !99, !noundef !3 %254 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 1 %w2.0.i.i = load double, ptr %254, align 8, !alias.scope !102, !noalias !99, !noundef !3 %255 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 1, i32 1 %w2.1.i.i = load double, ptr %255, align 8, !alias.scope !102, !noalias !99, !noundef !3 %256 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 2 %w3.0.i.i = load double, ptr %256, align 8, !alias.scope !102, !noalias !99, !noundef !3 %257 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 2, i32 1 %w3.1.i.i = load double, ptr %257, align 8, !alias.scope !102, !noalias !99, !noundef !3 %258 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 3 %w4.0.i.i = load double, ptr %258, align 8, !alias.scope !102, !noalias !99, !noundef !3 %259 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 3, i32 1 %w4.1.i.i = load double, ptr %259, align 8, !alias.scope !102, !noalias !99, !noundef !3 %260 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 4 %w5.0.i.i = load double, ptr %260, align 8, !alias.scope !102, !noalias !99, !noundef !3 %261 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 4, i32 1 %w5.1.i.i = load double, ptr %261, align 8, !alias.scope !102, !noalias !99, !noundef !3 %262 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 5 %w6.0.i.i = load double, ptr %262, align 8, !alias.scope !102, !noalias !99, !noundef !3 %263 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 5, i32 1 %w6.1.i.i = load double, ptr %263, align 8, !alias.scope !102, !noalias !99, !noundef !3 %264 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 6 %w7.0.i.i = load double, ptr %264, align 8, !alias.scope !102, !noalias !99, !noundef !3 %265 = getelementptr inbounds [7 x %"num_complex::Complex"], ptr %2, i64 %iter.i.sroa.57.017.i, i64 6, i32 1 %w7.1.i.i = load double, ptr %265, align 8, !alias.scope !102, !noalias !99, !noundef !3 %266 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %267 = getelementptr inbounds i8, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, i64 8 %_6.i55.i.i.i = fneg double %w1.1.i.i %_6.i52.i.i.i = fneg double %w2.1.i.i %_6.i49.i.i.i = fneg double %w3.1.i.i %_6.i46.i.i.i = fneg double %w4.1.i.i %_6.i43.i.i.i = fneg double %w5.1.i.i %_6.i40.i.i.i = fneg double %w6.1.i.i %_6.i.i.i.i = fneg double %w7.1.i.i %268 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %269 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %270 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %271 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %272 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %273 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %274 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %275 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %276 = fadd <2 x double> %268, %272 %277 = fadd <2 x double> %270, %274 %278 = fadd <2 x double> %269, %273 %279 = fsub <2 x double> %269, %273 %_0.i.i84.i = extractelement <2 x double> %279, i64 0 %280 = fsub <2 x double> %269, %273 %_0.i3.i85.i = extractelement <2 x double> %280, i64 1 %281 = fadd <2 x double> %271, %275 %282 = fsub <2 x double> %271, %275 %_0.i.i88.i = extractelement <2 x double> %282, i64 0 %283 = fsub <2 x double> %271, %275 %_0.i3.i89.i = extractelement <2 x double> %283, i64 1 %284 = fadd <2 x double> %276, %277 %285 = fadd <2 x double> %278, %281 %_0.i.i100.i = fadd double %_0.i.i84.i, %_0.i3.i89.i %_0.i3.i101.i = fsub double %_0.i3.i85.i, %_0.i.i88.i %_0.i.i102.i = fadd double %_0.i3.i101.i, %_0.i.i100.i %_0.i3.i103.i = fsub double %_0.i3.i101.i, %_0.i.i100.i %_4.i.i.i.i = fmul double %_0.i.i102.i, 0x3FE6A09E667F3BCD %_7.i.i.i.i = fmul double %_0.i3.i103.i, 0x3FE6A09E667F3BCD %_0.i.i106.i = fsub double %_0.i.i84.i, %_0.i3.i89.i %_0.i3.i107.i = fadd double %_0.i3.i85.i, %_0.i.i88.i %286 = fadd <2 x double> %284, %285 store <2 x double> %286, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %287 = fsub <2 x double> %268, %272 %288 = fsub <2 x double> %270, %274 %289 = shufflevector <2 x double> %288, <2 x double> poison, <2 x i32> %290 = fadd <2 x double> %287, %289 %_0.i.i98.i = extractelement <2 x double> %290, i64 0 %291 = fsub <2 x double> %287, %289 %_0.i3.i99.i = extractelement <2 x double> %291, i64 1 %292 = fsub <2 x double> %287, %289 %293 = fadd <2 x double> %287, %289 %294 = shufflevector <2 x double> %292, <2 x double> %293, <2 x i32> %295 = insertelement <2 x double> poison, double %_0.i.i106.i, i64 0 %296 = insertelement <2 x double> poison, double %_0.i.i106.i, i64 0 %297 = insertelement <2 x double> poison, double %_0.i3.i107.i, i64 0 %298 = insertelement <2 x double> poison, double %_0.i3.i107.i, i64 0 %299 = fsub <2 x double> %296, %298 %300 = fadd <2 x double> %295, %297 %301 = shufflevector <2 x double> %299, <2 x double> %300, <2 x i32> %302 = fmul <2 x double> %301, %_0.i.i112.i = fadd double %_0.i.i98.i, %_4.i.i.i.i %_0.i3.i113.i = fadd double %_0.i3.i99.i, %_7.i.i.i.i %b.i56.i.i.i = fmul double %_0.i3.i113.i, %_6.i55.i.i.i %303 = tail call double @llvm.fma.f64(double %w1.0.i.i, double %_0.i.i112.i, double %b.i56.i.i.i) %b1.i57.i.i.i = fmul double %w1.1.i.i, %_0.i.i112.i %304 = tail call double @llvm.fma.f64(double %w1.0.i.i, double %_0.i3.i113.i, double %b1.i57.i.i.i) %_0.i.i120.i = fsub double %_0.i.i98.i, %_4.i.i.i.i %_0.i3.i121.i = fsub double %_0.i3.i99.i, %_7.i.i.i.i %b.i44.i.i.i = fmul double %_0.i3.i121.i, %_6.i43.i.i.i %305 = tail call double @llvm.fma.f64(double %w5.0.i.i, double %_0.i.i120.i, double %b.i44.i.i.i) %b1.i45.i.i.i = fmul double %w5.1.i.i, %_0.i.i120.i %306 = tail call double @llvm.fma.f64(double %w5.0.i.i, double %_0.i3.i121.i, double %b1.i45.i.i.i) %307 = fadd <2 x double> %294, %302 %308 = shufflevector <2 x double> %307, <2 x double> poison, <2 x i32> %309 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %310 = insertelement <2 x double> %309, double %w7.1.i.i, i64 1 %311 = fmul <2 x double> %308, %310 %312 = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %313 = shufflevector <2 x double> %312, <2 x double> poison, <2 x i32> zeroinitializer %314 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %313, <2 x double> %307, <2 x double> %311) store double %303, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 store double %304, ptr %266, align 8, !alias.scope !99, !noalias !102 %315 = fsub <2 x double> %276, %277 %316 = fsub <2 x double> %278, %281 %317 = shufflevector <2 x double> %316, <2 x double> poison, <2 x i32> %318 = fsub <2 x double> %315, %317 %319 = fadd <2 x double> %315, %317 %320 = shufflevector <2 x double> %318, <2 x double> %319, <2 x i32> %321 = shufflevector <2 x double> %320, <2 x double> poison, <2 x i32> %322 = insertelement <2 x double> poison, double %_6.i40.i.i.i, i64 0 %323 = insertelement <2 x double> %322, double %w6.1.i.i, i64 1 %324 = fmul <2 x double> %321, %323 %325 = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %326 = shufflevector <2 x double> %325, <2 x double> poison, <2 x i32> zeroinitializer %327 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %326, <2 x double> %320, <2 x double> %324) %328 = shufflevector <2 x double> %319, <2 x double> %318, <2 x i32> %329 = shufflevector <2 x double> %328, <2 x double> poison, <2 x i32> %330 = insertelement <2 x double> poison, double %_6.i52.i.i.i, i64 0 %331 = insertelement <2 x double> %330, double %w2.1.i.i, i64 1 %332 = fmul <2 x double> %329, %331 %333 = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %334 = shufflevector <2 x double> %333, <2 x double> poison, <2 x i32> zeroinitializer %335 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %334, <2 x double> %328, <2 x double> %332) store <2 x double> %335, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %336 = fsub <2 x double> %294, %302 %337 = shufflevector <2 x double> %336, <2 x double> poison, <2 x i32> %338 = insertelement <2 x double> poison, double %_6.i49.i.i.i, i64 0 %339 = insertelement <2 x double> %338, double %w3.1.i.i, i64 1 %340 = fmul <2 x double> %337, %339 %341 = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %342 = shufflevector <2 x double> %341, <2 x double> poison, <2 x i32> zeroinitializer %343 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %342, <2 x double> %336, <2 x double> %340) store <2 x double> %343, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %344 = fsub <2 x double> %284, %285 %345 = shufflevector <2 x double> %344, <2 x double> poison, <2 x i32> %346 = insertelement <2 x double> poison, double %_6.i46.i.i.i, i64 0 %347 = insertelement <2 x double> %346, double %w4.1.i.i, i64 1 %348 = fmul <2 x double> %345, %347 %349 = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %350 = shufflevector <2 x double> %349, <2 x double> poison, <2 x i32> zeroinitializer %351 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %350, <2 x double> %344, <2 x double> %348) store <2 x double> %351, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 store double %305, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 store double %306, ptr %267, align 8, !alias.scope !99, !noalias !102 store <2 x double> %327, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 store <2 x double> %314, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !99, !noalias !102 %exitcond.not.i = icmp eq i64 %252, %_0.0.sroa.speculated.i.i.i70.i br i1 %exitcond.not.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E.exit", label %bb12.i.i, !llvm.loop !106 "_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E.exit": ; preds = %bb12.i.i, %middle.block, %bb20.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h914c2eccd19bc92bE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he2be260b36d3a14aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9283ae853b64937dE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !107) tail call void @llvm.experimental.noalias.scope.decl(metadata !110) %4 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !112 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !112 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %bb2.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3286ce7dcee51f84ec1b7126e82f741d) #22, !noalias !112 unreachable bb2.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i %6 = and i64 %1, 1 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb9.i.i.i.i.i, label %bb8.i.i.i.i.i bb9.i.i.i.i.i: ; preds = %bb2.i %8 = and i64 %3, 1 %9 = icmp eq i64 %8, 0 br i1 %9, label %bb12.i.i.i.i.i, label %bb11.i.i.i.i.i bb8.i.i.i.i.i: ; preds = %bb2.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !113 unreachable bb12.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i %10 = lshr exact i64 %1, 1 %new_len2.i.i.i.i = and i64 %10, 576460752303423487 %11 = lshr exact i64 %3, 1 %new_len2.i4.i.i.i = and i64 %11, 576460752303423487 %mid12.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 1 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid12.i.i.i.i.i %13 = sub nsw i64 %new_len2.i.i.i.i, %mid12.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid12.i.i.i.i.i, i64 %13) %_0.0.sroa.speculated.i.i.i5.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i.i.i, i64 %new_len2.i4.i.i.i) %_2.i.i.i64.not.i.i.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 0 br i1 %_2.i.i.i64.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit", label %bb5.i.i.i.i.i.preheader bb5.i.i.i.i.i.preheader: ; preds = %bb12.i.i.i.i.i %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 1 %14 = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 1 br i1 %14, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit.loopexit.unr-lcssa", label %bb5.i.i.i.i.i.preheader.new bb5.i.i.i.i.i.preheader.new: ; preds = %bb5.i.i.i.i.i.preheader %unroll_iter = and i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 288230376151711742 br label %bb5.i.i.i.i.i bb11.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !122 unreachable bb5.i.i.i.i.i: ; preds = %bb5.i.i.i.i.i, %bb5.i.i.i.i.i.preheader.new %iter.i.i.sroa.15.065.i.i.i = phi i64 [ 0, %bb5.i.i.i.i.i.preheader.new ], [ %23, %bb5.i.i.i.i.i ] %niter = phi i64 [ 0, %bb5.i.i.i.i.i.preheader.new ], [ %niter.next.1, %bb5.i.i.i.i.i ] %15 = or disjoint i64 %iter.i.i.sroa.15.065.i.i.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.15.065.i.i.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.i.i.sroa.15.065.i.i.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [1 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.15.065.i.i.i %w1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !110, !noalias !123 %z0.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !107, !noalias !124 %z1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !alias.scope !107, !noalias !124 %16 = shufflevector <4 x double> %z1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %17 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %18 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %19 = fmul <4 x double> %18, %16 %20 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %17, <4 x double> %z1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %19) #23 %21 = fadd <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i, %20 %22 = fsub <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i, %20 store <4 x double> %21, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !107, !noalias !124 store <4 x double> %22, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !alias.scope !107, !noalias !124 %23 = add nuw nsw i64 %iter.i.i.sroa.15.065.i.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %15 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %15 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds [1 x %"fft_simd::c64x2"], ptr %2, i64 %15 %w1.i.i.sroa.0.0.copyload.i.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !110, !noalias !123 %z0.i.i.sroa.0.0.copyload.i.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !107, !noalias !124 %z1.i.i.sroa.0.0.copyload.i.i.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !107, !noalias !124 %24 = shufflevector <4 x double> %z1.i.i.sroa.0.0.copyload.i.i.i.1, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.1, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.1, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %z1.i.i.sroa.0.0.copyload.i.i.i.1, <4 x double> %27) #23 %29 = fadd <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.1, %28 %30 = fsub <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.1, %28 store <4 x double> %29, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !107, !noalias !124 store <4 x double> %30, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !107, !noalias !124 %niter.next.1 = add i64 %niter, 2 %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit.loopexit.unr-lcssa", label %bb5.i.i.i.i.i "_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit.loopexit.unr-lcssa": ; preds = %bb5.i.i.i.i.i, %bb5.i.i.i.i.i.preheader %iter.i.i.sroa.15.065.i.i.i.unr = phi i64 [ 0, %bb5.i.i.i.i.i.preheader ], [ %23, %bb5.i.i.i.i.i ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit", label %bb5.i.i.i.i.i.epil bb5.i.i.i.i.i.epil: ; preds = %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit.loopexit.unr-lcssa" %_3.i.i.i.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.15.065.i.i.i.unr %_3.i2.i.i.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.i.i.sroa.15.065.i.i.i.unr %_3.i.i.i.i.i.i.i.epil = getelementptr inbounds [1 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.15.065.i.i.i.unr %w1.i.i.sroa.0.0.copyload.i.i.i.epil = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.epil, align 8, !alias.scope !110, !noalias !123 %z0.i.i.sroa.0.0.copyload.i.i.i.epil = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !107, !noalias !124 %z1.i.i.sroa.0.0.copyload.i.i.i.epil = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !107, !noalias !124 %31 = shufflevector <4 x double> %z1.i.i.sroa.0.0.copyload.i.i.i.epil, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.epil, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.epil, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %z1.i.i.sroa.0.0.copyload.i.i.i.epil, <4 x double> %34) #23 %36 = fadd <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.epil, %35 %37 = fsub <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.epil, %35 store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !107, !noalias !124 store <4 x double> %37, ptr %_3.i2.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !107, !noalias !124 br label %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit" "_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit": ; preds = %bb5.i.i.i.i.i.epil, %"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE.exit.loopexit.unr-lcssa", %bb12.i.i.i.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h92fd128d899f6275E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcdc9d40c4ad4dcfaE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9485c76d76ab301cE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h855ceb74a30fe513E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9505c91b179ce2fdE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6a92029e72d6b48aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h958f24fcb64f21a5E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !125) tail call void @llvm.experimental.noalias.scope.decl(metadata !128) %4 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !130 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !130 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %bb2.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_a30bc3139301f3ccf4562a88e7b9a42f) #22, !noalias !130 unreachable bb2.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i %6 = and i64 %1, 1 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb9.i.i.i.i.i, label %bb8.i.i.i.i.i bb9.i.i.i.i.i: ; preds = %bb2.i %8 = and i64 %3, 1 %9 = icmp eq i64 %8, 0 br i1 %9, label %bb12.i.i.i.i.i, label %bb11.i.i.i.i.i bb8.i.i.i.i.i: ; preds = %bb2.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !131 unreachable bb12.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i %10 = lshr exact i64 %1, 1 %new_len2.i.i.i.i = and i64 %10, 576460752303423487 %11 = lshr exact i64 %3, 1 %new_len2.i4.i.i.i = and i64 %11, 576460752303423487 %mid11.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 1 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid11.i.i.i.i.i %13 = sub nsw i64 %new_len2.i.i.i.i, %mid11.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid11.i.i.i.i.i, i64 %13) %_0.0.sroa.speculated.i.i.i5.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i.i.i, i64 %new_len2.i4.i.i.i) %_2.i.i.i64.not.i.i.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 0 br i1 %_2.i.i.i64.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit", label %bb5.i.i.i.i.i.preheader bb5.i.i.i.i.i.preheader: ; preds = %bb12.i.i.i.i.i %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 1 %14 = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 1 br i1 %14, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit.loopexit.unr-lcssa", label %bb5.i.i.i.i.i.preheader.new bb5.i.i.i.i.i.preheader.new: ; preds = %bb5.i.i.i.i.i.preheader %unroll_iter = and i64 %_0.0.sroa.speculated.i.i.i5.i.i.i, 288230376151711742 br label %bb5.i.i.i.i.i bb11.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !140 unreachable bb5.i.i.i.i.i: ; preds = %bb5.i.i.i.i.i, %bb5.i.i.i.i.i.preheader.new %iter.i.i.sroa.15.065.i.i.i = phi i64 [ 0, %bb5.i.i.i.i.i.preheader.new ], [ %23, %bb5.i.i.i.i.i ] %niter = phi i64 [ 0, %bb5.i.i.i.i.i.preheader.new ], [ %niter.next.1, %bb5.i.i.i.i.i ] %15 = or disjoint i64 %iter.i.i.sroa.15.065.i.i.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.15.065.i.i.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.i.i.sroa.15.065.i.i.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [1 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.15.065.i.i.i %w1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !128, !noalias !141 %z0.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !125, !noalias !142 %z1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !alias.scope !125, !noalias !142 %16 = fadd <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i, %z1.i.i.sroa.0.0.copyload.i.i.i %17 = fsub <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i, %z1.i.i.sroa.0.0.copyload.i.i.i %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !125, !noalias !142 store <4 x double> %22, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !alias.scope !125, !noalias !142 %23 = add nuw nsw i64 %iter.i.i.sroa.15.065.i.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %15 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %15 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds [1 x %"fft_simd::c64x2"], ptr %2, i64 %15 %w1.i.i.sroa.0.0.copyload.i.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !128, !noalias !141 %z0.i.i.sroa.0.0.copyload.i.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !125, !noalias !142 %z1.i.i.sroa.0.0.copyload.i.i.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !125, !noalias !142 %24 = fadd <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.1, %z1.i.i.sroa.0.0.copyload.i.i.i.1 %25 = fsub <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.1, %z1.i.i.sroa.0.0.copyload.i.i.i.1 %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.1, <4 x double> poison, <4 x i32> %28 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.1, <4 x double> poison, <4 x i32> %29 = fmul <4 x double> %28, %26 %30 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %27, <4 x double> %25, <4 x double> %29) #23 store <4 x double> %24, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !125, !noalias !142 store <4 x double> %30, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !125, !noalias !142 %niter.next.1 = add i64 %niter, 2 %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit.loopexit.unr-lcssa", label %bb5.i.i.i.i.i "_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit.loopexit.unr-lcssa": ; preds = %bb5.i.i.i.i.i, %bb5.i.i.i.i.i.preheader %iter.i.i.sroa.15.065.i.i.i.unr = phi i64 [ 0, %bb5.i.i.i.i.i.preheader ], [ %23, %bb5.i.i.i.i.i ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit", label %bb5.i.i.i.i.i.epil bb5.i.i.i.i.i.epil: ; preds = %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit.loopexit.unr-lcssa" %_3.i.i.i.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.15.065.i.i.i.unr %_3.i2.i.i.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.i.i.sroa.15.065.i.i.i.unr %_3.i.i.i.i.i.i.i.epil = getelementptr inbounds [1 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.15.065.i.i.i.unr %w1.i.i.sroa.0.0.copyload.i.i.i.epil = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.epil, align 8, !alias.scope !128, !noalias !141 %z0.i.i.sroa.0.0.copyload.i.i.i.epil = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !125, !noalias !142 %z1.i.i.sroa.0.0.copyload.i.i.i.epil = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !125, !noalias !142 %31 = fadd <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.epil, %z1.i.i.sroa.0.0.copyload.i.i.i.epil %32 = fsub <4 x double> %z0.i.i.sroa.0.0.copyload.i.i.i.epil, %z1.i.i.sroa.0.0.copyload.i.i.i.epil %33 = shufflevector <4 x double> %32, <4 x double> poison, <4 x i32> %34 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.epil, <4 x double> poison, <4 x i32> %35 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i.epil, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %35, %33 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %34, <4 x double> %32, <4 x double> %36) #23 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !125, !noalias !142 store <4 x double> %37, ptr %_3.i2.i.i.i.i.i.i.i.i.epil, align 8, !alias.scope !125, !noalias !142 br label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit" "_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit": ; preds = %bb5.i.i.i.i.i.epil, %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E.exit.loopexit.unr-lcssa", %bb12.i.i.i.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9711215d686fdba5E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5d224818129f5e6eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9893e9432f64f441E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h20382c78781c0db2E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h98a2e0d7bc7ecf11E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: %_4.i = alloca %"pulp::x86::V4", align 1 %f.i = alloca %"{closure@src/unordered.rs:306:29: 306:31}.836", align 8 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %_4.i) %4 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !143 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !143 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17hd78930d977f44ab0E.exit" bb3.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_6730b3da977ae3807266990e0097f311) #22, !noalias !143 unreachable "_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17hd78930d977f44ab0E.exit": ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %f.i), !noalias !143 store ptr %_4.i, ptr %f.i, align 8, !noalias !143 %6 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f.i, i64 0, i32 1 store ptr %0, ptr %6, align 8, !noalias !143 %7 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f.i, i64 0, i32 1, i32 1 store i64 %1, ptr %7, align 8, !noalias !143 %8 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f.i, i64 0, i32 2 store ptr %2, ptr %8, align 8, !noalias !143 %9 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f.i, i64 0, i32 2, i32 1 store i64 %3, ptr %9, align 8, !noalias !143 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hd5f8fb8fa3a8b2c5E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %f.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %f.i), !noalias !143 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %_4.i) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9a1a3f4f92c38d29E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h515406502e264d23E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9a9609fc8b39ee5eE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0753d34320e3276fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9b017283c7eea3c0E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h74c8d2a3925a3e29E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9b5adb0180915f18E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08fdc495e9427437E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9bd04fba983bba1fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h465d009e3b9f36c0E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9d93fc9fd6e118e8E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb84e75641c2d1928E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9dcd09aca5020000E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !147) tail call void @llvm.experimental.noalias.scope.decl(metadata !150) %4 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !152 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !152 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %bb2.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_6730b3da977ae3807266990e0097f311) #22, !noalias !152 unreachable bb2.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i %6 = and i64 %1, 1 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb17.i.i.i.i.i, label %bb16.i.i.i.i.i bb17.i.i.i.i.i: ; preds = %bb2.i %8 = shl nsw i64 %3, 4 %_13.i.i.i.i = urem i64 %8, 224 %new_len.i.i.i.i = udiv i64 %8, 224 %9 = icmp eq i64 %_13.i.i.i.i, 0 br i1 %9, label %bb20.i.i.i.i.i, label %bb19.i.i.i.i.i bb16.i.i.i.i.i: ; preds = %bb2.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !153 unreachable bb20.i.i.i.i.i: ; preds = %bb17.i.i.i.i.i %10 = lshr exact i64 %1, 1 %new_len2.i.i.i.i = and i64 %10, 576460752303423487 %mid1.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 1 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid1.i.i.i.i.i.i %12 = sub nsw i64 %new_len2.i.i.i.i, %mid1.i.i.i.i.i.i %mid5.i5.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 2 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid5.i5.i.i.i.i.i.i %14 = sub nsw i64 %mid1.i.i.i.i.i.i, %mid5.i5.i.i.i.i.i.i %mid36.i10.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 3 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid36.i10.i.i.i.i.i.i %16 = sub nsw i64 %mid5.i5.i.i.i.i.i.i, %mid36.i10.i.i.i.i.i.i %mid47.i15.i.i.i.i.i.i = lshr i64 %14, 1 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %mid47.i15.i.i.i.i.i.i %18 = sub i64 %14, %mid47.i15.i.i.i.i.i.i %mid5.i.i.i.i.i.i.i = lshr i64 %12, 1 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %mid5.i.i.i.i.i.i.i %20 = sub i64 %12, %mid5.i.i.i.i.i.i.i %mid36.i.i.i.i.i.i.i = lshr i64 %12, 2 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %mid36.i.i.i.i.i.i.i %22 = sub nsw i64 %mid5.i.i.i.i.i.i.i, %mid36.i.i.i.i.i.i.i %mid47.i.i.i.i.i.i.i = lshr i64 %20, 1 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %mid47.i.i.i.i.i.i.i %24 = sub i64 %20, %mid47.i.i.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i10.i.i.i.i.i.i, i64 %16) %_0.0.sroa.speculated.i.i.i4.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i.i.i, i64 %mid47.i15.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i.i.i, i64 %18) %_0.0.sroa.speculated.i.i.i23.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i.i.i, i64 %mid36.i.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i34.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i23.i.i.i, i64 %22) %_0.0.sroa.speculated.i.i.i45.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i34.i.i.i, i64 %mid47.i.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i56.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i45.i.i.i, i64 %24) %_0.0.sroa.speculated.i.i.i67.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i56.i.i.i, i64 %new_len.i.i.i.i) %_2.i.i.i642.not.i.i.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i67.i.i.i, 0 br i1 %_2.i.i.i642.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17heb18d5d7acab7bbbE.exit", label %bb12.i.i.i.i.i bb19.i.i.i.i.i: ; preds = %bb17.i.i.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !162 unreachable bb12.i.i.i.i.i: ; preds = %bb20.i.i.i.i.i, %bb12.i.i.i.i.i %iter.i.i.sroa.57.0643.i.i.i = phi i64 [ %25, %bb12.i.i.i.i.i ], [ 0, %bb20.i.i.i.i.i ] %25 = add nuw nsw i64 %iter.i.i.sroa.57.0643.i.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.i.i.sroa.57.0643.i.i.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i %w1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !150, !noalias !163 %26 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i, i64 1 %w2.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %26, align 8, !alias.scope !150, !noalias !163 %27 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i, i64 2 %w3.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %27, align 8, !alias.scope !150, !noalias !163 %28 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i, i64 3 %w4.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !150, !noalias !163 %29 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i, i64 4 %w5.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %29, align 8, !alias.scope !150, !noalias !163 %30 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i, i64 5 %w6.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %30, align 8, !alias.scope !150, !noalias !163 %31 = getelementptr inbounds [7 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.57.0643.i.i.i, i64 6 %w7.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %31, align 8, !alias.scope !150, !noalias !163 %_53.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_54.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_55.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_56.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_57.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_58.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_59.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %_60.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %32 = fadd <4 x double> %_53.i.i.sroa.0.0.copyload.i.i.i, %_57.i.i.sroa.0.0.copyload.i.i.i %33 = fsub <4 x double> %_53.i.i.sroa.0.0.copyload.i.i.i, %_57.i.i.sroa.0.0.copyload.i.i.i %34 = fadd <4 x double> %_55.i.i.sroa.0.0.copyload.i.i.i, %_59.i.i.sroa.0.0.copyload.i.i.i %35 = fsub <4 x double> %_55.i.i.sroa.0.0.copyload.i.i.i, %_59.i.i.sroa.0.0.copyload.i.i.i %36 = bitcast <4 x double> %35 to <4 x i64> %37 = xor <4 x i64> %36, %38 = bitcast <4 x i64> %37 to <4 x double> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = fadd <4 x double> %_54.i.i.sroa.0.0.copyload.i.i.i, %_58.i.i.sroa.0.0.copyload.i.i.i %41 = fsub <4 x double> %_54.i.i.sroa.0.0.copyload.i.i.i, %_58.i.i.sroa.0.0.copyload.i.i.i %42 = fadd <4 x double> %_56.i.i.sroa.0.0.copyload.i.i.i, %_60.i.i.sroa.0.0.copyload.i.i.i %43 = fsub <4 x double> %_56.i.i.sroa.0.0.copyload.i.i.i, %_60.i.i.sroa.0.0.copyload.i.i.i %44 = bitcast <4 x double> %43 to <4 x i64> %45 = xor <4 x i64> %44, %46 = bitcast <4 x i64> %45 to <4 x double> %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fadd <4 x double> %32, %34 %49 = fadd <4 x double> %40, %42 %50 = fsub <4 x double> %32, %34 %51 = fsub <4 x double> %40, %42 %52 = bitcast <4 x double> %51 to <4 x i64> %53 = xor <4 x i64> %52, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = fsub <4 x double> %33, %39 %57 = fsub <4 x double> %41, %47 %58 = bitcast <4 x double> %57 to <4 x i64> %59 = xor <4 x i64> %58, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = fadd <4 x double> %57, %61 %63 = fmul <4 x double> %62, %64 = fadd <4 x double> %33, %39 %65 = fadd <4 x double> %41, %47 %66 = bitcast <4 x double> %65 to <4 x i64> %67 = xor <4 x i64> %66, %68 = bitcast <4 x i64> %67 to <4 x double> %69 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> %70 = fadd <4 x double> %65, %69 %71 = fmul <4 x double> %70, %72 = fadd <4 x double> %48, %49 %73 = fadd <4 x double> %56, %63 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %76 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %76, %74 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %73, <4 x double> %77) #23 %79 = fsub <4 x double> %50, %55 %80 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %81 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %82 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %82, %80 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %81, <4 x double> %79, <4 x double> %83) #23 %85 = fsub <4 x double> %64, %71 %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %88 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %89 = fmul <4 x double> %88, %86 %90 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %85, <4 x double> %89) #23 %91 = fsub <4 x double> %48, %49 %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = shufflevector <4 x double> %w4.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %94 = shufflevector <4 x double> %w4.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %95 = fmul <4 x double> %94, %92 %96 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %93, <4 x double> %91, <4 x double> %95) #23 %97 = fsub <4 x double> %56, %63 %98 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> %99 = shufflevector <4 x double> %w5.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %100 = shufflevector <4 x double> %w5.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %98 %102 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %97, <4 x double> %101) #23 %103 = fadd <4 x double> %50, %55 %104 = shufflevector <4 x double> %103, <4 x double> poison, <4 x i32> %105 = shufflevector <4 x double> %w6.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %106 = shufflevector <4 x double> %w6.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %107 = fmul <4 x double> %106, %104 %108 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %105, <4 x double> %103, <4 x double> %107) #23 %109 = fadd <4 x double> %64, %71 %110 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> %111 = shufflevector <4 x double> %w7.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %112 = shufflevector <4 x double> %w7.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %113 = fmul <4 x double> %112, %110 %114 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %111, <4 x double> %109, <4 x double> %113) #23 store <4 x double> %72, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %84, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %96, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %102, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %108, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 store <4 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !147, !noalias !164 %exitcond.not.i.i.i = icmp eq i64 %25, %_0.0.sroa.speculated.i.i.i67.i.i.i br i1 %exitcond.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17heb18d5d7acab7bbbE.exit", label %bb12.i.i.i.i.i "_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17heb18d5d7acab7bbbE.exit": ; preds = %bb12.i.i.i.i.i, %bb20.i.i.i.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9e2c8f44d3e48949E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h56b0b9a89ca65041E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9e70e8f362a07514E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h86afaf7be5a8690bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17h9ebfd052ce4f11baE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h70f0ea5152c99060E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha01e4492e9717f0dE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he0c1c71936ffc58aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha07f55c5929f1f15E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h61bd9f57997153b2E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha0dc59ff18b8ac3fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h11d367b73a175ed7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha23478c6bc80eddbE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7a2856a0188e6841E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha254268925b70b37E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf4bea02274b46e23E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha2853b55bb65ede3E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb65bddc23e55ec42E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha28e306bac38bfe9E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h54eb29410ff93eb3E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha31423625b236a52E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h73ceb613b3247c39E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha48b4dc2bb6863faE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1873e18099d9befaE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha5c1ef9e77e683efE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5edef8ff99ff72edE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha6749a5fedf179c7E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb16f4b3a8b8c4729E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha6cac99d127333e4E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: %_4.i = alloca %"pulp::x86::V4", align 1 %f.i = alloca %"{closure@src/unordered.rs:306:29: 306:31}.842", align 8 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %_4.i) %4 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !165 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !165 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17he354c68fd13d0a30E.exit" bb3.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_adc7f824967bf866f1e4c58e620b85f9) #22, !noalias !165 unreachable "_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17he354c68fd13d0a30E.exit": ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %f.i), !noalias !165 store ptr %_4.i, ptr %f.i, align 8, !noalias !165 %6 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f.i, i64 0, i32 1 store ptr %0, ptr %6, align 8, !noalias !165 %7 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f.i, i64 0, i32 1, i32 1 store i64 %1, ptr %7, align 8, !noalias !165 %8 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f.i, i64 0, i32 2 store ptr %2, ptr %8, align 8, !noalias !165 %9 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f.i, i64 0, i32 2, i32 1 store i64 %3, ptr %9, align 8, !noalias !165 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4b3055d0759520a1E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %f.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %f.i), !noalias !165 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %_4.i) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17ha8224d2d03e4291dE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7536f9f83072bd22E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17haa4f569a04b8714eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7e749c03fbc6e11dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17haaebf932eac08440E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h97961f80cc3d4007E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hab1a488a55e90c90E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he58345cd65c99198E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hab60dcaae53e537fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h184f5cf369fc44eeE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17habb63787ced1a8bfE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h90ee2d39ed9f9d15E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17had0fbf042c89c047E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7e17c90e217eabfaE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17had125a4ed8b780c7E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h74299e8062a7f1e0E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17had5ced298a8cf9c9E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcdad6921393139a0E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17had63cca2c38998c7E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf7165141c512fe81E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17had7e6d7c24ffb8a9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8c7c9f606ad3c016E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hadda635e7dbe7739E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha635f1563aa7aab3E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb01f4d27a8c0f114E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6ebda98d311b7d5eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb089b7cc54bdd5fbE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcaffc7c72767fdd1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb0ef5661ee1c69d6E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd7c3f32fba438266E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb2aa3ebafaf8355fE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hecd473cfc099a4b1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb2e8eeb3eba46ea8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5f5b78b604fe31ecE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb3a6e57803867d86E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h347e7bab02c6e802E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb4a7145605cf17d9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9c2b09ebfbfb2478E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb6c80fd2f102c124E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4e6ff6a5642e2a92E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hb9d25274af069e40E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha03ba2c8d72a4d24E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hba6d0265b1632367E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7a29bbc20c13a224E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hbb48629611e11a0cE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h85cb3738c98622f5E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hbc0fcc18b7114e45E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcbc38a52b10b0a29E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hbe49a38afb3f161eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc0b10ca956f767a9E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc06304901403e20cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0ee49f115961f9bbE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc0b80ca84e84a6f6E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hbf85ec8d3b433573E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc203dcb8cfbf046fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd64174afd5af4fe8E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc2397a2f319d4555E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h64c937deb5fe8905E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc422924981261ff3E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hba779a8c7daf0247E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc439f0f9bf78f7a4E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3a3ad457ba91a630E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc539a89f672bb7c9E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd576600ee71262a0E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc5bf4b1afe16374eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb89f75badd232403E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc5de77a65359b8c1E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h998a9c4383612dabE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc5f42ab7708c828bE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: %_4.i = alloca %"pulp::x86::V4", align 1 %f.i = alloca %"{closure@src/unordered.rs:306:29: 306:31}", align 8 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %_4.i) %4 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !169 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !169 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17he4a46004ab83fa72E.exit" bb3.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_a30bc3139301f3ccf4562a88e7b9a42f) #22, !noalias !169 unreachable "_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17he4a46004ab83fa72E.exit": ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %f.i), !noalias !169 store ptr %_4.i, ptr %f.i, align 8, !noalias !169 %6 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f.i, i64 0, i32 1 store ptr %0, ptr %6, align 8, !noalias !169 %7 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f.i, i64 0, i32 1, i32 1 store i64 %1, ptr %7, align 8, !noalias !169 %8 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f.i, i64 0, i32 2 store ptr %2, ptr %8, align 8, !noalias !169 %9 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f.i, i64 0, i32 2, i32 1 store i64 %3, ptr %9, align 8, !noalias !169 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17ha00ed9a97a24649aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %f.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %f.i), !noalias !169 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %_4.i) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc69299e0fca41d78E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5a041deee86b33fdE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc6ec462795478dcaE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1c18c7fb641f8fd4E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc726ba6fe02988b4E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h87f7f96734caf92bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc801580ebc6b8781E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17haed0fbf0cfcc17e3E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc894333660cece98E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5e21de5145f866f6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc8bf4c39f38d06b3E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4859605306b6d53bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hc8ef0a46b189afd2E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdfc8ec7065a99e26E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hca4f13d32765e188E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdac7be82873824bdE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hca7b6699d4d0886cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08056610dc5f3270E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcab6c5f022756cc8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf0031c3860c0653cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcb1f7ec920c0b606E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h69e5069eddcaebebE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcbe465c02e3e4e90E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0cc4c62665da2b53E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcbfe728059b9db44E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb95240af773c23fbE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcd5997a2929ba99aE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h19f2ca99f1d8bfdaE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcde11989b6b504ccE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6b0f5a7e3979ea8bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hcf34a69d95fc92d4E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h876d80d5de5dbf98E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd2bbd537b493c18fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc50a59fd1e4d9bedE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd394cd621ed4c802E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !173) tail call void @llvm.experimental.noalias.scope.decl(metadata !176) %4 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !178 %_3.i.i = icmp eq i8 %4, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !178 %5 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %start %available.0.i.i = phi i8 [ %5, %bb1.i.i ], [ %4, %start ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb3.i, label %bb2.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3c3428d6ae47c967a7776e95c7db9c05) #22, !noalias !178 unreachable bb2.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i %6 = and i64 %1, 1 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb13.i.i.i.i.i, label %bb12.i.i.i.i.i bb13.i.i.i.i.i: ; preds = %bb2.i %8 = shl nsw i64 %3, 4 %_13.i.i.i.i = urem i64 %8, 96 %new_len.i.i.i.i = udiv i64 %8, 96 %9 = icmp eq i64 %_13.i.i.i.i, 0 br i1 %9, label %bb16.i.i.i.i.i, label %bb15.i.i.i.i.i bb12.i.i.i.i.i: ; preds = %bb2.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !179 unreachable bb16.i.i.i.i.i: ; preds = %bb13.i.i.i.i.i %10 = lshr exact i64 %1, 1 %new_len2.i.i.i.i = and i64 %10, 576460752303423487 %mid5.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 1 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid5.i.i.i.i.i.i %12 = sub nsw i64 %new_len2.i.i.i.i, %mid5.i.i.i.i.i.i %mid36.i.i.i.i.i.i = lshr i64 %new_len2.i.i.i.i, 2 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %mid36.i.i.i.i.i.i %14 = sub nsw i64 %mid5.i.i.i.i.i.i, %mid36.i.i.i.i.i.i %mid47.i.i.i.i.i.i = lshr i64 %12, 1 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %mid47.i.i.i.i.i.i %16 = sub i64 %12, %mid47.i.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i.i.i.i.i.i, i64 %14) %_0.0.sroa.speculated.i.i.i4.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i.i.i, i64 %mid47.i.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i.i.i, i64 %16) %_0.0.sroa.speculated.i.i.i23.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i.i.i, i64 %new_len.i.i.i.i) %_2.i.i.i219.not.i.i.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i.i.i, 0 br i1 %_2.i.i.i219.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h34d3520e23250c7fE.exit", label %bb8.i.i.i.i.i bb15.i.i.i.i.i: ; preds = %bb13.i.i.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !188 unreachable bb8.i.i.i.i.i: ; preds = %bb16.i.i.i.i.i, %bb8.i.i.i.i.i %iter.i.i.sroa.29.0220.i.i.i = phi i64 [ %17, %bb8.i.i.i.i.i ], [ 0, %bb16.i.i.i.i.i ] %17 = add nuw nsw i64 %iter.i.i.sroa.29.0220.i.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %0, i64 %iter.i.i.sroa.29.0220.i.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.i.i.sroa.29.0220.i.i.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.i.i.sroa.29.0220.i.i.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.i.i.sroa.29.0220.i.i.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [3 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.29.0220.i.i.i %w1.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !176, !noalias !189 %18 = getelementptr inbounds [3 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.29.0220.i.i.i, i64 1 %w2.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %18, align 8, !alias.scope !176, !noalias !189 %19 = getelementptr inbounds [3 x %"fft_simd::c64x2"], ptr %2, i64 %iter.i.i.sroa.29.0220.i.i.i, i64 2 %w3.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %19, align 8, !alias.scope !176, !noalias !189 %_33.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 %_34.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 %_35.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 %_36.i.i.sroa.0.0.copyload.i.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 %20 = shufflevector <4 x double> %_34.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %22 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %23 = fmul <4 x double> %22, %20 %24 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %21, <4 x double> %_34.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %23) #23 %25 = shufflevector <4 x double> %_35.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %_35.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %28) #23 %30 = shufflevector <4 x double> %_36.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.i.i.sroa.0.0.copyload.i.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %_36.i.i.sroa.0.0.copyload.i.i.i, <4 x double> %33) #23 %35 = fadd <4 x double> %_33.i.i.sroa.0.0.copyload.i.i.i, %29 %36 = fsub <4 x double> %_33.i.i.sroa.0.0.copyload.i.i.i, %29 %37 = fadd <4 x double> %24, %34 %38 = fsub <4 x double> %24, %34 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %35, %37 %44 = fsub <4 x double> %36, %42 %45 = fsub <4 x double> %35, %37 %46 = fadd <4 x double> %36, %42 store <4 x double> %43, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 store <4 x double> %44, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 store <4 x double> %45, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 store <4 x double> %46, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !173, !noalias !190 %exitcond.not.i.i.i = icmp eq i64 %17, %_0.0.sroa.speculated.i.i.i23.i.i.i br i1 %exitcond.not.i.i.i, label %"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h34d3520e23250c7fE.exit", label %bb8.i.i.i.i.i "_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h34d3520e23250c7fE.exit": ; preds = %bb8.i.i.i.i.i, %bb16.i.i.i.i.i ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd3eaaaad078d2adfE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6852785f28bfe246E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd45cc219219331fdE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb47e07b68c989573E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd483d4721d28116cE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h44e0035b56394031E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd51de123a9765203E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha9982bf6d43a3f40E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd570de55aa4fd554E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h30fedea6111be0adE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd7e429449824aa7aE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h463fdaabeceb07f9E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd8d10e2eb38eb8f9E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfbcb6245a1ebdb34E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd939dbfc776c55d4E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcf855a224e12d9b9E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd94eef3962325314E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb9ee9f6d63d61f1fE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hd98ffbcf85aa2f29E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd945ad037cd1bf81E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hdb9062fb04807b61E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he4d5e204914ddd26E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hde37442b0c761d71E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2329c63d17833b6aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he0d1367dd194b77eE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb8cbc58a50ea338eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he3cc172aaecdd215E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6ca26ab6ccf454dcE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he3dae92d1afba147E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h239d63e262f12e3eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he5e5386dc72ef588E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6a739394c90834d8E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he98aed5f697c3bc1E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha931eb0366ce5f51E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17he9e1d5dac0c33298E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h48d4182e8fff191dE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hea97ce512018e587E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h24b47532e6721f7bE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17heabe04641af84ca6E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1ac26ecc806ab954E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hec71cb8e13e1065fE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2aad6d2ed4af9c70E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hedcbc66d1be13ff8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture nonnull readnone align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd1b29de1679e92aeE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %3, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hefa52b1fcd7aca13E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4ca3cf547b3eb103E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf0576c73c8ef0ebeE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb1faef4c24f45a03E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf0e99480e7ac0d0fE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h901f8ee504383c09E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf2e1cf41b533e1feE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c1050123a78f200E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf300ffab7a0b38d6E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7adb7f4faed52aeeE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf579883489a883b9E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h57ddd37fb0b4eb1cE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf58169413aa0551fE(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hebf2611902285931E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf65cd834c3f3b3c1E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfde91657e41269f5E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf79966d1f3f70aeaE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h88eef4b882b36914E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hf9d83f0e1cd42d6dE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h49fdc2265b4a659aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfac2767dc7e89a3cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdad8e230b683d0cbE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfaf829474132b539E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h387de2586934dcb7E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfb15e6fac6abd2f8E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb89e79f2cf5e2973E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfb2f754e258e945cE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8c591852e175f367E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfba7c8ceb0310e85E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb4b727ac091e82efE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfc123acad0466480E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h132cc96881bae056E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfd319af51842e327E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull writeonly align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd142f0070b5cbe78E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfd71164e2d50cab0E(ptr noalias nocapture noundef nonnull align 8 %0, i64 noundef %1, ptr noalias nocapture noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias nocapture nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h40d8983c418f1cd6E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, i64 noundef %7) ret void } ; core::ops::function::FnOnce::call_once ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3ops8function6FnOnce9call_once17hfe9fd2531486af0dE(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) unnamed_addr #1 personality ptr @rust_eh_personality { start: ; call concrete_fft::fn_ptr::{{closure}} tail call fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h368521677895aa3eE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 %6, i64 noundef %7) ret void } ; core::ptr::drop_in_place ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define internal void @"_ZN4core3ptr26drop_in_place$LT$usize$GT$17h654693b979dd704fE"(ptr noalias nocapture readnone align 8 %_1) unnamed_addr #4 { start: ret void } ; core::ptr::drop_in_place ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define internal void @"_ZN4core3ptr51drop_in_place$LT$concrete_fft..ordered..FftAlgo$GT$17hc007d073b835a474E"(ptr noalias nocapture readnone align 1 %_1) unnamed_addr #4 { start: ret void } ; core::time::Duration::from_secs_f64::panic_cold_display ; Function Attrs: cold noinline noreturn nonlazybind uwtable define internal fastcc void @_ZN4core4time8Duration13from_secs_f6418panic_cold_display17h8349342c304d2b85E(ptr noalias noundef readonly align 8 dereferenceable(16) %arg) unnamed_addr #5 { start: ; call core::panicking::panic_display tail call fastcc void @_ZN4core9panicking13panic_display17h911ced7481baf2e9E(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %arg) #22 unreachable } ; core::panicking::assert_failed ; Function Attrs: cold noinline noreturn nonlazybind uwtable define internal fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1, ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %args, ptr noalias noundef readonly align 8 dereferenceable(24) %2) unnamed_addr #5 { start: %right = alloca ptr, align 8 %left = alloca ptr, align 8 store ptr %0, ptr %left, align 8 store ptr %1, ptr %right, align 8 ; call core::panicking::assert_failed_inner call void @_ZN4core9panicking19assert_failed_inner17ha3526db27dddbb9aE(i8 noundef 0, ptr noundef nonnull align 1 %left, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.2, ptr noundef nonnull align 1 %right, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.2, ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %args, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %2) #22 unreachable } ; core::panicking::panic_display ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4core9panicking13panic_display17h911ced7481baf2e9E(ptr noalias noundef readonly align 8 dereferenceable(16) %x) unnamed_addr #2 { start: %_7 = alloca [1 x %"core::fmt::rt::Argument<'_>"], align 8 %_3 = alloca %"core::fmt::Arguments<'_>", align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_3) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_7) store ptr %x, ptr %_7, align 8 %0 = getelementptr inbounds i8, ptr %_7, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %0, align 8 store ptr @alloc_b99730e73100e73a81f4fbfe74b3821d, ptr %_3, align 8 %1 = getelementptr inbounds i8, ptr %_3, i64 8 store i64 1, ptr %1, align 8 %2 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_3, i64 0, i32 2 store ptr null, ptr %2, align 8 %3 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_3, i64 0, i32 1 store ptr %_7, ptr %3, align 8 %4 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_3, i64 0, i32 1, i32 1 store i64 1, ptr %4, align 8 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_a77dd710febbd98d6ad81a0d962ea162) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h0208ae049bc5a14dE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !191) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !191, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !191, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !191, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !191, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !191, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !191, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !191, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !191, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !191 store i64 512, ptr %n.i, align 8, !noalias !191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !191 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !191 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !191 store ptr null, ptr %_16.i, align 8, !noalias !191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !191 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !191 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !191 store ptr null, ptr %_24.i, align 8, !noalias !191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !191 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !191 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !191 store ptr null, ptr %_32.i, align 8, !noalias !191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !191 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !191 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276d91c1196a6fd0E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !191 store ptr null, ptr %_40.i, align 8, !noalias !191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276d91c1196a6fd0E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !191 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 br label %bb17.i.i.i.i bb17.i.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276d91c1196a6fd0E.exit", %bb17.i.i.i.i %iter.i.i.i.i.sroa.50.0966 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276d91c1196a6fd0E.exit" ], [ %15, %bb17.i.i.i.i ] %15 = add nuw nsw i64 %iter.i.i.i.i.sroa.50.0966, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.i.i.sroa.50.0966 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.i.i.sroa.50.0966 %_63.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 %_64.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 %_65.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 %_66.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 %_67.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 %_68.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !194 %_69.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !194 %_70.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !194 %16 = fadd <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %17 = fsub <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %18 = fadd <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %19 = fsub <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %20 = bitcast <8 x double> %19 to <8 x i64> %21 = xor <8 x i64> %20, %22 = fadd <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %23 = fsub <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %24 = fadd <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %25 = fsub <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = fadd <8 x double> %16, %18 %29 = bitcast <8 x i64> %21 to <8 x double> %30 = shufflevector <8 x double> %29, <8 x double> poison, <8 x i32> %31 = fsub <8 x double> %17, %30 %32 = fsub <8 x double> %16, %18 %33 = fadd <8 x double> %17, %30 %34 = fadd <8 x double> %22, %24 %35 = bitcast <8 x i64> %27 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fsub <8 x double> %23, %36 %38 = bitcast <8 x double> %37 to <8 x i64> %39 = xor <8 x i64> %38, %40 = bitcast <8 x i64> %39 to <8 x double> %41 = shufflevector <8 x double> %40, <8 x double> poison, <8 x i32> %42 = fadd <8 x double> %37, %41 %43 = fmul <8 x double> %42, %44 = fsub <8 x double> %22, %24 %45 = bitcast <8 x double> %44 to <8 x i64> %46 = xor <8 x i64> %45, %47 = fadd <8 x double> %23, %36 %48 = bitcast <8 x double> %47 to <8 x i64> %49 = xor <8 x i64> %48, %50 = bitcast <8 x i64> %49 to <8 x double> %51 = shufflevector <8 x double> %50, <8 x double> poison, <8 x i32> %52 = fadd <8 x double> %47, %51 %53 = fmul <8 x double> %52, %54 = fadd <8 x double> %28, %34 %55 = fadd <8 x double> %31, %43 %56 = bitcast <8 x i64> %46 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fsub <8 x double> %32, %57 %59 = fsub <8 x double> %33, %53 %60 = fsub <8 x double> %28, %34 %61 = fsub <8 x double> %31, %43 %62 = fadd <8 x double> %32, %57 %63 = fadd <8 x double> %33, %53 store <8 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %55, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %58, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %61, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %62, ptr %_3.i.i.i.i.i.i, align 8, !noalias !194 store <8 x double> %63, ptr %_3.i.i.i.i, align 8, !noalias !194 %exitcond.not = icmp eq i64 %15, 16 br i1 %exitcond.not, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit", label %bb17.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit": ; preds = %bb17.i.i.i.i %64 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 tail call void @llvm.experimental.noalias.scope.decl(metadata !201) tail call void @llvm.experimental.noalias.scope.decl(metadata !204) tail call void @llvm.experimental.noalias.scope.decl(metadata !206) %65 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %66 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %67 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %68 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 br label %bb30.i bb30.i: ; preds = %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit", %bb30.i %iter.sroa.104.01903.i = phi i64 [ %236, %bb30.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01903.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %69, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %64, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %68, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %67, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %65, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %66, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 3 %70 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %70, align 8, !alias.scope !206, !noalias !208, !noundef !3 %71 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %71, align 8, !alias.scope !206, !noalias !208, !noundef !3 %72 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %72, align 8, !alias.scope !206, !noalias !208, !noundef !3 %73 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %73, align 8, !alias.scope !206, !noalias !208, !noundef !3 %74 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %74, align 8, !alias.scope !206, !noalias !208, !noundef !3 %75 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %75, align 8, !alias.scope !206, !noalias !208, !noundef !3 %76 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %76, align 8, !alias.scope !206, !noalias !208, !noundef !3 %77 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %77, align 8, !alias.scope !206, !noalias !208, !noundef !3 %78 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %78, align 8, !alias.scope !206, !noalias !208, !noundef !3 %79 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %79, align 8, !alias.scope !206, !noalias !208, !noundef !3 %80 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %80, align 8, !alias.scope !206, !noalias !208, !noundef !3 %81 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %81, align 8, !alias.scope !206, !noalias !208, !noundef !3 %82 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %82, align 8, !alias.scope !206, !noalias !208, !noundef !3 %83 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %83, align 8, !alias.scope !206, !noalias !208, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %84 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %85 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %86 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %87 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %88 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %89 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %90 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %92 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %93 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %94 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %95 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %96 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %97 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %98 = shufflevector <2 x double> %84, <2 x double> poison, <8 x i32> zeroinitializer %99 = shufflevector <2 x double> %84, <2 x double> poison, <8 x i32> %100 = shufflevector <2 x double> %85, <2 x double> poison, <8 x i32> zeroinitializer %101 = shufflevector <2 x double> %85, <2 x double> poison, <8 x i32> %102 = shufflevector <2 x double> %86, <2 x double> poison, <8 x i32> zeroinitializer %103 = shufflevector <2 x double> %86, <2 x double> poison, <8 x i32> %104 = shufflevector <2 x double> %87, <2 x double> poison, <8 x i32> zeroinitializer %105 = shufflevector <2 x double> %87, <2 x double> poison, <8 x i32> %106 = shufflevector <2 x double> %88, <2 x double> poison, <8 x i32> zeroinitializer %107 = shufflevector <2 x double> %88, <2 x double> poison, <8 x i32> %108 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> zeroinitializer %109 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> %110 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> zeroinitializer %111 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !204, !noalias !209 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %93, align 8, !alias.scope !204, !noalias !209 %112 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %113 = fmul <8 x double> %99, %112 %_4.i165 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %113, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %92, align 8, !alias.scope !204, !noalias !209 %114 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %115 = fmul <8 x double> %101, %114 %_4.i164 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %100, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %115, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %94, align 8, !alias.scope !204, !noalias !209 %116 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %117 = fmul <8 x double> %103, %116 %_4.i163 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %117, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %91, align 8, !alias.scope !204, !noalias !209 %118 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %119 = fmul <8 x double> %105, %118 %_4.i162 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %119, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %96, align 8, !alias.scope !204, !noalias !209 %120 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %107, %120 %_4.i161 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %121, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %95, align 8, !alias.scope !204, !noalias !209 %122 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %109, %122 %_4.i160 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %123, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %97, align 8, !alias.scope !204, !noalias !209 %124 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %125 = fmul <8 x double> %111, %124 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %110, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %125, i32 noundef 4) #23 %126 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i162 %127 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i162 %128 = fadd <8 x double> %_4.i164, %_4.i160 %129 = fsub <8 x double> %_4.i164, %_4.i160 %130 = bitcast <8 x double> %129 to <8 x i64> %131 = xor <8 x i64> %130, %132 = fadd <8 x double> %_4.i165, %_4.i161 %133 = fsub <8 x double> %_4.i165, %_4.i161 %134 = fadd <8 x double> %_4.i163, %_4.i %135 = fsub <8 x double> %_4.i163, %_4.i %136 = bitcast <8 x double> %135 to <8 x i64> %137 = xor <8 x i64> %136, %138 = fadd <8 x double> %126, %128 %139 = fadd <8 x double> %132, %134 %140 = fadd <8 x double> %138, %139 store <8 x double> %140, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %141 = fsub <8 x double> %138, %139 store <8 x double> %141, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %142 = bitcast <8 x i64> %131 to <8 x double> %143 = shufflevector <8 x double> %142, <8 x double> poison, <8 x i32> %144 = fsub <8 x double> %127, %143 %145 = bitcast <8 x i64> %137 to <8 x double> %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %147 = fsub <8 x double> %133, %146 %148 = bitcast <8 x double> %147 to <8 x i64> %149 = xor <8 x i64> %148, %150 = bitcast <8 x i64> %149 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fadd <8 x double> %147, %151 %153 = fmul <8 x double> %152, %154 = fadd <8 x double> %144, %153 store <8 x double> %154, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %155 = fsub <8 x double> %144, %153 store <8 x double> %155, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %156 = fsub <8 x double> %126, %128 %157 = fsub <8 x double> %132, %134 %158 = bitcast <8 x double> %157 to <8 x i64> %159 = xor <8 x i64> %158, %160 = bitcast <8 x i64> %159 to <8 x double> %161 = shufflevector <8 x double> %160, <8 x double> poison, <8 x i32> %162 = fsub <8 x double> %156, %161 store <8 x double> %162, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %163 = fadd <8 x double> %156, %161 store <8 x double> %163, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %164 = fadd <8 x double> %127, %143 %165 = fadd <8 x double> %133, %146 %166 = bitcast <8 x double> %165 to <8 x i64> %167 = xor <8 x i64> %166, %168 = bitcast <8 x i64> %167 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = fadd <8 x double> %165, %169 %171 = fmul <8 x double> %170, %172 = fsub <8 x double> %164, %171 store <8 x double> %172, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %173 = fadd <8 x double> %164, %171 store <8 x double> %173, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !201, !noalias !210 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %y0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %_131.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %174 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %99, %174 %_4.i165.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> %175, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %176 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %101, %176 %_4.i164.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %100, <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> %177, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %178 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %179 = fmul <8 x double> %103, %178 %_4.i163.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> %179, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %180 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %181 = fmul <8 x double> %105, %180 %_4.i162.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> %181, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %182 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %107, %182 %_4.i161.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> %183, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %184 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %185 = fmul <8 x double> %109, %184 %_4.i160.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> %185, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !204, !noalias !209 %186 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %111, %186 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %110, <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> %187, i32 noundef 4) #23 %188 = fadd <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i162.1 %189 = fsub <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i162.1 %190 = fadd <8 x double> %_4.i164.1, %_4.i160.1 %191 = fsub <8 x double> %_4.i164.1, %_4.i160.1 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = fadd <8 x double> %_4.i165.1, %_4.i161.1 %195 = fsub <8 x double> %_4.i165.1, %_4.i161.1 %196 = fadd <8 x double> %_4.i163.1, %_4.i.1 %197 = fsub <8 x double> %_4.i163.1, %_4.i.1 %198 = bitcast <8 x double> %197 to <8 x i64> %199 = xor <8 x i64> %198, %200 = fadd <8 x double> %188, %190 %201 = fadd <8 x double> %194, %196 %202 = fadd <8 x double> %200, %201 store <8 x double> %202, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %203 = fsub <8 x double> %200, %201 store <8 x double> %203, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %204 = bitcast <8 x i64> %193 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fsub <8 x double> %189, %205 %207 = bitcast <8 x i64> %199 to <8 x double> %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = fsub <8 x double> %195, %208 %210 = bitcast <8 x double> %209 to <8 x i64> %211 = xor <8 x i64> %210, %212 = bitcast <8 x i64> %211 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fadd <8 x double> %209, %213 %215 = fmul <8 x double> %214, %216 = fadd <8 x double> %206, %215 store <8 x double> %216, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %217 = fsub <8 x double> %206, %215 store <8 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %218 = fsub <8 x double> %188, %190 %219 = fsub <8 x double> %194, %196 %220 = bitcast <8 x double> %219 to <8 x i64> %221 = xor <8 x i64> %220, %222 = bitcast <8 x i64> %221 to <8 x double> %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = fsub <8 x double> %218, %223 store <8 x double> %224, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %225 = fadd <8 x double> %218, %223 store <8 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %226 = fadd <8 x double> %189, %205 %227 = fadd <8 x double> %195, %208 %228 = bitcast <8 x double> %227 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x i64> %229 to <8 x double> %231 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %232 = fadd <8 x double> %227, %231 %233 = fmul <8 x double> %232, %234 = fsub <8 x double> %226, %233 store <8 x double> %234, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %235 = fadd <8 x double> %226, %233 store <8 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !201, !noalias !210 %236 = add nuw nsw i64 %iter.sroa.104.01903.i, 1 %exitcond967.not = icmp eq i64 %236, 8 br i1 %exitcond967.not, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, label %bb30.i _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !211) tail call void @llvm.experimental.noalias.scope.decl(metadata !214) tail call void @llvm.experimental.noalias.scope.decl(metadata !216) %237 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %238 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %239 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %240 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %241 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %242 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %243 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %244, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %244 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i150 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i151 = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i152 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i153 = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i154 = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i155 = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %239, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %238, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %240, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %237, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %242, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %241, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i156 = getelementptr inbounds %"fft_simd::c64x4", ptr %243, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !216, !noalias !218 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !216, !noalias !218 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !216, !noalias !218 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !216, !noalias !218 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !216, !noalias !218 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !216, !noalias !218 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i156, align 8, !alias.scope !216, !noalias !218 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !214, !noalias !219 %245 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %245, align 8, !alias.scope !214, !noalias !219 %246 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %246, align 8, !alias.scope !214, !noalias !219 %247 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %247, align 8, !alias.scope !214, !noalias !219 %248 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %248, align 8, !alias.scope !214, !noalias !219 %249 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %249, align 8, !alias.scope !214, !noalias !219 %250 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %250, align 8, !alias.scope !214, !noalias !219 %251 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %251, align 8, !alias.scope !214, !noalias !219 %252 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %253 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %254 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %255 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %256 = shufflevector <8 x double> %252, <8 x double> %254, <8 x i32> %257 = shufflevector <8 x double> %252, <8 x double> %254, <8 x i32> %258 = shufflevector <8 x double> %253, <8 x double> %255, <8 x i32> %259 = shufflevector <8 x double> %253, <8 x double> %255, <8 x i32> %260 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %261 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %262 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %263 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %264 = shufflevector <8 x double> %260, <8 x double> %262, <8 x i32> %265 = shufflevector <8 x double> %260, <8 x double> %262, <8 x i32> %266 = shufflevector <8 x double> %261, <8 x double> %263, <8 x i32> %267 = shufflevector <8 x double> %261, <8 x double> %263, <8 x i32> %268 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %269 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %270 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %271 = fmul <8 x double> %270, %268 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %269, <8 x double> %258, <8 x double> %271, i32 noundef 4) #23 %272 = shufflevector <8 x double> %257, <8 x double> poison, <8 x i32> %273 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %274 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %274, %272 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %273, <8 x double> %257, <8 x double> %275, i32 noundef 4) #23 %276 = shufflevector <8 x double> %259, <8 x double> poison, <8 x i32> %277 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %278 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %279 = fmul <8 x double> %278, %276 %_4.i170 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %277, <8 x double> %259, <8 x double> %279, i32 noundef 4) #23 %280 = shufflevector <8 x double> %264, <8 x double> poison, <8 x i32> %281 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %282 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %283 = fmul <8 x double> %282, %280 %_4.i169 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %281, <8 x double> %264, <8 x double> %283, i32 noundef 4) #23 %284 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %285 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %286 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %286, %284 %_4.i168 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %285, <8 x double> %266, <8 x double> %287, i32 noundef 4) #23 %288 = shufflevector <8 x double> %265, <8 x double> poison, <8 x i32> %289 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %290 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %291 = fmul <8 x double> %290, %288 %_4.i167 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %289, <8 x double> %265, <8 x double> %291, i32 noundef 4) #23 %292 = shufflevector <8 x double> %267, <8 x double> poison, <8 x i32> %293 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %294 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %295 = fmul <8 x double> %294, %292 %_4.i166 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %293, <8 x double> %267, <8 x double> %295, i32 noundef 4) #23 %296 = fadd <8 x double> %256, %_4.i169 %297 = fsub <8 x double> %256, %_4.i169 %298 = fadd <8 x double> %_4.i171, %_4.i167 %299 = fsub <8 x double> %_4.i171, %_4.i167 %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = fadd <8 x double> %_4.i172, %_4.i168 %303 = fsub <8 x double> %_4.i172, %_4.i168 %304 = fadd <8 x double> %_4.i170, %_4.i166 %305 = fsub <8 x double> %_4.i170, %_4.i166 %306 = bitcast <8 x double> %305 to <8 x i64> %307 = xor <8 x i64> %306, %308 = fadd <8 x double> %296, %298 %309 = fadd <8 x double> %302, %304 %310 = fadd <8 x double> %308, %309 store <8 x double> %310, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !211, !noalias !220 %311 = fsub <8 x double> %308, %309 store <8 x double> %311, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i152, align 8, !alias.scope !211, !noalias !220 %312 = bitcast <8 x i64> %301 to <8 x double> %313 = shufflevector <8 x double> %312, <8 x double> poison, <8 x i32> %314 = fsub <8 x double> %297, %313 %315 = bitcast <8 x i64> %307 to <8 x double> %316 = shufflevector <8 x double> %315, <8 x double> poison, <8 x i32> %317 = fsub <8 x double> %303, %316 %318 = bitcast <8 x double> %317 to <8 x i64> %319 = xor <8 x i64> %318, %320 = bitcast <8 x i64> %319 to <8 x double> %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %322 = fadd <8 x double> %317, %321 %323 = fmul <8 x double> %322, %324 = fadd <8 x double> %314, %323 store <8 x double> %324, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !211, !noalias !220 %325 = fsub <8 x double> %314, %323 store <8 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i153, align 8, !alias.scope !211, !noalias !220 %326 = fsub <8 x double> %296, %298 %327 = fsub <8 x double> %302, %304 %328 = bitcast <8 x double> %327 to <8 x i64> %329 = xor <8 x i64> %328, %330 = bitcast <8 x i64> %329 to <8 x double> %331 = shufflevector <8 x double> %330, <8 x double> poison, <8 x i32> %332 = fsub <8 x double> %326, %331 store <8 x double> %332, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i150, align 8, !alias.scope !211, !noalias !220 %333 = fadd <8 x double> %326, %331 store <8 x double> %333, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i154, align 8, !alias.scope !211, !noalias !220 %334 = fadd <8 x double> %297, %313 %335 = fadd <8 x double> %303, %316 %336 = bitcast <8 x double> %335 to <8 x i64> %337 = xor <8 x i64> %336, %338 = bitcast <8 x i64> %337 to <8 x double> %339 = shufflevector <8 x double> %338, <8 x double> poison, <8 x i32> %340 = fadd <8 x double> %335, %339 %341 = fmul <8 x double> %340, %342 = fsub <8 x double> %334, %341 store <8 x double> %342, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i151, align 8, !alias.scope !211, !noalias !220 %343 = fadd <8 x double> %334, %341 store <8 x double> %343, ptr %_3.i.i.i.i.i.i.i.i.i.i.i155, align 8, !alias.scope !211, !noalias !220 %exitcond.not.i159 = icmp eq i64 %244, 16 br i1 %exitcond.not.i159, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !191 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h02396bd5be42e614E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_13.i.i = alloca %"core::option::Option>", align 8 %_8.i.i = alloca i64, align 8 %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !221) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !221, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !221, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !221, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !221, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !221 store i64 4, ptr %n.i, align 8, !noalias !221 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !221 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !221 %_12.i = icmp eq i64 %buf.1.i, 4 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !221 store ptr null, ptr %_16.i, align 8, !noalias !221 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !221 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !221 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !221 %_20.i = icmp eq i64 %scratch.1.i, 4 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !221 store ptr null, ptr %_24.i, align 8, !noalias !221 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !221 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !221 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !221 %_28.i = icmp eq i64 %w_init.1.i, 4 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !221 store ptr null, ptr %_32.i, align 8, !noalias !221 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !221 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !221 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !221 %_36.i = icmp eq i64 %w.1.i, 4 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h959053c419601e5dE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !221 store ptr null, ptr %_40.i, align 8, !noalias !221 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h959053c419601e5dE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !221 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i), !noalias !224 store i64 1, ptr %_8.i.i, align 8, !noalias !224 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i), !noalias !224 store ptr null, ptr %_13.i.i, align 8, !noalias !224 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_1b2545642a9bdfc4ff02124e6915c842) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h02deb29d3a6b0eabE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !231) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !231, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !231, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !231, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !231, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !231, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !231, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !231, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !231 store i64 32, ptr %n.i, align 8, !noalias !231 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !231 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !231 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !231 store ptr null, ptr %_16.i, align 8, !noalias !231 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !231 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !231 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !231 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !231 store ptr null, ptr %_24.i, align 8, !noalias !231 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !231 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !231 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !231 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !231 store ptr null, ptr %_32.i, align 8, !noalias !231 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !231 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !231 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !231 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22d70895b818d2cfE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !231 store ptr null, ptr %_40.i, align 8, !noalias !231 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22d70895b818d2cfE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !231 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !234 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %10, align 8, !noalias !234 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !234 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %11, align 8, !noalias !234 %12 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %14 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = bitcast <8 x i64> %17 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fadd <8 x double> %12, %14 %21 = fsub <8 x double> %13, %19 %22 = fsub <8 x double> %12, %14 %23 = fadd <8 x double> %13, %19 store <8 x double> %20, ptr %scratch.0.i, align 8, !noalias !234 store <8 x double> %21, ptr %7, align 8, !noalias !234 store <8 x double> %22, ptr %6, align 8, !noalias !234 store <8 x double> %23, ptr %8, align 8, !noalias !234 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !234 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !234 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !234 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !234 %24 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %25 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %26 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %27 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %28 = bitcast <8 x double> %27 to <8 x i64> %29 = xor <8 x i64> %28, %30 = bitcast <8 x i64> %29 to <8 x double> %31 = shufflevector <8 x double> %30, <8 x double> poison, <8 x i32> %32 = fadd <8 x double> %24, %26 %33 = fsub <8 x double> %25, %31 %34 = fsub <8 x double> %24, %26 %35 = fadd <8 x double> %25, %31 store <8 x double> %32, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !234 store <8 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !234 store <8 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !234 store <8 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !234 tail call void @llvm.experimental.noalias.scope.decl(metadata !238) tail call void @llvm.experimental.noalias.scope.decl(metadata !241) %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %39 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %40 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %41 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %42 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %43 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %44 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %45 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %41, align 8, !alias.scope !241, !noalias !243 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %40, align 8, !alias.scope !241, !noalias !243 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %42, align 8, !alias.scope !241, !noalias !243 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %39, align 8, !alias.scope !241, !noalias !243 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %44, align 8, !alias.scope !241, !noalias !243 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %43, align 8, !alias.scope !241, !noalias !243 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %45, align 8, !alias.scope !241, !noalias !243 %46 = shufflevector <8 x double> %20, <8 x double> %21, <8 x i32> %47 = shufflevector <8 x double> %20, <8 x double> %21, <8 x i32> %48 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %49 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %48, <8 x i32> %51 = shufflevector <8 x double> %46, <8 x double> %48, <8 x i32> %52 = shufflevector <8 x double> %47, <8 x double> %49, <8 x i32> %53 = shufflevector <8 x double> %47, <8 x double> %49, <8 x i32> %54 = shufflevector <8 x double> %32, <8 x double> %33, <8 x i32> %55 = shufflevector <8 x double> %32, <8 x double> %33, <8 x i32> %56 = shufflevector <8 x double> %34, <8 x double> %35, <8 x i32> %57 = shufflevector <8 x double> %34, <8 x double> %35, <8 x i32> %58 = shufflevector <8 x double> %54, <8 x double> %56, <8 x i32> %59 = shufflevector <8 x double> %54, <8 x double> %56, <8 x i32> %60 = shufflevector <8 x double> %55, <8 x double> %57, <8 x i32> %61 = shufflevector <8 x double> %55, <8 x double> %57, <8 x i32> %62 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %52, <8 x double> %65, i32 noundef 4) #23 %66 = shufflevector <8 x double> %51, <8 x double> poison, <8 x i32> %67 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %68 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %69 = fmul <8 x double> %68, %66 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %67, <8 x double> %51, <8 x double> %69, i32 noundef 4) #23 %70 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %73 = fmul <8 x double> %72, %70 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %71, <8 x double> %53, <8 x double> %73, i32 noundef 4) #23 %74 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %58, <8 x double> %77, i32 noundef 4) #23 %78 = shufflevector <8 x double> %60, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %80, %78 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %60, <8 x double> %81, i32 noundef 4) #23 %82 = shufflevector <8 x double> %59, <8 x double> poison, <8 x i32> %83 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %84, %82 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %59, <8 x double> %85, i32 noundef 4) #23 %86 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %87 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %88 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %89 = fmul <8 x double> %88, %86 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %87, <8 x double> %61, <8 x double> %89, i32 noundef 4) #23 %90 = fadd <8 x double> %50, %_4.i93 %91 = fsub <8 x double> %50, %_4.i93 %92 = fadd <8 x double> %_4.i95, %_4.i91 %93 = fsub <8 x double> %_4.i95, %_4.i91 %94 = bitcast <8 x double> %93 to <8 x i64> %95 = xor <8 x i64> %94, %96 = bitcast <8 x i64> %95 to <8 x double> %97 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %98 = fadd <8 x double> %_4.i96, %_4.i92 %99 = fsub <8 x double> %_4.i96, %_4.i92 %100 = fadd <8 x double> %_4.i94, %_4.i %101 = fsub <8 x double> %_4.i94, %_4.i %102 = bitcast <8 x double> %101 to <8 x i64> %103 = xor <8 x i64> %102, %104 = bitcast <8 x i64> %103 to <8 x double> %105 = shufflevector <8 x double> %104, <8 x double> poison, <8 x i32> %106 = fadd <8 x double> %90, %92 %107 = fadd <8 x double> %98, %100 %108 = fadd <8 x double> %106, %107 store <8 x double> %108, ptr %buf.0.i, align 8, !alias.scope !238, !noalias !245 %109 = fsub <8 x double> %106, %107 store <8 x double> %109, ptr %9, align 8, !alias.scope !238, !noalias !245 %110 = fsub <8 x double> %91, %97 %111 = fsub <8 x double> %99, %105 %112 = bitcast <8 x double> %111 to <8 x i64> %113 = xor <8 x i64> %112, %114 = bitcast <8 x i64> %113 to <8 x double> %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fadd <8 x double> %111, %115 %117 = fmul <8 x double> %116, %118 = fadd <8 x double> %110, %117 store <8 x double> %118, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !238, !noalias !245 %119 = fsub <8 x double> %110, %117 store <8 x double> %119, ptr %37, align 8, !alias.scope !238, !noalias !245 %120 = fsub <8 x double> %90, %92 %121 = fsub <8 x double> %98, %100 %122 = bitcast <8 x double> %121 to <8 x i64> %123 = xor <8 x i64> %122, %124 = bitcast <8 x i64> %123 to <8 x double> %125 = shufflevector <8 x double> %124, <8 x double> poison, <8 x i32> %126 = fsub <8 x double> %120, %125 store <8 x double> %126, ptr %10, align 8, !alias.scope !238, !noalias !245 %127 = fadd <8 x double> %120, %125 store <8 x double> %127, ptr %11, align 8, !alias.scope !238, !noalias !245 %128 = fadd <8 x double> %91, %97 %129 = fadd <8 x double> %99, %105 %130 = bitcast <8 x double> %129 to <8 x i64> %131 = xor <8 x i64> %130, %132 = bitcast <8 x i64> %131 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fadd <8 x double> %129, %133 %135 = fmul <8 x double> %134, %136 = fsub <8 x double> %128, %135 store <8 x double> %136, ptr %36, align 8, !alias.scope !238, !noalias !245 %137 = fadd <8 x double> %128, %135 store <8 x double> %137, ptr %38, align 8, !alias.scope !238, !noalias !245 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !231 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h070a47c4cc4f73a3E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !246) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !246, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !246, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !246, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !246, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !246, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !246, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !246, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !246, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !246 store i64 256, ptr %n.i, align 8, !noalias !246 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !246 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !246 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !246 store ptr null, ptr %_16.i, align 8, !noalias !246 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !246 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !246 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !246 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !246 store ptr null, ptr %_24.i, align 8, !noalias !246 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !246 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !246 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !246 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !246 store ptr null, ptr %_32.i, align 8, !noalias !246 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !246 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !246 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !246 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3ee014fbe1dfa1b5E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !246 store ptr null, ptr %_40.i, align 8, !noalias !246 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3ee014fbe1dfa1b5E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !246 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 br label %bb26.i.i.i bb26.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3ee014fbe1dfa1b5E.exit", %bb26.i.i.i %iter7.i.i.i.sroa.50.0503 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3ee014fbe1dfa1b5E.exit" ], [ %13, %bb26.i.i.i ] %13 = add nuw nsw i64 %iter7.i.i.i.sroa.50.0503, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter7.i.i.i.sroa.50.0503 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter7.i.i.i.sroa.50.0503 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter7.i.i.i.sroa.50.0503 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter7.i.i.i.sroa.50.0503 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter7.i.i.i.sroa.50.0503 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter7.i.i.i.sroa.50.0503 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter7.i.i.i.sroa.50.0503 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter7.i.i.i.sroa.50.0503 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !249 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !249 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !249 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !249 %14 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %16 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %17 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = fadd <8 x double> %14, %16 %21 = bitcast <8 x i64> %19 to <8 x double> %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = fsub <8 x double> %15, %22 %24 = fsub <8 x double> %14, %16 %25 = fadd <8 x double> %15, %22 store <8 x double> %20, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !249 store <8 x double> %23, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !249 store <8 x double> %24, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !249 store <8 x double> %25, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !249 %exitcond.not = icmp eq i64 %13, 16 br i1 %exitcond.not, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", label %bb26.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit": ; preds = %bb26.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !253) tail call void @llvm.experimental.noalias.scope.decl(metadata !256) tail call void @llvm.experimental.noalias.scope.decl(metadata !258) br label %bb22.us.i bb22.us.i: ; preds = %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", %bb22.us.i %iter.sroa.60.0645.us.i = phi i64 [ %116, %bb22.us.i ], [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 4 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1 %w1.0614.us.i = load <2 x float>, ptr %26, align 8, !alias.scope !258, !noalias !260, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %27, align 8, !alias.scope !258, !noalias !260, !noundef !3 %28 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2 %w2.0616.us.i = load <2 x float>, ptr %28, align 8, !alias.scope !258, !noalias !260, !noundef !3 %29 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %29, align 8, !alias.scope !258, !noalias !260, !noundef !3 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3 %w3.0618.us.i = load <2 x float>, ptr %30, align 8, !alias.scope !258, !noalias !260, !noundef !3 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %31, align 8, !alias.scope !258, !noalias !260, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %32 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %33 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %34 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 8 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 4 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 12 %38 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> zeroinitializer %39 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> %40 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> zeroinitializer %41 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> %42 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> zeroinitializer %43 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !256, !noalias !261 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %36, align 8, !alias.scope !256, !noalias !261 %44 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %45 = fmul <8 x double> %39, %44 %_4.i167 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %45, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %35, align 8, !alias.scope !256, !noalias !261 %46 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %47 = fmul <8 x double> %41, %46 %_4.i166 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %47, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %37, align 8, !alias.scope !256, !noalias !261 %48 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %49 = fmul <8 x double> %43, %48 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %49, i32 noundef 4) #23 %50 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i166 %51 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i166 %52 = fadd <8 x double> %_4.i167, %_4.i %53 = fsub <8 x double> %_4.i167, %_4.i %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = fadd <8 x double> %50, %52 store <8 x double> %56, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !253, !noalias !262 %57 = bitcast <8 x i64> %55 to <8 x double> %58 = shufflevector <8 x double> %57, <8 x double> poison, <8 x i32> %59 = fsub <8 x double> %51, %58 store <8 x double> %59, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !253, !noalias !262 %60 = fsub <8 x double> %50, %52 store <8 x double> %60, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !253, !noalias !262 %61 = fadd <8 x double> %51, %58 store <8 x double> %61, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !253, !noalias !262 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 5 %_3.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 9 %_3.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 13 %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !256, !noalias !261 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !256, !noalias !261 %62 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %63 = fmul <8 x double> %39, %62 %_4.i167.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %63, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !256, !noalias !261 %64 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %41, %64 %_4.i166.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %65, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i.1, align 8, !alias.scope !256, !noalias !261 %66 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %43, %66 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %67, i32 noundef 4) #23 %68 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i166.1 %69 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i166.1 %70 = fadd <8 x double> %_4.i167.1, %_4.i.1 %71 = fsub <8 x double> %_4.i167.1, %_4.i.1 %72 = bitcast <8 x double> %71 to <8 x i64> %73 = xor <8 x i64> %72, %74 = fadd <8 x double> %68, %70 store <8 x double> %74, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !253, !noalias !262 %75 = bitcast <8 x i64> %73 to <8 x double> %76 = shufflevector <8 x double> %75, <8 x double> poison, <8 x i32> %77 = fsub <8 x double> %69, %76 store <8 x double> %77, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !253, !noalias !262 %78 = fsub <8 x double> %68, %70 store <8 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !253, !noalias !262 %79 = fadd <8 x double> %69, %76 store <8 x double> %79, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !253, !noalias !262 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 6 %_3.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 10 %_3.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 14 %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !256, !noalias !261 %_84.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !256, !noalias !261 %80 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %39, %80 %_4.i167.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> %81, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !256, !noalias !261 %82 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %41, %82 %_4.i166.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> %83, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i.2, align 8, !alias.scope !256, !noalias !261 %84 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %43, %84 %_4.i.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> %85, i32 noundef 4) #23 %86 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i166.2 %87 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i166.2 %88 = fadd <8 x double> %_4.i167.2, %_4.i.2 %89 = fsub <8 x double> %_4.i167.2, %_4.i.2 %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = fadd <8 x double> %86, %88 store <8 x double> %92, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !253, !noalias !262 %93 = bitcast <8 x i64> %91 to <8 x double> %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = fsub <8 x double> %87, %94 store <8 x double> %95, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !253, !noalias !262 %96 = fsub <8 x double> %86, %88 store <8 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !253, !noalias !262 %97 = fadd <8 x double> %87, %94 store <8 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !253, !noalias !262 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 7 %_3.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 11 %_3.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 15 %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !256, !noalias !261 %_84.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !256, !noalias !261 %98 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %99 = fmul <8 x double> %39, %98 %_4.i167.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> %99, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !256, !noalias !261 %100 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %101 = fmul <8 x double> %41, %100 %_4.i166.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> %101, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i.3, align 8, !alias.scope !256, !noalias !261 %102 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %103 = fmul <8 x double> %43, %102 %_4.i.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> %103, i32 noundef 4) #23 %104 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i166.3 %105 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i166.3 %106 = fadd <8 x double> %_4.i167.3, %_4.i.3 %107 = fsub <8 x double> %_4.i167.3, %_4.i.3 %108 = bitcast <8 x double> %107 to <8 x i64> %109 = xor <8 x i64> %108, %110 = fadd <8 x double> %104, %106 store <8 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !253, !noalias !262 %111 = bitcast <8 x i64> %109 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fsub <8 x double> %105, %112 store <8 x double> %113, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !253, !noalias !262 %114 = fsub <8 x double> %104, %106 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !253, !noalias !262 %115 = fadd <8 x double> %105, %112 store <8 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !253, !noalias !262 %116 = add nuw nsw i64 %iter.sroa.60.0645.us.i, 1 %exitcond504.not = icmp eq i64 %116, 4 br i1 %exitcond504.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, label %bb22.us.i _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !263) tail call void @llvm.experimental.noalias.scope.decl(metadata !266) tail call void @llvm.experimental.noalias.scope.decl(metadata !268) br label %bb22.us.i106 bb22.us.i106: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, %bb22.us.i106 %iter.sroa.60.0645.us.i107 = phi i64 [ %153, %bb22.us.i106 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i108 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i107 %start1.i.i.i.i.us.i109 = shl i64 %iter.sroa.60.0645.us.i107, 2 %data.i.i.i.i.i.i.us.i110 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i109 %data.i.i.i.i.i.i.i.i.us.i111 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.60.0645.us.i107 %data.i.i.i.i.i.i.i.i.i.i.us.i112 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.60.0645.us.i107 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i113 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.60.0645.us.i107 %117 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 1 %w1.0614.us.i114 = load <2 x float>, ptr %117, align 8, !alias.scope !268, !noalias !270, !noundef !3 %118 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 1, i32 1 %w1.1615.us.i115 = load <2 x float>, ptr %118, align 8, !alias.scope !268, !noalias !270, !noundef !3 %119 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 2 %w2.0616.us.i116 = load <2 x float>, ptr %119, align 8, !alias.scope !268, !noalias !270, !noundef !3 %120 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 2, i32 1 %w2.1617.us.i117 = load <2 x float>, ptr %120, align 8, !alias.scope !268, !noalias !270, !noundef !3 %121 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 3 %w3.0618.us.i118 = load <2 x float>, ptr %121, align 8, !alias.scope !268, !noalias !270, !noundef !3 %122 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 3, i32 1 %w3.1619.us.i119 = load <2 x float>, ptr %122, align 8, !alias.scope !268, !noalias !270, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i120 = shufflevector <2 x float> %w1.0614.us.i114, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i121 = shufflevector <2 x float> %w1.1615.us.i115, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i122 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i120, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i121, <4 x i32> %123 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i122 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i124 = shufflevector <2 x float> %w2.0616.us.i116, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i125 = shufflevector <2 x float> %w2.1617.us.i117, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i126 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i124, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i125, <4 x i32> %124 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i126 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i128 = shufflevector <2 x float> %w3.0618.us.i118, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i129 = shufflevector <2 x float> %w3.1619.us.i119, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i130 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i128, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i129, <4 x i32> %125 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i130 to <2 x double> %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i110, i64 2 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i110, i64 1 %128 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i110, i64 3 %129 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> zeroinitializer %130 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> %131 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> zeroinitializer %132 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> %133 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> zeroinitializer %134 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i142 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i110, align 8, !alias.scope !266, !noalias !271 %_84.sroa.0.0.copyload.us.i143 = load <8 x double>, ptr %127, align 8, !alias.scope !266, !noalias !271 %135 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i143, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %130, %135 %_4.i170 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %129, <8 x double> %_84.sroa.0.0.copyload.us.i143, <8 x double> %136, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i145 = load <8 x double>, ptr %126, align 8, !alias.scope !266, !noalias !271 %137 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i145, <8 x double> poison, <8 x i32> %138 = fmul <8 x double> %132, %137 %_4.i169 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %131, <8 x double> %_86.sroa.0.0.copyload.us.i145, <8 x double> %138, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i147 = load <8 x double>, ptr %128, align 8, !alias.scope !266, !noalias !271 %139 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i147, <8 x double> poison, <8 x i32> %140 = fmul <8 x double> %134, %139 %_4.i168 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %133, <8 x double> %_88.sroa.0.0.copyload.us.i147, <8 x double> %140, i32 noundef 4) #23 %141 = fadd <8 x double> %a.sroa.0.0.copyload.us.i142, %_4.i169 %142 = fsub <8 x double> %a.sroa.0.0.copyload.us.i142, %_4.i169 %143 = fadd <8 x double> %_4.i170, %_4.i168 %144 = fsub <8 x double> %_4.i170, %_4.i168 %145 = bitcast <8 x double> %144 to <8 x i64> %146 = xor <8 x i64> %145, %147 = fadd <8 x double> %141, %143 store <8 x double> %147, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i108, align 8, !alias.scope !263, !noalias !272 %148 = bitcast <8 x i64> %146 to <8 x double> %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %150 = fsub <8 x double> %142, %149 store <8 x double> %150, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i113, align 8, !alias.scope !263, !noalias !272 %151 = fsub <8 x double> %141, %143 store <8 x double> %151, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i112, align 8, !alias.scope !263, !noalias !272 %152 = fadd <8 x double> %142, %149 store <8 x double> %152, ptr %data.i.i.i.i.i.i.i.i.us.i111, align 8, !alias.scope !263, !noalias !272 %153 = add nuw nsw i64 %iter.sroa.60.0645.us.i107, 1 %exitcond505.not = icmp eq i64 %153, 16 br i1 %exitcond505.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161, label %bb22.us.i106 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161: ; preds = %bb22.us.i106 tail call void @llvm.experimental.noalias.scope.decl(metadata !273) tail call void @llvm.experimental.noalias.scope.decl(metadata !276) tail call void @llvm.experimental.noalias.scope.decl(metadata !278) %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %156 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 br label %bb15.i164 bb15.i164: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161, %bb15.i164 %iter.sroa.50.0449.i = phi i64 [ %157, %bb15.i164 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161 ] %157 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %155, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %154, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %156, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !278, !noalias !280 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !278, !noalias !280 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !278, !noalias !280 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !276, !noalias !281 %158 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %158, align 8, !alias.scope !276, !noalias !281 %159 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %159, align 8, !alias.scope !276, !noalias !281 %160 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %160, align 8, !alias.scope !276, !noalias !281 %161 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %162 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %163 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %164 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %165 = shufflevector <8 x double> %161, <8 x double> %163, <8 x i32> %166 = shufflevector <8 x double> %161, <8 x double> %163, <8 x i32> %167 = shufflevector <8 x double> %162, <8 x double> %164, <8 x i32> %168 = shufflevector <8 x double> %162, <8 x double> %164, <8 x i32> %169 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %171, %169 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %167, <8 x double> %172, i32 noundef 4) #23 %173 = shufflevector <8 x double> %166, <8 x double> poison, <8 x i32> %174 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = fmul <8 x double> %175, %173 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %174, <8 x double> %166, <8 x double> %176, i32 noundef 4) #23 %177 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %178 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %179 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %180 = fmul <8 x double> %179, %177 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %178, <8 x double> %168, <8 x double> %180, i32 noundef 4) #23 %181 = fadd <8 x double> %165, %_4.i172 %182 = fsub <8 x double> %165, %_4.i172 %183 = fadd <8 x double> %_4.i173, %_4.i171 %184 = fsub <8 x double> %_4.i173, %_4.i171 %185 = bitcast <8 x double> %184 to <8 x i64> %186 = xor <8 x i64> %185, %187 = fadd <8 x double> %181, %183 store <8 x double> %187, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !273, !noalias !282 %188 = bitcast <8 x i64> %186 to <8 x double> %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = fsub <8 x double> %182, %189 store <8 x double> %190, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !273, !noalias !282 %191 = fsub <8 x double> %181, %183 store <8 x double> %191, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !273, !noalias !282 %192 = fadd <8 x double> %182, %189 store <8 x double> %192, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !273, !noalias !282 %exitcond.not.i165 = icmp eq i64 %157, 16 br i1 %exitcond.not.i165, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i164 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i164 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !246 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h0af9123df861e0abE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_13.i.i = alloca %"core::option::Option>", align 8 %_8.i.i = alloca i64, align 8 %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !283) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !283, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !283, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !283, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !283, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !283 store i64 8, ptr %n.i, align 8, !noalias !283 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !283 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !283 %_12.i = icmp eq i64 %buf.1.i, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !283 store ptr null, ptr %_16.i, align 8, !noalias !283 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !283 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !283 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !283 %_20.i = icmp eq i64 %scratch.1.i, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !283 store ptr null, ptr %_24.i, align 8, !noalias !283 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !283 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !283 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !283 %_28.i = icmp eq i64 %w_init.1.i, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !283 store ptr null, ptr %_32.i, align 8, !noalias !283 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !283 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !283 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !283 %_36.i = icmp eq i64 %w.1.i, 8 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4e0b1b224aedc237E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !283 store ptr null, ptr %_40.i, align 8, !noalias !283 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4e0b1b224aedc237E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !283 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i), !noalias !286 store i64 1, ptr %_8.i.i, align 8, !noalias !286 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i), !noalias !286 store ptr null, ptr %_13.i.i, align 8, !noalias !286 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3394413369392750f968ae9ebbb95188) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h0dc022c6544adc6aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !293) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !293, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !293, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !293, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !293, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !293 store i64 2, ptr %n.i, align 8, !noalias !293 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !293 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !293 %_12.i = icmp eq i64 %buf.1.i, 2 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !293 store ptr null, ptr %_16.i, align 8, !noalias !293 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !293 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !293 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !293 %_20.i = icmp eq i64 %scratch.1.i, 2 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !293 store ptr null, ptr %_24.i, align 8, !noalias !293 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !293 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !293 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !293 %_28.i = icmp eq i64 %w_init.1.i, 2 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !293 store ptr null, ptr %_32.i, align 8, !noalias !293 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !293 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !293 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !293 %_36.i = icmp eq i64 %w.1.i, 2 br i1 %_36.i, label %bb11.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !293 store ptr null, ptr %_40.i, align 8, !noalias !293 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb11.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !293 ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !293 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h171cc0afa6ca3f11E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !296) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !296, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !296, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !296, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !296, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !296, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !296, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !296, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !296 store i64 32, ptr %n.i, align 8, !noalias !296 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !296 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !296 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !296 store ptr null, ptr %_16.i, align 8, !noalias !296 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !296 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !296 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !296 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !296 store ptr null, ptr %_24.i, align 8, !noalias !296 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !296 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !296 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !296 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !296 store ptr null, ptr %_32.i, align 8, !noalias !296 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !296 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !296 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !296 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2c2edd8fcb513ea3E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !296 store ptr null, ptr %_40.i, align 8, !noalias !296 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2c2edd8fcb513ea3E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !296 tail call void @llvm.experimental.noalias.scope.decl(metadata !299) tail call void @llvm.experimental.noalias.scope.decl(metadata !302) tail call void @llvm.experimental.noalias.scope.decl(metadata !304) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !299, !noalias !306 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !299, !noalias !306 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !299, !noalias !306 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !299, !noalias !306 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !299, !noalias !306 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !299, !noalias !306 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !299, !noalias !306 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %12, align 8, !alias.scope !299, !noalias !306 %20 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %21 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %22 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %23 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %24 = bitcast <8 x double> %23 to <8 x i64> %25 = xor <8 x i64> %24, %26 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %27 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %28 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %29 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %30 = bitcast <8 x double> %29 to <8 x i64> %31 = xor <8 x i64> %30, %32 = fadd <8 x double> %20, %22 %33 = bitcast <8 x i64> %25 to <8 x double> %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = fsub <8 x double> %21, %34 %36 = fsub <8 x double> %20, %22 %37 = fadd <8 x double> %21, %34 %38 = fadd <8 x double> %26, %28 %39 = bitcast <8 x i64> %31 to <8 x double> %40 = shufflevector <8 x double> %39, <8 x double> poison, <8 x i32> %41 = fsub <8 x double> %27, %40 %42 = bitcast <8 x double> %41 to <8 x i64> %43 = xor <8 x i64> %42, %44 = bitcast <8 x i64> %43 to <8 x double> %45 = shufflevector <8 x double> %44, <8 x double> poison, <8 x i32> %46 = fadd <8 x double> %41, %45 %47 = fmul <8 x double> %46, %48 = fsub <8 x double> %26, %28 %49 = bitcast <8 x double> %48 to <8 x i64> %50 = xor <8 x i64> %49, %51 = fadd <8 x double> %27, %40 %52 = bitcast <8 x double> %51 to <8 x i64> %53 = xor <8 x i64> %52, %54 = bitcast <8 x i64> %53 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = fadd <8 x double> %51, %55 %57 = fmul <8 x double> %56, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %15, align 8, !alias.scope !304, !noalias !307 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %14, align 8, !alias.scope !304, !noalias !307 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %16, align 8, !alias.scope !304, !noalias !307 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %13, align 8, !alias.scope !304, !noalias !307 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %18, align 8, !alias.scope !304, !noalias !307 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %17, align 8, !alias.scope !304, !noalias !307 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %19, align 8, !alias.scope !304, !noalias !307 %58 = fadd <8 x double> %32, %38 %59 = fadd <8 x double> %35, %47 %60 = shufflevector <8 x double> %59, <8 x double> poison, <8 x i32> %61 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %62 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %63 = fmul <8 x double> %62, %60 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %61, <8 x double> %59, <8 x double> %63, i32 noundef 4) #23 %64 = bitcast <8 x i64> %50 to <8 x double> %65 = shufflevector <8 x double> %64, <8 x double> poison, <8 x i32> %66 = fsub <8 x double> %36, %65 %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %69 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %70 = fmul <8 x double> %69, %67 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %66, <8 x double> %70, i32 noundef 4) #23 %71 = fsub <8 x double> %37, %57 %72 = shufflevector <8 x double> %71, <8 x double> poison, <8 x i32> %73 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %74 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %74, %72 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %73, <8 x double> %71, <8 x double> %75, i32 noundef 4) #23 %76 = fsub <8 x double> %32, %38 %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = fmul <8 x double> %77, %79 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %76, <8 x double> %80, i32 noundef 4) #23 %81 = fsub <8 x double> %35, %47 %82 = shufflevector <8 x double> %81, <8 x double> poison, <8 x i32> %83 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %84, %82 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %81, <8 x double> %85, i32 noundef 4) #23 %86 = fadd <8 x double> %36, %65 %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %89 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = fmul <8 x double> %89, %87 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %88, <8 x double> %86, <8 x double> %90, i32 noundef 4) #23 %91 = fadd <8 x double> %37, %57 %92 = shufflevector <8 x double> %91, <8 x double> poison, <8 x i32> %93 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %94 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %95 = fmul <8 x double> %94, %92 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %91, <8 x double> %95, i32 noundef 4) #23 %96 = shufflevector <8 x double> %58, <8 x double> %_4.i96, <8 x i32> %97 = shufflevector <8 x double> %58, <8 x double> %_4.i96, <8 x i32> %98 = shufflevector <8 x double> %_4.i95, <8 x double> %_4.i94, <8 x i32> %99 = shufflevector <8 x double> %_4.i95, <8 x double> %_4.i94, <8 x i32> %100 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %101 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %102 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %103 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %104 = shufflevector <8 x double> %_4.i93, <8 x double> %_4.i92, <8 x i32> %105 = shufflevector <8 x double> %_4.i93, <8 x double> %_4.i92, <8 x i32> %106 = shufflevector <8 x double> %_4.i91, <8 x double> %_4.i, <8 x i32> %107 = shufflevector <8 x double> %_4.i91, <8 x double> %_4.i, <8 x i32> %108 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %109 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %110 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> %111 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> store <8 x double> %100, ptr %scratch.0.i, align 8, !alias.scope !302, !noalias !308 %112 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %108, ptr %112, align 8, !alias.scope !302, !noalias !308 %113 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %102, ptr %113, align 8, !alias.scope !302, !noalias !308 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %110, ptr %114, align 8, !alias.scope !302, !noalias !308 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 4 store <8 x double> %101, ptr %115, align 8, !alias.scope !302, !noalias !308 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 store <8 x double> %109, ptr %116, align 8, !alias.scope !302, !noalias !308 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 6 store <8 x double> %103, ptr %117, align 8, !alias.scope !302, !noalias !308 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 store <8 x double> %111, ptr %118, align 8, !alias.scope !302, !noalias !308 %119 = fadd <8 x double> %100, %101 %120 = fsub <8 x double> %100, %101 %121 = fadd <8 x double> %102, %103 %122 = fsub <8 x double> %102, %103 %123 = bitcast <8 x double> %122 to <8 x i64> %124 = xor <8 x i64> %123, %125 = fadd <8 x double> %119, %121 %126 = bitcast <8 x i64> %124 to <8 x double> %127 = shufflevector <8 x double> %126, <8 x double> poison, <8 x i32> %128 = fsub <8 x double> %120, %127 %129 = fsub <8 x double> %119, %121 %130 = fadd <8 x double> %120, %127 store <8 x double> %125, ptr %buf.0.i, align 8, !noalias !296 store <8 x double> %128, ptr %7, align 8, !noalias !296 store <8 x double> %129, ptr %6, align 8, !noalias !296 store <8 x double> %130, ptr %10, align 8, !noalias !296 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %112, align 8, !noalias !296 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !296 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !296 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !296 %131 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %132 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %133 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %134 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %135 = bitcast <8 x double> %134 to <8 x i64> %136 = xor <8 x i64> %135, %137 = fadd <8 x double> %131, %133 %138 = bitcast <8 x i64> %136 to <8 x double> %139 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %140 = fsub <8 x double> %132, %139 %141 = fsub <8 x double> %131, %133 %142 = fadd <8 x double> %132, %139 store <8 x double> %137, ptr %8, align 8, !noalias !296 store <8 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !296 store <8 x double> %141, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !296 store <8 x double> %142, ptr %_3.i.i.i.i.1, align 8, !noalias !296 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !296 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h19ca37024ad7664eE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !309) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !309, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !309, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !309, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !309, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %3, align 8, !alias.scope !309, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %4, align 8, !alias.scope !309, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !309 store i64 8, ptr %n.i, align 8, !noalias !309 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !309 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !309 %_12.i = icmp eq i64 %buf.1.i, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !309 store ptr null, ptr %_16.i, align 8, !noalias !309 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !309 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !309 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !309 %_20.i = icmp eq i64 %scratch.1.i, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !309 store ptr null, ptr %_24.i, align 8, !noalias !309 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !309 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !309 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !309 %_28.i = icmp eq i64 %w_init.1.i, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !309 store ptr null, ptr %_32.i, align 8, !noalias !309 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !309 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !309 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !309 %_36.i = icmp eq i64 %w.1.i, 8 br i1 %_36.i, label %bb18.i.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !309 store ptr null, ptr %_40.i, align 8, !noalias !309 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !309 %5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_51.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !309 %_52.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %5, align 8, !noalias !309 %7 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload %8 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload store <8 x double> %7, ptr %buf.0.i, align 8, !noalias !309 store <8 x double> %8, ptr %6, align 8, !noalias !309 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !309 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h1da3ddfd7de96da4E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !312) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !312, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !312, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !312, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !312, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !312, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !312, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !312, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !312 store i64 64, ptr %n.i, align 8, !noalias !312 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !312 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !312 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !312 store ptr null, ptr %_16.i, align 8, !noalias !312 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !312 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !312 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !312 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !312 store ptr null, ptr %_24.i, align 8, !noalias !312 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !312 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !312 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !312 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !312 store ptr null, ptr %_32.i, align 8, !noalias !312 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !312 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !312 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !312 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h232b49312da17a17E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !312 store ptr null, ptr %_40.i, align 8, !noalias !312 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h232b49312da17a17E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !312 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !315 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %10, align 8, !noalias !315 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !315 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %11, align 8, !noalias !315 %12 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %14 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = fadd <8 x double> %12, %14 %19 = bitcast <8 x i64> %17 to <8 x double> %20 = shufflevector <8 x double> %19, <8 x double> poison, <8 x i32> %21 = fsub <8 x double> %13, %20 %22 = fsub <8 x double> %12, %14 %23 = fadd <8 x double> %13, %20 store <8 x double> %18, ptr %scratch.0.i, align 8, !noalias !315 store <8 x double> %21, ptr %7, align 8, !noalias !315 store <8 x double> %22, ptr %6, align 8, !noalias !315 store <8 x double> %23, ptr %8, align 8, !noalias !315 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !315 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !315 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !315 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !315 %24 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %25 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %26 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %27 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %28 = bitcast <8 x double> %27 to <8 x i64> %29 = xor <8 x i64> %28, %30 = fadd <8 x double> %24, %26 %31 = bitcast <8 x i64> %29 to <8 x double> %32 = shufflevector <8 x double> %31, <8 x double> poison, <8 x i32> %33 = fsub <8 x double> %25, %32 %34 = fsub <8 x double> %24, %26 %35 = fadd <8 x double> %25, %32 store <8 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !315 store <8 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !315 store <8 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !315 store <8 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !315 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_73.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !315 %_74.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !315 %_75.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !315 %_76.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !315 %36 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %37 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %38 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %39 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %40 = bitcast <8 x double> %39 to <8 x i64> %41 = xor <8 x i64> %40, %42 = fadd <8 x double> %36, %38 %43 = bitcast <8 x i64> %41 to <8 x double> %44 = shufflevector <8 x double> %43, <8 x double> poison, <8 x i32> %45 = fsub <8 x double> %37, %44 %46 = fsub <8 x double> %36, %38 %47 = fadd <8 x double> %37, %44 store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !315 store <8 x double> %45, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !315 store <8 x double> %46, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !315 store <8 x double> %47, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !315 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_73.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !315 %_74.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !315 %_75.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !315 %_76.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !315 %48 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %49 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %50 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %51 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %52 = bitcast <8 x double> %51 to <8 x i64> %53 = xor <8 x i64> %52, %54 = fadd <8 x double> %48, %50 %55 = bitcast <8 x i64> %53 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = fsub <8 x double> %49, %56 %58 = fsub <8 x double> %48, %50 %59 = fadd <8 x double> %49, %56 store <8 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !315 store <8 x double> %57, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !315 store <8 x double> %58, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !315 store <8 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !315 tail call void @llvm.experimental.noalias.scope.decl(metadata !319) tail call void @llvm.experimental.noalias.scope.decl(metadata !322) tail call void @llvm.experimental.noalias.scope.decl(metadata !324) %60 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %64 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %65 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %66 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %67 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %68 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %76 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %77 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %78 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %79 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 9 %80 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 11 %81 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %82 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 13 %83 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 15 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %72, align 8, !alias.scope !324, !noalias !326 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %71, align 8, !alias.scope !324, !noalias !326 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %73, align 8, !alias.scope !324, !noalias !326 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %70, align 8, !alias.scope !324, !noalias !326 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %75, align 8, !alias.scope !324, !noalias !326 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %74, align 8, !alias.scope !324, !noalias !326 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %76, align 8, !alias.scope !324, !noalias !326 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %69, align 8, !alias.scope !324, !noalias !326 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %79, align 8, !alias.scope !324, !noalias !326 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %78, align 8, !alias.scope !324, !noalias !326 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %80, align 8, !alias.scope !324, !noalias !326 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %77, align 8, !alias.scope !324, !noalias !326 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %82, align 8, !alias.scope !324, !noalias !326 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %81, align 8, !alias.scope !324, !noalias !326 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %83, align 8, !alias.scope !324, !noalias !326 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %scratch.0.i, align 8, !alias.scope !322, !noalias !327 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !322, !noalias !327 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !322, !noalias !327 %84 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %84, align 8, !alias.scope !322, !noalias !327 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !322, !noalias !327 %85 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %85, align 8, !alias.scope !322, !noalias !327 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !322, !noalias !327 %86 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %86, align 8, !alias.scope !322, !noalias !327 %87 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %88 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %89 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %90 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %91 = shufflevector <8 x double> %87, <8 x double> %89, <8 x i32> %92 = shufflevector <8 x double> %87, <8 x double> %89, <8 x i32> %93 = shufflevector <8 x double> %88, <8 x double> %90, <8 x i32> %94 = shufflevector <8 x double> %88, <8 x double> %90, <8 x i32> %95 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %96 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %97 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %98 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %99 = shufflevector <8 x double> %95, <8 x double> %97, <8 x i32> %100 = shufflevector <8 x double> %95, <8 x double> %97, <8 x i32> %101 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %102 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %103 = shufflevector <8 x double> %42, <8 x double> %45, <8 x i32> %104 = shufflevector <8 x double> %42, <8 x double> %45, <8 x i32> %105 = shufflevector <8 x double> %46, <8 x double> %47, <8 x i32> %106 = shufflevector <8 x double> %46, <8 x double> %47, <8 x i32> %107 = shufflevector <8 x double> %103, <8 x double> %105, <8 x i32> %108 = shufflevector <8 x double> %103, <8 x double> %105, <8 x i32> %109 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %110 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %111 = shufflevector <8 x double> %54, <8 x double> %57, <8 x i32> %112 = shufflevector <8 x double> %54, <8 x double> %57, <8 x i32> %113 = shufflevector <8 x double> %58, <8 x double> %59, <8 x i32> %114 = shufflevector <8 x double> %58, <8 x double> %59, <8 x i32> %115 = shufflevector <8 x double> %111, <8 x double> %113, <8 x i32> %116 = shufflevector <8 x double> %111, <8 x double> %113, <8 x i32> %117 = shufflevector <8 x double> %112, <8 x double> %114, <8 x i32> %118 = shufflevector <8 x double> %112, <8 x double> %114, <8 x i32> %119 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %120 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %121 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %122 = fmul <8 x double> %121, %119 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %120, <8 x double> %93, <8 x double> %122, i32 noundef 4) #23 %123 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %124 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %125 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %126 = fmul <8 x double> %125, %123 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %124, <8 x double> %92, <8 x double> %126, i32 noundef 4) #23 %127 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %128 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %129 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %130 = fmul <8 x double> %129, %127 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %128, <8 x double> %94, <8 x double> %130, i32 noundef 4) #23 %131 = shufflevector <8 x double> %99, <8 x double> poison, <8 x i32> %132 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %133 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %134 = fmul <8 x double> %133, %131 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %132, <8 x double> %99, <8 x double> %134, i32 noundef 4) #23 %135 = shufflevector <8 x double> %101, <8 x double> poison, <8 x i32> %136 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %137 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %138 = fmul <8 x double> %137, %135 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %136, <8 x double> %101, <8 x double> %138, i32 noundef 4) #23 %139 = shufflevector <8 x double> %100, <8 x double> poison, <8 x i32> %140 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %141 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %141, %139 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %140, <8 x double> %100, <8 x double> %142, i32 noundef 4) #23 %143 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %144 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %145 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %146 = fmul <8 x double> %145, %143 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %144, <8 x double> %102, <8 x double> %146, i32 noundef 4) #23 %147 = shufflevector <8 x double> %107, <8 x double> poison, <8 x i32> %148 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %150 = fmul <8 x double> %149, %147 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %148, <8 x double> %107, <8 x double> %150, i32 noundef 4) #23 %151 = shufflevector <8 x double> %109, <8 x double> poison, <8 x i32> %152 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %153 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %153, %151 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %152, <8 x double> %109, <8 x double> %154, i32 noundef 4) #23 %155 = shufflevector <8 x double> %108, <8 x double> poison, <8 x i32> %156 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = fmul <8 x double> %157, %155 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %108, <8 x double> %158, i32 noundef 4) #23 %159 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %161, %159 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %110, <8 x double> %162, i32 noundef 4) #23 %163 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %115, <8 x double> %166, i32 noundef 4) #23 %167 = shufflevector <8 x double> %117, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = fmul <8 x double> %169, %167 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %117, <8 x double> %170, i32 noundef 4) #23 %171 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %172 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %173 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %174 = fmul <8 x double> %173, %171 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %116, <8 x double> %174, i32 noundef 4) #23 %175 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %177, %175 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %118, <8 x double> %178, i32 noundef 4) #23 %179 = fadd <8 x double> %91, %_4.i104 %180 = fsub <8 x double> %91, %_4.i104 %181 = fadd <8 x double> %_4.i108, %_4.i100 %182 = fsub <8 x double> %_4.i108, %_4.i100 %183 = fadd <8 x double> %_4.i110, %_4.i102 %184 = fsub <8 x double> %_4.i110, %_4.i102 %185 = fadd <8 x double> %_4.i106, %_4.i98 %186 = fsub <8 x double> %_4.i106, %_4.i98 %187 = fadd <8 x double> %_4.i111, %_4.i103 %188 = fsub <8 x double> %_4.i111, %_4.i103 %189 = fadd <8 x double> %_4.i107, %_4.i99 %190 = fsub <8 x double> %_4.i107, %_4.i99 %191 = fadd <8 x double> %_4.i109, %_4.i101 %192 = fsub <8 x double> %_4.i109, %_4.i101 %193 = fadd <8 x double> %_4.i105, %_4.i97 %194 = fsub <8 x double> %_4.i105, %_4.i97 %195 = bitcast <8 x double> %182 to <8 x i64> %196 = xor <8 x i64> %195, %197 = bitcast <8 x double> %186 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x double> %190 to <8 x i64> %200 = xor <8 x i64> %199, %201 = bitcast <8 x double> %194 to <8 x i64> %202 = xor <8 x i64> %201, %203 = fadd <8 x double> %179, %181 %204 = bitcast <8 x i64> %196 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fsub <8 x double> %180, %205 %207 = fsub <8 x double> %179, %181 %208 = fadd <8 x double> %180, %205 %209 = fadd <8 x double> %183, %185 %210 = bitcast <8 x i64> %198 to <8 x double> %211 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %212 = fsub <8 x double> %184, %211 %213 = fsub <8 x double> %183, %185 %214 = fadd <8 x double> %184, %211 %215 = fadd <8 x double> %187, %189 %216 = bitcast <8 x i64> %200 to <8 x double> %217 = shufflevector <8 x double> %216, <8 x double> poison, <8 x i32> %218 = fsub <8 x double> %188, %217 %219 = fsub <8 x double> %187, %189 %220 = fadd <8 x double> %188, %217 %221 = fadd <8 x double> %191, %193 %222 = bitcast <8 x i64> %202 to <8 x double> %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = fsub <8 x double> %192, %223 %225 = fsub <8 x double> %191, %193 %226 = fadd <8 x double> %192, %223 %227 = bitcast <8 x double> %212 to <8 x i64> %228 = xor <8 x i64> %227, %229 = bitcast <8 x i64> %228 to <8 x double> %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fadd <8 x double> %212, %230 %232 = fmul <8 x double> %231, %233 = bitcast <8 x double> %213 to <8 x i64> %234 = xor <8 x i64> %233, %235 = bitcast <8 x double> %214 to <8 x i64> %236 = xor <8 x i64> %235, %237 = bitcast <8 x i64> %236 to <8 x double> %238 = shufflevector <8 x double> %237, <8 x double> poison, <8 x i32> %239 = fadd <8 x double> %214, %238 %240 = fmul <8 x double> %239, %241 = fadd <8 x double> %203, %209 %242 = fadd <8 x double> %206, %232 %243 = bitcast <8 x i64> %234 to <8 x double> %244 = shufflevector <8 x double> %243, <8 x double> poison, <8 x i32> %245 = fsub <8 x double> %207, %244 %246 = fsub <8 x double> %208, %240 %247 = fsub <8 x double> %203, %209 %248 = fsub <8 x double> %206, %232 %249 = fadd <8 x double> %207, %244 %250 = fadd <8 x double> %208, %240 %251 = bitcast <8 x double> %224 to <8 x i64> %252 = xor <8 x i64> %251, %253 = bitcast <8 x i64> %252 to <8 x double> %254 = shufflevector <8 x double> %253, <8 x double> poison, <8 x i32> %255 = fadd <8 x double> %224, %254 %256 = fmul <8 x double> %255, %257 = bitcast <8 x double> %225 to <8 x i64> %258 = xor <8 x i64> %257, %259 = bitcast <8 x double> %226 to <8 x i64> %260 = xor <8 x i64> %259, %261 = bitcast <8 x i64> %260 to <8 x double> %262 = shufflevector <8 x double> %261, <8 x double> poison, <8 x i32> %263 = fadd <8 x double> %226, %262 %264 = fmul <8 x double> %263, %265 = fadd <8 x double> %215, %221 %266 = fadd <8 x double> %218, %256 %267 = bitcast <8 x i64> %258 to <8 x double> %268 = shufflevector <8 x double> %267, <8 x double> poison, <8 x i32> %269 = fsub <8 x double> %219, %268 %270 = fsub <8 x double> %220, %264 %271 = fsub <8 x double> %215, %221 %272 = fsub <8 x double> %218, %256 %273 = fadd <8 x double> %219, %268 %274 = fadd <8 x double> %220, %264 %275 = fadd <8 x double> %241, %265 store <8 x double> %275, ptr %buf.0.i, align 8, !alias.scope !319, !noalias !328 %276 = fsub <8 x double> %241, %265 store <8 x double> %276, ptr %9, align 8, !alias.scope !319, !noalias !328 %277 = fmul <8 x double> %266, %278 = shufflevector <8 x double> %277, <8 x double> poison, <8 x i32> %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %266, <8 x double> %278, i32 noundef 4) #23 %279 = fadd <8 x double> %_4.i96, %242 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !319, !noalias !328 %280 = fsub <8 x double> %242, %_4.i96 store <8 x double> %280, ptr %64, align 8, !alias.scope !319, !noalias !328 %281 = bitcast <8 x double> %269 to <8 x i64> %282 = xor <8 x i64> %281, %283 = bitcast <8 x i64> %282 to <8 x double> %284 = shufflevector <8 x double> %283, <8 x double> poison, <8 x i32> %285 = fadd <8 x double> %269, %284 %286 = fmul <8 x double> %285, %287 = fadd <8 x double> %245, %286 store <8 x double> %287, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !alias.scope !319, !noalias !328 %288 = fsub <8 x double> %245, %286 store <8 x double> %288, ptr %63, align 8, !alias.scope !319, !noalias !328 %289 = fmul <8 x double> %270, %290 = shufflevector <8 x double> %289, <8 x double> poison, <8 x i32> %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %270, <8 x double> %290, i32 noundef 4) #23 %291 = fadd <8 x double> %_4.i95, %246 store <8 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !alias.scope !319, !noalias !328 %292 = fsub <8 x double> %246, %_4.i95 store <8 x double> %292, ptr %65, align 8, !alias.scope !319, !noalias !328 %293 = bitcast <8 x double> %271 to <8 x i64> %294 = xor <8 x i64> %293, %295 = bitcast <8 x i64> %294 to <8 x double> %296 = shufflevector <8 x double> %295, <8 x double> poison, <8 x i32> %297 = fsub <8 x double> %247, %296 store <8 x double> %297, ptr %10, align 8, !alias.scope !319, !noalias !328 %298 = fadd <8 x double> %247, %296 store <8 x double> %298, ptr %11, align 8, !alias.scope !319, !noalias !328 %299 = fmul <8 x double> %272, %300 = shufflevector <8 x double> %299, <8 x double> poison, <8 x i32> %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %272, <8 x double> %300, i32 noundef 4) #23 %301 = fsub <8 x double> %248, %_4.i94 store <8 x double> %301, ptr %61, align 8, !alias.scope !319, !noalias !328 %302 = fadd <8 x double> %248, %_4.i94 store <8 x double> %302, ptr %67, align 8, !alias.scope !319, !noalias !328 %303 = bitcast <8 x double> %273 to <8 x i64> %304 = xor <8 x i64> %303, %305 = bitcast <8 x i64> %304 to <8 x double> %306 = shufflevector <8 x double> %305, <8 x double> poison, <8 x i32> %307 = fadd <8 x double> %273, %306 %308 = fmul <8 x double> %307, %309 = fsub <8 x double> %249, %308 store <8 x double> %309, ptr %60, align 8, !alias.scope !319, !noalias !328 %310 = fadd <8 x double> %249, %308 store <8 x double> %310, ptr %66, align 8, !alias.scope !319, !noalias !328 %311 = fmul <8 x double> %274, %312 = shufflevector <8 x double> %311, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %274, <8 x double> %312, i32 noundef 4) #23 %313 = fsub <8 x double> %250, %_4.i store <8 x double> %313, ptr %62, align 8, !alias.scope !319, !noalias !328 %314 = fadd <8 x double> %250, %_4.i store <8 x double> %314, ptr %68, align 8, !alias.scope !319, !noalias !328 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !312 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h1da478b8dd7c283aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !329) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !329, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !329, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !329, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !329, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !329, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !329, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !329, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !329, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !329 store i64 32, ptr %n.i, align 8, !noalias !329 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !329 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !329 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !329 store ptr null, ptr %_16.i, align 8, !noalias !329 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !329 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !329 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !329 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !329 store ptr null, ptr %_24.i, align 8, !noalias !329 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !329 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !329 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !329 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !329 store ptr null, ptr %_32.i, align 8, !noalias !329 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !329 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !329 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !329 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4905e9c3f9abdf58E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !329 store ptr null, ptr %_40.i, align 8, !noalias !329 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4905e9c3f9abdf58E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !329 tail call void @llvm.experimental.noalias.scope.decl(metadata !332) tail call void @llvm.experimental.noalias.scope.decl(metadata !335) tail call void @llvm.experimental.noalias.scope.decl(metadata !337) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !337, !noalias !339 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !337, !noalias !339 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %12, align 8, !alias.scope !337, !noalias !339 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !332, !noalias !340 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !332, !noalias !340 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !332, !noalias !340 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !332, !noalias !340 %13 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %14 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %16 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = bitcast <8 x double> %16 to <8 x i64> %18 = xor <8 x i64> %17, %19 = fadd <8 x double> %13, %15 %20 = bitcast <8 x i64> %18 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fsub <8 x double> %14, %21 %23 = shufflevector <8 x double> %22, <8 x double> poison, <8 x i32> %24 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = fmul <8 x double> %25, %23 %_4.i27 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %24, <8 x double> %22, <8 x double> %26, i32 noundef 4) #23 %27 = fsub <8 x double> %13, %15 %28 = shufflevector <8 x double> %27, <8 x double> poison, <8 x i32> %29 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = fmul <8 x double> %30, %28 %_4.i26 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %29, <8 x double> %27, <8 x double> %31, i32 noundef 4) #23 %32 = fadd <8 x double> %14, %21 %33 = shufflevector <8 x double> %32, <8 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = fmul <8 x double> %35, %33 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %34, <8 x double> %32, <8 x double> %36, i32 noundef 4) #23 %37 = shufflevector <8 x double> %19, <8 x double> %_4.i27, <8 x i32> %38 = shufflevector <8 x double> %19, <8 x double> %_4.i27, <8 x i32> %39 = shufflevector <8 x double> %_4.i26, <8 x double> %_4.i, <8 x i32> %40 = shufflevector <8 x double> %_4.i26, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> %42 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> store <8 x double> %41, ptr %scratch.0.i, align 8, !alias.scope !335, !noalias !341 %45 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %43, ptr %45, align 8, !alias.scope !335, !noalias !341 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %42, ptr %46, align 8, !alias.scope !335, !noalias !341 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %44, ptr %47, align 8, !alias.scope !335, !noalias !341 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %w1.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !337, !noalias !339 %w2.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !337, !noalias !339 %w3.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.1, align 8, !alias.scope !337, !noalias !339 %a.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !332, !noalias !340 %b.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !332, !noalias !340 %c.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !332, !noalias !340 %d.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !332, !noalias !340 %48 = fadd <8 x double> %a.sroa.0.0.copyload.i.1, %c.sroa.0.0.copyload.i.1 %49 = fsub <8 x double> %a.sroa.0.0.copyload.i.1, %c.sroa.0.0.copyload.i.1 %50 = fadd <8 x double> %b.sroa.0.0.copyload.i.1, %d.sroa.0.0.copyload.i.1 %51 = fsub <8 x double> %b.sroa.0.0.copyload.i.1, %d.sroa.0.0.copyload.i.1 %52 = bitcast <8 x double> %51 to <8 x i64> %53 = xor <8 x i64> %52, %54 = fadd <8 x double> %48, %50 %55 = bitcast <8 x i64> %53 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = fsub <8 x double> %49, %56 %58 = shufflevector <8 x double> %57, <8 x double> poison, <8 x i32> %59 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %60 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %61 = fmul <8 x double> %60, %58 %_4.i27.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %59, <8 x double> %57, <8 x double> %61, i32 noundef 4) #23 %62 = fsub <8 x double> %48, %50 %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %66 = fmul <8 x double> %65, %63 %_4.i26.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %62, <8 x double> %66, i32 noundef 4) #23 %67 = fadd <8 x double> %49, %56 %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %71 = fmul <8 x double> %70, %68 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %69, <8 x double> %67, <8 x double> %71, i32 noundef 4) #23 %72 = shufflevector <8 x double> %54, <8 x double> %_4.i27.1, <8 x i32> %73 = shufflevector <8 x double> %54, <8 x double> %_4.i27.1, <8 x i32> %74 = shufflevector <8 x double> %_4.i26.1, <8 x double> %_4.i.1, <8 x i32> %75 = shufflevector <8 x double> %_4.i26.1, <8 x double> %_4.i.1, <8 x i32> %76 = shufflevector <8 x double> %72, <8 x double> %74, <8 x i32> %77 = shufflevector <8 x double> %72, <8 x double> %74, <8 x i32> %78 = shufflevector <8 x double> %73, <8 x double> %75, <8 x i32> %79 = shufflevector <8 x double> %73, <8 x double> %75, <8 x i32> store <8 x double> %76, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !335, !noalias !341 %80 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 1 store <8 x double> %78, ptr %80, align 8, !alias.scope !335, !noalias !341 %81 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 2 store <8 x double> %77, ptr %81, align 8, !alias.scope !335, !noalias !341 %82 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 3 store <8 x double> %79, ptr %82, align 8, !alias.scope !335, !noalias !341 tail call void @llvm.experimental.noalias.scope.decl(metadata !342) tail call void @llvm.experimental.noalias.scope.decl(metadata !345) tail call void @llvm.experimental.noalias.scope.decl(metadata !347) %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0617.us.i = load <2 x float>, ptr %83, align 8, !alias.scope !347, !noalias !349, !noundef !3 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %84, align 8, !alias.scope !347, !noalias !349, !noundef !3 %85 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0619.us.i = load <2 x float>, ptr %85, align 8, !alias.scope !347, !noalias !349, !noundef !3 %86 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %86, align 8, !alias.scope !347, !noalias !349, !noundef !3 %87 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0621.us.i = load <2 x float>, ptr %87, align 8, !alias.scope !347, !noalias !349, !noundef !3 %88 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %88, align 8, !alias.scope !347, !noalias !349, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %89 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %90 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %91 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %92 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %93 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> zeroinitializer %94 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> %95 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> zeroinitializer %96 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> %97 = shufflevector <2 x double> %91, <2 x double> poison, <8 x i32> zeroinitializer %98 = shufflevector <2 x double> %91, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %scratch.0.i, align 8, !alias.scope !342, !noalias !350 %99 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %76 %100 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %76 %101 = fadd <8 x double> %42, %77 %102 = fsub <8 x double> %42, %77 %103 = bitcast <8 x double> %102 to <8 x i64> %104 = xor <8 x i64> %103, %105 = fadd <8 x double> %99, %101 store <8 x double> %105, ptr %buf.0.i, align 8, !alias.scope !345, !noalias !351 %106 = bitcast <8 x i64> %104 to <8 x double> %107 = shufflevector <8 x double> %106, <8 x double> poison, <8 x i32> %108 = fsub <8 x double> %100, %107 %109 = shufflevector <8 x double> %108, <8 x double> poison, <8 x i32> %110 = fmul <8 x double> %94, %109 %_4.i30 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %108, <8 x double> %110, i32 noundef 4) #23 store <8 x double> %_4.i30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !345, !noalias !351 %111 = fsub <8 x double> %99, %101 %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fmul <8 x double> %96, %112 %_4.i29 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %111, <8 x double> %113, i32 noundef 4) #23 store <8 x double> %_4.i29, ptr %8, align 8, !alias.scope !345, !noalias !351 %114 = fadd <8 x double> %100, %107 %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fmul <8 x double> %98, %115 %_4.i28 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %97, <8 x double> %114, <8 x double> %116, i32 noundef 4) #23 store <8 x double> %_4.i28, ptr %92, align 8, !alias.scope !345, !noalias !351 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 1 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 3 %117 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0617.us.i.1 = load <2 x float>, ptr %117, align 8, !alias.scope !347, !noalias !349, !noundef !3 %118 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1618.us.i.1 = load <2 x float>, ptr %118, align 8, !alias.scope !347, !noalias !349, !noundef !3 %119 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0619.us.i.1 = load <2 x float>, ptr %119, align 8, !alias.scope !347, !noalias !349, !noundef !3 %120 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1620.us.i.1 = load <2 x float>, ptr %120, align 8, !alias.scope !347, !noalias !349, !noundef !3 %121 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0621.us.i.1 = load <2 x float>, ptr %121, align 8, !alias.scope !347, !noalias !349, !noundef !3 %122 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1622.us.i.1 = load <2 x float>, ptr %122, align 8, !alias.scope !347, !noalias !349, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0617.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1618.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %123 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0619.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1620.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %124 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0621.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1622.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %125 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %128 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> zeroinitializer %129 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> %130 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> zeroinitializer %131 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> %132 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> zeroinitializer %133 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %45, align 8, !alias.scope !342, !noalias !350 %b.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !342, !noalias !350 %c.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !342, !noalias !350 %d.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !342, !noalias !350 %134 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %135 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %136 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %137 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %138 = bitcast <8 x double> %137 to <8 x i64> %139 = xor <8 x i64> %138, %140 = fadd <8 x double> %134, %136 %141 = bitcast <8 x i64> %139 to <8 x double> %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %143 = fsub <8 x double> %135, %142 %144 = shufflevector <8 x double> %143, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %129, %144 %_4.i30.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %128, <8 x double> %143, <8 x double> %145, i32 noundef 4) #23 %146 = fsub <8 x double> %134, %136 %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %148 = fmul <8 x double> %131, %147 %_4.i29.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %130, <8 x double> %146, <8 x double> %148, i32 noundef 4) #23 %149 = fadd <8 x double> %135, %142 %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %133, %150 %_4.i28.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %132, <8 x double> %149, <8 x double> %151, i32 noundef 4) #23 %152 = fadd <8 x double> %105, %140 %153 = fsub <8 x double> %105, %140 store <8 x double> %152, ptr %buf.0.i, align 8, !noalias !329 store <8 x double> %153, ptr %7, align 8, !noalias !329 %154 = fadd <8 x double> %_4.i30, %_4.i30.1 %155 = fsub <8 x double> %_4.i30, %_4.i30.1 store <8 x double> %154, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !329 store <8 x double> %155, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !329 %156 = fadd <8 x double> %_4.i29, %_4.i29.1 %157 = fsub <8 x double> %_4.i29, %_4.i29.1 store <8 x double> %156, ptr %8, align 8, !noalias !329 store <8 x double> %157, ptr %126, align 8, !noalias !329 %158 = fadd <8 x double> %_4.i28, %_4.i28.1 %159 = fsub <8 x double> %_4.i28, %_4.i28.1 store <8 x double> %158, ptr %92, align 8, !noalias !329 store <8 x double> %159, ptr %127, align 8, !noalias !329 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !329 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h268e18d0b49f5df0E(ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !352) tail call void @llvm.experimental.noalias.scope.decl(metadata !355) %0 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f, i64 0, i32 1 %_2.0.i.i = load ptr, ptr %0, align 8, !alias.scope !358, !nonnull !3, !align !4, !noundef !3 %1 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f, i64 0, i32 1, i32 1 %_2.1.i.i = load i64, ptr %1, align 8, !alias.scope !358, !noundef !3 %2 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f, i64 0, i32 2 %_3.0.i.i = load ptr, ptr %2, align 8, !alias.scope !358, !nonnull !3, !align !4, !noundef !3 %3 = and i64 %_2.1.i.i, 3 %4 = icmp eq i64 %3, 0 br i1 %4, label %bb13.i.i.i, label %bb12.i.i.i bb13.i.i.i: ; preds = %start %5 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.840", ptr %f, i64 0, i32 2, i32 1 %_3.1.i.i = load i64, ptr %5, align 8, !alias.scope !358, !noundef !3 %6 = shl nsw i64 %_3.1.i.i, 4 %_13.i.i = urem i64 %6, 192 %new_len.i.i = udiv i64 %6, 192 %7 = icmp eq i64 %_13.i.i, 0 br i1 %7, label %bb16.i.i.i, label %bb15.i.i.i bb12.i.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !359 unreachable bb16.i.i.i: ; preds = %bb13.i.i.i %8 = lshr exact i64 %_2.1.i.i, 2 %new_len2.i.i = and i64 %8, 288230376151711743 %mid5.i.i.i.i = lshr i64 %new_len2.i.i, 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid5.i.i.i.i %10 = sub nsw i64 %new_len2.i.i, %mid5.i.i.i.i %mid36.i.i.i.i = lshr i64 %new_len2.i.i, 2 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid36.i.i.i.i %12 = sub nsw i64 %mid5.i.i.i.i, %mid36.i.i.i.i %mid47.i.i.i.i = lshr i64 %10, 1 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %mid47.i.i.i.i %14 = sub i64 %10, %mid47.i.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i.i.i.i, i64 %12) %_0.0.sroa.speculated.i.i.i4.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i, i64 %14) %_0.0.sroa.speculated.i.i.i23.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i, i64 %new_len.i.i) %_2.i.i.i148.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i, 0 br i1 %_2.i.i.i148.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h691067e4c17ec3d4E.exit, label %bb8.i.i.i bb15.i.i.i: ; preds = %bb13.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !358 unreachable bb8.i.i.i: ; preds = %bb16.i.i.i, %bb8.i.i.i %iter.i.i.sroa.29.0149.i = phi i64 [ %15, %bb8.i.i.i ], [ 0, %bb16.i.i.i ] %15 = add nuw nsw i64 %iter.i.i.sroa.29.0149.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.29.0149.i %_3.i2.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.sroa.29.0149.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.sroa.29.0149.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.sroa.29.0149.i %_3.i.i.i.i.i = getelementptr inbounds [3 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.29.0149.i %w1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !358 %16 = getelementptr inbounds [3 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.29.0149.i, i64 1 %w2.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %16, align 8, !noalias !358 %17 = getelementptr inbounds [3 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.29.0149.i, i64 2 %w3.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %17, align 8, !noalias !358 %_33.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !358 %_34.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !358 %_35.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !358 %_36.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !358 %18 = shufflevector <8 x double> %_34.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %19 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %20 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %21 = fmul <8 x double> %20, %18 %_4.i2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %19, <8 x double> %_34.i.i.sroa.0.0.copyload.i, <8 x double> %21, i32 noundef 4) #23 %22 = shufflevector <8 x double> %_35.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %23 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %24 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %25 = fmul <8 x double> %24, %22 %_4.i1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %23, <8 x double> %_35.i.i.sroa.0.0.copyload.i, <8 x double> %25, i32 noundef 4) #23 %26 = shufflevector <8 x double> %_36.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %28 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %29 = fmul <8 x double> %28, %26 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %27, <8 x double> %_36.i.i.sroa.0.0.copyload.i, <8 x double> %29, i32 noundef 4) #23 %30 = fadd <8 x double> %_33.i.i.sroa.0.0.copyload.i, %_4.i1 %31 = fsub <8 x double> %_33.i.i.sroa.0.0.copyload.i, %_4.i1 %32 = fadd <8 x double> %_4.i2, %_4.i %33 = fsub <8 x double> %_4.i2, %_4.i %34 = bitcast <8 x double> %33 to <8 x i64> %35 = xor <8 x i64> %34, %36 = bitcast <8 x i64> %35 to <8 x double> %37 = shufflevector <8 x double> %36, <8 x double> poison, <8 x i32> %38 = fadd <8 x double> %30, %32 %39 = fsub <8 x double> %31, %37 %40 = fsub <8 x double> %30, %32 %41 = fadd <8 x double> %31, %37 store <8 x double> %38, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !358 store <8 x double> %39, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !358 store <8 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !358 store <8 x double> %41, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !358 %exitcond.not.i = icmp eq i64 %15, %_0.0.sroa.speculated.i.i.i23.i br i1 %exitcond.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h691067e4c17ec3d4E.exit, label %bb8.i.i.i _ZN4core3ops8function6FnOnce9call_once17h691067e4c17ec3d4E.exit: ; preds = %bb8.i.i.i, %bb16.i.i.i ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2811060cd35577f6E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !362) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !362, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !362, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !362, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !362, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !362, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !362, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !362, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !362, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !362 store i64 1024, ptr %n.i, align 8, !noalias !362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !362 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !362 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !362 store ptr null, ptr %_16.i, align 8, !noalias !362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !362 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !362 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !362 store ptr null, ptr %_24.i, align 8, !noalias !362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !362 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !362 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !362 store ptr null, ptr %_32.i, align 8, !noalias !362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !362 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !362 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54e21c6295472606E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !362 store ptr null, ptr %_40.i, align 8, !noalias !362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54e21c6295472606E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !362 tail call void @llvm.experimental.noalias.scope.decl(metadata !365) tail call void @llvm.experimental.noalias.scope.decl(metadata !368) tail call void @llvm.experimental.noalias.scope.decl(metadata !370) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 144 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 176 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 208 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 240 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 144 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 176 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 208 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 240 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54e21c6295472606E.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %37, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54e21c6295472606E.exit" ] %37 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !365, !noalias !372 %38 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %40 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %42 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %44 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %46 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %48 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %50 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %52 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %54 = bitcast <8 x double> %41 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x double> %45 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x double> %49 to <8 x i64> %59 = xor <8 x i64> %58, %60 = bitcast <8 x double> %53 to <8 x i64> %61 = xor <8 x i64> %60, %62 = fadd <8 x double> %38, %40 %63 = bitcast <8 x i64> %55 to <8 x double> %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = fsub <8 x double> %39, %64 %66 = fsub <8 x double> %38, %40 %67 = fadd <8 x double> %39, %64 %68 = fadd <8 x double> %42, %44 %69 = bitcast <8 x i64> %57 to <8 x double> %70 = shufflevector <8 x double> %69, <8 x double> poison, <8 x i32> %71 = fsub <8 x double> %43, %70 %72 = fsub <8 x double> %42, %44 %73 = fadd <8 x double> %43, %70 %74 = fadd <8 x double> %46, %48 %75 = bitcast <8 x i64> %59 to <8 x double> %76 = shufflevector <8 x double> %75, <8 x double> poison, <8 x i32> %77 = fsub <8 x double> %47, %76 %78 = fsub <8 x double> %46, %48 %79 = fadd <8 x double> %47, %76 %80 = fadd <8 x double> %50, %52 %81 = bitcast <8 x i64> %61 to <8 x double> %82 = shufflevector <8 x double> %81, <8 x double> poison, <8 x i32> %83 = fsub <8 x double> %51, %82 %84 = fsub <8 x double> %50, %52 %85 = fadd <8 x double> %51, %82 %86 = bitcast <8 x double> %71 to <8 x i64> %87 = xor <8 x i64> %86, %88 = bitcast <8 x i64> %87 to <8 x double> %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = fadd <8 x double> %71, %89 %91 = fmul <8 x double> %90, %92 = bitcast <8 x double> %72 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x double> %73 to <8 x i64> %95 = xor <8 x i64> %94, %96 = bitcast <8 x i64> %95 to <8 x double> %97 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %98 = fadd <8 x double> %73, %97 %99 = fmul <8 x double> %98, %100 = fadd <8 x double> %62, %68 %101 = fadd <8 x double> %65, %91 %102 = bitcast <8 x i64> %93 to <8 x double> %103 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %104 = fsub <8 x double> %66, %103 %105 = fsub <8 x double> %67, %99 %106 = fsub <8 x double> %62, %68 %107 = fsub <8 x double> %65, %91 %108 = fadd <8 x double> %66, %103 %109 = fadd <8 x double> %67, %99 %110 = bitcast <8 x double> %83 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fadd <8 x double> %83, %113 %115 = fmul <8 x double> %114, %116 = bitcast <8 x double> %84 to <8 x i64> %117 = xor <8 x i64> %116, %118 = bitcast <8 x double> %85 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fadd <8 x double> %85, %121 %123 = fmul <8 x double> %122, %124 = fadd <8 x double> %74, %80 %125 = fadd <8 x double> %77, %115 %126 = bitcast <8 x i64> %117 to <8 x double> %127 = shufflevector <8 x double> %126, <8 x double> poison, <8 x i32> %128 = fsub <8 x double> %78, %127 %129 = fsub <8 x double> %79, %123 %130 = fsub <8 x double> %74, %80 %131 = fsub <8 x double> %77, %115 %132 = fadd <8 x double> %78, %127 %133 = fadd <8 x double> %79, %123 %134 = fmul <8 x double> %125, %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %_4.i116 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %125, <8 x double> %135, i32 noundef 4) #23 %136 = bitcast <8 x double> %128 to <8 x i64> %137 = xor <8 x i64> %136, %138 = bitcast <8 x i64> %137 to <8 x double> %139 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %140 = fadd <8 x double> %128, %139 %141 = fmul <8 x double> %140, %142 = fmul <8 x double> %129, %143 = shufflevector <8 x double> %142, <8 x double> poison, <8 x i32> %_4.i115 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %129, <8 x double> %143, i32 noundef 4) #23 %144 = bitcast <8 x double> %130 to <8 x i64> %145 = xor <8 x i64> %144, %146 = fmul <8 x double> %131, %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %_4.i114 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %131, <8 x double> %147, i32 noundef 4) #23 %148 = bitcast <8 x double> %132 to <8 x i64> %149 = xor <8 x i64> %148, %150 = bitcast <8 x i64> %149 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fadd <8 x double> %132, %151 %153 = fmul <8 x double> %152, %154 = fmul <8 x double> %133, %155 = shufflevector <8 x double> %154, <8 x double> poison, <8 x i32> %_4.i113 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %133, <8 x double> %155, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !370, !noalias !373 %156 = fadd <8 x double> %100, %124 %157 = fadd <8 x double> %_4.i116, %101 %158 = shufflevector <8 x double> %157, <8 x double> poison, <8 x i32> %159 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = fmul <8 x double> %160, %158 %_4.i112 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %159, <8 x double> %157, <8 x double> %161, i32 noundef 4) #23 %162 = fadd <8 x double> %104, %141 %163 = shufflevector <8 x double> %162, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %162, <8 x double> %166, i32 noundef 4) #23 %167 = fadd <8 x double> %_4.i115, %105 %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = fmul <8 x double> %170, %168 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %167, <8 x double> %171, i32 noundef 4) #23 %172 = bitcast <8 x i64> %145 to <8 x double> %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = fsub <8 x double> %106, %173 %175 = shufflevector <8 x double> %174, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %177, %175 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %174, <8 x double> %178, i32 noundef 4) #23 %179 = fsub <8 x double> %107, %_4.i114 %180 = shufflevector <8 x double> %179, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %182, %180 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %179, <8 x double> %183, i32 noundef 4) #23 %184 = fsub <8 x double> %108, %153 %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %187, %185 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %186, <8 x double> %184, <8 x double> %188, i32 noundef 4) #23 %189 = fsub <8 x double> %109, %_4.i113 %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %193 = fmul <8 x double> %192, %190 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %191, <8 x double> %189, <8 x double> %193, i32 noundef 4) #23 %194 = fsub <8 x double> %100, %124 %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %198 = fmul <8 x double> %195, %197 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %194, <8 x double> %198, i32 noundef 4) #23 %199 = fsub <8 x double> %101, %_4.i116 %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %203 = fmul <8 x double> %202, %200 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %201, <8 x double> %199, <8 x double> %203, i32 noundef 4) #23 %204 = fsub <8 x double> %104, %141 %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %208 = fmul <8 x double> %207, %205 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %206, <8 x double> %204, <8 x double> %208, i32 noundef 4) #23 %209 = fsub <8 x double> %105, %_4.i115 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %210, %212 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %211, <8 x double> %209, <8 x double> %213, i32 noundef 4) #23 %214 = fadd <8 x double> %106, %173 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %218 = fmul <8 x double> %215, %217 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %216, <8 x double> %214, <8 x double> %218, i32 noundef 4) #23 %219 = fadd <8 x double> %_4.i114, %107 %220 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %223 = fmul <8 x double> %220, %222 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %221, <8 x double> %219, <8 x double> %223, i32 noundef 4) #23 %224 = fadd <8 x double> %108, %153 %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %225, %227 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %226, <8 x double> %224, <8 x double> %228, i32 noundef 4) #23 %229 = fadd <8 x double> %_4.i113, %109 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %233 = fmul <8 x double> %230, %232 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %231, <8 x double> %229, <8 x double> %233, i32 noundef 4) #23 %234 = shufflevector <8 x double> %156, <8 x double> %_4.i112, <8 x i32> %235 = shufflevector <8 x double> %156, <8 x double> %_4.i112, <8 x i32> %236 = shufflevector <8 x double> %_4.i111, <8 x double> %_4.i110, <8 x i32> %237 = shufflevector <8 x double> %_4.i111, <8 x double> %_4.i110, <8 x i32> %238 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %241 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %242 = shufflevector <8 x double> %_4.i109, <8 x double> %_4.i108, <8 x i32> %243 = shufflevector <8 x double> %_4.i109, <8 x double> %_4.i108, <8 x i32> %244 = shufflevector <8 x double> %_4.i107, <8 x double> %_4.i106, <8 x i32> %245 = shufflevector <8 x double> %_4.i107, <8 x double> %_4.i106, <8 x i32> %246 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %249 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %250 = shufflevector <8 x double> %_4.i105, <8 x double> %_4.i104, <8 x i32> %251 = shufflevector <8 x double> %_4.i105, <8 x double> %_4.i104, <8 x i32> %252 = shufflevector <8 x double> %_4.i103, <8 x double> %_4.i102, <8 x i32> %253 = shufflevector <8 x double> %_4.i103, <8 x double> %_4.i102, <8 x i32> %254 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %257 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %258 = shufflevector <8 x double> %_4.i101, <8 x double> %_4.i100, <8 x i32> %259 = shufflevector <8 x double> %_4.i101, <8 x double> %_4.i100, <8 x i32> %260 = shufflevector <8 x double> %_4.i99, <8 x double> %_4.i, <8 x i32> %261 = shufflevector <8 x double> %_4.i99, <8 x double> %_4.i, <8 x i32> %262 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> %265 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> store <8 x double> %238, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !368, !noalias !374 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %246, ptr %266, align 8, !alias.scope !368, !noalias !374 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %254, ptr %267, align 8, !alias.scope !368, !noalias !374 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %262, ptr %268, align 8, !alias.scope !368, !noalias !374 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %240, ptr %269, align 8, !alias.scope !368, !noalias !374 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %248, ptr %270, align 8, !alias.scope !368, !noalias !374 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %256, ptr %271, align 8, !alias.scope !368, !noalias !374 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %264, ptr %272, align 8, !alias.scope !368, !noalias !374 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %239, ptr %273, align 8, !alias.scope !368, !noalias !374 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %247, ptr %274, align 8, !alias.scope !368, !noalias !374 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %255, ptr %275, align 8, !alias.scope !368, !noalias !374 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %263, ptr %276, align 8, !alias.scope !368, !noalias !374 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %241, ptr %277, align 8, !alias.scope !368, !noalias !374 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %249, ptr %278, align 8, !alias.scope !368, !noalias !374 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %257, ptr %279, align 8, !alias.scope !368, !noalias !374 %280 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %265, ptr %280, align 8, !alias.scope !368, !noalias !374 %exitcond.not.i = icmp eq i64 %37, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i tail call void @llvm.experimental.noalias.scope.decl(metadata !375) tail call void @llvm.experimental.noalias.scope.decl(metadata !378) tail call void @llvm.experimental.noalias.scope.decl(metadata !380) %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 144 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 176 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 208 %295 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 240 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i %296 = add nuw nsw i64 %iter.sroa.192.05439.i, 1 %exitcond.not = icmp eq i64 %296, 4 br i1 %exitcond.not, label %bb13.i.i.i.i, label %bb46.i bb46.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb44.loopexit.i %iter.sroa.192.05439.i = phi i64 [ %296, %bb44.loopexit.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.05439.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %295, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.05439.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.192.05439.i, 4 %297 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.05116.i = load <2 x float>, ptr %297, align 8, !alias.scope !380, !noalias !382, !noundef !3 %298 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.15117.i = load <2 x float>, ptr %298, align 8, !alias.scope !380, !noalias !382, !noundef !3 %299 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.05118.i = load <2 x float>, ptr %299, align 8, !alias.scope !380, !noalias !382, !noundef !3 %300 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.15119.i = load <2 x float>, ptr %300, align 8, !alias.scope !380, !noalias !382, !noundef !3 %301 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.05120.i = load <2 x float>, ptr %301, align 8, !alias.scope !380, !noalias !382, !noundef !3 %302 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.15121.i = load <2 x float>, ptr %302, align 8, !alias.scope !380, !noalias !382, !noundef !3 %303 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.05122.i = load <2 x float>, ptr %303, align 8, !alias.scope !380, !noalias !382, !noundef !3 %304 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.15123.i = load <2 x float>, ptr %304, align 8, !alias.scope !380, !noalias !382, !noundef !3 %305 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.05124.i = load <2 x float>, ptr %305, align 8, !alias.scope !380, !noalias !382, !noundef !3 %306 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.15125.i = load <2 x float>, ptr %306, align 8, !alias.scope !380, !noalias !382, !noundef !3 %307 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.05126.i = load <2 x float>, ptr %307, align 8, !alias.scope !380, !noalias !382, !noundef !3 %308 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.15127.i = load <2 x float>, ptr %308, align 8, !alias.scope !380, !noalias !382, !noundef !3 %309 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.05128.i = load <2 x float>, ptr %309, align 8, !alias.scope !380, !noalias !382, !noundef !3 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.15129.i = load <2 x float>, ptr %310, align 8, !alias.scope !380, !noalias !382, !noundef !3 %311 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.05130.i = load <2 x float>, ptr %311, align 8, !alias.scope !380, !noalias !382, !noundef !3 %312 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.15131.i = load <2 x float>, ptr %312, align 8, !alias.scope !380, !noalias !382, !noundef !3 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.05132.i = load <2 x float>, ptr %313, align 8, !alias.scope !380, !noalias !382, !noundef !3 %314 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.15133.i = load <2 x float>, ptr %314, align 8, !alias.scope !380, !noalias !382, !noundef !3 %315 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.05134.i = load <2 x float>, ptr %315, align 8, !alias.scope !380, !noalias !382, !noundef !3 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.15135.i = load <2 x float>, ptr %316, align 8, !alias.scope !380, !noalias !382, !noundef !3 %317 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.05136.i = load <2 x float>, ptr %317, align 8, !alias.scope !380, !noalias !382, !noundef !3 %318 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.15137.i = load <2 x float>, ptr %318, align 8, !alias.scope !380, !noalias !382, !noundef !3 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.05138.i = load <2 x float>, ptr %319, align 8, !alias.scope !380, !noalias !382, !noundef !3 %320 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.15139.i = load <2 x float>, ptr %320, align 8, !alias.scope !380, !noalias !382, !noundef !3 %321 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.05140.i = load <2 x float>, ptr %321, align 8, !alias.scope !380, !noalias !382, !noundef !3 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.15141.i = load <2 x float>, ptr %322, align 8, !alias.scope !380, !noalias !382, !noundef !3 %323 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.05142.i = load <2 x float>, ptr %323, align 8, !alias.scope !380, !noalias !382, !noundef !3 %324 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.15143.i = load <2 x float>, ptr %324, align 8, !alias.scope !380, !noalias !382, !noundef !3 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.05144.i = load <2 x float>, ptr %325, align 8, !alias.scope !380, !noalias !382, !noundef !3 %326 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.15145.i = load <2 x float>, ptr %326, align 8, !alias.scope !380, !noalias !382, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.05116.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.15117.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %327 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.05118.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.15119.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %328 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.05120.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.15121.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %329 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.05122.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.15123.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %330 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.05124.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.15125.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %331 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.05126.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.15127.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %332 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.05128.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.15129.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %333 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.05130.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.15131.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %334 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.05132.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.15133.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %335 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.05134.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.15135.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %336 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.05136.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.15137.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %337 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.05138.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.15139.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %338 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.05140.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.15141.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %339 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.05142.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.15143.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %340 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.05144.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.15145.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %341 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %342 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %343 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %344 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %345 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %346 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %347 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %348 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %349 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %350 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %351 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %352 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %353 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %354 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %355 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %356 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %357 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> zeroinitializer %358 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> %359 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> zeroinitializer %360 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> %361 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> zeroinitializer %362 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> %363 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> zeroinitializer %364 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> %365 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> zeroinitializer %366 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> %367 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> zeroinitializer %368 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> %369 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> zeroinitializer %370 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> %371 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> zeroinitializer %372 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> %373 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> zeroinitializer %374 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> %375 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> zeroinitializer %376 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> %377 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> zeroinitializer %378 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> %379 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> zeroinitializer %380 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> %381 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> zeroinitializer %382 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> %383 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> zeroinitializer %384 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> %385 = shufflevector <2 x double> %341, <2 x double> poison, <8 x i32> zeroinitializer %386 = shufflevector <2 x double> %341, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05250.i = phi i64 [ %387, %bb98.i ], [ 0, %bb46.i ] %387 = add nuw nsw i64 %iter10.sroa.218.05250.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i45 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i46 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %345, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %344, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %346, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %343, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %348, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %347, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %349, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %342, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %352, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %351, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %353, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %350, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %355, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %354, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %356, i64 %iter10.sroa.218.05250.i %x0.sroa.0.0.copyload.i47 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32, align 8, !alias.scope !375, !noalias !383 %x1.sroa.0.0.copyload.i48 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !375, !noalias !383 %x2.sroa.0.0.copyload.i49 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33, align 8, !alias.scope !375, !noalias !383 %x3.sroa.0.0.copyload.i50 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34, align 8, !alias.scope !375, !noalias !383 %x4.sroa.0.0.copyload.i51 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35, align 8, !alias.scope !375, !noalias !383 %x5.sroa.0.0.copyload.i52 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36, align 8, !alias.scope !375, !noalias !383 %x6.sroa.0.0.copyload.i53 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37, align 8, !alias.scope !375, !noalias !383 %x7.sroa.0.0.copyload.i54 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38, align 8, !alias.scope !375, !noalias !383 %x8.sroa.0.0.copyload.i55 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39, align 8, !alias.scope !375, !noalias !383 %x9.sroa.0.0.copyload.i56 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40, align 8, !alias.scope !375, !noalias !383 %xa.sroa.0.0.copyload.i57 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41, align 8, !alias.scope !375, !noalias !383 %xb.sroa.0.0.copyload.i58 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42, align 8, !alias.scope !375, !noalias !383 %xc.sroa.0.0.copyload.i59 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43, align 8, !alias.scope !375, !noalias !383 %xd.sroa.0.0.copyload.i60 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44, align 8, !alias.scope !375, !noalias !383 %xe.sroa.0.0.copyload.i61 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i45, align 8, !alias.scope !375, !noalias !383 %xf.sroa.0.0.copyload.i62 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i46, align 8, !alias.scope !375, !noalias !383 %388 = fadd <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %389 = fsub <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %390 = fadd <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %391 = fsub <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %392 = fadd <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %393 = fsub <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %394 = fadd <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %395 = fsub <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %396 = fadd <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %397 = fsub <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %398 = fadd <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %399 = fsub <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %400 = fadd <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %401 = fsub <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %402 = fadd <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %403 = fsub <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %404 = bitcast <8 x double> %391 to <8 x i64> %405 = xor <8 x i64> %404, %406 = bitcast <8 x double> %395 to <8 x i64> %407 = xor <8 x i64> %406, %408 = bitcast <8 x double> %399 to <8 x i64> %409 = xor <8 x i64> %408, %410 = bitcast <8 x double> %403 to <8 x i64> %411 = xor <8 x i64> %410, %412 = fadd <8 x double> %388, %390 %413 = bitcast <8 x i64> %405 to <8 x double> %414 = shufflevector <8 x double> %413, <8 x double> poison, <8 x i32> %415 = fsub <8 x double> %389, %414 %416 = fsub <8 x double> %388, %390 %417 = fadd <8 x double> %389, %414 %418 = fadd <8 x double> %392, %394 %419 = bitcast <8 x i64> %407 to <8 x double> %420 = shufflevector <8 x double> %419, <8 x double> poison, <8 x i32> %421 = fsub <8 x double> %393, %420 %422 = fsub <8 x double> %392, %394 %423 = fadd <8 x double> %393, %420 %424 = fadd <8 x double> %396, %398 %425 = bitcast <8 x i64> %409 to <8 x double> %426 = shufflevector <8 x double> %425, <8 x double> poison, <8 x i32> %427 = fsub <8 x double> %397, %426 %428 = fsub <8 x double> %396, %398 %429 = fadd <8 x double> %397, %426 %430 = fadd <8 x double> %400, %402 %431 = bitcast <8 x i64> %411 to <8 x double> %432 = shufflevector <8 x double> %431, <8 x double> poison, <8 x i32> %433 = fsub <8 x double> %401, %432 %434 = fsub <8 x double> %400, %402 %435 = fadd <8 x double> %401, %432 %436 = bitcast <8 x double> %421 to <8 x i64> %437 = xor <8 x i64> %436, %438 = bitcast <8 x i64> %437 to <8 x double> %439 = shufflevector <8 x double> %438, <8 x double> poison, <8 x i32> %440 = fadd <8 x double> %421, %439 %441 = fmul <8 x double> %440, %442 = bitcast <8 x double> %422 to <8 x i64> %443 = xor <8 x i64> %442, %444 = bitcast <8 x double> %423 to <8 x i64> %445 = xor <8 x i64> %444, %446 = bitcast <8 x i64> %445 to <8 x double> %447 = shufflevector <8 x double> %446, <8 x double> poison, <8 x i32> %448 = fadd <8 x double> %423, %447 %449 = fmul <8 x double> %448, %450 = fadd <8 x double> %412, %418 %451 = fadd <8 x double> %415, %441 %452 = bitcast <8 x i64> %443 to <8 x double> %453 = shufflevector <8 x double> %452, <8 x double> poison, <8 x i32> %454 = fsub <8 x double> %416, %453 %455 = fsub <8 x double> %417, %449 %456 = fsub <8 x double> %412, %418 %457 = fsub <8 x double> %415, %441 %458 = fadd <8 x double> %416, %453 %459 = fadd <8 x double> %417, %449 %460 = bitcast <8 x double> %433 to <8 x i64> %461 = xor <8 x i64> %460, %462 = bitcast <8 x i64> %461 to <8 x double> %463 = shufflevector <8 x double> %462, <8 x double> poison, <8 x i32> %464 = fadd <8 x double> %433, %463 %465 = fmul <8 x double> %464, %466 = bitcast <8 x double> %434 to <8 x i64> %467 = xor <8 x i64> %466, %468 = bitcast <8 x double> %435 to <8 x i64> %469 = xor <8 x i64> %468, %470 = bitcast <8 x i64> %469 to <8 x double> %471 = shufflevector <8 x double> %470, <8 x double> poison, <8 x i32> %472 = fadd <8 x double> %435, %471 %473 = fmul <8 x double> %472, %474 = fadd <8 x double> %424, %430 %475 = fadd <8 x double> %427, %465 %476 = bitcast <8 x i64> %467 to <8 x double> %477 = shufflevector <8 x double> %476, <8 x double> poison, <8 x i32> %478 = fsub <8 x double> %428, %477 %479 = fsub <8 x double> %429, %473 %480 = fsub <8 x double> %424, %430 %481 = fsub <8 x double> %427, %465 %482 = fadd <8 x double> %428, %477 %483 = fadd <8 x double> %429, %473 %484 = fmul <8 x double> %475, %485 = shufflevector <8 x double> %484, <8 x double> poison, <8 x i32> %_4.i135 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %475, <8 x double> %485, i32 noundef 4) #23 %486 = bitcast <8 x double> %478 to <8 x i64> %487 = xor <8 x i64> %486, %488 = bitcast <8 x i64> %487 to <8 x double> %489 = shufflevector <8 x double> %488, <8 x double> poison, <8 x i32> %490 = fadd <8 x double> %478, %489 %491 = fmul <8 x double> %490, %492 = fmul <8 x double> %479, %493 = shufflevector <8 x double> %492, <8 x double> poison, <8 x i32> %_4.i134 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %479, <8 x double> %493, i32 noundef 4) #23 %494 = bitcast <8 x double> %480 to <8 x i64> %495 = xor <8 x i64> %494, %496 = fmul <8 x double> %481, %497 = shufflevector <8 x double> %496, <8 x double> poison, <8 x i32> %_4.i133 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %481, <8 x double> %497, i32 noundef 4) #23 %498 = bitcast <8 x double> %482 to <8 x i64> %499 = xor <8 x i64> %498, %500 = bitcast <8 x i64> %499 to <8 x double> %501 = shufflevector <8 x double> %500, <8 x double> poison, <8 x i32> %502 = fadd <8 x double> %482, %501 %503 = fmul <8 x double> %502, %504 = fmul <8 x double> %483, %505 = shufflevector <8 x double> %504, <8 x double> poison, <8 x i32> %_4.i132 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %483, <8 x double> %505, i32 noundef 4) #23 %506 = fadd <8 x double> %450, %474 store <8 x double> %506, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %507 = fadd <8 x double> %_4.i135, %451 %508 = shufflevector <8 x double> %507, <8 x double> poison, <8 x i32> %509 = fmul <8 x double> %358, %508 %_4.i131 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %357, <8 x double> %507, <8 x double> %509, i32 noundef 4) #23 store <8 x double> %_4.i131, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %510 = fadd <8 x double> %454, %491 %511 = shufflevector <8 x double> %510, <8 x double> poison, <8 x i32> %512 = fmul <8 x double> %360, %511 %_4.i130 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %359, <8 x double> %510, <8 x double> %512, i32 noundef 4) #23 store <8 x double> %_4.i130, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %513 = fadd <8 x double> %_4.i134, %455 %514 = shufflevector <8 x double> %513, <8 x double> poison, <8 x i32> %515 = fmul <8 x double> %362, %514 %_4.i129 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %361, <8 x double> %513, <8 x double> %515, i32 noundef 4) #23 store <8 x double> %_4.i129, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %516 = bitcast <8 x i64> %495 to <8 x double> %517 = shufflevector <8 x double> %516, <8 x double> poison, <8 x i32> %518 = fsub <8 x double> %456, %517 %519 = shufflevector <8 x double> %518, <8 x double> poison, <8 x i32> %520 = fmul <8 x double> %364, %519 %_4.i128 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %363, <8 x double> %518, <8 x double> %520, i32 noundef 4) #23 store <8 x double> %_4.i128, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %521 = fsub <8 x double> %457, %_4.i133 %522 = shufflevector <8 x double> %521, <8 x double> poison, <8 x i32> %523 = fmul <8 x double> %366, %522 %_4.i127 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %365, <8 x double> %521, <8 x double> %523, i32 noundef 4) #23 store <8 x double> %_4.i127, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %524 = fsub <8 x double> %458, %503 %525 = shufflevector <8 x double> %524, <8 x double> poison, <8 x i32> %526 = fmul <8 x double> %368, %525 %_4.i126 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %367, <8 x double> %524, <8 x double> %526, i32 noundef 4) #23 store <8 x double> %_4.i126, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %527 = fsub <8 x double> %459, %_4.i132 %528 = shufflevector <8 x double> %527, <8 x double> poison, <8 x i32> %529 = fmul <8 x double> %370, %528 %_4.i125 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %369, <8 x double> %527, <8 x double> %529, i32 noundef 4) #23 store <8 x double> %_4.i125, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %530 = fsub <8 x double> %450, %474 %531 = shufflevector <8 x double> %530, <8 x double> poison, <8 x i32> %532 = fmul <8 x double> %372, %531 %_4.i124 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %371, <8 x double> %530, <8 x double> %532, i32 noundef 4) #23 store <8 x double> %_4.i124, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %533 = fsub <8 x double> %451, %_4.i135 %534 = shufflevector <8 x double> %533, <8 x double> poison, <8 x i32> %535 = fmul <8 x double> %374, %534 %_4.i123 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %373, <8 x double> %533, <8 x double> %535, i32 noundef 4) #23 store <8 x double> %_4.i123, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %536 = fsub <8 x double> %454, %491 %537 = shufflevector <8 x double> %536, <8 x double> poison, <8 x i32> %538 = fmul <8 x double> %376, %537 %_4.i122 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %375, <8 x double> %536, <8 x double> %538, i32 noundef 4) #23 store <8 x double> %_4.i122, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %539 = fsub <8 x double> %455, %_4.i134 %540 = shufflevector <8 x double> %539, <8 x double> poison, <8 x i32> %541 = fmul <8 x double> %378, %540 %_4.i121 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %377, <8 x double> %539, <8 x double> %541, i32 noundef 4) #23 store <8 x double> %_4.i121, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %542 = fadd <8 x double> %456, %517 %543 = shufflevector <8 x double> %542, <8 x double> poison, <8 x i32> %544 = fmul <8 x double> %380, %543 %_4.i120 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %379, <8 x double> %542, <8 x double> %544, i32 noundef 4) #23 store <8 x double> %_4.i120, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %545 = fadd <8 x double> %_4.i133, %457 %546 = shufflevector <8 x double> %545, <8 x double> poison, <8 x i32> %547 = fmul <8 x double> %382, %546 %_4.i119 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %381, <8 x double> %545, <8 x double> %547, i32 noundef 4) #23 store <8 x double> %_4.i119, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %548 = fadd <8 x double> %458, %503 %549 = shufflevector <8 x double> %548, <8 x double> poison, <8 x i32> %550 = fmul <8 x double> %384, %549 %_4.i118 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %383, <8 x double> %548, <8 x double> %550, i32 noundef 4) #23 store <8 x double> %_4.i118, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %551 = fadd <8 x double> %_4.i132, %459 %552 = shufflevector <8 x double> %551, <8 x double> poison, <8 x i32> %553 = fmul <8 x double> %386, %552 %_4.i117 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %385, <8 x double> %551, <8 x double> %553, i32 noundef 4) #23 store <8 x double> %_4.i117, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !378, !noalias !384 %exitcond.not.i64 = icmp eq i64 %387, 4 br i1 %exitcond.not.i64, label %bb44.loopexit.i, label %bb98.i bb13.i.i.i.i: ; preds = %bb44.loopexit.i, %bb13.i.i.i.i %iter.i.i.i.i.sroa.22.01536 = phi i64 [ %554, %bb13.i.i.i.i ], [ 0, %bb44.loopexit.i ] %554 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.01536, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.22.01536 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.22.01536 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.22.01536 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.i.i.i.i.sroa.22.01536 %_43.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !362 %_44.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !362 %_45.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !362 %_46.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !362 %555 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %556 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %557 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %558 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %559 = bitcast <8 x double> %558 to <8 x i64> %560 = xor <8 x i64> %559, %561 = fadd <8 x double> %555, %557 %562 = bitcast <8 x i64> %560 to <8 x double> %563 = shufflevector <8 x double> %562, <8 x double> poison, <8 x i32> %564 = fsub <8 x double> %556, %563 %565 = fsub <8 x double> %555, %557 %566 = fadd <8 x double> %556, %563 store <8 x double> %561, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !362 store <8 x double> %564, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !362 store <8 x double> %565, ptr %_3.i.i.i.i.i.i, align 8, !noalias !362 store <8 x double> %566, ptr %_3.i.i.i.i, align 8, !noalias !362 %exitcond1537.not = icmp eq i64 %554, 64 br i1 %exitcond1537.not, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h75e7cecac2188572E.exit", label %bb13.i.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h75e7cecac2188572E.exit": ; preds = %bb13.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !362 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h29fdbdfd90f6ec3bE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_13.i.i = alloca %"core::option::Option>", align 8 %_8.i.i = alloca i64, align 8 %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !385) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !385, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !385, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !385, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !385, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !385 store i64 4, ptr %n.i, align 8, !noalias !385 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !385 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !385 %_12.i = icmp eq i64 %buf.1.i, 4 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !385 store ptr null, ptr %_16.i, align 8, !noalias !385 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !385 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !385 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !385 %_20.i = icmp eq i64 %scratch.1.i, 4 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !385 store ptr null, ptr %_24.i, align 8, !noalias !385 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !385 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !385 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !385 %_28.i = icmp eq i64 %w_init.1.i, 4 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !385 store ptr null, ptr %_32.i, align 8, !noalias !385 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !385 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !385 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !385 %_36.i = icmp eq i64 %w.1.i, 4 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b428eede1bef8e9E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !385 store ptr null, ptr %_40.i, align 8, !noalias !385 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b428eede1bef8e9E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !385 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i), !noalias !388 store i64 1, ptr %_8.i.i, align 8, !noalias !388 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i), !noalias !388 store ptr null, ptr %_13.i.i, align 8, !noalias !388 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f81a68b33b27ce74a6fe7f327eaa67c7) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2d2116d348287844E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !395) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !395, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !395, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !395, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !395, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !395, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !395, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !395, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !395 store i64 16, ptr %n.i, align 8, !noalias !395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !395 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !395 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !395 store ptr null, ptr %_16.i, align 8, !noalias !395 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !395 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !395 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !395 store ptr null, ptr %_24.i, align 8, !noalias !395 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !395 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !395 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !395 store ptr null, ptr %_32.i, align 8, !noalias !395 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !395 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !395 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %bb26.i.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !395 store ptr null, ptr %_40.i, align 8, !noalias !395 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb26.i.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !395 tail call void @llvm.experimental.noalias.scope.decl(metadata !398) tail call void @llvm.experimental.noalias.scope.decl(metadata !401) tail call void @llvm.experimental.noalias.scope.decl(metadata !403) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !403, !noalias !405 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !403, !noalias !405 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !403, !noalias !405 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !398, !noalias !406 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !398, !noalias !406 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !398, !noalias !406 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !398, !noalias !406 %12 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %13 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %14 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %15 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = fadd <8 x double> %12, %14 %19 = bitcast <8 x i64> %17 to <8 x double> %20 = shufflevector <8 x double> %19, <8 x double> poison, <8 x i32> %21 = fsub <8 x double> %13, %20 %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %24 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %25 = fmul <8 x double> %24, %22 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %23, <8 x double> %21, <8 x double> %25, i32 noundef 4) #23 %26 = fsub <8 x double> %12, %14 %27 = shufflevector <8 x double> %26, <8 x double> poison, <8 x i32> %28 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %29 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %30 = fmul <8 x double> %29, %27 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %28, <8 x double> %26, <8 x double> %30, i32 noundef 4) #23 %31 = fadd <8 x double> %13, %20 %32 = shufflevector <8 x double> %31, <8 x double> poison, <8 x i32> %33 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %35 = fmul <8 x double> %34, %32 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %33, <8 x double> %31, <8 x double> %35, i32 noundef 4) #23 %36 = shufflevector <8 x double> %18, <8 x double> %_4.i93, <8 x i32> %37 = shufflevector <8 x double> %18, <8 x double> %_4.i93, <8 x i32> %38 = shufflevector <8 x double> %_4.i92, <8 x double> %_4.i, <8 x i32> %39 = shufflevector <8 x double> %_4.i92, <8 x double> %_4.i, <8 x i32> %40 = shufflevector <8 x double> %36, <8 x double> %38, <8 x i32> %41 = shufflevector <8 x double> %36, <8 x double> %38, <8 x i32> %42 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> %43 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> store <8 x double> %40, ptr %scratch.0.i, align 8, !alias.scope !401, !noalias !407 %44 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %42, ptr %44, align 8, !alias.scope !401, !noalias !407 %45 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %41, ptr %45, align 8, !alias.scope !401, !noalias !407 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %43, ptr %46, align 8, !alias.scope !401, !noalias !407 %47 = fadd <8 x double> %40, %41 %48 = fsub <8 x double> %40, %41 %49 = fadd <8 x double> %42, %43 %50 = fsub <8 x double> %42, %43 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = fadd <8 x double> %47, %49 %54 = bitcast <8 x i64> %52 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = fsub <8 x double> %48, %55 %57 = fsub <8 x double> %47, %49 %58 = fadd <8 x double> %48, %55 store <8 x double> %53, ptr %buf.0.i, align 8, !noalias !395 store <8 x double> %56, ptr %7, align 8, !noalias !395 store <8 x double> %57, ptr %6, align 8, !noalias !395 store <8 x double> %58, ptr %8, align 8, !noalias !395 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !395 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2e3680d0509f4c1aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !408) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !408, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !408, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !408, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !408, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %3, align 8, !alias.scope !408, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %4, align 8, !alias.scope !408, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !408 store i64 8, ptr %n.i, align 8, !noalias !408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !408 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !408 %_12.i = icmp eq i64 %buf.1.i, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !408 store ptr null, ptr %_16.i, align 8, !noalias !408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !408 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !408 %_20.i = icmp eq i64 %scratch.1.i, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !408 store ptr null, ptr %_24.i, align 8, !noalias !408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !408 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !408 %_28.i = icmp eq i64 %w_init.1.i, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !408 store ptr null, ptr %_32.i, align 8, !noalias !408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !408 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !408 %_36.i = icmp eq i64 %w.1.i, 8 br i1 %_36.i, label %bb18.i.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !408 store ptr null, ptr %_40.i, align 8, !noalias !408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !408 %5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_51.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !411 %_52.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %5, align 8, !noalias !411 %7 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload %8 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload store <8 x double> %7, ptr %scratch.0.i, align 8, !noalias !411 store <8 x double> %8, ptr %6, align 8, !noalias !411 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !408 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2e8b7533ed090cd8E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !415) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !415, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !415, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !415, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !415, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !415, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !415, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !415, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !415, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !415 store i64 512, ptr %n.i, align 8, !noalias !415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !415 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !415 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !415 store ptr null, ptr %_16.i, align 8, !noalias !415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !415 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !415 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !415 store ptr null, ptr %_24.i, align 8, !noalias !415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !415 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !415 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !415 store ptr null, ptr %_32.i, align 8, !noalias !415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !415 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !415 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8e316c9fd8544433E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !415 store ptr null, ptr %_40.i, align 8, !noalias !415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8e316c9fd8544433E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !415 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8e316c9fd8544433E.exit" %iter.i.i.i.i.sroa.8.01413 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8e316c9fd8544433E.exit" ], [ %11, %bb9.i.i.i.i ] %8 = or disjoint i64 %iter.i.i.i.i.sroa.8.01413, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.01413 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.01413 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !415 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !415 %9 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %10 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %9, ptr %_3.i.i.i.i, align 8, !noalias !415 store <8 x double> %10, ptr %_3.i2.i.i.i, align 8, !noalias !415 %11 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.01413, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %8 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %8 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !415 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !415 %12 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %13 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %12, ptr %_3.i.i.i.i.1, align 8, !noalias !415 store <8 x double> %13, ptr %_3.i2.i.i.i.1, align 8, !noalias !415 %exitcond.not.1 = icmp eq i64 %11, 64 br i1 %exitcond.not.1, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit", label %bb9.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit": ; preds = %bb9.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !418) tail call void @llvm.experimental.noalias.scope.decl(metadata !421) tail call void @llvm.experimental.noalias.scope.decl(metadata !423) %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 72 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 88 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 104 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 120 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i br i1 %_2.i.i.i.i, label %bb46.i, label %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit bb46.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit", %bb44.loopexit.i %_2.i.i.i.i = phi i1 [ false, %bb44.loopexit.i ], [ true, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit" ] %iter.sroa.208.05263.i = phi i64 [ 1, %bb44.loopexit.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05263.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05263.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05263.i, 4 %29 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.04940.i = load <2 x float>, ptr %29, align 8, !alias.scope !423, !noalias !425, !noundef !3 %30 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.14941.i = load <2 x float>, ptr %30, align 8, !alias.scope !423, !noalias !425, !noundef !3 %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.04942.i = load <2 x float>, ptr %31, align 8, !alias.scope !423, !noalias !425, !noundef !3 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.14943.i = load <2 x float>, ptr %32, align 8, !alias.scope !423, !noalias !425, !noundef !3 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.04944.i = load <2 x float>, ptr %33, align 8, !alias.scope !423, !noalias !425, !noundef !3 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.14945.i = load <2 x float>, ptr %34, align 8, !alias.scope !423, !noalias !425, !noundef !3 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.04946.i = load <2 x float>, ptr %35, align 8, !alias.scope !423, !noalias !425, !noundef !3 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.14947.i = load <2 x float>, ptr %36, align 8, !alias.scope !423, !noalias !425, !noundef !3 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.04948.i = load <2 x float>, ptr %37, align 8, !alias.scope !423, !noalias !425, !noundef !3 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.14949.i = load <2 x float>, ptr %38, align 8, !alias.scope !423, !noalias !425, !noundef !3 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.04950.i = load <2 x float>, ptr %39, align 8, !alias.scope !423, !noalias !425, !noundef !3 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.14951.i = load <2 x float>, ptr %40, align 8, !alias.scope !423, !noalias !425, !noundef !3 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.04952.i = load <2 x float>, ptr %41, align 8, !alias.scope !423, !noalias !425, !noundef !3 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.14953.i = load <2 x float>, ptr %42, align 8, !alias.scope !423, !noalias !425, !noundef !3 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.04954.i = load <2 x float>, ptr %43, align 8, !alias.scope !423, !noalias !425, !noundef !3 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.14955.i = load <2 x float>, ptr %44, align 8, !alias.scope !423, !noalias !425, !noundef !3 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.04956.i = load <2 x float>, ptr %45, align 8, !alias.scope !423, !noalias !425, !noundef !3 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.14957.i = load <2 x float>, ptr %46, align 8, !alias.scope !423, !noalias !425, !noundef !3 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.04958.i = load <2 x float>, ptr %47, align 8, !alias.scope !423, !noalias !425, !noundef !3 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.14959.i = load <2 x float>, ptr %48, align 8, !alias.scope !423, !noalias !425, !noundef !3 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.04960.i = load <2 x float>, ptr %49, align 8, !alias.scope !423, !noalias !425, !noundef !3 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.14961.i = load <2 x float>, ptr %50, align 8, !alias.scope !423, !noalias !425, !noundef !3 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.04962.i = load <2 x float>, ptr %51, align 8, !alias.scope !423, !noalias !425, !noundef !3 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.14963.i = load <2 x float>, ptr %52, align 8, !alias.scope !423, !noalias !425, !noundef !3 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.04964.i = load <2 x float>, ptr %53, align 8, !alias.scope !423, !noalias !425, !noundef !3 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.14965.i = load <2 x float>, ptr %54, align 8, !alias.scope !423, !noalias !425, !noundef !3 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.04966.i = load <2 x float>, ptr %55, align 8, !alias.scope !423, !noalias !425, !noundef !3 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.14967.i = load <2 x float>, ptr %56, align 8, !alias.scope !423, !noalias !425, !noundef !3 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.04968.i = load <2 x float>, ptr %57, align 8, !alias.scope !423, !noalias !425, !noundef !3 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.14969.i = load <2 x float>, ptr %58, align 8, !alias.scope !423, !noalias !425, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.04940.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.14941.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %59 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.04942.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.14943.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %60 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.04944.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.14945.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %61 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.04946.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.14947.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %62 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.04948.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.14949.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %63 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.04950.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.14951.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %64 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.04952.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.14953.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %65 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.04954.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.14955.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %66 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.04956.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.14957.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %67 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.04958.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.14959.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %68 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.04960.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.14961.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %69 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.04962.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.14963.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %70 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.04964.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.14965.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %71 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.04966.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.14967.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %72 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.04968.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.14969.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %73 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %76 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %77 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %78 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %79 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %80 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %81 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %82 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %83 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %84 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %89 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %90 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %91 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %92 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %93 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> zeroinitializer %94 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> %95 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> zeroinitializer %96 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> %97 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> zeroinitializer %98 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> %99 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> zeroinitializer %100 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> %101 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> %107 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> zeroinitializer %108 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> %109 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> zeroinitializer %110 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> %111 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> zeroinitializer %112 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> %113 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> zeroinitializer %114 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> %115 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> zeroinitializer %116 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> %117 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> zeroinitializer %118 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05074.i = phi i64 [ %119, %bb98.i ], [ 0, %bb46.i ] %119 = add nuw nsw i64 %iter10.sroa.218.05074.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %77, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %76, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %78, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %75, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %80, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %79, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %81, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %74, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %84, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %83, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %85, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %82, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %87, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %86, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %88, i64 %iter10.sroa.218.05074.i %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %_220.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %120 = shufflevector <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %90, %120 %_4.i55 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %89, <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> %121, i32 noundef 4) #23 %_222.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %122 = shufflevector <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %92, %122 %_4.i54 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %91, <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> %123, i32 noundef 4) #23 %_224.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %124 = shufflevector <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %125 = fmul <8 x double> %94, %124 %_4.i53 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> %125, i32 noundef 4) #23 %_226.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %126 = shufflevector <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %127 = fmul <8 x double> %96, %126 %_4.i52 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> %127, i32 noundef 4) #23 %_228.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %128 = shufflevector <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %129 = fmul <8 x double> %98, %128 %_4.i51 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %97, <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> %129, i32 noundef 4) #23 %_230.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %130 = shufflevector <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %131 = fmul <8 x double> %100, %130 %_4.i50 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %99, <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> %131, i32 noundef 4) #23 %_232.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %132 = shufflevector <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %133 = fmul <8 x double> %102, %132 %_4.i49 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> %133, i32 noundef 4) #23 %_234.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %134 = shufflevector <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %135 = fmul <8 x double> %104, %134 %_4.i48 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> %135, i32 noundef 4) #23 %_236.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %136 = shufflevector <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %106, %136 %_4.i47 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> %137, i32 noundef 4) #23 %_238.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %138 = shufflevector <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %108, %138 %_4.i46 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %107, <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> %139, i32 noundef 4) #23 %_240.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %140 = shufflevector <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %110, %140 %_4.i45 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %109, <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> %141, i32 noundef 4) #23 %_242.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %142 = shufflevector <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %112, %142 %_4.i44 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %111, <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> %143, i32 noundef 4) #23 %_244.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %144 = shufflevector <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %114, %144 %_4.i43 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %113, <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> %145, i32 noundef 4) #23 %_246.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %146 = shufflevector <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %116, %146 %_4.i42 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %115, <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> %147, i32 noundef 4) #23 %_248.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !421, !noalias !426 %148 = shufflevector <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = fmul <8 x double> %118, %148 %_4.i41 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %117, <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> %149, i32 noundef 4) #23 %150 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i48 %151 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i48 %152 = fadd <8 x double> %_4.i52, %_4.i44 %153 = fsub <8 x double> %_4.i52, %_4.i44 %154 = fadd <8 x double> %_4.i54, %_4.i46 %155 = fsub <8 x double> %_4.i54, %_4.i46 %156 = fadd <8 x double> %_4.i50, %_4.i42 %157 = fsub <8 x double> %_4.i50, %_4.i42 %158 = fadd <8 x double> %_4.i55, %_4.i47 %159 = fsub <8 x double> %_4.i55, %_4.i47 %160 = fadd <8 x double> %_4.i51, %_4.i43 %161 = fsub <8 x double> %_4.i51, %_4.i43 %162 = fadd <8 x double> %_4.i53, %_4.i45 %163 = fsub <8 x double> %_4.i53, %_4.i45 %164 = fadd <8 x double> %_4.i49, %_4.i41 %165 = fsub <8 x double> %_4.i49, %_4.i41 %166 = bitcast <8 x double> %153 to <8 x i64> %167 = xor <8 x i64> %166, %168 = bitcast <8 x double> %157 to <8 x i64> %169 = xor <8 x i64> %168, %170 = bitcast <8 x double> %161 to <8 x i64> %171 = xor <8 x i64> %170, %172 = bitcast <8 x double> %165 to <8 x i64> %173 = xor <8 x i64> %172, %174 = fadd <8 x double> %150, %152 %175 = bitcast <8 x i64> %167 to <8 x double> %176 = shufflevector <8 x double> %175, <8 x double> poison, <8 x i32> %177 = fsub <8 x double> %151, %176 %178 = fsub <8 x double> %150, %152 %179 = fadd <8 x double> %151, %176 %180 = fadd <8 x double> %154, %156 %181 = bitcast <8 x i64> %169 to <8 x double> %182 = shufflevector <8 x double> %181, <8 x double> poison, <8 x i32> %183 = fsub <8 x double> %155, %182 %184 = fsub <8 x double> %154, %156 %185 = fadd <8 x double> %155, %182 %186 = fadd <8 x double> %158, %160 %187 = bitcast <8 x i64> %171 to <8 x double> %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = fsub <8 x double> %159, %188 %190 = fsub <8 x double> %158, %160 %191 = fadd <8 x double> %159, %188 %192 = fadd <8 x double> %162, %164 %193 = bitcast <8 x i64> %173 to <8 x double> %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = fsub <8 x double> %163, %194 %196 = fsub <8 x double> %162, %164 %197 = fadd <8 x double> %163, %194 %198 = bitcast <8 x double> %183 to <8 x i64> %199 = xor <8 x i64> %198, %200 = bitcast <8 x i64> %199 to <8 x double> %201 = shufflevector <8 x double> %200, <8 x double> poison, <8 x i32> %202 = fadd <8 x double> %183, %201 %203 = fmul <8 x double> %202, %204 = bitcast <8 x double> %184 to <8 x i64> %205 = xor <8 x i64> %204, %206 = bitcast <8 x double> %185 to <8 x i64> %207 = xor <8 x i64> %206, %208 = bitcast <8 x i64> %207 to <8 x double> %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = fadd <8 x double> %185, %209 %211 = fmul <8 x double> %210, %212 = fadd <8 x double> %174, %180 %213 = fadd <8 x double> %177, %203 %214 = bitcast <8 x i64> %205 to <8 x double> %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fsub <8 x double> %178, %215 %217 = fsub <8 x double> %179, %211 %218 = fsub <8 x double> %174, %180 %219 = fsub <8 x double> %177, %203 %220 = fadd <8 x double> %178, %215 %221 = fadd <8 x double> %179, %211 %222 = bitcast <8 x double> %195 to <8 x i64> %223 = xor <8 x i64> %222, %224 = bitcast <8 x i64> %223 to <8 x double> %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = fadd <8 x double> %195, %225 %227 = fmul <8 x double> %226, %228 = bitcast <8 x double> %196 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x double> %197 to <8 x i64> %231 = xor <8 x i64> %230, %232 = bitcast <8 x i64> %231 to <8 x double> %233 = shufflevector <8 x double> %232, <8 x double> poison, <8 x i32> %234 = fadd <8 x double> %197, %233 %235 = fmul <8 x double> %234, %236 = fadd <8 x double> %186, %192 %237 = fadd <8 x double> %189, %227 %238 = bitcast <8 x i64> %229 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fsub <8 x double> %190, %239 %241 = fsub <8 x double> %191, %235 %242 = fsub <8 x double> %186, %192 %243 = fsub <8 x double> %189, %227 %244 = fadd <8 x double> %190, %239 %245 = fadd <8 x double> %191, %235 %246 = fadd <8 x double> %212, %236 store <8 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %247 = fsub <8 x double> %212, %236 store <8 x double> %247, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %248 = fmul <8 x double> %237, %249 = shufflevector <8 x double> %248, <8 x double> poison, <8 x i32> %_4.i40 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %237, <8 x double> %249, i32 noundef 4) #23 %250 = fadd <8 x double> %_4.i40, %213 store <8 x double> %250, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %251 = fsub <8 x double> %213, %_4.i40 store <8 x double> %251, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %252 = bitcast <8 x double> %240 to <8 x i64> %253 = xor <8 x i64> %252, %254 = bitcast <8 x i64> %253 to <8 x double> %255 = shufflevector <8 x double> %254, <8 x double> poison, <8 x i32> %256 = fadd <8 x double> %240, %255 %257 = fmul <8 x double> %256, %258 = fadd <8 x double> %216, %257 store <8 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %259 = fsub <8 x double> %216, %257 store <8 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %260 = fmul <8 x double> %241, %261 = shufflevector <8 x double> %260, <8 x double> poison, <8 x i32> %_4.i39 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %241, <8 x double> %261, i32 noundef 4) #23 %262 = fadd <8 x double> %_4.i39, %217 store <8 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %263 = fsub <8 x double> %217, %_4.i39 store <8 x double> %263, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %264 = bitcast <8 x double> %242 to <8 x i64> %265 = xor <8 x i64> %264, %266 = bitcast <8 x i64> %265 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fsub <8 x double> %218, %267 store <8 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %269 = fadd <8 x double> %218, %267 store <8 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %270 = fmul <8 x double> %243, %271 = shufflevector <8 x double> %270, <8 x double> poison, <8 x i32> %_4.i38 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %243, <8 x double> %271, i32 noundef 4) #23 %272 = fsub <8 x double> %219, %_4.i38 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %273 = fadd <8 x double> %219, %_4.i38 store <8 x double> %273, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %274 = bitcast <8 x double> %244 to <8 x i64> %275 = xor <8 x i64> %274, %276 = bitcast <8 x i64> %275 to <8 x double> %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fadd <8 x double> %244, %277 %279 = fmul <8 x double> %278, %280 = fsub <8 x double> %220, %279 store <8 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %281 = fadd <8 x double> %220, %279 store <8 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %282 = fmul <8 x double> %245, %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %245, <8 x double> %283, i32 noundef 4) #23 %284 = fsub <8 x double> %221, %_4.i store <8 x double> %284, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %285 = fadd <8 x double> %221, %_4.i store <8 x double> %285, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !418, !noalias !427 %exitcond.not.i = icmp eq i64 %119, 4 br i1 %exitcond.not.i, label %bb44.loopexit.i, label %bb98.i _ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit: ; preds = %bb44.loopexit.i tail call void @llvm.experimental.noalias.scope.decl(metadata !428) tail call void @llvm.experimental.noalias.scope.decl(metadata !431) tail call void @llvm.experimental.noalias.scope.decl(metadata !433) %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %295 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 72 %296 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 88 %297 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %298 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 104 %299 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 120 %300 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %301 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %302 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %303 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %304 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %305 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %306 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %307 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %308 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %309 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %310 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 72 %311 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 88 %312 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %313 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 104 %314 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 120 br label %bb39.i bb39.i: ; preds = %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit, %bb39.i %iter.sroa.218.04494.i = phi i64 [ %315, %bb39.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit ] %315 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21 = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22 = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23 = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24 = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25 = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26 = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28 = getelementptr inbounds %"fft_simd::c64x4", ptr %295, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29 = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30 = getelementptr inbounds %"fft_simd::c64x4", ptr %296, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31 = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32 = getelementptr inbounds %"fft_simd::c64x4", ptr %298, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i33 = getelementptr inbounds %"fft_simd::c64x4", ptr %297, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i34 = getelementptr inbounds %"fft_simd::c64x4", ptr %299, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %303, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %302, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %304, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %301, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %306, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %305, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %307, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %300, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %310, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %309, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %311, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %308, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %313, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %312, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i35 = getelementptr inbounds %"fft_simd::c64x4", ptr %314, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !433, !noalias !435 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i35, align 8, !alias.scope !433, !noalias !435 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !431, !noalias !436 %316 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %316, align 8, !alias.scope !431, !noalias !436 %317 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %317, align 8, !alias.scope !431, !noalias !436 %318 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %318, align 8, !alias.scope !431, !noalias !436 %319 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %319, align 8, !alias.scope !431, !noalias !436 %320 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %320, align 8, !alias.scope !431, !noalias !436 %321 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %321, align 8, !alias.scope !431, !noalias !436 %322 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %322, align 8, !alias.scope !431, !noalias !436 %323 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %323, align 8, !alias.scope !431, !noalias !436 %324 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %324, align 8, !alias.scope !431, !noalias !436 %325 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %325, align 8, !alias.scope !431, !noalias !436 %326 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %326, align 8, !alias.scope !431, !noalias !436 %327 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %327, align 8, !alias.scope !431, !noalias !436 %328 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %328, align 8, !alias.scope !431, !noalias !436 %329 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %329, align 8, !alias.scope !431, !noalias !436 %330 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %330, align 8, !alias.scope !431, !noalias !436 %331 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %332 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %333 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %334 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %335 = shufflevector <8 x double> %331, <8 x double> %333, <8 x i32> %336 = shufflevector <8 x double> %331, <8 x double> %333, <8 x i32> %337 = shufflevector <8 x double> %332, <8 x double> %334, <8 x i32> %338 = shufflevector <8 x double> %332, <8 x double> %334, <8 x i32> %339 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %340 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %341 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %342 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %343 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %344 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %345 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %346 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %347 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %348 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %349 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %350 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %351 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %352 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %353 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %354 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %355 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %356 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %357 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %358 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %359 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %360 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %361 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %362 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %363 = shufflevector <8 x double> %337, <8 x double> poison, <8 x i32> %364 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %365 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %366 = fmul <8 x double> %365, %363 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %364, <8 x double> %337, <8 x double> %366, i32 noundef 4) #23 %367 = shufflevector <8 x double> %336, <8 x double> poison, <8 x i32> %368 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %369 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %370 = fmul <8 x double> %369, %367 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %368, <8 x double> %336, <8 x double> %370, i32 noundef 4) #23 %371 = shufflevector <8 x double> %338, <8 x double> poison, <8 x i32> %372 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %373 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %374 = fmul <8 x double> %373, %371 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %372, <8 x double> %338, <8 x double> %374, i32 noundef 4) #23 %375 = shufflevector <8 x double> %343, <8 x double> poison, <8 x i32> %376 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %377 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %378 = fmul <8 x double> %377, %375 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %376, <8 x double> %343, <8 x double> %378, i32 noundef 4) #23 %379 = shufflevector <8 x double> %345, <8 x double> poison, <8 x i32> %380 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %381 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %382 = fmul <8 x double> %381, %379 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %380, <8 x double> %345, <8 x double> %382, i32 noundef 4) #23 %383 = shufflevector <8 x double> %344, <8 x double> poison, <8 x i32> %384 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %385 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %386 = fmul <8 x double> %385, %383 %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %384, <8 x double> %344, <8 x double> %386, i32 noundef 4) #23 %387 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %388 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %389 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %390 = fmul <8 x double> %389, %387 %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %388, <8 x double> %346, <8 x double> %390, i32 noundef 4) #23 %391 = shufflevector <8 x double> %351, <8 x double> poison, <8 x i32> %392 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %393 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %394 = fmul <8 x double> %393, %391 %_4.i67 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %392, <8 x double> %351, <8 x double> %394, i32 noundef 4) #23 %395 = shufflevector <8 x double> %353, <8 x double> poison, <8 x i32> %396 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %397 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %398 = fmul <8 x double> %397, %395 %_4.i66 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %396, <8 x double> %353, <8 x double> %398, i32 noundef 4) #23 %399 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %400 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %401 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %402 = fmul <8 x double> %401, %399 %_4.i65 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %400, <8 x double> %352, <8 x double> %402, i32 noundef 4) #23 %403 = shufflevector <8 x double> %354, <8 x double> poison, <8 x i32> %404 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %405 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %406 = fmul <8 x double> %405, %403 %_4.i64 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %404, <8 x double> %354, <8 x double> %406, i32 noundef 4) #23 %407 = shufflevector <8 x double> %359, <8 x double> poison, <8 x i32> %408 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %409 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %410 = fmul <8 x double> %409, %407 %_4.i63 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %408, <8 x double> %359, <8 x double> %410, i32 noundef 4) #23 %411 = shufflevector <8 x double> %361, <8 x double> poison, <8 x i32> %412 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %413 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %414 = fmul <8 x double> %413, %411 %_4.i62 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %412, <8 x double> %361, <8 x double> %414, i32 noundef 4) #23 %415 = shufflevector <8 x double> %360, <8 x double> poison, <8 x i32> %416 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %417 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %418 = fmul <8 x double> %417, %415 %_4.i61 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %416, <8 x double> %360, <8 x double> %418, i32 noundef 4) #23 %419 = shufflevector <8 x double> %362, <8 x double> poison, <8 x i32> %420 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %421 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %422 = fmul <8 x double> %421, %419 %_4.i60 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %420, <8 x double> %362, <8 x double> %422, i32 noundef 4) #23 %423 = fadd <8 x double> %335, %_4.i67 %424 = fsub <8 x double> %335, %_4.i67 %425 = fadd <8 x double> %_4.i71, %_4.i63 %426 = fsub <8 x double> %_4.i71, %_4.i63 %427 = fadd <8 x double> %_4.i73, %_4.i65 %428 = fsub <8 x double> %_4.i73, %_4.i65 %429 = fadd <8 x double> %_4.i69, %_4.i61 %430 = fsub <8 x double> %_4.i69, %_4.i61 %431 = fadd <8 x double> %_4.i74, %_4.i66 %432 = fsub <8 x double> %_4.i74, %_4.i66 %433 = fadd <8 x double> %_4.i70, %_4.i62 %434 = fsub <8 x double> %_4.i70, %_4.i62 %435 = fadd <8 x double> %_4.i72, %_4.i64 %436 = fsub <8 x double> %_4.i72, %_4.i64 %437 = fadd <8 x double> %_4.i68, %_4.i60 %438 = fsub <8 x double> %_4.i68, %_4.i60 %439 = bitcast <8 x double> %426 to <8 x i64> %440 = xor <8 x i64> %439, %441 = bitcast <8 x double> %430 to <8 x i64> %442 = xor <8 x i64> %441, %443 = bitcast <8 x double> %434 to <8 x i64> %444 = xor <8 x i64> %443, %445 = bitcast <8 x double> %438 to <8 x i64> %446 = xor <8 x i64> %445, %447 = fadd <8 x double> %423, %425 %448 = bitcast <8 x i64> %440 to <8 x double> %449 = shufflevector <8 x double> %448, <8 x double> poison, <8 x i32> %450 = fsub <8 x double> %424, %449 %451 = fsub <8 x double> %423, %425 %452 = fadd <8 x double> %424, %449 %453 = fadd <8 x double> %427, %429 %454 = bitcast <8 x i64> %442 to <8 x double> %455 = shufflevector <8 x double> %454, <8 x double> poison, <8 x i32> %456 = fsub <8 x double> %428, %455 %457 = fsub <8 x double> %427, %429 %458 = fadd <8 x double> %428, %455 %459 = fadd <8 x double> %431, %433 %460 = bitcast <8 x i64> %444 to <8 x double> %461 = shufflevector <8 x double> %460, <8 x double> poison, <8 x i32> %462 = fsub <8 x double> %432, %461 %463 = fsub <8 x double> %431, %433 %464 = fadd <8 x double> %432, %461 %465 = fadd <8 x double> %435, %437 %466 = bitcast <8 x i64> %446 to <8 x double> %467 = shufflevector <8 x double> %466, <8 x double> poison, <8 x i32> %468 = fsub <8 x double> %436, %467 %469 = fsub <8 x double> %435, %437 %470 = fadd <8 x double> %436, %467 %471 = bitcast <8 x double> %456 to <8 x i64> %472 = xor <8 x i64> %471, %473 = bitcast <8 x i64> %472 to <8 x double> %474 = shufflevector <8 x double> %473, <8 x double> poison, <8 x i32> %475 = fadd <8 x double> %456, %474 %476 = fmul <8 x double> %475, %477 = bitcast <8 x double> %457 to <8 x i64> %478 = xor <8 x i64> %477, %479 = bitcast <8 x double> %458 to <8 x i64> %480 = xor <8 x i64> %479, %481 = bitcast <8 x i64> %480 to <8 x double> %482 = shufflevector <8 x double> %481, <8 x double> poison, <8 x i32> %483 = fadd <8 x double> %458, %482 %484 = fmul <8 x double> %483, %485 = fadd <8 x double> %447, %453 %486 = fadd <8 x double> %450, %476 %487 = bitcast <8 x i64> %478 to <8 x double> %488 = shufflevector <8 x double> %487, <8 x double> poison, <8 x i32> %489 = fsub <8 x double> %451, %488 %490 = fsub <8 x double> %452, %484 %491 = fsub <8 x double> %447, %453 %492 = fsub <8 x double> %450, %476 %493 = fadd <8 x double> %451, %488 %494 = fadd <8 x double> %452, %484 %495 = bitcast <8 x double> %468 to <8 x i64> %496 = xor <8 x i64> %495, %497 = bitcast <8 x i64> %496 to <8 x double> %498 = shufflevector <8 x double> %497, <8 x double> poison, <8 x i32> %499 = fadd <8 x double> %468, %498 %500 = fmul <8 x double> %499, %501 = bitcast <8 x double> %469 to <8 x i64> %502 = xor <8 x i64> %501, %503 = bitcast <8 x double> %470 to <8 x i64> %504 = xor <8 x i64> %503, %505 = bitcast <8 x i64> %504 to <8 x double> %506 = shufflevector <8 x double> %505, <8 x double> poison, <8 x i32> %507 = fadd <8 x double> %470, %506 %508 = fmul <8 x double> %507, %509 = fadd <8 x double> %459, %465 %510 = fadd <8 x double> %462, %500 %511 = bitcast <8 x i64> %502 to <8 x double> %512 = shufflevector <8 x double> %511, <8 x double> poison, <8 x i32> %513 = fsub <8 x double> %463, %512 %514 = fsub <8 x double> %464, %508 %515 = fsub <8 x double> %459, %465 %516 = fsub <8 x double> %462, %500 %517 = fadd <8 x double> %463, %512 %518 = fadd <8 x double> %464, %508 %519 = fadd <8 x double> %485, %509 store <8 x double> %519, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !428, !noalias !437 %520 = fsub <8 x double> %485, %509 store <8 x double> %520, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27, align 8, !alias.scope !428, !noalias !437 %521 = fmul <8 x double> %510, %522 = shufflevector <8 x double> %521, <8 x double> poison, <8 x i32> %_4.i59 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %510, <8 x double> %522, i32 noundef 4) #23 %523 = fadd <8 x double> %_4.i59, %486 store <8 x double> %523, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !428, !noalias !437 %524 = fsub <8 x double> %486, %_4.i59 store <8 x double> %524, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28, align 8, !alias.scope !428, !noalias !437 %525 = bitcast <8 x double> %513 to <8 x i64> %526 = xor <8 x i64> %525, %527 = bitcast <8 x i64> %526 to <8 x double> %528 = shufflevector <8 x double> %527, <8 x double> poison, <8 x i32> %529 = fadd <8 x double> %513, %528 %530 = fmul <8 x double> %529, %531 = fadd <8 x double> %489, %530 store <8 x double> %531, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21, align 8, !alias.scope !428, !noalias !437 %532 = fsub <8 x double> %489, %530 store <8 x double> %532, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29, align 8, !alias.scope !428, !noalias !437 %533 = fmul <8 x double> %514, %534 = shufflevector <8 x double> %533, <8 x double> poison, <8 x i32> %_4.i58 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %514, <8 x double> %534, i32 noundef 4) #23 %535 = fadd <8 x double> %_4.i58, %490 store <8 x double> %535, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22, align 8, !alias.scope !428, !noalias !437 %536 = fsub <8 x double> %490, %_4.i58 store <8 x double> %536, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30, align 8, !alias.scope !428, !noalias !437 %537 = bitcast <8 x double> %515 to <8 x i64> %538 = xor <8 x i64> %537, %539 = bitcast <8 x i64> %538 to <8 x double> %540 = shufflevector <8 x double> %539, <8 x double> poison, <8 x i32> %541 = fsub <8 x double> %491, %540 store <8 x double> %541, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23, align 8, !alias.scope !428, !noalias !437 %542 = fadd <8 x double> %491, %540 store <8 x double> %542, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31, align 8, !alias.scope !428, !noalias !437 %543 = fmul <8 x double> %516, %544 = shufflevector <8 x double> %543, <8 x double> poison, <8 x i32> %_4.i57 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %516, <8 x double> %544, i32 noundef 4) #23 %545 = fsub <8 x double> %492, %_4.i57 store <8 x double> %545, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24, align 8, !alias.scope !428, !noalias !437 %546 = fadd <8 x double> %492, %_4.i57 store <8 x double> %546, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32, align 8, !alias.scope !428, !noalias !437 %547 = bitcast <8 x double> %517 to <8 x i64> %548 = xor <8 x i64> %547, %549 = bitcast <8 x i64> %548 to <8 x double> %550 = shufflevector <8 x double> %549, <8 x double> poison, <8 x i32> %551 = fadd <8 x double> %517, %550 %552 = fmul <8 x double> %551, %553 = fsub <8 x double> %493, %552 store <8 x double> %553, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25, align 8, !alias.scope !428, !noalias !437 %554 = fadd <8 x double> %493, %552 store <8 x double> %554, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i33, align 8, !alias.scope !428, !noalias !437 %555 = fmul <8 x double> %518, %556 = shufflevector <8 x double> %555, <8 x double> poison, <8 x i32> %_4.i56 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %518, <8 x double> %556, i32 noundef 4) #23 %557 = fsub <8 x double> %494, %_4.i56 store <8 x double> %557, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26, align 8, !alias.scope !428, !noalias !437 %558 = fadd <8 x double> %494, %_4.i56 store <8 x double> %558, ptr %_3.i.i.i.i.i.i.i.i.i.i.i34, align 8, !alias.scope !428, !noalias !437 %exitcond.not.i37 = icmp eq i64 %315, 8 br i1 %exitcond.not.i37, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !415 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h3584c747b2bbef68E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !438) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !438, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !438, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !438, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !438, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !438, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !438, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !438, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !438 store i64 128, ptr %n.i, align 8, !noalias !438 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !438 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !438 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !438 store ptr null, ptr %_16.i, align 8, !noalias !438 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !438 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !438 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !438 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !438 store ptr null, ptr %_24.i, align 8, !noalias !438 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !438 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !438 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !438 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !438 store ptr null, ptr %_32.i, align 8, !noalias !438 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !438 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !438 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !438 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9f5d0e9560fd6aeE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !438 store ptr null, ptr %_40.i, align 8, !noalias !438 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9f5d0e9560fd6aeE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !438 tail call void @llvm.experimental.noalias.scope.decl(metadata !441) tail call void @llvm.experimental.noalias.scope.decl(metadata !444) tail call void @llvm.experimental.noalias.scope.decl(metadata !446) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 18 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 22 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 26 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 30 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9f5d0e9560fd6aeE.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %36, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9f5d0e9560fd6aeE.exit" ] %36 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !441, !noalias !448 %37 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %38 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %40 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %42 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %44 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %46 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %48 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %50 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %52 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = bitcast <8 x double> %40 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x double> %44 to <8 x i64> %56 = xor <8 x i64> %55, %57 = bitcast <8 x double> %48 to <8 x i64> %58 = xor <8 x i64> %57, %59 = bitcast <8 x double> %52 to <8 x i64> %60 = xor <8 x i64> %59, %61 = fadd <8 x double> %37, %39 %62 = bitcast <8 x i64> %54 to <8 x double> %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = fsub <8 x double> %38, %63 %65 = fsub <8 x double> %37, %39 %66 = fadd <8 x double> %38, %63 %67 = fadd <8 x double> %41, %43 %68 = bitcast <8 x i64> %56 to <8 x double> %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = fsub <8 x double> %42, %69 %71 = fsub <8 x double> %41, %43 %72 = fadd <8 x double> %42, %69 %73 = fadd <8 x double> %45, %47 %74 = bitcast <8 x i64> %58 to <8 x double> %75 = shufflevector <8 x double> %74, <8 x double> poison, <8 x i32> %76 = fsub <8 x double> %46, %75 %77 = fsub <8 x double> %45, %47 %78 = fadd <8 x double> %46, %75 %79 = fadd <8 x double> %49, %51 %80 = bitcast <8 x i64> %60 to <8 x double> %81 = shufflevector <8 x double> %80, <8 x double> poison, <8 x i32> %82 = fsub <8 x double> %50, %81 %83 = fsub <8 x double> %49, %51 %84 = fadd <8 x double> %50, %81 %85 = bitcast <8 x double> %70 to <8 x i64> %86 = xor <8 x i64> %85, %87 = bitcast <8 x i64> %86 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fadd <8 x double> %70, %88 %90 = fmul <8 x double> %89, %91 = bitcast <8 x double> %71 to <8 x i64> %92 = xor <8 x i64> %91, %93 = bitcast <8 x double> %72 to <8 x i64> %94 = xor <8 x i64> %93, %95 = bitcast <8 x i64> %94 to <8 x double> %96 = shufflevector <8 x double> %95, <8 x double> poison, <8 x i32> %97 = fadd <8 x double> %72, %96 %98 = fmul <8 x double> %97, %99 = fadd <8 x double> %61, %67 %100 = fadd <8 x double> %64, %90 %101 = bitcast <8 x i64> %92 to <8 x double> %102 = shufflevector <8 x double> %101, <8 x double> poison, <8 x i32> %103 = fsub <8 x double> %65, %102 %104 = fsub <8 x double> %66, %98 %105 = fsub <8 x double> %61, %67 %106 = fsub <8 x double> %64, %90 %107 = fadd <8 x double> %65, %102 %108 = fadd <8 x double> %66, %98 %109 = bitcast <8 x double> %82 to <8 x i64> %110 = xor <8 x i64> %109, %111 = bitcast <8 x i64> %110 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fadd <8 x double> %82, %112 %114 = fmul <8 x double> %113, %115 = bitcast <8 x double> %83 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x double> %84 to <8 x i64> %118 = xor <8 x i64> %117, %119 = bitcast <8 x i64> %118 to <8 x double> %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fadd <8 x double> %84, %120 %122 = fmul <8 x double> %121, %123 = fadd <8 x double> %73, %79 %124 = fadd <8 x double> %76, %114 %125 = bitcast <8 x i64> %116 to <8 x double> %126 = shufflevector <8 x double> %125, <8 x double> poison, <8 x i32> %127 = fsub <8 x double> %77, %126 %128 = fsub <8 x double> %78, %122 %129 = fsub <8 x double> %73, %79 %130 = fsub <8 x double> %76, %114 %131 = fadd <8 x double> %77, %126 %132 = fadd <8 x double> %78, %122 %133 = fmul <8 x double> %124, %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %_4.i241 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %124, <8 x double> %134, i32 noundef 4) #23 %135 = bitcast <8 x double> %127 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %127, %138 %140 = fmul <8 x double> %139, %141 = fmul <8 x double> %128, %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %_4.i240 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %128, <8 x double> %142, i32 noundef 4) #23 %143 = bitcast <8 x double> %129 to <8 x i64> %144 = xor <8 x i64> %143, %145 = fmul <8 x double> %130, %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %_4.i239 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %130, <8 x double> %146, i32 noundef 4) #23 %147 = bitcast <8 x double> %131 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %131, %150 %152 = fmul <8 x double> %151, %153 = fmul <8 x double> %132, %154 = shufflevector <8 x double> %153, <8 x double> poison, <8 x i32> %_4.i238 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %132, <8 x double> %154, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !446, !noalias !449 %155 = fadd <8 x double> %99, %123 %156 = fadd <8 x double> %_4.i241, %100 %157 = shufflevector <8 x double> %156, <8 x double> poison, <8 x i32> %158 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %159, %157 %_4.i237 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %156, <8 x double> %160, i32 noundef 4) #23 %161 = fadd <8 x double> %103, %140 %162 = shufflevector <8 x double> %161, <8 x double> poison, <8 x i32> %163 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = fmul <8 x double> %164, %162 %_4.i236 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %163, <8 x double> %161, <8 x double> %165, i32 noundef 4) #23 %166 = fadd <8 x double> %_4.i240, %104 %167 = shufflevector <8 x double> %166, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = fmul <8 x double> %169, %167 %_4.i235 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %166, <8 x double> %170, i32 noundef 4) #23 %171 = bitcast <8 x i64> %144 to <8 x double> %172 = shufflevector <8 x double> %171, <8 x double> poison, <8 x i32> %173 = fsub <8 x double> %105, %172 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %176, %174 %_4.i234 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %175, <8 x double> %173, <8 x double> %177, i32 noundef 4) #23 %178 = fsub <8 x double> %106, %_4.i239 %179 = shufflevector <8 x double> %178, <8 x double> poison, <8 x i32> %180 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = fmul <8 x double> %181, %179 %_4.i233 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %180, <8 x double> %178, <8 x double> %182, i32 noundef 4) #23 %183 = fsub <8 x double> %107, %152 %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %186, %184 %_4.i232 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %183, <8 x double> %187, i32 noundef 4) #23 %188 = fsub <8 x double> %108, %_4.i238 %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %191, %189 %_4.i231 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %188, <8 x double> %192, i32 noundef 4) #23 %193 = fsub <8 x double> %99, %123 %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = fmul <8 x double> %194, %196 %_4.i230 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %193, <8 x double> %197, i32 noundef 4) #23 %198 = fsub <8 x double> %100, %_4.i241 %199 = shufflevector <8 x double> %198, <8 x double> poison, <8 x i32> %200 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = fmul <8 x double> %201, %199 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %198, <8 x double> %202, i32 noundef 4) #23 %203 = fsub <8 x double> %103, %140 %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = fmul <8 x double> %206, %204 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %205, <8 x double> %203, <8 x double> %207, i32 noundef 4) #23 %208 = fsub <8 x double> %104, %_4.i240 %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = fmul <8 x double> %209, %211 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %210, <8 x double> %208, <8 x double> %212, i32 noundef 4) #23 %213 = fadd <8 x double> %105, %172 %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = fmul <8 x double> %214, %216 %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %215, <8 x double> %213, <8 x double> %217, i32 noundef 4) #23 %218 = fadd <8 x double> %_4.i239, %106 %219 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %220 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %219, %221 %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %220, <8 x double> %218, <8 x double> %222, i32 noundef 4) #23 %223 = fadd <8 x double> %107, %152 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = fmul <8 x double> %224, %226 %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %225, <8 x double> %223, <8 x double> %227, i32 noundef 4) #23 %228 = fadd <8 x double> %_4.i238, %108 %229 = shufflevector <8 x double> %228, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = fmul <8 x double> %229, %231 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %230, <8 x double> %228, <8 x double> %232, i32 noundef 4) #23 %233 = shufflevector <8 x double> %155, <8 x double> %_4.i237, <8 x i32> %234 = shufflevector <8 x double> %155, <8 x double> %_4.i237, <8 x i32> %235 = shufflevector <8 x double> %_4.i236, <8 x double> %_4.i235, <8 x i32> %236 = shufflevector <8 x double> %_4.i236, <8 x double> %_4.i235, <8 x i32> %237 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %238 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %241 = shufflevector <8 x double> %_4.i234, <8 x double> %_4.i233, <8 x i32> %242 = shufflevector <8 x double> %_4.i234, <8 x double> %_4.i233, <8 x i32> %243 = shufflevector <8 x double> %_4.i232, <8 x double> %_4.i231, <8 x i32> %244 = shufflevector <8 x double> %_4.i232, <8 x double> %_4.i231, <8 x i32> %245 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %246 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %249 = shufflevector <8 x double> %_4.i230, <8 x double> %_4.i229, <8 x i32> %250 = shufflevector <8 x double> %_4.i230, <8 x double> %_4.i229, <8 x i32> %251 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %252 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %253 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %254 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %257 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %258 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %259 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %260 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %261 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %262 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> store <8 x double> %237, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !444, !noalias !450 %265 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %245, ptr %265, align 8, !alias.scope !444, !noalias !450 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %253, ptr %266, align 8, !alias.scope !444, !noalias !450 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %261, ptr %267, align 8, !alias.scope !444, !noalias !450 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %239, ptr %268, align 8, !alias.scope !444, !noalias !450 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %247, ptr %269, align 8, !alias.scope !444, !noalias !450 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %255, ptr %270, align 8, !alias.scope !444, !noalias !450 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %263, ptr %271, align 8, !alias.scope !444, !noalias !450 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %238, ptr %272, align 8, !alias.scope !444, !noalias !450 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %246, ptr %273, align 8, !alias.scope !444, !noalias !450 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %254, ptr %274, align 8, !alias.scope !444, !noalias !450 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %262, ptr %275, align 8, !alias.scope !444, !noalias !450 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %240, ptr %276, align 8, !alias.scope !444, !noalias !450 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %248, ptr %277, align 8, !alias.scope !444, !noalias !450 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %256, ptr %278, align 8, !alias.scope !444, !noalias !450 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %264, ptr %279, align 8, !alias.scope !444, !noalias !450 %exitcond.not.i = icmp eq i64 %36, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i %280 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 br label %bb38.i.i.i bb38.i.i.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb38.i.i.i %iter14.i.i.i.sroa.106.01220 = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ], [ %287, %bb38.i.i.i ] %287 = add nuw nsw i64 %iter14.i.i.i.sroa.106.01220, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %280, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i32.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i35.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i38.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter14.i.i.i.sroa.106.01220 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !438 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !438 %288 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %289 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %290 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %291 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %292 = bitcast <8 x double> %291 to <8 x i64> %293 = xor <8 x i64> %292, %294 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %295 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %296 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %298 = bitcast <8 x double> %297 to <8 x i64> %299 = xor <8 x i64> %298, %300 = fadd <8 x double> %288, %290 %301 = bitcast <8 x i64> %293 to <8 x double> %302 = shufflevector <8 x double> %301, <8 x double> poison, <8 x i32> %303 = fsub <8 x double> %289, %302 %304 = fsub <8 x double> %288, %290 %305 = fadd <8 x double> %289, %302 %306 = fadd <8 x double> %294, %296 %307 = bitcast <8 x i64> %299 to <8 x double> %308 = shufflevector <8 x double> %307, <8 x double> poison, <8 x i32> %309 = fsub <8 x double> %295, %308 %310 = bitcast <8 x double> %309 to <8 x i64> %311 = xor <8 x i64> %310, %312 = bitcast <8 x i64> %311 to <8 x double> %313 = shufflevector <8 x double> %312, <8 x double> poison, <8 x i32> %314 = fadd <8 x double> %309, %313 %315 = fmul <8 x double> %314, %316 = fsub <8 x double> %294, %296 %317 = bitcast <8 x double> %316 to <8 x i64> %318 = xor <8 x i64> %317, %319 = fadd <8 x double> %295, %308 %320 = bitcast <8 x double> %319 to <8 x i64> %321 = xor <8 x i64> %320, %322 = bitcast <8 x i64> %321 to <8 x double> %323 = shufflevector <8 x double> %322, <8 x double> poison, <8 x i32> %324 = fadd <8 x double> %319, %323 %325 = fmul <8 x double> %324, %326 = fadd <8 x double> %300, %306 %327 = fadd <8 x double> %303, %315 %328 = bitcast <8 x i64> %318 to <8 x double> %329 = shufflevector <8 x double> %328, <8 x double> poison, <8 x i32> %330 = fsub <8 x double> %304, %329 %331 = fsub <8 x double> %305, %325 %332 = fsub <8 x double> %300, %306 %333 = fsub <8 x double> %303, %315 %334 = fadd <8 x double> %304, %329 %335 = fadd <8 x double> %305, %325 store <8 x double> %326, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i, align 8, !noalias !438 store <8 x double> %327, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i, align 8, !noalias !438 store <8 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i, align 8, !noalias !438 store <8 x double> %331, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i, align 8, !noalias !438 store <8 x double> %332, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i, align 8, !noalias !438 store <8 x double> %333, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i, align 8, !noalias !438 store <8 x double> %334, ptr %_3.i.i.i.i.i.i.i35.i.i.i, align 8, !noalias !438 store <8 x double> %335, ptr %_3.i.i.i.i.i38.i.i.i, align 8, !noalias !438 %exitcond.not = icmp eq i64 %287, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcdfdaf83fd617ab6E.exit", label %bb38.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcdfdaf83fd617ab6E.exit": ; preds = %bb38.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !438 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h38bb5fa24de19d0aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !451) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !451, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !451, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !451, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !451, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !451, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !451, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !451, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !451 store i64 256, ptr %n.i, align 8, !noalias !451 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !451 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !451 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !451 store ptr null, ptr %_16.i, align 8, !noalias !451 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !451 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !451 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !451 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !451 store ptr null, ptr %_24.i, align 8, !noalias !451 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !451 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !451 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !451 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !451 store ptr null, ptr %_32.i, align 8, !noalias !451 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !451 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !451 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !451 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h993d3592f37dab98E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !451 store ptr null, ptr %_40.i, align 8, !noalias !451 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h993d3592f37dab98E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !451 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 36 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 44 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 52 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 60 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 36 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 44 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 52 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 60 br label %bb62.i.i.i bb62.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h993d3592f37dab98E.exit", %bb62.i.i.i %iter22.i.i.i.sroa.218.02190 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h993d3592f37dab98E.exit" ], [ %36, %bb62.i.i.i ] %36 = add nuw nsw i64 %iter22.i.i.i.sroa.218.02190, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i72.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i75.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i78.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter22.i.i.i.sroa.218.02190 %_208.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i, align 8, !noalias !454 %_209.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i, align 8, !noalias !454 %_210.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i, align 8, !noalias !454 %_211.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i, align 8, !noalias !454 %_212.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i, align 8, !noalias !454 %_213.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i, align 8, !noalias !454 %_214.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i, align 8, !noalias !454 %_215.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i, align 8, !noalias !454 %_216.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i, align 8, !noalias !454 %_217.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i, align 8, !noalias !454 %_218.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i, align 8, !noalias !454 %_219.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i, align 8, !noalias !454 %_220.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i, align 8, !noalias !454 %_221.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i, align 8, !noalias !454 %_222.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i, align 8, !noalias !454 %_223.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i78.i.i.i, align 8, !noalias !454 %37 = fadd <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %38 = fsub <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %39 = fadd <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %40 = fsub <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %41 = fadd <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %42 = fsub <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %43 = fadd <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %44 = fsub <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %45 = fadd <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %46 = fsub <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %47 = fadd <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %48 = fsub <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %49 = fadd <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %50 = fsub <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %51 = fadd <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %52 = fsub <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %53 = bitcast <8 x double> %40 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x double> %44 to <8 x i64> %56 = xor <8 x i64> %55, %57 = bitcast <8 x double> %48 to <8 x i64> %58 = xor <8 x i64> %57, %59 = bitcast <8 x double> %52 to <8 x i64> %60 = xor <8 x i64> %59, %61 = fadd <8 x double> %37, %39 %62 = bitcast <8 x i64> %54 to <8 x double> %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = fsub <8 x double> %38, %63 %65 = fsub <8 x double> %37, %39 %66 = fadd <8 x double> %38, %63 %67 = fadd <8 x double> %41, %43 %68 = bitcast <8 x i64> %56 to <8 x double> %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = fsub <8 x double> %42, %69 %71 = fsub <8 x double> %41, %43 %72 = fadd <8 x double> %42, %69 %73 = fadd <8 x double> %45, %47 %74 = bitcast <8 x i64> %58 to <8 x double> %75 = shufflevector <8 x double> %74, <8 x double> poison, <8 x i32> %76 = fsub <8 x double> %46, %75 %77 = fsub <8 x double> %45, %47 %78 = fadd <8 x double> %46, %75 %79 = fadd <8 x double> %49, %51 %80 = bitcast <8 x i64> %60 to <8 x double> %81 = shufflevector <8 x double> %80, <8 x double> poison, <8 x i32> %82 = fsub <8 x double> %50, %81 %83 = fsub <8 x double> %49, %51 %84 = fadd <8 x double> %50, %81 %85 = bitcast <8 x double> %70 to <8 x i64> %86 = xor <8 x i64> %85, %87 = bitcast <8 x i64> %86 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fadd <8 x double> %70, %88 %90 = fmul <8 x double> %89, %91 = bitcast <8 x double> %71 to <8 x i64> %92 = xor <8 x i64> %91, %93 = bitcast <8 x double> %72 to <8 x i64> %94 = xor <8 x i64> %93, %95 = bitcast <8 x i64> %94 to <8 x double> %96 = shufflevector <8 x double> %95, <8 x double> poison, <8 x i32> %97 = fadd <8 x double> %72, %96 %98 = fmul <8 x double> %97, %99 = fadd <8 x double> %61, %67 %100 = fadd <8 x double> %64, %90 %101 = bitcast <8 x i64> %92 to <8 x double> %102 = shufflevector <8 x double> %101, <8 x double> poison, <8 x i32> %103 = fsub <8 x double> %65, %102 %104 = fsub <8 x double> %66, %98 %105 = fsub <8 x double> %61, %67 %106 = fsub <8 x double> %64, %90 %107 = fadd <8 x double> %65, %102 %108 = fadd <8 x double> %66, %98 %109 = bitcast <8 x double> %82 to <8 x i64> %110 = xor <8 x i64> %109, %111 = bitcast <8 x i64> %110 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fadd <8 x double> %82, %112 %114 = fmul <8 x double> %113, %115 = bitcast <8 x double> %83 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x double> %84 to <8 x i64> %118 = xor <8 x i64> %117, %119 = bitcast <8 x i64> %118 to <8 x double> %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fadd <8 x double> %84, %120 %122 = fmul <8 x double> %121, %123 = fadd <8 x double> %73, %79 %124 = fadd <8 x double> %76, %114 %125 = bitcast <8 x i64> %116 to <8 x double> %126 = shufflevector <8 x double> %125, <8 x double> poison, <8 x i32> %127 = fsub <8 x double> %77, %126 %128 = fsub <8 x double> %78, %122 %129 = fsub <8 x double> %73, %79 %130 = fsub <8 x double> %76, %114 %131 = fadd <8 x double> %77, %126 %132 = fadd <8 x double> %78, %122 %133 = fmul <8 x double> %124, %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %124, <8 x double> %134, i32 noundef 4) #23 %135 = bitcast <8 x double> %127 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %127, %138 %140 = fmul <8 x double> %139, %141 = fmul <8 x double> %128, %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %_4.i499 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %128, <8 x double> %142, i32 noundef 4) #23 %143 = bitcast <8 x double> %129 to <8 x i64> %144 = xor <8 x i64> %143, %145 = fmul <8 x double> %130, %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %_4.i512 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %130, <8 x double> %146, i32 noundef 4) #23 %147 = bitcast <8 x double> %131 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %131, %150 %152 = fmul <8 x double> %151, %153 = fmul <8 x double> %132, %154 = shufflevector <8 x double> %153, <8 x double> poison, <8 x i32> %_4.i529 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %132, <8 x double> %154, i32 noundef 4) #23 %155 = fadd <8 x double> %99, %123 %156 = fadd <8 x double> %_4.i, %100 %157 = fadd <8 x double> %103, %140 %158 = fadd <8 x double> %_4.i499, %104 %159 = bitcast <8 x i64> %144 to <8 x double> %160 = shufflevector <8 x double> %159, <8 x double> poison, <8 x i32> %161 = fsub <8 x double> %105, %160 %162 = fsub <8 x double> %106, %_4.i512 %163 = fsub <8 x double> %107, %152 %164 = fsub <8 x double> %108, %_4.i529 %165 = fsub <8 x double> %99, %123 %166 = fsub <8 x double> %100, %_4.i %167 = fsub <8 x double> %103, %140 %168 = fsub <8 x double> %104, %_4.i499 %169 = fadd <8 x double> %105, %160 %170 = fadd <8 x double> %_4.i512, %106 %171 = fadd <8 x double> %107, %152 %172 = fadd <8 x double> %_4.i529, %108 store <8 x double> %155, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %156, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %157, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %158, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %161, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %164, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %165, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %171, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !454 store <8 x double> %172, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !454 %exitcond.not = icmp eq i64 %36, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit", label %bb62.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit": ; preds = %bb62.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !458) tail call void @llvm.experimental.noalias.scope.decl(metadata !461) tail call void @llvm.experimental.noalias.scope.decl(metadata !463) %173 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %174 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %175 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %176 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %177 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %178 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %179 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %180 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %181 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %182 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %183 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 36 %184 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 44 %185 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %186 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 52 %187 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 60 br label %bb39.i bb39.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit", %bb39.i %iter.sroa.218.04494.i = phi i64 [ %188, %bb39.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit" ] %188 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %176, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %175, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %177, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %174, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %179, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %178, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %180, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %173, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %183, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %182, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %184, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %181, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %186, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %185, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %187, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !463, !noalias !465 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !461, !noalias !466 %189 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %189, align 8, !alias.scope !461, !noalias !466 %190 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %190, align 8, !alias.scope !461, !noalias !466 %191 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %191, align 8, !alias.scope !461, !noalias !466 %192 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %192, align 8, !alias.scope !461, !noalias !466 %193 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %193, align 8, !alias.scope !461, !noalias !466 %194 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %194, align 8, !alias.scope !461, !noalias !466 %195 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %195, align 8, !alias.scope !461, !noalias !466 %196 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %196, align 8, !alias.scope !461, !noalias !466 %197 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %197, align 8, !alias.scope !461, !noalias !466 %198 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %198, align 8, !alias.scope !461, !noalias !466 %199 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %199, align 8, !alias.scope !461, !noalias !466 %200 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %200, align 8, !alias.scope !461, !noalias !466 %201 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %201, align 8, !alias.scope !461, !noalias !466 %202 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %202, align 8, !alias.scope !461, !noalias !466 %203 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %203, align 8, !alias.scope !461, !noalias !466 %204 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %205 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %206 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %207 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %208 = shufflevector <8 x double> %204, <8 x double> %206, <8 x i32> %209 = shufflevector <8 x double> %204, <8 x double> %206, <8 x i32> %210 = shufflevector <8 x double> %205, <8 x double> %207, <8 x i32> %211 = shufflevector <8 x double> %205, <8 x double> %207, <8 x i32> %212 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %213 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %214 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %215 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %216 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %217 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %218 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %219 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %220 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %221 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %222 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %223 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %224 = shufflevector <8 x double> %220, <8 x double> %222, <8 x i32> %225 = shufflevector <8 x double> %220, <8 x double> %222, <8 x i32> %226 = shufflevector <8 x double> %221, <8 x double> %223, <8 x i32> %227 = shufflevector <8 x double> %221, <8 x double> %223, <8 x i32> %228 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %229 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %230 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %231 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %232 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %233 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %234 = shufflevector <8 x double> %229, <8 x double> %231, <8 x i32> %235 = shufflevector <8 x double> %229, <8 x double> %231, <8 x i32> %236 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %237 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %238 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %239 = fmul <8 x double> %238, %236 %_4.i581 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %237, <8 x double> %210, <8 x double> %239, i32 noundef 4) #23 %240 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %241 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %242 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %242, %240 %_4.i580 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %241, <8 x double> %209, <8 x double> %243, i32 noundef 4) #23 %244 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %245 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %246 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %247 = fmul <8 x double> %246, %244 %_4.i579 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %245, <8 x double> %211, <8 x double> %247, i32 noundef 4) #23 %248 = shufflevector <8 x double> %216, <8 x double> poison, <8 x i32> %249 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %250 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %251 = fmul <8 x double> %250, %248 %_4.i578 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %249, <8 x double> %216, <8 x double> %251, i32 noundef 4) #23 %252 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %253 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %254 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %255 = fmul <8 x double> %254, %252 %_4.i577 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %253, <8 x double> %218, <8 x double> %255, i32 noundef 4) #23 %256 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %257 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %258 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %259 = fmul <8 x double> %258, %256 %_4.i576 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %257, <8 x double> %217, <8 x double> %259, i32 noundef 4) #23 %260 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %261 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %262 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %263 = fmul <8 x double> %262, %260 %_4.i575 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %261, <8 x double> %219, <8 x double> %263, i32 noundef 4) #23 %264 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %265 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %266 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %267 = fmul <8 x double> %266, %264 %_4.i574 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %265, <8 x double> %224, <8 x double> %267, i32 noundef 4) #23 %268 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %269 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %270 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %271 = fmul <8 x double> %270, %268 %_4.i573 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %269, <8 x double> %226, <8 x double> %271, i32 noundef 4) #23 %272 = shufflevector <8 x double> %225, <8 x double> poison, <8 x i32> %273 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %274 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %274, %272 %_4.i572 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %273, <8 x double> %225, <8 x double> %275, i32 noundef 4) #23 %276 = shufflevector <8 x double> %227, <8 x double> poison, <8 x i32> %277 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %278 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %279 = fmul <8 x double> %278, %276 %_4.i571 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %277, <8 x double> %227, <8 x double> %279, i32 noundef 4) #23 %280 = shufflevector <8 x double> %232, <8 x double> poison, <8 x i32> %281 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %282 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %283 = fmul <8 x double> %282, %280 %_4.i570 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %281, <8 x double> %232, <8 x double> %283, i32 noundef 4) #23 %284 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %285 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %286 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %286, %284 %_4.i569 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %285, <8 x double> %234, <8 x double> %287, i32 noundef 4) #23 %288 = shufflevector <8 x double> %233, <8 x double> poison, <8 x i32> %289 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %290 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %291 = fmul <8 x double> %290, %288 %_4.i568 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %289, <8 x double> %233, <8 x double> %291, i32 noundef 4) #23 %292 = shufflevector <8 x double> %235, <8 x double> poison, <8 x i32> %293 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %294 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %295 = fmul <8 x double> %294, %292 %_4.i567 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %293, <8 x double> %235, <8 x double> %295, i32 noundef 4) #23 %296 = fadd <8 x double> %208, %_4.i574 %297 = fsub <8 x double> %208, %_4.i574 %298 = fadd <8 x double> %_4.i578, %_4.i570 %299 = fsub <8 x double> %_4.i578, %_4.i570 %300 = fadd <8 x double> %_4.i580, %_4.i572 %301 = fsub <8 x double> %_4.i580, %_4.i572 %302 = fadd <8 x double> %_4.i576, %_4.i568 %303 = fsub <8 x double> %_4.i576, %_4.i568 %304 = fadd <8 x double> %_4.i581, %_4.i573 %305 = fsub <8 x double> %_4.i581, %_4.i573 %306 = fadd <8 x double> %_4.i577, %_4.i569 %307 = fsub <8 x double> %_4.i577, %_4.i569 %308 = fadd <8 x double> %_4.i579, %_4.i571 %309 = fsub <8 x double> %_4.i579, %_4.i571 %310 = fadd <8 x double> %_4.i575, %_4.i567 %311 = fsub <8 x double> %_4.i575, %_4.i567 %312 = bitcast <8 x double> %299 to <8 x i64> %313 = xor <8 x i64> %312, %314 = bitcast <8 x double> %303 to <8 x i64> %315 = xor <8 x i64> %314, %316 = bitcast <8 x double> %307 to <8 x i64> %317 = xor <8 x i64> %316, %318 = bitcast <8 x double> %311 to <8 x i64> %319 = xor <8 x i64> %318, %320 = fadd <8 x double> %296, %298 %321 = bitcast <8 x i64> %313 to <8 x double> %322 = shufflevector <8 x double> %321, <8 x double> poison, <8 x i32> %323 = fsub <8 x double> %297, %322 %324 = fsub <8 x double> %296, %298 %325 = fadd <8 x double> %297, %322 %326 = fadd <8 x double> %300, %302 %327 = bitcast <8 x i64> %315 to <8 x double> %328 = shufflevector <8 x double> %327, <8 x double> poison, <8 x i32> %329 = fsub <8 x double> %301, %328 %330 = fsub <8 x double> %300, %302 %331 = fadd <8 x double> %301, %328 %332 = fadd <8 x double> %304, %306 %333 = bitcast <8 x i64> %317 to <8 x double> %334 = shufflevector <8 x double> %333, <8 x double> poison, <8 x i32> %335 = fsub <8 x double> %305, %334 %336 = fsub <8 x double> %304, %306 %337 = fadd <8 x double> %305, %334 %338 = fadd <8 x double> %308, %310 %339 = bitcast <8 x i64> %319 to <8 x double> %340 = shufflevector <8 x double> %339, <8 x double> poison, <8 x i32> %341 = fsub <8 x double> %309, %340 %342 = fsub <8 x double> %308, %310 %343 = fadd <8 x double> %309, %340 %344 = bitcast <8 x double> %329 to <8 x i64> %345 = xor <8 x i64> %344, %346 = bitcast <8 x i64> %345 to <8 x double> %347 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %348 = fadd <8 x double> %329, %347 %349 = fmul <8 x double> %348, %350 = bitcast <8 x double> %330 to <8 x i64> %351 = xor <8 x i64> %350, %352 = bitcast <8 x double> %331 to <8 x i64> %353 = xor <8 x i64> %352, %354 = bitcast <8 x i64> %353 to <8 x double> %355 = shufflevector <8 x double> %354, <8 x double> poison, <8 x i32> %356 = fadd <8 x double> %331, %355 %357 = fmul <8 x double> %356, %358 = fadd <8 x double> %320, %326 %359 = fadd <8 x double> %323, %349 %360 = bitcast <8 x i64> %351 to <8 x double> %361 = shufflevector <8 x double> %360, <8 x double> poison, <8 x i32> %362 = fsub <8 x double> %324, %361 %363 = fsub <8 x double> %325, %357 %364 = fsub <8 x double> %320, %326 %365 = fsub <8 x double> %323, %349 %366 = fadd <8 x double> %324, %361 %367 = fadd <8 x double> %325, %357 %368 = bitcast <8 x double> %341 to <8 x i64> %369 = xor <8 x i64> %368, %370 = bitcast <8 x i64> %369 to <8 x double> %371 = shufflevector <8 x double> %370, <8 x double> poison, <8 x i32> %372 = fadd <8 x double> %341, %371 %373 = fmul <8 x double> %372, %374 = bitcast <8 x double> %342 to <8 x i64> %375 = xor <8 x i64> %374, %376 = bitcast <8 x double> %343 to <8 x i64> %377 = xor <8 x i64> %376, %378 = bitcast <8 x i64> %377 to <8 x double> %379 = shufflevector <8 x double> %378, <8 x double> poison, <8 x i32> %380 = fadd <8 x double> %343, %379 %381 = fmul <8 x double> %380, %382 = fadd <8 x double> %332, %338 %383 = fadd <8 x double> %335, %373 %384 = bitcast <8 x i64> %375 to <8 x double> %385 = shufflevector <8 x double> %384, <8 x double> poison, <8 x i32> %386 = fsub <8 x double> %336, %385 %387 = fsub <8 x double> %337, %381 %388 = fsub <8 x double> %332, %338 %389 = fsub <8 x double> %335, %373 %390 = fadd <8 x double> %336, %385 %391 = fadd <8 x double> %337, %381 %392 = fadd <8 x double> %358, %382 store <8 x double> %392, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %393 = fsub <8 x double> %358, %382 store <8 x double> %393, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %394 = fmul <8 x double> %383, %395 = shufflevector <8 x double> %394, <8 x double> poison, <8 x i32> %_4.i566 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %383, <8 x double> %395, i32 noundef 4) #23 %396 = fadd <8 x double> %_4.i566, %359 store <8 x double> %396, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %397 = fsub <8 x double> %359, %_4.i566 store <8 x double> %397, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %398 = bitcast <8 x double> %386 to <8 x i64> %399 = xor <8 x i64> %398, %400 = bitcast <8 x i64> %399 to <8 x double> %401 = shufflevector <8 x double> %400, <8 x double> poison, <8 x i32> %402 = fadd <8 x double> %386, %401 %403 = fmul <8 x double> %402, %404 = fadd <8 x double> %362, %403 store <8 x double> %404, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %405 = fsub <8 x double> %362, %403 store <8 x double> %405, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %406 = fmul <8 x double> %387, %407 = shufflevector <8 x double> %406, <8 x double> poison, <8 x i32> %_4.i565 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %387, <8 x double> %407, i32 noundef 4) #23 %408 = fadd <8 x double> %_4.i565, %363 store <8 x double> %408, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %409 = fsub <8 x double> %363, %_4.i565 store <8 x double> %409, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %410 = bitcast <8 x double> %388 to <8 x i64> %411 = xor <8 x i64> %410, %412 = bitcast <8 x i64> %411 to <8 x double> %413 = shufflevector <8 x double> %412, <8 x double> poison, <8 x i32> %414 = fsub <8 x double> %364, %413 store <8 x double> %414, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %415 = fadd <8 x double> %364, %413 store <8 x double> %415, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %416 = fmul <8 x double> %389, %417 = shufflevector <8 x double> %416, <8 x double> poison, <8 x i32> %_4.i564 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %389, <8 x double> %417, i32 noundef 4) #23 %418 = fsub <8 x double> %365, %_4.i564 store <8 x double> %418, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %419 = fadd <8 x double> %365, %_4.i564 store <8 x double> %419, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %420 = bitcast <8 x double> %390 to <8 x i64> %421 = xor <8 x i64> %420, %422 = bitcast <8 x i64> %421 to <8 x double> %423 = shufflevector <8 x double> %422, <8 x double> poison, <8 x i32> %424 = fadd <8 x double> %390, %423 %425 = fmul <8 x double> %424, %426 = fsub <8 x double> %366, %425 store <8 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %427 = fadd <8 x double> %366, %425 store <8 x double> %427, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %428 = fmul <8 x double> %391, %429 = shufflevector <8 x double> %428, <8 x double> poison, <8 x i32> %_4.i563 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %391, <8 x double> %429, i32 noundef 4) #23 %430 = fsub <8 x double> %367, %_4.i563 store <8 x double> %430, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %431 = fadd <8 x double> %367, %_4.i563 store <8 x double> %431, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !458, !noalias !467 %exitcond.not.i = icmp eq i64 %188, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !451 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h3e81fc2dcda42bacE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !468) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !468, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !468, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !468, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !468, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !468, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !468, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !468, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !468 store i64 16, ptr %n.i, align 8, !noalias !468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !468 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !468 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !468 store ptr null, ptr %_16.i, align 8, !noalias !468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !468 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !468 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !468 store ptr null, ptr %_24.i, align 8, !noalias !468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !468 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !468 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !468 store ptr null, ptr %_32.i, align 8, !noalias !468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !468 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !468 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %bb26.i.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !468 store ptr null, ptr %_40.i, align 8, !noalias !468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb26.i.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !468 tail call void @llvm.experimental.noalias.scope.decl(metadata !471) tail call void @llvm.experimental.noalias.scope.decl(metadata !474) tail call void @llvm.experimental.noalias.scope.decl(metadata !476) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !476, !noalias !478 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !476, !noalias !478 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !476, !noalias !478 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !471, !noalias !479 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !471, !noalias !479 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !471, !noalias !479 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !471, !noalias !479 %12 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %13 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %14 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %15 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = bitcast <8 x i64> %17 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fadd <8 x double> %12, %14 %21 = fsub <8 x double> %13, %19 %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %24 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %25 = fmul <8 x double> %24, %22 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %23, <8 x double> %21, <8 x double> %25, i32 noundef 4) #23 %26 = fsub <8 x double> %12, %14 %27 = shufflevector <8 x double> %26, <8 x double> poison, <8 x i32> %28 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %29 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %30 = fmul <8 x double> %29, %27 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %28, <8 x double> %26, <8 x double> %30, i32 noundef 4) #23 %31 = fadd <8 x double> %13, %19 %32 = shufflevector <8 x double> %31, <8 x double> poison, <8 x i32> %33 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %35 = fmul <8 x double> %34, %32 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %33, <8 x double> %31, <8 x double> %35, i32 noundef 4) #23 %36 = shufflevector <8 x double> %20, <8 x double> %_4.i93, <8 x i32> %37 = shufflevector <8 x double> %20, <8 x double> %_4.i93, <8 x i32> %38 = shufflevector <8 x double> %_4.i92, <8 x double> %_4.i, <8 x i32> %39 = shufflevector <8 x double> %_4.i92, <8 x double> %_4.i, <8 x i32> %40 = shufflevector <8 x double> %36, <8 x double> %38, <8 x i32> %41 = shufflevector <8 x double> %36, <8 x double> %38, <8 x i32> %42 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> %43 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> store <8 x double> %40, ptr %scratch.0.i, align 8, !alias.scope !474, !noalias !480 %44 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %42, ptr %44, align 8, !alias.scope !474, !noalias !480 %45 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %41, ptr %45, align 8, !alias.scope !474, !noalias !480 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %43, ptr %46, align 8, !alias.scope !474, !noalias !480 %47 = fadd <8 x double> %40, %41 %48 = fsub <8 x double> %40, %41 %49 = fadd <8 x double> %42, %43 %50 = fsub <8 x double> %42, %43 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = bitcast <8 x i64> %52 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fadd <8 x double> %47, %49 %56 = fsub <8 x double> %48, %54 %57 = fsub <8 x double> %47, %49 %58 = fadd <8 x double> %48, %54 store <8 x double> %55, ptr %buf.0.i, align 8, !noalias !468 store <8 x double> %56, ptr %7, align 8, !noalias !468 store <8 x double> %57, ptr %6, align 8, !noalias !468 store <8 x double> %58, ptr %8, align 8, !noalias !468 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !468 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h411abca536432d45E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !481) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !481, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !481, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !481, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !481, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !481, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !481, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !481, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !481, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !481 store i64 256, ptr %n.i, align 8, !noalias !481 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !481 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !481 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !481 store ptr null, ptr %_16.i, align 8, !noalias !481 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !481 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !481 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !481 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !481 store ptr null, ptr %_24.i, align 8, !noalias !481 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !481 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !481 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !481 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !481 store ptr null, ptr %_32.i, align 8, !noalias !481 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !481 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !481 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !481 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7019927d01aa602fE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !481 store ptr null, ptr %_40.i, align 8, !noalias !481 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7019927d01aa602fE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !481 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 br label %bb13.i.i.i bb13.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7019927d01aa602fE.exit", %bb13.i.i.i %iter.i.i.i.sroa.22.0649 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7019927d01aa602fE.exit" ], [ %10, %bb13.i.i.i ] %10 = add nuw nsw i64 %iter.i.i.i.sroa.22.0649, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.sroa.22.0649 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.sroa.22.0649 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.sroa.22.0649 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.sroa.22.0649 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !484 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !484 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !484 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !484 %11 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %12 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %13 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %14 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %15 = bitcast <8 x double> %14 to <8 x i64> %16 = xor <8 x i64> %15, %17 = bitcast <8 x i64> %16 to <8 x double> %18 = shufflevector <8 x double> %17, <8 x double> poison, <8 x i32> %19 = fadd <8 x double> %11, %13 %20 = fsub <8 x double> %12, %18 %21 = fsub <8 x double> %11, %13 %22 = fadd <8 x double> %12, %18 store <8 x double> %19, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !484 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !484 store <8 x double> %21, ptr %_3.i.i.i.i.i.i, align 8, !noalias !484 store <8 x double> %22, ptr %_3.i.i.i.i, align 8, !noalias !484 %exitcond.not = icmp eq i64 %10, 16 br i1 %exitcond.not, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit", label %bb13.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit": ; preds = %bb13.i.i.i %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 tail call void @llvm.experimental.noalias.scope.decl(metadata !488) tail call void @llvm.experimental.noalias.scope.decl(metadata !491) tail call void @llvm.experimental.noalias.scope.decl(metadata !493) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 br label %bb30.i bb30.i: ; preds = %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit", %bb30.i %iter.sroa.104.01903.i = phi i64 [ %196, %bb30.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01903.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 3 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %30, align 8, !alias.scope !493, !noalias !495, !noundef !3 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %31, align 8, !alias.scope !493, !noalias !495, !noundef !3 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %32, align 8, !alias.scope !493, !noalias !495, !noundef !3 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %33, align 8, !alias.scope !493, !noalias !495, !noundef !3 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %34, align 8, !alias.scope !493, !noalias !495, !noundef !3 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %35, align 8, !alias.scope !493, !noalias !495, !noundef !3 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %36, align 8, !alias.scope !493, !noalias !495, !noundef !3 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %37, align 8, !alias.scope !493, !noalias !495, !noundef !3 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %38, align 8, !alias.scope !493, !noalias !495, !noundef !3 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %39, align 8, !alias.scope !493, !noalias !495, !noundef !3 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %40, align 8, !alias.scope !493, !noalias !495, !noundef !3 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %41, align 8, !alias.scope !493, !noalias !495, !noundef !3 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %42, align 8, !alias.scope !493, !noalias !495, !noundef !3 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %43, align 8, !alias.scope !493, !noalias !495, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %44 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %45 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %46 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %47 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %48 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %49 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %50 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %52 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %53 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %54 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %55 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %56 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %57 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %58 = shufflevector <2 x double> %44, <2 x double> poison, <8 x i32> zeroinitializer %59 = shufflevector <2 x double> %44, <2 x double> poison, <8 x i32> %60 = shufflevector <2 x double> %45, <2 x double> poison, <8 x i32> zeroinitializer %61 = shufflevector <2 x double> %45, <2 x double> poison, <8 x i32> %62 = shufflevector <2 x double> %46, <2 x double> poison, <8 x i32> zeroinitializer %63 = shufflevector <2 x double> %46, <2 x double> poison, <8 x i32> %64 = shufflevector <2 x double> %47, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %47, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> %70 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> zeroinitializer %71 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !491, !noalias !496 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %53, align 8, !alias.scope !491, !noalias !496 %72 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %73 = fmul <8 x double> %59, %72 %_4.i66 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %73, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %52, align 8, !alias.scope !491, !noalias !496 %74 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %61, %74 %_4.i65 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %60, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %75, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %54, align 8, !alias.scope !491, !noalias !496 %76 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %63, %76 %_4.i64 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %62, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %77, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %51, align 8, !alias.scope !491, !noalias !496 %78 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %79 = fmul <8 x double> %65, %78 %_4.i63 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %79, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %56, align 8, !alias.scope !491, !noalias !496 %80 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %67, %80 %_4.i62 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %81, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %55, align 8, !alias.scope !491, !noalias !496 %82 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %69, %82 %_4.i61 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %83, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %57, align 8, !alias.scope !491, !noalias !496 %84 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %71, %84 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %85, i32 noundef 4) #23 %86 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i63 %87 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i63 %88 = fadd <8 x double> %_4.i65, %_4.i61 %89 = fsub <8 x double> %_4.i65, %_4.i61 %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x i64> %91 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = fadd <8 x double> %_4.i66, %_4.i62 %95 = fsub <8 x double> %_4.i66, %_4.i62 %96 = fadd <8 x double> %_4.i64, %_4.i %97 = fsub <8 x double> %_4.i64, %_4.i %98 = bitcast <8 x double> %97 to <8 x i64> %99 = xor <8 x i64> %98, %100 = bitcast <8 x i64> %99 to <8 x double> %101 = shufflevector <8 x double> %100, <8 x double> poison, <8 x i32> %102 = fadd <8 x double> %86, %88 %103 = fadd <8 x double> %94, %96 %104 = fadd <8 x double> %102, %103 store <8 x double> %104, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %105 = fsub <8 x double> %102, %103 store <8 x double> %105, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %106 = fsub <8 x double> %87, %93 %107 = fsub <8 x double> %95, %101 %108 = bitcast <8 x double> %107 to <8 x i64> %109 = xor <8 x i64> %108, %110 = bitcast <8 x i64> %109 to <8 x double> %111 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %112 = fadd <8 x double> %107, %111 %113 = fmul <8 x double> %112, %114 = fadd <8 x double> %106, %113 store <8 x double> %114, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %115 = fsub <8 x double> %106, %113 store <8 x double> %115, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %116 = fsub <8 x double> %86, %88 %117 = fsub <8 x double> %94, %96 %118 = bitcast <8 x double> %117 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fsub <8 x double> %116, %121 store <8 x double> %122, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %123 = fadd <8 x double> %116, %121 store <8 x double> %123, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %124 = fadd <8 x double> %87, %93 %125 = fadd <8 x double> %95, %101 %126 = bitcast <8 x double> %125 to <8 x i64> %127 = xor <8 x i64> %126, %128 = bitcast <8 x i64> %127 to <8 x double> %129 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %130 = fadd <8 x double> %125, %129 %131 = fmul <8 x double> %130, %132 = fsub <8 x double> %124, %131 store <8 x double> %132, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %133 = fadd <8 x double> %124, %131 store <8 x double> %133, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !488, !noalias !497 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %y0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %_131.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %134 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %135 = fmul <8 x double> %59, %134 %_4.i66.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> %135, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %136 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %61, %136 %_4.i65.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %60, <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> %137, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %138 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %63, %138 %_4.i64.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %62, <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> %139, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %140 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %65, %140 %_4.i63.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> %141, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %142 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %67, %142 %_4.i62.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> %143, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %144 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %69, %144 %_4.i61.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> %145, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !491, !noalias !496 %146 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %71, %146 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> %147, i32 noundef 4) #23 %148 = fadd <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i63.1 %149 = fsub <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i63.1 %150 = fadd <8 x double> %_4.i65.1, %_4.i61.1 %151 = fsub <8 x double> %_4.i65.1, %_4.i61.1 %152 = bitcast <8 x double> %151 to <8 x i64> %153 = xor <8 x i64> %152, %154 = bitcast <8 x i64> %153 to <8 x double> %155 = shufflevector <8 x double> %154, <8 x double> poison, <8 x i32> %156 = fadd <8 x double> %_4.i66.1, %_4.i62.1 %157 = fsub <8 x double> %_4.i66.1, %_4.i62.1 %158 = fadd <8 x double> %_4.i64.1, %_4.i.1 %159 = fsub <8 x double> %_4.i64.1, %_4.i.1 %160 = bitcast <8 x double> %159 to <8 x i64> %161 = xor <8 x i64> %160, %162 = bitcast <8 x i64> %161 to <8 x double> %163 = shufflevector <8 x double> %162, <8 x double> poison, <8 x i32> %164 = fadd <8 x double> %148, %150 %165 = fadd <8 x double> %156, %158 %166 = fadd <8 x double> %164, %165 store <8 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %167 = fsub <8 x double> %164, %165 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %168 = fsub <8 x double> %149, %155 %169 = fsub <8 x double> %157, %163 %170 = bitcast <8 x double> %169 to <8 x i64> %171 = xor <8 x i64> %170, %172 = bitcast <8 x i64> %171 to <8 x double> %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = fadd <8 x double> %169, %173 %175 = fmul <8 x double> %174, %176 = fadd <8 x double> %168, %175 store <8 x double> %176, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %177 = fsub <8 x double> %168, %175 store <8 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %178 = fsub <8 x double> %148, %150 %179 = fsub <8 x double> %156, %158 %180 = bitcast <8 x double> %179 to <8 x i64> %181 = xor <8 x i64> %180, %182 = bitcast <8 x i64> %181 to <8 x double> %183 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %184 = fsub <8 x double> %178, %183 store <8 x double> %184, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %185 = fadd <8 x double> %178, %183 store <8 x double> %185, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %186 = fadd <8 x double> %149, %155 %187 = fadd <8 x double> %157, %163 %188 = bitcast <8 x double> %187 to <8 x i64> %189 = xor <8 x i64> %188, %190 = bitcast <8 x i64> %189 to <8 x double> %191 = shufflevector <8 x double> %190, <8 x double> poison, <8 x i32> %192 = fadd <8 x double> %187, %191 %193 = fmul <8 x double> %192, %194 = fsub <8 x double> %186, %193 store <8 x double> %194, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %195 = fadd <8 x double> %186, %193 store <8 x double> %195, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !488, !noalias !497 %196 = add nuw nsw i64 %iter.sroa.104.01903.i, 1 %exitcond650.not = icmp eq i64 %196, 4 br i1 %exitcond650.not, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, label %bb30.i _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !498) tail call void @llvm.experimental.noalias.scope.decl(metadata !501) tail call void @llvm.experimental.noalias.scope.decl(metadata !503) %197 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %198 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %199 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %200 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %201 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %202 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %203 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %204 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %205 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %206 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %207 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %208, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %208 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %197, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52 = getelementptr inbounds %"fft_simd::c64x4", ptr %198, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54 = getelementptr inbounds %"fft_simd::c64x4", ptr %199, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i55 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i56 = getelementptr inbounds %"fft_simd::c64x4", ptr %200, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %203, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %202, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %204, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %201, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %206, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %205, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i57 = getelementptr inbounds %"fft_simd::c64x4", ptr %207, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !503, !noalias !505 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !503, !noalias !505 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !503, !noalias !505 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !503, !noalias !505 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !503, !noalias !505 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !503, !noalias !505 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i57, align 8, !alias.scope !503, !noalias !505 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !501, !noalias !506 %209 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %209, align 8, !alias.scope !501, !noalias !506 %210 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %210, align 8, !alias.scope !501, !noalias !506 %211 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %211, align 8, !alias.scope !501, !noalias !506 %212 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %212, align 8, !alias.scope !501, !noalias !506 %213 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %213, align 8, !alias.scope !501, !noalias !506 %214 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %214, align 8, !alias.scope !501, !noalias !506 %215 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %215, align 8, !alias.scope !501, !noalias !506 %216 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %217 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %218 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %219 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %220 = shufflevector <8 x double> %216, <8 x double> %218, <8 x i32> %221 = shufflevector <8 x double> %216, <8 x double> %218, <8 x i32> %222 = shufflevector <8 x double> %217, <8 x double> %219, <8 x i32> %223 = shufflevector <8 x double> %217, <8 x double> %219, <8 x i32> %224 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %225 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %226 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %227 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %228 = shufflevector <8 x double> %224, <8 x double> %226, <8 x i32> %229 = shufflevector <8 x double> %224, <8 x double> %226, <8 x i32> %230 = shufflevector <8 x double> %225, <8 x double> %227, <8 x i32> %231 = shufflevector <8 x double> %225, <8 x double> %227, <8 x i32> %232 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %233 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %234 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %235 = fmul <8 x double> %234, %232 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %233, <8 x double> %222, <8 x double> %235, i32 noundef 4) #23 %236 = shufflevector <8 x double> %221, <8 x double> poison, <8 x i32> %237 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %238 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %239 = fmul <8 x double> %238, %236 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %237, <8 x double> %221, <8 x double> %239, i32 noundef 4) #23 %240 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %241 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %242 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %242, %240 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %241, <8 x double> %223, <8 x double> %243, i32 noundef 4) #23 %244 = shufflevector <8 x double> %228, <8 x double> poison, <8 x i32> %245 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %246 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %247 = fmul <8 x double> %246, %244 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %245, <8 x double> %228, <8 x double> %247, i32 noundef 4) #23 %248 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %249 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %250 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %251 = fmul <8 x double> %250, %248 %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %249, <8 x double> %230, <8 x double> %251, i32 noundef 4) #23 %252 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %253 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %254 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %255 = fmul <8 x double> %254, %252 %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %253, <8 x double> %229, <8 x double> %255, i32 noundef 4) #23 %256 = shufflevector <8 x double> %231, <8 x double> poison, <8 x i32> %257 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %258 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %259 = fmul <8 x double> %258, %256 %_4.i67 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %257, <8 x double> %231, <8 x double> %259, i32 noundef 4) #23 %260 = fadd <8 x double> %220, %_4.i70 %261 = fsub <8 x double> %220, %_4.i70 %262 = fadd <8 x double> %_4.i72, %_4.i68 %263 = fsub <8 x double> %_4.i72, %_4.i68 %264 = bitcast <8 x double> %263 to <8 x i64> %265 = xor <8 x i64> %264, %266 = bitcast <8 x i64> %265 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fadd <8 x double> %_4.i73, %_4.i69 %269 = fsub <8 x double> %_4.i73, %_4.i69 %270 = fadd <8 x double> %_4.i71, %_4.i67 %271 = fsub <8 x double> %_4.i71, %_4.i67 %272 = bitcast <8 x double> %271 to <8 x i64> %273 = xor <8 x i64> %272, %274 = bitcast <8 x i64> %273 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fadd <8 x double> %260, %262 %277 = fadd <8 x double> %268, %270 %278 = fadd <8 x double> %276, %277 store <8 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !498, !noalias !507 %279 = fsub <8 x double> %276, %277 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53, align 8, !alias.scope !498, !noalias !507 %280 = fsub <8 x double> %261, %267 %281 = fsub <8 x double> %269, %275 %282 = bitcast <8 x double> %281 to <8 x i64> %283 = xor <8 x i64> %282, %284 = bitcast <8 x i64> %283 to <8 x double> %285 = shufflevector <8 x double> %284, <8 x double> poison, <8 x i32> %286 = fadd <8 x double> %281, %285 %287 = fmul <8 x double> %286, %288 = fadd <8 x double> %280, %287 store <8 x double> %288, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !498, !noalias !507 %289 = fsub <8 x double> %280, %287 store <8 x double> %289, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54, align 8, !alias.scope !498, !noalias !507 %290 = fsub <8 x double> %260, %262 %291 = fsub <8 x double> %268, %270 %292 = bitcast <8 x double> %291 to <8 x i64> %293 = xor <8 x i64> %292, %294 = bitcast <8 x i64> %293 to <8 x double> %295 = shufflevector <8 x double> %294, <8 x double> poison, <8 x i32> %296 = fsub <8 x double> %290, %295 store <8 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51, align 8, !alias.scope !498, !noalias !507 %297 = fadd <8 x double> %290, %295 store <8 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i55, align 8, !alias.scope !498, !noalias !507 %298 = fadd <8 x double> %261, %267 %299 = fadd <8 x double> %269, %275 %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = bitcast <8 x i64> %301 to <8 x double> %303 = shufflevector <8 x double> %302, <8 x double> poison, <8 x i32> %304 = fadd <8 x double> %299, %303 %305 = fmul <8 x double> %304, %306 = fsub <8 x double> %298, %305 store <8 x double> %306, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52, align 8, !alias.scope !498, !noalias !507 %307 = fadd <8 x double> %298, %305 store <8 x double> %307, ptr %_3.i.i.i.i.i.i.i.i.i.i.i56, align 8, !alias.scope !498, !noalias !507 %exitcond.not.i60 = icmp eq i64 %208, 8 br i1 %exitcond.not.i60, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !481 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h427cd1c1bcb6503cE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !508) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !508, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !508, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !508, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !508, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !508, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !508, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !508, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !508, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !508 store i64 1024, ptr %n.i, align 8, !noalias !508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !508 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !508 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !508 store ptr null, ptr %_16.i, align 8, !noalias !508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !508 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !508 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !508 store ptr null, ptr %_24.i, align 8, !noalias !508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !508 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !508 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !508 store ptr null, ptr %_32.i, align 8, !noalias !508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !508 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !508 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hefdd0c9243b53db4E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !508 store ptr null, ptr %_40.i, align 8, !noalias !508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hefdd0c9243b53db4E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !508 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 br label %bb13.i.i.i bb13.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hefdd0c9243b53db4E.exit", %bb13.i.i.i %iter.i.i.i.sroa.22.0612 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hefdd0c9243b53db4E.exit" ], [ %10, %bb13.i.i.i ] %10 = add nuw nsw i64 %iter.i.i.i.sroa.22.0612, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.sroa.22.0612 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.sroa.22.0612 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.sroa.22.0612 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.sroa.22.0612 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !511 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !511 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !511 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !511 %11 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %12 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %13 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %14 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %15 = bitcast <8 x double> %14 to <8 x i64> %16 = xor <8 x i64> %15, %17 = fadd <8 x double> %11, %13 %18 = bitcast <8 x i64> %16 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fsub <8 x double> %12, %19 %21 = fsub <8 x double> %11, %13 %22 = fadd <8 x double> %12, %19 store <8 x double> %17, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !511 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !511 store <8 x double> %21, ptr %_3.i.i.i.i.i.i, align 8, !noalias !511 store <8 x double> %22, ptr %_3.i.i.i.i, align 8, !noalias !511 %exitcond.not = icmp eq i64 %10, 64 br i1 %exitcond.not, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", label %bb13.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit": ; preds = %bb13.i.i.i %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 tail call void @llvm.experimental.noalias.scope.decl(metadata !515) tail call void @llvm.experimental.noalias.scope.decl(metadata !518) tail call void @llvm.experimental.noalias.scope.decl(metadata !520) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 br label %bb22.us.i bb22.us.i: ; preds = %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", %bb36.bb20.loopexit_crit_edge.us.i %iter.sroa.60.0645.us.i = phi i64 [ %63, %bb36.bb20.loopexit_crit_edge.us.i ], [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 6 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1 %w1.0614.us.i = load <2 x float>, ptr %26, align 8, !alias.scope !520, !noalias !522, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %27, align 8, !alias.scope !520, !noalias !522, !noundef !3 %28 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2 %w2.0616.us.i = load <2 x float>, ptr %28, align 8, !alias.scope !520, !noalias !522, !noundef !3 %29 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %29, align 8, !alias.scope !520, !noalias !522, !noundef !3 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3 %w3.0618.us.i = load <2 x float>, ptr %30, align 8, !alias.scope !520, !noalias !522, !noundef !3 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %31, align 8, !alias.scope !520, !noalias !522, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %32 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %33 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %34 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 32 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 16 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 48 %38 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> zeroinitializer %39 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> %40 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> zeroinitializer %41 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> %42 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> zeroinitializer %43 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> br label %bb38.us.i bb38.us.i: ; preds = %bb38.us.i, %bb22.us.i %iter5.sroa.50.0632.us.i = phi i64 [ 0, %bb22.us.i ], [ %44, %bb38.us.i ] %44 = add nuw nsw i64 %iter5.sroa.50.0632.us.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %37, i64 %iter5.sroa.50.0632.us.i %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !518, !noalias !523 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !518, !noalias !523 %45 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %46 = fmul <8 x double> %39, %45 %_4.i199 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %46, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i, align 8, !alias.scope !518, !noalias !523 %47 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %48 = fmul <8 x double> %41, %47 %_4.i198 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %48, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.us.i, align 8, !alias.scope !518, !noalias !523 %49 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %50 = fmul <8 x double> %43, %49 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %50, i32 noundef 4) #23 %51 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i198 %52 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i198 %53 = fadd <8 x double> %_4.i199, %_4.i %54 = fsub <8 x double> %_4.i199, %_4.i %55 = bitcast <8 x double> %54 to <8 x i64> %56 = xor <8 x i64> %55, %57 = fadd <8 x double> %51, %53 store <8 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !515, !noalias !524 %58 = bitcast <8 x i64> %56 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = fsub <8 x double> %52, %59 store <8 x double> %60, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !515, !noalias !524 %61 = fsub <8 x double> %51, %53 store <8 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !515, !noalias !524 %62 = fadd <8 x double> %52, %59 store <8 x double> %62, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !515, !noalias !524 %exitcond.not.i = icmp eq i64 %44, 16 br i1 %exitcond.not.i, label %bb36.bb20.loopexit_crit_edge.us.i, label %bb38.us.i bb36.bb20.loopexit_crit_edge.us.i: ; preds = %bb38.us.i %63 = add nuw nsw i64 %iter.sroa.60.0645.us.i, 1 %exitcond613.not = icmp eq i64 %63, 4 br i1 %exitcond613.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, label %bb22.us.i _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit: ; preds = %bb36.bb20.loopexit_crit_edge.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !525) tail call void @llvm.experimental.noalias.scope.decl(metadata !528) tail call void @llvm.experimental.noalias.scope.decl(metadata !530) br label %bb22.us.i66 bb22.us.i66: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, %bb22.us.i66 %iter.sroa.60.0645.us.i67 = phi i64 [ %154, %bb22.us.i66 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68 = shl i64 %iter.sroa.60.0645.us.i67, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68 %start1.i.i.i.i.us.i70 = shl i64 %iter.sroa.60.0645.us.i67, 4 %data.i.i.i.i.i.i.us.i71 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i70 %data.i.i.i.i.i.i.i.i.us.i72 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68 %data.i.i.i.i.i.i.i.i.i.i.us.i73 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i70, i64 1 %w1.0614.us.i75 = load <2 x float>, ptr %64, align 8, !alias.scope !530, !noalias !532, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i70, i64 1, i32 1 %w1.1615.us.i76 = load <2 x float>, ptr %65, align 8, !alias.scope !530, !noalias !532, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i70, i64 2 %w2.0616.us.i77 = load <2 x float>, ptr %66, align 8, !alias.scope !530, !noalias !532, !noundef !3 %67 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i70, i64 2, i32 1 %w2.1617.us.i78 = load <2 x float>, ptr %67, align 8, !alias.scope !530, !noalias !532, !noundef !3 %68 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i70, i64 3 %w3.0618.us.i79 = load <2 x float>, ptr %68, align 8, !alias.scope !530, !noalias !532, !noundef !3 %69 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i70, i64 3, i32 1 %w3.1619.us.i80 = load <2 x float>, ptr %69, align 8, !alias.scope !530, !noalias !532, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i81 = shufflevector <2 x float> %w1.0614.us.i75, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i82 = shufflevector <2 x float> %w1.1615.us.i76, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i83 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i81, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i82, <4 x i32> %70 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i83 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i85 = shufflevector <2 x float> %w2.0616.us.i77, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i86 = shufflevector <2 x float> %w2.1617.us.i78, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i87 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i85, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i86, <4 x i32> %71 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i87 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i89 = shufflevector <2 x float> %w3.0618.us.i79, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i90 = shufflevector <2 x float> %w3.1619.us.i80, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i91 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i89, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i90, <4 x i32> %72 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i91 to <2 x double> %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 8 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 4 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 12 %76 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> zeroinitializer %77 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> %78 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> zeroinitializer %79 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> %80 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> zeroinitializer %81 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i103 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i71, align 8, !alias.scope !528, !noalias !533 %_84.sroa.0.0.copyload.us.i104 = load <8 x double>, ptr %74, align 8, !alias.scope !528, !noalias !533 %82 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i104, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %77, %82 %_4.i202 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i104, <8 x double> %83, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i106 = load <8 x double>, ptr %73, align 8, !alias.scope !528, !noalias !533 %84 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i106, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %79, %84 %_4.i201 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i106, <8 x double> %85, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i108 = load <8 x double>, ptr %75, align 8, !alias.scope !528, !noalias !533 %86 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i108, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %81, %86 %_4.i200 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i108, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %a.sroa.0.0.copyload.us.i103, %_4.i201 %89 = fsub <8 x double> %a.sroa.0.0.copyload.us.i103, %_4.i201 %90 = fadd <8 x double> %_4.i202, %_4.i200 %91 = fsub <8 x double> %_4.i202, %_4.i200 %92 = bitcast <8 x double> %91 to <8 x i64> %93 = xor <8 x i64> %92, %94 = fadd <8 x double> %88, %90 store <8 x double> %94, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69, align 8, !alias.scope !525, !noalias !534 %95 = bitcast <8 x i64> %93 to <8 x double> %96 = shufflevector <8 x double> %95, <8 x double> poison, <8 x i32> %97 = fsub <8 x double> %89, %96 store <8 x double> %97, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74, align 8, !alias.scope !525, !noalias !534 %98 = fsub <8 x double> %88, %90 store <8 x double> %98, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i73, align 8, !alias.scope !525, !noalias !534 %99 = fadd <8 x double> %89, %96 store <8 x double> %99, ptr %data.i.i.i.i.i.i.i.i.us.i72, align 8, !alias.scope !525, !noalias !534 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i73, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i72, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i99.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 1 %_3.i.i.i.i.i.i.i.i.us.i100.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 5 %_3.i.i.i.i.i.i.us.i101.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 9 %_3.i.i.i.i.us.i102.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 13 %a.sroa.0.0.copyload.us.i103.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i99.1, align 8, !alias.scope !528, !noalias !533 %_84.sroa.0.0.copyload.us.i104.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i100.1, align 8, !alias.scope !528, !noalias !533 %100 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i104.1, <8 x double> poison, <8 x i32> %101 = fmul <8 x double> %77, %100 %_4.i202.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i104.1, <8 x double> %101, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i106.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i101.1, align 8, !alias.scope !528, !noalias !533 %102 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i106.1, <8 x double> poison, <8 x i32> %103 = fmul <8 x double> %79, %102 %_4.i201.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i106.1, <8 x double> %103, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i108.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i102.1, align 8, !alias.scope !528, !noalias !533 %104 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i108.1, <8 x double> poison, <8 x i32> %105 = fmul <8 x double> %81, %104 %_4.i200.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i108.1, <8 x double> %105, i32 noundef 4) #23 %106 = fadd <8 x double> %a.sroa.0.0.copyload.us.i103.1, %_4.i201.1 %107 = fsub <8 x double> %a.sroa.0.0.copyload.us.i103.1, %_4.i201.1 %108 = fadd <8 x double> %_4.i202.1, %_4.i200.1 %109 = fsub <8 x double> %_4.i202.1, %_4.i200.1 %110 = bitcast <8 x double> %109 to <8 x i64> %111 = xor <8 x i64> %110, %112 = fadd <8 x double> %106, %108 store <8 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.1, align 8, !alias.scope !525, !noalias !534 %113 = bitcast <8 x i64> %111 to <8 x double> %114 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %115 = fsub <8 x double> %107, %114 store <8 x double> %115, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.1, align 8, !alias.scope !525, !noalias !534 %116 = fsub <8 x double> %106, %108 store <8 x double> %116, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.1, align 8, !alias.scope !525, !noalias !534 %117 = fadd <8 x double> %107, %114 store <8 x double> %117, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.1, align 8, !alias.scope !525, !noalias !534 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i73, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i72, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i99.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 2 %_3.i.i.i.i.i.i.i.i.us.i100.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 6 %_3.i.i.i.i.i.i.us.i101.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 10 %_3.i.i.i.i.us.i102.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 14 %a.sroa.0.0.copyload.us.i103.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i99.2, align 8, !alias.scope !528, !noalias !533 %_84.sroa.0.0.copyload.us.i104.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i100.2, align 8, !alias.scope !528, !noalias !533 %118 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i104.2, <8 x double> poison, <8 x i32> %119 = fmul <8 x double> %77, %118 %_4.i202.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i104.2, <8 x double> %119, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i106.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i101.2, align 8, !alias.scope !528, !noalias !533 %120 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i106.2, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %79, %120 %_4.i201.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i106.2, <8 x double> %121, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i108.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i102.2, align 8, !alias.scope !528, !noalias !533 %122 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i108.2, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %81, %122 %_4.i200.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i108.2, <8 x double> %123, i32 noundef 4) #23 %124 = fadd <8 x double> %a.sroa.0.0.copyload.us.i103.2, %_4.i201.2 %125 = fsub <8 x double> %a.sroa.0.0.copyload.us.i103.2, %_4.i201.2 %126 = fadd <8 x double> %_4.i202.2, %_4.i200.2 %127 = fsub <8 x double> %_4.i202.2, %_4.i200.2 %128 = bitcast <8 x double> %127 to <8 x i64> %129 = xor <8 x i64> %128, %130 = fadd <8 x double> %124, %126 store <8 x double> %130, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.2, align 8, !alias.scope !525, !noalias !534 %131 = bitcast <8 x i64> %129 to <8 x double> %132 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %133 = fsub <8 x double> %125, %132 store <8 x double> %133, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.2, align 8, !alias.scope !525, !noalias !534 %134 = fsub <8 x double> %124, %126 store <8 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.2, align 8, !alias.scope !525, !noalias !534 %135 = fadd <8 x double> %125, %132 store <8 x double> %135, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.2, align 8, !alias.scope !525, !noalias !534 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i73, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i72, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i99.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 3 %_3.i.i.i.i.i.i.i.i.us.i100.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 7 %_3.i.i.i.i.i.i.us.i101.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 11 %_3.i.i.i.i.us.i102.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i71, i64 15 %a.sroa.0.0.copyload.us.i103.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i99.3, align 8, !alias.scope !528, !noalias !533 %_84.sroa.0.0.copyload.us.i104.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i100.3, align 8, !alias.scope !528, !noalias !533 %136 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i104.3, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %77, %136 %_4.i202.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i104.3, <8 x double> %137, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i106.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i101.3, align 8, !alias.scope !528, !noalias !533 %138 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i106.3, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %79, %138 %_4.i201.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i106.3, <8 x double> %139, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i108.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i102.3, align 8, !alias.scope !528, !noalias !533 %140 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i108.3, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %81, %140 %_4.i200.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i108.3, <8 x double> %141, i32 noundef 4) #23 %142 = fadd <8 x double> %a.sroa.0.0.copyload.us.i103.3, %_4.i201.3 %143 = fsub <8 x double> %a.sroa.0.0.copyload.us.i103.3, %_4.i201.3 %144 = fadd <8 x double> %_4.i202.3, %_4.i200.3 %145 = fsub <8 x double> %_4.i202.3, %_4.i200.3 %146 = bitcast <8 x double> %145 to <8 x i64> %147 = xor <8 x i64> %146, %148 = fadd <8 x double> %142, %144 store <8 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.3, align 8, !alias.scope !525, !noalias !534 %149 = bitcast <8 x i64> %147 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fsub <8 x double> %143, %150 store <8 x double> %151, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.3, align 8, !alias.scope !525, !noalias !534 %152 = fsub <8 x double> %142, %144 store <8 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.3, align 8, !alias.scope !525, !noalias !534 %153 = fadd <8 x double> %143, %150 store <8 x double> %153, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.3, align 8, !alias.scope !525, !noalias !534 %154 = add nuw nsw i64 %iter.sroa.60.0645.us.i67, 1 %exitcond614.not = icmp eq i64 %154, 16 br i1 %exitcond614.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit122, label %bb22.us.i66 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit122: ; preds = %bb22.us.i66 tail call void @llvm.experimental.noalias.scope.decl(metadata !535) tail call void @llvm.experimental.noalias.scope.decl(metadata !538) tail call void @llvm.experimental.noalias.scope.decl(metadata !540) br label %bb22.us.i138 bb22.us.i138: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit122, %bb22.us.i138 %iter.sroa.60.0645.us.i139 = phi i64 [ %191, %bb22.us.i138 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit122 ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i140 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i139 %start1.i.i.i.i.us.i141 = shl i64 %iter.sroa.60.0645.us.i139, 2 %data.i.i.i.i.i.i.us.i142 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i141 %data.i.i.i.i.i.i.i.i.us.i143 = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.60.0645.us.i139 %data.i.i.i.i.i.i.i.i.i.i.us.i144 = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.60.0645.us.i139 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i145 = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.60.0645.us.i139 %155 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i141, i64 1 %w1.0614.us.i146 = load <2 x float>, ptr %155, align 8, !alias.scope !540, !noalias !542, !noundef !3 %156 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i141, i64 1, i32 1 %w1.1615.us.i147 = load <2 x float>, ptr %156, align 8, !alias.scope !540, !noalias !542, !noundef !3 %157 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i141, i64 2 %w2.0616.us.i148 = load <2 x float>, ptr %157, align 8, !alias.scope !540, !noalias !542, !noundef !3 %158 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i141, i64 2, i32 1 %w2.1617.us.i149 = load <2 x float>, ptr %158, align 8, !alias.scope !540, !noalias !542, !noundef !3 %159 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i141, i64 3 %w3.0618.us.i150 = load <2 x float>, ptr %159, align 8, !alias.scope !540, !noalias !542, !noundef !3 %160 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i141, i64 3, i32 1 %w3.1619.us.i151 = load <2 x float>, ptr %160, align 8, !alias.scope !540, !noalias !542, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i152 = shufflevector <2 x float> %w1.0614.us.i146, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i153 = shufflevector <2 x float> %w1.1615.us.i147, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i154 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i152, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i153, <4 x i32> %161 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i154 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i156 = shufflevector <2 x float> %w2.0616.us.i148, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i157 = shufflevector <2 x float> %w2.1617.us.i149, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i158 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i156, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i157, <4 x i32> %162 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i158 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i160 = shufflevector <2 x float> %w3.0618.us.i150, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i161 = shufflevector <2 x float> %w3.1619.us.i151, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i162 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i160, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i161, <4 x i32> %163 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i162 to <2 x double> %164 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i142, i64 2 %165 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i142, i64 1 %166 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i142, i64 3 %167 = shufflevector <2 x double> %161, <2 x double> poison, <8 x i32> zeroinitializer %168 = shufflevector <2 x double> %161, <2 x double> poison, <8 x i32> %169 = shufflevector <2 x double> %162, <2 x double> poison, <8 x i32> zeroinitializer %170 = shufflevector <2 x double> %162, <2 x double> poison, <8 x i32> %171 = shufflevector <2 x double> %163, <2 x double> poison, <8 x i32> zeroinitializer %172 = shufflevector <2 x double> %163, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i174 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i142, align 8, !alias.scope !538, !noalias !543 %_84.sroa.0.0.copyload.us.i175 = load <8 x double>, ptr %165, align 8, !alias.scope !538, !noalias !543 %173 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i175, <8 x double> poison, <8 x i32> %174 = fmul <8 x double> %168, %173 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %167, <8 x double> %_84.sroa.0.0.copyload.us.i175, <8 x double> %174, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i177 = load <8 x double>, ptr %164, align 8, !alias.scope !538, !noalias !543 %175 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i177, <8 x double> poison, <8 x i32> %176 = fmul <8 x double> %170, %175 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %_86.sroa.0.0.copyload.us.i177, <8 x double> %176, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i179 = load <8 x double>, ptr %166, align 8, !alias.scope !538, !noalias !543 %177 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i179, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %172, %177 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %171, <8 x double> %_88.sroa.0.0.copyload.us.i179, <8 x double> %178, i32 noundef 4) #23 %179 = fadd <8 x double> %a.sroa.0.0.copyload.us.i174, %_4.i204 %180 = fsub <8 x double> %a.sroa.0.0.copyload.us.i174, %_4.i204 %181 = fadd <8 x double> %_4.i205, %_4.i203 %182 = fsub <8 x double> %_4.i205, %_4.i203 %183 = bitcast <8 x double> %182 to <8 x i64> %184 = xor <8 x i64> %183, %185 = fadd <8 x double> %179, %181 store <8 x double> %185, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i140, align 8, !alias.scope !535, !noalias !544 %186 = bitcast <8 x i64> %184 to <8 x double> %187 = shufflevector <8 x double> %186, <8 x double> poison, <8 x i32> %188 = fsub <8 x double> %180, %187 store <8 x double> %188, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i145, align 8, !alias.scope !535, !noalias !544 %189 = fsub <8 x double> %179, %181 store <8 x double> %189, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i144, align 8, !alias.scope !535, !noalias !544 %190 = fadd <8 x double> %180, %187 store <8 x double> %190, ptr %data.i.i.i.i.i.i.i.i.us.i143, align 8, !alias.scope !535, !noalias !544 %191 = add nuw nsw i64 %iter.sroa.60.0645.us.i139, 1 %exitcond615.not = icmp eq i64 %191, 64 br i1 %exitcond615.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit193, label %bb22.us.i138 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit193: ; preds = %bb22.us.i138 tail call void @llvm.experimental.noalias.scope.decl(metadata !545) tail call void @llvm.experimental.noalias.scope.decl(metadata !548) tail call void @llvm.experimental.noalias.scope.decl(metadata !550) %192 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %193 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %194 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 br label %bb15.i196 bb15.i196: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit193, %bb15.i196 %iter.sroa.50.0449.i = phi i64 [ %195, %bb15.i196 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit193 ] %195 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %193, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %192, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %194, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !550, !noalias !552 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !550, !noalias !552 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !550, !noalias !552 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !548, !noalias !553 %196 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %196, align 8, !alias.scope !548, !noalias !553 %197 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %197, align 8, !alias.scope !548, !noalias !553 %198 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %198, align 8, !alias.scope !548, !noalias !553 %199 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %200 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %201 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %202 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %203 = shufflevector <8 x double> %199, <8 x double> %201, <8 x i32> %204 = shufflevector <8 x double> %199, <8 x double> %201, <8 x i32> %205 = shufflevector <8 x double> %200, <8 x double> %202, <8 x i32> %206 = shufflevector <8 x double> %200, <8 x double> %202, <8 x i32> %207 = shufflevector <8 x double> %205, <8 x double> poison, <8 x i32> %208 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %209 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %210 = fmul <8 x double> %209, %207 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %208, <8 x double> %205, <8 x double> %210, i32 noundef 4) #23 %211 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %212 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %213 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %214 = fmul <8 x double> %213, %211 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %212, <8 x double> %204, <8 x double> %214, i32 noundef 4) #23 %215 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %218 = fmul <8 x double> %217, %215 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %216, <8 x double> %206, <8 x double> %218, i32 noundef 4) #23 %219 = fadd <8 x double> %203, %_4.i207 %220 = fsub <8 x double> %203, %_4.i207 %221 = fadd <8 x double> %_4.i208, %_4.i206 %222 = fsub <8 x double> %_4.i208, %_4.i206 %223 = bitcast <8 x double> %222 to <8 x i64> %224 = xor <8 x i64> %223, %225 = fadd <8 x double> %219, %221 store <8 x double> %225, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !545, !noalias !554 %226 = bitcast <8 x i64> %224 to <8 x double> %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fsub <8 x double> %220, %227 store <8 x double> %228, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !545, !noalias !554 %229 = fsub <8 x double> %219, %221 store <8 x double> %229, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !545, !noalias !554 %230 = fadd <8 x double> %220, %227 store <8 x double> %230, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !545, !noalias !554 %exitcond.not.i197 = icmp eq i64 %195, 64 br i1 %exitcond.not.i197, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i196 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i196 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !508 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h43bcc46b79f7f1e2E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !555) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !555, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !555, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !555, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !555, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !555, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !555, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !555, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !555, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !555 store i64 1024, ptr %n.i, align 8, !noalias !555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !555 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !555 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !555 store ptr null, ptr %_16.i, align 8, !noalias !555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !555 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !555 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !555 store ptr null, ptr %_24.i, align 8, !noalias !555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !555 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !555 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !555 store ptr null, ptr %_32.i, align 8, !noalias !555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !555 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !555 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d0d35243c81783E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !555 store ptr null, ptr %_40.i, align 8, !noalias !555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d0d35243c81783E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !555 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 br label %bb18.i.i.i.i bb18.i.i.i.i: ; preds = %bb18.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d0d35243c81783E.exit" %iter6.i.i.i.i.sroa.22.0974 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d0d35243c81783E.exit" ], [ %12, %bb18.i.i.i.i ] %9 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0974, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter6.i.i.i.i.sroa.22.0974 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter6.i.i.i.i.sroa.22.0974 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter6.i.i.i.i.sroa.22.0974 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter6.i.i.i.i.sroa.22.0974 %_51.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !558 %_52.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !558 %10 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload %11 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload store <8 x double> %10, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !558 store <8 x double> %11, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !558 %12 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0974, 2 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %9 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %9 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %9 %_51.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !558 %_52.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !558 %13 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 %14 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %13, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !558 store <8 x double> %14, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !558 %exitcond.not.1 = icmp eq i64 %12, 128 br i1 %exitcond.not.1, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit", label %bb18.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit": ; preds = %bb18.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !565) tail call void @llvm.experimental.noalias.scope.decl(metadata !568) tail call void @llvm.experimental.noalias.scope.decl(metadata !570) %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 br label %bb30.i bb28.loopexit.i: ; preds = %bb58.i br i1 %_2.i.i.i.i, label %bb30.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit bb30.i: ; preds = %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit", %bb28.loopexit.i %_2.i.i.i.i = phi i1 [ false, %bb28.loopexit.i ], [ true, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit" ] %iter.sroa.104.01903.i = phi i64 [ 1, %bb28.loopexit.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 7 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 6 %21 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %21, align 8, !alias.scope !570, !noalias !572, !noundef !3 %22 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %22, align 8, !alias.scope !570, !noalias !572, !noundef !3 %23 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %23, align 8, !alias.scope !570, !noalias !572, !noundef !3 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %24, align 8, !alias.scope !570, !noalias !572, !noundef !3 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %25, align 8, !alias.scope !570, !noalias !572, !noundef !3 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %26, align 8, !alias.scope !570, !noalias !572, !noundef !3 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %27, align 8, !alias.scope !570, !noalias !572, !noundef !3 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %28, align 8, !alias.scope !570, !noalias !572, !noundef !3 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %29, align 8, !alias.scope !570, !noalias !572, !noundef !3 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %30, align 8, !alias.scope !570, !noalias !572, !noundef !3 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %31, align 8, !alias.scope !570, !noalias !572, !noundef !3 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %32, align 8, !alias.scope !570, !noalias !572, !noundef !3 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %33, align 8, !alias.scope !570, !noalias !572, !noundef !3 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %34, align 8, !alias.scope !570, !noalias !572, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %35 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %36 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %37 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %38 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %39 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %40 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %41 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %42 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 64 %43 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %44 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %45 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %46 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 96 %47 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 80 %48 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 112 %49 = shufflevector <2 x double> %35, <2 x double> poison, <8 x i32> zeroinitializer %50 = shufflevector <2 x double> %35, <2 x double> poison, <8 x i32> %51 = shufflevector <2 x double> %36, <2 x double> poison, <8 x i32> zeroinitializer %52 = shufflevector <2 x double> %36, <2 x double> poison, <8 x i32> %53 = shufflevector <2 x double> %37, <2 x double> poison, <8 x i32> zeroinitializer %54 = shufflevector <2 x double> %37, <2 x double> poison, <8 x i32> %55 = shufflevector <2 x double> %38, <2 x double> poison, <8 x i32> zeroinitializer %56 = shufflevector <2 x double> %38, <2 x double> poison, <8 x i32> %57 = shufflevector <2 x double> %39, <2 x double> poison, <8 x i32> zeroinitializer %58 = shufflevector <2 x double> %39, <2 x double> poison, <8 x i32> %59 = shufflevector <2 x double> %40, <2 x double> poison, <8 x i32> zeroinitializer %60 = shufflevector <2 x double> %40, <2 x double> poison, <8 x i32> %61 = shufflevector <2 x double> %41, <2 x double> poison, <8 x i32> zeroinitializer %62 = shufflevector <2 x double> %41, <2 x double> poison, <8 x i32> br label %bb58.i bb58.i: ; preds = %bb58.i, %bb30.i %iter8.sroa.106.01842.i = phi i64 [ %63, %bb58.i ], [ 0, %bb30.i ] %63 = add nuw nsw i64 %iter8.sroa.106.01842.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %44, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %43, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %45, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %42, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %47, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %46, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %48, i64 %iter8.sroa.106.01842.i %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %64 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %50, %64 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %49, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %65, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %66 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %52, %66 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %51, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %67, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %68 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %69 = fmul <8 x double> %54, %68 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %53, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %69, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %70 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = fmul <8 x double> %56, %70 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %55, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %71, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %72 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %73 = fmul <8 x double> %58, %72 %_4.i202 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %57, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %73, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %74 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %60, %74 %_4.i201 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %59, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %75, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !alias.scope !568, !noalias !573 %76 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %62, %76 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %61, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %77, i32 noundef 4) #23 %78 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i203 %79 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i203 %80 = fadd <8 x double> %_4.i205, %_4.i201 %81 = fsub <8 x double> %_4.i205, %_4.i201 %82 = bitcast <8 x double> %81 to <8 x i64> %83 = xor <8 x i64> %82, %84 = bitcast <8 x i64> %83 to <8 x double> %85 = shufflevector <8 x double> %84, <8 x double> poison, <8 x i32> %86 = fadd <8 x double> %_4.i206, %_4.i202 %87 = fsub <8 x double> %_4.i206, %_4.i202 %88 = fadd <8 x double> %_4.i204, %_4.i %89 = fsub <8 x double> %_4.i204, %_4.i %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x i64> %91 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = fadd <8 x double> %78, %80 %95 = fadd <8 x double> %86, %88 %96 = fadd <8 x double> %94, %95 store <8 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %97 = fsub <8 x double> %94, %95 store <8 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %98 = fsub <8 x double> %79, %85 %99 = fsub <8 x double> %87, %93 %100 = bitcast <8 x double> %99 to <8 x i64> %101 = xor <8 x i64> %100, %102 = bitcast <8 x i64> %101 to <8 x double> %103 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %104 = fadd <8 x double> %99, %103 %105 = fmul <8 x double> %104, %106 = fadd <8 x double> %98, %105 store <8 x double> %106, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %107 = fsub <8 x double> %98, %105 store <8 x double> %107, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %108 = fsub <8 x double> %78, %80 %109 = fsub <8 x double> %86, %88 %110 = bitcast <8 x double> %109 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fsub <8 x double> %108, %113 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %115 = fadd <8 x double> %108, %113 store <8 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %116 = fadd <8 x double> %79, %85 %117 = fadd <8 x double> %87, %93 %118 = bitcast <8 x double> %117 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fadd <8 x double> %117, %121 %123 = fmul <8 x double> %122, %124 = fsub <8 x double> %116, %123 store <8 x double> %124, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %125 = fadd <8 x double> %116, %123 store <8 x double> %125, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !565, !noalias !574 %exitcond.not.i = icmp eq i64 %63, 16 br i1 %exitcond.not.i, label %bb28.loopexit.i, label %bb58.i _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb28.loopexit.i tail call void @llvm.experimental.noalias.scope.decl(metadata !575) tail call void @llvm.experimental.noalias.scope.decl(metadata !578) tail call void @llvm.experimental.noalias.scope.decl(metadata !580) %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %128 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %129 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %130 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %131 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 br label %bb30.i62 bb30.i62: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb30.i62 %iter.sroa.104.01903.i63 = phi i64 [ %298, %bb30.i62 ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 = shl nuw i64 %iter.sroa.104.01903.i63, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %start1.i.i.i.i.i.i.i66 = shl i64 %iter.sroa.104.01903.i63, 4 %data.i.i.i.i.i.i.i67 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i66 %data.i.i.i.i.i.i.i.i.i68 = getelementptr inbounds %"fft_simd::c64x4", ptr %131, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i69 = getelementptr inbounds %"fft_simd::c64x4", ptr %129, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i70 = getelementptr inbounds %"fft_simd::c64x4", ptr %130, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72 = getelementptr inbounds %"fft_simd::c64x4", ptr %128, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73 = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74 = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %start1.i.i.i.i.i75 = shl i64 %iter.sroa.104.01903.i63, 3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 1 %w1.01788.i76 = load <2 x float>, ptr %132, align 8, !alias.scope !580, !noalias !582, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 1, i32 1 %w1.11789.i77 = load <2 x float>, ptr %133, align 8, !alias.scope !580, !noalias !582, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 2 %w2.01790.i78 = load <2 x float>, ptr %134, align 8, !alias.scope !580, !noalias !582, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 2, i32 1 %w2.11791.i79 = load <2 x float>, ptr %135, align 8, !alias.scope !580, !noalias !582, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 3 %w3.01792.i80 = load <2 x float>, ptr %136, align 8, !alias.scope !580, !noalias !582, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 3, i32 1 %w3.11793.i81 = load <2 x float>, ptr %137, align 8, !alias.scope !580, !noalias !582, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 4 %w4.01794.i82 = load <2 x float>, ptr %138, align 8, !alias.scope !580, !noalias !582, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 4, i32 1 %w4.11795.i83 = load <2 x float>, ptr %139, align 8, !alias.scope !580, !noalias !582, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 5 %w5.01796.i84 = load <2 x float>, ptr %140, align 8, !alias.scope !580, !noalias !582, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 5, i32 1 %w5.11797.i85 = load <2 x float>, ptr %141, align 8, !alias.scope !580, !noalias !582, !noundef !3 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 6 %w6.01798.i86 = load <2 x float>, ptr %142, align 8, !alias.scope !580, !noalias !582, !noundef !3 %143 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 6, i32 1 %w6.11799.i87 = load <2 x float>, ptr %143, align 8, !alias.scope !580, !noalias !582, !noundef !3 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 7 %w7.01800.i88 = load <2 x float>, ptr %144, align 8, !alias.scope !580, !noalias !582, !noundef !3 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 7, i32 1 %w7.11801.i89 = load <2 x float>, ptr %145, align 8, !alias.scope !580, !noalias !582, !noundef !3 %value.i138.sroa.0.0.vec.expand.i90 = shufflevector <2 x float> %w1.01788.i76, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i91 = shufflevector <2 x float> %w1.11789.i77, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i92 = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i90, <4 x float> %value.i138.sroa.0.8.vec.expand.i91, <4 x i32> %146 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i92 to <2 x double> %value.i134.sroa.0.0.vec.expand.i94 = shufflevector <2 x float> %w2.01790.i78, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i95 = shufflevector <2 x float> %w2.11791.i79, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i96 = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i94, <4 x float> %value.i134.sroa.0.8.vec.expand.i95, <4 x i32> %147 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i96 to <2 x double> %value.i130.sroa.0.0.vec.expand.i98 = shufflevector <2 x float> %w3.01792.i80, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i99 = shufflevector <2 x float> %w3.11793.i81, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i100 = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i98, <4 x float> %value.i130.sroa.0.8.vec.expand.i99, <4 x i32> %148 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i100 to <2 x double> %value.i126.sroa.0.0.vec.expand.i102 = shufflevector <2 x float> %w4.01794.i82, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i103 = shufflevector <2 x float> %w4.11795.i83, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i104 = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i102, <4 x float> %value.i126.sroa.0.8.vec.expand.i103, <4 x i32> %149 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i104 to <2 x double> %value.i122.sroa.0.0.vec.expand.i106 = shufflevector <2 x float> %w5.01796.i84, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i107 = shufflevector <2 x float> %w5.11797.i85, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i108 = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i106, <4 x float> %value.i122.sroa.0.8.vec.expand.i107, <4 x i32> %150 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i108 to <2 x double> %value.i118.sroa.0.0.vec.expand.i110 = shufflevector <2 x float> %w6.01798.i86, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i111 = shufflevector <2 x float> %w6.11799.i87, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i112 = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i110, <4 x float> %value.i118.sroa.0.8.vec.expand.i111, <4 x i32> %151 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i112 to <2 x double> %value.i114.sroa.0.0.vec.expand.i114 = shufflevector <2 x float> %w7.01800.i88, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i115 = shufflevector <2 x float> %w7.11801.i89, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i116 = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i114, <4 x float> %value.i114.sroa.0.8.vec.expand.i115, <4 x i32> %152 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i116 to <2 x double> %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 8 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 4 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 2 %156 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 6 %157 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 12 %158 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 10 %159 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 14 %160 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %149, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %149, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %150, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %150, <2 x double> poison, <8 x i32> %170 = shufflevector <2 x double> %151, <2 x double> poison, <8 x i32> zeroinitializer %171 = shufflevector <2 x double> %151, <2 x double> poison, <8 x i32> %172 = shufflevector <2 x double> %152, <2 x double> poison, <8 x i32> zeroinitializer %173 = shufflevector <2 x double> %152, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i136 = load <8 x double>, ptr %data.i.i.i.i.i.i.i67, align 8, !alias.scope !578, !noalias !583 %_131.sroa.0.0.copyload.i137 = load <8 x double>, ptr %155, align 8, !alias.scope !578, !noalias !583 %174 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i137, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %161, %174 %_4.i213 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %_131.sroa.0.0.copyload.i137, <8 x double> %175, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i139 = load <8 x double>, ptr %154, align 8, !alias.scope !578, !noalias !583 %176 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i139, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %163, %176 %_4.i212 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %_133.sroa.0.0.copyload.i139, <8 x double> %177, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i141 = load <8 x double>, ptr %156, align 8, !alias.scope !578, !noalias !583 %178 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i141, <8 x double> poison, <8 x i32> %179 = fmul <8 x double> %165, %178 %_4.i211 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %_135.sroa.0.0.copyload.i141, <8 x double> %179, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i143 = load <8 x double>, ptr %153, align 8, !alias.scope !578, !noalias !583 %180 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i143, <8 x double> poison, <8 x i32> %181 = fmul <8 x double> %167, %180 %_4.i210 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %_137.sroa.0.0.copyload.i143, <8 x double> %181, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i145 = load <8 x double>, ptr %158, align 8, !alias.scope !578, !noalias !583 %182 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i145, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %169, %182 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %_139.sroa.0.0.copyload.i145, <8 x double> %183, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i147 = load <8 x double>, ptr %157, align 8, !alias.scope !578, !noalias !583 %184 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i147, <8 x double> poison, <8 x i32> %185 = fmul <8 x double> %171, %184 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %_141.sroa.0.0.copyload.i147, <8 x double> %185, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i149 = load <8 x double>, ptr %159, align 8, !alias.scope !578, !noalias !583 %186 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i149, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %173, %186 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %_143.sroa.0.0.copyload.i149, <8 x double> %187, i32 noundef 4) #23 %188 = fadd <8 x double> %y0.sroa.0.0.copyload.i136, %_4.i210 %189 = fsub <8 x double> %y0.sroa.0.0.copyload.i136, %_4.i210 %190 = fadd <8 x double> %_4.i212, %_4.i208 %191 = fsub <8 x double> %_4.i212, %_4.i208 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %_4.i213, %_4.i209 %197 = fsub <8 x double> %_4.i213, %_4.i209 %198 = fadd <8 x double> %_4.i211, %_4.i207 %199 = fsub <8 x double> %_4.i211, %_4.i207 %200 = bitcast <8 x double> %199 to <8 x i64> %201 = xor <8 x i64> %200, %202 = bitcast <8 x i64> %201 to <8 x double> %203 = shufflevector <8 x double> %202, <8 x double> poison, <8 x i32> %204 = fadd <8 x double> %188, %190 %205 = fadd <8 x double> %196, %198 %206 = fadd <8 x double> %204, %205 store <8 x double> %206, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65, align 8, !alias.scope !575, !noalias !584 %207 = fsub <8 x double> %204, %205 store <8 x double> %207, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71, align 8, !alias.scope !575, !noalias !584 %208 = fsub <8 x double> %189, %195 %209 = fsub <8 x double> %197, %203 %210 = bitcast <8 x double> %209 to <8 x i64> %211 = xor <8 x i64> %210, %212 = bitcast <8 x i64> %211 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fadd <8 x double> %209, %213 %215 = fmul <8 x double> %214, %216 = fadd <8 x double> %208, %215 store <8 x double> %216, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74, align 8, !alias.scope !575, !noalias !584 %217 = fsub <8 x double> %208, %215 store <8 x double> %217, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i70, align 8, !alias.scope !575, !noalias !584 %218 = fsub <8 x double> %188, %190 %219 = fsub <8 x double> %196, %198 %220 = bitcast <8 x double> %219 to <8 x i64> %221 = xor <8 x i64> %220, %222 = bitcast <8 x i64> %221 to <8 x double> %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = fsub <8 x double> %218, %223 store <8 x double> %224, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73, align 8, !alias.scope !575, !noalias !584 %225 = fadd <8 x double> %218, %223 store <8 x double> %225, ptr %data.i.i.i.i.i.i.i.i.i.i.i69, align 8, !alias.scope !575, !noalias !584 %226 = fadd <8 x double> %189, %195 %227 = fadd <8 x double> %197, %203 %228 = bitcast <8 x double> %227 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x i64> %229 to <8 x double> %231 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %232 = fadd <8 x double> %227, %231 %233 = fmul <8 x double> %232, %234 = fsub <8 x double> %226, %233 store <8 x double> %234, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72, align 8, !alias.scope !575, !noalias !584 %235 = fadd <8 x double> %226, %233 store <8 x double> %235, ptr %data.i.i.i.i.i.i.i.i.i68, align 8, !alias.scope !575, !noalias !584 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i120.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i121.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i122.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i123.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i124.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i125.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i70, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i126.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i69, i64 1 %_3.i.i.i.i.i.i.i.i.i127.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i68, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i128.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i129.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i130.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i131.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i132.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i133.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i134.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 13 %_3.i.i.i.i.i38.i.i.i.i135.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 15 %y0.sroa.0.0.copyload.i136.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i128.1, align 8, !alias.scope !578, !noalias !583 %_131.sroa.0.0.copyload.i137.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i129.1, align 8, !alias.scope !578, !noalias !583 %236 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i137.1, <8 x double> poison, <8 x i32> %237 = fmul <8 x double> %161, %236 %_4.i213.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %_131.sroa.0.0.copyload.i137.1, <8 x double> %237, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i139.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i130.1, align 8, !alias.scope !578, !noalias !583 %238 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i139.1, <8 x double> poison, <8 x i32> %239 = fmul <8 x double> %163, %238 %_4.i212.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %_133.sroa.0.0.copyload.i139.1, <8 x double> %239, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i141.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i131.1, align 8, !alias.scope !578, !noalias !583 %240 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i141.1, <8 x double> poison, <8 x i32> %241 = fmul <8 x double> %165, %240 %_4.i211.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %_135.sroa.0.0.copyload.i141.1, <8 x double> %241, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i143.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i132.1, align 8, !alias.scope !578, !noalias !583 %242 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i143.1, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %167, %242 %_4.i210.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %_137.sroa.0.0.copyload.i143.1, <8 x double> %243, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i145.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i133.1, align 8, !alias.scope !578, !noalias !583 %244 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i145.1, <8 x double> poison, <8 x i32> %245 = fmul <8 x double> %169, %244 %_4.i209.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %_139.sroa.0.0.copyload.i145.1, <8 x double> %245, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i147.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i134.1, align 8, !alias.scope !578, !noalias !583 %246 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i147.1, <8 x double> poison, <8 x i32> %247 = fmul <8 x double> %171, %246 %_4.i208.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %_141.sroa.0.0.copyload.i147.1, <8 x double> %247, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i149.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i135.1, align 8, !alias.scope !578, !noalias !583 %248 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i149.1, <8 x double> poison, <8 x i32> %249 = fmul <8 x double> %173, %248 %_4.i207.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %_143.sroa.0.0.copyload.i149.1, <8 x double> %249, i32 noundef 4) #23 %250 = fadd <8 x double> %y0.sroa.0.0.copyload.i136.1, %_4.i210.1 %251 = fsub <8 x double> %y0.sroa.0.0.copyload.i136.1, %_4.i210.1 %252 = fadd <8 x double> %_4.i212.1, %_4.i208.1 %253 = fsub <8 x double> %_4.i212.1, %_4.i208.1 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %_4.i213.1, %_4.i209.1 %259 = fsub <8 x double> %_4.i213.1, %_4.i209.1 %260 = fadd <8 x double> %_4.i211.1, %_4.i207.1 %261 = fsub <8 x double> %_4.i211.1, %_4.i207.1 %262 = bitcast <8 x double> %261 to <8 x i64> %263 = xor <8 x i64> %262, %264 = bitcast <8 x i64> %263 to <8 x double> %265 = shufflevector <8 x double> %264, <8 x double> poison, <8 x i32> %266 = fadd <8 x double> %250, %252 %267 = fadd <8 x double> %258, %260 %268 = fadd <8 x double> %266, %267 store <8 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i120.1, align 8, !alias.scope !575, !noalias !584 %269 = fsub <8 x double> %266, %267 store <8 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i124.1, align 8, !alias.scope !575, !noalias !584 %270 = fsub <8 x double> %251, %257 %271 = fsub <8 x double> %259, %265 %272 = bitcast <8 x double> %271 to <8 x i64> %273 = xor <8 x i64> %272, %274 = bitcast <8 x i64> %273 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fadd <8 x double> %271, %275 %277 = fmul <8 x double> %276, %278 = fadd <8 x double> %270, %277 store <8 x double> %278, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i121.1, align 8, !alias.scope !575, !noalias !584 %279 = fsub <8 x double> %270, %277 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i125.1, align 8, !alias.scope !575, !noalias !584 %280 = fsub <8 x double> %250, %252 %281 = fsub <8 x double> %258, %260 %282 = bitcast <8 x double> %281 to <8 x i64> %283 = xor <8 x i64> %282, %284 = bitcast <8 x i64> %283 to <8 x double> %285 = shufflevector <8 x double> %284, <8 x double> poison, <8 x i32> %286 = fsub <8 x double> %280, %285 store <8 x double> %286, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i122.1, align 8, !alias.scope !575, !noalias !584 %287 = fadd <8 x double> %280, %285 store <8 x double> %287, ptr %_3.i.i.i.i.i.i.i.i.i.i.i126.1, align 8, !alias.scope !575, !noalias !584 %288 = fadd <8 x double> %251, %257 %289 = fadd <8 x double> %259, %265 %290 = bitcast <8 x double> %289 to <8 x i64> %291 = xor <8 x i64> %290, %292 = bitcast <8 x i64> %291 to <8 x double> %293 = shufflevector <8 x double> %292, <8 x double> poison, <8 x i32> %294 = fadd <8 x double> %289, %293 %295 = fmul <8 x double> %294, %296 = fsub <8 x double> %288, %295 store <8 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i123.1, align 8, !alias.scope !575, !noalias !584 %297 = fadd <8 x double> %288, %295 store <8 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i127.1, align 8, !alias.scope !575, !noalias !584 %298 = add nuw nsw i64 %iter.sroa.104.01903.i63, 1 %exitcond975.not = icmp eq i64 %298, 16 br i1 %exitcond975.not, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187, label %bb30.i62 _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187: ; preds = %bb30.i62 tail call void @llvm.experimental.noalias.scope.decl(metadata !585) tail call void @llvm.experimental.noalias.scope.decl(metadata !588) tail call void @llvm.experimental.noalias.scope.decl(metadata !590) %299 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %300 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %301 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %302 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %303 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %304 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %305 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %306, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187 ] %306 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i191 = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i192 = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i193 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i194 = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i195 = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i196 = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %301, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %300, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %302, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %299, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %304, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %303, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i197 = getelementptr inbounds %"fft_simd::c64x4", ptr %305, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !590, !noalias !592 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !590, !noalias !592 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !590, !noalias !592 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !590, !noalias !592 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !590, !noalias !592 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !590, !noalias !592 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i197, align 8, !alias.scope !590, !noalias !592 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !588, !noalias !593 %307 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %307, align 8, !alias.scope !588, !noalias !593 %308 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %308, align 8, !alias.scope !588, !noalias !593 %309 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %309, align 8, !alias.scope !588, !noalias !593 %310 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %310, align 8, !alias.scope !588, !noalias !593 %311 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %311, align 8, !alias.scope !588, !noalias !593 %312 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %312, align 8, !alias.scope !588, !noalias !593 %313 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %313, align 8, !alias.scope !588, !noalias !593 %314 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %315 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %316 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %317 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %318 = shufflevector <8 x double> %314, <8 x double> %316, <8 x i32> %319 = shufflevector <8 x double> %314, <8 x double> %316, <8 x i32> %320 = shufflevector <8 x double> %315, <8 x double> %317, <8 x i32> %321 = shufflevector <8 x double> %315, <8 x double> %317, <8 x i32> %322 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %323 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %324 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %325 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %326 = shufflevector <8 x double> %322, <8 x double> %324, <8 x i32> %327 = shufflevector <8 x double> %322, <8 x double> %324, <8 x i32> %328 = shufflevector <8 x double> %323, <8 x double> %325, <8 x i32> %329 = shufflevector <8 x double> %323, <8 x double> %325, <8 x i32> %330 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %331 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %332 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %333 = fmul <8 x double> %332, %330 %_4.i220 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %331, <8 x double> %320, <8 x double> %333, i32 noundef 4) #23 %334 = shufflevector <8 x double> %319, <8 x double> poison, <8 x i32> %335 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %336 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %337 = fmul <8 x double> %336, %334 %_4.i219 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %335, <8 x double> %319, <8 x double> %337, i32 noundef 4) #23 %338 = shufflevector <8 x double> %321, <8 x double> poison, <8 x i32> %339 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %340 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %341 = fmul <8 x double> %340, %338 %_4.i218 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %339, <8 x double> %321, <8 x double> %341, i32 noundef 4) #23 %342 = shufflevector <8 x double> %326, <8 x double> poison, <8 x i32> %343 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %344 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %345 = fmul <8 x double> %344, %342 %_4.i217 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %343, <8 x double> %326, <8 x double> %345, i32 noundef 4) #23 %346 = shufflevector <8 x double> %328, <8 x double> poison, <8 x i32> %347 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %348 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %349 = fmul <8 x double> %348, %346 %_4.i216 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %347, <8 x double> %328, <8 x double> %349, i32 noundef 4) #23 %350 = shufflevector <8 x double> %327, <8 x double> poison, <8 x i32> %351 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %352 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %353 = fmul <8 x double> %352, %350 %_4.i215 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %351, <8 x double> %327, <8 x double> %353, i32 noundef 4) #23 %354 = shufflevector <8 x double> %329, <8 x double> poison, <8 x i32> %355 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %356 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %357 = fmul <8 x double> %356, %354 %_4.i214 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %355, <8 x double> %329, <8 x double> %357, i32 noundef 4) #23 %358 = fadd <8 x double> %318, %_4.i217 %359 = fsub <8 x double> %318, %_4.i217 %360 = fadd <8 x double> %_4.i219, %_4.i215 %361 = fsub <8 x double> %_4.i219, %_4.i215 %362 = bitcast <8 x double> %361 to <8 x i64> %363 = xor <8 x i64> %362, %364 = bitcast <8 x i64> %363 to <8 x double> %365 = shufflevector <8 x double> %364, <8 x double> poison, <8 x i32> %366 = fadd <8 x double> %_4.i220, %_4.i216 %367 = fsub <8 x double> %_4.i220, %_4.i216 %368 = fadd <8 x double> %_4.i218, %_4.i214 %369 = fsub <8 x double> %_4.i218, %_4.i214 %370 = bitcast <8 x double> %369 to <8 x i64> %371 = xor <8 x i64> %370, %372 = bitcast <8 x i64> %371 to <8 x double> %373 = shufflevector <8 x double> %372, <8 x double> poison, <8 x i32> %374 = fadd <8 x double> %358, %360 %375 = fadd <8 x double> %366, %368 %376 = fadd <8 x double> %374, %375 store <8 x double> %376, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !585, !noalias !594 %377 = fsub <8 x double> %374, %375 store <8 x double> %377, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i193, align 8, !alias.scope !585, !noalias !594 %378 = fsub <8 x double> %359, %365 %379 = fsub <8 x double> %367, %373 %380 = bitcast <8 x double> %379 to <8 x i64> %381 = xor <8 x i64> %380, %382 = bitcast <8 x i64> %381 to <8 x double> %383 = shufflevector <8 x double> %382, <8 x double> poison, <8 x i32> %384 = fadd <8 x double> %379, %383 %385 = fmul <8 x double> %384, %386 = fadd <8 x double> %378, %385 store <8 x double> %386, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !585, !noalias !594 %387 = fsub <8 x double> %378, %385 store <8 x double> %387, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i194, align 8, !alias.scope !585, !noalias !594 %388 = fsub <8 x double> %358, %360 %389 = fsub <8 x double> %366, %368 %390 = bitcast <8 x double> %389 to <8 x i64> %391 = xor <8 x i64> %390, %392 = bitcast <8 x i64> %391 to <8 x double> %393 = shufflevector <8 x double> %392, <8 x double> poison, <8 x i32> %394 = fsub <8 x double> %388, %393 store <8 x double> %394, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i191, align 8, !alias.scope !585, !noalias !594 %395 = fadd <8 x double> %388, %393 store <8 x double> %395, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i195, align 8, !alias.scope !585, !noalias !594 %396 = fadd <8 x double> %359, %365 %397 = fadd <8 x double> %367, %373 %398 = bitcast <8 x double> %397 to <8 x i64> %399 = xor <8 x i64> %398, %400 = bitcast <8 x i64> %399 to <8 x double> %401 = shufflevector <8 x double> %400, <8 x double> poison, <8 x i32> %402 = fadd <8 x double> %397, %401 %403 = fmul <8 x double> %402, %404 = fsub <8 x double> %396, %403 store <8 x double> %404, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i192, align 8, !alias.scope !585, !noalias !594 %405 = fadd <8 x double> %396, %403 store <8 x double> %405, ptr %_3.i.i.i.i.i.i.i.i.i.i.i196, align 8, !alias.scope !585, !noalias !594 %exitcond.not.i200 = icmp eq i64 %306, 32 br i1 %exitcond.not.i200, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !555 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h44c5a4bb2251d118E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !595) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !595, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !595, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !595, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !595, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !595, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !595, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !595, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !595, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !595 store i64 64, ptr %n.i, align 8, !noalias !595 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !595 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !595 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !595 store ptr null, ptr %_16.i, align 8, !noalias !595 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !595 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !595 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !595 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !595 store ptr null, ptr %_24.i, align 8, !noalias !595 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !595 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !595 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !595 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !595 store ptr null, ptr %_32.i, align 8, !noalias !595 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !595 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !595 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !595 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h64814aedd472078dE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !595 store ptr null, ptr %_40.i, align 8, !noalias !595 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h64814aedd472078dE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !595 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !598 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !598 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !598 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !598 %10 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %11 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %12 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %14 = bitcast <8 x double> %13 to <8 x i64> %15 = xor <8 x i64> %14, %16 = fadd <8 x double> %10, %12 %17 = bitcast <8 x i64> %15 to <8 x double> %18 = shufflevector <8 x double> %17, <8 x double> poison, <8 x i32> %19 = fsub <8 x double> %11, %18 %20 = fsub <8 x double> %10, %12 %21 = fadd <8 x double> %11, %18 store <8 x double> %16, ptr %buf.0.i, align 8, !noalias !598 store <8 x double> %19, ptr %8, align 8, !noalias !598 store <8 x double> %20, ptr %7, align 8, !noalias !598 store <8 x double> %21, ptr %9, align 8, !noalias !598 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_43.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !598 %_44.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !598 %_45.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !598 %_46.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !598 %22 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.sroa.0.0.copyload.1 %23 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.sroa.0.0.copyload.1 %24 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.sroa.0.0.copyload.1 %25 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.sroa.0.0.copyload.1 %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = fadd <8 x double> %22, %24 %29 = bitcast <8 x i64> %27 to <8 x double> %30 = shufflevector <8 x double> %29, <8 x double> poison, <8 x i32> %31 = fsub <8 x double> %23, %30 %32 = fsub <8 x double> %22, %24 %33 = fadd <8 x double> %23, %30 store <8 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !598 store <8 x double> %31, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !598 store <8 x double> %32, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !598 store <8 x double> %33, ptr %_3.i.i.i.i.1, align 8, !noalias !598 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_43.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !598 %_44.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !598 %_45.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !598 %_46.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !598 %34 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.sroa.0.0.copyload.2 %35 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.sroa.0.0.copyload.2 %36 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.sroa.0.0.copyload.2 %37 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.sroa.0.0.copyload.2 %38 = bitcast <8 x double> %37 to <8 x i64> %39 = xor <8 x i64> %38, %40 = fadd <8 x double> %34, %36 %41 = bitcast <8 x i64> %39 to <8 x double> %42 = shufflevector <8 x double> %41, <8 x double> poison, <8 x i32> %43 = fsub <8 x double> %35, %42 %44 = fsub <8 x double> %34, %36 %45 = fadd <8 x double> %35, %42 store <8 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !598 store <8 x double> %43, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !598 store <8 x double> %44, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !598 store <8 x double> %45, ptr %_3.i.i.i.i.2, align 8, !noalias !598 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_43.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !598 %_44.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !598 %_45.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !598 %_46.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !598 %46 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.sroa.0.0.copyload.3 %47 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.sroa.0.0.copyload.3 %48 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.sroa.0.0.copyload.3 %49 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.sroa.0.0.copyload.3 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = fadd <8 x double> %46, %48 %53 = bitcast <8 x i64> %51 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fsub <8 x double> %47, %54 %56 = fsub <8 x double> %46, %48 %57 = fadd <8 x double> %47, %54 store <8 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !598 store <8 x double> %55, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !598 store <8 x double> %56, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !598 store <8 x double> %57, ptr %_3.i.i.i.i.3, align 8, !noalias !598 tail call void @llvm.experimental.noalias.scope.decl(metadata !602) tail call void @llvm.experimental.noalias.scope.decl(metadata !605) tail call void @llvm.experimental.noalias.scope.decl(metadata !607) %58 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %59 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %60 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0614.us.i = load <2 x float>, ptr %61, align 8, !alias.scope !607, !noalias !609, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %62, align 8, !alias.scope !607, !noalias !609, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0616.us.i = load <2 x float>, ptr %63, align 8, !alias.scope !607, !noalias !609, !noundef !3 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %64, align 8, !alias.scope !607, !noalias !609, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0618.us.i = load <2 x float>, ptr %65, align 8, !alias.scope !607, !noalias !609, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %66, align 8, !alias.scope !607, !noalias !609, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %67 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %68 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %69 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %73 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> zeroinitializer %74 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> %75 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> zeroinitializer %76 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> %77 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> zeroinitializer %78 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !605, !noalias !610 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %71, align 8, !alias.scope !605, !noalias !610 %79 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %80 = fmul <8 x double> %74, %79 %_4.i52 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %73, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %80, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %70, align 8, !alias.scope !605, !noalias !610 %81 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %76, %81 %_4.i51 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %82, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %72, align 8, !alias.scope !605, !noalias !610 %83 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %78, %83 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %77, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %84, i32 noundef 4) #23 %85 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i51 %86 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i51 %87 = fadd <8 x double> %_4.i52, %_4.i %88 = fsub <8 x double> %_4.i52, %_4.i %89 = bitcast <8 x double> %88 to <8 x i64> %90 = xor <8 x i64> %89, %91 = fadd <8 x double> %85, %87 store <8 x double> %91, ptr %scratch.0.i, align 8, !alias.scope !602, !noalias !611 %92 = bitcast <8 x i64> %90 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = fsub <8 x double> %86, %93 store <8 x double> %94, ptr %59, align 8, !alias.scope !602, !noalias !611 %95 = fsub <8 x double> %85, %87 store <8 x double> %95, ptr %60, align 8, !alias.scope !602, !noalias !611 %96 = fadd <8 x double> %86, %93 store <8 x double> %96, ptr %58, align 8, !alias.scope !602, !noalias !611 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %data.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0614.us.i.1 = load <2 x float>, ptr %97, align 8, !alias.scope !607, !noalias !609, !noundef !3 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1615.us.i.1 = load <2 x float>, ptr %98, align 8, !alias.scope !607, !noalias !609, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0616.us.i.1 = load <2 x float>, ptr %99, align 8, !alias.scope !607, !noalias !609, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1617.us.i.1 = load <2 x float>, ptr %100, align 8, !alias.scope !607, !noalias !609, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0618.us.i.1 = load <2 x float>, ptr %101, align 8, !alias.scope !607, !noalias !609, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1619.us.i.1 = load <2 x float>, ptr %102, align 8, !alias.scope !607, !noalias !609, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0614.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1615.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %103 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0616.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1617.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %104 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0618.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1619.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %105 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %106 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %107 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %108 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %109 = shufflevector <2 x double> %103, <2 x double> poison, <8 x i32> zeroinitializer %110 = shufflevector <2 x double> %103, <2 x double> poison, <8 x i32> %111 = shufflevector <2 x double> %104, <2 x double> poison, <8 x i32> zeroinitializer %112 = shufflevector <2 x double> %104, <2 x double> poison, <8 x i32> %113 = shufflevector <2 x double> %105, <2 x double> poison, <8 x i32> zeroinitializer %114 = shufflevector <2 x double> %105, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !605, !noalias !610 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %107, align 8, !alias.scope !605, !noalias !610 %115 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %116 = fmul <8 x double> %110, %115 %_4.i52.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %109, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %116, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %106, align 8, !alias.scope !605, !noalias !610 %117 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %112, %117 %_4.i51.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %111, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %118, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %108, align 8, !alias.scope !605, !noalias !610 %119 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %120 = fmul <8 x double> %114, %119 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %113, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %120, i32 noundef 4) #23 %121 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i51.1 %122 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i51.1 %123 = fadd <8 x double> %_4.i52.1, %_4.i.1 %124 = fsub <8 x double> %_4.i52.1, %_4.i.1 %125 = bitcast <8 x double> %124 to <8 x i64> %126 = xor <8 x i64> %125, %127 = fadd <8 x double> %121, %123 store <8 x double> %127, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !602, !noalias !611 %128 = bitcast <8 x i64> %126 to <8 x double> %129 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %130 = fsub <8 x double> %122, %129 store <8 x double> %130, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !602, !noalias !611 %131 = fsub <8 x double> %121, %123 store <8 x double> %131, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !602, !noalias !611 %132 = fadd <8 x double> %122, %129 store <8 x double> %132, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !602, !noalias !611 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %data.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %data.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %data.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %133 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1 %w1.0614.us.i.2 = load <2 x float>, ptr %133, align 8, !alias.scope !607, !noalias !609, !noundef !3 %134 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1, i32 1 %w1.1615.us.i.2 = load <2 x float>, ptr %134, align 8, !alias.scope !607, !noalias !609, !noundef !3 %135 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2 %w2.0616.us.i.2 = load <2 x float>, ptr %135, align 8, !alias.scope !607, !noalias !609, !noundef !3 %136 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2, i32 1 %w2.1617.us.i.2 = load <2 x float>, ptr %136, align 8, !alias.scope !607, !noalias !609, !noundef !3 %137 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3 %w3.0618.us.i.2 = load <2 x float>, ptr %137, align 8, !alias.scope !607, !noalias !609, !noundef !3 %138 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3, i32 1 %w3.1619.us.i.2 = load <2 x float>, ptr %138, align 8, !alias.scope !607, !noalias !609, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w1.0614.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w1.1615.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.2, <4 x i32> %139 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w2.0616.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w2.1617.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.2, <4 x i32> %140 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w3.0618.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w3.1619.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.2, <4 x i32> %141 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.2 to <2 x double> %142 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %143 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %144 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %145 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> zeroinitializer %146 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> %147 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> zeroinitializer %148 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> %149 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> zeroinitializer %150 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !605, !noalias !610 %_84.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %143, align 8, !alias.scope !605, !noalias !610 %151 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %152 = fmul <8 x double> %146, %151 %_4.i52.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %145, <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> %152, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %142, align 8, !alias.scope !605, !noalias !610 %153 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %148, %153 %_4.i51.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %147, <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> %154, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %144, align 8, !alias.scope !605, !noalias !610 %155 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %150, %155 %_4.i.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %149, <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> %156, i32 noundef 4) #23 %157 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i51.2 %158 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i51.2 %159 = fadd <8 x double> %_4.i52.2, %_4.i.2 %160 = fsub <8 x double> %_4.i52.2, %_4.i.2 %161 = bitcast <8 x double> %160 to <8 x i64> %162 = xor <8 x i64> %161, %163 = fadd <8 x double> %157, %159 store <8 x double> %163, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !602, !noalias !611 %164 = bitcast <8 x i64> %162 to <8 x double> %165 = shufflevector <8 x double> %164, <8 x double> poison, <8 x i32> %166 = fsub <8 x double> %158, %165 store <8 x double> %166, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !602, !noalias !611 %167 = fsub <8 x double> %157, %159 store <8 x double> %167, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !602, !noalias !611 %168 = fadd <8 x double> %158, %165 store <8 x double> %168, ptr %data.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !602, !noalias !611 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %data.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %data.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %data.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %169 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1 %w1.0614.us.i.3 = load <2 x float>, ptr %169, align 8, !alias.scope !607, !noalias !609, !noundef !3 %170 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1, i32 1 %w1.1615.us.i.3 = load <2 x float>, ptr %170, align 8, !alias.scope !607, !noalias !609, !noundef !3 %171 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2 %w2.0616.us.i.3 = load <2 x float>, ptr %171, align 8, !alias.scope !607, !noalias !609, !noundef !3 %172 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2, i32 1 %w2.1617.us.i.3 = load <2 x float>, ptr %172, align 8, !alias.scope !607, !noalias !609, !noundef !3 %173 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3 %w3.0618.us.i.3 = load <2 x float>, ptr %173, align 8, !alias.scope !607, !noalias !609, !noundef !3 %174 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3, i32 1 %w3.1619.us.i.3 = load <2 x float>, ptr %174, align 8, !alias.scope !607, !noalias !609, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w1.0614.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w1.1615.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.3, <4 x i32> %175 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w2.0616.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w2.1617.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.3, <4 x i32> %176 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w3.0618.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w3.1619.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.3, <4 x i32> %177 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.3 to <2 x double> %178 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %179 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %180 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %181 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> zeroinitializer %182 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> %183 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> zeroinitializer %184 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> %185 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> zeroinitializer %186 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !605, !noalias !610 %_84.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %179, align 8, !alias.scope !605, !noalias !610 %187 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %182, %187 %_4.i52.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> %188, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %178, align 8, !alias.scope !605, !noalias !610 %189 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %190 = fmul <8 x double> %184, %189 %_4.i51.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %183, <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> %190, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %180, align 8, !alias.scope !605, !noalias !610 %191 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %186, %191 %_4.i.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> %192, i32 noundef 4) #23 %193 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i51.3 %194 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i51.3 %195 = fadd <8 x double> %_4.i52.3, %_4.i.3 %196 = fsub <8 x double> %_4.i52.3, %_4.i.3 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = fadd <8 x double> %193, %195 store <8 x double> %199, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !602, !noalias !611 %200 = bitcast <8 x i64> %198 to <8 x double> %201 = shufflevector <8 x double> %200, <8 x double> poison, <8 x i32> %202 = fsub <8 x double> %194, %201 store <8 x double> %202, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !602, !noalias !611 %203 = fsub <8 x double> %193, %195 store <8 x double> %203, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !602, !noalias !611 %204 = fadd <8 x double> %194, %201 store <8 x double> %204, ptr %data.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !602, !noalias !611 tail call void @llvm.experimental.noalias.scope.decl(metadata !612) tail call void @llvm.experimental.noalias.scope.decl(metadata !615) tail call void @llvm.experimental.noalias.scope.decl(metadata !617) %205 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %206 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %207 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 br label %bb15.i49 bb15.i49: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h64814aedd472078dE.exit", %bb15.i49 %iter.sroa.50.0449.i = phi i64 [ %208, %bb15.i49 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h64814aedd472078dE.exit" ] %208 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %206, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %205, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %207, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !617, !noalias !619 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !617, !noalias !619 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !617, !noalias !619 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !615, !noalias !620 %209 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %209, align 8, !alias.scope !615, !noalias !620 %210 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %210, align 8, !alias.scope !615, !noalias !620 %211 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %211, align 8, !alias.scope !615, !noalias !620 %212 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %213 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %214 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %215 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %216 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %217 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %218 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %219 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %220 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %223 = fmul <8 x double> %222, %220 %_4.i55 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %221, <8 x double> %218, <8 x double> %223, i32 noundef 4) #23 %224 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = fmul <8 x double> %226, %224 %_4.i54 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %225, <8 x double> %217, <8 x double> %227, i32 noundef 4) #23 %228 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %229 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %230, %228 %_4.i53 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %229, <8 x double> %219, <8 x double> %231, i32 noundef 4) #23 %232 = fadd <8 x double> %216, %_4.i54 %233 = fsub <8 x double> %216, %_4.i54 %234 = fadd <8 x double> %_4.i55, %_4.i53 %235 = fsub <8 x double> %_4.i55, %_4.i53 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = fadd <8 x double> %232, %234 store <8 x double> %238, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !612, !noalias !621 %239 = bitcast <8 x i64> %237 to <8 x double> %240 = shufflevector <8 x double> %239, <8 x double> poison, <8 x i32> %241 = fsub <8 x double> %233, %240 store <8 x double> %241, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !612, !noalias !621 %242 = fsub <8 x double> %232, %234 store <8 x double> %242, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !612, !noalias !621 %243 = fadd <8 x double> %233, %240 store <8 x double> %243, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !612, !noalias !621 %exitcond.not.i50 = icmp eq i64 %208, 4 br i1 %exitcond.not.i50, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i49 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i49 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !595 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h451fdf821e9ade79E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !622) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !622, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !622, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !622, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !622, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !622, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !622, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !622, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !622, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !622 store i64 512, ptr %n.i, align 8, !noalias !622 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !622 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !622 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !622 store ptr null, ptr %_16.i, align 8, !noalias !622 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !622 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !622 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !622 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !622 store ptr null, ptr %_24.i, align 8, !noalias !622 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !622 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !622 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !622 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !622 store ptr null, ptr %_32.i, align 8, !noalias !622 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !622 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !622 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !622 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf761f7f1cfcd0f35E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !622 store ptr null, ptr %_40.i, align 8, !noalias !622 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf761f7f1cfcd0f35E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !622 tail call void @llvm.experimental.noalias.scope.decl(metadata !625) tail call void @llvm.experimental.noalias.scope.decl(metadata !628) tail call void @llvm.experimental.noalias.scope.decl(metadata !630) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf761f7f1cfcd0f35E.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf761f7f1cfcd0f35E.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !625, !noalias !632 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %29 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %30 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %31 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %32 = bitcast <8 x double> %31 to <8 x i64> %33 = xor <8 x i64> %32, %34 = fadd <8 x double> %22, %24 %35 = bitcast <8 x i64> %27 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fsub <8 x double> %23, %36 %38 = fsub <8 x double> %22, %24 %39 = fadd <8 x double> %23, %36 %40 = fadd <8 x double> %28, %30 %41 = bitcast <8 x i64> %33 to <8 x double> %42 = shufflevector <8 x double> %41, <8 x double> poison, <8 x i32> %43 = fsub <8 x double> %29, %42 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %28, %30 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = fadd <8 x double> %29, %42 %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %53, %57 %59 = fmul <8 x double> %58, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !630, !noalias !633 %60 = fadd <8 x double> %34, %40 %61 = fadd <8 x double> %37, %49 %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %61, <8 x double> %65, i32 noundef 4) #23 %66 = bitcast <8 x i64> %52 to <8 x double> %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = fsub <8 x double> %38, %67 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %39, %59 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i202 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %34, %40 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i201 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %37, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i200 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %38, %67 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i199 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %39, %59 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %60, <8 x double> %_4.i204, <8 x i32> %99 = shufflevector <8 x double> %60, <8 x double> %_4.i204, <8 x i32> %100 = shufflevector <8 x double> %_4.i203, <8 x double> %_4.i202, <8 x i32> %101 = shufflevector <8 x double> %_4.i203, <8 x double> %_4.i202, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i201, <8 x double> %_4.i200, <8 x i32> %107 = shufflevector <8 x double> %_4.i201, <8 x double> %_4.i200, <8 x i32> %108 = shufflevector <8 x double> %_4.i199, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i199, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !628, !noalias !634 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !628, !noalias !634 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !628, !noalias !634 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !628, !noalias !634 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !628, !noalias !634 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !628, !noalias !634 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !628, !noalias !634 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !628, !noalias !634 %exitcond.not.i = icmp eq i64 %21, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !635) tail call void @llvm.experimental.noalias.scope.decl(metadata !638) tail call void @llvm.experimental.noalias.scope.decl(metadata !640) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 br label %bb30.i bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %iter.sroa.104.01923.i = phi i64 [ %294, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %128, align 8, !alias.scope !640, !noalias !642, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %129, align 8, !alias.scope !640, !noalias !642, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %130, align 8, !alias.scope !640, !noalias !642, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %131, align 8, !alias.scope !640, !noalias !642, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %132, align 8, !alias.scope !640, !noalias !642, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %133, align 8, !alias.scope !640, !noalias !642, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %134, align 8, !alias.scope !640, !noalias !642, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %135, align 8, !alias.scope !640, !noalias !642, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %136, align 8, !alias.scope !640, !noalias !642, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %137, align 8, !alias.scope !640, !noalias !642, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %138, align 8, !alias.scope !640, !noalias !642, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %139, align 8, !alias.scope !640, !noalias !642, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %140, align 8, !alias.scope !640, !noalias !642, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %141, align 8, !alias.scope !640, !noalias !642, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %142 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %143 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %144 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %145 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %146 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %147 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %148 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %149 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %150 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %151 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %156 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> zeroinitializer %157 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> %158 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> zeroinitializer %159 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> %160 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !635, !noalias !643 %170 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %171 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %172 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %173 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %177 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %178 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %179 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %180 = bitcast <8 x double> %179 to <8 x i64> %181 = xor <8 x i64> %180, %182 = fadd <8 x double> %170, %172 %183 = bitcast <8 x i64> %175 to <8 x double> %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = fsub <8 x double> %171, %184 %186 = fsub <8 x double> %170, %172 %187 = fadd <8 x double> %171, %184 %188 = fadd <8 x double> %176, %178 %189 = bitcast <8 x i64> %181 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fsub <8 x double> %177, %190 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %191, %195 %197 = fmul <8 x double> %196, %198 = fsub <8 x double> %176, %178 %199 = bitcast <8 x double> %198 to <8 x i64> %200 = xor <8 x i64> %199, %201 = fadd <8 x double> %177, %190 %202 = bitcast <8 x double> %201 to <8 x i64> %203 = xor <8 x i64> %202, %204 = bitcast <8 x i64> %203 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fadd <8 x double> %201, %205 %207 = fmul <8 x double> %206, %208 = fadd <8 x double> %182, %188 store <8 x double> %208, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !638, !noalias !644 %209 = fadd <8 x double> %185, %197 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fmul <8 x double> %157, %210 %_4.i211 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %209, <8 x double> %211, i32 noundef 4) #23 store <8 x double> %_4.i211, ptr %151, align 8, !alias.scope !638, !noalias !644 %212 = bitcast <8 x i64> %200 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fsub <8 x double> %186, %213 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %159, %215 %_4.i210 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i210, ptr %150, align 8, !alias.scope !638, !noalias !644 %217 = fsub <8 x double> %187, %207 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fmul <8 x double> %161, %218 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %217, <8 x double> %219, i32 noundef 4) #23 store <8 x double> %_4.i209, ptr %152, align 8, !alias.scope !638, !noalias !644 %220 = fsub <8 x double> %182, %188 %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %163, %221 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %220, <8 x double> %222, i32 noundef 4) #23 store <8 x double> %_4.i208, ptr %149, align 8, !alias.scope !638, !noalias !644 %223 = fsub <8 x double> %185, %197 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = fmul <8 x double> %165, %224 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %223, <8 x double> %225, i32 noundef 4) #23 store <8 x double> %_4.i207, ptr %154, align 8, !alias.scope !638, !noalias !644 %226 = fadd <8 x double> %186, %213 %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %167, %227 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %226, <8 x double> %228, i32 noundef 4) #23 store <8 x double> %_4.i206, ptr %153, align 8, !alias.scope !638, !noalias !644 %229 = fadd <8 x double> %187, %207 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %169, %230 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %229, <8 x double> %231, i32 noundef 4) #23 store <8 x double> %_4.i205, ptr %155, align 8, !alias.scope !638, !noalias !644 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !635, !noalias !643 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !635, !noalias !643 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !635, !noalias !643 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !635, !noalias !643 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !635, !noalias !643 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !635, !noalias !643 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !635, !noalias !643 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !635, !noalias !643 %232 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %233 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %234 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %235 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %239 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %240 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %241 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %242 = bitcast <8 x double> %241 to <8 x i64> %243 = xor <8 x i64> %242, %244 = fadd <8 x double> %232, %234 %245 = bitcast <8 x i64> %237 to <8 x double> %246 = shufflevector <8 x double> %245, <8 x double> poison, <8 x i32> %247 = fsub <8 x double> %233, %246 %248 = fsub <8 x double> %232, %234 %249 = fadd <8 x double> %233, %246 %250 = fadd <8 x double> %238, %240 %251 = bitcast <8 x i64> %243 to <8 x double> %252 = shufflevector <8 x double> %251, <8 x double> poison, <8 x i32> %253 = fsub <8 x double> %239, %252 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %253, %257 %259 = fmul <8 x double> %258, %260 = fsub <8 x double> %238, %240 %261 = bitcast <8 x double> %260 to <8 x i64> %262 = xor <8 x i64> %261, %263 = fadd <8 x double> %239, %252 %264 = bitcast <8 x double> %263 to <8 x i64> %265 = xor <8 x i64> %264, %266 = bitcast <8 x i64> %265 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fadd <8 x double> %263, %267 %269 = fmul <8 x double> %268, %270 = fadd <8 x double> %244, %250 store <8 x double> %270, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %271 = fadd <8 x double> %247, %259 %272 = shufflevector <8 x double> %271, <8 x double> poison, <8 x i32> %273 = fmul <8 x double> %157, %272 %_4.i211.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %271, <8 x double> %273, i32 noundef 4) #23 store <8 x double> %_4.i211.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %274 = bitcast <8 x i64> %262 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fsub <8 x double> %248, %275 %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fmul <8 x double> %159, %277 %_4.i210.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %276, <8 x double> %278, i32 noundef 4) #23 store <8 x double> %_4.i210.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %279 = fsub <8 x double> %249, %269 %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fmul <8 x double> %161, %280 %_4.i209.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %279, <8 x double> %281, i32 noundef 4) #23 store <8 x double> %_4.i209.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %282 = fsub <8 x double> %244, %250 %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fmul <8 x double> %163, %283 %_4.i208.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %282, <8 x double> %284, i32 noundef 4) #23 store <8 x double> %_4.i208.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %285 = fsub <8 x double> %247, %259 %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %165, %286 %_4.i207.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %285, <8 x double> %287, i32 noundef 4) #23 store <8 x double> %_4.i207.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %288 = fadd <8 x double> %248, %275 %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fmul <8 x double> %167, %289 %_4.i206.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %288, <8 x double> %290, i32 noundef 4) #23 store <8 x double> %_4.i206.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %291 = fadd <8 x double> %249, %269 %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fmul <8 x double> %169, %292 %_4.i205.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %291, <8 x double> %293, i32 noundef 4) #23 store <8 x double> %_4.i205.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !638, !noalias !644 %294 = add nuw nsw i64 %iter.sroa.104.01923.i, 1 %exitcond.not = icmp eq i64 %294, 8 br i1 %exitcond.not, label %bb17.i.i.i.i, label %bb30.i bb17.i.i.i.i: ; preds = %bb30.i, %bb17.i.i.i.i %iter.i.i.i.i.sroa.50.01005 = phi i64 [ %295, %bb17.i.i.i.i ], [ 0, %bb30.i ] %295 = add nuw nsw i64 %iter.i.i.i.i.sroa.50.01005, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.i.i.sroa.50.01005 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.i.i.sroa.50.01005 %_63.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 %_64.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 %_65.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 %_66.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 %_67.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 %_68.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !622 %_69.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !622 %_70.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !622 %296 = fadd <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = fadd <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %303 = fsub <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %304 = fadd <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %305 = fsub <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %306 = bitcast <8 x double> %305 to <8 x i64> %307 = xor <8 x i64> %306, %308 = fadd <8 x double> %296, %298 %309 = bitcast <8 x i64> %301 to <8 x double> %310 = shufflevector <8 x double> %309, <8 x double> poison, <8 x i32> %311 = fsub <8 x double> %297, %310 %312 = fsub <8 x double> %296, %298 %313 = fadd <8 x double> %297, %310 %314 = fadd <8 x double> %302, %304 %315 = bitcast <8 x i64> %307 to <8 x double> %316 = shufflevector <8 x double> %315, <8 x double> poison, <8 x i32> %317 = fsub <8 x double> %303, %316 %318 = bitcast <8 x double> %317 to <8 x i64> %319 = xor <8 x i64> %318, %320 = bitcast <8 x i64> %319 to <8 x double> %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %322 = fadd <8 x double> %317, %321 %323 = fmul <8 x double> %322, %324 = fsub <8 x double> %302, %304 %325 = bitcast <8 x double> %324 to <8 x i64> %326 = xor <8 x i64> %325, %327 = fadd <8 x double> %303, %316 %328 = bitcast <8 x double> %327 to <8 x i64> %329 = xor <8 x i64> %328, %330 = bitcast <8 x i64> %329 to <8 x double> %331 = shufflevector <8 x double> %330, <8 x double> poison, <8 x i32> %332 = fadd <8 x double> %327, %331 %333 = fmul <8 x double> %332, %334 = fadd <8 x double> %308, %314 %335 = fadd <8 x double> %311, %323 %336 = bitcast <8 x i64> %326 to <8 x double> %337 = shufflevector <8 x double> %336, <8 x double> poison, <8 x i32> %338 = fsub <8 x double> %312, %337 %339 = fsub <8 x double> %313, %333 %340 = fsub <8 x double> %308, %314 %341 = fsub <8 x double> %311, %323 %342 = fadd <8 x double> %312, %337 %343 = fadd <8 x double> %313, %333 store <8 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %335, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %338, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %339, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %340, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %341, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %342, ptr %_3.i.i.i.i.i.i, align 8, !noalias !622 store <8 x double> %343, ptr %_3.i.i.i.i, align 8, !noalias !622 %exitcond1006.not = icmp eq i64 %295, 16 br i1 %exitcond1006.not, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h3b1c3ab2f3eea406E.exit", label %bb17.i.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h3b1c3ab2f3eea406E.exit": ; preds = %bb17.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !622 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h46ba2335172c77a4E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !645) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !645, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !645, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !645, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !645, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !645, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !645, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !645, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !645, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !645 store i64 256, ptr %n.i, align 8, !noalias !645 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !645 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !645 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !645 store ptr null, ptr %_16.i, align 8, !noalias !645 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !645 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !645 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !645 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !645 store ptr null, ptr %_24.i, align 8, !noalias !645 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !645 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !645 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !645 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !645 store ptr null, ptr %_32.i, align 8, !noalias !645 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !645 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !645 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !645 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hff07759497004a85E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !645 store ptr null, ptr %_40.i, align 8, !noalias !645 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hff07759497004a85E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !645 tail call void @llvm.experimental.noalias.scope.decl(metadata !648) tail call void @llvm.experimental.noalias.scope.decl(metadata !651) tail call void @llvm.experimental.noalias.scope.decl(metadata !653) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hff07759497004a85E.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hff07759497004a85E.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !648, !noalias !655 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %29 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %30 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %31 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %32 = bitcast <8 x double> %31 to <8 x i64> %33 = xor <8 x i64> %32, %34 = fadd <8 x double> %22, %24 %35 = bitcast <8 x i64> %27 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fsub <8 x double> %23, %36 %38 = fsub <8 x double> %22, %24 %39 = fadd <8 x double> %23, %36 %40 = fadd <8 x double> %28, %30 %41 = bitcast <8 x i64> %33 to <8 x double> %42 = shufflevector <8 x double> %41, <8 x double> poison, <8 x i32> %43 = fsub <8 x double> %29, %42 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %28, %30 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = fadd <8 x double> %29, %42 %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %53, %57 %59 = fmul <8 x double> %58, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !653, !noalias !656 %60 = fadd <8 x double> %34, %40 %61 = fadd <8 x double> %37, %49 %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %61, <8 x double> %65, i32 noundef 4) #23 %66 = bitcast <8 x i64> %52 to <8 x double> %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = fsub <8 x double> %38, %67 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %39, %59 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %34, %40 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %37, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %38, %67 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %39, %59 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %60, <8 x double> %_4.i104, <8 x i32> %99 = shufflevector <8 x double> %60, <8 x double> %_4.i104, <8 x i32> %100 = shufflevector <8 x double> %_4.i103, <8 x double> %_4.i102, <8 x i32> %101 = shufflevector <8 x double> %_4.i103, <8 x double> %_4.i102, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i101, <8 x double> %_4.i100, <8 x i32> %107 = shufflevector <8 x double> %_4.i101, <8 x double> %_4.i100, <8 x i32> %108 = shufflevector <8 x double> %_4.i99, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i99, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !651, !noalias !657 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !651, !noalias !657 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !651, !noalias !657 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !651, !noalias !657 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !651, !noalias !657 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !651, !noalias !657 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !651, !noalias !657 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !651, !noalias !657 %exitcond.not.i = icmp eq i64 %21, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !658) tail call void @llvm.experimental.noalias.scope.decl(metadata !661) tail call void @llvm.experimental.noalias.scope.decl(metadata !663) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 br label %bb30.i bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %iter.sroa.104.01923.i = phi i64 [ %294, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %128, align 8, !alias.scope !663, !noalias !665, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %129, align 8, !alias.scope !663, !noalias !665, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %130, align 8, !alias.scope !663, !noalias !665, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %131, align 8, !alias.scope !663, !noalias !665, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %132, align 8, !alias.scope !663, !noalias !665, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %133, align 8, !alias.scope !663, !noalias !665, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %134, align 8, !alias.scope !663, !noalias !665, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %135, align 8, !alias.scope !663, !noalias !665, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %136, align 8, !alias.scope !663, !noalias !665, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %137, align 8, !alias.scope !663, !noalias !665, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %138, align 8, !alias.scope !663, !noalias !665, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %139, align 8, !alias.scope !663, !noalias !665, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %140, align 8, !alias.scope !663, !noalias !665, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %141, align 8, !alias.scope !663, !noalias !665, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %142 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %143 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %144 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %145 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %146 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %147 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %148 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %149 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %150 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %151 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %156 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> zeroinitializer %157 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> %158 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> zeroinitializer %159 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> %160 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !658, !noalias !666 %170 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %171 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %172 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %173 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %177 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %178 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %179 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %180 = bitcast <8 x double> %179 to <8 x i64> %181 = xor <8 x i64> %180, %182 = fadd <8 x double> %170, %172 %183 = bitcast <8 x i64> %175 to <8 x double> %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = fsub <8 x double> %171, %184 %186 = fsub <8 x double> %170, %172 %187 = fadd <8 x double> %171, %184 %188 = fadd <8 x double> %176, %178 %189 = bitcast <8 x i64> %181 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fsub <8 x double> %177, %190 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %191, %195 %197 = fmul <8 x double> %196, %198 = fsub <8 x double> %176, %178 %199 = bitcast <8 x double> %198 to <8 x i64> %200 = xor <8 x i64> %199, %201 = fadd <8 x double> %177, %190 %202 = bitcast <8 x double> %201 to <8 x i64> %203 = xor <8 x i64> %202, %204 = bitcast <8 x i64> %203 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fadd <8 x double> %201, %205 %207 = fmul <8 x double> %206, %208 = fadd <8 x double> %182, %188 store <8 x double> %208, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !661, !noalias !667 %209 = fadd <8 x double> %185, %197 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fmul <8 x double> %157, %210 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %209, <8 x double> %211, i32 noundef 4) #23 store <8 x double> %_4.i111, ptr %151, align 8, !alias.scope !661, !noalias !667 %212 = bitcast <8 x i64> %200 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fsub <8 x double> %186, %213 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %159, %215 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i110, ptr %150, align 8, !alias.scope !661, !noalias !667 %217 = fsub <8 x double> %187, %207 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fmul <8 x double> %161, %218 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %217, <8 x double> %219, i32 noundef 4) #23 store <8 x double> %_4.i109, ptr %152, align 8, !alias.scope !661, !noalias !667 %220 = fsub <8 x double> %182, %188 %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %163, %221 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %220, <8 x double> %222, i32 noundef 4) #23 store <8 x double> %_4.i108, ptr %149, align 8, !alias.scope !661, !noalias !667 %223 = fsub <8 x double> %185, %197 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = fmul <8 x double> %165, %224 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %223, <8 x double> %225, i32 noundef 4) #23 store <8 x double> %_4.i107, ptr %154, align 8, !alias.scope !661, !noalias !667 %226 = fadd <8 x double> %186, %213 %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %167, %227 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %226, <8 x double> %228, i32 noundef 4) #23 store <8 x double> %_4.i106, ptr %153, align 8, !alias.scope !661, !noalias !667 %229 = fadd <8 x double> %187, %207 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %169, %230 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %229, <8 x double> %231, i32 noundef 4) #23 store <8 x double> %_4.i105, ptr %155, align 8, !alias.scope !661, !noalias !667 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !658, !noalias !666 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !658, !noalias !666 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !658, !noalias !666 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !658, !noalias !666 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !658, !noalias !666 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !658, !noalias !666 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !658, !noalias !666 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !658, !noalias !666 %232 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %233 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %234 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %235 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %239 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %240 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %241 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %242 = bitcast <8 x double> %241 to <8 x i64> %243 = xor <8 x i64> %242, %244 = fadd <8 x double> %232, %234 %245 = bitcast <8 x i64> %237 to <8 x double> %246 = shufflevector <8 x double> %245, <8 x double> poison, <8 x i32> %247 = fsub <8 x double> %233, %246 %248 = fsub <8 x double> %232, %234 %249 = fadd <8 x double> %233, %246 %250 = fadd <8 x double> %238, %240 %251 = bitcast <8 x i64> %243 to <8 x double> %252 = shufflevector <8 x double> %251, <8 x double> poison, <8 x i32> %253 = fsub <8 x double> %239, %252 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %253, %257 %259 = fmul <8 x double> %258, %260 = fsub <8 x double> %238, %240 %261 = bitcast <8 x double> %260 to <8 x i64> %262 = xor <8 x i64> %261, %263 = fadd <8 x double> %239, %252 %264 = bitcast <8 x double> %263 to <8 x i64> %265 = xor <8 x i64> %264, %266 = bitcast <8 x i64> %265 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fadd <8 x double> %263, %267 %269 = fmul <8 x double> %268, %270 = fadd <8 x double> %244, %250 store <8 x double> %270, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %271 = fadd <8 x double> %247, %259 %272 = shufflevector <8 x double> %271, <8 x double> poison, <8 x i32> %273 = fmul <8 x double> %157, %272 %_4.i111.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %271, <8 x double> %273, i32 noundef 4) #23 store <8 x double> %_4.i111.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %274 = bitcast <8 x i64> %262 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fsub <8 x double> %248, %275 %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fmul <8 x double> %159, %277 %_4.i110.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %276, <8 x double> %278, i32 noundef 4) #23 store <8 x double> %_4.i110.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %279 = fsub <8 x double> %249, %269 %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fmul <8 x double> %161, %280 %_4.i109.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %279, <8 x double> %281, i32 noundef 4) #23 store <8 x double> %_4.i109.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %282 = fsub <8 x double> %244, %250 %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fmul <8 x double> %163, %283 %_4.i108.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %282, <8 x double> %284, i32 noundef 4) #23 store <8 x double> %_4.i108.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %285 = fsub <8 x double> %247, %259 %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %165, %286 %_4.i107.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %285, <8 x double> %287, i32 noundef 4) #23 store <8 x double> %_4.i107.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %288 = fadd <8 x double> %248, %275 %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fmul <8 x double> %167, %289 %_4.i106.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %288, <8 x double> %290, i32 noundef 4) #23 store <8 x double> %_4.i106.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %291 = fadd <8 x double> %249, %269 %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fmul <8 x double> %169, %292 %_4.i105.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %291, <8 x double> %293, i32 noundef 4) #23 store <8 x double> %_4.i105.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !661, !noalias !667 %294 = add nuw nsw i64 %iter.sroa.104.01923.i, 1 %exitcond.not = icmp eq i64 %294, 4 br i1 %exitcond.not, label %bb13.i.i.i, label %bb30.i bb13.i.i.i: ; preds = %bb30.i, %bb13.i.i.i %iter.i.i.i.sroa.22.0690 = phi i64 [ %295, %bb13.i.i.i ], [ 0, %bb30.i ] %295 = add nuw nsw i64 %iter.i.i.i.sroa.22.0690, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.sroa.22.0690 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.sroa.22.0690 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.sroa.22.0690 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.i.sroa.22.0690 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !645 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !645 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !645 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !645 %296 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = fadd <8 x double> %296, %298 %303 = bitcast <8 x i64> %301 to <8 x double> %304 = shufflevector <8 x double> %303, <8 x double> poison, <8 x i32> %305 = fsub <8 x double> %297, %304 %306 = fsub <8 x double> %296, %298 %307 = fadd <8 x double> %297, %304 store <8 x double> %302, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !645 store <8 x double> %305, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !645 store <8 x double> %306, ptr %_3.i.i.i.i.i.i, align 8, !noalias !645 store <8 x double> %307, ptr %_3.i.i.i.i, align 8, !noalias !645 %exitcond691.not = icmp eq i64 %295, 16 br i1 %exitcond691.not, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd2f9af812cfcfae3E.exit", label %bb13.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd2f9af812cfcfae3E.exit": ; preds = %bb13.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !645 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h47d83bd7c8ef19dbE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !668) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !668, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !668, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !668, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !668, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %3, align 8, !alias.scope !668, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %4, align 8, !alias.scope !668, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !668 store i64 32, ptr %n.i, align 8, !noalias !668 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !668 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !668 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !668 store ptr null, ptr %_16.i, align 8, !noalias !668 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !668 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !668 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !668 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !668 store ptr null, ptr %_24.i, align 8, !noalias !668 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !668 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !668 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !668 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !668 store ptr null, ptr %_32.i, align 8, !noalias !668 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !668 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !668 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !668 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e9e0fab8af5b893E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !668 store ptr null, ptr %_40.i, align 8, !noalias !668 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e9e0fab8af5b893E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !668 %5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_51.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !671 %_52.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %6, align 8, !noalias !671 %7 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload %8 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload store <8 x double> %7, ptr %scratch.0.i, align 8, !noalias !671 store <8 x double> %8, ptr %5, align 8, !noalias !671 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_51.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !671 %_52.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !671 %9 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 %10 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 store <8 x double> %9, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !671 store <8 x double> %10, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !671 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_51.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !671 %_52.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !671 %11 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.sroa.0.0.copyload.2 %12 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.sroa.0.0.copyload.2 store <8 x double> %11, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !671 store <8 x double> %12, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !671 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_51.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !671 %_52.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !671 %13 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.sroa.0.0.copyload.3 %14 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.sroa.0.0.copyload.3 store <8 x double> %13, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !671 store <8 x double> %14, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !671 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !668 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4b1fe0c1c6e6fe76E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !675) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !675, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !675, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !675, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !675, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !675, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !675, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !675, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !675 store i64 64, ptr %n.i, align 8, !noalias !675 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !675 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !675 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !675 store ptr null, ptr %_16.i, align 8, !noalias !675 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !675 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !675 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !675 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !675 store ptr null, ptr %_24.i, align 8, !noalias !675 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !675 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !675 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !675 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !675 store ptr null, ptr %_32.i, align 8, !noalias !675 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !675 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !675 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !675 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7160c07f5a250904E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !675 store ptr null, ptr %_40.i, align 8, !noalias !675 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7160c07f5a250904E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !675 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !678 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %15, align 8, !noalias !678 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %14, align 8, !noalias !678 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %16, align 8, !noalias !678 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %13, align 8, !noalias !678 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %18, align 8, !noalias !678 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %17, align 8, !noalias !678 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %19, align 8, !noalias !678 %20 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %21 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %22 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %23 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %24 = bitcast <8 x double> %23 to <8 x i64> %25 = xor <8 x i64> %24, %26 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %27 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %28 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %29 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %30 = bitcast <8 x double> %29 to <8 x i64> %31 = xor <8 x i64> %30, %32 = fadd <8 x double> %20, %22 %33 = bitcast <8 x i64> %25 to <8 x double> %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = fsub <8 x double> %21, %34 %36 = fsub <8 x double> %20, %22 %37 = fadd <8 x double> %21, %34 %38 = fadd <8 x double> %26, %28 %39 = bitcast <8 x i64> %31 to <8 x double> %40 = shufflevector <8 x double> %39, <8 x double> poison, <8 x i32> %41 = fsub <8 x double> %27, %40 %42 = bitcast <8 x double> %41 to <8 x i64> %43 = xor <8 x i64> %42, %44 = bitcast <8 x i64> %43 to <8 x double> %45 = shufflevector <8 x double> %44, <8 x double> poison, <8 x i32> %46 = fadd <8 x double> %41, %45 %47 = fmul <8 x double> %46, %48 = fsub <8 x double> %26, %28 %49 = bitcast <8 x double> %48 to <8 x i64> %50 = xor <8 x i64> %49, %51 = fadd <8 x double> %27, %40 %52 = bitcast <8 x double> %51 to <8 x i64> %53 = xor <8 x i64> %52, %54 = bitcast <8 x i64> %53 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = fadd <8 x double> %51, %55 %57 = fmul <8 x double> %56, %58 = fadd <8 x double> %32, %38 %59 = fadd <8 x double> %35, %47 %60 = bitcast <8 x i64> %50 to <8 x double> %61 = shufflevector <8 x double> %60, <8 x double> poison, <8 x i32> %62 = fsub <8 x double> %36, %61 %63 = fsub <8 x double> %37, %57 %64 = fsub <8 x double> %32, %38 %65 = fsub <8 x double> %35, %47 %66 = fadd <8 x double> %36, %61 %67 = fadd <8 x double> %37, %57 store <8 x double> %58, ptr %scratch.0.i, align 8, !noalias !678 store <8 x double> %59, ptr %8, align 8, !noalias !678 store <8 x double> %62, ptr %7, align 8, !noalias !678 store <8 x double> %63, ptr %9, align 8, !noalias !678 store <8 x double> %64, ptr %6, align 8, !noalias !678 store <8 x double> %65, ptr %11, align 8, !noalias !678 store <8 x double> %66, ptr %10, align 8, !noalias !678 store <8 x double> %67, ptr %12, align 8, !noalias !678 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.i38.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_120.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1, align 8, !noalias !678 %_121.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1, align 8, !noalias !678 %_122.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1, align 8, !noalias !678 %_123.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1, align 8, !noalias !678 %_124.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1, align 8, !noalias !678 %_125.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1, align 8, !noalias !678 %_126.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.1, align 8, !noalias !678 %_127.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.1, align 8, !noalias !678 %68 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %69 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %70 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %71 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %72 = bitcast <8 x double> %71 to <8 x i64> %73 = xor <8 x i64> %72, %74 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %75 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %76 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %77 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %78 = bitcast <8 x double> %77 to <8 x i64> %79 = xor <8 x i64> %78, %80 = fadd <8 x double> %68, %70 %81 = bitcast <8 x i64> %73 to <8 x double> %82 = shufflevector <8 x double> %81, <8 x double> poison, <8 x i32> %83 = fsub <8 x double> %69, %82 %84 = fsub <8 x double> %68, %70 %85 = fadd <8 x double> %69, %82 %86 = fadd <8 x double> %74, %76 %87 = bitcast <8 x i64> %79 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fsub <8 x double> %75, %88 %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x i64> %91 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = fadd <8 x double> %89, %93 %95 = fmul <8 x double> %94, %96 = fsub <8 x double> %74, %76 %97 = bitcast <8 x double> %96 to <8 x i64> %98 = xor <8 x i64> %97, %99 = fadd <8 x double> %75, %88 %100 = bitcast <8 x double> %99 to <8 x i64> %101 = xor <8 x i64> %100, %102 = bitcast <8 x i64> %101 to <8 x double> %103 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %104 = fadd <8 x double> %99, %103 %105 = fmul <8 x double> %104, %106 = fadd <8 x double> %80, %86 %107 = fadd <8 x double> %83, %95 %108 = bitcast <8 x i64> %98 to <8 x double> %109 = shufflevector <8 x double> %108, <8 x double> poison, <8 x i32> %110 = fsub <8 x double> %84, %109 %111 = fsub <8 x double> %85, %105 %112 = fsub <8 x double> %80, %86 %113 = fsub <8 x double> %83, %95 %114 = fadd <8 x double> %84, %109 %115 = fadd <8 x double> %85, %105 store <8 x double> %106, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %107, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %111, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %113, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 store <8 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !678 tail call void @llvm.experimental.noalias.scope.decl(metadata !682) tail call void @llvm.experimental.noalias.scope.decl(metadata !685) tail call void @llvm.experimental.noalias.scope.decl(metadata !687) %116 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %117 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %118 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %119 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %120 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7160c07f5a250904E.exit", %bb23.i %iter.sroa.106.01511.i = phi i64 [ %123, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7160c07f5a250904E.exit" ] %123 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %118, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %117, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %119, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %116, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %120, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !687, !noalias !689 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !685, !noalias !690 %124 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %124, align 8, !alias.scope !685, !noalias !690 %125 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %125, align 8, !alias.scope !685, !noalias !690 %126 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %126, align 8, !alias.scope !685, !noalias !690 %127 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %127, align 8, !alias.scope !685, !noalias !690 %128 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %128, align 8, !alias.scope !685, !noalias !690 %129 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %129, align 8, !alias.scope !685, !noalias !690 %130 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %130, align 8, !alias.scope !685, !noalias !690 %131 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %132 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %133 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %134 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %135 = shufflevector <8 x double> %131, <8 x double> %133, <8 x i32> %136 = shufflevector <8 x double> %131, <8 x double> %133, <8 x i32> %137 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %138 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %139 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %140 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %141 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %142 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %143 = shufflevector <8 x double> %139, <8 x double> %141, <8 x i32> %144 = shufflevector <8 x double> %139, <8 x double> %141, <8 x i32> %145 = shufflevector <8 x double> %140, <8 x double> %142, <8 x i32> %146 = shufflevector <8 x double> %140, <8 x double> %142, <8 x i32> %147 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %148 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %150 = fmul <8 x double> %149, %147 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %148, <8 x double> %137, <8 x double> %150, i32 noundef 4) #23 %151 = shufflevector <8 x double> %136, <8 x double> poison, <8 x i32> %152 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %153 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %153, %151 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %152, <8 x double> %136, <8 x double> %154, i32 noundef 4) #23 %155 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %156 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = fmul <8 x double> %157, %155 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %138, <8 x double> %158, i32 noundef 4) #23 %159 = shufflevector <8 x double> %143, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %161, %159 %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %143, <8 x double> %162, i32 noundef 4) #23 %163 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %145, <8 x double> %166, i32 noundef 4) #23 %167 = shufflevector <8 x double> %144, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = fmul <8 x double> %169, %167 %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %144, <8 x double> %170, i32 noundef 4) #23 %171 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %172 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %173 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %174 = fmul <8 x double> %173, %171 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %146, <8 x double> %174, i32 noundef 4) #23 %175 = fadd <8 x double> %135, %_4.i226 %176 = fsub <8 x double> %135, %_4.i226 %177 = fadd <8 x double> %_4.i228, %_4.i224 %178 = fsub <8 x double> %_4.i228, %_4.i224 %179 = bitcast <8 x double> %178 to <8 x i64> %180 = xor <8 x i64> %179, %181 = fadd <8 x double> %_4.i229, %_4.i225 %182 = fsub <8 x double> %_4.i229, %_4.i225 %183 = fadd <8 x double> %_4.i227, %_4.i %184 = fsub <8 x double> %_4.i227, %_4.i %185 = bitcast <8 x double> %184 to <8 x i64> %186 = xor <8 x i64> %185, %187 = fadd <8 x double> %175, %177 %188 = fadd <8 x double> %181, %183 %189 = fadd <8 x double> %187, %188 store <8 x double> %189, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %190 = fsub <8 x double> %187, %188 store <8 x double> %190, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %191 = bitcast <8 x i64> %180 to <8 x double> %192 = shufflevector <8 x double> %191, <8 x double> poison, <8 x i32> %193 = fsub <8 x double> %176, %192 %194 = bitcast <8 x i64> %186 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fsub <8 x double> %182, %195 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fadd <8 x double> %196, %200 %202 = fmul <8 x double> %201, %203 = fadd <8 x double> %193, %202 store <8 x double> %203, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %204 = fsub <8 x double> %193, %202 store <8 x double> %204, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %205 = fsub <8 x double> %175, %177 %206 = fsub <8 x double> %181, %183 %207 = bitcast <8 x double> %206 to <8 x i64> %208 = xor <8 x i64> %207, %209 = bitcast <8 x i64> %208 to <8 x double> %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fsub <8 x double> %205, %210 store <8 x double> %211, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %212 = fadd <8 x double> %205, %210 store <8 x double> %212, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %213 = fadd <8 x double> %176, %192 %214 = fadd <8 x double> %182, %195 %215 = bitcast <8 x double> %214 to <8 x i64> %216 = xor <8 x i64> %215, %217 = bitcast <8 x i64> %216 to <8 x double> %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fadd <8 x double> %214, %218 %220 = fmul <8 x double> %219, %221 = fsub <8 x double> %213, %220 store <8 x double> %221, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %222 = fadd <8 x double> %213, %220 store <8 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !682, !noalias !691 %exitcond.not.i = icmp eq i64 %123, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !675 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4b3055d0759520a1E(ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !692) tail call void @llvm.experimental.noalias.scope.decl(metadata !695) %0 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f, i64 0, i32 1 %_2.0.i.i = load ptr, ptr %0, align 8, !alias.scope !698, !nonnull !3, !align !4, !noundef !3 %1 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f, i64 0, i32 1, i32 1 %_2.1.i.i = load i64, ptr %1, align 8, !alias.scope !698, !noundef !3 %2 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f, i64 0, i32 2 %_3.0.i.i = load ptr, ptr %2, align 8, !alias.scope !698, !nonnull !3, !align !4, !noundef !3 %3 = and i64 %_2.1.i.i, 3 %4 = icmp eq i64 %3, 0 br i1 %4, label %bb17.i.i.i, label %bb16.i.i.i bb17.i.i.i: ; preds = %start %5 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.842", ptr %f, i64 0, i32 2, i32 1 %_3.1.i.i = load i64, ptr %5, align 8, !alias.scope !698, !noundef !3 %6 = shl nsw i64 %_3.1.i.i, 4 %_13.i.i = urem i64 %6, 448 %new_len.i.i = udiv i64 %6, 448 %7 = icmp eq i64 %_13.i.i, 0 br i1 %7, label %bb20.i.i.i, label %bb19.i.i.i bb16.i.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !699 unreachable bb20.i.i.i: ; preds = %bb17.i.i.i %8 = lshr exact i64 %_2.1.i.i, 2 %new_len2.i.i = and i64 %8, 288230376151711743 %mid1.i.i.i.i = lshr i64 %new_len2.i.i, 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid1.i.i.i.i %10 = sub nsw i64 %new_len2.i.i, %mid1.i.i.i.i %mid5.i5.i.i.i.i = lshr i64 %new_len2.i.i, 2 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid5.i5.i.i.i.i %12 = sub nsw i64 %mid1.i.i.i.i, %mid5.i5.i.i.i.i %mid36.i10.i.i.i.i = lshr i64 %new_len2.i.i, 3 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid36.i10.i.i.i.i %14 = sub nsw i64 %mid5.i5.i.i.i.i, %mid36.i10.i.i.i.i %mid47.i15.i.i.i.i = lshr i64 %12, 1 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %mid47.i15.i.i.i.i %16 = sub i64 %12, %mid47.i15.i.i.i.i %mid5.i.i.i.i.i = lshr i64 %10, 1 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %mid5.i.i.i.i.i %18 = sub i64 %10, %mid5.i.i.i.i.i %mid36.i.i.i.i.i = lshr i64 %10, 2 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %mid36.i.i.i.i.i %20 = sub nsw i64 %mid5.i.i.i.i.i, %mid36.i.i.i.i.i %mid47.i.i.i.i.i = lshr i64 %18, 1 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %mid47.i.i.i.i.i %22 = sub i64 %18, %mid47.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i10.i.i.i.i, i64 %14) %_0.0.sroa.speculated.i.i.i4.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i15.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i, i64 %16) %_0.0.sroa.speculated.i.i.i23.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i, i64 %mid36.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i34.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i23.i, i64 %20) %_0.0.sroa.speculated.i.i.i45.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i34.i, i64 %mid47.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i56.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i45.i, i64 %22) %_0.0.sroa.speculated.i.i.i67.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i56.i, i64 %new_len.i.i) %_2.i.i.i437.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i67.i, 0 br i1 %_2.i.i.i437.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h3e75d28184bff808E.exit, label %bb12.i.i.i bb19.i.i.i: ; preds = %bb17.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !698 unreachable bb12.i.i.i: ; preds = %bb20.i.i.i, %bb12.i.i.i %iter.i.i.sroa.57.0438.i = phi i64 [ %23, %bb12.i.i.i ], [ 0, %bb20.i.i.i ] %23 = add nuw nsw i64 %iter.i.i.sroa.57.0438.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.57.0438.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.i.i.sroa.57.0438.i %_3.i.i.i.i.i = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i %w1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !698 %24 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i, i64 1 %w2.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %24, align 8, !noalias !698 %25 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i, i64 2 %w3.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %25, align 8, !noalias !698 %26 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i, i64 3 %w4.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %26, align 8, !noalias !698 %27 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i, i64 4 %w5.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %27, align 8, !noalias !698 %28 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i, i64 5 %w6.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %28, align 8, !noalias !698 %29 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0438.i, i64 6 %w7.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %29, align 8, !noalias !698 %_53.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_54.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_55.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_56.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_57.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_58.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_59.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 %_60.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !698 %30 = shufflevector <8 x double> %_54.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %33 = fmul <8 x double> %32, %30 %_4.i6 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %31, <8 x double> %_54.i.i.sroa.0.0.copyload.i, <8 x double> %33, i32 noundef 4) #23 %34 = shufflevector <8 x double> %_55.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i5 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %_55.i.i.sroa.0.0.copyload.i, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %_56.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %39 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %40 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %41 = fmul <8 x double> %40, %38 %_4.i4 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %39, <8 x double> %_56.i.i.sroa.0.0.copyload.i, <8 x double> %41, i32 noundef 4) #23 %42 = shufflevector <8 x double> %_57.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %43 = shufflevector <8 x double> %w4.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %44 = shufflevector <8 x double> %w4.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %45 = fmul <8 x double> %44, %42 %_4.i3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %43, <8 x double> %_57.i.i.sroa.0.0.copyload.i, <8 x double> %45, i32 noundef 4) #23 %46 = shufflevector <8 x double> %_58.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %47 = shufflevector <8 x double> %w5.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %48 = shufflevector <8 x double> %w5.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %49 = fmul <8 x double> %48, %46 %_4.i2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %47, <8 x double> %_58.i.i.sroa.0.0.copyload.i, <8 x double> %49, i32 noundef 4) #23 %50 = shufflevector <8 x double> %_59.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %51 = shufflevector <8 x double> %w6.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %52 = shufflevector <8 x double> %w6.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %53 = fmul <8 x double> %52, %50 %_4.i1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %51, <8 x double> %_59.i.i.sroa.0.0.copyload.i, <8 x double> %53, i32 noundef 4) #23 %54 = shufflevector <8 x double> %_60.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %55 = shufflevector <8 x double> %w7.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %56 = shufflevector <8 x double> %w7.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %57 = fmul <8 x double> %56, %54 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %55, <8 x double> %_60.i.i.sroa.0.0.copyload.i, <8 x double> %57, i32 noundef 4) #23 %58 = fadd <8 x double> %_53.i.i.sroa.0.0.copyload.i, %_4.i3 %59 = fsub <8 x double> %_53.i.i.sroa.0.0.copyload.i, %_4.i3 %60 = fadd <8 x double> %_4.i5, %_4.i1 %61 = fsub <8 x double> %_4.i5, %_4.i1 %62 = bitcast <8 x double> %61 to <8 x i64> %63 = xor <8 x i64> %62, %64 = bitcast <8 x i64> %63 to <8 x double> %65 = shufflevector <8 x double> %64, <8 x double> poison, <8 x i32> %66 = fadd <8 x double> %_4.i6, %_4.i2 %67 = fsub <8 x double> %_4.i6, %_4.i2 %68 = fadd <8 x double> %_4.i4, %_4.i %69 = fsub <8 x double> %_4.i4, %_4.i %70 = bitcast <8 x double> %69 to <8 x i64> %71 = xor <8 x i64> %70, %72 = bitcast <8 x i64> %71 to <8 x double> %73 = shufflevector <8 x double> %72, <8 x double> poison, <8 x i32> %74 = fadd <8 x double> %58, %60 %75 = fadd <8 x double> %66, %68 %76 = fsub <8 x double> %58, %60 %77 = fsub <8 x double> %66, %68 %78 = bitcast <8 x double> %77 to <8 x i64> %79 = xor <8 x i64> %78, %80 = bitcast <8 x i64> %79 to <8 x double> %81 = shufflevector <8 x double> %80, <8 x double> poison, <8 x i32> %82 = fsub <8 x double> %59, %65 %83 = fsub <8 x double> %67, %73 %84 = bitcast <8 x double> %83 to <8 x i64> %85 = xor <8 x i64> %84, %86 = bitcast <8 x i64> %85 to <8 x double> %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = fadd <8 x double> %83, %87 %89 = fmul <8 x double> %88, %90 = fadd <8 x double> %59, %65 %91 = fadd <8 x double> %67, %73 %92 = bitcast <8 x double> %91 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x i64> %93 to <8 x double> %95 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %96 = fadd <8 x double> %91, %95 %97 = fmul <8 x double> %96, %98 = fadd <8 x double> %74, %75 %99 = fadd <8 x double> %82, %89 %100 = fsub <8 x double> %76, %81 %101 = fsub <8 x double> %90, %97 %102 = fsub <8 x double> %74, %75 %103 = fsub <8 x double> %82, %89 %104 = fadd <8 x double> %76, %81 %105 = fadd <8 x double> %90, %97 store <8 x double> %98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %99, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %101, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %103, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %104, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !698 store <8 x double> %105, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !698 %exitcond.not.i = icmp eq i64 %23, %_0.0.sroa.speculated.i.i.i67.i br i1 %exitcond.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h3e75d28184bff808E.exit, label %bb12.i.i.i _ZN4core3ops8function6FnOnce9call_once17h3e75d28184bff808E.exit: ; preds = %bb12.i.i.i, %bb20.i.i.i ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4cede8cf8dfba7d6E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !702) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !702, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !702, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !702, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !702, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !702, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !702, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !702, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !702, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !702 store i64 512, ptr %n.i, align 8, !noalias !702 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !702 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !702 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !702 store ptr null, ptr %_16.i, align 8, !noalias !702 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !702 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !702 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !702 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !702 store ptr null, ptr %_24.i, align 8, !noalias !702 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !702 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !702 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !702 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !702 store ptr null, ptr %_32.i, align 8, !noalias !702 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !702 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !702 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !702 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd08c13289905abf8E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !702 store ptr null, ptr %_40.i, align 8, !noalias !702 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd08c13289905abf8E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !702 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd08c13289905abf8E.exit" %iter.i.i.i.i.sroa.8.0518 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd08c13289905abf8E.exit" ], [ %11, %bb9.i.i.i.i ] %8 = or disjoint i64 %iter.i.i.i.i.sroa.8.0518, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.0518 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.0518 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !702 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !702 %9 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %10 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %9, ptr %_3.i.i.i.i, align 8, !noalias !702 store <8 x double> %10, ptr %_3.i2.i.i.i, align 8, !noalias !702 %11 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.0518, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %8 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %8 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !702 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !702 %12 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %13 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %12, ptr %_3.i.i.i.i.1, align 8, !noalias !702 store <8 x double> %13, ptr %_3.i2.i.i.i.1, align 8, !noalias !702 %exitcond.not.1 = icmp eq i64 %11, 64 br i1 %exitcond.not.1, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit", label %bb9.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit": ; preds = %bb9.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !705) tail call void @llvm.experimental.noalias.scope.decl(metadata !708) tail call void @llvm.experimental.noalias.scope.decl(metadata !710) %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %17 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0614.us.i = load <2 x float>, ptr %17, align 8, !alias.scope !710, !noalias !712, !noundef !3 %18 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %18, align 8, !alias.scope !710, !noalias !712, !noundef !3 %19 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0616.us.i = load <2 x float>, ptr %19, align 8, !alias.scope !710, !noalias !712, !noundef !3 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %20, align 8, !alias.scope !710, !noalias !712, !noundef !3 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0618.us.i = load <2 x float>, ptr %21, align 8, !alias.scope !710, !noalias !712, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %22, align 8, !alias.scope !710, !noalias !712, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %23 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %24 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %25 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %29 = shufflevector <2 x double> %23, <2 x double> poison, <8 x i32> zeroinitializer %30 = shufflevector <2 x double> %23, <2 x double> poison, <8 x i32> %31 = shufflevector <2 x double> %24, <2 x double> poison, <8 x i32> zeroinitializer %32 = shufflevector <2 x double> %24, <2 x double> poison, <8 x i32> %33 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> zeroinitializer %34 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> br label %bb38.us.i bb38.us.i: ; preds = %bb38.us.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit" %iter5.sroa.50.0632.us.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit" ], [ %35, %bb38.us.i ] %35 = add nuw nsw i64 %iter5.sroa.50.0632.us.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter5.sroa.50.0632.us.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter5.sroa.50.0632.us.i %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !708, !noalias !713 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !708, !noalias !713 %36 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %30, %36 %_4.i170 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %29, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %37, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i, align 8, !alias.scope !708, !noalias !713 %38 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %39 = fmul <8 x double> %32, %38 %_4.i169 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %31, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %39, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.us.i, align 8, !alias.scope !708, !noalias !713 %40 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %41 = fmul <8 x double> %34, %40 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %33, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %41, i32 noundef 4) #23 %42 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i169 %43 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i169 %44 = fadd <8 x double> %_4.i170, %_4.i %45 = fsub <8 x double> %_4.i170, %_4.i %46 = bitcast <8 x double> %45 to <8 x i64> %47 = xor <8 x i64> %46, %48 = bitcast <8 x i64> %47 to <8 x double> %49 = shufflevector <8 x double> %48, <8 x double> poison, <8 x i32> %50 = fadd <8 x double> %42, %44 store <8 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !705, !noalias !714 %51 = fsub <8 x double> %43, %49 store <8 x double> %51, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !705, !noalias !714 %52 = fsub <8 x double> %42, %44 store <8 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !705, !noalias !714 %53 = fadd <8 x double> %43, %49 store <8 x double> %53, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !705, !noalias !714 %exitcond.not.i = icmp eq i64 %35, 16 br i1 %exitcond.not.i, label %bb36.bb20.loopexit_crit_edge.us.i, label %bb38.us.i bb36.bb20.loopexit_crit_edge.us.i: ; preds = %bb38.us.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1 %w1.0614.us.i.1 = load <2 x float>, ptr %54, align 8, !alias.scope !710, !noalias !712, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1, i32 1 %w1.1615.us.i.1 = load <2 x float>, ptr %55, align 8, !alias.scope !710, !noalias !712, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2 %w2.0616.us.i.1 = load <2 x float>, ptr %56, align 8, !alias.scope !710, !noalias !712, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2, i32 1 %w2.1617.us.i.1 = load <2 x float>, ptr %57, align 8, !alias.scope !710, !noalias !712, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3 %w3.0618.us.i.1 = load <2 x float>, ptr %58, align 8, !alias.scope !710, !noalias !712, !noundef !3 %59 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3, i32 1 %w3.1619.us.i.1 = load <2 x float>, ptr %59, align 8, !alias.scope !710, !noalias !712, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0614.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1615.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %60 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0616.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1617.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %61 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0618.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1619.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %62 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %64 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %65 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %66 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> %70 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> zeroinitializer %71 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> br label %bb38.us.i.1 bb38.us.i.1: ; preds = %bb38.us.i.1, %bb36.bb20.loopexit_crit_edge.us.i %iter5.sroa.50.0632.us.i.1 = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i ], [ %72, %bb38.us.i.1 ] %72 = add nuw nsw i64 %iter5.sroa.50.0632.us.i.1, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %64, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %63, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %65, i64 %iter5.sroa.50.0632.us.i.1 %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !708, !noalias !713 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !708, !noalias !713 %73 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %74 = fmul <8 x double> %67, %73 %_4.i170.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %74, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !708, !noalias !713 %75 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %76 = fmul <8 x double> %69, %75 %_4.i169.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %76, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i.1, align 8, !alias.scope !708, !noalias !713 %77 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %78 = fmul <8 x double> %71, %77 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %78, i32 noundef 4) #23 %79 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i169.1 %80 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i169.1 %81 = fadd <8 x double> %_4.i170.1, %_4.i.1 %82 = fsub <8 x double> %_4.i170.1, %_4.i.1 %83 = bitcast <8 x double> %82 to <8 x i64> %84 = xor <8 x i64> %83, %85 = bitcast <8 x i64> %84 to <8 x double> %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fadd <8 x double> %79, %81 store <8 x double> %87, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !705, !noalias !714 %88 = fsub <8 x double> %80, %86 store <8 x double> %88, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !705, !noalias !714 %89 = fsub <8 x double> %79, %81 store <8 x double> %89, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !705, !noalias !714 %90 = fadd <8 x double> %80, %86 store <8 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !705, !noalias !714 %exitcond.not.i.1 = icmp eq i64 %72, 16 br i1 %exitcond.not.i.1, label %bb36.bb20.loopexit_crit_edge.us.i.1, label %bb38.us.i.1 bb36.bb20.loopexit_crit_edge.us.i.1: ; preds = %bb38.us.i.1 tail call void @llvm.experimental.noalias.scope.decl(metadata !715) tail call void @llvm.experimental.noalias.scope.decl(metadata !718) tail call void @llvm.experimental.noalias.scope.decl(metadata !720) %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 br label %bb22.us.i37 bb22.us.i37: ; preds = %bb36.bb20.loopexit_crit_edge.us.i.1, %bb22.us.i37 %iter.sroa.60.0645.us.i38 = phi i64 [ %182, %bb22.us.i37 ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 = shl i64 %iter.sroa.60.0645.us.i38, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %start1.i.i.i.i.us.i41 = shl i64 %iter.sroa.60.0645.us.i38, 4 %data.i.i.i.i.i.i.us.i42 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i41 %data.i.i.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %data.i.i.i.i.i.i.i.i.i.i.us.i44 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45 = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 1 %w1.0614.us.i46 = load <2 x float>, ptr %92, align 8, !alias.scope !720, !noalias !722, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 1, i32 1 %w1.1615.us.i47 = load <2 x float>, ptr %93, align 8, !alias.scope !720, !noalias !722, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 2 %w2.0616.us.i48 = load <2 x float>, ptr %94, align 8, !alias.scope !720, !noalias !722, !noundef !3 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 2, i32 1 %w2.1617.us.i49 = load <2 x float>, ptr %95, align 8, !alias.scope !720, !noalias !722, !noundef !3 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 3 %w3.0618.us.i50 = load <2 x float>, ptr %96, align 8, !alias.scope !720, !noalias !722, !noundef !3 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 3, i32 1 %w3.1619.us.i51 = load <2 x float>, ptr %97, align 8, !alias.scope !720, !noalias !722, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i52 = shufflevector <2 x float> %w1.0614.us.i46, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i53 = shufflevector <2 x float> %w1.1615.us.i47, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i54 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i52, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i53, <4 x i32> %98 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i54 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i56 = shufflevector <2 x float> %w2.0616.us.i48, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i57 = shufflevector <2 x float> %w2.1617.us.i49, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i58 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i56, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i57, <4 x i32> %99 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i58 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i60 = shufflevector <2 x float> %w3.0618.us.i50, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i61 = shufflevector <2 x float> %w3.1619.us.i51, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i62 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i60, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i61, <4 x i32> %100 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i62 to <2 x double> %101 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 8 %102 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 4 %103 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 12 %104 = shufflevector <2 x double> %98, <2 x double> poison, <8 x i32> zeroinitializer %105 = shufflevector <2 x double> %98, <2 x double> poison, <8 x i32> %106 = shufflevector <2 x double> %99, <2 x double> poison, <8 x i32> zeroinitializer %107 = shufflevector <2 x double> %99, <2 x double> poison, <8 x i32> %108 = shufflevector <2 x double> %100, <2 x double> poison, <8 x i32> zeroinitializer %109 = shufflevector <2 x double> %100, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i42, align 8, !alias.scope !718, !noalias !723 %_84.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %102, align 8, !alias.scope !718, !noalias !723 %110 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75, <8 x double> poison, <8 x i32> %111 = fmul <8 x double> %105, %110 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75, <8 x double> %111, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77 = load <8 x double>, ptr %101, align 8, !alias.scope !718, !noalias !723 %112 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77, <8 x double> poison, <8 x i32> %113 = fmul <8 x double> %107, %112 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77, <8 x double> %113, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79 = load <8 x double>, ptr %103, align 8, !alias.scope !718, !noalias !723 %114 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79, <8 x double> poison, <8 x i32> %115 = fmul <8 x double> %109, %114 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79, <8 x double> %115, i32 noundef 4) #23 %116 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74, %_4.i172 %117 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74, %_4.i172 %118 = fadd <8 x double> %_4.i173, %_4.i171 %119 = fsub <8 x double> %_4.i173, %_4.i171 %120 = bitcast <8 x double> %119 to <8 x i64> %121 = xor <8 x i64> %120, %122 = bitcast <8 x i64> %121 to <8 x double> %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fadd <8 x double> %116, %118 store <8 x double> %124, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !715, !noalias !724 %125 = fsub <8 x double> %117, %123 store <8 x double> %125, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, align 8, !alias.scope !715, !noalias !724 %126 = fsub <8 x double> %116, %118 store <8 x double> %126, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, align 8, !alias.scope !715, !noalias !724 %127 = fadd <8 x double> %117, %123 store <8 x double> %127, ptr %data.i.i.i.i.i.i.i.i.us.i43, align 8, !alias.scope !715, !noalias !724 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 1 %_3.i.i.i.i.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 5 %_3.i.i.i.i.i.i.us.i72.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 9 %_3.i.i.i.i.us.i73.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 13 %a.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !718, !noalias !723 %_84.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i71.1, align 8, !alias.scope !718, !noalias !723 %128 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75.1, <8 x double> poison, <8 x i32> %129 = fmul <8 x double> %105, %128 %_4.i173.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75.1, <8 x double> %129, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i72.1, align 8, !alias.scope !718, !noalias !723 %130 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77.1, <8 x double> poison, <8 x i32> %131 = fmul <8 x double> %107, %130 %_4.i172.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77.1, <8 x double> %131, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i73.1, align 8, !alias.scope !718, !noalias !723 %132 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79.1, <8 x double> poison, <8 x i32> %133 = fmul <8 x double> %109, %132 %_4.i171.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79.1, <8 x double> %133, i32 noundef 4) #23 %134 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74.1, %_4.i172.1 %135 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74.1, %_4.i172.1 %136 = fadd <8 x double> %_4.i173.1, %_4.i171.1 %137 = fsub <8 x double> %_4.i173.1, %_4.i171.1 %138 = bitcast <8 x double> %137 to <8 x i64> %139 = xor <8 x i64> %138, %140 = bitcast <8 x i64> %139 to <8 x double> %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fadd <8 x double> %134, %136 store <8 x double> %142, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !715, !noalias !724 %143 = fsub <8 x double> %135, %141 store <8 x double> %143, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !715, !noalias !724 %144 = fsub <8 x double> %134, %136 store <8 x double> %144, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !715, !noalias !724 %145 = fadd <8 x double> %135, %141 store <8 x double> %145, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !715, !noalias !724 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 2 %_3.i.i.i.i.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 6 %_3.i.i.i.i.i.i.us.i72.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 10 %_3.i.i.i.i.us.i73.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 14 %a.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !718, !noalias !723 %_84.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i71.2, align 8, !alias.scope !718, !noalias !723 %146 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75.2, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %105, %146 %_4.i173.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75.2, <8 x double> %147, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i72.2, align 8, !alias.scope !718, !noalias !723 %148 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77.2, <8 x double> poison, <8 x i32> %149 = fmul <8 x double> %107, %148 %_4.i172.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77.2, <8 x double> %149, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i73.2, align 8, !alias.scope !718, !noalias !723 %150 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79.2, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %109, %150 %_4.i171.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79.2, <8 x double> %151, i32 noundef 4) #23 %152 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74.2, %_4.i172.2 %153 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74.2, %_4.i172.2 %154 = fadd <8 x double> %_4.i173.2, %_4.i171.2 %155 = fsub <8 x double> %_4.i173.2, %_4.i171.2 %156 = bitcast <8 x double> %155 to <8 x i64> %157 = xor <8 x i64> %156, %158 = bitcast <8 x i64> %157 to <8 x double> %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fadd <8 x double> %152, %154 store <8 x double> %160, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !715, !noalias !724 %161 = fsub <8 x double> %153, %159 store <8 x double> %161, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !715, !noalias !724 %162 = fsub <8 x double> %152, %154 store <8 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !715, !noalias !724 %163 = fadd <8 x double> %153, %159 store <8 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !715, !noalias !724 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 3 %_3.i.i.i.i.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 7 %_3.i.i.i.i.i.i.us.i72.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 11 %_3.i.i.i.i.us.i73.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 15 %a.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !718, !noalias !723 %_84.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i71.3, align 8, !alias.scope !718, !noalias !723 %164 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75.3, <8 x double> poison, <8 x i32> %165 = fmul <8 x double> %105, %164 %_4.i173.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75.3, <8 x double> %165, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i72.3, align 8, !alias.scope !718, !noalias !723 %166 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77.3, <8 x double> poison, <8 x i32> %167 = fmul <8 x double> %107, %166 %_4.i172.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77.3, <8 x double> %167, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i73.3, align 8, !alias.scope !718, !noalias !723 %168 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79.3, <8 x double> poison, <8 x i32> %169 = fmul <8 x double> %109, %168 %_4.i171.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79.3, <8 x double> %169, i32 noundef 4) #23 %170 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74.3, %_4.i172.3 %171 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74.3, %_4.i172.3 %172 = fadd <8 x double> %_4.i173.3, %_4.i171.3 %173 = fsub <8 x double> %_4.i173.3, %_4.i171.3 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = bitcast <8 x i64> %175 to <8 x double> %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fadd <8 x double> %170, %172 store <8 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !715, !noalias !724 %179 = fsub <8 x double> %171, %177 store <8 x double> %179, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !715, !noalias !724 %180 = fsub <8 x double> %170, %172 store <8 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !715, !noalias !724 %181 = fadd <8 x double> %171, %177 store <8 x double> %181, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !715, !noalias !724 %182 = add nuw nsw i64 %iter.sroa.60.0645.us.i38, 1 %exitcond519.not = icmp eq i64 %182, 8 br i1 %exitcond519.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93, label %bb22.us.i37 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93: ; preds = %bb22.us.i37 tail call void @llvm.experimental.noalias.scope.decl(metadata !725) tail call void @llvm.experimental.noalias.scope.decl(metadata !728) tail call void @llvm.experimental.noalias.scope.decl(metadata !730) br label %bb22.us.i109 bb22.us.i109: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93, %bb22.us.i109 %iter.sroa.60.0645.us.i110 = phi i64 [ %219, %bb22.us.i109 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93 ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i111 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i110 %start1.i.i.i.i.us.i112 = shl i64 %iter.sroa.60.0645.us.i110, 2 %data.i.i.i.i.i.i.us.i113 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i112 %data.i.i.i.i.i.i.i.i.us.i114 = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.60.0645.us.i110 %data.i.i.i.i.i.i.i.i.i.i.us.i115 = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.60.0645.us.i110 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i116 = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.60.0645.us.i110 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 1 %w1.0614.us.i117 = load <2 x float>, ptr %183, align 8, !alias.scope !730, !noalias !732, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 1, i32 1 %w1.1615.us.i118 = load <2 x float>, ptr %184, align 8, !alias.scope !730, !noalias !732, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 2 %w2.0616.us.i119 = load <2 x float>, ptr %185, align 8, !alias.scope !730, !noalias !732, !noundef !3 %186 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 2, i32 1 %w2.1617.us.i120 = load <2 x float>, ptr %186, align 8, !alias.scope !730, !noalias !732, !noundef !3 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 3 %w3.0618.us.i121 = load <2 x float>, ptr %187, align 8, !alias.scope !730, !noalias !732, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 3, i32 1 %w3.1619.us.i122 = load <2 x float>, ptr %188, align 8, !alias.scope !730, !noalias !732, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i123 = shufflevector <2 x float> %w1.0614.us.i117, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i124 = shufflevector <2 x float> %w1.1615.us.i118, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i125 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i123, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i124, <4 x i32> %189 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i125 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i127 = shufflevector <2 x float> %w2.0616.us.i119, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i128 = shufflevector <2 x float> %w2.1617.us.i120, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i129 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i127, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i128, <4 x i32> %190 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i129 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i131 = shufflevector <2 x float> %w3.0618.us.i121, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i132 = shufflevector <2 x float> %w3.1619.us.i122, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i133 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i131, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i132, <4 x i32> %191 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i133 to <2 x double> %192 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i113, i64 2 %193 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i113, i64 1 %194 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i113, i64 3 %195 = shufflevector <2 x double> %189, <2 x double> poison, <8 x i32> zeroinitializer %196 = shufflevector <2 x double> %189, <2 x double> poison, <8 x i32> %197 = shufflevector <2 x double> %190, <2 x double> poison, <8 x i32> zeroinitializer %198 = shufflevector <2 x double> %190, <2 x double> poison, <8 x i32> %199 = shufflevector <2 x double> %191, <2 x double> poison, <8 x i32> zeroinitializer %200 = shufflevector <2 x double> %191, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i145 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i113, align 8, !alias.scope !728, !noalias !733 %_84.sroa.0.0.copyload.us.i146 = load <8 x double>, ptr %193, align 8, !alias.scope !728, !noalias !733 %201 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i146, <8 x double> poison, <8 x i32> %202 = fmul <8 x double> %196, %201 %_4.i176 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %_84.sroa.0.0.copyload.us.i146, <8 x double> %202, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i148 = load <8 x double>, ptr %192, align 8, !alias.scope !728, !noalias !733 %203 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i148, <8 x double> poison, <8 x i32> %204 = fmul <8 x double> %198, %203 %_4.i175 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %197, <8 x double> %_86.sroa.0.0.copyload.us.i148, <8 x double> %204, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i150 = load <8 x double>, ptr %194, align 8, !alias.scope !728, !noalias !733 %205 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i150, <8 x double> poison, <8 x i32> %206 = fmul <8 x double> %200, %205 %_4.i174 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %199, <8 x double> %_88.sroa.0.0.copyload.us.i150, <8 x double> %206, i32 noundef 4) #23 %207 = fadd <8 x double> %a.sroa.0.0.copyload.us.i145, %_4.i175 %208 = fsub <8 x double> %a.sroa.0.0.copyload.us.i145, %_4.i175 %209 = fadd <8 x double> %_4.i176, %_4.i174 %210 = fsub <8 x double> %_4.i176, %_4.i174 %211 = bitcast <8 x double> %210 to <8 x i64> %212 = xor <8 x i64> %211, %213 = bitcast <8 x i64> %212 to <8 x double> %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = fadd <8 x double> %207, %209 store <8 x double> %215, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i111, align 8, !alias.scope !725, !noalias !734 %216 = fsub <8 x double> %208, %214 store <8 x double> %216, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i116, align 8, !alias.scope !725, !noalias !734 %217 = fsub <8 x double> %207, %209 store <8 x double> %217, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i115, align 8, !alias.scope !725, !noalias !734 %218 = fadd <8 x double> %208, %214 store <8 x double> %218, ptr %data.i.i.i.i.i.i.i.i.us.i114, align 8, !alias.scope !725, !noalias !734 %219 = add nuw nsw i64 %iter.sroa.60.0645.us.i110, 1 %exitcond520.not = icmp eq i64 %219, 32 br i1 %exitcond520.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164, label %bb22.us.i109 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164: ; preds = %bb22.us.i109 tail call void @llvm.experimental.noalias.scope.decl(metadata !735) tail call void @llvm.experimental.noalias.scope.decl(metadata !738) tail call void @llvm.experimental.noalias.scope.decl(metadata !740) %220 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %221 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %222 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 br label %bb15.i167 bb15.i167: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164, %bb15.i167 %iter.sroa.50.0449.i = phi i64 [ %223, %bb15.i167 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164 ] %223 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %221, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %220, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %222, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !740, !noalias !742 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !740, !noalias !742 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !740, !noalias !742 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !738, !noalias !743 %224 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %224, align 8, !alias.scope !738, !noalias !743 %225 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %225, align 8, !alias.scope !738, !noalias !743 %226 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %226, align 8, !alias.scope !738, !noalias !743 %227 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %228 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %229 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %230 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %231 = shufflevector <8 x double> %227, <8 x double> %229, <8 x i32> %232 = shufflevector <8 x double> %227, <8 x double> %229, <8 x i32> %233 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %234 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %235 = shufflevector <8 x double> %233, <8 x double> poison, <8 x i32> %236 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %237 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %238 = fmul <8 x double> %237, %235 %_4.i179 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %236, <8 x double> %233, <8 x double> %238, i32 noundef 4) #23 %239 = shufflevector <8 x double> %232, <8 x double> poison, <8 x i32> %240 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %241 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %242 = fmul <8 x double> %241, %239 %_4.i178 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %240, <8 x double> %232, <8 x double> %242, i32 noundef 4) #23 %243 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %244 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %245 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %246 = fmul <8 x double> %245, %243 %_4.i177 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %244, <8 x double> %234, <8 x double> %246, i32 noundef 4) #23 %247 = fadd <8 x double> %231, %_4.i178 %248 = fsub <8 x double> %231, %_4.i178 %249 = fadd <8 x double> %_4.i179, %_4.i177 %250 = fsub <8 x double> %_4.i179, %_4.i177 %251 = bitcast <8 x double> %250 to <8 x i64> %252 = xor <8 x i64> %251, %253 = bitcast <8 x i64> %252 to <8 x double> %254 = shufflevector <8 x double> %253, <8 x double> poison, <8 x i32> %255 = fadd <8 x double> %247, %249 store <8 x double> %255, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !735, !noalias !744 %256 = fsub <8 x double> %248, %254 store <8 x double> %256, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !735, !noalias !744 %257 = fsub <8 x double> %247, %249 store <8 x double> %257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !735, !noalias !744 %258 = fadd <8 x double> %248, %254 store <8 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !735, !noalias !744 %exitcond.not.i168 = icmp eq i64 %223, 32 br i1 %exitcond.not.i168, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i167 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i167 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !702 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4d1dc5e870b3d955E(ptr noalias nocapture noundef readonly align 8 dereferenceable(32) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_33.i = alloca %"core::option::Option>", align 8 %_27.i = alloca i64, align 8 %n.i = alloca i64, align 8 %_14.i = alloca %"core::option::Option>", align 8 %_9.i = alloca i64, align 8 %_7.i = alloca i64, align 8 %_2.i.sroa.0.0.copyload = load ptr, ptr %f, align 8, !nonnull !3, !noundef !3 %_2.i.sroa.4.0.f.sroa_idx = getelementptr inbounds i8, ptr %f, i64 8 %_2.i.sroa.4.0.copyload = load ptr, ptr %_2.i.sroa.4.0.f.sroa_idx, align 8, !nonnull !3, !noundef !3 %_2.i.sroa.5.0.f.sroa_idx = getelementptr inbounds i8, ptr %f, i64 16 %_2.i.sroa.5.0.copyload = load i64, ptr %_2.i.sroa.5.0.f.sroa_idx, align 8 %_2.i.sroa.6.0.f.sroa_idx = getelementptr inbounds i8, ptr %f, i64 24 %_2.i.sroa.6.0.copyload = load i64, ptr %_2.i.sroa.6.0.f.sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_7.i), !noalias !745 %0 = getelementptr inbounds %"unordered::Plan", ptr %_2.i.sroa.0.0.copyload, i64 0, i32 13 %1 = load i64, ptr %0, align 8, !noalias !745, !noundef !3 store i64 %1, ptr %_7.i, align 8, !noalias !745 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_9.i), !noalias !745 store i64 %_2.i.sroa.5.0.copyload, ptr %_9.i, align 8, !noalias !745 %_10.i = icmp eq i64 %1, %_2.i.sroa.5.0.copyload br i1 %_10.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_14.i), !noalias !745 store ptr null, ptr %_14.i, align 8, !noalias !745 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_7.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_9.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_14.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_43efcd11700c07ac74aba018a6284297) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_9.i), !noalias !745 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_7.i), !noalias !745 %_15.i = icmp ult i64 %_2.i.sroa.6.0.copyload, %_2.i.sroa.5.0.copyload br i1 %_15.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_b664c7a4a3eefca7bfb9186b14833af4, i64 noundef 42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_48204a8f2dcffebc600b6086120a294b) #22, !noalias !745 unreachable bb3.i: ; preds = %bb1.i %self.0.i = load ptr, ptr %_2.i.sroa.0.0.copyload, align 8, !noalias !745, !nonnull !3, !noundef !3 %2 = getelementptr inbounds i8, ptr %_2.i.sroa.0.0.copyload, i64 8 %self.1.i = load i64, ptr %2, align 8, !noalias !745, !noundef !3 %3 = getelementptr inbounds %"unordered::Plan", ptr %_2.i.sroa.0.0.copyload, i64 0, i32 1 %self.017.i = load ptr, ptr %3, align 8, !noalias !745, !nonnull !3, !noundef !3 %4 = getelementptr inbounds %"unordered::Plan", ptr %_2.i.sroa.0.0.copyload, i64 0, i32 1, i32 0, i32 0, i32 1 %self.118.i = load i64, ptr %4, align 8, !noalias !745, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !745 store i64 %_2.i.sroa.5.0.copyload, ptr %n.i, align 8, !noalias !745 %5 = getelementptr inbounds %"unordered::Plan", ptr %_2.i.sroa.0.0.copyload, i64 0, i32 12 %base_n.i = load i64, ptr %5, align 8, !noalias !745, !noundef !3 %n_mask.i = add i64 %_2.i.sroa.5.0.copyload, -1 %6 = tail call i64 @llvm.ctpop.i64(i64 %_2.i.sroa.5.0.copyload), !range !750 %7 = icmp eq i64 %6, 1 br i1 %7, label %bb5.i, label %bb6.i bb5.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_27.i), !noalias !745 store i64 %self.1.i, ptr %_27.i, align 8, !noalias !745 %_29.i = icmp eq i64 %self.1.i, %_2.i.sroa.5.0.copyload br i1 %_29.i, label %bb7.i, label %bb8.i bb6.i: ; preds = %bb3.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf, i64 noundef 37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_0426b419837a8055dfeadaee9ff1adb0) #22, !noalias !745 unreachable bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_33.i), !noalias !745 store ptr null, ptr %_33.i, align 8, !noalias !745 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_27.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_33.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_21d6ac4e98ab2512bf59a22af475cadd) #22 unreachable bb7.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_27.i), !noalias !745 %_36.i = icmp eq i64 %base_n.i, 0 br i1 %_36.i, label %panic.i, label %bb9.i, !prof !751 bb9.i: ; preds = %bb7.i %_34.i = udiv i64 %_2.i.sroa.5.0.copyload, %base_n.i switch i64 %_34.i, label %bb10.i [ i64 1, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader" i64 2, label %bb32.i ] panic.i: ; preds = %bb7.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @str.0, i64 noundef 25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_640be1ca528f6a352bdf5246e81818da) #22, !noalias !745 unreachable bb10.i: ; preds = %bb9.i %_0.0.sroa.speculated.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %_2.i.sroa.5.0.copyload, i64 %self.118.i) %_2.i933.not = icmp eq i64 %self.118.i, 0 br i1 %_2.i933.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb29.i.preheader bb29.i.preheader: ; preds = %bb10.i %xtraiter53 = and i64 %_0.0.sroa.speculated.i.i.i, 3 %8 = icmp ult i64 %_0.0.sroa.speculated.i.i.i, 4 br i1 %8, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa", label %bb29.i.preheader.new bb29.i.preheader.new: ; preds = %bb29.i.preheader %unroll_iter56 = and i64 %_0.0.sroa.speculated.i.i.i, -4 br label %bb29.i "_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader": ; preds = %bb9.i %9 = add i64 %_2.i.sroa.5.0.copyload, 1152921504606846975 %10 = and i64 %9, 1152921504606846975 %11 = add nuw nsw i64 %10, 1 %xtraiter49 = and i64 %11, 7 %12 = icmp ult i64 %10, 7 br i1 %12, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa", label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.new" "_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.new": ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader" %unroll_iter51 = and i64 %11, 2305843009213693944 br label %bb16.i bb16.i: ; preds = %bb16.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.new" %iter.i.sroa.0.032 = phi ptr [ %_2.i.sroa.4.0.copyload, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.new" ], [ %_30.i.i.7, %bb16.i ] %iter.i.sroa.7.031 = phi i64 [ 0, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.new" ], [ %_8.0.i.7, %bb16.i ] %niter52 = phi i64 [ 0, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.new" ], [ %niter52.next.7, %bb16.i ] %_47.i = mul i64 %iter.i.sroa.7.031, %_2.i.sroa.6.0.copyload %_46.i = and i64 %_47.i, %n_mask.i %_8.0.i = or disjoint i64 %iter.i.sroa.7.031, 1 %_30.i.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 1 %13 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i %14 = load <2 x double>, ptr %13, align 8, !noalias !745 store <2 x double> %14, ptr %iter.i.sroa.0.032, align 8, !noalias !752 %_47.i.1 = mul i64 %_8.0.i, %_2.i.sroa.6.0.copyload %_46.i.1 = and i64 %_47.i.1, %n_mask.i %_8.0.i.1 = or disjoint i64 %iter.i.sroa.7.031, 2 %_30.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 2 %15 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.1 %16 = load <2 x double>, ptr %15, align 8, !noalias !745 store <2 x double> %16, ptr %_30.i.i, align 8, !noalias !752 %_47.i.2 = mul i64 %_8.0.i.1, %_2.i.sroa.6.0.copyload %_46.i.2 = and i64 %_47.i.2, %n_mask.i %_8.0.i.2 = or disjoint i64 %iter.i.sroa.7.031, 3 %_30.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 3 %17 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.2 %18 = load <2 x double>, ptr %17, align 8, !noalias !745 store <2 x double> %18, ptr %_30.i.i.1, align 8, !noalias !752 %_47.i.3 = mul i64 %_8.0.i.2, %_2.i.sroa.6.0.copyload %_46.i.3 = and i64 %_47.i.3, %n_mask.i %_8.0.i.3 = or disjoint i64 %iter.i.sroa.7.031, 4 %_30.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 4 %19 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.3 %20 = load <2 x double>, ptr %19, align 8, !noalias !745 store <2 x double> %20, ptr %_30.i.i.2, align 8, !noalias !752 %_47.i.4 = mul i64 %_8.0.i.3, %_2.i.sroa.6.0.copyload %_46.i.4 = and i64 %_47.i.4, %n_mask.i %_8.0.i.4 = or disjoint i64 %iter.i.sroa.7.031, 5 %_30.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 5 %21 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.4 %22 = load <2 x double>, ptr %21, align 8, !noalias !745 store <2 x double> %22, ptr %_30.i.i.3, align 8, !noalias !752 %_47.i.5 = mul i64 %_8.0.i.4, %_2.i.sroa.6.0.copyload %_46.i.5 = and i64 %_47.i.5, %n_mask.i %_8.0.i.5 = or disjoint i64 %iter.i.sroa.7.031, 6 %_30.i.i.5 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 6 %23 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.5 %24 = load <2 x double>, ptr %23, align 8, !noalias !745 store <2 x double> %24, ptr %_30.i.i.4, align 8, !noalias !752 %_47.i.6 = mul i64 %_8.0.i.5, %_2.i.sroa.6.0.copyload %_46.i.6 = and i64 %_47.i.6, %n_mask.i %_8.0.i.6 = or disjoint i64 %iter.i.sroa.7.031, 7 %_30.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 7 %25 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.6 %26 = load <2 x double>, ptr %25, align 8, !noalias !745 store <2 x double> %26, ptr %_30.i.i.5, align 8, !noalias !752 %_47.i.7 = mul i64 %_8.0.i.6, %_2.i.sroa.6.0.copyload %_46.i.7 = and i64 %_47.i.7, %n_mask.i %_8.0.i.7 = add nuw nsw i64 %iter.i.sroa.7.031, 8 %_30.i.i.7 = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032, i64 8 %27 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.7 %28 = load <2 x double>, ptr %27, align 8, !noalias !745 store <2 x double> %28, ptr %_30.i.i.6, align 8, !noalias !752 %niter52.next.7 = add i64 %niter52, 8 %niter52.ncmp.7 = icmp eq i64 %niter52.next.7, %unroll_iter51 br i1 %niter52.ncmp.7, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa", label %bb16.i bb32.i: ; preds = %bb9.i %mid28.i = lshr i64 %_2.i.sroa.5.0.copyload, 1 %29 = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %mid28.i %30 = sub i64 %_2.i.sroa.5.0.copyload, %mid28.i %_0.0.sroa.speculated.i.i.i3 = tail call noundef i64 @llvm.umin.i64(i64 %mid28.i, i64 %30) %_2.i.i.i.i28.not = icmp eq i64 %_0.0.sroa.speculated.i.i.i3, 0 br i1 %_2.i.i.i.i28.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb24.i.preheader bb24.i.preheader: ; preds = %bb32.i %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i3, 1 %31 = icmp eq i64 %_0.0.sroa.speculated.i.i.i3, 1 br i1 %31, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit48.unr-lcssa", label %bb24.i.preheader.new bb24.i.preheader.new: ; preds = %bb24.i.preheader %unroll_iter = and i64 %_0.0.sroa.speculated.i.i.i3, 9223372036854775806 br label %bb24.i bb24.i: ; preds = %bb24.i, %bb24.i.preheader.new %iter6.i.sroa.14.030 = phi i64 [ 0, %bb24.i.preheader.new ], [ %_8.0.i8.1, %bb24.i ] %niter = phi i64 [ 0, %bb24.i.preheader.new ], [ %niter.next.1, %bb24.i ] %_8.0.i8 = or disjoint i64 %iter6.i.sroa.14.030, 1 %_3.i2.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %iter6.i.sroa.14.030 %_66.i = shl nuw i64 %iter6.i.sroa.14.030, 1 %_65.i = mul i64 %_66.i, %_2.i.sroa.6.0.copyload %_64.i = and i64 %_65.i, %n_mask.i %_3.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %iter6.i.sroa.14.030 %32 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_64.i %33 = load <2 x double>, ptr %32, align 8, !noalias !745 store <2 x double> %33, ptr %_3.i.i.i.i.i, align 8, !noalias !745 %_72.i = or disjoint i64 %_66.i, 1 %_71.i = mul i64 %_72.i, %_2.i.sroa.6.0.copyload %_70.i = and i64 %_71.i, %n_mask.i %34 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_70.i %35 = load <2 x double>, ptr %34, align 8, !noalias !745 store <2 x double> %35, ptr %_3.i2.i.i.i.i, align 8, !noalias !745 %_8.0.i8.1 = add nuw nsw i64 %iter6.i.sroa.14.030, 2 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %_8.0.i8 %_66.i.1 = shl nuw i64 %_8.0.i8, 1 %_65.i.1 = mul i64 %_66.i.1, %_2.i.sroa.6.0.copyload %_64.i.1 = and i64 %_65.i.1, %n_mask.i %_3.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %_8.0.i8 %36 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_64.i.1 %37 = load <2 x double>, ptr %36, align 8, !noalias !745 store <2 x double> %37, ptr %_3.i.i.i.i.i.1, align 8, !noalias !745 %_72.i.1 = or disjoint i64 %_66.i.1, 1 %_71.i.1 = mul i64 %_72.i.1, %_2.i.sroa.6.0.copyload %_70.i.1 = and i64 %_71.i.1, %n_mask.i %38 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_70.i.1 %39 = load <2 x double>, ptr %38, align 8, !noalias !745 store <2 x double> %39, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !745 %niter.next.1 = add i64 %niter, 2 %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit48.unr-lcssa", label %bb24.i bb29.i: ; preds = %bb29.i, %bb29.i.preheader.new %iter8.i.sroa.8.034 = phi i64 [ 0, %bb29.i.preheader.new ], [ %49, %bb29.i ] %niter57 = phi i64 [ 0, %bb29.i.preheader.new ], [ %niter57.next.3, %bb29.i ] %_3.i2.i = getelementptr inbounds i64, ptr %self.017.i, i64 %iter8.i.sroa.8.034 %idx.i = load i64, ptr %_3.i2.i, align 8, !noalias !752, !noundef !3 %_86.i = mul i64 %idx.i, %_2.i.sroa.6.0.copyload %_85.i = and i64 %_86.i, %n_mask.i %_3.i.i = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %iter8.i.sroa.8.034 %40 = or disjoint i64 %iter8.i.sroa.8.034, 1 %41 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i %42 = load <2 x double>, ptr %41, align 8, !noalias !745 store <2 x double> %42, ptr %_3.i.i, align 8, !noalias !752 %_3.i2.i.1 = getelementptr inbounds i64, ptr %self.017.i, i64 %40 %idx.i.1 = load i64, ptr %_3.i2.i.1, align 8, !noalias !752, !noundef !3 %_86.i.1 = mul i64 %idx.i.1, %_2.i.sroa.6.0.copyload %_85.i.1 = and i64 %_86.i.1, %n_mask.i %_3.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %40 %43 = or disjoint i64 %iter8.i.sroa.8.034, 2 %44 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.1 %45 = load <2 x double>, ptr %44, align 8, !noalias !745 store <2 x double> %45, ptr %_3.i.i.1, align 8, !noalias !752 %_3.i2.i.2 = getelementptr inbounds i64, ptr %self.017.i, i64 %43 %idx.i.2 = load i64, ptr %_3.i2.i.2, align 8, !noalias !752, !noundef !3 %_86.i.2 = mul i64 %idx.i.2, %_2.i.sroa.6.0.copyload %_85.i.2 = and i64 %_86.i.2, %n_mask.i %_3.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %43 %46 = or disjoint i64 %iter8.i.sroa.8.034, 3 %47 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.2 %48 = load <2 x double>, ptr %47, align 8, !noalias !745 store <2 x double> %48, ptr %_3.i.i.2, align 8, !noalias !752 %_3.i2.i.3 = getelementptr inbounds i64, ptr %self.017.i, i64 %46 %idx.i.3 = load i64, ptr %_3.i2.i.3, align 8, !noalias !752, !noundef !3 %_86.i.3 = mul i64 %idx.i.3, %_2.i.sroa.6.0.copyload %_85.i.3 = and i64 %_86.i.3, %n_mask.i %_3.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %46 %49 = add nuw i64 %iter8.i.sroa.8.034, 4 %50 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.3 %51 = load <2 x double>, ptr %50, align 8, !noalias !745 store <2 x double> %51, ptr %_3.i.i.3, align 8, !noalias !752 %niter57.next.3 = add i64 %niter57, 4 %niter57.ncmp.3 = icmp eq i64 %niter57.next.3, %unroll_iter56 br i1 %niter57.ncmp.3, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa", label %bb29.i "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa": ; preds = %bb29.i, %bb29.i.preheader %iter8.i.sroa.8.034.unr = phi i64 [ 0, %bb29.i.preheader ], [ %49, %bb29.i ] %lcmp.mod55.not = icmp eq i64 %xtraiter53, 0 br i1 %lcmp.mod55.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb29.i.epil bb29.i.epil: ; preds = %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa", %bb29.i.epil %iter8.i.sroa.8.034.epil = phi i64 [ %52, %bb29.i.epil ], [ %iter8.i.sroa.8.034.unr, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa" ] %epil.iter54 = phi i64 [ %epil.iter54.next, %bb29.i.epil ], [ 0, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa" ] %_3.i2.i.epil = getelementptr inbounds i64, ptr %self.017.i, i64 %iter8.i.sroa.8.034.epil %idx.i.epil = load i64, ptr %_3.i2.i.epil, align 8, !noalias !752, !noundef !3 %_86.i.epil = mul i64 %idx.i.epil, %_2.i.sroa.6.0.copyload %_85.i.epil = and i64 %_86.i.epil, %n_mask.i %_3.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %iter8.i.sroa.8.034.epil %52 = add nuw i64 %iter8.i.sroa.8.034.epil, 1 %53 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.epil %54 = load <2 x double>, ptr %53, align 8, !noalias !745 store <2 x double> %54, ptr %_3.i.i.epil, align 8, !noalias !752 %epil.iter54.next = add i64 %epil.iter54, 1 %epil.iter54.cmp.not = icmp eq i64 %epil.iter54.next, %xtraiter53 br i1 %epil.iter54.cmp.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb29.i.epil, !llvm.loop !753 "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa": ; preds = %bb16.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader" %iter.i.sroa.0.032.unr = phi ptr [ %_2.i.sroa.4.0.copyload, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader" ], [ %_30.i.i.7, %bb16.i ] %iter.i.sroa.7.031.unr = phi i64 [ 0, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader" ], [ %_8.0.i.7, %bb16.i ] %lcmp.mod50.not = icmp eq i64 %xtraiter49, 0 br i1 %lcmp.mod50.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb16.i.epil bb16.i.epil: ; preds = %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa", %bb16.i.epil %iter.i.sroa.0.032.epil = phi ptr [ %_30.i.i.epil, %bb16.i.epil ], [ %iter.i.sroa.0.032.unr, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa" ] %iter.i.sroa.7.031.epil = phi i64 [ %_8.0.i.epil, %bb16.i.epil ], [ %iter.i.sroa.7.031.unr, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa" ] %epil.iter = phi i64 [ %epil.iter.next, %bb16.i.epil ], [ 0, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa" ] %_47.i.epil = mul i64 %iter.i.sroa.7.031.epil, %_2.i.sroa.6.0.copyload %_46.i.epil = and i64 %_47.i.epil, %n_mask.i %_8.0.i.epil = add nuw nsw i64 %iter.i.sroa.7.031.epil, 1 %_30.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032.epil, i64 1 %55 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i.epil %56 = load <2 x double>, ptr %55, align 8, !noalias !745 store <2 x double> %56, ptr %iter.i.sroa.0.032.epil, align 8, !noalias !752 %epil.iter.next = add i64 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter49 br i1 %epil.iter.cmp.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb16.i.epil, !llvm.loop !755 "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit48.unr-lcssa": ; preds = %bb24.i, %bb24.i.preheader %iter6.i.sroa.14.030.unr = phi i64 [ 0, %bb24.i.preheader ], [ %_8.0.i8.1, %bb24.i ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit", label %bb24.i.epil bb24.i.epil: ; preds = %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit48.unr-lcssa" %_3.i2.i.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %iter6.i.sroa.14.030.unr %_66.i.epil = shl nuw i64 %iter6.i.sroa.14.030.unr, 1 %_65.i.epil = mul i64 %_66.i.epil, %_2.i.sroa.6.0.copyload %_64.i.epil = and i64 %_65.i.epil, %n_mask.i %_3.i.i.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %_2.i.sroa.4.0.copyload, i64 %iter6.i.sroa.14.030.unr %57 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_64.i.epil %58 = load <2 x double>, ptr %57, align 8, !noalias !745 store <2 x double> %58, ptr %_3.i.i.i.i.i.epil, align 8, !noalias !745 %_72.i.epil = or disjoint i64 %_66.i.epil, 1 %_71.i.epil = mul i64 %_72.i.epil, %_2.i.sroa.6.0.copyload %_70.i.epil = and i64 %_71.i.epil, %n_mask.i %59 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_70.i.epil %60 = load <2 x double>, ptr %59, align 8, !noalias !745 store <2 x double> %60, ptr %_3.i2.i.i.i.i.epil, align 8, !noalias !745 br label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit" "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit": ; preds = %bb24.i.epil, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit48.unr-lcssa", %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit47.unr-lcssa", %bb16.i.epil, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E.exit.loopexit.unr-lcssa", %bb29.i.epil, %bb32.i, %bb10.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !745 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4d59c5f8b5221cedE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !756) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !756, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !756, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !756, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !756, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !756, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !756, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !756, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !756 store i64 256, ptr %n.i, align 8, !noalias !756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !756 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !756 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !756 store ptr null, ptr %_16.i, align 8, !noalias !756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !756 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !756 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !756 store ptr null, ptr %_24.i, align 8, !noalias !756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !756 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !756 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !756 store ptr null, ptr %_32.i, align 8, !noalias !756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !756 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !756 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h250beacc74639c98E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !756 store ptr null, ptr %_40.i, align 8, !noalias !756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h250beacc74639c98E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !756 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 36 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 44 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 52 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 60 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 36 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 44 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 52 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 60 br label %bb62.i.i.i bb62.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h250beacc74639c98E.exit", %bb62.i.i.i %iter22.i.i.i.sroa.218.02190 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h250beacc74639c98E.exit" ], [ %36, %bb62.i.i.i ] %36 = add nuw nsw i64 %iter22.i.i.i.sroa.218.02190, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i72.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i75.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i78.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter22.i.i.i.sroa.218.02190 %_208.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i, align 8, !noalias !759 %_209.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i, align 8, !noalias !759 %_210.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i, align 8, !noalias !759 %_211.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i, align 8, !noalias !759 %_212.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i, align 8, !noalias !759 %_213.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i, align 8, !noalias !759 %_214.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i, align 8, !noalias !759 %_215.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i, align 8, !noalias !759 %_216.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i, align 8, !noalias !759 %_217.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i, align 8, !noalias !759 %_218.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i, align 8, !noalias !759 %_219.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i, align 8, !noalias !759 %_220.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i, align 8, !noalias !759 %_221.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i, align 8, !noalias !759 %_222.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i, align 8, !noalias !759 %_223.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i78.i.i.i, align 8, !noalias !759 %37 = fadd <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %38 = fsub <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %39 = fadd <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %40 = fsub <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %41 = fadd <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %42 = fsub <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %43 = fadd <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %44 = fsub <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %45 = fadd <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %46 = fsub <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %47 = fadd <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %48 = fsub <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %49 = fadd <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %50 = fsub <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %51 = fadd <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %52 = fsub <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %53 = bitcast <8 x double> %40 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x i64> %54 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = bitcast <8 x double> %44 to <8 x i64> %58 = xor <8 x i64> %57, %59 = bitcast <8 x i64> %58 to <8 x double> %60 = shufflevector <8 x double> %59, <8 x double> poison, <8 x i32> %61 = bitcast <8 x double> %48 to <8 x i64> %62 = xor <8 x i64> %61, %63 = bitcast <8 x i64> %62 to <8 x double> %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = bitcast <8 x double> %52 to <8 x i64> %66 = xor <8 x i64> %65, %67 = bitcast <8 x i64> %66 to <8 x double> %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = fadd <8 x double> %37, %39 %70 = fsub <8 x double> %38, %56 %71 = fsub <8 x double> %37, %39 %72 = fadd <8 x double> %38, %56 %73 = fadd <8 x double> %41, %43 %74 = fsub <8 x double> %42, %60 %75 = fsub <8 x double> %41, %43 %76 = fadd <8 x double> %42, %60 %77 = fadd <8 x double> %45, %47 %78 = fsub <8 x double> %46, %64 %79 = fsub <8 x double> %45, %47 %80 = fadd <8 x double> %46, %64 %81 = fadd <8 x double> %49, %51 %82 = fsub <8 x double> %50, %68 %83 = fsub <8 x double> %49, %51 %84 = fadd <8 x double> %50, %68 %85 = bitcast <8 x double> %74 to <8 x i64> %86 = xor <8 x i64> %85, %87 = bitcast <8 x i64> %86 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fadd <8 x double> %74, %88 %90 = fmul <8 x double> %89, %91 = bitcast <8 x double> %75 to <8 x i64> %92 = xor <8 x i64> %91, %93 = bitcast <8 x i64> %92 to <8 x double> %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = bitcast <8 x double> %76 to <8 x i64> %96 = xor <8 x i64> %95, %97 = bitcast <8 x i64> %96 to <8 x double> %98 = shufflevector <8 x double> %97, <8 x double> poison, <8 x i32> %99 = fadd <8 x double> %76, %98 %100 = fmul <8 x double> %99, %101 = fadd <8 x double> %69, %73 %102 = fadd <8 x double> %70, %90 %103 = fsub <8 x double> %71, %94 %104 = fsub <8 x double> %72, %100 %105 = fsub <8 x double> %69, %73 %106 = fsub <8 x double> %70, %90 %107 = fadd <8 x double> %71, %94 %108 = fadd <8 x double> %72, %100 %109 = bitcast <8 x double> %82 to <8 x i64> %110 = xor <8 x i64> %109, %111 = bitcast <8 x i64> %110 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fadd <8 x double> %82, %112 %114 = fmul <8 x double> %113, %115 = bitcast <8 x double> %83 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x i64> %116 to <8 x double> %118 = shufflevector <8 x double> %117, <8 x double> poison, <8 x i32> %119 = bitcast <8 x double> %84 to <8 x i64> %120 = xor <8 x i64> %119, %121 = bitcast <8 x i64> %120 to <8 x double> %122 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %123 = fadd <8 x double> %84, %122 %124 = fmul <8 x double> %123, %125 = fadd <8 x double> %77, %81 %126 = fadd <8 x double> %78, %114 %127 = fsub <8 x double> %79, %118 %128 = fsub <8 x double> %80, %124 %129 = fsub <8 x double> %77, %81 %130 = fsub <8 x double> %78, %114 %131 = fadd <8 x double> %79, %118 %132 = fadd <8 x double> %80, %124 %133 = fmul <8 x double> %126, %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %126, <8 x double> %134, i32 noundef 4) #23 %135 = bitcast <8 x double> %127 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %127, %138 %140 = fmul <8 x double> %139, %141 = fmul <8 x double> %128, %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %_4.i499 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %128, <8 x double> %142, i32 noundef 4) #23 %143 = bitcast <8 x double> %129 to <8 x i64> %144 = xor <8 x i64> %143, %145 = bitcast <8 x i64> %144 to <8 x double> %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %130, %148 = shufflevector <8 x double> %147, <8 x double> poison, <8 x i32> %_4.i512 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %130, <8 x double> %148, i32 noundef 4) #23 %149 = bitcast <8 x double> %131 to <8 x i64> %150 = xor <8 x i64> %149, %151 = bitcast <8 x i64> %150 to <8 x double> %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fadd <8 x double> %131, %152 %154 = fmul <8 x double> %153, %155 = fmul <8 x double> %132, %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %_4.i529 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %132, <8 x double> %156, i32 noundef 4) #23 %157 = fadd <8 x double> %101, %125 %158 = fadd <8 x double> %_4.i, %102 %159 = fadd <8 x double> %103, %140 %160 = fadd <8 x double> %_4.i499, %104 %161 = fsub <8 x double> %105, %146 %162 = fsub <8 x double> %106, %_4.i512 %163 = fsub <8 x double> %107, %154 %164 = fsub <8 x double> %108, %_4.i529 %165 = fsub <8 x double> %101, %125 %166 = fsub <8 x double> %102, %_4.i %167 = fsub <8 x double> %103, %140 %168 = fsub <8 x double> %104, %_4.i499 %169 = fadd <8 x double> %105, %146 %170 = fadd <8 x double> %_4.i512, %106 %171 = fadd <8 x double> %107, %154 %172 = fadd <8 x double> %_4.i529, %108 store <8 x double> %157, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %158, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %159, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %160, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %161, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %164, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %165, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %171, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !759 store <8 x double> %172, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !759 %exitcond.not = icmp eq i64 %36, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit", label %bb62.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit": ; preds = %bb62.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !763) tail call void @llvm.experimental.noalias.scope.decl(metadata !766) tail call void @llvm.experimental.noalias.scope.decl(metadata !768) %173 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %174 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %175 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %176 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %177 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %178 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %179 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %180 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %181 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %182 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %183 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 36 %184 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 44 %185 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %186 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 52 %187 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 60 br label %bb39.i bb39.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit", %bb39.i %iter.sroa.218.04494.i = phi i64 [ %188, %bb39.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E.exit" ] %188 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %176, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %175, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %177, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %174, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %179, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %178, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %180, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %173, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %183, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %182, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %184, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %181, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %186, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %185, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %187, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !768, !noalias !770 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !766, !noalias !771 %189 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %189, align 8, !alias.scope !766, !noalias !771 %190 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %190, align 8, !alias.scope !766, !noalias !771 %191 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %191, align 8, !alias.scope !766, !noalias !771 %192 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %192, align 8, !alias.scope !766, !noalias !771 %193 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %193, align 8, !alias.scope !766, !noalias !771 %194 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %194, align 8, !alias.scope !766, !noalias !771 %195 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %195, align 8, !alias.scope !766, !noalias !771 %196 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %196, align 8, !alias.scope !766, !noalias !771 %197 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %197, align 8, !alias.scope !766, !noalias !771 %198 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %198, align 8, !alias.scope !766, !noalias !771 %199 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %199, align 8, !alias.scope !766, !noalias !771 %200 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %200, align 8, !alias.scope !766, !noalias !771 %201 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %201, align 8, !alias.scope !766, !noalias !771 %202 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %202, align 8, !alias.scope !766, !noalias !771 %203 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %203, align 8, !alias.scope !766, !noalias !771 %204 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %205 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %206 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %207 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %208 = shufflevector <8 x double> %204, <8 x double> %206, <8 x i32> %209 = shufflevector <8 x double> %204, <8 x double> %206, <8 x i32> %210 = shufflevector <8 x double> %205, <8 x double> %207, <8 x i32> %211 = shufflevector <8 x double> %205, <8 x double> %207, <8 x i32> %212 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %213 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %214 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %215 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %216 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %217 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %218 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %219 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %220 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %221 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %222 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %223 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %224 = shufflevector <8 x double> %220, <8 x double> %222, <8 x i32> %225 = shufflevector <8 x double> %220, <8 x double> %222, <8 x i32> %226 = shufflevector <8 x double> %221, <8 x double> %223, <8 x i32> %227 = shufflevector <8 x double> %221, <8 x double> %223, <8 x i32> %228 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %229 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %230 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %231 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %232 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %233 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %234 = shufflevector <8 x double> %229, <8 x double> %231, <8 x i32> %235 = shufflevector <8 x double> %229, <8 x double> %231, <8 x i32> %236 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %237 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %238 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %239 = fmul <8 x double> %238, %236 %_4.i581 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %237, <8 x double> %210, <8 x double> %239, i32 noundef 4) #23 %240 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %241 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %242 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %242, %240 %_4.i580 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %241, <8 x double> %209, <8 x double> %243, i32 noundef 4) #23 %244 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %245 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %246 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %247 = fmul <8 x double> %246, %244 %_4.i579 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %245, <8 x double> %211, <8 x double> %247, i32 noundef 4) #23 %248 = shufflevector <8 x double> %216, <8 x double> poison, <8 x i32> %249 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %250 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %251 = fmul <8 x double> %250, %248 %_4.i578 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %249, <8 x double> %216, <8 x double> %251, i32 noundef 4) #23 %252 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %253 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %254 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %255 = fmul <8 x double> %254, %252 %_4.i577 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %253, <8 x double> %218, <8 x double> %255, i32 noundef 4) #23 %256 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %257 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %258 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %259 = fmul <8 x double> %258, %256 %_4.i576 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %257, <8 x double> %217, <8 x double> %259, i32 noundef 4) #23 %260 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %261 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %262 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %263 = fmul <8 x double> %262, %260 %_4.i575 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %261, <8 x double> %219, <8 x double> %263, i32 noundef 4) #23 %264 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %265 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %266 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %267 = fmul <8 x double> %266, %264 %_4.i574 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %265, <8 x double> %224, <8 x double> %267, i32 noundef 4) #23 %268 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %269 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %270 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %271 = fmul <8 x double> %270, %268 %_4.i573 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %269, <8 x double> %226, <8 x double> %271, i32 noundef 4) #23 %272 = shufflevector <8 x double> %225, <8 x double> poison, <8 x i32> %273 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %274 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %274, %272 %_4.i572 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %273, <8 x double> %225, <8 x double> %275, i32 noundef 4) #23 %276 = shufflevector <8 x double> %227, <8 x double> poison, <8 x i32> %277 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %278 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %279 = fmul <8 x double> %278, %276 %_4.i571 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %277, <8 x double> %227, <8 x double> %279, i32 noundef 4) #23 %280 = shufflevector <8 x double> %232, <8 x double> poison, <8 x i32> %281 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %282 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %283 = fmul <8 x double> %282, %280 %_4.i570 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %281, <8 x double> %232, <8 x double> %283, i32 noundef 4) #23 %284 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %285 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %286 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %286, %284 %_4.i569 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %285, <8 x double> %234, <8 x double> %287, i32 noundef 4) #23 %288 = shufflevector <8 x double> %233, <8 x double> poison, <8 x i32> %289 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %290 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %291 = fmul <8 x double> %290, %288 %_4.i568 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %289, <8 x double> %233, <8 x double> %291, i32 noundef 4) #23 %292 = shufflevector <8 x double> %235, <8 x double> poison, <8 x i32> %293 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %294 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %295 = fmul <8 x double> %294, %292 %_4.i567 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %293, <8 x double> %235, <8 x double> %295, i32 noundef 4) #23 %296 = fadd <8 x double> %208, %_4.i574 %297 = fsub <8 x double> %208, %_4.i574 %298 = fadd <8 x double> %_4.i578, %_4.i570 %299 = fsub <8 x double> %_4.i578, %_4.i570 %300 = fadd <8 x double> %_4.i580, %_4.i572 %301 = fsub <8 x double> %_4.i580, %_4.i572 %302 = fadd <8 x double> %_4.i576, %_4.i568 %303 = fsub <8 x double> %_4.i576, %_4.i568 %304 = fadd <8 x double> %_4.i581, %_4.i573 %305 = fsub <8 x double> %_4.i581, %_4.i573 %306 = fadd <8 x double> %_4.i577, %_4.i569 %307 = fsub <8 x double> %_4.i577, %_4.i569 %308 = fadd <8 x double> %_4.i579, %_4.i571 %309 = fsub <8 x double> %_4.i579, %_4.i571 %310 = fadd <8 x double> %_4.i575, %_4.i567 %311 = fsub <8 x double> %_4.i575, %_4.i567 %312 = bitcast <8 x double> %299 to <8 x i64> %313 = xor <8 x i64> %312, %314 = bitcast <8 x i64> %313 to <8 x double> %315 = shufflevector <8 x double> %314, <8 x double> poison, <8 x i32> %316 = bitcast <8 x double> %303 to <8 x i64> %317 = xor <8 x i64> %316, %318 = bitcast <8 x i64> %317 to <8 x double> %319 = shufflevector <8 x double> %318, <8 x double> poison, <8 x i32> %320 = bitcast <8 x double> %307 to <8 x i64> %321 = xor <8 x i64> %320, %322 = bitcast <8 x i64> %321 to <8 x double> %323 = shufflevector <8 x double> %322, <8 x double> poison, <8 x i32> %324 = bitcast <8 x double> %311 to <8 x i64> %325 = xor <8 x i64> %324, %326 = bitcast <8 x i64> %325 to <8 x double> %327 = shufflevector <8 x double> %326, <8 x double> poison, <8 x i32> %328 = fadd <8 x double> %296, %298 %329 = fsub <8 x double> %297, %315 %330 = fsub <8 x double> %296, %298 %331 = fadd <8 x double> %297, %315 %332 = fadd <8 x double> %300, %302 %333 = fsub <8 x double> %301, %319 %334 = fsub <8 x double> %300, %302 %335 = fadd <8 x double> %301, %319 %336 = fadd <8 x double> %304, %306 %337 = fsub <8 x double> %305, %323 %338 = fsub <8 x double> %304, %306 %339 = fadd <8 x double> %305, %323 %340 = fadd <8 x double> %308, %310 %341 = fsub <8 x double> %309, %327 %342 = fsub <8 x double> %308, %310 %343 = fadd <8 x double> %309, %327 %344 = bitcast <8 x double> %333 to <8 x i64> %345 = xor <8 x i64> %344, %346 = bitcast <8 x i64> %345 to <8 x double> %347 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %348 = fadd <8 x double> %333, %347 %349 = fmul <8 x double> %348, %350 = bitcast <8 x double> %334 to <8 x i64> %351 = xor <8 x i64> %350, %352 = bitcast <8 x i64> %351 to <8 x double> %353 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %354 = bitcast <8 x double> %335 to <8 x i64> %355 = xor <8 x i64> %354, %356 = bitcast <8 x i64> %355 to <8 x double> %357 = shufflevector <8 x double> %356, <8 x double> poison, <8 x i32> %358 = fadd <8 x double> %335, %357 %359 = fmul <8 x double> %358, %360 = fadd <8 x double> %328, %332 %361 = fadd <8 x double> %329, %349 %362 = fsub <8 x double> %330, %353 %363 = fsub <8 x double> %331, %359 %364 = fsub <8 x double> %328, %332 %365 = fsub <8 x double> %329, %349 %366 = fadd <8 x double> %330, %353 %367 = fadd <8 x double> %331, %359 %368 = bitcast <8 x double> %341 to <8 x i64> %369 = xor <8 x i64> %368, %370 = bitcast <8 x i64> %369 to <8 x double> %371 = shufflevector <8 x double> %370, <8 x double> poison, <8 x i32> %372 = fadd <8 x double> %341, %371 %373 = fmul <8 x double> %372, %374 = bitcast <8 x double> %342 to <8 x i64> %375 = xor <8 x i64> %374, %376 = bitcast <8 x i64> %375 to <8 x double> %377 = shufflevector <8 x double> %376, <8 x double> poison, <8 x i32> %378 = bitcast <8 x double> %343 to <8 x i64> %379 = xor <8 x i64> %378, %380 = bitcast <8 x i64> %379 to <8 x double> %381 = shufflevector <8 x double> %380, <8 x double> poison, <8 x i32> %382 = fadd <8 x double> %343, %381 %383 = fmul <8 x double> %382, %384 = fadd <8 x double> %336, %340 %385 = fadd <8 x double> %337, %373 %386 = fsub <8 x double> %338, %377 %387 = fsub <8 x double> %339, %383 %388 = fsub <8 x double> %336, %340 %389 = fsub <8 x double> %337, %373 %390 = fadd <8 x double> %338, %377 %391 = fadd <8 x double> %339, %383 %392 = fadd <8 x double> %360, %384 store <8 x double> %392, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %393 = fsub <8 x double> %360, %384 store <8 x double> %393, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %394 = fmul <8 x double> %385, %395 = shufflevector <8 x double> %394, <8 x double> poison, <8 x i32> %_4.i566 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %385, <8 x double> %395, i32 noundef 4) #23 %396 = fadd <8 x double> %_4.i566, %361 store <8 x double> %396, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %397 = fsub <8 x double> %361, %_4.i566 store <8 x double> %397, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %398 = bitcast <8 x double> %386 to <8 x i64> %399 = xor <8 x i64> %398, %400 = bitcast <8 x i64> %399 to <8 x double> %401 = shufflevector <8 x double> %400, <8 x double> poison, <8 x i32> %402 = fadd <8 x double> %386, %401 %403 = fmul <8 x double> %402, %404 = fadd <8 x double> %362, %403 store <8 x double> %404, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %405 = fsub <8 x double> %362, %403 store <8 x double> %405, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %406 = fmul <8 x double> %387, %407 = shufflevector <8 x double> %406, <8 x double> poison, <8 x i32> %_4.i565 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %387, <8 x double> %407, i32 noundef 4) #23 %408 = fadd <8 x double> %_4.i565, %363 store <8 x double> %408, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %409 = fsub <8 x double> %363, %_4.i565 store <8 x double> %409, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %410 = bitcast <8 x double> %388 to <8 x i64> %411 = xor <8 x i64> %410, %412 = bitcast <8 x i64> %411 to <8 x double> %413 = shufflevector <8 x double> %412, <8 x double> poison, <8 x i32> %414 = fsub <8 x double> %364, %413 store <8 x double> %414, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %415 = fadd <8 x double> %364, %413 store <8 x double> %415, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %416 = fmul <8 x double> %389, %417 = shufflevector <8 x double> %416, <8 x double> poison, <8 x i32> %_4.i564 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %389, <8 x double> %417, i32 noundef 4) #23 %418 = fsub <8 x double> %365, %_4.i564 store <8 x double> %418, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %419 = fadd <8 x double> %365, %_4.i564 store <8 x double> %419, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %420 = bitcast <8 x double> %390 to <8 x i64> %421 = xor <8 x i64> %420, %422 = bitcast <8 x i64> %421 to <8 x double> %423 = shufflevector <8 x double> %422, <8 x double> poison, <8 x i32> %424 = fadd <8 x double> %390, %423 %425 = fmul <8 x double> %424, %426 = fsub <8 x double> %366, %425 store <8 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %427 = fadd <8 x double> %366, %425 store <8 x double> %427, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %428 = fmul <8 x double> %391, %429 = shufflevector <8 x double> %428, <8 x double> poison, <8 x i32> %_4.i563 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %391, <8 x double> %429, i32 noundef 4) #23 %430 = fsub <8 x double> %367, %_4.i563 store <8 x double> %430, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %431 = fadd <8 x double> %367, %_4.i563 store <8 x double> %431, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !763, !noalias !772 %exitcond.not.i = icmp eq i64 %188, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !756 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h508d8ece8b956cf3E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_13.i.i = alloca %"core::option::Option>", align 8 %_8.i.i = alloca i64, align 8 %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !773) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !773, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !773, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !773, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !773, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !773 store i64 16, ptr %n.i, align 8, !noalias !773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !773 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !773 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !773 store ptr null, ptr %_16.i, align 8, !noalias !773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !773 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !773 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !773 store ptr null, ptr %_24.i, align 8, !noalias !773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !773 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !773 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !773 store ptr null, ptr %_32.i, align 8, !noalias !773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !773 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !773 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4fb8b8a1fc8b151cE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !773 store ptr null, ptr %_40.i, align 8, !noalias !773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4fb8b8a1fc8b151cE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i), !noalias !776 store i64 1, ptr %_8.i.i, align 8, !noalias !776 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i), !noalias !776 store ptr null, ptr %_13.i.i, align 8, !noalias !776 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9f9c1a2fba17fd436f6db33315954035) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h511827430d653b50E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !783) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !783, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !783, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !783, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !783, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !783, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !783, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !783, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !783, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !783 store i64 1024, ptr %n.i, align 8, !noalias !783 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !783 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !783 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !783 store ptr null, ptr %_16.i, align 8, !noalias !783 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !783 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !783 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !783 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !783 store ptr null, ptr %_24.i, align 8, !noalias !783 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !783 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !783 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !783 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !783 store ptr null, ptr %_32.i, align 8, !noalias !783 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !783 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !783 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !783 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h76ac5b9b0b1b9c19E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !783 store ptr null, ptr %_40.i, align 8, !noalias !783 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h76ac5b9b0b1b9c19E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !783 tail call void @llvm.experimental.noalias.scope.decl(metadata !786) tail call void @llvm.experimental.noalias.scope.decl(metadata !789) tail call void @llvm.experimental.noalias.scope.decl(metadata !791) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h76ac5b9b0b1b9c19E.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h76ac5b9b0b1b9c19E.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !786, !noalias !793 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = bitcast <8 x i64> %27 to <8 x double> %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %31 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %32 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %33 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %34 = bitcast <8 x double> %33 to <8 x i64> %35 = xor <8 x i64> %34, %36 = bitcast <8 x i64> %35 to <8 x double> %37 = shufflevector <8 x double> %36, <8 x double> poison, <8 x i32> %38 = fadd <8 x double> %22, %24 %39 = fsub <8 x double> %23, %29 %40 = fsub <8 x double> %22, %24 %41 = fadd <8 x double> %23, %29 %42 = fadd <8 x double> %30, %32 %43 = fsub <8 x double> %31, %37 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %30, %32 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = bitcast <8 x i64> %52 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fadd <8 x double> %31, %37 %56 = bitcast <8 x double> %55 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x i64> %57 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = fadd <8 x double> %55, %59 %61 = fmul <8 x double> %60, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !791, !noalias !794 %62 = fadd <8 x double> %38, %42 %63 = fadd <8 x double> %39, %49 %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %66 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %66, %64 %_4.i244 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %65, <8 x double> %63, <8 x double> %67, i32 noundef 4) #23 %68 = fsub <8 x double> %40, %54 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i243 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %41, %61 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i242 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %38, %42 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i241 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %39, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i240 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %40, %54 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i239 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %41, %61 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %62, <8 x double> %_4.i244, <8 x i32> %99 = shufflevector <8 x double> %62, <8 x double> %_4.i244, <8 x i32> %100 = shufflevector <8 x double> %_4.i243, <8 x double> %_4.i242, <8 x i32> %101 = shufflevector <8 x double> %_4.i243, <8 x double> %_4.i242, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i241, <8 x double> %_4.i240, <8 x i32> %107 = shufflevector <8 x double> %_4.i241, <8 x double> %_4.i240, <8 x i32> %108 = shufflevector <8 x double> %_4.i239, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i239, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !789, !noalias !795 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !789, !noalias !795 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !789, !noalias !795 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !789, !noalias !795 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !789, !noalias !795 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !789, !noalias !795 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !789, !noalias !795 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !789, !noalias !795 %exitcond.not.i = icmp eq i64 %21, 32 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !796) tail call void @llvm.experimental.noalias.scope.decl(metadata !799) tail call void @llvm.experimental.noalias.scope.decl(metadata !801) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 br label %bb30.i bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %iter.sroa.104.01923.i = phi i64 [ %294, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %128, align 8, !alias.scope !801, !noalias !803, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %129, align 8, !alias.scope !801, !noalias !803, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %130, align 8, !alias.scope !801, !noalias !803, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %131, align 8, !alias.scope !801, !noalias !803, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %132, align 8, !alias.scope !801, !noalias !803, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %133, align 8, !alias.scope !801, !noalias !803, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %134, align 8, !alias.scope !801, !noalias !803, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %135, align 8, !alias.scope !801, !noalias !803, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %136, align 8, !alias.scope !801, !noalias !803, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %137, align 8, !alias.scope !801, !noalias !803, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %138, align 8, !alias.scope !801, !noalias !803, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %139, align 8, !alias.scope !801, !noalias !803, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %140, align 8, !alias.scope !801, !noalias !803, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %141, align 8, !alias.scope !801, !noalias !803, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %142 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %143 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %144 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %145 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %146 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %147 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %148 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %149 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %150 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %151 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %156 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> zeroinitializer %157 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> %158 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> zeroinitializer %159 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> %160 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !796, !noalias !804 %170 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %171 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %172 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %173 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = bitcast <8 x i64> %175 to <8 x double> %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %179 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %180 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %181 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %182 = bitcast <8 x double> %181 to <8 x i64> %183 = xor <8 x i64> %182, %184 = bitcast <8 x i64> %183 to <8 x double> %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = fadd <8 x double> %170, %172 %187 = fsub <8 x double> %171, %177 %188 = fsub <8 x double> %170, %172 %189 = fadd <8 x double> %171, %177 %190 = fadd <8 x double> %178, %180 %191 = fsub <8 x double> %179, %185 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %191, %195 %197 = fmul <8 x double> %196, %198 = fsub <8 x double> %178, %180 %199 = bitcast <8 x double> %198 to <8 x i64> %200 = xor <8 x i64> %199, %201 = bitcast <8 x i64> %200 to <8 x double> %202 = shufflevector <8 x double> %201, <8 x double> poison, <8 x i32> %203 = fadd <8 x double> %179, %185 %204 = bitcast <8 x double> %203 to <8 x i64> %205 = xor <8 x i64> %204, %206 = bitcast <8 x i64> %205 to <8 x double> %207 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %208 = fadd <8 x double> %203, %207 %209 = fmul <8 x double> %208, %210 = fadd <8 x double> %186, %190 store <8 x double> %210, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !799, !noalias !805 %211 = fadd <8 x double> %187, %197 %212 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %157, %212 %_4.i251 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %211, <8 x double> %213, i32 noundef 4) #23 store <8 x double> %_4.i251, ptr %151, align 8, !alias.scope !799, !noalias !805 %214 = fsub <8 x double> %188, %202 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %159, %215 %_4.i250 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i250, ptr %150, align 8, !alias.scope !799, !noalias !805 %217 = fsub <8 x double> %189, %209 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fmul <8 x double> %161, %218 %_4.i249 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %217, <8 x double> %219, i32 noundef 4) #23 store <8 x double> %_4.i249, ptr %152, align 8, !alias.scope !799, !noalias !805 %220 = fsub <8 x double> %186, %190 %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %163, %221 %_4.i248 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %220, <8 x double> %222, i32 noundef 4) #23 store <8 x double> %_4.i248, ptr %149, align 8, !alias.scope !799, !noalias !805 %223 = fsub <8 x double> %187, %197 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = fmul <8 x double> %165, %224 %_4.i247 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %223, <8 x double> %225, i32 noundef 4) #23 store <8 x double> %_4.i247, ptr %154, align 8, !alias.scope !799, !noalias !805 %226 = fadd <8 x double> %188, %202 %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %167, %227 %_4.i246 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %226, <8 x double> %228, i32 noundef 4) #23 store <8 x double> %_4.i246, ptr %153, align 8, !alias.scope !799, !noalias !805 %229 = fadd <8 x double> %189, %209 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %169, %230 %_4.i245 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %229, <8 x double> %231, i32 noundef 4) #23 store <8 x double> %_4.i245, ptr %155, align 8, !alias.scope !799, !noalias !805 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !796, !noalias !804 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !796, !noalias !804 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !796, !noalias !804 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !796, !noalias !804 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !796, !noalias !804 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !796, !noalias !804 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !796, !noalias !804 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !796, !noalias !804 %232 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %233 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %234 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %235 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = bitcast <8 x i64> %237 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %241 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %242 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %243 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %244 = bitcast <8 x double> %243 to <8 x i64> %245 = xor <8 x i64> %244, %246 = bitcast <8 x i64> %245 to <8 x double> %247 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %248 = fadd <8 x double> %232, %234 %249 = fsub <8 x double> %233, %239 %250 = fsub <8 x double> %232, %234 %251 = fadd <8 x double> %233, %239 %252 = fadd <8 x double> %240, %242 %253 = fsub <8 x double> %241, %247 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %253, %257 %259 = fmul <8 x double> %258, %260 = fsub <8 x double> %240, %242 %261 = bitcast <8 x double> %260 to <8 x i64> %262 = xor <8 x i64> %261, %263 = bitcast <8 x i64> %262 to <8 x double> %264 = shufflevector <8 x double> %263, <8 x double> poison, <8 x i32> %265 = fadd <8 x double> %241, %247 %266 = bitcast <8 x double> %265 to <8 x i64> %267 = xor <8 x i64> %266, %268 = bitcast <8 x i64> %267 to <8 x double> %269 = shufflevector <8 x double> %268, <8 x double> poison, <8 x i32> %270 = fadd <8 x double> %265, %269 %271 = fmul <8 x double> %270, %272 = fadd <8 x double> %248, %252 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %273 = fadd <8 x double> %249, %259 %274 = shufflevector <8 x double> %273, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %157, %274 %_4.i251.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %273, <8 x double> %275, i32 noundef 4) #23 store <8 x double> %_4.i251.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %276 = fsub <8 x double> %250, %264 %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fmul <8 x double> %159, %277 %_4.i250.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %276, <8 x double> %278, i32 noundef 4) #23 store <8 x double> %_4.i250.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %279 = fsub <8 x double> %251, %271 %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fmul <8 x double> %161, %280 %_4.i249.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %279, <8 x double> %281, i32 noundef 4) #23 store <8 x double> %_4.i249.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %282 = fsub <8 x double> %248, %252 %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fmul <8 x double> %163, %283 %_4.i248.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %282, <8 x double> %284, i32 noundef 4) #23 store <8 x double> %_4.i248.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %285 = fsub <8 x double> %249, %259 %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %165, %286 %_4.i247.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %285, <8 x double> %287, i32 noundef 4) #23 store <8 x double> %_4.i247.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %288 = fadd <8 x double> %250, %264 %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fmul <8 x double> %167, %289 %_4.i246.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %288, <8 x double> %290, i32 noundef 4) #23 store <8 x double> %_4.i246.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %291 = fadd <8 x double> %251, %271 %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fmul <8 x double> %169, %292 %_4.i245.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %291, <8 x double> %293, i32 noundef 4) #23 store <8 x double> %_4.i245.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !799, !noalias !805 %294 = add nuw nsw i64 %iter.sroa.104.01923.i, 1 %exitcond.not = icmp eq i64 %294, 16 br i1 %exitcond.not, label %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit, label %bb30.i _ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !806) tail call void @llvm.experimental.noalias.scope.decl(metadata !809) tail call void @llvm.experimental.noalias.scope.decl(metadata !811) br label %bb30.i94 bb28.loopexit.i217: ; preds = %bb58.i150 br i1 %_2.i.i.i.i218, label %bb30.i94, label %bb18.i.i.i.i.i bb30.i94: ; preds = %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit, %bb28.loopexit.i217 %_2.i.i.i.i218 = phi i1 [ false, %bb28.loopexit.i217 ], [ true, %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit ] %iter.sroa.104.01923.i95 = phi i64 [ 1, %bb28.loopexit.i217 ], [ 0, %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 = shl nuw nsw i64 %iter.sroa.104.01923.i95, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i97 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100 = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i.i.i.i.i.i.i.i.i.i.i.i.i102 = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i.i.i.i.i.i.i.i.i.i.i103 = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %data.i.i.i.i.i.i.i.i.i104 = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i96 %start1.i.i.i.i.i.i.i105 = shl nuw nsw i64 %iter.sroa.104.01923.i95, 7 %data.i.i.i.i.i.i.i106 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i105 %start1.i.i.i.i.i107 = shl nuw nsw i64 %iter.sroa.104.01923.i95, 6 %295 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 1 %w1.01808.i108 = load <2 x float>, ptr %295, align 8, !alias.scope !811, !noalias !813, !noundef !3 %296 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 1, i32 1 %w1.11809.i109 = load <2 x float>, ptr %296, align 8, !alias.scope !811, !noalias !813, !noundef !3 %297 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 2 %w2.01810.i110 = load <2 x float>, ptr %297, align 8, !alias.scope !811, !noalias !813, !noundef !3 %298 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 2, i32 1 %w2.11811.i111 = load <2 x float>, ptr %298, align 8, !alias.scope !811, !noalias !813, !noundef !3 %299 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 3 %w3.01812.i112 = load <2 x float>, ptr %299, align 8, !alias.scope !811, !noalias !813, !noundef !3 %300 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 3, i32 1 %w3.11813.i113 = load <2 x float>, ptr %300, align 8, !alias.scope !811, !noalias !813, !noundef !3 %301 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 4 %w4.01814.i114 = load <2 x float>, ptr %301, align 8, !alias.scope !811, !noalias !813, !noundef !3 %302 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 4, i32 1 %w4.11815.i115 = load <2 x float>, ptr %302, align 8, !alias.scope !811, !noalias !813, !noundef !3 %303 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 5 %w5.01816.i116 = load <2 x float>, ptr %303, align 8, !alias.scope !811, !noalias !813, !noundef !3 %304 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 5, i32 1 %w5.11817.i117 = load <2 x float>, ptr %304, align 8, !alias.scope !811, !noalias !813, !noundef !3 %305 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 6 %w6.01818.i118 = load <2 x float>, ptr %305, align 8, !alias.scope !811, !noalias !813, !noundef !3 %306 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 6, i32 1 %w6.11819.i119 = load <2 x float>, ptr %306, align 8, !alias.scope !811, !noalias !813, !noundef !3 %307 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 7 %w7.01820.i120 = load <2 x float>, ptr %307, align 8, !alias.scope !811, !noalias !813, !noundef !3 %308 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i107, i64 7, i32 1 %w7.11821.i121 = load <2 x float>, ptr %308, align 8, !alias.scope !811, !noalias !813, !noundef !3 %value.i138.sroa.0.0.vec.expand.i122 = shufflevector <2 x float> %w1.01808.i108, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i123 = shufflevector <2 x float> %w1.11809.i109, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i124 = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i122, <4 x float> %value.i138.sroa.0.8.vec.expand.i123, <4 x i32> %309 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i124 to <2 x double> %value.i134.sroa.0.0.vec.expand.i126 = shufflevector <2 x float> %w2.01810.i110, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i127 = shufflevector <2 x float> %w2.11811.i111, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i128 = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i126, <4 x float> %value.i134.sroa.0.8.vec.expand.i127, <4 x i32> %310 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i128 to <2 x double> %value.i130.sroa.0.0.vec.expand.i130 = shufflevector <2 x float> %w3.01812.i112, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i131 = shufflevector <2 x float> %w3.11813.i113, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i132 = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i130, <4 x float> %value.i130.sroa.0.8.vec.expand.i131, <4 x i32> %311 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i132 to <2 x double> %value.i126.sroa.0.0.vec.expand.i134 = shufflevector <2 x float> %w4.01814.i114, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i135 = shufflevector <2 x float> %w4.11815.i115, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i136 = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i134, <4 x float> %value.i126.sroa.0.8.vec.expand.i135, <4 x i32> %312 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i136 to <2 x double> %value.i122.sroa.0.0.vec.expand.i138 = shufflevector <2 x float> %w5.01816.i116, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i139 = shufflevector <2 x float> %w5.11817.i117, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i140 = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i138, <4 x float> %value.i122.sroa.0.8.vec.expand.i139, <4 x i32> %313 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i140 to <2 x double> %value.i118.sroa.0.0.vec.expand.i142 = shufflevector <2 x float> %w6.01818.i118, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i143 = shufflevector <2 x float> %w6.11819.i119, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i144 = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i142, <4 x float> %value.i118.sroa.0.8.vec.expand.i143, <4 x i32> %314 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i144 to <2 x double> %value.i114.sroa.0.0.vec.expand.i146 = shufflevector <2 x float> %w7.01820.i120, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i147 = shufflevector <2 x float> %w7.11821.i121, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i148 = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i146, <4 x float> %value.i114.sroa.0.8.vec.expand.i147, <4 x i32> %315 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i148 to <2 x double> %316 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 64 %317 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 32 %318 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 16 %319 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 48 %320 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 96 %321 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 80 %322 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 112 %323 = shufflevector <2 x double> %309, <2 x double> poison, <8 x i32> zeroinitializer %324 = shufflevector <2 x double> %309, <2 x double> poison, <8 x i32> %325 = shufflevector <2 x double> %310, <2 x double> poison, <8 x i32> zeroinitializer %326 = shufflevector <2 x double> %310, <2 x double> poison, <8 x i32> %327 = shufflevector <2 x double> %311, <2 x double> poison, <8 x i32> zeroinitializer %328 = shufflevector <2 x double> %311, <2 x double> poison, <8 x i32> %329 = shufflevector <2 x double> %312, <2 x double> poison, <8 x i32> zeroinitializer %330 = shufflevector <2 x double> %312, <2 x double> poison, <8 x i32> %331 = shufflevector <2 x double> %313, <2 x double> poison, <8 x i32> zeroinitializer %332 = shufflevector <2 x double> %313, <2 x double> poison, <8 x i32> %333 = shufflevector <2 x double> %314, <2 x double> poison, <8 x i32> zeroinitializer %334 = shufflevector <2 x double> %314, <2 x double> poison, <8 x i32> %335 = shufflevector <2 x double> %315, <2 x double> poison, <8 x i32> zeroinitializer %336 = shufflevector <2 x double> %315, <2 x double> poison, <8 x i32> br label %bb58.i150 bb58.i150: ; preds = %bb58.i150, %bb30.i94 %iter8.sroa.106.01862.i151 = phi i64 [ %337, %bb58.i150 ], [ 0, %bb30.i94 ] %337 = add nuw nsw i64 %iter8.sroa.106.01862.i151, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i97, i64 %iter8.sroa.106.01862.i151 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i157 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i102, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i158 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i103, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i159 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i104, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i160 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i106, i64 %iter8.sroa.106.01862.i151 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i161 = getelementptr inbounds %"fft_simd::c64x4", ptr %318, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i162 = getelementptr inbounds %"fft_simd::c64x4", ptr %317, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i163 = getelementptr inbounds %"fft_simd::c64x4", ptr %319, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i164 = getelementptr inbounds %"fft_simd::c64x4", ptr %316, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i165 = getelementptr inbounds %"fft_simd::c64x4", ptr %321, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i.i.i35.i.i.i.i166 = getelementptr inbounds %"fft_simd::c64x4", ptr %320, i64 %iter8.sroa.106.01862.i151 %_3.i.i.i.i.i38.i.i.i.i167 = getelementptr inbounds %"fft_simd::c64x4", ptr %322, i64 %iter8.sroa.106.01862.i151 %x0.sroa.0.0.copyload.i168 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i152, align 8, !alias.scope !806, !noalias !814 %x1.sroa.0.0.copyload.i169 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i153, align 8, !alias.scope !806, !noalias !814 %x2.sroa.0.0.copyload.i170 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154, align 8, !alias.scope !806, !noalias !814 %x3.sroa.0.0.copyload.i171 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155, align 8, !alias.scope !806, !noalias !814 %x4.sroa.0.0.copyload.i172 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156, align 8, !alias.scope !806, !noalias !814 %x5.sroa.0.0.copyload.i173 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i157, align 8, !alias.scope !806, !noalias !814 %x6.sroa.0.0.copyload.i174 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i158, align 8, !alias.scope !806, !noalias !814 %x7.sroa.0.0.copyload.i175 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i159, align 8, !alias.scope !806, !noalias !814 %338 = fadd <8 x double> %x0.sroa.0.0.copyload.i168, %x4.sroa.0.0.copyload.i172 %339 = fsub <8 x double> %x0.sroa.0.0.copyload.i168, %x4.sroa.0.0.copyload.i172 %340 = fadd <8 x double> %x2.sroa.0.0.copyload.i170, %x6.sroa.0.0.copyload.i174 %341 = fsub <8 x double> %x2.sroa.0.0.copyload.i170, %x6.sroa.0.0.copyload.i174 %342 = bitcast <8 x double> %341 to <8 x i64> %343 = xor <8 x i64> %342, %344 = bitcast <8 x i64> %343 to <8 x double> %345 = shufflevector <8 x double> %344, <8 x double> poison, <8 x i32> %346 = fadd <8 x double> %x1.sroa.0.0.copyload.i169, %x5.sroa.0.0.copyload.i173 %347 = fsub <8 x double> %x1.sroa.0.0.copyload.i169, %x5.sroa.0.0.copyload.i173 %348 = fadd <8 x double> %x3.sroa.0.0.copyload.i171, %x7.sroa.0.0.copyload.i175 %349 = fsub <8 x double> %x3.sroa.0.0.copyload.i171, %x7.sroa.0.0.copyload.i175 %350 = bitcast <8 x double> %349 to <8 x i64> %351 = xor <8 x i64> %350, %352 = bitcast <8 x i64> %351 to <8 x double> %353 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %354 = fadd <8 x double> %338, %340 %355 = fsub <8 x double> %339, %345 %356 = fsub <8 x double> %338, %340 %357 = fadd <8 x double> %339, %345 %358 = fadd <8 x double> %346, %348 %359 = fsub <8 x double> %347, %353 %360 = bitcast <8 x double> %359 to <8 x i64> %361 = xor <8 x i64> %360, %362 = bitcast <8 x i64> %361 to <8 x double> %363 = shufflevector <8 x double> %362, <8 x double> poison, <8 x i32> %364 = fadd <8 x double> %359, %363 %365 = fmul <8 x double> %364, %366 = fsub <8 x double> %346, %348 %367 = bitcast <8 x double> %366 to <8 x i64> %368 = xor <8 x i64> %367, %369 = bitcast <8 x i64> %368 to <8 x double> %370 = shufflevector <8 x double> %369, <8 x double> poison, <8 x i32> %371 = fadd <8 x double> %347, %353 %372 = bitcast <8 x double> %371 to <8 x i64> %373 = xor <8 x i64> %372, %374 = bitcast <8 x i64> %373 to <8 x double> %375 = shufflevector <8 x double> %374, <8 x double> poison, <8 x i32> %376 = fadd <8 x double> %371, %375 %377 = fmul <8 x double> %376, %378 = fadd <8 x double> %354, %358 store <8 x double> %378, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i160, align 8, !alias.scope !809, !noalias !815 %379 = fadd <8 x double> %355, %365 %380 = shufflevector <8 x double> %379, <8 x double> poison, <8 x i32> %381 = fmul <8 x double> %324, %380 %_4.i258 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %323, <8 x double> %379, <8 x double> %381, i32 noundef 4) #23 store <8 x double> %_4.i258, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i161, align 8, !alias.scope !809, !noalias !815 %382 = fsub <8 x double> %356, %370 %383 = shufflevector <8 x double> %382, <8 x double> poison, <8 x i32> %384 = fmul <8 x double> %326, %383 %_4.i257 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %325, <8 x double> %382, <8 x double> %384, i32 noundef 4) #23 store <8 x double> %_4.i257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i162, align 8, !alias.scope !809, !noalias !815 %385 = fsub <8 x double> %357, %377 %386 = shufflevector <8 x double> %385, <8 x double> poison, <8 x i32> %387 = fmul <8 x double> %328, %386 %_4.i256 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %327, <8 x double> %385, <8 x double> %387, i32 noundef 4) #23 store <8 x double> %_4.i256, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i163, align 8, !alias.scope !809, !noalias !815 %388 = fsub <8 x double> %354, %358 %389 = shufflevector <8 x double> %388, <8 x double> poison, <8 x i32> %390 = fmul <8 x double> %330, %389 %_4.i255 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %329, <8 x double> %388, <8 x double> %390, i32 noundef 4) #23 store <8 x double> %_4.i255, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i164, align 8, !alias.scope !809, !noalias !815 %391 = fsub <8 x double> %355, %365 %392 = shufflevector <8 x double> %391, <8 x double> poison, <8 x i32> %393 = fmul <8 x double> %332, %392 %_4.i254 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %331, <8 x double> %391, <8 x double> %393, i32 noundef 4) #23 store <8 x double> %_4.i254, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i165, align 8, !alias.scope !809, !noalias !815 %394 = fadd <8 x double> %356, %370 %395 = shufflevector <8 x double> %394, <8 x double> poison, <8 x i32> %396 = fmul <8 x double> %334, %395 %_4.i253 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %333, <8 x double> %394, <8 x double> %396, i32 noundef 4) #23 store <8 x double> %_4.i253, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i166, align 8, !alias.scope !809, !noalias !815 %397 = fadd <8 x double> %357, %377 %398 = shufflevector <8 x double> %397, <8 x double> poison, <8 x i32> %399 = fmul <8 x double> %336, %398 %_4.i252 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %335, <8 x double> %397, <8 x double> %399, i32 noundef 4) #23 store <8 x double> %_4.i252, ptr %_3.i.i.i.i.i38.i.i.i.i167, align 8, !alias.scope !809, !noalias !815 %exitcond.not.i216 = icmp eq i64 %337, 16 br i1 %exitcond.not.i216, label %bb28.loopexit.i217, label %bb58.i150 bb18.i.i.i.i.i: ; preds = %bb28.loopexit.i217, %bb18.i.i.i.i.i %iter6.i.i.i.i.i.sroa.22.01012 = phi i64 [ %403, %bb18.i.i.i.i.i ], [ 0, %bb28.loopexit.i217 ] %400 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.01012, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter6.i.i.i.i.i.sroa.22.01012 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %iter6.i.i.i.i.i.sroa.22.01012 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter6.i.i.i.i.i.sroa.22.01012 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter6.i.i.i.i.i.sroa.22.01012 %_51.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !783 %_52.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !783 %401 = fadd <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.i.sroa.0.0.copyload %402 = fsub <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.i.sroa.0.0.copyload store <8 x double> %401, ptr %_3.i.i.i.i.i.i, align 8, !noalias !783 store <8 x double> %402, ptr %_3.i.i.i.i, align 8, !noalias !783 %403 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.01012, 2 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %400 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %400 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %400 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %400 %_51.i.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !783 %_52.i.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !783 %404 = fadd <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.i.sroa.0.0.copyload.1 %405 = fsub <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %404, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !783 store <8 x double> %405, ptr %_3.i.i.i.i.1, align 8, !noalias !783 %exitcond1013.not.1 = icmp eq i64 %403, 128 br i1 %exitcond1013.not.1, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7cefb7bf992a4ed6E.exit", label %bb18.i.i.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7cefb7bf992a4ed6E.exit": ; preds = %bb18.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !783 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h5786ee6f43e96ee3E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !816) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !816, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !816, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !816, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !816, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %3, align 8, !alias.scope !816, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %4, align 8, !alias.scope !816, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !816 store i64 32, ptr %n.i, align 8, !noalias !816 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !816 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !816 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !816 store ptr null, ptr %_16.i, align 8, !noalias !816 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !816 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !816 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !816 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !816 store ptr null, ptr %_24.i, align 8, !noalias !816 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !816 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !816 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !816 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !816 store ptr null, ptr %_32.i, align 8, !noalias !816 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !816 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !816 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !816 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !816 store ptr null, ptr %_40.i, align 8, !noalias !816 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !816 %5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %_51.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !816 %_52.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %6, align 8, !noalias !816 %7 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload %8 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload store <8 x double> %7, ptr %buf.0.i, align 8, !noalias !816 store <8 x double> %8, ptr %5, align 8, !noalias !816 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_51.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !816 %_52.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !816 %9 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 %10 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 store <8 x double> %9, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !816 store <8 x double> %10, ptr %_3.i.i.i.i.1, align 8, !noalias !816 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_51.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !816 %_52.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !816 %11 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.sroa.0.0.copyload.2 %12 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.sroa.0.0.copyload.2 store <8 x double> %11, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !816 store <8 x double> %12, ptr %_3.i.i.i.i.2, align 8, !noalias !816 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_51.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !816 %_52.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !816 %13 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.sroa.0.0.copyload.3 %14 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.sroa.0.0.copyload.3 store <8 x double> %13, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !816 store <8 x double> %14, ptr %_3.i.i.i.i.3, align 8, !noalias !816 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !816 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h581706afcad0f361E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !819) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !819, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !819, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !819, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !819, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !819, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !819, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !819, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !819, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !819 store i64 512, ptr %n.i, align 8, !noalias !819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !819 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !819 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !819 store ptr null, ptr %_16.i, align 8, !noalias !819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !819 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !819 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !819 store ptr null, ptr %_24.i, align 8, !noalias !819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !819 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !819 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !819 store ptr null, ptr %_32.i, align 8, !noalias !819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !819 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !819 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd8484de615c6eef3E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !819 store ptr null, ptr %_40.i, align 8, !noalias !819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd8484de615c6eef3E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !819 tail call void @llvm.experimental.noalias.scope.decl(metadata !822) tail call void @llvm.experimental.noalias.scope.decl(metadata !825) tail call void @llvm.experimental.noalias.scope.decl(metadata !827) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd8484de615c6eef3E.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd8484de615c6eef3E.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !827, !noalias !829 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !827, !noalias !829 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !827, !noalias !829 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !822, !noalias !830 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !822, !noalias !830 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !822, !noalias !830 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !822, !noalias !830 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = fadd <8 x double> %14, %16 %21 = bitcast <8 x i64> %19 to <8 x double> %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = fsub <8 x double> %15, %22 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i174 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %22 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %20, <8 x double> %_4.i174, <8 x i32> %39 = shufflevector <8 x double> %20, <8 x double> %_4.i174, <8 x i32> %40 = shufflevector <8 x double> %_4.i173, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i173, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !825, !noalias !831 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !825, !noalias !831 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !825, !noalias !831 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !825, !noalias !831 %exitcond.not.i = icmp eq i64 %13, 32 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !832) tail call void @llvm.experimental.noalias.scope.decl(metadata !835) tail call void @llvm.experimental.noalias.scope.decl(metadata !837) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !837, !noalias !839, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !837, !noalias !839, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !837, !noalias !839, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !837, !noalias !839, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !837, !noalias !839, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !837, !noalias !839, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !832, !noalias !840 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !832, !noalias !840 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !832, !noalias !840 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !832, !noalias !840 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = fadd <8 x double> %70, %72 store <8 x double> %76, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !835, !noalias !841 %77 = bitcast <8 x i64> %75 to <8 x double> %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = fsub <8 x double> %71, %78 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i177 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i177, ptr %62, align 8, !alias.scope !835, !noalias !841 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i176 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i176, ptr %61, align 8, !alias.scope !835, !noalias !841 %85 = fadd <8 x double> %71, %78 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i175 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i175, ptr %63, align 8, !alias.scope !835, !noalias !841 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 32 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !842) tail call void @llvm.experimental.noalias.scope.decl(metadata !845) tail call void @llvm.experimental.noalias.scope.decl(metadata !847) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %iter.sroa.60.0648.us.i37 = phi i64 [ %179, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !847, !noalias !849, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !847, !noalias !849, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !847, !noalias !849, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !847, !noalias !849, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !847, !noalias !849, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !847, !noalias !849, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !842, !noalias !850 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !842, !noalias !850 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !842, !noalias !850 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !842, !noalias !850 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = fadd <8 x double> %107, %109 store <8 x double> %113, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !845, !noalias !851 %114 = bitcast <8 x i64> %112 to <8 x double> %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fsub <8 x double> %108, %115 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i180 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i180, ptr %99, align 8, !alias.scope !845, !noalias !851 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i179 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i179, ptr %98, align 8, !alias.scope !845, !noalias !851 %122 = fadd <8 x double> %108, %115 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i178 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i178, ptr %100, align 8, !alias.scope !845, !noalias !851 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !842, !noalias !850 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !842, !noalias !850 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !842, !noalias !850 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !842, !noalias !850 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = fadd <8 x double> %125, %127 store <8 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !845, !noalias !851 %132 = bitcast <8 x i64> %130 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fsub <8 x double> %126, %133 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i180.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i180.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !845, !noalias !851 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i179.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i179.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !845, !noalias !851 %140 = fadd <8 x double> %126, %133 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i178.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i178.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !845, !noalias !851 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !842, !noalias !850 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !842, !noalias !850 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !842, !noalias !850 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !842, !noalias !850 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = fadd <8 x double> %143, %145 store <8 x double> %149, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !845, !noalias !851 %150 = bitcast <8 x i64> %148 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fsub <8 x double> %144, %151 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i180.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i180.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !845, !noalias !851 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i179.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i179.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !845, !noalias !851 %158 = fadd <8 x double> %144, %151 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i178.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i178.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !845, !noalias !851 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !842, !noalias !850 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !842, !noalias !850 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !842, !noalias !850 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !842, !noalias !850 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = fadd <8 x double> %161, %163 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !845, !noalias !851 %168 = bitcast <8 x i64> %166 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = fsub <8 x double> %162, %169 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i180.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i180.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !845, !noalias !851 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i179.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i179.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !845, !noalias !851 %176 = fadd <8 x double> %162, %169 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i178.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i178.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !845, !noalias !851 %179 = add nuw nsw i64 %iter.sroa.60.0648.us.i37, 1 %exitcond526.not = icmp eq i64 %179, 8 br i1 %exitcond526.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91, label %bb22.us.i36 _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91: ; preds = %bb22.us.i36 tail call void @llvm.experimental.noalias.scope.decl(metadata !852) tail call void @llvm.experimental.noalias.scope.decl(metadata !855) tail call void @llvm.experimental.noalias.scope.decl(metadata !857) %180 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0617.us.i120 = load <2 x float>, ptr %180, align 8, !alias.scope !857, !noalias !859, !noundef !3 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1618.us.i121 = load <2 x float>, ptr %181, align 8, !alias.scope !857, !noalias !859, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0619.us.i122 = load <2 x float>, ptr %182, align 8, !alias.scope !857, !noalias !859, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1620.us.i123 = load <2 x float>, ptr %183, align 8, !alias.scope !857, !noalias !859, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0621.us.i124 = load <2 x float>, ptr %184, align 8, !alias.scope !857, !noalias !859, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1622.us.i125 = load <2 x float>, ptr %185, align 8, !alias.scope !857, !noalias !859, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i126 = shufflevector <2 x float> %w1.0617.us.i120, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i127 = shufflevector <2 x float> %w1.1618.us.i121, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i128 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i126, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i127, <4 x i32> %186 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i128 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i130 = shufflevector <2 x float> %w2.0619.us.i122, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i131 = shufflevector <2 x float> %w2.1620.us.i123, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i132 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i130, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i131, <4 x i32> %187 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i132 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i134 = shufflevector <2 x float> %w3.0621.us.i124, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i135 = shufflevector <2 x float> %w3.1622.us.i125, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i136 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i134, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i135, <4 x i32> %188 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i136 to <2 x double> %189 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %190 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %191 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> zeroinitializer %192 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> %193 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> zeroinitializer %194 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> %195 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> zeroinitializer %196 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> br label %bb38.us.i138 bb38.us.i138: ; preds = %bb38.us.i138, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91 %iter5.sroa.50.0635.us.i139 = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91 ], [ %197, %bb38.us.i138 ] %197 = add nuw nsw i64 %iter5.sroa.50.0635.us.i139, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter5.sroa.50.0635.us.i139 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141 = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142 = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143 = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.us.i144 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.us.i145 = getelementptr inbounds %"fft_simd::c64x4", ptr %189, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.us.i146 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.us.i147 = getelementptr inbounds %"fft_simd::c64x4", ptr %190, i64 %iter5.sroa.50.0635.us.i139 %a.sroa.0.0.copyload.us.i148 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140, align 8, !alias.scope !852, !noalias !860 %b.sroa.0.0.copyload.us.i149 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141, align 8, !alias.scope !852, !noalias !860 %c.sroa.0.0.copyload.us.i150 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142, align 8, !alias.scope !852, !noalias !860 %d.sroa.0.0.copyload.us.i151 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143, align 8, !alias.scope !852, !noalias !860 %198 = fadd <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %199 = fsub <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %200 = fadd <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %201 = fsub <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %202 = bitcast <8 x double> %201 to <8 x i64> %203 = xor <8 x i64> %202, %204 = fadd <8 x double> %198, %200 store <8 x double> %204, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i144, align 8, !alias.scope !855, !noalias !861 %205 = bitcast <8 x i64> %203 to <8 x double> %206 = shufflevector <8 x double> %205, <8 x double> poison, <8 x i32> %207 = fsub <8 x double> %199, %206 %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = fmul <8 x double> %192, %208 %_4.i183 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %191, <8 x double> %207, <8 x double> %209, i32 noundef 4) #23 store <8 x double> %_4.i183, ptr %_3.i.i.i.i.i.i.i.i.us.i145, align 8, !alias.scope !855, !noalias !861 %210 = fsub <8 x double> %198, %200 %211 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %212 = fmul <8 x double> %194, %211 %_4.i182 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %193, <8 x double> %210, <8 x double> %212, i32 noundef 4) #23 store <8 x double> %_4.i182, ptr %_3.i.i.i.i.i.i.us.i146, align 8, !alias.scope !855, !noalias !861 %213 = fadd <8 x double> %199, %206 %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = fmul <8 x double> %196, %214 %_4.i181 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %213, <8 x double> %215, i32 noundef 4) #23 store <8 x double> %_4.i181, ptr %_3.i.i.i.i.us.i147, align 8, !alias.scope !855, !noalias !861 %exitcond.not.i164 = icmp eq i64 %197, 16 br i1 %exitcond.not.i164, label %bb36.bb20.loopexit_crit_edge.us.i165, label %bb38.us.i138 bb36.bb20.loopexit_crit_edge.us.i165: ; preds = %bb38.us.i138 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %data.i.i.i.i.i.i.i.i.i.i.us.i116.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %data.i.i.i.i.i.i.i.i.us.i117.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %216 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1 %w1.0617.us.i120.1 = load <2 x float>, ptr %216, align 8, !alias.scope !857, !noalias !859, !noundef !3 %217 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1, i32 1 %w1.1618.us.i121.1 = load <2 x float>, ptr %217, align 8, !alias.scope !857, !noalias !859, !noundef !3 %218 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2 %w2.0619.us.i122.1 = load <2 x float>, ptr %218, align 8, !alias.scope !857, !noalias !859, !noundef !3 %219 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2, i32 1 %w2.1620.us.i123.1 = load <2 x float>, ptr %219, align 8, !alias.scope !857, !noalias !859, !noundef !3 %220 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3 %w3.0621.us.i124.1 = load <2 x float>, ptr %220, align 8, !alias.scope !857, !noalias !859, !noundef !3 %221 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3, i32 1 %w3.1622.us.i125.1 = load <2 x float>, ptr %221, align 8, !alias.scope !857, !noalias !859, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i126.1 = shufflevector <2 x float> %w1.0617.us.i120.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i127.1 = shufflevector <2 x float> %w1.1618.us.i121.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i128.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i126.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i127.1, <4 x i32> %222 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i128.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i130.1 = shufflevector <2 x float> %w2.0619.us.i122.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i131.1 = shufflevector <2 x float> %w2.1620.us.i123.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i132.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i130.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i131.1, <4 x i32> %223 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i132.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i134.1 = shufflevector <2 x float> %w3.0621.us.i124.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i135.1 = shufflevector <2 x float> %w3.1622.us.i125.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i136.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i134.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i135.1, <4 x i32> %224 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i136.1 to <2 x double> %225 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %226 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %227 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %228 = shufflevector <2 x double> %222, <2 x double> poison, <8 x i32> zeroinitializer %229 = shufflevector <2 x double> %222, <2 x double> poison, <8 x i32> %230 = shufflevector <2 x double> %223, <2 x double> poison, <8 x i32> zeroinitializer %231 = shufflevector <2 x double> %223, <2 x double> poison, <8 x i32> %232 = shufflevector <2 x double> %224, <2 x double> poison, <8 x i32> zeroinitializer %233 = shufflevector <2 x double> %224, <2 x double> poison, <8 x i32> br label %bb38.us.i138.1 bb38.us.i138.1: ; preds = %bb38.us.i138.1, %bb36.bb20.loopexit_crit_edge.us.i165 %iter5.sroa.50.0635.us.i139.1 = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i165 ], [ %234, %bb38.us.i138.1 ] %234 = add nuw nsw i64 %iter5.sroa.50.0635.us.i139.1, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i116.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i117.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.i.i.us.i144.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.us.i145.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %226, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.us.i146.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %225, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.us.i147.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %227, i64 %iter5.sroa.50.0635.us.i139.1 %a.sroa.0.0.copyload.us.i148.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140.1, align 8, !alias.scope !852, !noalias !860 %b.sroa.0.0.copyload.us.i149.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141.1, align 8, !alias.scope !852, !noalias !860 %c.sroa.0.0.copyload.us.i150.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142.1, align 8, !alias.scope !852, !noalias !860 %d.sroa.0.0.copyload.us.i151.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143.1, align 8, !alias.scope !852, !noalias !860 %235 = fadd <8 x double> %a.sroa.0.0.copyload.us.i148.1, %c.sroa.0.0.copyload.us.i150.1 %236 = fsub <8 x double> %a.sroa.0.0.copyload.us.i148.1, %c.sroa.0.0.copyload.us.i150.1 %237 = fadd <8 x double> %b.sroa.0.0.copyload.us.i149.1, %d.sroa.0.0.copyload.us.i151.1 %238 = fsub <8 x double> %b.sroa.0.0.copyload.us.i149.1, %d.sroa.0.0.copyload.us.i151.1 %239 = bitcast <8 x double> %238 to <8 x i64> %240 = xor <8 x i64> %239, %241 = fadd <8 x double> %235, %237 store <8 x double> %241, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i144.1, align 8, !alias.scope !855, !noalias !861 %242 = bitcast <8 x i64> %240 to <8 x double> %243 = shufflevector <8 x double> %242, <8 x double> poison, <8 x i32> %244 = fsub <8 x double> %236, %243 %245 = shufflevector <8 x double> %244, <8 x double> poison, <8 x i32> %246 = fmul <8 x double> %229, %245 %_4.i183.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %228, <8 x double> %244, <8 x double> %246, i32 noundef 4) #23 store <8 x double> %_4.i183.1, ptr %_3.i.i.i.i.i.i.i.i.us.i145.1, align 8, !alias.scope !855, !noalias !861 %247 = fsub <8 x double> %235, %237 %248 = shufflevector <8 x double> %247, <8 x double> poison, <8 x i32> %249 = fmul <8 x double> %231, %248 %_4.i182.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %230, <8 x double> %247, <8 x double> %249, i32 noundef 4) #23 store <8 x double> %_4.i182.1, ptr %_3.i.i.i.i.i.i.us.i146.1, align 8, !alias.scope !855, !noalias !861 %250 = fadd <8 x double> %236, %243 %251 = shufflevector <8 x double> %250, <8 x double> poison, <8 x i32> %252 = fmul <8 x double> %233, %251 %_4.i181.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %232, <8 x double> %250, <8 x double> %252, i32 noundef 4) #23 store <8 x double> %_4.i181.1, ptr %_3.i.i.i.i.us.i147.1, align 8, !alias.scope !855, !noalias !861 %exitcond.not.i164.1 = icmp eq i64 %234, 16 br i1 %exitcond.not.i164.1, label %bb9.i.i.i.i, label %bb38.us.i138.1 bb9.i.i.i.i: ; preds = %bb38.us.i138.1, %bb9.i.i.i.i %iter.i.i.i.i.sroa.8.0525 = phi i64 [ %256, %bb9.i.i.i.i ], [ 0, %bb38.us.i138.1 ] %253 = or disjoint i64 %iter.i.i.i.i.sroa.8.0525, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.0525 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.0525 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !819 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !819 %254 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %255 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %254, ptr %_3.i.i.i.i, align 8, !noalias !819 store <8 x double> %255, ptr %_3.i2.i.i.i, align 8, !noalias !819 %256 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.0525, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %253 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %253 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !819 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !819 %257 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %258 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %257, ptr %_3.i.i.i.i.1, align 8, !noalias !819 store <8 x double> %258, ptr %_3.i2.i.i.i.1, align 8, !noalias !819 %exitcond527.not.1 = icmp eq i64 %256, 64 br i1 %exitcond527.not.1, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc3205509ebd15439E.exit", label %bb9.i.i.i.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc3205509ebd15439E.exit": ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !819 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h590f351f909981edE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !862) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !862, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !862, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !862, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !862, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !862, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !862, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !862, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !862, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !862 store i64 1024, ptr %n.i, align 8, !noalias !862 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !862 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !862 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !862 store ptr null, ptr %_16.i, align 8, !noalias !862 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !862 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !862 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !862 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !862 store ptr null, ptr %_24.i, align 8, !noalias !862 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !862 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !862 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !862 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !862 store ptr null, ptr %_32.i, align 8, !noalias !862 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !862 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !862 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !862 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5e76983334bcfdE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !862 store ptr null, ptr %_40.i, align 8, !noalias !862 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5e76983334bcfdE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !862 tail call void @llvm.experimental.noalias.scope.decl(metadata !865) tail call void @llvm.experimental.noalias.scope.decl(metadata !868) tail call void @llvm.experimental.noalias.scope.decl(metadata !870) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5e76983334bcfdE.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5e76983334bcfdE.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !865, !noalias !872 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %29 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %30 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %31 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %32 = bitcast <8 x double> %31 to <8 x i64> %33 = xor <8 x i64> %32, %34 = fadd <8 x double> %22, %24 %35 = bitcast <8 x i64> %27 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fsub <8 x double> %23, %36 %38 = fsub <8 x double> %22, %24 %39 = fadd <8 x double> %23, %36 %40 = fadd <8 x double> %28, %30 %41 = bitcast <8 x i64> %33 to <8 x double> %42 = shufflevector <8 x double> %41, <8 x double> poison, <8 x i32> %43 = fsub <8 x double> %29, %42 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %28, %30 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = fadd <8 x double> %29, %42 %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %53, %57 %59 = fmul <8 x double> %58, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !870, !noalias !873 %60 = fadd <8 x double> %34, %40 %61 = fadd <8 x double> %37, %49 %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i246 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %61, <8 x double> %65, i32 noundef 4) #23 %66 = bitcast <8 x i64> %52 to <8 x double> %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = fsub <8 x double> %38, %67 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i245 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %39, %59 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i244 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %34, %40 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i243 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %37, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i242 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %38, %67 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i241 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %39, %59 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %60, <8 x double> %_4.i246, <8 x i32> %99 = shufflevector <8 x double> %60, <8 x double> %_4.i246, <8 x i32> %100 = shufflevector <8 x double> %_4.i245, <8 x double> %_4.i244, <8 x i32> %101 = shufflevector <8 x double> %_4.i245, <8 x double> %_4.i244, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i243, <8 x double> %_4.i242, <8 x i32> %107 = shufflevector <8 x double> %_4.i243, <8 x double> %_4.i242, <8 x i32> %108 = shufflevector <8 x double> %_4.i241, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i241, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !868, !noalias !874 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !868, !noalias !874 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !868, !noalias !874 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !868, !noalias !874 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !868, !noalias !874 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !868, !noalias !874 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !868, !noalias !874 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !868, !noalias !874 %exitcond.not.i = icmp eq i64 %21, 32 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !875) tail call void @llvm.experimental.noalias.scope.decl(metadata !878) tail call void @llvm.experimental.noalias.scope.decl(metadata !880) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 br label %bb30.i bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %iter.sroa.104.01923.i = phi i64 [ %294, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %128, align 8, !alias.scope !880, !noalias !882, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %129, align 8, !alias.scope !880, !noalias !882, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %130, align 8, !alias.scope !880, !noalias !882, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %131, align 8, !alias.scope !880, !noalias !882, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %132, align 8, !alias.scope !880, !noalias !882, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %133, align 8, !alias.scope !880, !noalias !882, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %134, align 8, !alias.scope !880, !noalias !882, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %135, align 8, !alias.scope !880, !noalias !882, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %136, align 8, !alias.scope !880, !noalias !882, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %137, align 8, !alias.scope !880, !noalias !882, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %138, align 8, !alias.scope !880, !noalias !882, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %139, align 8, !alias.scope !880, !noalias !882, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %140, align 8, !alias.scope !880, !noalias !882, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %141, align 8, !alias.scope !880, !noalias !882, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %142 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %143 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %144 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %145 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %146 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %147 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %148 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %149 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %150 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %151 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %156 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> zeroinitializer %157 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> %158 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> zeroinitializer %159 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> %160 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !875, !noalias !883 %170 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %171 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %172 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %173 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %177 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %178 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %179 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %180 = bitcast <8 x double> %179 to <8 x i64> %181 = xor <8 x i64> %180, %182 = fadd <8 x double> %170, %172 %183 = bitcast <8 x i64> %175 to <8 x double> %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = fsub <8 x double> %171, %184 %186 = fsub <8 x double> %170, %172 %187 = fadd <8 x double> %171, %184 %188 = fadd <8 x double> %176, %178 %189 = bitcast <8 x i64> %181 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fsub <8 x double> %177, %190 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %191, %195 %197 = fmul <8 x double> %196, %198 = fsub <8 x double> %176, %178 %199 = bitcast <8 x double> %198 to <8 x i64> %200 = xor <8 x i64> %199, %201 = fadd <8 x double> %177, %190 %202 = bitcast <8 x double> %201 to <8 x i64> %203 = xor <8 x i64> %202, %204 = bitcast <8 x i64> %203 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fadd <8 x double> %201, %205 %207 = fmul <8 x double> %206, %208 = fadd <8 x double> %182, %188 store <8 x double> %208, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !878, !noalias !884 %209 = fadd <8 x double> %185, %197 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fmul <8 x double> %157, %210 %_4.i253 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %209, <8 x double> %211, i32 noundef 4) #23 store <8 x double> %_4.i253, ptr %151, align 8, !alias.scope !878, !noalias !884 %212 = bitcast <8 x i64> %200 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fsub <8 x double> %186, %213 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %159, %215 %_4.i252 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i252, ptr %150, align 8, !alias.scope !878, !noalias !884 %217 = fsub <8 x double> %187, %207 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fmul <8 x double> %161, %218 %_4.i251 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %217, <8 x double> %219, i32 noundef 4) #23 store <8 x double> %_4.i251, ptr %152, align 8, !alias.scope !878, !noalias !884 %220 = fsub <8 x double> %182, %188 %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %163, %221 %_4.i250 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %220, <8 x double> %222, i32 noundef 4) #23 store <8 x double> %_4.i250, ptr %149, align 8, !alias.scope !878, !noalias !884 %223 = fsub <8 x double> %185, %197 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = fmul <8 x double> %165, %224 %_4.i249 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %223, <8 x double> %225, i32 noundef 4) #23 store <8 x double> %_4.i249, ptr %154, align 8, !alias.scope !878, !noalias !884 %226 = fadd <8 x double> %186, %213 %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %167, %227 %_4.i248 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %226, <8 x double> %228, i32 noundef 4) #23 store <8 x double> %_4.i248, ptr %153, align 8, !alias.scope !878, !noalias !884 %229 = fadd <8 x double> %187, %207 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %169, %230 %_4.i247 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %229, <8 x double> %231, i32 noundef 4) #23 store <8 x double> %_4.i247, ptr %155, align 8, !alias.scope !878, !noalias !884 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !875, !noalias !883 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !875, !noalias !883 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !875, !noalias !883 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !875, !noalias !883 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !875, !noalias !883 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !875, !noalias !883 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !875, !noalias !883 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !875, !noalias !883 %232 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %233 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %234 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %235 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %239 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %240 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %241 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %242 = bitcast <8 x double> %241 to <8 x i64> %243 = xor <8 x i64> %242, %244 = fadd <8 x double> %232, %234 %245 = bitcast <8 x i64> %237 to <8 x double> %246 = shufflevector <8 x double> %245, <8 x double> poison, <8 x i32> %247 = fsub <8 x double> %233, %246 %248 = fsub <8 x double> %232, %234 %249 = fadd <8 x double> %233, %246 %250 = fadd <8 x double> %238, %240 %251 = bitcast <8 x i64> %243 to <8 x double> %252 = shufflevector <8 x double> %251, <8 x double> poison, <8 x i32> %253 = fsub <8 x double> %239, %252 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %253, %257 %259 = fmul <8 x double> %258, %260 = fsub <8 x double> %238, %240 %261 = bitcast <8 x double> %260 to <8 x i64> %262 = xor <8 x i64> %261, %263 = fadd <8 x double> %239, %252 %264 = bitcast <8 x double> %263 to <8 x i64> %265 = xor <8 x i64> %264, %266 = bitcast <8 x i64> %265 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fadd <8 x double> %263, %267 %269 = fmul <8 x double> %268, %270 = fadd <8 x double> %244, %250 store <8 x double> %270, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %271 = fadd <8 x double> %247, %259 %272 = shufflevector <8 x double> %271, <8 x double> poison, <8 x i32> %273 = fmul <8 x double> %157, %272 %_4.i253.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %271, <8 x double> %273, i32 noundef 4) #23 store <8 x double> %_4.i253.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %274 = bitcast <8 x i64> %262 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fsub <8 x double> %248, %275 %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fmul <8 x double> %159, %277 %_4.i252.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %276, <8 x double> %278, i32 noundef 4) #23 store <8 x double> %_4.i252.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %279 = fsub <8 x double> %249, %269 %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fmul <8 x double> %161, %280 %_4.i251.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %279, <8 x double> %281, i32 noundef 4) #23 store <8 x double> %_4.i251.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %282 = fsub <8 x double> %244, %250 %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fmul <8 x double> %163, %283 %_4.i250.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %282, <8 x double> %284, i32 noundef 4) #23 store <8 x double> %_4.i250.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %285 = fsub <8 x double> %247, %259 %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %165, %286 %_4.i249.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %285, <8 x double> %287, i32 noundef 4) #23 store <8 x double> %_4.i249.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %288 = fadd <8 x double> %248, %275 %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fmul <8 x double> %167, %289 %_4.i248.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %288, <8 x double> %290, i32 noundef 4) #23 store <8 x double> %_4.i248.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %291 = fadd <8 x double> %249, %269 %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fmul <8 x double> %169, %292 %_4.i247.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %291, <8 x double> %293, i32 noundef 4) #23 store <8 x double> %_4.i247.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !878, !noalias !884 %294 = add nuw nsw i64 %iter.sroa.104.01923.i, 1 %exitcond.not = icmp eq i64 %294, 16 br i1 %exitcond.not, label %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit, label %bb30.i _ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !885) tail call void @llvm.experimental.noalias.scope.decl(metadata !888) tail call void @llvm.experimental.noalias.scope.decl(metadata !890) br label %bb30.i96 bb28.loopexit.i219: ; preds = %bb58.i152 br i1 %_2.i.i.i.i220, label %bb30.i96, label %bb18.i.i.i.i.i bb30.i96: ; preds = %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit, %bb28.loopexit.i219 %_2.i.i.i.i220 = phi i1 [ false, %bb28.loopexit.i219 ], [ true, %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit ] %iter.sroa.104.01923.i97 = phi i64 [ 1, %bb28.loopexit.i219 ], [ 0, %_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 = shl nuw nsw i64 %iter.sroa.104.01923.i97, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i102 = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i103 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i.i.i.i.i.i.i.i.i.i.i.i.i104 = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i.i.i.i.i.i.i.i.i.i.i105 = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %data.i.i.i.i.i.i.i.i.i106 = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i98 %start1.i.i.i.i.i.i.i107 = shl nuw nsw i64 %iter.sroa.104.01923.i97, 7 %data.i.i.i.i.i.i.i108 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i107 %start1.i.i.i.i.i109 = shl nuw nsw i64 %iter.sroa.104.01923.i97, 6 %295 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 1 %w1.01808.i110 = load <2 x float>, ptr %295, align 8, !alias.scope !890, !noalias !892, !noundef !3 %296 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 1, i32 1 %w1.11809.i111 = load <2 x float>, ptr %296, align 8, !alias.scope !890, !noalias !892, !noundef !3 %297 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 2 %w2.01810.i112 = load <2 x float>, ptr %297, align 8, !alias.scope !890, !noalias !892, !noundef !3 %298 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 2, i32 1 %w2.11811.i113 = load <2 x float>, ptr %298, align 8, !alias.scope !890, !noalias !892, !noundef !3 %299 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 3 %w3.01812.i114 = load <2 x float>, ptr %299, align 8, !alias.scope !890, !noalias !892, !noundef !3 %300 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 3, i32 1 %w3.11813.i115 = load <2 x float>, ptr %300, align 8, !alias.scope !890, !noalias !892, !noundef !3 %301 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 4 %w4.01814.i116 = load <2 x float>, ptr %301, align 8, !alias.scope !890, !noalias !892, !noundef !3 %302 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 4, i32 1 %w4.11815.i117 = load <2 x float>, ptr %302, align 8, !alias.scope !890, !noalias !892, !noundef !3 %303 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 5 %w5.01816.i118 = load <2 x float>, ptr %303, align 8, !alias.scope !890, !noalias !892, !noundef !3 %304 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 5, i32 1 %w5.11817.i119 = load <2 x float>, ptr %304, align 8, !alias.scope !890, !noalias !892, !noundef !3 %305 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 6 %w6.01818.i120 = load <2 x float>, ptr %305, align 8, !alias.scope !890, !noalias !892, !noundef !3 %306 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 6, i32 1 %w6.11819.i121 = load <2 x float>, ptr %306, align 8, !alias.scope !890, !noalias !892, !noundef !3 %307 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 7 %w7.01820.i122 = load <2 x float>, ptr %307, align 8, !alias.scope !890, !noalias !892, !noundef !3 %308 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i109, i64 7, i32 1 %w7.11821.i123 = load <2 x float>, ptr %308, align 8, !alias.scope !890, !noalias !892, !noundef !3 %value.i138.sroa.0.0.vec.expand.i124 = shufflevector <2 x float> %w1.01808.i110, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i125 = shufflevector <2 x float> %w1.11809.i111, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i126 = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i124, <4 x float> %value.i138.sroa.0.8.vec.expand.i125, <4 x i32> %309 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i126 to <2 x double> %value.i134.sroa.0.0.vec.expand.i128 = shufflevector <2 x float> %w2.01810.i112, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i129 = shufflevector <2 x float> %w2.11811.i113, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i130 = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i128, <4 x float> %value.i134.sroa.0.8.vec.expand.i129, <4 x i32> %310 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i130 to <2 x double> %value.i130.sroa.0.0.vec.expand.i132 = shufflevector <2 x float> %w3.01812.i114, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i133 = shufflevector <2 x float> %w3.11813.i115, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i134 = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i132, <4 x float> %value.i130.sroa.0.8.vec.expand.i133, <4 x i32> %311 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i134 to <2 x double> %value.i126.sroa.0.0.vec.expand.i136 = shufflevector <2 x float> %w4.01814.i116, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i137 = shufflevector <2 x float> %w4.11815.i117, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i138 = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i136, <4 x float> %value.i126.sroa.0.8.vec.expand.i137, <4 x i32> %312 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i138 to <2 x double> %value.i122.sroa.0.0.vec.expand.i140 = shufflevector <2 x float> %w5.01816.i118, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i141 = shufflevector <2 x float> %w5.11817.i119, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i142 = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i140, <4 x float> %value.i122.sroa.0.8.vec.expand.i141, <4 x i32> %313 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i142 to <2 x double> %value.i118.sroa.0.0.vec.expand.i144 = shufflevector <2 x float> %w6.01818.i120, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i145 = shufflevector <2 x float> %w6.11819.i121, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i146 = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i144, <4 x float> %value.i118.sroa.0.8.vec.expand.i145, <4 x i32> %314 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i146 to <2 x double> %value.i114.sroa.0.0.vec.expand.i148 = shufflevector <2 x float> %w7.01820.i122, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i149 = shufflevector <2 x float> %w7.11821.i123, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i150 = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i148, <4 x float> %value.i114.sroa.0.8.vec.expand.i149, <4 x i32> %315 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i150 to <2 x double> %316 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 64 %317 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 32 %318 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 16 %319 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 48 %320 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 96 %321 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 80 %322 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 112 %323 = shufflevector <2 x double> %309, <2 x double> poison, <8 x i32> zeroinitializer %324 = shufflevector <2 x double> %309, <2 x double> poison, <8 x i32> %325 = shufflevector <2 x double> %310, <2 x double> poison, <8 x i32> zeroinitializer %326 = shufflevector <2 x double> %310, <2 x double> poison, <8 x i32> %327 = shufflevector <2 x double> %311, <2 x double> poison, <8 x i32> zeroinitializer %328 = shufflevector <2 x double> %311, <2 x double> poison, <8 x i32> %329 = shufflevector <2 x double> %312, <2 x double> poison, <8 x i32> zeroinitializer %330 = shufflevector <2 x double> %312, <2 x double> poison, <8 x i32> %331 = shufflevector <2 x double> %313, <2 x double> poison, <8 x i32> zeroinitializer %332 = shufflevector <2 x double> %313, <2 x double> poison, <8 x i32> %333 = shufflevector <2 x double> %314, <2 x double> poison, <8 x i32> zeroinitializer %334 = shufflevector <2 x double> %314, <2 x double> poison, <8 x i32> %335 = shufflevector <2 x double> %315, <2 x double> poison, <8 x i32> zeroinitializer %336 = shufflevector <2 x double> %315, <2 x double> poison, <8 x i32> br label %bb58.i152 bb58.i152: ; preds = %bb58.i152, %bb30.i96 %iter8.sroa.106.01862.i153 = phi i64 [ %337, %bb58.i152 ], [ 0, %bb30.i96 ] %337 = add nuw nsw i64 %iter8.sroa.106.01862.i153, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99, i64 %iter8.sroa.106.01862.i153 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i157 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i102, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i158 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i103, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i159 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i104, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i160 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i105, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i161 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i106, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i162 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i108, i64 %iter8.sroa.106.01862.i153 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i163 = getelementptr inbounds %"fft_simd::c64x4", ptr %318, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i164 = getelementptr inbounds %"fft_simd::c64x4", ptr %317, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i165 = getelementptr inbounds %"fft_simd::c64x4", ptr %319, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i166 = getelementptr inbounds %"fft_simd::c64x4", ptr %316, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i167 = getelementptr inbounds %"fft_simd::c64x4", ptr %321, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i.i.i35.i.i.i.i168 = getelementptr inbounds %"fft_simd::c64x4", ptr %320, i64 %iter8.sroa.106.01862.i153 %_3.i.i.i.i.i38.i.i.i.i169 = getelementptr inbounds %"fft_simd::c64x4", ptr %322, i64 %iter8.sroa.106.01862.i153 %x0.sroa.0.0.copyload.i170 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154, align 8, !alias.scope !885, !noalias !893 %x1.sroa.0.0.copyload.i171 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155, align 8, !alias.scope !885, !noalias !893 %x2.sroa.0.0.copyload.i172 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156, align 8, !alias.scope !885, !noalias !893 %x3.sroa.0.0.copyload.i173 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i157, align 8, !alias.scope !885, !noalias !893 %x4.sroa.0.0.copyload.i174 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i158, align 8, !alias.scope !885, !noalias !893 %x5.sroa.0.0.copyload.i175 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i159, align 8, !alias.scope !885, !noalias !893 %x6.sroa.0.0.copyload.i176 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i160, align 8, !alias.scope !885, !noalias !893 %x7.sroa.0.0.copyload.i177 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i161, align 8, !alias.scope !885, !noalias !893 %338 = fadd <8 x double> %x0.sroa.0.0.copyload.i170, %x4.sroa.0.0.copyload.i174 %339 = fsub <8 x double> %x0.sroa.0.0.copyload.i170, %x4.sroa.0.0.copyload.i174 %340 = fadd <8 x double> %x2.sroa.0.0.copyload.i172, %x6.sroa.0.0.copyload.i176 %341 = fsub <8 x double> %x2.sroa.0.0.copyload.i172, %x6.sroa.0.0.copyload.i176 %342 = bitcast <8 x double> %341 to <8 x i64> %343 = xor <8 x i64> %342, %344 = fadd <8 x double> %x1.sroa.0.0.copyload.i171, %x5.sroa.0.0.copyload.i175 %345 = fsub <8 x double> %x1.sroa.0.0.copyload.i171, %x5.sroa.0.0.copyload.i175 %346 = fadd <8 x double> %x3.sroa.0.0.copyload.i173, %x7.sroa.0.0.copyload.i177 %347 = fsub <8 x double> %x3.sroa.0.0.copyload.i173, %x7.sroa.0.0.copyload.i177 %348 = bitcast <8 x double> %347 to <8 x i64> %349 = xor <8 x i64> %348, %350 = fadd <8 x double> %338, %340 %351 = bitcast <8 x i64> %343 to <8 x double> %352 = shufflevector <8 x double> %351, <8 x double> poison, <8 x i32> %353 = fsub <8 x double> %339, %352 %354 = fsub <8 x double> %338, %340 %355 = fadd <8 x double> %339, %352 %356 = fadd <8 x double> %344, %346 %357 = bitcast <8 x i64> %349 to <8 x double> %358 = shufflevector <8 x double> %357, <8 x double> poison, <8 x i32> %359 = fsub <8 x double> %345, %358 %360 = bitcast <8 x double> %359 to <8 x i64> %361 = xor <8 x i64> %360, %362 = bitcast <8 x i64> %361 to <8 x double> %363 = shufflevector <8 x double> %362, <8 x double> poison, <8 x i32> %364 = fadd <8 x double> %359, %363 %365 = fmul <8 x double> %364, %366 = fsub <8 x double> %344, %346 %367 = bitcast <8 x double> %366 to <8 x i64> %368 = xor <8 x i64> %367, %369 = fadd <8 x double> %345, %358 %370 = bitcast <8 x double> %369 to <8 x i64> %371 = xor <8 x i64> %370, %372 = bitcast <8 x i64> %371 to <8 x double> %373 = shufflevector <8 x double> %372, <8 x double> poison, <8 x i32> %374 = fadd <8 x double> %369, %373 %375 = fmul <8 x double> %374, %376 = fadd <8 x double> %350, %356 store <8 x double> %376, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i162, align 8, !alias.scope !888, !noalias !894 %377 = fadd <8 x double> %353, %365 %378 = shufflevector <8 x double> %377, <8 x double> poison, <8 x i32> %379 = fmul <8 x double> %324, %378 %_4.i260 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %323, <8 x double> %377, <8 x double> %379, i32 noundef 4) #23 store <8 x double> %_4.i260, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i163, align 8, !alias.scope !888, !noalias !894 %380 = bitcast <8 x i64> %368 to <8 x double> %381 = shufflevector <8 x double> %380, <8 x double> poison, <8 x i32> %382 = fsub <8 x double> %354, %381 %383 = shufflevector <8 x double> %382, <8 x double> poison, <8 x i32> %384 = fmul <8 x double> %326, %383 %_4.i259 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %325, <8 x double> %382, <8 x double> %384, i32 noundef 4) #23 store <8 x double> %_4.i259, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i164, align 8, !alias.scope !888, !noalias !894 %385 = fsub <8 x double> %355, %375 %386 = shufflevector <8 x double> %385, <8 x double> poison, <8 x i32> %387 = fmul <8 x double> %328, %386 %_4.i258 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %327, <8 x double> %385, <8 x double> %387, i32 noundef 4) #23 store <8 x double> %_4.i258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i165, align 8, !alias.scope !888, !noalias !894 %388 = fsub <8 x double> %350, %356 %389 = shufflevector <8 x double> %388, <8 x double> poison, <8 x i32> %390 = fmul <8 x double> %330, %389 %_4.i257 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %329, <8 x double> %388, <8 x double> %390, i32 noundef 4) #23 store <8 x double> %_4.i257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i166, align 8, !alias.scope !888, !noalias !894 %391 = fsub <8 x double> %353, %365 %392 = shufflevector <8 x double> %391, <8 x double> poison, <8 x i32> %393 = fmul <8 x double> %332, %392 %_4.i256 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %331, <8 x double> %391, <8 x double> %393, i32 noundef 4) #23 store <8 x double> %_4.i256, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i167, align 8, !alias.scope !888, !noalias !894 %394 = fadd <8 x double> %354, %381 %395 = shufflevector <8 x double> %394, <8 x double> poison, <8 x i32> %396 = fmul <8 x double> %334, %395 %_4.i255 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %333, <8 x double> %394, <8 x double> %396, i32 noundef 4) #23 store <8 x double> %_4.i255, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i168, align 8, !alias.scope !888, !noalias !894 %397 = fadd <8 x double> %355, %375 %398 = shufflevector <8 x double> %397, <8 x double> poison, <8 x i32> %399 = fmul <8 x double> %336, %398 %_4.i254 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %335, <8 x double> %397, <8 x double> %399, i32 noundef 4) #23 store <8 x double> %_4.i254, ptr %_3.i.i.i.i.i38.i.i.i.i169, align 8, !alias.scope !888, !noalias !894 %exitcond.not.i218 = icmp eq i64 %337, 16 br i1 %exitcond.not.i218, label %bb28.loopexit.i219, label %bb58.i152 bb18.i.i.i.i.i: ; preds = %bb28.loopexit.i219, %bb18.i.i.i.i.i %iter6.i.i.i.i.i.sroa.22.01020 = phi i64 [ %403, %bb18.i.i.i.i.i ], [ 0, %bb28.loopexit.i219 ] %400 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.01020, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter6.i.i.i.i.i.sroa.22.01020 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %iter6.i.i.i.i.i.sroa.22.01020 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter6.i.i.i.i.i.sroa.22.01020 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter6.i.i.i.i.i.sroa.22.01020 %_51.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !862 %_52.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !862 %401 = fadd <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.i.sroa.0.0.copyload %402 = fsub <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.i.sroa.0.0.copyload store <8 x double> %401, ptr %_3.i.i.i.i.i.i, align 8, !noalias !862 store <8 x double> %402, ptr %_3.i.i.i.i, align 8, !noalias !862 %403 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.01020, 2 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %400 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %400 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %400 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %400 %_51.i.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !862 %_52.i.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !862 %404 = fadd <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.i.sroa.0.0.copyload.1 %405 = fsub <8 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %404, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !862 store <8 x double> %405, ptr %_3.i.i.i.i.1, align 8, !noalias !862 %exitcond1021.not.1 = icmp eq i64 %403, 128 br i1 %exitcond1021.not.1, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7cefb7bf992a4ed6E.exit", label %bb18.i.i.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7cefb7bf992a4ed6E.exit": ; preds = %bb18.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !862 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h597ea91076a8aef1E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_13.i.i = alloca %"core::option::Option>", align 8 %_8.i.i = alloca i64, align 8 %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !895) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !895, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !895, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !895, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !895, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !895 store i64 16, ptr %n.i, align 8, !noalias !895 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !895 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !895 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !895 store ptr null, ptr %_16.i, align 8, !noalias !895 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !895 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !895 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !895 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !895 store ptr null, ptr %_24.i, align 8, !noalias !895 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !895 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !895 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !895 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !895 store ptr null, ptr %_32.i, align 8, !noalias !895 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !895 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !895 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !895 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc22a53b54fa72a09E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !895 store ptr null, ptr %_40.i, align 8, !noalias !895 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc22a53b54fa72a09E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !895 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i), !noalias !898 store i64 1, ptr %_8.i.i, align 8, !noalias !898 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i), !noalias !898 store ptr null, ptr %_13.i.i, align 8, !noalias !898 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc389ea8ffbac55d4e22ae197e085e0e) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h599c4ff98b02a33cE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !905) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !905, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !905, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !905, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !905, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !905, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !905, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !905, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !905 store i64 32, ptr %n.i, align 8, !noalias !905 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !905 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !905 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !905 store ptr null, ptr %_16.i, align 8, !noalias !905 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !905 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !905 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !905 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !905 store ptr null, ptr %_24.i, align 8, !noalias !905 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !905 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !905 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !905 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !905 store ptr null, ptr %_32.i, align 8, !noalias !905 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !905 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !905 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !905 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc1463974e042c31E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !905 store ptr null, ptr %_40.i, align 8, !noalias !905 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc1463974e042c31E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !905 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !908 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %10, align 8, !noalias !908 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !908 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %11, align 8, !noalias !908 %12 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %14 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = fadd <8 x double> %12, %14 %19 = bitcast <8 x i64> %17 to <8 x double> %20 = shufflevector <8 x double> %19, <8 x double> poison, <8 x i32> %21 = fsub <8 x double> %13, %20 %22 = fsub <8 x double> %12, %14 %23 = fadd <8 x double> %13, %20 store <8 x double> %18, ptr %scratch.0.i, align 8, !noalias !908 store <8 x double> %21, ptr %7, align 8, !noalias !908 store <8 x double> %22, ptr %6, align 8, !noalias !908 store <8 x double> %23, ptr %8, align 8, !noalias !908 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !908 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !908 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !908 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !908 %24 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %25 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %26 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %27 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %28 = bitcast <8 x double> %27 to <8 x i64> %29 = xor <8 x i64> %28, %30 = fadd <8 x double> %24, %26 %31 = bitcast <8 x i64> %29 to <8 x double> %32 = shufflevector <8 x double> %31, <8 x double> poison, <8 x i32> %33 = fsub <8 x double> %25, %32 %34 = fsub <8 x double> %24, %26 %35 = fadd <8 x double> %25, %32 store <8 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !908 store <8 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !908 store <8 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !908 store <8 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !908 tail call void @llvm.experimental.noalias.scope.decl(metadata !912) tail call void @llvm.experimental.noalias.scope.decl(metadata !915) %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %39 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %40 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %41 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %42 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %43 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %44 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %45 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %41, align 8, !alias.scope !915, !noalias !917 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %40, align 8, !alias.scope !915, !noalias !917 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %42, align 8, !alias.scope !915, !noalias !917 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %39, align 8, !alias.scope !915, !noalias !917 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %44, align 8, !alias.scope !915, !noalias !917 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %43, align 8, !alias.scope !915, !noalias !917 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %45, align 8, !alias.scope !915, !noalias !917 %46 = shufflevector <8 x double> %18, <8 x double> %21, <8 x i32> %47 = shufflevector <8 x double> %18, <8 x double> %21, <8 x i32> %48 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %49 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %48, <8 x i32> %51 = shufflevector <8 x double> %46, <8 x double> %48, <8 x i32> %52 = shufflevector <8 x double> %47, <8 x double> %49, <8 x i32> %53 = shufflevector <8 x double> %47, <8 x double> %49, <8 x i32> %54 = shufflevector <8 x double> %30, <8 x double> %33, <8 x i32> %55 = shufflevector <8 x double> %30, <8 x double> %33, <8 x i32> %56 = shufflevector <8 x double> %34, <8 x double> %35, <8 x i32> %57 = shufflevector <8 x double> %34, <8 x double> %35, <8 x i32> %58 = shufflevector <8 x double> %54, <8 x double> %56, <8 x i32> %59 = shufflevector <8 x double> %54, <8 x double> %56, <8 x i32> %60 = shufflevector <8 x double> %55, <8 x double> %57, <8 x i32> %61 = shufflevector <8 x double> %55, <8 x double> %57, <8 x i32> %62 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %52, <8 x double> %65, i32 noundef 4) #23 %66 = shufflevector <8 x double> %51, <8 x double> poison, <8 x i32> %67 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %68 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %69 = fmul <8 x double> %68, %66 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %67, <8 x double> %51, <8 x double> %69, i32 noundef 4) #23 %70 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %73 = fmul <8 x double> %72, %70 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %71, <8 x double> %53, <8 x double> %73, i32 noundef 4) #23 %74 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %58, <8 x double> %77, i32 noundef 4) #23 %78 = shufflevector <8 x double> %60, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %80, %78 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %60, <8 x double> %81, i32 noundef 4) #23 %82 = shufflevector <8 x double> %59, <8 x double> poison, <8 x i32> %83 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %84, %82 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %59, <8 x double> %85, i32 noundef 4) #23 %86 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %87 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %88 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %89 = fmul <8 x double> %88, %86 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %87, <8 x double> %61, <8 x double> %89, i32 noundef 4) #23 %90 = fadd <8 x double> %50, %_4.i93 %91 = fsub <8 x double> %50, %_4.i93 %92 = fadd <8 x double> %_4.i95, %_4.i91 %93 = fsub <8 x double> %_4.i95, %_4.i91 %94 = bitcast <8 x double> %93 to <8 x i64> %95 = xor <8 x i64> %94, %96 = fadd <8 x double> %_4.i96, %_4.i92 %97 = fsub <8 x double> %_4.i96, %_4.i92 %98 = fadd <8 x double> %_4.i94, %_4.i %99 = fsub <8 x double> %_4.i94, %_4.i %100 = bitcast <8 x double> %99 to <8 x i64> %101 = xor <8 x i64> %100, %102 = fadd <8 x double> %90, %92 %103 = fadd <8 x double> %96, %98 %104 = fadd <8 x double> %102, %103 store <8 x double> %104, ptr %buf.0.i, align 8, !alias.scope !912, !noalias !919 %105 = fsub <8 x double> %102, %103 store <8 x double> %105, ptr %9, align 8, !alias.scope !912, !noalias !919 %106 = bitcast <8 x i64> %95 to <8 x double> %107 = shufflevector <8 x double> %106, <8 x double> poison, <8 x i32> %108 = fsub <8 x double> %91, %107 %109 = bitcast <8 x i64> %101 to <8 x double> %110 = shufflevector <8 x double> %109, <8 x double> poison, <8 x i32> %111 = fsub <8 x double> %97, %110 %112 = bitcast <8 x double> %111 to <8 x i64> %113 = xor <8 x i64> %112, %114 = bitcast <8 x i64> %113 to <8 x double> %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fadd <8 x double> %111, %115 %117 = fmul <8 x double> %116, %118 = fadd <8 x double> %108, %117 store <8 x double> %118, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !912, !noalias !919 %119 = fsub <8 x double> %108, %117 store <8 x double> %119, ptr %37, align 8, !alias.scope !912, !noalias !919 %120 = fsub <8 x double> %90, %92 %121 = fsub <8 x double> %96, %98 %122 = bitcast <8 x double> %121 to <8 x i64> %123 = xor <8 x i64> %122, %124 = bitcast <8 x i64> %123 to <8 x double> %125 = shufflevector <8 x double> %124, <8 x double> poison, <8 x i32> %126 = fsub <8 x double> %120, %125 store <8 x double> %126, ptr %10, align 8, !alias.scope !912, !noalias !919 %127 = fadd <8 x double> %120, %125 store <8 x double> %127, ptr %11, align 8, !alias.scope !912, !noalias !919 %128 = fadd <8 x double> %91, %107 %129 = fadd <8 x double> %97, %110 %130 = bitcast <8 x double> %129 to <8 x i64> %131 = xor <8 x i64> %130, %132 = bitcast <8 x i64> %131 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fadd <8 x double> %129, %133 %135 = fmul <8 x double> %134, %136 = fsub <8 x double> %128, %135 store <8 x double> %136, ptr %36, align 8, !alias.scope !912, !noalias !919 %137 = fadd <8 x double> %128, %135 store <8 x double> %137, ptr %38, align 8, !alias.scope !912, !noalias !919 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !905 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h5e4733dc546ca3f9E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !920) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !920, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !920, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !920, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !920, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !920, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !920, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !920, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !920, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !920 store i64 256, ptr %n.i, align 8, !noalias !920 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !920 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !920 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !920 store ptr null, ptr %_16.i, align 8, !noalias !920 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !920 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !920 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !920 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !920 store ptr null, ptr %_24.i, align 8, !noalias !920 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !920 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !920 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !920 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !920 store ptr null, ptr %_32.i, align 8, !noalias !920 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !920 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !920 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !920 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85804e54d2c326a2E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !920 store ptr null, ptr %_40.i, align 8, !noalias !920 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85804e54d2c326a2E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !920 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 br label %bb26.i.i.i bb26.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85804e54d2c326a2E.exit", %bb26.i.i.i %iter7.i.i.i.sroa.50.0501 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85804e54d2c326a2E.exit" ], [ %13, %bb26.i.i.i ] %13 = add nuw nsw i64 %iter7.i.i.i.sroa.50.0501, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter7.i.i.i.sroa.50.0501 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter7.i.i.i.sroa.50.0501 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter7.i.i.i.sroa.50.0501 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter7.i.i.i.sroa.50.0501 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter7.i.i.i.sroa.50.0501 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter7.i.i.i.sroa.50.0501 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter7.i.i.i.sroa.50.0501 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter7.i.i.i.sroa.50.0501 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !923 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !923 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !923 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !923 %14 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %16 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %17 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = bitcast <8 x i64> %19 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fadd <8 x double> %14, %16 %23 = fsub <8 x double> %15, %21 %24 = fsub <8 x double> %14, %16 %25 = fadd <8 x double> %15, %21 store <8 x double> %22, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !923 store <8 x double> %23, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !923 store <8 x double> %24, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !923 store <8 x double> %25, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !923 %exitcond.not = icmp eq i64 %13, 16 br i1 %exitcond.not, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", label %bb26.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit": ; preds = %bb26.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !927) tail call void @llvm.experimental.noalias.scope.decl(metadata !930) tail call void @llvm.experimental.noalias.scope.decl(metadata !932) br label %bb22.us.i bb22.us.i: ; preds = %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", %bb22.us.i %iter.sroa.60.0645.us.i = phi i64 [ %116, %bb22.us.i ], [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 4 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1 %w1.0614.us.i = load <2 x float>, ptr %26, align 8, !alias.scope !932, !noalias !934, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %27, align 8, !alias.scope !932, !noalias !934, !noundef !3 %28 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2 %w2.0616.us.i = load <2 x float>, ptr %28, align 8, !alias.scope !932, !noalias !934, !noundef !3 %29 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %29, align 8, !alias.scope !932, !noalias !934, !noundef !3 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3 %w3.0618.us.i = load <2 x float>, ptr %30, align 8, !alias.scope !932, !noalias !934, !noundef !3 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %31, align 8, !alias.scope !932, !noalias !934, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %32 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %33 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %34 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 8 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 4 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 12 %38 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> zeroinitializer %39 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> %40 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> zeroinitializer %41 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> %42 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> zeroinitializer %43 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !930, !noalias !935 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %36, align 8, !alias.scope !930, !noalias !935 %44 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %45 = fmul <8 x double> %39, %44 %_4.i167 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %45, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %35, align 8, !alias.scope !930, !noalias !935 %46 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %47 = fmul <8 x double> %41, %46 %_4.i166 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %47, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %37, align 8, !alias.scope !930, !noalias !935 %48 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %49 = fmul <8 x double> %43, %48 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %49, i32 noundef 4) #23 %50 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i166 %51 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i166 %52 = fadd <8 x double> %_4.i167, %_4.i %53 = fsub <8 x double> %_4.i167, %_4.i %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %50, %52 store <8 x double> %58, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !927, !noalias !936 %59 = fsub <8 x double> %51, %57 store <8 x double> %59, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !927, !noalias !936 %60 = fsub <8 x double> %50, %52 store <8 x double> %60, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !927, !noalias !936 %61 = fadd <8 x double> %51, %57 store <8 x double> %61, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !927, !noalias !936 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 5 %_3.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 9 %_3.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 13 %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !930, !noalias !935 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !930, !noalias !935 %62 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %63 = fmul <8 x double> %39, %62 %_4.i167.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %63, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !930, !noalias !935 %64 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %41, %64 %_4.i166.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %65, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i.1, align 8, !alias.scope !930, !noalias !935 %66 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %43, %66 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %67, i32 noundef 4) #23 %68 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i166.1 %69 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i166.1 %70 = fadd <8 x double> %_4.i167.1, %_4.i.1 %71 = fsub <8 x double> %_4.i167.1, %_4.i.1 %72 = bitcast <8 x double> %71 to <8 x i64> %73 = xor <8 x i64> %72, %74 = bitcast <8 x i64> %73 to <8 x double> %75 = shufflevector <8 x double> %74, <8 x double> poison, <8 x i32> %76 = fadd <8 x double> %68, %70 store <8 x double> %76, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !927, !noalias !936 %77 = fsub <8 x double> %69, %75 store <8 x double> %77, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !927, !noalias !936 %78 = fsub <8 x double> %68, %70 store <8 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !927, !noalias !936 %79 = fadd <8 x double> %69, %75 store <8 x double> %79, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !927, !noalias !936 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 6 %_3.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 10 %_3.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 14 %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !930, !noalias !935 %_84.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !930, !noalias !935 %80 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %39, %80 %_4.i167.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> %81, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !930, !noalias !935 %82 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %41, %82 %_4.i166.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> %83, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i.2, align 8, !alias.scope !930, !noalias !935 %84 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %43, %84 %_4.i.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> %85, i32 noundef 4) #23 %86 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i166.2 %87 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i166.2 %88 = fadd <8 x double> %_4.i167.2, %_4.i.2 %89 = fsub <8 x double> %_4.i167.2, %_4.i.2 %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x i64> %91 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = fadd <8 x double> %86, %88 store <8 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !927, !noalias !936 %95 = fsub <8 x double> %87, %93 store <8 x double> %95, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !927, !noalias !936 %96 = fsub <8 x double> %86, %88 store <8 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !927, !noalias !936 %97 = fadd <8 x double> %87, %93 store <8 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !927, !noalias !936 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 7 %_3.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 11 %_3.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 15 %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !930, !noalias !935 %_84.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !930, !noalias !935 %98 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %99 = fmul <8 x double> %39, %98 %_4.i167.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> %99, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !930, !noalias !935 %100 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %101 = fmul <8 x double> %41, %100 %_4.i166.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> %101, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i.3, align 8, !alias.scope !930, !noalias !935 %102 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %103 = fmul <8 x double> %43, %102 %_4.i.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> %103, i32 noundef 4) #23 %104 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i166.3 %105 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i166.3 %106 = fadd <8 x double> %_4.i167.3, %_4.i.3 %107 = fsub <8 x double> %_4.i167.3, %_4.i.3 %108 = bitcast <8 x double> %107 to <8 x i64> %109 = xor <8 x i64> %108, %110 = bitcast <8 x i64> %109 to <8 x double> %111 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %112 = fadd <8 x double> %104, %106 store <8 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !927, !noalias !936 %113 = fsub <8 x double> %105, %111 store <8 x double> %113, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !927, !noalias !936 %114 = fsub <8 x double> %104, %106 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !927, !noalias !936 %115 = fadd <8 x double> %105, %111 store <8 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !927, !noalias !936 %116 = add nuw nsw i64 %iter.sroa.60.0645.us.i, 1 %exitcond502.not = icmp eq i64 %116, 4 br i1 %exitcond502.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, label %bb22.us.i _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !937) tail call void @llvm.experimental.noalias.scope.decl(metadata !940) tail call void @llvm.experimental.noalias.scope.decl(metadata !942) br label %bb22.us.i106 bb22.us.i106: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, %bb22.us.i106 %iter.sroa.60.0645.us.i107 = phi i64 [ %153, %bb22.us.i106 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i108 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i107 %start1.i.i.i.i.us.i109 = shl i64 %iter.sroa.60.0645.us.i107, 2 %data.i.i.i.i.i.i.us.i110 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i109 %data.i.i.i.i.i.i.i.i.us.i111 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.60.0645.us.i107 %data.i.i.i.i.i.i.i.i.i.i.us.i112 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.60.0645.us.i107 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i113 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.60.0645.us.i107 %117 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 1 %w1.0614.us.i114 = load <2 x float>, ptr %117, align 8, !alias.scope !942, !noalias !944, !noundef !3 %118 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 1, i32 1 %w1.1615.us.i115 = load <2 x float>, ptr %118, align 8, !alias.scope !942, !noalias !944, !noundef !3 %119 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 2 %w2.0616.us.i116 = load <2 x float>, ptr %119, align 8, !alias.scope !942, !noalias !944, !noundef !3 %120 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 2, i32 1 %w2.1617.us.i117 = load <2 x float>, ptr %120, align 8, !alias.scope !942, !noalias !944, !noundef !3 %121 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 3 %w3.0618.us.i118 = load <2 x float>, ptr %121, align 8, !alias.scope !942, !noalias !944, !noundef !3 %122 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i109, i64 3, i32 1 %w3.1619.us.i119 = load <2 x float>, ptr %122, align 8, !alias.scope !942, !noalias !944, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i120 = shufflevector <2 x float> %w1.0614.us.i114, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i121 = shufflevector <2 x float> %w1.1615.us.i115, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i122 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i120, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i121, <4 x i32> %123 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i122 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i124 = shufflevector <2 x float> %w2.0616.us.i116, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i125 = shufflevector <2 x float> %w2.1617.us.i117, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i126 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i124, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i125, <4 x i32> %124 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i126 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i128 = shufflevector <2 x float> %w3.0618.us.i118, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i129 = shufflevector <2 x float> %w3.1619.us.i119, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i130 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i128, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i129, <4 x i32> %125 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i130 to <2 x double> %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i110, i64 2 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i110, i64 1 %128 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i110, i64 3 %129 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> zeroinitializer %130 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> %131 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> zeroinitializer %132 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> %133 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> zeroinitializer %134 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i142 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i110, align 8, !alias.scope !940, !noalias !945 %_84.sroa.0.0.copyload.us.i143 = load <8 x double>, ptr %127, align 8, !alias.scope !940, !noalias !945 %135 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i143, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %130, %135 %_4.i170 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %129, <8 x double> %_84.sroa.0.0.copyload.us.i143, <8 x double> %136, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i145 = load <8 x double>, ptr %126, align 8, !alias.scope !940, !noalias !945 %137 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i145, <8 x double> poison, <8 x i32> %138 = fmul <8 x double> %132, %137 %_4.i169 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %131, <8 x double> %_86.sroa.0.0.copyload.us.i145, <8 x double> %138, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i147 = load <8 x double>, ptr %128, align 8, !alias.scope !940, !noalias !945 %139 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i147, <8 x double> poison, <8 x i32> %140 = fmul <8 x double> %134, %139 %_4.i168 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %133, <8 x double> %_88.sroa.0.0.copyload.us.i147, <8 x double> %140, i32 noundef 4) #23 %141 = fadd <8 x double> %a.sroa.0.0.copyload.us.i142, %_4.i169 %142 = fsub <8 x double> %a.sroa.0.0.copyload.us.i142, %_4.i169 %143 = fadd <8 x double> %_4.i170, %_4.i168 %144 = fsub <8 x double> %_4.i170, %_4.i168 %145 = bitcast <8 x double> %144 to <8 x i64> %146 = xor <8 x i64> %145, %147 = bitcast <8 x i64> %146 to <8 x double> %148 = shufflevector <8 x double> %147, <8 x double> poison, <8 x i32> %149 = fadd <8 x double> %141, %143 store <8 x double> %149, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i108, align 8, !alias.scope !937, !noalias !946 %150 = fsub <8 x double> %142, %148 store <8 x double> %150, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i113, align 8, !alias.scope !937, !noalias !946 %151 = fsub <8 x double> %141, %143 store <8 x double> %151, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i112, align 8, !alias.scope !937, !noalias !946 %152 = fadd <8 x double> %142, %148 store <8 x double> %152, ptr %data.i.i.i.i.i.i.i.i.us.i111, align 8, !alias.scope !937, !noalias !946 %153 = add nuw nsw i64 %iter.sroa.60.0645.us.i107, 1 %exitcond503.not = icmp eq i64 %153, 16 br i1 %exitcond503.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161, label %bb22.us.i106 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161: ; preds = %bb22.us.i106 tail call void @llvm.experimental.noalias.scope.decl(metadata !947) tail call void @llvm.experimental.noalias.scope.decl(metadata !950) tail call void @llvm.experimental.noalias.scope.decl(metadata !952) %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %156 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 br label %bb15.i164 bb15.i164: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161, %bb15.i164 %iter.sroa.50.0449.i = phi i64 [ %157, %bb15.i164 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit161 ] %157 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %155, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %154, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %156, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !952, !noalias !954 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !952, !noalias !954 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !952, !noalias !954 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !950, !noalias !955 %158 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %158, align 8, !alias.scope !950, !noalias !955 %159 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %159, align 8, !alias.scope !950, !noalias !955 %160 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %160, align 8, !alias.scope !950, !noalias !955 %161 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %162 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %163 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %164 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %165 = shufflevector <8 x double> %161, <8 x double> %163, <8 x i32> %166 = shufflevector <8 x double> %161, <8 x double> %163, <8 x i32> %167 = shufflevector <8 x double> %162, <8 x double> %164, <8 x i32> %168 = shufflevector <8 x double> %162, <8 x double> %164, <8 x i32> %169 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %171, %169 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %167, <8 x double> %172, i32 noundef 4) #23 %173 = shufflevector <8 x double> %166, <8 x double> poison, <8 x i32> %174 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = fmul <8 x double> %175, %173 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %174, <8 x double> %166, <8 x double> %176, i32 noundef 4) #23 %177 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %178 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %179 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %180 = fmul <8 x double> %179, %177 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %178, <8 x double> %168, <8 x double> %180, i32 noundef 4) #23 %181 = fadd <8 x double> %165, %_4.i172 %182 = fsub <8 x double> %165, %_4.i172 %183 = fadd <8 x double> %_4.i173, %_4.i171 %184 = fsub <8 x double> %_4.i173, %_4.i171 %185 = bitcast <8 x double> %184 to <8 x i64> %186 = xor <8 x i64> %185, %187 = bitcast <8 x i64> %186 to <8 x double> %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = fadd <8 x double> %181, %183 store <8 x double> %189, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !947, !noalias !956 %190 = fsub <8 x double> %182, %188 store <8 x double> %190, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !947, !noalias !956 %191 = fsub <8 x double> %181, %183 store <8 x double> %191, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !947, !noalias !956 %192 = fadd <8 x double> %182, %188 store <8 x double> %192, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !947, !noalias !956 %exitcond.not.i165 = icmp eq i64 %157, 16 br i1 %exitcond.not.i165, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i164 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i164 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !920 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h62434053279f6b32E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !957) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !957, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !957, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !957, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !957, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !957, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !957, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !957, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !957 store i64 128, ptr %n.i, align 8, !noalias !957 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !957 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !957 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !957 store ptr null, ptr %_16.i, align 8, !noalias !957 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !957 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !957 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !957 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !957 store ptr null, ptr %_24.i, align 8, !noalias !957 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !957 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !957 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !957 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !957 store ptr null, ptr %_32.i, align 8, !noalias !957 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !957 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !957 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !957 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd508d2fa2e635f2cE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !957 store ptr null, ptr %_40.i, align 8, !noalias !957 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd508d2fa2e635f2cE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !957 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 br label %bb38.i.i.i bb38.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd508d2fa2e635f2cE.exit", %bb38.i.i.i %iter14.i.i.i.sroa.106.01220 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd508d2fa2e635f2cE.exit" ], [ %20, %bb38.i.i.i ] %20 = add nuw nsw i64 %iter14.i.i.i.sroa.106.01220, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i32.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i35.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i38.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter14.i.i.i.sroa.106.01220 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i, align 8, !noalias !960 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i, align 8, !noalias !960 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i, align 8, !noalias !960 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i, align 8, !noalias !960 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i, align 8, !noalias !960 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i, align 8, !noalias !960 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i, align 8, !noalias !960 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i, align 8, !noalias !960 %21 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %22 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %23 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %24 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %25 = bitcast <8 x double> %24 to <8 x i64> %26 = xor <8 x i64> %25, %27 = bitcast <8 x i64> %26 to <8 x double> %28 = shufflevector <8 x double> %27, <8 x double> poison, <8 x i32> %29 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %30 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %31 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %32 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %33 = bitcast <8 x double> %32 to <8 x i64> %34 = xor <8 x i64> %33, %35 = bitcast <8 x i64> %34 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fadd <8 x double> %21, %23 %38 = fsub <8 x double> %22, %28 %39 = fsub <8 x double> %21, %23 %40 = fadd <8 x double> %22, %28 %41 = fadd <8 x double> %29, %31 %42 = fsub <8 x double> %30, %36 %43 = bitcast <8 x double> %42 to <8 x i64> %44 = xor <8 x i64> %43, %45 = bitcast <8 x i64> %44 to <8 x double> %46 = shufflevector <8 x double> %45, <8 x double> poison, <8 x i32> %47 = fadd <8 x double> %42, %46 %48 = fmul <8 x double> %47, %49 = fsub <8 x double> %29, %31 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = bitcast <8 x i64> %51 to <8 x double> %53 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %54 = fadd <8 x double> %30, %36 %55 = bitcast <8 x double> %54 to <8 x i64> %56 = xor <8 x i64> %55, %57 = bitcast <8 x i64> %56 to <8 x double> %58 = shufflevector <8 x double> %57, <8 x double> poison, <8 x i32> %59 = fadd <8 x double> %54, %58 %60 = fmul <8 x double> %59, %61 = fadd <8 x double> %37, %41 %62 = fadd <8 x double> %38, %48 %63 = fsub <8 x double> %39, %53 %64 = fsub <8 x double> %40, %60 %65 = fsub <8 x double> %37, %41 %66 = fsub <8 x double> %38, %48 %67 = fadd <8 x double> %39, %53 %68 = fadd <8 x double> %40, %60 store <8 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %62, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %65, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %66, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %67, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !960 store <8 x double> %68, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !960 %exitcond.not = icmp eq i64 %20, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit", label %bb38.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit": ; preds = %bb38.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !964) tail call void @llvm.experimental.noalias.scope.decl(metadata !967) tail call void @llvm.experimental.noalias.scope.decl(metadata !969) %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %76 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %77 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %78 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %79 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %80 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %81 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %82 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %83 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %84 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 18 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 22 %89 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %90 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 26 %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 30 br label %bb39.i bb39.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit", %bb39.i %iter.sroa.218.04494.i = phi i64 [ %92, %bb39.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit" ] %92 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %69, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %70, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %71, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %72, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %73, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %74, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %75, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %76, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %80, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %79, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %81, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %78, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %83, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %82, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %84, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %77, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %87, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %86, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %88, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %85, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %90, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %89, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !969, !noalias !971 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !967, !noalias !972 %93 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %93, align 8, !alias.scope !967, !noalias !972 %94 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %94, align 8, !alias.scope !967, !noalias !972 %95 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %95, align 8, !alias.scope !967, !noalias !972 %96 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %96, align 8, !alias.scope !967, !noalias !972 %97 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %97, align 8, !alias.scope !967, !noalias !972 %98 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %98, align 8, !alias.scope !967, !noalias !972 %99 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %99, align 8, !alias.scope !967, !noalias !972 %100 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %100, align 8, !alias.scope !967, !noalias !972 %101 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %101, align 8, !alias.scope !967, !noalias !972 %102 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %102, align 8, !alias.scope !967, !noalias !972 %103 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %103, align 8, !alias.scope !967, !noalias !972 %104 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %104, align 8, !alias.scope !967, !noalias !972 %105 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %105, align 8, !alias.scope !967, !noalias !972 %106 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %106, align 8, !alias.scope !967, !noalias !972 %107 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %107, align 8, !alias.scope !967, !noalias !972 %108 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %109 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %110 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %111 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %112 = shufflevector <8 x double> %108, <8 x double> %110, <8 x i32> %113 = shufflevector <8 x double> %108, <8 x double> %110, <8 x i32> %114 = shufflevector <8 x double> %109, <8 x double> %111, <8 x i32> %115 = shufflevector <8 x double> %109, <8 x double> %111, <8 x i32> %116 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %117 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %118 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %119 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %120 = shufflevector <8 x double> %116, <8 x double> %118, <8 x i32> %121 = shufflevector <8 x double> %116, <8 x double> %118, <8 x i32> %122 = shufflevector <8 x double> %117, <8 x double> %119, <8 x i32> %123 = shufflevector <8 x double> %117, <8 x double> %119, <8 x i32> %124 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %125 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %126 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %127 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %128 = shufflevector <8 x double> %124, <8 x double> %126, <8 x i32> %129 = shufflevector <8 x double> %124, <8 x double> %126, <8 x i32> %130 = shufflevector <8 x double> %125, <8 x double> %127, <8 x i32> %131 = shufflevector <8 x double> %125, <8 x double> %127, <8 x i32> %132 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %133 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %134 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %135 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %136 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %137 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %138 = shufflevector <8 x double> %133, <8 x double> %135, <8 x i32> %139 = shufflevector <8 x double> %133, <8 x double> %135, <8 x i32> %140 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %141 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %142 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %142, %140 %_4.i241 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %141, <8 x double> %114, <8 x double> %143, i32 noundef 4) #23 %144 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %145 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %146 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %146, %144 %_4.i240 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %145, <8 x double> %113, <8 x double> %147, i32 noundef 4) #23 %148 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %149 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %150 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %150, %148 %_4.i239 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %149, <8 x double> %115, <8 x double> %151, i32 noundef 4) #23 %152 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %153 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %154 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %155 = fmul <8 x double> %154, %152 %_4.i238 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %153, <8 x double> %120, <8 x double> %155, i32 noundef 4) #23 %156 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %158, %156 %_4.i237 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %157, <8 x double> %122, <8 x double> %159, i32 noundef 4) #23 %160 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %163 = fmul <8 x double> %162, %160 %_4.i236 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %161, <8 x double> %121, <8 x double> %163, i32 noundef 4) #23 %164 = shufflevector <8 x double> %123, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %167 = fmul <8 x double> %166, %164 %_4.i235 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %165, <8 x double> %123, <8 x double> %167, i32 noundef 4) #23 %168 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = fmul <8 x double> %170, %168 %_4.i234 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %128, <8 x double> %171, i32 noundef 4) #23 %172 = shufflevector <8 x double> %130, <8 x double> poison, <8 x i32> %173 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %174 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %174, %172 %_4.i233 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %173, <8 x double> %130, <8 x double> %175, i32 noundef 4) #23 %176 = shufflevector <8 x double> %129, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %179 = fmul <8 x double> %178, %176 %_4.i232 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %177, <8 x double> %129, <8 x double> %179, i32 noundef 4) #23 %180 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %182, %180 %_4.i231 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %131, <8 x double> %183, i32 noundef 4) #23 %184 = shufflevector <8 x double> %136, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %186, %184 %_4.i230 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %136, <8 x double> %187, i32 noundef 4) #23 %188 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %189 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = fmul <8 x double> %190, %188 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %189, <8 x double> %138, <8 x double> %191, i32 noundef 4) #23 %192 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %193 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %194 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %195 = fmul <8 x double> %194, %192 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %193, <8 x double> %137, <8 x double> %195, i32 noundef 4) #23 %196 = shufflevector <8 x double> %139, <8 x double> poison, <8 x i32> %197 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %198 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %199 = fmul <8 x double> %198, %196 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %197, <8 x double> %139, <8 x double> %199, i32 noundef 4) #23 %200 = fadd <8 x double> %112, %_4.i234 %201 = fsub <8 x double> %112, %_4.i234 %202 = fadd <8 x double> %_4.i238, %_4.i230 %203 = fsub <8 x double> %_4.i238, %_4.i230 %204 = fadd <8 x double> %_4.i240, %_4.i232 %205 = fsub <8 x double> %_4.i240, %_4.i232 %206 = fadd <8 x double> %_4.i236, %_4.i228 %207 = fsub <8 x double> %_4.i236, %_4.i228 %208 = fadd <8 x double> %_4.i241, %_4.i233 %209 = fsub <8 x double> %_4.i241, %_4.i233 %210 = fadd <8 x double> %_4.i237, %_4.i229 %211 = fsub <8 x double> %_4.i237, %_4.i229 %212 = fadd <8 x double> %_4.i239, %_4.i231 %213 = fsub <8 x double> %_4.i239, %_4.i231 %214 = fadd <8 x double> %_4.i235, %_4.i227 %215 = fsub <8 x double> %_4.i235, %_4.i227 %216 = bitcast <8 x double> %203 to <8 x i64> %217 = xor <8 x i64> %216, %218 = bitcast <8 x i64> %217 to <8 x double> %219 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %220 = bitcast <8 x double> %207 to <8 x i64> %221 = xor <8 x i64> %220, %222 = bitcast <8 x i64> %221 to <8 x double> %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = bitcast <8 x double> %211 to <8 x i64> %225 = xor <8 x i64> %224, %226 = bitcast <8 x i64> %225 to <8 x double> %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = bitcast <8 x double> %215 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x i64> %229 to <8 x double> %231 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %232 = fadd <8 x double> %200, %202 %233 = fsub <8 x double> %201, %219 %234 = fsub <8 x double> %200, %202 %235 = fadd <8 x double> %201, %219 %236 = fadd <8 x double> %204, %206 %237 = fsub <8 x double> %205, %223 %238 = fsub <8 x double> %204, %206 %239 = fadd <8 x double> %205, %223 %240 = fadd <8 x double> %208, %210 %241 = fsub <8 x double> %209, %227 %242 = fsub <8 x double> %208, %210 %243 = fadd <8 x double> %209, %227 %244 = fadd <8 x double> %212, %214 %245 = fsub <8 x double> %213, %231 %246 = fsub <8 x double> %212, %214 %247 = fadd <8 x double> %213, %231 %248 = bitcast <8 x double> %237 to <8 x i64> %249 = xor <8 x i64> %248, %250 = bitcast <8 x i64> %249 to <8 x double> %251 = shufflevector <8 x double> %250, <8 x double> poison, <8 x i32> %252 = fadd <8 x double> %237, %251 %253 = fmul <8 x double> %252, %254 = bitcast <8 x double> %238 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = bitcast <8 x double> %239 to <8 x i64> %259 = xor <8 x i64> %258, %260 = bitcast <8 x i64> %259 to <8 x double> %261 = shufflevector <8 x double> %260, <8 x double> poison, <8 x i32> %262 = fadd <8 x double> %239, %261 %263 = fmul <8 x double> %262, %264 = fadd <8 x double> %232, %236 %265 = fadd <8 x double> %233, %253 %266 = fsub <8 x double> %234, %257 %267 = fsub <8 x double> %235, %263 %268 = fsub <8 x double> %232, %236 %269 = fsub <8 x double> %233, %253 %270 = fadd <8 x double> %234, %257 %271 = fadd <8 x double> %235, %263 %272 = bitcast <8 x double> %245 to <8 x i64> %273 = xor <8 x i64> %272, %274 = bitcast <8 x i64> %273 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fadd <8 x double> %245, %275 %277 = fmul <8 x double> %276, %278 = bitcast <8 x double> %246 to <8 x i64> %279 = xor <8 x i64> %278, %280 = bitcast <8 x i64> %279 to <8 x double> %281 = shufflevector <8 x double> %280, <8 x double> poison, <8 x i32> %282 = bitcast <8 x double> %247 to <8 x i64> %283 = xor <8 x i64> %282, %284 = bitcast <8 x i64> %283 to <8 x double> %285 = shufflevector <8 x double> %284, <8 x double> poison, <8 x i32> %286 = fadd <8 x double> %247, %285 %287 = fmul <8 x double> %286, %288 = fadd <8 x double> %240, %244 %289 = fadd <8 x double> %241, %277 %290 = fsub <8 x double> %242, %281 %291 = fsub <8 x double> %243, %287 %292 = fsub <8 x double> %240, %244 %293 = fsub <8 x double> %241, %277 %294 = fadd <8 x double> %242, %281 %295 = fadd <8 x double> %243, %287 %296 = fadd <8 x double> %264, %288 store <8 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %297 = fsub <8 x double> %264, %288 store <8 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %298 = fmul <8 x double> %289, %299 = shufflevector <8 x double> %298, <8 x double> poison, <8 x i32> %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %289, <8 x double> %299, i32 noundef 4) #23 %300 = fadd <8 x double> %_4.i226, %265 store <8 x double> %300, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %301 = fsub <8 x double> %265, %_4.i226 store <8 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %302 = bitcast <8 x double> %290 to <8 x i64> %303 = xor <8 x i64> %302, %304 = bitcast <8 x i64> %303 to <8 x double> %305 = shufflevector <8 x double> %304, <8 x double> poison, <8 x i32> %306 = fadd <8 x double> %290, %305 %307 = fmul <8 x double> %306, %308 = fadd <8 x double> %266, %307 store <8 x double> %308, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %309 = fsub <8 x double> %266, %307 store <8 x double> %309, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %310 = fmul <8 x double> %291, %311 = shufflevector <8 x double> %310, <8 x double> poison, <8 x i32> %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %291, <8 x double> %311, i32 noundef 4) #23 %312 = fadd <8 x double> %_4.i225, %267 store <8 x double> %312, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %313 = fsub <8 x double> %267, %_4.i225 store <8 x double> %313, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %314 = bitcast <8 x double> %292 to <8 x i64> %315 = xor <8 x i64> %314, %316 = bitcast <8 x i64> %315 to <8 x double> %317 = shufflevector <8 x double> %316, <8 x double> poison, <8 x i32> %318 = fsub <8 x double> %268, %317 store <8 x double> %318, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %319 = fadd <8 x double> %268, %317 store <8 x double> %319, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %320 = fmul <8 x double> %293, %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %293, <8 x double> %321, i32 noundef 4) #23 %322 = fsub <8 x double> %269, %_4.i224 store <8 x double> %322, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %323 = fadd <8 x double> %269, %_4.i224 store <8 x double> %323, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %324 = bitcast <8 x double> %294 to <8 x i64> %325 = xor <8 x i64> %324, %326 = bitcast <8 x i64> %325 to <8 x double> %327 = shufflevector <8 x double> %326, <8 x double> poison, <8 x i32> %328 = fadd <8 x double> %294, %327 %329 = fmul <8 x double> %328, %330 = fsub <8 x double> %270, %329 store <8 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %331 = fadd <8 x double> %270, %329 store <8 x double> %331, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %332 = fmul <8 x double> %295, %333 = shufflevector <8 x double> %332, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %295, <8 x double> %333, i32 noundef 4) #23 %334 = fsub <8 x double> %271, %_4.i store <8 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %335 = fadd <8 x double> %271, %_4.i store <8 x double> %335, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !964, !noalias !973 %exitcond.not.i = icmp eq i64 %92, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !957 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h636123ad7411ee9aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !974) tail call void @llvm.experimental.noalias.scope.decl(metadata !977) %0 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f, i64 0, i32 1 %_2.0.i.i = load ptr, ptr %0, align 8, !alias.scope !980, !nonnull !3, !align !4, !noundef !3 %1 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f, i64 0, i32 1, i32 1 %_2.1.i.i = load i64, ptr %1, align 8, !alias.scope !980, !noundef !3 %2 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f, i64 0, i32 2 %_3.0.i.i = load ptr, ptr %2, align 8, !alias.scope !980, !nonnull !3, !align !4, !noundef !3 %3 = and i64 %_2.1.i.i, 3 %4 = icmp eq i64 %3, 0 br i1 %4, label %bb13.i.i.i, label %bb12.i.i.i bb13.i.i.i: ; preds = %start %5 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.834", ptr %f, i64 0, i32 2, i32 1 %_3.1.i.i = load i64, ptr %5, align 8, !alias.scope !980, !noundef !3 %6 = shl nsw i64 %_3.1.i.i, 4 %_13.i.i = urem i64 %6, 192 %new_len.i.i = udiv i64 %6, 192 %7 = icmp eq i64 %_13.i.i, 0 br i1 %7, label %bb16.i.i.i, label %bb15.i.i.i bb12.i.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !981 unreachable bb16.i.i.i: ; preds = %bb13.i.i.i %8 = lshr exact i64 %_2.1.i.i, 2 %new_len2.i.i = and i64 %8, 288230376151711743 %mid5.i.i.i.i = lshr i64 %new_len2.i.i, 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid5.i.i.i.i %10 = sub nsw i64 %new_len2.i.i, %mid5.i.i.i.i %mid36.i.i.i.i = lshr i64 %new_len2.i.i, 2 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid36.i.i.i.i %12 = sub nsw i64 %mid5.i.i.i.i, %mid36.i.i.i.i %mid47.i.i.i.i = lshr i64 %10, 1 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %mid47.i.i.i.i %14 = sub i64 %10, %mid47.i.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i.i.i.i, i64 %12) %_0.0.sroa.speculated.i.i.i4.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i, i64 %14) %_0.0.sroa.speculated.i.i.i23.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i, i64 %new_len.i.i) %_2.i.i.i146.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i23.i, 0 br i1 %_2.i.i.i146.not.i, label %_ZN4core3ops8function6FnOnce9call_once17hfcc0d1543194d6e7E.exit, label %bb8.i.i.i bb15.i.i.i: ; preds = %bb13.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !980 unreachable bb8.i.i.i: ; preds = %bb16.i.i.i, %bb8.i.i.i %iter.i.i.sroa.29.0147.i = phi i64 [ %15, %bb8.i.i.i ], [ 0, %bb16.i.i.i ] %15 = add nuw nsw i64 %iter.i.i.sroa.29.0147.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.29.0147.i %_3.i2.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.sroa.29.0147.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.sroa.29.0147.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.sroa.29.0147.i %_3.i.i.i.i.i = getelementptr inbounds [3 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.29.0147.i %w1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !980 %16 = getelementptr inbounds [3 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.29.0147.i, i64 1 %w2.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %16, align 8, !noalias !980 %17 = getelementptr inbounds [3 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.29.0147.i, i64 2 %w3.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %17, align 8, !noalias !980 %_33.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !980 %_34.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !980 %_35.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !980 %_36.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !980 %18 = fadd <8 x double> %_33.i.i.sroa.0.0.copyload.i, %_35.i.i.sroa.0.0.copyload.i %19 = fsub <8 x double> %_33.i.i.sroa.0.0.copyload.i, %_35.i.i.sroa.0.0.copyload.i %20 = fadd <8 x double> %_34.i.i.sroa.0.0.copyload.i, %_36.i.i.sroa.0.0.copyload.i %21 = fsub <8 x double> %_34.i.i.sroa.0.0.copyload.i, %_36.i.i.sroa.0.0.copyload.i %22 = bitcast <8 x double> %21 to <8 x i64> %23 = xor <8 x i64> %22, %24 = bitcast <8 x i64> %23 to <8 x double> %25 = shufflevector <8 x double> %24, <8 x double> poison, <8 x i32> %26 = fadd <8 x double> %18, %20 %27 = fsub <8 x double> %19, %25 %28 = shufflevector <8 x double> %27, <8 x double> poison, <8 x i32> %29 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = fmul <8 x double> %30, %28 %_4.i2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %29, <8 x double> %27, <8 x double> %31, i32 noundef 4) #23 %32 = fsub <8 x double> %18, %20 %33 = shufflevector <8 x double> %32, <8 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = fmul <8 x double> %35, %33 %_4.i1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %34, <8 x double> %32, <8 x double> %36, i32 noundef 4) #23 %37 = fadd <8 x double> %19, %25 %38 = shufflevector <8 x double> %37, <8 x double> poison, <8 x i32> %39 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %40 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %41 = fmul <8 x double> %40, %38 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %39, <8 x double> %37, <8 x double> %41, i32 noundef 4) #23 store <8 x double> %26, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !980 store <8 x double> %_4.i2, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !980 store <8 x double> %_4.i1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !980 store <8 x double> %_4.i, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !980 %exitcond.not.i = icmp eq i64 %15, %_0.0.sroa.speculated.i.i.i23.i br i1 %exitcond.not.i, label %_ZN4core3ops8function6FnOnce9call_once17hfcc0d1543194d6e7E.exit, label %bb8.i.i.i _ZN4core3ops8function6FnOnce9call_once17hfcc0d1543194d6e7E.exit: ; preds = %bb8.i.i.i, %bb16.i.i.i ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h67ccc7e035e4b017E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !984) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !984, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !984, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !984, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !984, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !984, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !984, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !984, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !984, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !984 store i64 32, ptr %n.i, align 8, !noalias !984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !984 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !984 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !984 store ptr null, ptr %_16.i, align 8, !noalias !984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !984 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !984 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !984 store ptr null, ptr %_24.i, align 8, !noalias !984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !984 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !984 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !984 store ptr null, ptr %_32.i, align 8, !noalias !984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !984 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !984 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4d58864e05fa8140E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !984 store ptr null, ptr %_40.i, align 8, !noalias !984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4d58864e05fa8140E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !984 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_33.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !984 %_34.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !984 %8 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload %9 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload store <8 x double> %8, ptr %buf.0.i, align 8, !noalias !984 store <8 x double> %9, ptr %7, align 8, !noalias !984 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_33.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !984 %_34.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !984 %10 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 %11 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 store <8 x double> %10, ptr %_3.i.i.i.i.1, align 8, !noalias !984 store <8 x double> %11, ptr %_3.i2.i.i.i.1, align 8, !noalias !984 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_33.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !984 %_34.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !noalias !984 %12 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 %13 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 store <8 x double> %12, ptr %_3.i.i.i.i.2, align 8, !noalias !984 store <8 x double> %13, ptr %_3.i2.i.i.i.2, align 8, !noalias !984 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_33.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !984 %_34.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !noalias !984 %14 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 %15 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 store <8 x double> %14, ptr %_3.i.i.i.i.3, align 8, !noalias !984 store <8 x double> %15, ptr %_3.i2.i.i.i.3, align 8, !noalias !984 tail call void @llvm.experimental.noalias.scope.decl(metadata !987) tail call void @llvm.experimental.noalias.scope.decl(metadata !990) tail call void @llvm.experimental.noalias.scope.decl(metadata !992) %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %19 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0614.us.i = load <2 x float>, ptr %19, align 8, !alias.scope !992, !noalias !994, !noundef !3 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %20, align 8, !alias.scope !992, !noalias !994, !noundef !3 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0616.us.i = load <2 x float>, ptr %21, align 8, !alias.scope !992, !noalias !994, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %22, align 8, !alias.scope !992, !noalias !994, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0618.us.i = load <2 x float>, ptr %23, align 8, !alias.scope !992, !noalias !994, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %24, align 8, !alias.scope !992, !noalias !994, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %25 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %26 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %27 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %28 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> zeroinitializer %29 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> %30 = shufflevector <2 x double> %26, <2 x double> poison, <8 x i32> zeroinitializer %31 = shufflevector <2 x double> %26, <2 x double> poison, <8 x i32> %32 = shufflevector <2 x double> %27, <2 x double> poison, <8 x i32> zeroinitializer %33 = shufflevector <2 x double> %27, <2 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %10, <8 x double> poison, <8 x i32> %35 = fmul <8 x double> %29, %34 %_4.i23 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %28, <8 x double> %10, <8 x double> %35, i32 noundef 4) #23 %36 = shufflevector <8 x double> %12, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %31, %36 %_4.i22 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %12, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %14, <8 x double> poison, <8 x i32> %39 = fmul <8 x double> %33, %38 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %32, <8 x double> %14, <8 x double> %39, i32 noundef 4) #23 %40 = fadd <8 x double> %8, %_4.i22 %41 = fsub <8 x double> %8, %_4.i22 %42 = fadd <8 x double> %_4.i23, %_4.i %43 = fsub <8 x double> %_4.i23, %_4.i %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = fadd <8 x double> %40, %42 store <8 x double> %46, ptr %scratch.0.i, align 8, !alias.scope !987, !noalias !995 %47 = bitcast <8 x i64> %45 to <8 x double> %48 = shufflevector <8 x double> %47, <8 x double> poison, <8 x i32> %49 = fsub <8 x double> %41, %48 store <8 x double> %49, ptr %17, align 8, !alias.scope !987, !noalias !995 %50 = fsub <8 x double> %40, %42 store <8 x double> %50, ptr %16, align 8, !alias.scope !987, !noalias !995 %51 = fadd <8 x double> %41, %48 store <8 x double> %51, ptr %18, align 8, !alias.scope !987, !noalias !995 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0614.us.i.1 = load <2 x float>, ptr %52, align 8, !alias.scope !992, !noalias !994, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1615.us.i.1 = load <2 x float>, ptr %53, align 8, !alias.scope !992, !noalias !994, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0616.us.i.1 = load <2 x float>, ptr %54, align 8, !alias.scope !992, !noalias !994, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1617.us.i.1 = load <2 x float>, ptr %55, align 8, !alias.scope !992, !noalias !994, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0618.us.i.1 = load <2 x float>, ptr %56, align 8, !alias.scope !992, !noalias !994, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1619.us.i.1 = load <2 x float>, ptr %57, align 8, !alias.scope !992, !noalias !994, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0614.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1615.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0616.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1617.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0618.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1619.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %61 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %62 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %63 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %64 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %65 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %66 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %7, align 8, !alias.scope !990, !noalias !996 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !alias.scope !990, !noalias !996 %67 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %68 = fmul <8 x double> %62, %67 %_4.i23.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %61, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %68, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !alias.scope !990, !noalias !996 %69 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %70 = fmul <8 x double> %64, %69 %_4.i22.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %70, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !alias.scope !990, !noalias !996 %71 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %66, %71 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %65, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %72, i32 noundef 4) #23 %73 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i22.1 %74 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i22.1 %75 = fadd <8 x double> %_4.i23.1, %_4.i.1 %76 = fsub <8 x double> %_4.i23.1, %_4.i.1 %77 = bitcast <8 x double> %76 to <8 x i64> %78 = xor <8 x i64> %77, %79 = fadd <8 x double> %73, %75 store <8 x double> %79, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !987, !noalias !995 %80 = bitcast <8 x i64> %78 to <8 x double> %81 = shufflevector <8 x double> %80, <8 x double> poison, <8 x i32> %82 = fsub <8 x double> %74, %81 store <8 x double> %82, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !987, !noalias !995 %83 = fsub <8 x double> %73, %75 store <8 x double> %83, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !987, !noalias !995 %84 = fadd <8 x double> %74, %81 store <8 x double> %84, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !987, !noalias !995 tail call void @llvm.experimental.noalias.scope.decl(metadata !997) tail call void @llvm.experimental.noalias.scope.decl(metadata !1000) tail call void @llvm.experimental.noalias.scope.decl(metadata !1002) %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %87, align 8, !alias.scope !1002, !noalias !1004 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %86, align 8, !alias.scope !1002, !noalias !1004 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %88, align 8, !alias.scope !1002, !noalias !1004 %89 = shufflevector <8 x double> %46, <8 x double> %79, <8 x i32> %90 = shufflevector <8 x double> %46, <8 x double> %79, <8 x i32> %91 = shufflevector <8 x double> %49, <8 x double> %82, <8 x i32> %92 = shufflevector <8 x double> %49, <8 x double> %82, <8 x i32> %93 = shufflevector <8 x double> %89, <8 x double> %91, <8 x i32> %94 = shufflevector <8 x double> %89, <8 x double> %91, <8 x i32> %95 = shufflevector <8 x double> %90, <8 x double> %92, <8 x i32> %96 = shufflevector <8 x double> %90, <8 x double> %92, <8 x i32> %97 = shufflevector <8 x double> %95, <8 x double> poison, <8 x i32> %98 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %99 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %100 = fmul <8 x double> %99, %97 %_4.i26 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %95, <8 x double> %100, i32 noundef 4) #23 %101 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %102 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %103 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %104 = fmul <8 x double> %103, %101 %_4.i25 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %94, <8 x double> %104, i32 noundef 4) #23 %105 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %106 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %107 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %108 = fmul <8 x double> %107, %105 %_4.i24 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %96, <8 x double> %108, i32 noundef 4) #23 %109 = fadd <8 x double> %93, %_4.i25 %110 = fsub <8 x double> %93, %_4.i25 %111 = fadd <8 x double> %_4.i26, %_4.i24 %112 = fsub <8 x double> %_4.i26, %_4.i24 %113 = bitcast <8 x double> %112 to <8 x i64> %114 = xor <8 x i64> %113, %115 = fadd <8 x double> %109, %111 store <8 x double> %115, ptr %buf.0.i, align 8, !alias.scope !997, !noalias !1005 %116 = bitcast <8 x i64> %114 to <8 x double> %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fsub <8 x double> %110, %117 store <8 x double> %118, ptr %_3.i.i.i.i.2, align 8, !alias.scope !997, !noalias !1005 %119 = fsub <8 x double> %109, %111 store <8 x double> %119, ptr %7, align 8, !alias.scope !997, !noalias !1005 %120 = fadd <8 x double> %110, %117 store <8 x double> %120, ptr %85, align 8, !alias.scope !997, !noalias !1005 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %w1.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1002, !noalias !1004 %w2.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !1002, !noalias !1004 %w3.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.1, align 8, !alias.scope !1002, !noalias !1004 %abcd0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %16, align 8, !alias.scope !1000, !noalias !1006 %abcd2.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %18, align 8, !alias.scope !1000, !noalias !1006 %121 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i.1, <8 x double> %83, <8 x i32> %122 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i.1, <8 x double> %83, <8 x i32> %123 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i.1, <8 x double> %84, <8 x i32> %124 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i.1, <8 x double> %84, <8 x i32> %125 = shufflevector <8 x double> %121, <8 x double> %123, <8 x i32> %126 = shufflevector <8 x double> %121, <8 x double> %123, <8 x i32> %127 = shufflevector <8 x double> %122, <8 x double> %124, <8 x i32> %128 = shufflevector <8 x double> %122, <8 x double> %124, <8 x i32> %129 = shufflevector <8 x double> %127, <8 x double> poison, <8 x i32> %130 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %131 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %132 = fmul <8 x double> %131, %129 %_4.i26.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %130, <8 x double> %127, <8 x double> %132, i32 noundef 4) #23 %133 = shufflevector <8 x double> %126, <8 x double> poison, <8 x i32> %134 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %135 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %135, %133 %_4.i25.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %134, <8 x double> %126, <8 x double> %136, i32 noundef 4) #23 %137 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %138 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %139 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %140 = fmul <8 x double> %139, %137 %_4.i24.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %138, <8 x double> %128, <8 x double> %140, i32 noundef 4) #23 %141 = fadd <8 x double> %125, %_4.i25.1 %142 = fsub <8 x double> %125, %_4.i25.1 %143 = fadd <8 x double> %_4.i26.1, %_4.i24.1 %144 = fsub <8 x double> %_4.i26.1, %_4.i24.1 %145 = bitcast <8 x double> %144 to <8 x i64> %146 = xor <8 x i64> %145, %147 = fadd <8 x double> %141, %143 store <8 x double> %147, ptr %_3.i.i.i.i.1, align 8, !alias.scope !997, !noalias !1005 %148 = bitcast <8 x i64> %146 to <8 x double> %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %150 = fsub <8 x double> %142, %149 store <8 x double> %150, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !997, !noalias !1005 %151 = fsub <8 x double> %141, %143 store <8 x double> %151, ptr %_3.i2.i.i.i.1, align 8, !alias.scope !997, !noalias !1005 %152 = fadd <8 x double> %142, %149 store <8 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !997, !noalias !1005 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !984 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint noreturn nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h6a0c2959c1a3677bE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #7 { start: %_13.i.i = alloca %"core::option::Option>", align 8 %_8.i.i = alloca i64, align 8 %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1007) %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1007, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %1, align 8, !alias.scope !1007, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %2, align 8, !alias.scope !1007, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %3, align 8, !alias.scope !1007, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1007 store i64 8, ptr %n.i, align 8, !noalias !1007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1007 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1007 %_12.i = icmp eq i64 %buf.1.i, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1007 store ptr null, ptr %_16.i, align 8, !noalias !1007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1007 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1007 %_20.i = icmp eq i64 %scratch.1.i, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1007 store ptr null, ptr %_24.i, align 8, !noalias !1007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1007 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1007 %_28.i = icmp eq i64 %w_init.1.i, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1007 store ptr null, ptr %_32.i, align 8, !noalias !1007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1007 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1007 %_36.i = icmp eq i64 %w.1.i, 8 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3649d30513dd8aaE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1007 store ptr null, ptr %_40.i, align 8, !noalias !1007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3649d30513dd8aaE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i), !noalias !1010 store i64 1, ptr %_8.i.i, align 8, !noalias !1010 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i), !noalias !1010 store ptr null, ptr %_13.i.i, align 8, !noalias !1010 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9941fe261bb839bc485daec7a55c3e0a) #22 unreachable } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h6c69c2606e9edb8eE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1017) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1017, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1017, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1017, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1017, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1017, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1017, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1017, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1017 store i64 64, ptr %n.i, align 8, !noalias !1017 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1017 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1017 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1017 store ptr null, ptr %_16.i, align 8, !noalias !1017 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1017 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1017 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1017 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1017 store ptr null, ptr %_24.i, align 8, !noalias !1017 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1017 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1017 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1017 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1017 store ptr null, ptr %_32.i, align 8, !noalias !1017 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1017 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1017 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1017 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3bdb52f890d97450E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1017 store ptr null, ptr %_40.i, align 8, !noalias !1017 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3bdb52f890d97450E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1017 tail call void @llvm.experimental.noalias.scope.decl(metadata !1020) tail call void @llvm.experimental.noalias.scope.decl(metadata !1023) tail call void @llvm.experimental.noalias.scope.decl(metadata !1025) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3bdb52f890d97450E.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %20, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3bdb52f890d97450E.exit" ] %20 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1020, !noalias !1027 %21 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %22 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %24 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = bitcast <8 x double> %24 to <8 x i64> %26 = xor <8 x i64> %25, %27 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %28 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %29 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %30 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %31 = bitcast <8 x double> %30 to <8 x i64> %32 = xor <8 x i64> %31, %33 = fadd <8 x double> %21, %23 %34 = bitcast <8 x i64> %26 to <8 x double> %35 = shufflevector <8 x double> %34, <8 x double> poison, <8 x i32> %36 = fsub <8 x double> %22, %35 %37 = fsub <8 x double> %21, %23 %38 = fadd <8 x double> %22, %35 %39 = fadd <8 x double> %27, %29 %40 = bitcast <8 x i64> %32 to <8 x double> %41 = shufflevector <8 x double> %40, <8 x double> poison, <8 x i32> %42 = fsub <8 x double> %28, %41 %43 = bitcast <8 x double> %42 to <8 x i64> %44 = xor <8 x i64> %43, %45 = bitcast <8 x i64> %44 to <8 x double> %46 = shufflevector <8 x double> %45, <8 x double> poison, <8 x i32> %47 = fadd <8 x double> %42, %46 %48 = fmul <8 x double> %47, %49 = fsub <8 x double> %27, %29 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = fadd <8 x double> %28, %41 %53 = bitcast <8 x double> %52 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x i64> %54 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = fadd <8 x double> %52, %56 %58 = fmul <8 x double> %57, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1025, !noalias !1028 %59 = fadd <8 x double> %33, %39 %60 = fadd <8 x double> %36, %48 %61 = shufflevector <8 x double> %60, <8 x double> poison, <8 x i32> %62 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = fmul <8 x double> %63, %61 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %62, <8 x double> %60, <8 x double> %64, i32 noundef 4) #23 %65 = bitcast <8 x i64> %51 to <8 x double> %66 = shufflevector <8 x double> %65, <8 x double> poison, <8 x i32> %67 = fsub <8 x double> %37, %66 %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = fmul <8 x double> %70, %68 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %69, <8 x double> %67, <8 x double> %71, i32 noundef 4) #23 %72 = fsub <8 x double> %38, %58 %73 = shufflevector <8 x double> %72, <8 x double> poison, <8 x i32> %74 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = fmul <8 x double> %75, %73 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %74, <8 x double> %72, <8 x double> %76, i32 noundef 4) #23 %77 = fsub <8 x double> %33, %39 %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %78, %80 %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %77, <8 x double> %81, i32 noundef 4) #23 %82 = fsub <8 x double> %36, %48 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = fmul <8 x double> %85, %83 %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %84, <8 x double> %82, <8 x double> %86, i32 noundef 4) #23 %87 = fadd <8 x double> %37, %66 %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = fmul <8 x double> %90, %88 %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %89, <8 x double> %87, <8 x double> %91, i32 noundef 4) #23 %92 = fadd <8 x double> %38, %58 %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = fmul <8 x double> %95, %93 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %94, <8 x double> %92, <8 x double> %96, i32 noundef 4) #23 %97 = shufflevector <8 x double> %59, <8 x double> %_4.i229, <8 x i32> %98 = shufflevector <8 x double> %59, <8 x double> %_4.i229, <8 x i32> %99 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %100 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %101 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %102 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %105 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %106 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %107 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %108 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> %110 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> store <8 x double> %101, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1023, !noalias !1029 %113 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %109, ptr %113, align 8, !alias.scope !1023, !noalias !1029 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %103, ptr %114, align 8, !alias.scope !1023, !noalias !1029 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %111, ptr %115, align 8, !alias.scope !1023, !noalias !1029 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %102, ptr %116, align 8, !alias.scope !1023, !noalias !1029 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %110, ptr %117, align 8, !alias.scope !1023, !noalias !1029 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %104, ptr %118, align 8, !alias.scope !1023, !noalias !1029 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %112, ptr %119, align 8, !alias.scope !1023, !noalias !1029 %exitcond.not.i = icmp eq i64 %20, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i %120 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !1017 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %122, align 8, !noalias !1017 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %121, align 8, !noalias !1017 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %123, align 8, !noalias !1017 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %120, align 8, !noalias !1017 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %125, align 8, !noalias !1017 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %124, align 8, !noalias !1017 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %126, align 8, !noalias !1017 %127 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %128 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %129 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %130 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %131 = bitcast <8 x double> %130 to <8 x i64> %132 = xor <8 x i64> %131, %133 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %134 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %135 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %136 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %137 = bitcast <8 x double> %136 to <8 x i64> %138 = xor <8 x i64> %137, %139 = fadd <8 x double> %127, %129 %140 = bitcast <8 x i64> %132 to <8 x double> %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fsub <8 x double> %128, %141 %143 = fsub <8 x double> %127, %129 %144 = fadd <8 x double> %128, %141 %145 = fadd <8 x double> %133, %135 %146 = bitcast <8 x i64> %138 to <8 x double> %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %148 = fsub <8 x double> %134, %147 %149 = bitcast <8 x double> %148 to <8 x i64> %150 = xor <8 x i64> %149, %151 = bitcast <8 x i64> %150 to <8 x double> %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fadd <8 x double> %148, %152 %154 = fmul <8 x double> %153, %155 = fsub <8 x double> %133, %135 %156 = bitcast <8 x double> %155 to <8 x i64> %157 = xor <8 x i64> %156, %158 = fadd <8 x double> %134, %147 %159 = bitcast <8 x double> %158 to <8 x i64> %160 = xor <8 x i64> %159, %161 = bitcast <8 x i64> %160 to <8 x double> %162 = shufflevector <8 x double> %161, <8 x double> poison, <8 x i32> %163 = fadd <8 x double> %158, %162 %164 = fmul <8 x double> %163, %165 = fadd <8 x double> %139, %145 %166 = fadd <8 x double> %142, %154 %167 = bitcast <8 x i64> %157 to <8 x double> %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = fsub <8 x double> %143, %168 %170 = fsub <8 x double> %144, %164 %171 = fsub <8 x double> %139, %145 %172 = fsub <8 x double> %142, %154 %173 = fadd <8 x double> %143, %168 %174 = fadd <8 x double> %144, %164 store <8 x double> %165, ptr %buf.0.i, align 8, !noalias !1017 store <8 x double> %166, ptr %8, align 8, !noalias !1017 store <8 x double> %169, ptr %7, align 8, !noalias !1017 store <8 x double> %170, ptr %9, align 8, !noalias !1017 store <8 x double> %171, ptr %6, align 8, !noalias !1017 store <8 x double> %172, ptr %11, align 8, !noalias !1017 store <8 x double> %173, ptr %10, align 8, !noalias !1017 store <8 x double> %174, ptr %12, align 8, !noalias !1017 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.i38.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_120.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_121.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_122.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_123.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_124.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_125.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_126.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %_127.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1017 %175 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %176 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %177 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %178 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %179 = bitcast <8 x double> %178 to <8 x i64> %180 = xor <8 x i64> %179, %181 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %182 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %183 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %184 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %185 = bitcast <8 x double> %184 to <8 x i64> %186 = xor <8 x i64> %185, %187 = fadd <8 x double> %175, %177 %188 = bitcast <8 x i64> %180 to <8 x double> %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = fsub <8 x double> %176, %189 %191 = fsub <8 x double> %175, %177 %192 = fadd <8 x double> %176, %189 %193 = fadd <8 x double> %181, %183 %194 = bitcast <8 x i64> %186 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fsub <8 x double> %182, %195 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fadd <8 x double> %196, %200 %202 = fmul <8 x double> %201, %203 = fsub <8 x double> %181, %183 %204 = bitcast <8 x double> %203 to <8 x i64> %205 = xor <8 x i64> %204, %206 = fadd <8 x double> %182, %195 %207 = bitcast <8 x double> %206 to <8 x i64> %208 = xor <8 x i64> %207, %209 = bitcast <8 x i64> %208 to <8 x double> %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fadd <8 x double> %206, %210 %212 = fmul <8 x double> %211, %213 = fadd <8 x double> %187, %193 %214 = fadd <8 x double> %190, %202 %215 = bitcast <8 x i64> %205 to <8 x double> %216 = shufflevector <8 x double> %215, <8 x double> poison, <8 x i32> %217 = fsub <8 x double> %191, %216 %218 = fsub <8 x double> %192, %212 %219 = fsub <8 x double> %187, %193 %220 = fsub <8 x double> %190, %202 %221 = fadd <8 x double> %191, %216 %222 = fadd <8 x double> %192, %212 store <8 x double> %213, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1, align 8, !noalias !1017 store <8 x double> %214, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1, align 8, !noalias !1017 store <8 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1, align 8, !noalias !1017 store <8 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1, align 8, !noalias !1017 store <8 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1, align 8, !noalias !1017 store <8 x double> %220, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1, align 8, !noalias !1017 store <8 x double> %221, ptr %_3.i.i.i.i.i.i.i35.i.i.i.1, align 8, !noalias !1017 store <8 x double> %222, ptr %_3.i.i.i.i.i38.i.i.i.1, align 8, !noalias !1017 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1017 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h73fbaec53185b3e8E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1030) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1030, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1030, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1030, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1030, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1030, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1030, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1030, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1030, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1030 store i64 256, ptr %n.i, align 8, !noalias !1030 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1030 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1030 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1030 store ptr null, ptr %_16.i, align 8, !noalias !1030 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1030 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1030 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1030 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1030 store ptr null, ptr %_24.i, align 8, !noalias !1030 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1030 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1030 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1030 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1030 store ptr null, ptr %_32.i, align 8, !noalias !1030 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1030 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1030 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1030 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1f3ddbdf44637131E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1030 store ptr null, ptr %_40.i, align 8, !noalias !1030 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1f3ddbdf44637131E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1030 tail call void @llvm.experimental.noalias.scope.decl(metadata !1033) tail call void @llvm.experimental.noalias.scope.decl(metadata !1036) tail call void @llvm.experimental.noalias.scope.decl(metadata !1038) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1f3ddbdf44637131E.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1f3ddbdf44637131E.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1038, !noalias !1040 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1038, !noalias !1040 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1038, !noalias !1040 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1033, !noalias !1041 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1033, !noalias !1041 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1033, !noalias !1041 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1033, !noalias !1041 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = fadd <8 x double> %14, %16 %21 = bitcast <8 x i64> %19 to <8 x double> %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = fsub <8 x double> %15, %22 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %22 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %20, <8 x double> %_4.i172, <8 x i32> %39 = shufflevector <8 x double> %20, <8 x double> %_4.i172, <8 x i32> %40 = shufflevector <8 x double> %_4.i171, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i171, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1036, !noalias !1042 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1036, !noalias !1042 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1036, !noalias !1042 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1036, !noalias !1042 %exitcond.not.i = icmp eq i64 %13, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1043) tail call void @llvm.experimental.noalias.scope.decl(metadata !1046) tail call void @llvm.experimental.noalias.scope.decl(metadata !1048) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1048, !noalias !1050, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1048, !noalias !1050, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1048, !noalias !1050, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1048, !noalias !1050, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1048, !noalias !1050, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1048, !noalias !1050, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1043, !noalias !1051 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1043, !noalias !1051 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1043, !noalias !1051 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1043, !noalias !1051 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = fadd <8 x double> %70, %72 store <8 x double> %76, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1046, !noalias !1052 %77 = bitcast <8 x i64> %75 to <8 x double> %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = fsub <8 x double> %71, %78 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i175 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i175, ptr %62, align 8, !alias.scope !1046, !noalias !1052 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i174 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i174, ptr %61, align 8, !alias.scope !1046, !noalias !1052 %85 = fadd <8 x double> %71, %78 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i173, ptr %63, align 8, !alias.scope !1046, !noalias !1052 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 16 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1053) tail call void @llvm.experimental.noalias.scope.decl(metadata !1056) tail call void @llvm.experimental.noalias.scope.decl(metadata !1058) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %iter.sroa.60.0648.us.i37 = phi i64 [ %179, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !1058, !noalias !1060, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !1058, !noalias !1060, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !1058, !noalias !1060, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !1058, !noalias !1060, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !1058, !noalias !1060, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !1058, !noalias !1060, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !1053, !noalias !1061 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !1053, !noalias !1061 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1053, !noalias !1061 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !1053, !noalias !1061 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = fadd <8 x double> %107, %109 store <8 x double> %113, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1056, !noalias !1062 %114 = bitcast <8 x i64> %112 to <8 x double> %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fsub <8 x double> %108, %115 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i178 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i178, ptr %99, align 8, !alias.scope !1056, !noalias !1062 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i177 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i177, ptr %98, align 8, !alias.scope !1056, !noalias !1062 %122 = fadd <8 x double> %108, %115 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i176 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i176, ptr %100, align 8, !alias.scope !1056, !noalias !1062 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !1053, !noalias !1061 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !1053, !noalias !1061 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1053, !noalias !1061 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1053, !noalias !1061 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = fadd <8 x double> %125, %127 store <8 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1056, !noalias !1062 %132 = bitcast <8 x i64> %130 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fsub <8 x double> %126, %133 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i178.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i178.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1056, !noalias !1062 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i177.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i177.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1056, !noalias !1062 %140 = fadd <8 x double> %126, %133 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i176.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i176.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !1056, !noalias !1062 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !1053, !noalias !1061 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !1053, !noalias !1061 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1053, !noalias !1061 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1053, !noalias !1061 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = fadd <8 x double> %143, %145 store <8 x double> %149, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1056, !noalias !1062 %150 = bitcast <8 x i64> %148 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fsub <8 x double> %144, %151 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i178.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i178.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1056, !noalias !1062 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i177.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i177.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1056, !noalias !1062 %158 = fadd <8 x double> %144, %151 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i176.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i176.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !1056, !noalias !1062 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !1053, !noalias !1061 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !1053, !noalias !1061 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1053, !noalias !1061 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1053, !noalias !1061 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = fadd <8 x double> %161, %163 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1056, !noalias !1062 %168 = bitcast <8 x i64> %166 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = fsub <8 x double> %162, %169 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i178.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i178.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1056, !noalias !1062 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i177.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i177.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1056, !noalias !1062 %176 = fadd <8 x double> %162, %169 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i176.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i176.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !1056, !noalias !1062 %179 = add nuw nsw i64 %iter.sroa.60.0648.us.i37, 1 %exitcond509.not = icmp eq i64 %179, 4 br i1 %exitcond509.not, label %bb26.i.i.i.i.i, label %bb22.us.i36 bb26.i.i.i.i.i: ; preds = %bb22.us.i36, %bb26.i.i.i.i.i %iter7.i.i.i.i.i.sroa.50.0508 = phi i64 [ %180, %bb26.i.i.i.i.i ], [ 0, %bb22.us.i36 ] %180 = add nuw nsw i64 %iter7.i.i.i.i.i.sroa.50.0508, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter7.i.i.i.i.i.sroa.50.0508 %_73.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1030 %_74.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1030 %_75.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1030 %_76.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1030 %181 = fadd <8 x double> %_73.i.i.i.i.i.sroa.0.0.copyload, %_75.i.i.i.i.i.sroa.0.0.copyload %182 = fsub <8 x double> %_73.i.i.i.i.i.sroa.0.0.copyload, %_75.i.i.i.i.i.sroa.0.0.copyload %183 = fadd <8 x double> %_74.i.i.i.i.i.sroa.0.0.copyload, %_76.i.i.i.i.i.sroa.0.0.copyload %184 = fsub <8 x double> %_74.i.i.i.i.i.sroa.0.0.copyload, %_76.i.i.i.i.i.sroa.0.0.copyload %185 = bitcast <8 x double> %184 to <8 x i64> %186 = xor <8 x i64> %185, %187 = fadd <8 x double> %181, %183 %188 = bitcast <8 x i64> %186 to <8 x double> %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = fsub <8 x double> %182, %189 %191 = fsub <8 x double> %181, %183 %192 = fadd <8 x double> %182, %189 store <8 x double> %187, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1030 store <8 x double> %190, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1030 store <8 x double> %191, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1030 store <8 x double> %192, ptr %_3.i.i.i.i, align 8, !noalias !1030 %exitcond510.not = icmp eq i64 %180, 16 br i1 %exitcond510.not, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit", label %bb26.i.i.i.i.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit": ; preds = %bb26.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1030 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h74e12f59a395334cE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1063) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1063, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1063, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1063, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1063, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1063, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1063, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1063, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1063, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1063 store i64 1024, ptr %n.i, align 8, !noalias !1063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1063 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1063 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1063 store ptr null, ptr %_16.i, align 8, !noalias !1063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1063 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1063 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1063 store ptr null, ptr %_24.i, align 8, !noalias !1063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1063 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1063 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1063 store ptr null, ptr %_32.i, align 8, !noalias !1063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1063 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1063 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h933d1702db091472E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1063 store ptr null, ptr %_40.i, align 8, !noalias !1063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h933d1702db091472E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1063 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 br label %bb13.i.i.i bb13.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h933d1702db091472E.exit", %bb13.i.i.i %iter.i.i.i.sroa.22.0610 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h933d1702db091472E.exit" ], [ %10, %bb13.i.i.i ] %10 = add nuw nsw i64 %iter.i.i.i.sroa.22.0610, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.sroa.22.0610 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.sroa.22.0610 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.sroa.22.0610 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.sroa.22.0610 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1066 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1066 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1066 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1066 %11 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %12 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %13 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %14 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %15 = bitcast <8 x double> %14 to <8 x i64> %16 = xor <8 x i64> %15, %17 = bitcast <8 x i64> %16 to <8 x double> %18 = shufflevector <8 x double> %17, <8 x double> poison, <8 x i32> %19 = fadd <8 x double> %11, %13 %20 = fsub <8 x double> %12, %18 %21 = fsub <8 x double> %11, %13 %22 = fadd <8 x double> %12, %18 store <8 x double> %19, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1066 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1066 store <8 x double> %21, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1066 store <8 x double> %22, ptr %_3.i.i.i.i, align 8, !noalias !1066 %exitcond.not = icmp eq i64 %10, 64 br i1 %exitcond.not, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", label %bb13.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit": ; preds = %bb13.i.i.i %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 tail call void @llvm.experimental.noalias.scope.decl(metadata !1070) tail call void @llvm.experimental.noalias.scope.decl(metadata !1073) tail call void @llvm.experimental.noalias.scope.decl(metadata !1075) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 br label %bb22.us.i bb22.us.i: ; preds = %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit", %bb36.bb20.loopexit_crit_edge.us.i %iter.sroa.60.0645.us.i = phi i64 [ %63, %bb36.bb20.loopexit_crit_edge.us.i ], [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.us.i = shl i64 %iter.sroa.60.0645.us.i, 6 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1 %w1.0614.us.i = load <2 x float>, ptr %26, align 8, !alias.scope !1075, !noalias !1077, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %27, align 8, !alias.scope !1075, !noalias !1077, !noundef !3 %28 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2 %w2.0616.us.i = load <2 x float>, ptr %28, align 8, !alias.scope !1075, !noalias !1077, !noundef !3 %29 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %29, align 8, !alias.scope !1075, !noalias !1077, !noundef !3 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3 %w3.0618.us.i = load <2 x float>, ptr %30, align 8, !alias.scope !1075, !noalias !1077, !noundef !3 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %31, align 8, !alias.scope !1075, !noalias !1077, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %32 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %33 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %34 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 32 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 16 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 48 %38 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> zeroinitializer %39 = shufflevector <2 x double> %32, <2 x double> poison, <8 x i32> %40 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> zeroinitializer %41 = shufflevector <2 x double> %33, <2 x double> poison, <8 x i32> %42 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> zeroinitializer %43 = shufflevector <2 x double> %34, <2 x double> poison, <8 x i32> br label %bb38.us.i bb38.us.i: ; preds = %bb38.us.i, %bb22.us.i %iter5.sroa.50.0632.us.i = phi i64 [ 0, %bb22.us.i ], [ %44, %bb38.us.i ] %44 = add nuw nsw i64 %iter5.sroa.50.0632.us.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %37, i64 %iter5.sroa.50.0632.us.i %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1073, !noalias !1078 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1073, !noalias !1078 %45 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %46 = fmul <8 x double> %39, %45 %_4.i200 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %38, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %46, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i, align 8, !alias.scope !1073, !noalias !1078 %47 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %48 = fmul <8 x double> %41, %47 %_4.i199 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %48, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.us.i, align 8, !alias.scope !1073, !noalias !1078 %49 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %50 = fmul <8 x double> %43, %49 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %42, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %50, i32 noundef 4) #23 %51 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i199 %52 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i199 %53 = fadd <8 x double> %_4.i200, %_4.i %54 = fsub <8 x double> %_4.i200, %_4.i %55 = bitcast <8 x double> %54 to <8 x i64> %56 = xor <8 x i64> %55, %57 = bitcast <8 x i64> %56 to <8 x double> %58 = shufflevector <8 x double> %57, <8 x double> poison, <8 x i32> %59 = fadd <8 x double> %51, %53 store <8 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1070, !noalias !1079 %60 = fsub <8 x double> %52, %58 store <8 x double> %60, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1070, !noalias !1079 %61 = fsub <8 x double> %51, %53 store <8 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1070, !noalias !1079 %62 = fadd <8 x double> %52, %58 store <8 x double> %62, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1070, !noalias !1079 %exitcond.not.i = icmp eq i64 %44, 16 br i1 %exitcond.not.i, label %bb36.bb20.loopexit_crit_edge.us.i, label %bb38.us.i bb36.bb20.loopexit_crit_edge.us.i: ; preds = %bb38.us.i %63 = add nuw nsw i64 %iter.sroa.60.0645.us.i, 1 %exitcond611.not = icmp eq i64 %63, 4 br i1 %exitcond611.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, label %bb22.us.i _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit: ; preds = %bb36.bb20.loopexit_crit_edge.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1080) tail call void @llvm.experimental.noalias.scope.decl(metadata !1083) tail call void @llvm.experimental.noalias.scope.decl(metadata !1085) br label %bb22.us.i67 bb22.us.i67: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, %bb22.us.i67 %iter.sroa.60.0645.us.i68 = phi i64 [ %154, %bb22.us.i67 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69 = shl i64 %iter.sroa.60.0645.us.i68, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69 %start1.i.i.i.i.us.i71 = shl i64 %iter.sroa.60.0645.us.i68, 4 %data.i.i.i.i.i.i.us.i72 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i71 %data.i.i.i.i.i.i.i.i.us.i73 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69 %data.i.i.i.i.i.i.i.i.i.i.us.i74 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i71, i64 1 %w1.0614.us.i76 = load <2 x float>, ptr %64, align 8, !alias.scope !1085, !noalias !1087, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i71, i64 1, i32 1 %w1.1615.us.i77 = load <2 x float>, ptr %65, align 8, !alias.scope !1085, !noalias !1087, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i71, i64 2 %w2.0616.us.i78 = load <2 x float>, ptr %66, align 8, !alias.scope !1085, !noalias !1087, !noundef !3 %67 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i71, i64 2, i32 1 %w2.1617.us.i79 = load <2 x float>, ptr %67, align 8, !alias.scope !1085, !noalias !1087, !noundef !3 %68 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i71, i64 3 %w3.0618.us.i80 = load <2 x float>, ptr %68, align 8, !alias.scope !1085, !noalias !1087, !noundef !3 %69 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i71, i64 3, i32 1 %w3.1619.us.i81 = load <2 x float>, ptr %69, align 8, !alias.scope !1085, !noalias !1087, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i82 = shufflevector <2 x float> %w1.0614.us.i76, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i83 = shufflevector <2 x float> %w1.1615.us.i77, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i84 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i82, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i83, <4 x i32> %70 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i84 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i86 = shufflevector <2 x float> %w2.0616.us.i78, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i87 = shufflevector <2 x float> %w2.1617.us.i79, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i88 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i86, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i87, <4 x i32> %71 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i88 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i90 = shufflevector <2 x float> %w3.0618.us.i80, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i91 = shufflevector <2 x float> %w3.1619.us.i81, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i92 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i90, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i91, <4 x i32> %72 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i92 to <2 x double> %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 8 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 4 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 12 %76 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> zeroinitializer %77 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> %78 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> zeroinitializer %79 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> %80 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> zeroinitializer %81 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i104 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i72, align 8, !alias.scope !1083, !noalias !1088 %_84.sroa.0.0.copyload.us.i105 = load <8 x double>, ptr %74, align 8, !alias.scope !1083, !noalias !1088 %82 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i105, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %77, %82 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i105, <8 x double> %83, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i107 = load <8 x double>, ptr %73, align 8, !alias.scope !1083, !noalias !1088 %84 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i107, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %79, %84 %_4.i202 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i107, <8 x double> %85, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i109 = load <8 x double>, ptr %75, align 8, !alias.scope !1083, !noalias !1088 %86 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i109, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %81, %86 %_4.i201 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i109, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %a.sroa.0.0.copyload.us.i104, %_4.i202 %89 = fsub <8 x double> %a.sroa.0.0.copyload.us.i104, %_4.i202 %90 = fadd <8 x double> %_4.i203, %_4.i201 %91 = fsub <8 x double> %_4.i203, %_4.i201 %92 = bitcast <8 x double> %91 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x i64> %93 to <8 x double> %95 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %96 = fadd <8 x double> %88, %90 store <8 x double> %96, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70, align 8, !alias.scope !1080, !noalias !1089 %97 = fsub <8 x double> %89, %95 store <8 x double> %97, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75, align 8, !alias.scope !1080, !noalias !1089 %98 = fsub <8 x double> %88, %90 store <8 x double> %98, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i74, align 8, !alias.scope !1080, !noalias !1089 %99 = fadd <8 x double> %89, %95 store <8 x double> %99, ptr %data.i.i.i.i.i.i.i.i.us.i73, align 8, !alias.scope !1080, !noalias !1089 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i74, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i73, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i100.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 1 %_3.i.i.i.i.i.i.i.i.us.i101.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 5 %_3.i.i.i.i.i.i.us.i102.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 9 %_3.i.i.i.i.us.i103.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 13 %a.sroa.0.0.copyload.us.i104.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i100.1, align 8, !alias.scope !1083, !noalias !1088 %_84.sroa.0.0.copyload.us.i105.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i101.1, align 8, !alias.scope !1083, !noalias !1088 %100 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i105.1, <8 x double> poison, <8 x i32> %101 = fmul <8 x double> %77, %100 %_4.i203.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i105.1, <8 x double> %101, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i107.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i102.1, align 8, !alias.scope !1083, !noalias !1088 %102 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i107.1, <8 x double> poison, <8 x i32> %103 = fmul <8 x double> %79, %102 %_4.i202.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i107.1, <8 x double> %103, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i109.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i103.1, align 8, !alias.scope !1083, !noalias !1088 %104 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i109.1, <8 x double> poison, <8 x i32> %105 = fmul <8 x double> %81, %104 %_4.i201.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i109.1, <8 x double> %105, i32 noundef 4) #23 %106 = fadd <8 x double> %a.sroa.0.0.copyload.us.i104.1, %_4.i202.1 %107 = fsub <8 x double> %a.sroa.0.0.copyload.us.i104.1, %_4.i202.1 %108 = fadd <8 x double> %_4.i203.1, %_4.i201.1 %109 = fsub <8 x double> %_4.i203.1, %_4.i201.1 %110 = bitcast <8 x double> %109 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fadd <8 x double> %106, %108 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.1, align 8, !alias.scope !1080, !noalias !1089 %115 = fsub <8 x double> %107, %113 store <8 x double> %115, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.1, align 8, !alias.scope !1080, !noalias !1089 %116 = fsub <8 x double> %106, %108 store <8 x double> %116, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.1, align 8, !alias.scope !1080, !noalias !1089 %117 = fadd <8 x double> %107, %113 store <8 x double> %117, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1, align 8, !alias.scope !1080, !noalias !1089 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i74, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i73, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i100.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 2 %_3.i.i.i.i.i.i.i.i.us.i101.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 6 %_3.i.i.i.i.i.i.us.i102.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 10 %_3.i.i.i.i.us.i103.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 14 %a.sroa.0.0.copyload.us.i104.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i100.2, align 8, !alias.scope !1083, !noalias !1088 %_84.sroa.0.0.copyload.us.i105.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i101.2, align 8, !alias.scope !1083, !noalias !1088 %118 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i105.2, <8 x double> poison, <8 x i32> %119 = fmul <8 x double> %77, %118 %_4.i203.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i105.2, <8 x double> %119, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i107.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i102.2, align 8, !alias.scope !1083, !noalias !1088 %120 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i107.2, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %79, %120 %_4.i202.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i107.2, <8 x double> %121, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i109.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i103.2, align 8, !alias.scope !1083, !noalias !1088 %122 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i109.2, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %81, %122 %_4.i201.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i109.2, <8 x double> %123, i32 noundef 4) #23 %124 = fadd <8 x double> %a.sroa.0.0.copyload.us.i104.2, %_4.i202.2 %125 = fsub <8 x double> %a.sroa.0.0.copyload.us.i104.2, %_4.i202.2 %126 = fadd <8 x double> %_4.i203.2, %_4.i201.2 %127 = fsub <8 x double> %_4.i203.2, %_4.i201.2 %128 = bitcast <8 x double> %127 to <8 x i64> %129 = xor <8 x i64> %128, %130 = bitcast <8 x i64> %129 to <8 x double> %131 = shufflevector <8 x double> %130, <8 x double> poison, <8 x i32> %132 = fadd <8 x double> %124, %126 store <8 x double> %132, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.2, align 8, !alias.scope !1080, !noalias !1089 %133 = fsub <8 x double> %125, %131 store <8 x double> %133, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.2, align 8, !alias.scope !1080, !noalias !1089 %134 = fsub <8 x double> %124, %126 store <8 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.2, align 8, !alias.scope !1080, !noalias !1089 %135 = fadd <8 x double> %125, %131 store <8 x double> %135, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.2, align 8, !alias.scope !1080, !noalias !1089 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i74, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i73, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i100.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 3 %_3.i.i.i.i.i.i.i.i.us.i101.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 7 %_3.i.i.i.i.i.i.us.i102.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 11 %_3.i.i.i.i.us.i103.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i72, i64 15 %a.sroa.0.0.copyload.us.i104.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i100.3, align 8, !alias.scope !1083, !noalias !1088 %_84.sroa.0.0.copyload.us.i105.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i101.3, align 8, !alias.scope !1083, !noalias !1088 %136 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i105.3, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %77, %136 %_4.i203.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %76, <8 x double> %_84.sroa.0.0.copyload.us.i105.3, <8 x double> %137, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i107.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i102.3, align 8, !alias.scope !1083, !noalias !1088 %138 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i107.3, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %79, %138 %_4.i202.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %_86.sroa.0.0.copyload.us.i107.3, <8 x double> %139, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i109.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i103.3, align 8, !alias.scope !1083, !noalias !1088 %140 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i109.3, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %81, %140 %_4.i201.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %_88.sroa.0.0.copyload.us.i109.3, <8 x double> %141, i32 noundef 4) #23 %142 = fadd <8 x double> %a.sroa.0.0.copyload.us.i104.3, %_4.i202.3 %143 = fsub <8 x double> %a.sroa.0.0.copyload.us.i104.3, %_4.i202.3 %144 = fadd <8 x double> %_4.i203.3, %_4.i201.3 %145 = fsub <8 x double> %_4.i203.3, %_4.i201.3 %146 = bitcast <8 x double> %145 to <8 x i64> %147 = xor <8 x i64> %146, %148 = bitcast <8 x i64> %147 to <8 x double> %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %150 = fadd <8 x double> %142, %144 store <8 x double> %150, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.3, align 8, !alias.scope !1080, !noalias !1089 %151 = fsub <8 x double> %143, %149 store <8 x double> %151, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i97.3, align 8, !alias.scope !1080, !noalias !1089 %152 = fsub <8 x double> %142, %144 store <8 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i98.3, align 8, !alias.scope !1080, !noalias !1089 %153 = fadd <8 x double> %143, %149 store <8 x double> %153, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.3, align 8, !alias.scope !1080, !noalias !1089 %154 = add nuw nsw i64 %iter.sroa.60.0645.us.i68, 1 %exitcond612.not = icmp eq i64 %154, 16 br i1 %exitcond612.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit123, label %bb22.us.i67 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit123: ; preds = %bb22.us.i67 tail call void @llvm.experimental.noalias.scope.decl(metadata !1090) tail call void @llvm.experimental.noalias.scope.decl(metadata !1093) tail call void @llvm.experimental.noalias.scope.decl(metadata !1095) br label %bb22.us.i139 bb22.us.i139: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit123, %bb22.us.i139 %iter.sroa.60.0645.us.i140 = phi i64 [ %191, %bb22.us.i139 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit123 ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i141 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i140 %start1.i.i.i.i.us.i142 = shl i64 %iter.sroa.60.0645.us.i140, 2 %data.i.i.i.i.i.i.us.i143 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i142 %data.i.i.i.i.i.i.i.i.us.i144 = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.60.0645.us.i140 %data.i.i.i.i.i.i.i.i.i.i.us.i145 = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.60.0645.us.i140 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i146 = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.60.0645.us.i140 %155 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i142, i64 1 %w1.0614.us.i147 = load <2 x float>, ptr %155, align 8, !alias.scope !1095, !noalias !1097, !noundef !3 %156 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i142, i64 1, i32 1 %w1.1615.us.i148 = load <2 x float>, ptr %156, align 8, !alias.scope !1095, !noalias !1097, !noundef !3 %157 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i142, i64 2 %w2.0616.us.i149 = load <2 x float>, ptr %157, align 8, !alias.scope !1095, !noalias !1097, !noundef !3 %158 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i142, i64 2, i32 1 %w2.1617.us.i150 = load <2 x float>, ptr %158, align 8, !alias.scope !1095, !noalias !1097, !noundef !3 %159 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i142, i64 3 %w3.0618.us.i151 = load <2 x float>, ptr %159, align 8, !alias.scope !1095, !noalias !1097, !noundef !3 %160 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i142, i64 3, i32 1 %w3.1619.us.i152 = load <2 x float>, ptr %160, align 8, !alias.scope !1095, !noalias !1097, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i153 = shufflevector <2 x float> %w1.0614.us.i147, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i154 = shufflevector <2 x float> %w1.1615.us.i148, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i155 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i153, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i154, <4 x i32> %161 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i155 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i157 = shufflevector <2 x float> %w2.0616.us.i149, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i158 = shufflevector <2 x float> %w2.1617.us.i150, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i159 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i157, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i158, <4 x i32> %162 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i159 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i161 = shufflevector <2 x float> %w3.0618.us.i151, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i162 = shufflevector <2 x float> %w3.1619.us.i152, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i163 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i161, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i162, <4 x i32> %163 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i163 to <2 x double> %164 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i143, i64 2 %165 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i143, i64 1 %166 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i143, i64 3 %167 = shufflevector <2 x double> %161, <2 x double> poison, <8 x i32> zeroinitializer %168 = shufflevector <2 x double> %161, <2 x double> poison, <8 x i32> %169 = shufflevector <2 x double> %162, <2 x double> poison, <8 x i32> zeroinitializer %170 = shufflevector <2 x double> %162, <2 x double> poison, <8 x i32> %171 = shufflevector <2 x double> %163, <2 x double> poison, <8 x i32> zeroinitializer %172 = shufflevector <2 x double> %163, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i175 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i143, align 8, !alias.scope !1093, !noalias !1098 %_84.sroa.0.0.copyload.us.i176 = load <8 x double>, ptr %165, align 8, !alias.scope !1093, !noalias !1098 %173 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i176, <8 x double> poison, <8 x i32> %174 = fmul <8 x double> %168, %173 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %167, <8 x double> %_84.sroa.0.0.copyload.us.i176, <8 x double> %174, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i178 = load <8 x double>, ptr %164, align 8, !alias.scope !1093, !noalias !1098 %175 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i178, <8 x double> poison, <8 x i32> %176 = fmul <8 x double> %170, %175 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %_86.sroa.0.0.copyload.us.i178, <8 x double> %176, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i180 = load <8 x double>, ptr %166, align 8, !alias.scope !1093, !noalias !1098 %177 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i180, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %172, %177 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %171, <8 x double> %_88.sroa.0.0.copyload.us.i180, <8 x double> %178, i32 noundef 4) #23 %179 = fadd <8 x double> %a.sroa.0.0.copyload.us.i175, %_4.i205 %180 = fsub <8 x double> %a.sroa.0.0.copyload.us.i175, %_4.i205 %181 = fadd <8 x double> %_4.i206, %_4.i204 %182 = fsub <8 x double> %_4.i206, %_4.i204 %183 = bitcast <8 x double> %182 to <8 x i64> %184 = xor <8 x i64> %183, %185 = bitcast <8 x i64> %184 to <8 x double> %186 = shufflevector <8 x double> %185, <8 x double> poison, <8 x i32> %187 = fadd <8 x double> %179, %181 store <8 x double> %187, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i141, align 8, !alias.scope !1090, !noalias !1099 %188 = fsub <8 x double> %180, %186 store <8 x double> %188, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i146, align 8, !alias.scope !1090, !noalias !1099 %189 = fsub <8 x double> %179, %181 store <8 x double> %189, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i145, align 8, !alias.scope !1090, !noalias !1099 %190 = fadd <8 x double> %180, %186 store <8 x double> %190, ptr %data.i.i.i.i.i.i.i.i.us.i144, align 8, !alias.scope !1090, !noalias !1099 %191 = add nuw nsw i64 %iter.sroa.60.0645.us.i140, 1 %exitcond613.not = icmp eq i64 %191, 64 br i1 %exitcond613.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit194, label %bb22.us.i139 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit194: ; preds = %bb22.us.i139 tail call void @llvm.experimental.noalias.scope.decl(metadata !1100) tail call void @llvm.experimental.noalias.scope.decl(metadata !1103) tail call void @llvm.experimental.noalias.scope.decl(metadata !1105) %192 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %193 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %194 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 br label %bb15.i197 bb15.i197: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit194, %bb15.i197 %iter.sroa.50.0449.i = phi i64 [ %195, %bb15.i197 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit194 ] %195 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %193, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %192, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %194, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1105, !noalias !1107 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1105, !noalias !1107 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1105, !noalias !1107 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1103, !noalias !1108 %196 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %196, align 8, !alias.scope !1103, !noalias !1108 %197 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %197, align 8, !alias.scope !1103, !noalias !1108 %198 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %198, align 8, !alias.scope !1103, !noalias !1108 %199 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %200 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %201 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %202 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %203 = shufflevector <8 x double> %199, <8 x double> %201, <8 x i32> %204 = shufflevector <8 x double> %199, <8 x double> %201, <8 x i32> %205 = shufflevector <8 x double> %200, <8 x double> %202, <8 x i32> %206 = shufflevector <8 x double> %200, <8 x double> %202, <8 x i32> %207 = shufflevector <8 x double> %205, <8 x double> poison, <8 x i32> %208 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %209 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %210 = fmul <8 x double> %209, %207 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %208, <8 x double> %205, <8 x double> %210, i32 noundef 4) #23 %211 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %212 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %213 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %214 = fmul <8 x double> %213, %211 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %212, <8 x double> %204, <8 x double> %214, i32 noundef 4) #23 %215 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %218 = fmul <8 x double> %217, %215 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %216, <8 x double> %206, <8 x double> %218, i32 noundef 4) #23 %219 = fadd <8 x double> %203, %_4.i208 %220 = fsub <8 x double> %203, %_4.i208 %221 = fadd <8 x double> %_4.i209, %_4.i207 %222 = fsub <8 x double> %_4.i209, %_4.i207 %223 = bitcast <8 x double> %222 to <8 x i64> %224 = xor <8 x i64> %223, %225 = bitcast <8 x i64> %224 to <8 x double> %226 = shufflevector <8 x double> %225, <8 x double> poison, <8 x i32> %227 = fadd <8 x double> %219, %221 store <8 x double> %227, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1100, !noalias !1109 %228 = fsub <8 x double> %220, %226 store <8 x double> %228, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1100, !noalias !1109 %229 = fsub <8 x double> %219, %221 store <8 x double> %229, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1100, !noalias !1109 %230 = fadd <8 x double> %220, %226 store <8 x double> %230, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1100, !noalias !1109 %exitcond.not.i198 = icmp eq i64 %195, 64 br i1 %exitcond.not.i198, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i197 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i197 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1063 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h7574dcdf5e4202faE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1110) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1110, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1110, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1110, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1110, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1110, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1110, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1110, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1110, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1110 store i64 512, ptr %n.i, align 8, !noalias !1110 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1110 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1110 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1110 store ptr null, ptr %_16.i, align 8, !noalias !1110 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1110 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1110 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1110 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1110 store ptr null, ptr %_24.i, align 8, !noalias !1110 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1110 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1110 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1110 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1110 store ptr null, ptr %_32.i, align 8, !noalias !1110 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1110 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1110 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1110 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0bc2333acc2e9e25E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1110 store ptr null, ptr %_40.i, align 8, !noalias !1110 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0bc2333acc2e9e25E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1110 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0bc2333acc2e9e25E.exit" %iter.i.i.i.i.sroa.8.0521 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0bc2333acc2e9e25E.exit" ], [ %11, %bb9.i.i.i.i ] %8 = or disjoint i64 %iter.i.i.i.i.sroa.8.0521, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.0521 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.0521 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1110 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !1110 %9 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %10 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %9, ptr %_3.i.i.i.i, align 8, !noalias !1110 store <8 x double> %10, ptr %_3.i2.i.i.i, align 8, !noalias !1110 %11 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.0521, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %8 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %8 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1110 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1110 %12 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %13 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %12, ptr %_3.i.i.i.i.1, align 8, !noalias !1110 store <8 x double> %13, ptr %_3.i2.i.i.i.1, align 8, !noalias !1110 %exitcond.not.1 = icmp eq i64 %11, 64 br i1 %exitcond.not.1, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit", label %bb9.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit": ; preds = %bb9.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1113) tail call void @llvm.experimental.noalias.scope.decl(metadata !1116) tail call void @llvm.experimental.noalias.scope.decl(metadata !1118) %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %17 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0614.us.i = load <2 x float>, ptr %17, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %18 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %18, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %19 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0616.us.i = load <2 x float>, ptr %19, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %20, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0618.us.i = load <2 x float>, ptr %21, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %22, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %23 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %24 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %25 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %29 = shufflevector <2 x double> %23, <2 x double> poison, <8 x i32> zeroinitializer %30 = shufflevector <2 x double> %23, <2 x double> poison, <8 x i32> %31 = shufflevector <2 x double> %24, <2 x double> poison, <8 x i32> zeroinitializer %32 = shufflevector <2 x double> %24, <2 x double> poison, <8 x i32> %33 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> zeroinitializer %34 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> br label %bb38.us.i bb38.us.i: ; preds = %bb38.us.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit" %iter5.sroa.50.0632.us.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E.exit" ], [ %35, %bb38.us.i ] %35 = add nuw nsw i64 %iter5.sroa.50.0632.us.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter5.sroa.50.0632.us.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter5.sroa.50.0632.us.i %_3.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter5.sroa.50.0632.us.i %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1116, !noalias !1121 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1116, !noalias !1121 %36 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %30, %36 %_4.i170 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %29, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %37, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i, align 8, !alias.scope !1116, !noalias !1121 %38 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %39 = fmul <8 x double> %32, %38 %_4.i169 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %31, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %39, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %_3.i.i.i.i.us.i, align 8, !alias.scope !1116, !noalias !1121 %40 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %41 = fmul <8 x double> %34, %40 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %33, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %41, i32 noundef 4) #23 %42 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i169 %43 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i169 %44 = fadd <8 x double> %_4.i170, %_4.i %45 = fsub <8 x double> %_4.i170, %_4.i %46 = bitcast <8 x double> %45 to <8 x i64> %47 = xor <8 x i64> %46, %48 = fadd <8 x double> %42, %44 store <8 x double> %48, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1113, !noalias !1122 %49 = bitcast <8 x i64> %47 to <8 x double> %50 = shufflevector <8 x double> %49, <8 x double> poison, <8 x i32> %51 = fsub <8 x double> %43, %50 store <8 x double> %51, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1113, !noalias !1122 %52 = fsub <8 x double> %42, %44 store <8 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1113, !noalias !1122 %53 = fadd <8 x double> %43, %50 store <8 x double> %53, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1113, !noalias !1122 %exitcond.not.i = icmp eq i64 %35, 16 br i1 %exitcond.not.i, label %bb36.bb20.loopexit_crit_edge.us.i, label %bb38.us.i bb36.bb20.loopexit_crit_edge.us.i: ; preds = %bb38.us.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1 %w1.0614.us.i.1 = load <2 x float>, ptr %54, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1, i32 1 %w1.1615.us.i.1 = load <2 x float>, ptr %55, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2 %w2.0616.us.i.1 = load <2 x float>, ptr %56, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2, i32 1 %w2.1617.us.i.1 = load <2 x float>, ptr %57, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3 %w3.0618.us.i.1 = load <2 x float>, ptr %58, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %59 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3, i32 1 %w3.1619.us.i.1 = load <2 x float>, ptr %59, align 8, !alias.scope !1118, !noalias !1120, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0614.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1615.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %60 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0616.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1617.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %61 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0618.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1619.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %62 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %64 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %65 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %66 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> %70 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> zeroinitializer %71 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> br label %bb38.us.i.1 bb38.us.i.1: ; preds = %bb38.us.i.1, %bb36.bb20.loopexit_crit_edge.us.i %iter5.sroa.50.0632.us.i.1 = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i ], [ %72, %bb38.us.i.1 ] %72 = add nuw nsw i64 %iter5.sroa.50.0632.us.i.1, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i.1, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %64, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %63, i64 %iter5.sroa.50.0632.us.i.1 %_3.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %65, i64 %iter5.sroa.50.0632.us.i.1 %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1116, !noalias !1121 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1116, !noalias !1121 %73 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %74 = fmul <8 x double> %67, %73 %_4.i170.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %74, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1116, !noalias !1121 %75 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %76 = fmul <8 x double> %69, %75 %_4.i169.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %76, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i.1, align 8, !alias.scope !1116, !noalias !1121 %77 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %78 = fmul <8 x double> %71, %77 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %78, i32 noundef 4) #23 %79 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i169.1 %80 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i169.1 %81 = fadd <8 x double> %_4.i170.1, %_4.i.1 %82 = fsub <8 x double> %_4.i170.1, %_4.i.1 %83 = bitcast <8 x double> %82 to <8 x i64> %84 = xor <8 x i64> %83, %85 = fadd <8 x double> %79, %81 store <8 x double> %85, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1113, !noalias !1122 %86 = bitcast <8 x i64> %84 to <8 x double> %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = fsub <8 x double> %80, %87 store <8 x double> %88, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1113, !noalias !1122 %89 = fsub <8 x double> %79, %81 store <8 x double> %89, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1113, !noalias !1122 %90 = fadd <8 x double> %80, %87 store <8 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1113, !noalias !1122 %exitcond.not.i.1 = icmp eq i64 %72, 16 br i1 %exitcond.not.i.1, label %bb36.bb20.loopexit_crit_edge.us.i.1, label %bb38.us.i.1 bb36.bb20.loopexit_crit_edge.us.i.1: ; preds = %bb38.us.i.1 tail call void @llvm.experimental.noalias.scope.decl(metadata !1123) tail call void @llvm.experimental.noalias.scope.decl(metadata !1126) tail call void @llvm.experimental.noalias.scope.decl(metadata !1128) %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 br label %bb22.us.i37 bb22.us.i37: ; preds = %bb36.bb20.loopexit_crit_edge.us.i.1, %bb22.us.i37 %iter.sroa.60.0645.us.i38 = phi i64 [ %182, %bb22.us.i37 ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 = shl i64 %iter.sroa.60.0645.us.i38, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %start1.i.i.i.i.us.i41 = shl i64 %iter.sroa.60.0645.us.i38, 4 %data.i.i.i.i.i.i.us.i42 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i41 %data.i.i.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %data.i.i.i.i.i.i.i.i.i.i.us.i44 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45 = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 1 %w1.0614.us.i46 = load <2 x float>, ptr %92, align 8, !alias.scope !1128, !noalias !1130, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 1, i32 1 %w1.1615.us.i47 = load <2 x float>, ptr %93, align 8, !alias.scope !1128, !noalias !1130, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 2 %w2.0616.us.i48 = load <2 x float>, ptr %94, align 8, !alias.scope !1128, !noalias !1130, !noundef !3 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 2, i32 1 %w2.1617.us.i49 = load <2 x float>, ptr %95, align 8, !alias.scope !1128, !noalias !1130, !noundef !3 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 3 %w3.0618.us.i50 = load <2 x float>, ptr %96, align 8, !alias.scope !1128, !noalias !1130, !noundef !3 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i41, i64 3, i32 1 %w3.1619.us.i51 = load <2 x float>, ptr %97, align 8, !alias.scope !1128, !noalias !1130, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i52 = shufflevector <2 x float> %w1.0614.us.i46, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i53 = shufflevector <2 x float> %w1.1615.us.i47, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i54 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i52, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i53, <4 x i32> %98 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i54 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i56 = shufflevector <2 x float> %w2.0616.us.i48, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i57 = shufflevector <2 x float> %w2.1617.us.i49, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i58 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i56, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i57, <4 x i32> %99 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i58 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i60 = shufflevector <2 x float> %w3.0618.us.i50, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i61 = shufflevector <2 x float> %w3.1619.us.i51, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i62 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i60, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i61, <4 x i32> %100 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i62 to <2 x double> %101 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 8 %102 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 4 %103 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 12 %104 = shufflevector <2 x double> %98, <2 x double> poison, <8 x i32> zeroinitializer %105 = shufflevector <2 x double> %98, <2 x double> poison, <8 x i32> %106 = shufflevector <2 x double> %99, <2 x double> poison, <8 x i32> zeroinitializer %107 = shufflevector <2 x double> %99, <2 x double> poison, <8 x i32> %108 = shufflevector <2 x double> %100, <2 x double> poison, <8 x i32> zeroinitializer %109 = shufflevector <2 x double> %100, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i42, align 8, !alias.scope !1126, !noalias !1131 %_84.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %102, align 8, !alias.scope !1126, !noalias !1131 %110 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75, <8 x double> poison, <8 x i32> %111 = fmul <8 x double> %105, %110 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75, <8 x double> %111, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77 = load <8 x double>, ptr %101, align 8, !alias.scope !1126, !noalias !1131 %112 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77, <8 x double> poison, <8 x i32> %113 = fmul <8 x double> %107, %112 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77, <8 x double> %113, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79 = load <8 x double>, ptr %103, align 8, !alias.scope !1126, !noalias !1131 %114 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79, <8 x double> poison, <8 x i32> %115 = fmul <8 x double> %109, %114 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79, <8 x double> %115, i32 noundef 4) #23 %116 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74, %_4.i172 %117 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74, %_4.i172 %118 = fadd <8 x double> %_4.i173, %_4.i171 %119 = fsub <8 x double> %_4.i173, %_4.i171 %120 = bitcast <8 x double> %119 to <8 x i64> %121 = xor <8 x i64> %120, %122 = fadd <8 x double> %116, %118 store <8 x double> %122, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1123, !noalias !1132 %123 = bitcast <8 x i64> %121 to <8 x double> %124 = shufflevector <8 x double> %123, <8 x double> poison, <8 x i32> %125 = fsub <8 x double> %117, %124 store <8 x double> %125, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, align 8, !alias.scope !1123, !noalias !1132 %126 = fsub <8 x double> %116, %118 store <8 x double> %126, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, align 8, !alias.scope !1123, !noalias !1132 %127 = fadd <8 x double> %117, %124 store <8 x double> %127, ptr %data.i.i.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1123, !noalias !1132 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 1 %_3.i.i.i.i.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 5 %_3.i.i.i.i.i.i.us.i72.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 9 %_3.i.i.i.i.us.i73.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 13 %a.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1126, !noalias !1131 %_84.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i71.1, align 8, !alias.scope !1126, !noalias !1131 %128 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75.1, <8 x double> poison, <8 x i32> %129 = fmul <8 x double> %105, %128 %_4.i173.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75.1, <8 x double> %129, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i72.1, align 8, !alias.scope !1126, !noalias !1131 %130 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77.1, <8 x double> poison, <8 x i32> %131 = fmul <8 x double> %107, %130 %_4.i172.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77.1, <8 x double> %131, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i73.1, align 8, !alias.scope !1126, !noalias !1131 %132 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79.1, <8 x double> poison, <8 x i32> %133 = fmul <8 x double> %109, %132 %_4.i171.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79.1, <8 x double> %133, i32 noundef 4) #23 %134 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74.1, %_4.i172.1 %135 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74.1, %_4.i172.1 %136 = fadd <8 x double> %_4.i173.1, %_4.i171.1 %137 = fsub <8 x double> %_4.i173.1, %_4.i171.1 %138 = bitcast <8 x double> %137 to <8 x i64> %139 = xor <8 x i64> %138, %140 = fadd <8 x double> %134, %136 store <8 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1123, !noalias !1132 %141 = bitcast <8 x i64> %139 to <8 x double> %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %143 = fsub <8 x double> %135, %142 store <8 x double> %143, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1123, !noalias !1132 %144 = fsub <8 x double> %134, %136 store <8 x double> %144, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1123, !noalias !1132 %145 = fadd <8 x double> %135, %142 store <8 x double> %145, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1123, !noalias !1132 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 2 %_3.i.i.i.i.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 6 %_3.i.i.i.i.i.i.us.i72.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 10 %_3.i.i.i.i.us.i73.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 14 %a.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1126, !noalias !1131 %_84.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i71.2, align 8, !alias.scope !1126, !noalias !1131 %146 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75.2, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %105, %146 %_4.i173.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75.2, <8 x double> %147, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i72.2, align 8, !alias.scope !1126, !noalias !1131 %148 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77.2, <8 x double> poison, <8 x i32> %149 = fmul <8 x double> %107, %148 %_4.i172.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77.2, <8 x double> %149, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i73.2, align 8, !alias.scope !1126, !noalias !1131 %150 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79.2, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %109, %150 %_4.i171.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79.2, <8 x double> %151, i32 noundef 4) #23 %152 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74.2, %_4.i172.2 %153 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74.2, %_4.i172.2 %154 = fadd <8 x double> %_4.i173.2, %_4.i171.2 %155 = fsub <8 x double> %_4.i173.2, %_4.i171.2 %156 = bitcast <8 x double> %155 to <8 x i64> %157 = xor <8 x i64> %156, %158 = fadd <8 x double> %152, %154 store <8 x double> %158, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1123, !noalias !1132 %159 = bitcast <8 x i64> %157 to <8 x double> %160 = shufflevector <8 x double> %159, <8 x double> poison, <8 x i32> %161 = fsub <8 x double> %153, %160 store <8 x double> %161, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1123, !noalias !1132 %162 = fsub <8 x double> %152, %154 store <8 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1123, !noalias !1132 %163 = fadd <8 x double> %153, %160 store <8 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1123, !noalias !1132 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 3 %_3.i.i.i.i.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 7 %_3.i.i.i.i.i.i.us.i72.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 11 %_3.i.i.i.i.us.i73.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i42, i64 15 %a.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1126, !noalias !1131 %_84.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i71.3, align 8, !alias.scope !1126, !noalias !1131 %164 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i75.3, <8 x double> poison, <8 x i32> %165 = fmul <8 x double> %105, %164 %_4.i173.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_84.sroa.0.0.copyload.us.i75.3, <8 x double> %165, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i77.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i72.3, align 8, !alias.scope !1126, !noalias !1131 %166 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i77.3, <8 x double> poison, <8 x i32> %167 = fmul <8 x double> %107, %166 %_4.i172.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_86.sroa.0.0.copyload.us.i77.3, <8 x double> %167, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i79.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i73.3, align 8, !alias.scope !1126, !noalias !1131 %168 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i79.3, <8 x double> poison, <8 x i32> %169 = fmul <8 x double> %109, %168 %_4.i171.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_88.sroa.0.0.copyload.us.i79.3, <8 x double> %169, i32 noundef 4) #23 %170 = fadd <8 x double> %a.sroa.0.0.copyload.us.i74.3, %_4.i172.3 %171 = fsub <8 x double> %a.sroa.0.0.copyload.us.i74.3, %_4.i172.3 %172 = fadd <8 x double> %_4.i173.3, %_4.i171.3 %173 = fsub <8 x double> %_4.i173.3, %_4.i171.3 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = fadd <8 x double> %170, %172 store <8 x double> %176, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1123, !noalias !1132 %177 = bitcast <8 x i64> %175 to <8 x double> %178 = shufflevector <8 x double> %177, <8 x double> poison, <8 x i32> %179 = fsub <8 x double> %171, %178 store <8 x double> %179, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1123, !noalias !1132 %180 = fsub <8 x double> %170, %172 store <8 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1123, !noalias !1132 %181 = fadd <8 x double> %171, %178 store <8 x double> %181, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1123, !noalias !1132 %182 = add nuw nsw i64 %iter.sroa.60.0645.us.i38, 1 %exitcond522.not = icmp eq i64 %182, 8 br i1 %exitcond522.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93, label %bb22.us.i37 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93: ; preds = %bb22.us.i37 tail call void @llvm.experimental.noalias.scope.decl(metadata !1133) tail call void @llvm.experimental.noalias.scope.decl(metadata !1136) tail call void @llvm.experimental.noalias.scope.decl(metadata !1138) br label %bb22.us.i109 bb22.us.i109: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93, %bb22.us.i109 %iter.sroa.60.0645.us.i110 = phi i64 [ %219, %bb22.us.i109 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit93 ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i111 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i110 %start1.i.i.i.i.us.i112 = shl i64 %iter.sroa.60.0645.us.i110, 2 %data.i.i.i.i.i.i.us.i113 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i112 %data.i.i.i.i.i.i.i.i.us.i114 = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.60.0645.us.i110 %data.i.i.i.i.i.i.i.i.i.i.us.i115 = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.60.0645.us.i110 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i116 = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.60.0645.us.i110 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 1 %w1.0614.us.i117 = load <2 x float>, ptr %183, align 8, !alias.scope !1138, !noalias !1140, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 1, i32 1 %w1.1615.us.i118 = load <2 x float>, ptr %184, align 8, !alias.scope !1138, !noalias !1140, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 2 %w2.0616.us.i119 = load <2 x float>, ptr %185, align 8, !alias.scope !1138, !noalias !1140, !noundef !3 %186 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 2, i32 1 %w2.1617.us.i120 = load <2 x float>, ptr %186, align 8, !alias.scope !1138, !noalias !1140, !noundef !3 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 3 %w3.0618.us.i121 = load <2 x float>, ptr %187, align 8, !alias.scope !1138, !noalias !1140, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i112, i64 3, i32 1 %w3.1619.us.i122 = load <2 x float>, ptr %188, align 8, !alias.scope !1138, !noalias !1140, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i123 = shufflevector <2 x float> %w1.0614.us.i117, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i124 = shufflevector <2 x float> %w1.1615.us.i118, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i125 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i123, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i124, <4 x i32> %189 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i125 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i127 = shufflevector <2 x float> %w2.0616.us.i119, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i128 = shufflevector <2 x float> %w2.1617.us.i120, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i129 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i127, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i128, <4 x i32> %190 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i129 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i131 = shufflevector <2 x float> %w3.0618.us.i121, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i132 = shufflevector <2 x float> %w3.1619.us.i122, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i133 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i131, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i132, <4 x i32> %191 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i133 to <2 x double> %192 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i113, i64 2 %193 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i113, i64 1 %194 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i113, i64 3 %195 = shufflevector <2 x double> %189, <2 x double> poison, <8 x i32> zeroinitializer %196 = shufflevector <2 x double> %189, <2 x double> poison, <8 x i32> %197 = shufflevector <2 x double> %190, <2 x double> poison, <8 x i32> zeroinitializer %198 = shufflevector <2 x double> %190, <2 x double> poison, <8 x i32> %199 = shufflevector <2 x double> %191, <2 x double> poison, <8 x i32> zeroinitializer %200 = shufflevector <2 x double> %191, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i145 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i113, align 8, !alias.scope !1136, !noalias !1141 %_84.sroa.0.0.copyload.us.i146 = load <8 x double>, ptr %193, align 8, !alias.scope !1136, !noalias !1141 %201 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i146, <8 x double> poison, <8 x i32> %202 = fmul <8 x double> %196, %201 %_4.i176 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %_84.sroa.0.0.copyload.us.i146, <8 x double> %202, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i148 = load <8 x double>, ptr %192, align 8, !alias.scope !1136, !noalias !1141 %203 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i148, <8 x double> poison, <8 x i32> %204 = fmul <8 x double> %198, %203 %_4.i175 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %197, <8 x double> %_86.sroa.0.0.copyload.us.i148, <8 x double> %204, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i150 = load <8 x double>, ptr %194, align 8, !alias.scope !1136, !noalias !1141 %205 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i150, <8 x double> poison, <8 x i32> %206 = fmul <8 x double> %200, %205 %_4.i174 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %199, <8 x double> %_88.sroa.0.0.copyload.us.i150, <8 x double> %206, i32 noundef 4) #23 %207 = fadd <8 x double> %a.sroa.0.0.copyload.us.i145, %_4.i175 %208 = fsub <8 x double> %a.sroa.0.0.copyload.us.i145, %_4.i175 %209 = fadd <8 x double> %_4.i176, %_4.i174 %210 = fsub <8 x double> %_4.i176, %_4.i174 %211 = bitcast <8 x double> %210 to <8 x i64> %212 = xor <8 x i64> %211, %213 = fadd <8 x double> %207, %209 store <8 x double> %213, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i111, align 8, !alias.scope !1133, !noalias !1142 %214 = bitcast <8 x i64> %212 to <8 x double> %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fsub <8 x double> %208, %215 store <8 x double> %216, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i116, align 8, !alias.scope !1133, !noalias !1142 %217 = fsub <8 x double> %207, %209 store <8 x double> %217, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i115, align 8, !alias.scope !1133, !noalias !1142 %218 = fadd <8 x double> %208, %215 store <8 x double> %218, ptr %data.i.i.i.i.i.i.i.i.us.i114, align 8, !alias.scope !1133, !noalias !1142 %219 = add nuw nsw i64 %iter.sroa.60.0645.us.i110, 1 %exitcond523.not = icmp eq i64 %219, 32 br i1 %exitcond523.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164, label %bb22.us.i109 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164: ; preds = %bb22.us.i109 tail call void @llvm.experimental.noalias.scope.decl(metadata !1143) tail call void @llvm.experimental.noalias.scope.decl(metadata !1146) tail call void @llvm.experimental.noalias.scope.decl(metadata !1148) %220 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %221 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %222 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 br label %bb15.i167 bb15.i167: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164, %bb15.i167 %iter.sroa.50.0449.i = phi i64 [ %223, %bb15.i167 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit164 ] %223 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %221, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %220, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %222, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1148, !noalias !1150 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1148, !noalias !1150 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1148, !noalias !1150 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1146, !noalias !1151 %224 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %224, align 8, !alias.scope !1146, !noalias !1151 %225 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %225, align 8, !alias.scope !1146, !noalias !1151 %226 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %226, align 8, !alias.scope !1146, !noalias !1151 %227 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %228 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %229 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %230 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %231 = shufflevector <8 x double> %227, <8 x double> %229, <8 x i32> %232 = shufflevector <8 x double> %227, <8 x double> %229, <8 x i32> %233 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %234 = shufflevector <8 x double> %228, <8 x double> %230, <8 x i32> %235 = shufflevector <8 x double> %233, <8 x double> poison, <8 x i32> %236 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %237 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %238 = fmul <8 x double> %237, %235 %_4.i179 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %236, <8 x double> %233, <8 x double> %238, i32 noundef 4) #23 %239 = shufflevector <8 x double> %232, <8 x double> poison, <8 x i32> %240 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %241 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %242 = fmul <8 x double> %241, %239 %_4.i178 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %240, <8 x double> %232, <8 x double> %242, i32 noundef 4) #23 %243 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %244 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %245 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %246 = fmul <8 x double> %245, %243 %_4.i177 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %244, <8 x double> %234, <8 x double> %246, i32 noundef 4) #23 %247 = fadd <8 x double> %231, %_4.i178 %248 = fsub <8 x double> %231, %_4.i178 %249 = fadd <8 x double> %_4.i179, %_4.i177 %250 = fsub <8 x double> %_4.i179, %_4.i177 %251 = bitcast <8 x double> %250 to <8 x i64> %252 = xor <8 x i64> %251, %253 = fadd <8 x double> %247, %249 store <8 x double> %253, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1143, !noalias !1152 %254 = bitcast <8 x i64> %252 to <8 x double> %255 = shufflevector <8 x double> %254, <8 x double> poison, <8 x i32> %256 = fsub <8 x double> %248, %255 store <8 x double> %256, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1143, !noalias !1152 %257 = fsub <8 x double> %247, %249 store <8 x double> %257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1143, !noalias !1152 %258 = fadd <8 x double> %248, %255 store <8 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1143, !noalias !1152 %exitcond.not.i168 = icmp eq i64 %223, 32 br i1 %exitcond.not.i168, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i167 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i167 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1110 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h79307d755c1c194aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1153) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1153, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1153, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1153, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1153, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1153, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1153, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1153, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1153 store i64 32, ptr %n.i, align 8, !noalias !1153 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1153 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1153 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1153 store ptr null, ptr %_16.i, align 8, !noalias !1153 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1153 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1153 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1153 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1153 store ptr null, ptr %_24.i, align 8, !noalias !1153 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1153 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1153 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1153 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1153 store ptr null, ptr %_32.i, align 8, !noalias !1153 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1153 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1153 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1153 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6507a07e789687eE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1153 store ptr null, ptr %_40.i, align 8, !noalias !1153 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6507a07e789687eE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1153 tail call void @llvm.experimental.noalias.scope.decl(metadata !1156) tail call void @llvm.experimental.noalias.scope.decl(metadata !1159) tail call void @llvm.experimental.noalias.scope.decl(metadata !1161) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !1156, !noalias !1163 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !1156, !noalias !1163 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !1156, !noalias !1163 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !1156, !noalias !1163 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !1156, !noalias !1163 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !1156, !noalias !1163 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !1156, !noalias !1163 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %12, align 8, !alias.scope !1156, !noalias !1163 %20 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %21 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %22 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %23 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %24 = bitcast <8 x double> %23 to <8 x i64> %25 = xor <8 x i64> %24, %26 = bitcast <8 x i64> %25 to <8 x double> %27 = shufflevector <8 x double> %26, <8 x double> poison, <8 x i32> %28 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %29 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %30 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %31 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %32 = bitcast <8 x double> %31 to <8 x i64> %33 = xor <8 x i64> %32, %34 = bitcast <8 x i64> %33 to <8 x double> %35 = shufflevector <8 x double> %34, <8 x double> poison, <8 x i32> %36 = fadd <8 x double> %20, %22 %37 = fsub <8 x double> %21, %27 %38 = fsub <8 x double> %20, %22 %39 = fadd <8 x double> %21, %27 %40 = fadd <8 x double> %28, %30 %41 = fsub <8 x double> %29, %35 %42 = bitcast <8 x double> %41 to <8 x i64> %43 = xor <8 x i64> %42, %44 = bitcast <8 x i64> %43 to <8 x double> %45 = shufflevector <8 x double> %44, <8 x double> poison, <8 x i32> %46 = fadd <8 x double> %41, %45 %47 = fmul <8 x double> %46, %48 = fsub <8 x double> %28, %30 %49 = bitcast <8 x double> %48 to <8 x i64> %50 = xor <8 x i64> %49, %51 = bitcast <8 x i64> %50 to <8 x double> %52 = shufflevector <8 x double> %51, <8 x double> poison, <8 x i32> %53 = fadd <8 x double> %29, %35 %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %53, %57 %59 = fmul <8 x double> %58, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %15, align 8, !alias.scope !1161, !noalias !1164 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %14, align 8, !alias.scope !1161, !noalias !1164 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %16, align 8, !alias.scope !1161, !noalias !1164 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %13, align 8, !alias.scope !1161, !noalias !1164 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %18, align 8, !alias.scope !1161, !noalias !1164 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %17, align 8, !alias.scope !1161, !noalias !1164 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %19, align 8, !alias.scope !1161, !noalias !1164 %60 = fadd <8 x double> %36, %40 %61 = fadd <8 x double> %37, %47 %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %61, <8 x double> %65, i32 noundef 4) #23 %66 = fsub <8 x double> %38, %52 %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %69 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %70 = fmul <8 x double> %69, %67 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %66, <8 x double> %70, i32 noundef 4) #23 %71 = fsub <8 x double> %39, %59 %72 = shufflevector <8 x double> %71, <8 x double> poison, <8 x i32> %73 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %74 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %74, %72 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %73, <8 x double> %71, <8 x double> %75, i32 noundef 4) #23 %76 = fsub <8 x double> %36, %40 %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = fmul <8 x double> %77, %79 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %76, <8 x double> %80, i32 noundef 4) #23 %81 = fsub <8 x double> %37, %47 %82 = shufflevector <8 x double> %81, <8 x double> poison, <8 x i32> %83 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %84, %82 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %81, <8 x double> %85, i32 noundef 4) #23 %86 = fadd <8 x double> %38, %52 %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %89 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = fmul <8 x double> %89, %87 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %88, <8 x double> %86, <8 x double> %90, i32 noundef 4) #23 %91 = fadd <8 x double> %39, %59 %92 = shufflevector <8 x double> %91, <8 x double> poison, <8 x i32> %93 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %94 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %95 = fmul <8 x double> %94, %92 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %91, <8 x double> %95, i32 noundef 4) #23 %96 = shufflevector <8 x double> %60, <8 x double> %_4.i96, <8 x i32> %97 = shufflevector <8 x double> %60, <8 x double> %_4.i96, <8 x i32> %98 = shufflevector <8 x double> %_4.i95, <8 x double> %_4.i94, <8 x i32> %99 = shufflevector <8 x double> %_4.i95, <8 x double> %_4.i94, <8 x i32> %100 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %101 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %102 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %103 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %104 = shufflevector <8 x double> %_4.i93, <8 x double> %_4.i92, <8 x i32> %105 = shufflevector <8 x double> %_4.i93, <8 x double> %_4.i92, <8 x i32> %106 = shufflevector <8 x double> %_4.i91, <8 x double> %_4.i, <8 x i32> %107 = shufflevector <8 x double> %_4.i91, <8 x double> %_4.i, <8 x i32> %108 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %109 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %110 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> %111 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> store <8 x double> %100, ptr %scratch.0.i, align 8, !alias.scope !1159, !noalias !1165 %112 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %108, ptr %112, align 8, !alias.scope !1159, !noalias !1165 %113 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %102, ptr %113, align 8, !alias.scope !1159, !noalias !1165 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %110, ptr %114, align 8, !alias.scope !1159, !noalias !1165 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 4 store <8 x double> %101, ptr %115, align 8, !alias.scope !1159, !noalias !1165 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 store <8 x double> %109, ptr %116, align 8, !alias.scope !1159, !noalias !1165 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 6 store <8 x double> %103, ptr %117, align 8, !alias.scope !1159, !noalias !1165 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 store <8 x double> %111, ptr %118, align 8, !alias.scope !1159, !noalias !1165 %119 = fadd <8 x double> %100, %101 %120 = fsub <8 x double> %100, %101 %121 = fadd <8 x double> %102, %103 %122 = fsub <8 x double> %102, %103 %123 = bitcast <8 x double> %122 to <8 x i64> %124 = xor <8 x i64> %123, %125 = bitcast <8 x i64> %124 to <8 x double> %126 = shufflevector <8 x double> %125, <8 x double> poison, <8 x i32> %127 = fadd <8 x double> %119, %121 %128 = fsub <8 x double> %120, %126 %129 = fsub <8 x double> %119, %121 %130 = fadd <8 x double> %120, %126 store <8 x double> %127, ptr %buf.0.i, align 8, !noalias !1153 store <8 x double> %128, ptr %7, align 8, !noalias !1153 store <8 x double> %129, ptr %6, align 8, !noalias !1153 store <8 x double> %130, ptr %10, align 8, !noalias !1153 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %112, align 8, !noalias !1153 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1153 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1153 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1153 %131 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %132 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %133 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %134 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %135 = bitcast <8 x double> %134 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %131, %133 %140 = fsub <8 x double> %132, %138 %141 = fsub <8 x double> %131, %133 %142 = fadd <8 x double> %132, %138 store <8 x double> %139, ptr %8, align 8, !noalias !1153 store <8 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1153 store <8 x double> %141, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1153 store <8 x double> %142, ptr %_3.i.i.i.i.1, align 8, !noalias !1153 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1153 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h7e12e8f71f53d5dcE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1166) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1166, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1166, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1166, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1166, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1166, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1166, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1166, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1166, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1166 store i64 128, ptr %n.i, align 8, !noalias !1166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1166 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1166 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1166 store ptr null, ptr %_16.i, align 8, !noalias !1166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1166 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1166 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1166 store ptr null, ptr %_24.i, align 8, !noalias !1166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1166 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1166 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1166 store ptr null, ptr %_32.i, align 8, !noalias !1166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1166 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1166 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1166 store ptr null, ptr %_40.i, align 8, !noalias !1166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1166 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %_51.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !1169 %9 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload %10 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload store <8 x double> %9, ptr %scratch.0.i, align 8, !noalias !1169 store <8 x double> %10, ptr %7, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 17 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_51.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1169 %11 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 %12 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %11, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1169 store <8 x double> %12, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 18 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_51.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1169 %13 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 %14 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 store <8 x double> %13, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1169 store <8 x double> %14, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 19 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_51.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1169 %15 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 %16 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 store <8 x double> %15, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1169 store <8 x double> %16, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %_3.i2.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %_3.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_3.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_51.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.i.i.4, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.4, align 8, !noalias !1169 %17 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 %18 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 store <8 x double> %17, ptr %_3.i.i.i.i.i.i.i.i.4, align 8, !noalias !1169 store <8 x double> %18, ptr %_3.i2.i.i.i.i.i.i.i.4, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i2.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 21 %_3.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_51.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.i.i.5, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.5, align 8, !noalias !1169 %19 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 %20 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 store <8 x double> %19, ptr %_3.i.i.i.i.i.i.i.i.5, align 8, !noalias !1169 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i.5, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i2.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 22 %_3.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_51.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.i.i.6, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.6, align 8, !noalias !1169 %21 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 %22 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 store <8 x double> %21, ptr %_3.i.i.i.i.i.i.i.i.6, align 8, !noalias !1169 store <8 x double> %22, ptr %_3.i2.i.i.i.i.i.i.i.6, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i2.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 23 %_3.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_51.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.i.i.7, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.7, align 8, !noalias !1169 %23 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 %24 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 store <8 x double> %23, ptr %_3.i.i.i.i.i.i.i.i.7, align 8, !noalias !1169 store <8 x double> %24, ptr %_3.i2.i.i.i.i.i.i.i.7, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %_3.i2.i.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %_3.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %_3.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_51.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i.i.i.i.i.i.8, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i.i.i.i.8, align 8, !noalias !1169 %25 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 %26 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 store <8 x double> %25, ptr %_3.i.i.i.i.i.i.i.i.8, align 8, !noalias !1169 store <8 x double> %26, ptr %_3.i2.i.i.i.i.i.i.i.8, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i2.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 25 %_3.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_51.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.i.i.9, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.9, align 8, !noalias !1169 %27 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 %28 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 store <8 x double> %27, ptr %_3.i.i.i.i.i.i.i.i.9, align 8, !noalias !1169 store <8 x double> %28, ptr %_3.i2.i.i.i.i.i.i.i.9, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %_3.i2.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 26 %_3.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_51.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.i.i.10, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.10, align 8, !noalias !1169 %29 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 %30 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 store <8 x double> %29, ptr %_3.i.i.i.i.i.i.i.i.10, align 8, !noalias !1169 store <8 x double> %30, ptr %_3.i2.i.i.i.i.i.i.i.10, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i2.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 27 %_3.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_51.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.i.i.11, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.11, align 8, !noalias !1169 %31 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 %32 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 store <8 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.11, align 8, !noalias !1169 store <8 x double> %32, ptr %_3.i2.i.i.i.i.i.i.i.11, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %_3.i2.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %_3.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_3.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_51.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.i.i.12, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.12, align 8, !noalias !1169 %33 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 %34 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 store <8 x double> %33, ptr %_3.i.i.i.i.i.i.i.i.12, align 8, !noalias !1169 store <8 x double> %34, ptr %_3.i2.i.i.i.i.i.i.i.12, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i2.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 29 %_3.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_51.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.i.i.13, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.13, align 8, !noalias !1169 %35 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 %36 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 store <8 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.13, align 8, !noalias !1169 store <8 x double> %36, ptr %_3.i2.i.i.i.i.i.i.i.13, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_3.i2.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 30 %_3.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_51.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.i.i.14, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.14, align 8, !noalias !1169 %37 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 %38 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 store <8 x double> %37, ptr %_3.i.i.i.i.i.i.i.i.14, align 8, !noalias !1169 store <8 x double> %38, ptr %_3.i2.i.i.i.i.i.i.i.14, align 8, !noalias !1169 %_3.i.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i2.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 31 %_3.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_51.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.i.i.15, align 8, !noalias !1169 %_52.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.15, align 8, !noalias !1169 %39 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 %40 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 store <8 x double> %39, ptr %_3.i.i.i.i.i.i.i.i.15, align 8, !noalias !1169 store <8 x double> %40, ptr %_3.i2.i.i.i.i.i.i.i.15, align 8, !noalias !1169 tail call void @llvm.experimental.noalias.scope.decl(metadata !1176) tail call void @llvm.experimental.noalias.scope.decl(metadata !1179) tail call void @llvm.experimental.noalias.scope.decl(metadata !1181) %41 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 br label %bb22.us.i bb22.us.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E.exit", %bb22.us.i %_2.i.i.i.us.i = phi i1 [ false, %bb22.us.i ], [ true, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E.exit" ] %iter.sroa.60.0645.us.i = phi i64 [ 1, %bb22.us.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl nuw nsw i64 %iter.sroa.60.0645.us.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.us.i = shl nuw nsw i64 %iter.sroa.60.0645.us.i, 4 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %41, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.i.i.8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %42 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1 %w1.0614.us.i = load <2 x float>, ptr %42, align 8, !alias.scope !1181, !noalias !1183, !noundef !3 %43 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %43, align 8, !alias.scope !1181, !noalias !1183, !noundef !3 %44 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2 %w2.0616.us.i = load <2 x float>, ptr %44, align 8, !alias.scope !1181, !noalias !1183, !noundef !3 %45 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %45, align 8, !alias.scope !1181, !noalias !1183, !noundef !3 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3 %w3.0618.us.i = load <2 x float>, ptr %46, align 8, !alias.scope !1181, !noalias !1183, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %47, align 8, !alias.scope !1181, !noalias !1183, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %48 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %49 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %50 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 8 %52 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 4 %53 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 12 %54 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> zeroinitializer %55 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> %56 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> zeroinitializer %57 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> %58 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> zeroinitializer %59 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1179, !noalias !1184 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %52, align 8, !alias.scope !1179, !noalias !1184 %60 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %61 = fmul <8 x double> %55, %60 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %61, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %51, align 8, !alias.scope !1179, !noalias !1184 %62 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %63 = fmul <8 x double> %57, %62 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %63, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %53, align 8, !alias.scope !1179, !noalias !1184 %64 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %59, %64 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %65, i32 noundef 4) #23 %66 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i106 %67 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i106 %68 = fadd <8 x double> %_4.i107, %_4.i %69 = fsub <8 x double> %_4.i107, %_4.i %70 = bitcast <8 x double> %69 to <8 x i64> %71 = xor <8 x i64> %70, %72 = fadd <8 x double> %66, %68 store <8 x double> %72, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1176, !noalias !1185 %73 = bitcast <8 x i64> %71 to <8 x double> %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = fsub <8 x double> %67, %74 store <8 x double> %75, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1176, !noalias !1185 %76 = fsub <8 x double> %66, %68 store <8 x double> %76, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1176, !noalias !1185 %77 = fadd <8 x double> %67, %74 store <8 x double> %77, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1176, !noalias !1185 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 5 %_3.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 9 %_3.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 13 %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1179, !noalias !1184 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1179, !noalias !1184 %78 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %79 = fmul <8 x double> %55, %78 %_4.i107.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %79, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1179, !noalias !1184 %80 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %57, %80 %_4.i106.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %81, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i.1, align 8, !alias.scope !1179, !noalias !1184 %82 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %59, %82 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %83, i32 noundef 4) #23 %84 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i106.1 %85 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i106.1 %86 = fadd <8 x double> %_4.i107.1, %_4.i.1 %87 = fsub <8 x double> %_4.i107.1, %_4.i.1 %88 = bitcast <8 x double> %87 to <8 x i64> %89 = xor <8 x i64> %88, %90 = fadd <8 x double> %84, %86 store <8 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1176, !noalias !1185 %91 = bitcast <8 x i64> %89 to <8 x double> %92 = shufflevector <8 x double> %91, <8 x double> poison, <8 x i32> %93 = fsub <8 x double> %85, %92 store <8 x double> %93, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1176, !noalias !1185 %94 = fsub <8 x double> %84, %86 store <8 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1176, !noalias !1185 %95 = fadd <8 x double> %85, %92 store <8 x double> %95, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1176, !noalias !1185 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 6 %_3.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 10 %_3.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 14 %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1179, !noalias !1184 %_84.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1179, !noalias !1184 %96 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %55, %96 %_4.i107.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> %97, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1179, !noalias !1184 %98 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %99 = fmul <8 x double> %57, %98 %_4.i106.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> %99, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i.2, align 8, !alias.scope !1179, !noalias !1184 %100 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %101 = fmul <8 x double> %59, %100 %_4.i.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> %101, i32 noundef 4) #23 %102 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i106.2 %103 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i106.2 %104 = fadd <8 x double> %_4.i107.2, %_4.i.2 %105 = fsub <8 x double> %_4.i107.2, %_4.i.2 %106 = bitcast <8 x double> %105 to <8 x i64> %107 = xor <8 x i64> %106, %108 = fadd <8 x double> %102, %104 store <8 x double> %108, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1176, !noalias !1185 %109 = bitcast <8 x i64> %107 to <8 x double> %110 = shufflevector <8 x double> %109, <8 x double> poison, <8 x i32> %111 = fsub <8 x double> %103, %110 store <8 x double> %111, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1176, !noalias !1185 %112 = fsub <8 x double> %102, %104 store <8 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1176, !noalias !1185 %113 = fadd <8 x double> %103, %110 store <8 x double> %113, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1176, !noalias !1185 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 7 %_3.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 11 %_3.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 15 %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1179, !noalias !1184 %_84.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1179, !noalias !1184 %114 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %115 = fmul <8 x double> %55, %114 %_4.i107.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> %115, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1179, !noalias !1184 %116 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %117 = fmul <8 x double> %57, %116 %_4.i106.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> %117, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i.3, align 8, !alias.scope !1179, !noalias !1184 %118 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %119 = fmul <8 x double> %59, %118 %_4.i.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> %119, i32 noundef 4) #23 %120 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i106.3 %121 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i106.3 %122 = fadd <8 x double> %_4.i107.3, %_4.i.3 %123 = fsub <8 x double> %_4.i107.3, %_4.i.3 %124 = bitcast <8 x double> %123 to <8 x i64> %125 = xor <8 x i64> %124, %126 = fadd <8 x double> %120, %122 store <8 x double> %126, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1176, !noalias !1185 %127 = bitcast <8 x i64> %125 to <8 x double> %128 = shufflevector <8 x double> %127, <8 x double> poison, <8 x i32> %129 = fsub <8 x double> %121, %128 store <8 x double> %129, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1176, !noalias !1185 %130 = fsub <8 x double> %120, %122 store <8 x double> %130, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1176, !noalias !1185 %131 = fadd <8 x double> %121, %128 store <8 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1176, !noalias !1185 br i1 %_2.i.i.i.us.i, label %bb22.us.i, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1186) tail call void @llvm.experimental.noalias.scope.decl(metadata !1189) tail call void @llvm.experimental.noalias.scope.decl(metadata !1191) %132 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 br label %bb22.us.i46 bb22.us.i46: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, %bb22.us.i46 %iter.sroa.60.0645.us.i47 = phi i64 [ %169, %bb22.us.i46 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i48 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i47 %start1.i.i.i.i.us.i49 = shl i64 %iter.sroa.60.0645.us.i47, 2 %data.i.i.i.i.i.i.us.i50 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i49 %data.i.i.i.i.i.i.i.i.us.i51 = getelementptr inbounds %"fft_simd::c64x4", ptr %132, i64 %iter.sroa.60.0645.us.i47 %data.i.i.i.i.i.i.i.i.i.i.us.i52 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.60.0645.us.i47 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i53 = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.i.i.i.i.8, i64 %iter.sroa.60.0645.us.i47 %133 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 1 %w1.0614.us.i54 = load <2 x float>, ptr %133, align 8, !alias.scope !1191, !noalias !1193, !noundef !3 %134 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 1, i32 1 %w1.1615.us.i55 = load <2 x float>, ptr %134, align 8, !alias.scope !1191, !noalias !1193, !noundef !3 %135 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 2 %w2.0616.us.i56 = load <2 x float>, ptr %135, align 8, !alias.scope !1191, !noalias !1193, !noundef !3 %136 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 2, i32 1 %w2.1617.us.i57 = load <2 x float>, ptr %136, align 8, !alias.scope !1191, !noalias !1193, !noundef !3 %137 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 3 %w3.0618.us.i58 = load <2 x float>, ptr %137, align 8, !alias.scope !1191, !noalias !1193, !noundef !3 %138 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 3, i32 1 %w3.1619.us.i59 = load <2 x float>, ptr %138, align 8, !alias.scope !1191, !noalias !1193, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i60 = shufflevector <2 x float> %w1.0614.us.i54, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i61 = shufflevector <2 x float> %w1.1615.us.i55, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i62 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i60, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i61, <4 x i32> %139 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i62 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i64 = shufflevector <2 x float> %w2.0616.us.i56, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i65 = shufflevector <2 x float> %w2.1617.us.i57, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i66 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i64, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i65, <4 x i32> %140 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i66 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i68 = shufflevector <2 x float> %w3.0618.us.i58, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i69 = shufflevector <2 x float> %w3.1619.us.i59, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i70 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i68, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i69, <4 x i32> %141 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i70 to <2 x double> %142 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i50, i64 2 %143 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i50, i64 1 %144 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i50, i64 3 %145 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> zeroinitializer %146 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> %147 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> zeroinitializer %148 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> %149 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> zeroinitializer %150 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i82 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i50, align 8, !alias.scope !1189, !noalias !1194 %_84.sroa.0.0.copyload.us.i83 = load <8 x double>, ptr %143, align 8, !alias.scope !1189, !noalias !1194 %151 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i83, <8 x double> poison, <8 x i32> %152 = fmul <8 x double> %146, %151 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %145, <8 x double> %_84.sroa.0.0.copyload.us.i83, <8 x double> %152, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i85 = load <8 x double>, ptr %142, align 8, !alias.scope !1189, !noalias !1194 %153 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i85, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %148, %153 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %147, <8 x double> %_86.sroa.0.0.copyload.us.i85, <8 x double> %154, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i87 = load <8 x double>, ptr %144, align 8, !alias.scope !1189, !noalias !1194 %155 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i87, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %150, %155 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %149, <8 x double> %_88.sroa.0.0.copyload.us.i87, <8 x double> %156, i32 noundef 4) #23 %157 = fadd <8 x double> %a.sroa.0.0.copyload.us.i82, %_4.i109 %158 = fsub <8 x double> %a.sroa.0.0.copyload.us.i82, %_4.i109 %159 = fadd <8 x double> %_4.i110, %_4.i108 %160 = fsub <8 x double> %_4.i110, %_4.i108 %161 = bitcast <8 x double> %160 to <8 x i64> %162 = xor <8 x i64> %161, %163 = fadd <8 x double> %157, %159 store <8 x double> %163, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i48, align 8, !alias.scope !1186, !noalias !1195 %164 = bitcast <8 x i64> %162 to <8 x double> %165 = shufflevector <8 x double> %164, <8 x double> poison, <8 x i32> %166 = fsub <8 x double> %158, %165 store <8 x double> %166, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i53, align 8, !alias.scope !1186, !noalias !1195 %167 = fsub <8 x double> %157, %159 store <8 x double> %167, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i52, align 8, !alias.scope !1186, !noalias !1195 %168 = fadd <8 x double> %158, %165 store <8 x double> %168, ptr %data.i.i.i.i.i.i.i.i.us.i51, align 8, !alias.scope !1186, !noalias !1195 %169 = add nuw nsw i64 %iter.sroa.60.0645.us.i47, 1 %exitcond.not = icmp eq i64 %169, 8 br i1 %exitcond.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101, label %bb22.us.i46 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101: ; preds = %bb22.us.i46 tail call void @llvm.experimental.noalias.scope.decl(metadata !1196) tail call void @llvm.experimental.noalias.scope.decl(metadata !1199) tail call void @llvm.experimental.noalias.scope.decl(metadata !1201) %170 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %171 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %172 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 br label %bb15.i104 bb15.i104: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101, %bb15.i104 %iter.sroa.50.0449.i = phi i64 [ %173, %bb15.i104 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101 ] %173 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.i.i.8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %41, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %171, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %170, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %172, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1201, !noalias !1203 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1201, !noalias !1203 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1201, !noalias !1203 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1199, !noalias !1204 %174 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %174, align 8, !alias.scope !1199, !noalias !1204 %175 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %175, align 8, !alias.scope !1199, !noalias !1204 %176 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %176, align 8, !alias.scope !1199, !noalias !1204 %177 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %178 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %179 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %180 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %181 = shufflevector <8 x double> %177, <8 x double> %179, <8 x i32> %182 = shufflevector <8 x double> %177, <8 x double> %179, <8 x i32> %183 = shufflevector <8 x double> %178, <8 x double> %180, <8 x i32> %184 = shufflevector <8 x double> %178, <8 x double> %180, <8 x i32> %185 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %187, %185 %_4.i113 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %186, <8 x double> %183, <8 x double> %188, i32 noundef 4) #23 %189 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %191, %189 %_4.i112 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %182, <8 x double> %192, i32 noundef 4) #23 %193 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %194 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = fmul <8 x double> %195, %193 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %184, <8 x double> %196, i32 noundef 4) #23 %197 = fadd <8 x double> %181, %_4.i112 %198 = fsub <8 x double> %181, %_4.i112 %199 = fadd <8 x double> %_4.i113, %_4.i111 %200 = fsub <8 x double> %_4.i113, %_4.i111 %201 = bitcast <8 x double> %200 to <8 x i64> %202 = xor <8 x i64> %201, %203 = fadd <8 x double> %197, %199 store <8 x double> %203, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1196, !noalias !1205 %204 = bitcast <8 x i64> %202 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fsub <8 x double> %198, %205 store <8 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1196, !noalias !1205 %207 = fsub <8 x double> %197, %199 store <8 x double> %207, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1196, !noalias !1205 %208 = fadd <8 x double> %198, %205 store <8 x double> %208, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1196, !noalias !1205 %exitcond.not.i105 = icmp eq i64 %173, 8 br i1 %exitcond.not.i105, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i104 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i104 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1166 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h7ebfa1c6070245f9E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1206) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1206, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1206, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1206, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1206, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1206, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1206, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1206, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1206, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1206 store i64 128, ptr %n.i, align 8, !noalias !1206 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1206 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1206 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1206 store ptr null, ptr %_16.i, align 8, !noalias !1206 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1206 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1206 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1206 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1206 store ptr null, ptr %_24.i, align 8, !noalias !1206 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1206 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1206 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1206 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1206 store ptr null, ptr %_32.i, align 8, !noalias !1206 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1206 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1206 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1206 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1206 store ptr null, ptr %_40.i, align 8, !noalias !1206 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1206 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %_33.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1206 %8 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload %9 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload store <8 x double> %8, ptr %buf.0.i, align 8, !noalias !1206 store <8 x double> %9, ptr %7, align 8, !noalias !1206 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_33.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1206 %10 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 %11 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 store <8 x double> %10, ptr %_3.i.i.i.i.1, align 8, !noalias !1206 store <8 x double> %11, ptr %_3.i2.i.i.i.1, align 8, !noalias !1206 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_33.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !noalias !1206 %12 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 %13 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 store <8 x double> %12, ptr %_3.i.i.i.i.2, align 8, !noalias !1206 store <8 x double> %13, ptr %_3.i2.i.i.i.2, align 8, !noalias !1206 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_33.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !noalias !1206 %14 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 %15 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 store <8 x double> %14, ptr %_3.i.i.i.i.3, align 8, !noalias !1206 store <8 x double> %15, ptr %_3.i2.i.i.i.3, align 8, !noalias !1206 %_3.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_3.i2.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_33.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.4, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i2.i.i.i.4, align 8, !noalias !1206 %16 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.sroa.0.0.copyload.4 %17 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.sroa.0.0.copyload.4 store <8 x double> %16, ptr %_3.i.i.i.i.4, align 8, !noalias !1206 store <8 x double> %17, ptr %_3.i2.i.i.i.4, align 8, !noalias !1206 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i2.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_33.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.5, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i2.i.i.i.5, align 8, !noalias !1206 %18 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.sroa.0.0.copyload.5 %19 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.sroa.0.0.copyload.5 store <8 x double> %18, ptr %_3.i.i.i.i.5, align 8, !noalias !1206 store <8 x double> %19, ptr %_3.i2.i.i.i.5, align 8, !noalias !1206 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i2.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_33.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.6, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i2.i.i.i.6, align 8, !noalias !1206 %20 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.sroa.0.0.copyload.6 %21 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.sroa.0.0.copyload.6 store <8 x double> %20, ptr %_3.i.i.i.i.6, align 8, !noalias !1206 store <8 x double> %21, ptr %_3.i2.i.i.i.6, align 8, !noalias !1206 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i2.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_33.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.7, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i2.i.i.i.7, align 8, !noalias !1206 %22 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.sroa.0.0.copyload.7 %23 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.sroa.0.0.copyload.7 store <8 x double> %22, ptr %_3.i.i.i.i.7, align 8, !noalias !1206 store <8 x double> %23, ptr %_3.i2.i.i.i.7, align 8, !noalias !1206 %_3.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %_3.i2.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_33.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i.i.i.i.8, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i2.i.i.i.8, align 8, !noalias !1206 %24 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.sroa.0.0.copyload.8 %25 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.sroa.0.0.copyload.8 store <8 x double> %24, ptr %_3.i.i.i.i.8, align 8, !noalias !1206 store <8 x double> %25, ptr %_3.i2.i.i.i.8, align 8, !noalias !1206 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i2.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_33.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.9, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i2.i.i.i.9, align 8, !noalias !1206 %26 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.sroa.0.0.copyload.9 %27 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.sroa.0.0.copyload.9 store <8 x double> %26, ptr %_3.i.i.i.i.9, align 8, !noalias !1206 store <8 x double> %27, ptr %_3.i2.i.i.i.9, align 8, !noalias !1206 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i2.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_33.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.10, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i2.i.i.i.10, align 8, !noalias !1206 %28 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.sroa.0.0.copyload.10 %29 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.sroa.0.0.copyload.10 store <8 x double> %28, ptr %_3.i.i.i.i.10, align 8, !noalias !1206 store <8 x double> %29, ptr %_3.i2.i.i.i.10, align 8, !noalias !1206 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i2.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_33.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.11, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i2.i.i.i.11, align 8, !noalias !1206 %30 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.sroa.0.0.copyload.11 %31 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.sroa.0.0.copyload.11 store <8 x double> %30, ptr %_3.i.i.i.i.11, align 8, !noalias !1206 store <8 x double> %31, ptr %_3.i2.i.i.i.11, align 8, !noalias !1206 %_3.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_3.i2.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_33.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.12, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i2.i.i.i.12, align 8, !noalias !1206 %32 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.sroa.0.0.copyload.12 %33 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.sroa.0.0.copyload.12 store <8 x double> %32, ptr %_3.i.i.i.i.12, align 8, !noalias !1206 store <8 x double> %33, ptr %_3.i2.i.i.i.12, align 8, !noalias !1206 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i2.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_33.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.13, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i2.i.i.i.13, align 8, !noalias !1206 %34 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.sroa.0.0.copyload.13 %35 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.sroa.0.0.copyload.13 store <8 x double> %34, ptr %_3.i.i.i.i.13, align 8, !noalias !1206 store <8 x double> %35, ptr %_3.i2.i.i.i.13, align 8, !noalias !1206 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i2.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_33.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.14, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i2.i.i.i.14, align 8, !noalias !1206 %36 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.sroa.0.0.copyload.14 %37 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.sroa.0.0.copyload.14 store <8 x double> %36, ptr %_3.i.i.i.i.14, align 8, !noalias !1206 store <8 x double> %37, ptr %_3.i2.i.i.i.14, align 8, !noalias !1206 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i2.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_33.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.15, align 8, !noalias !1206 %_34.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i2.i.i.i.15, align 8, !noalias !1206 %38 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.sroa.0.0.copyload.15 %39 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.sroa.0.0.copyload.15 store <8 x double> %38, ptr %_3.i.i.i.i.15, align 8, !noalias !1206 store <8 x double> %39, ptr %_3.i2.i.i.i.15, align 8, !noalias !1206 tail call void @llvm.experimental.noalias.scope.decl(metadata !1209) tail call void @llvm.experimental.noalias.scope.decl(metadata !1212) tail call void @llvm.experimental.noalias.scope.decl(metadata !1214) %40 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %41 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %42 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %44 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %45 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %46 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 br label %bb30.i bb30.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E.exit", %bb30.i %_2.i.i.i.i = phi i1 [ false, %bb30.i ], [ true, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E.exit" ] %iter.sroa.104.01903.i = phi i64 [ 1, %bb30.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %46, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %40, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %41, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %42, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 3 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %47, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %48, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %49, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %50, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %51, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %52 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %52, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %53 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %53, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %54 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %54, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %55 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %55, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %56 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %56, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %57 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %57, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %58 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %58, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %59 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %59, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %60 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %60, align 8, !alias.scope !1214, !noalias !1216, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %61 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %62 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %63 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %64 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %65 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %66 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %67 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %68 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %75 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> zeroinitializer %76 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> %77 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> zeroinitializer %78 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> %79 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> zeroinitializer %80 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> %81 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> zeroinitializer %82 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> %83 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> zeroinitializer %84 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> %85 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> zeroinitializer %86 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> %87 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> zeroinitializer %88 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !1212, !noalias !1217 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %70, align 8, !alias.scope !1212, !noalias !1217 %89 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = fmul <8 x double> %76, %89 %_4.i36 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %90, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %69, align 8, !alias.scope !1212, !noalias !1217 %91 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %78, %91 %_4.i35 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %77, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %92, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %71, align 8, !alias.scope !1212, !noalias !1217 %93 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %94 = fmul <8 x double> %80, %93 %_4.i34 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %94, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %68, align 8, !alias.scope !1212, !noalias !1217 %95 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = fmul <8 x double> %82, %95 %_4.i33 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %81, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %96, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %73, align 8, !alias.scope !1212, !noalias !1217 %97 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %98 = fmul <8 x double> %84, %97 %_4.i32 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %98, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %72, align 8, !alias.scope !1212, !noalias !1217 %99 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %100 = fmul <8 x double> %86, %99 %_4.i31 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %100, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %74, align 8, !alias.scope !1212, !noalias !1217 %101 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %102 = fmul <8 x double> %88, %101 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %87, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %102, i32 noundef 4) #23 %103 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i33 %104 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i33 %105 = fadd <8 x double> %_4.i35, %_4.i31 %106 = fsub <8 x double> %_4.i35, %_4.i31 %107 = bitcast <8 x double> %106 to <8 x i64> %108 = xor <8 x i64> %107, %109 = fadd <8 x double> %_4.i36, %_4.i32 %110 = fsub <8 x double> %_4.i36, %_4.i32 %111 = fadd <8 x double> %_4.i34, %_4.i %112 = fsub <8 x double> %_4.i34, %_4.i %113 = bitcast <8 x double> %112 to <8 x i64> %114 = xor <8 x i64> %113, %115 = fadd <8 x double> %103, %105 %116 = fadd <8 x double> %109, %111 %117 = fadd <8 x double> %115, %116 store <8 x double> %117, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %118 = fsub <8 x double> %115, %116 store <8 x double> %118, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %119 = bitcast <8 x i64> %108 to <8 x double> %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fsub <8 x double> %104, %120 %122 = bitcast <8 x i64> %114 to <8 x double> %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fsub <8 x double> %110, %123 %125 = bitcast <8 x double> %124 to <8 x i64> %126 = xor <8 x i64> %125, %127 = bitcast <8 x i64> %126 to <8 x double> %128 = shufflevector <8 x double> %127, <8 x double> poison, <8 x i32> %129 = fadd <8 x double> %124, %128 %130 = fmul <8 x double> %129, %131 = fadd <8 x double> %121, %130 store <8 x double> %131, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %132 = fsub <8 x double> %121, %130 store <8 x double> %132, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %133 = fsub <8 x double> %103, %105 %134 = fsub <8 x double> %109, %111 %135 = bitcast <8 x double> %134 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fsub <8 x double> %133, %138 store <8 x double> %139, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %140 = fadd <8 x double> %133, %138 store <8 x double> %140, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %141 = fadd <8 x double> %104, %120 %142 = fadd <8 x double> %110, %123 %143 = bitcast <8 x double> %142 to <8 x i64> %144 = xor <8 x i64> %143, %145 = bitcast <8 x i64> %144 to <8 x double> %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %147 = fadd <8 x double> %142, %146 %148 = fmul <8 x double> %147, %149 = fsub <8 x double> %141, %148 store <8 x double> %149, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %150 = fadd <8 x double> %141, %148 store <8 x double> %150, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1209, !noalias !1218 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %y0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %_131.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %151 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %152 = fmul <8 x double> %76, %151 %_4.i36.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> %152, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %153 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %78, %153 %_4.i35.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %77, <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> %154, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %155 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %80, %155 %_4.i34.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> %156, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %157 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %158 = fmul <8 x double> %82, %157 %_4.i33.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %81, <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> %158, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %159 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %84, %159 %_4.i32.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> %160, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %161 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %86, %161 %_4.i31.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> %162, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !1212, !noalias !1217 %163 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %164 = fmul <8 x double> %88, %163 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %87, <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> %164, i32 noundef 4) #23 %165 = fadd <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i33.1 %166 = fsub <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i33.1 %167 = fadd <8 x double> %_4.i35.1, %_4.i31.1 %168 = fsub <8 x double> %_4.i35.1, %_4.i31.1 %169 = bitcast <8 x double> %168 to <8 x i64> %170 = xor <8 x i64> %169, %171 = fadd <8 x double> %_4.i36.1, %_4.i32.1 %172 = fsub <8 x double> %_4.i36.1, %_4.i32.1 %173 = fadd <8 x double> %_4.i34.1, %_4.i.1 %174 = fsub <8 x double> %_4.i34.1, %_4.i.1 %175 = bitcast <8 x double> %174 to <8 x i64> %176 = xor <8 x i64> %175, %177 = fadd <8 x double> %165, %167 %178 = fadd <8 x double> %171, %173 %179 = fadd <8 x double> %177, %178 store <8 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %180 = fsub <8 x double> %177, %178 store <8 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %181 = bitcast <8 x i64> %170 to <8 x double> %182 = shufflevector <8 x double> %181, <8 x double> poison, <8 x i32> %183 = fsub <8 x double> %166, %182 %184 = bitcast <8 x i64> %176 to <8 x double> %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = fsub <8 x double> %172, %185 %187 = bitcast <8 x double> %186 to <8 x i64> %188 = xor <8 x i64> %187, %189 = bitcast <8 x i64> %188 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fadd <8 x double> %186, %190 %192 = fmul <8 x double> %191, %193 = fadd <8 x double> %183, %192 store <8 x double> %193, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %194 = fsub <8 x double> %183, %192 store <8 x double> %194, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %195 = fsub <8 x double> %165, %167 %196 = fsub <8 x double> %171, %173 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fsub <8 x double> %195, %200 store <8 x double> %201, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %202 = fadd <8 x double> %195, %200 store <8 x double> %202, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %203 = fadd <8 x double> %166, %182 %204 = fadd <8 x double> %172, %185 %205 = bitcast <8 x double> %204 to <8 x i64> %206 = xor <8 x i64> %205, %207 = bitcast <8 x i64> %206 to <8 x double> %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = fadd <8 x double> %204, %208 %210 = fmul <8 x double> %209, %211 = fsub <8 x double> %203, %210 store <8 x double> %211, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 %212 = fadd <8 x double> %203, %210 store <8 x double> %212, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1209, !noalias !1218 br i1 %_2.i.i.i.i, label %bb30.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1219) tail call void @llvm.experimental.noalias.scope.decl(metadata !1222) tail call void @llvm.experimental.noalias.scope.decl(metadata !1224) %213 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %214 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %215 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %216 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %217 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %218 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %219 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %220 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %221 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %222 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %223, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %223 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.4, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21 = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22 = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.12, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24 = getelementptr inbounds %"fft_simd::c64x4", ptr %214, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25 = getelementptr inbounds %"fft_simd::c64x4", ptr %213, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i26 = getelementptr inbounds %"fft_simd::c64x4", ptr %215, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %218, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %217, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %219, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %216, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %221, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %220, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i27 = getelementptr inbounds %"fft_simd::c64x4", ptr %222, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1224, !noalias !1226 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1224, !noalias !1226 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1224, !noalias !1226 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1224, !noalias !1226 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1224, !noalias !1226 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1224, !noalias !1226 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i27, align 8, !alias.scope !1224, !noalias !1226 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1222, !noalias !1227 %224 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %224, align 8, !alias.scope !1222, !noalias !1227 %225 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %225, align 8, !alias.scope !1222, !noalias !1227 %226 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %226, align 8, !alias.scope !1222, !noalias !1227 %227 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %227, align 8, !alias.scope !1222, !noalias !1227 %228 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %228, align 8, !alias.scope !1222, !noalias !1227 %229 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %229, align 8, !alias.scope !1222, !noalias !1227 %230 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %230, align 8, !alias.scope !1222, !noalias !1227 %231 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %232 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %233 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %234 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %235 = shufflevector <8 x double> %231, <8 x double> %233, <8 x i32> %236 = shufflevector <8 x double> %231, <8 x double> %233, <8 x i32> %237 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %238 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %239 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %240 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %241 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %242 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %243 = shufflevector <8 x double> %239, <8 x double> %241, <8 x i32> %244 = shufflevector <8 x double> %239, <8 x double> %241, <8 x i32> %245 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %246 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %247 = shufflevector <8 x double> %237, <8 x double> poison, <8 x i32> %248 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %249 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %250 = fmul <8 x double> %249, %247 %_4.i43 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %248, <8 x double> %237, <8 x double> %250, i32 noundef 4) #23 %251 = shufflevector <8 x double> %236, <8 x double> poison, <8 x i32> %252 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %253 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %254 = fmul <8 x double> %253, %251 %_4.i42 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %252, <8 x double> %236, <8 x double> %254, i32 noundef 4) #23 %255 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %256 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %257 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %258 = fmul <8 x double> %257, %255 %_4.i41 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %256, <8 x double> %238, <8 x double> %258, i32 noundef 4) #23 %259 = shufflevector <8 x double> %243, <8 x double> poison, <8 x i32> %260 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %261 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %262 = fmul <8 x double> %261, %259 %_4.i40 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %260, <8 x double> %243, <8 x double> %262, i32 noundef 4) #23 %263 = shufflevector <8 x double> %245, <8 x double> poison, <8 x i32> %264 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %265 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %266 = fmul <8 x double> %265, %263 %_4.i39 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %264, <8 x double> %245, <8 x double> %266, i32 noundef 4) #23 %267 = shufflevector <8 x double> %244, <8 x double> poison, <8 x i32> %268 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %269 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %270 = fmul <8 x double> %269, %267 %_4.i38 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %268, <8 x double> %244, <8 x double> %270, i32 noundef 4) #23 %271 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %272 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %273 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %274 = fmul <8 x double> %273, %271 %_4.i37 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %272, <8 x double> %246, <8 x double> %274, i32 noundef 4) #23 %275 = fadd <8 x double> %235, %_4.i40 %276 = fsub <8 x double> %235, %_4.i40 %277 = fadd <8 x double> %_4.i42, %_4.i38 %278 = fsub <8 x double> %_4.i42, %_4.i38 %279 = bitcast <8 x double> %278 to <8 x i64> %280 = xor <8 x i64> %279, %281 = fadd <8 x double> %_4.i43, %_4.i39 %282 = fsub <8 x double> %_4.i43, %_4.i39 %283 = fadd <8 x double> %_4.i41, %_4.i37 %284 = fsub <8 x double> %_4.i41, %_4.i37 %285 = bitcast <8 x double> %284 to <8 x i64> %286 = xor <8 x i64> %285, %287 = fadd <8 x double> %275, %277 %288 = fadd <8 x double> %281, %283 %289 = fadd <8 x double> %287, %288 store <8 x double> %289, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1219, !noalias !1228 %290 = fsub <8 x double> %287, %288 store <8 x double> %290, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23, align 8, !alias.scope !1219, !noalias !1228 %291 = bitcast <8 x i64> %280 to <8 x double> %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fsub <8 x double> %276, %292 %294 = bitcast <8 x i64> %286 to <8 x double> %295 = shufflevector <8 x double> %294, <8 x double> poison, <8 x i32> %296 = fsub <8 x double> %282, %295 %297 = bitcast <8 x double> %296 to <8 x i64> %298 = xor <8 x i64> %297, %299 = bitcast <8 x i64> %298 to <8 x double> %300 = shufflevector <8 x double> %299, <8 x double> poison, <8 x i32> %301 = fadd <8 x double> %296, %300 %302 = fmul <8 x double> %301, %303 = fadd <8 x double> %293, %302 store <8 x double> %303, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1219, !noalias !1228 %304 = fsub <8 x double> %293, %302 store <8 x double> %304, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24, align 8, !alias.scope !1219, !noalias !1228 %305 = fsub <8 x double> %275, %277 %306 = fsub <8 x double> %281, %283 %307 = bitcast <8 x double> %306 to <8 x i64> %308 = xor <8 x i64> %307, %309 = bitcast <8 x i64> %308 to <8 x double> %310 = shufflevector <8 x double> %309, <8 x double> poison, <8 x i32> %311 = fsub <8 x double> %305, %310 store <8 x double> %311, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21, align 8, !alias.scope !1219, !noalias !1228 %312 = fadd <8 x double> %305, %310 store <8 x double> %312, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25, align 8, !alias.scope !1219, !noalias !1228 %313 = fadd <8 x double> %276, %292 %314 = fadd <8 x double> %282, %295 %315 = bitcast <8 x double> %314 to <8 x i64> %316 = xor <8 x i64> %315, %317 = bitcast <8 x i64> %316 to <8 x double> %318 = shufflevector <8 x double> %317, <8 x double> poison, <8 x i32> %319 = fadd <8 x double> %314, %318 %320 = fmul <8 x double> %319, %321 = fsub <8 x double> %313, %320 store <8 x double> %321, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22, align 8, !alias.scope !1219, !noalias !1228 %322 = fadd <8 x double> %313, %320 store <8 x double> %322, ptr %_3.i.i.i.i.i.i.i.i.i.i.i26, align 8, !alias.scope !1219, !noalias !1228 %exitcond.not.i30 = icmp eq i64 %223, 4 br i1 %exitcond.not.i30, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1206 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h851ad0e743d6d8ecE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1229) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1229, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1229, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1229, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1229, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %3, align 8, !alias.scope !1229, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %4, align 8, !alias.scope !1229, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1229 store i64 16, ptr %n.i, align 8, !noalias !1229 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1229 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1229 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1229 store ptr null, ptr %_16.i, align 8, !noalias !1229 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1229 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1229 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1229 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1229 store ptr null, ptr %_24.i, align 8, !noalias !1229 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1229 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1229 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1229 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1229 store ptr null, ptr %_32.i, align 8, !noalias !1229 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1229 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1229 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1229 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1229 store ptr null, ptr %_40.i, align 8, !noalias !1229 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1229 %5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_51.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !1229 %_52.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %6, align 8, !noalias !1229 %7 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload %8 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload store <8 x double> %7, ptr %buf.0.i, align 8, !noalias !1229 store <8 x double> %8, ptr %5, align 8, !noalias !1229 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_51.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1229 %_52.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1229 %9 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 %10 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 store <8 x double> %9, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1229 store <8 x double> %10, ptr %_3.i.i.i.i.1, align 8, !noalias !1229 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1229 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h8600a3d497556319E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1232) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1232, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1232, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1232, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1232, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1232, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1232, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1232, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1232, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1232 store i64 128, ptr %n.i, align 8, !noalias !1232 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1232 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1232 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1232 store ptr null, ptr %_16.i, align 8, !noalias !1232 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1232 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1232 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1232 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1232 store ptr null, ptr %_24.i, align 8, !noalias !1232 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1232 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1232 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1232 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1232 store ptr null, ptr %_32.i, align 8, !noalias !1232 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1232 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1232 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1232 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbb8cd5a8ca1cea8bE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1232 store ptr null, ptr %_40.i, align 8, !noalias !1232 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbb8cd5a8ca1cea8bE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1232 tail call void @llvm.experimental.noalias.scope.decl(metadata !1235) tail call void @llvm.experimental.noalias.scope.decl(metadata !1238) tail call void @llvm.experimental.noalias.scope.decl(metadata !1240) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbb8cd5a8ca1cea8bE.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbb8cd5a8ca1cea8bE.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1240, !noalias !1242 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1240, !noalias !1242 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1240, !noalias !1242 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1235, !noalias !1243 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1235, !noalias !1243 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1235, !noalias !1243 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1235, !noalias !1243 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = bitcast <8 x i64> %19 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fadd <8 x double> %14, %16 %23 = fsub <8 x double> %15, %21 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %21 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %22, <8 x double> %_4.i111, <8 x i32> %39 = shufflevector <8 x double> %22, <8 x double> %_4.i111, <8 x i32> %40 = shufflevector <8 x double> %_4.i110, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i110, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1238, !noalias !1244 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1238, !noalias !1244 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1238, !noalias !1244 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1238, !noalias !1244 %exitcond.not.i = icmp eq i64 %13, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1245) tail call void @llvm.experimental.noalias.scope.decl(metadata !1248) tail call void @llvm.experimental.noalias.scope.decl(metadata !1250) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1250, !noalias !1252, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1250, !noalias !1252, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1250, !noalias !1252, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1250, !noalias !1252, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1250, !noalias !1252, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1250, !noalias !1252, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1245, !noalias !1253 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1245, !noalias !1253 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1245, !noalias !1253 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1245, !noalias !1253 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = bitcast <8 x i64> %75 to <8 x double> %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = fadd <8 x double> %70, %72 store <8 x double> %78, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1248, !noalias !1254 %79 = fsub <8 x double> %71, %77 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i114 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i114, ptr %62, align 8, !alias.scope !1248, !noalias !1254 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i113 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i113, ptr %61, align 8, !alias.scope !1248, !noalias !1254 %85 = fadd <8 x double> %71, %77 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i112 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i112, ptr %63, align 8, !alias.scope !1248, !noalias !1254 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 8 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1255) tail call void @llvm.experimental.noalias.scope.decl(metadata !1258) tail call void @llvm.experimental.noalias.scope.decl(metadata !1260) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %_2.i.i.i.us.i90 = phi i1 [ false, %bb22.us.i36 ], [ true, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %iter.sroa.60.0648.us.i37 = phi i64 [ 1, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl nuw nsw i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl nuw nsw i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !1260, !noalias !1262, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !1260, !noalias !1262, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !1260, !noalias !1262, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !1260, !noalias !1262, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !1260, !noalias !1262, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !1260, !noalias !1262, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !1255, !noalias !1263 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !1255, !noalias !1263 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1255, !noalias !1263 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !1255, !noalias !1263 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = bitcast <8 x i64> %112 to <8 x double> %114 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %115 = fadd <8 x double> %107, %109 store <8 x double> %115, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1258, !noalias !1264 %116 = fsub <8 x double> %108, %114 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i117 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i117, ptr %99, align 8, !alias.scope !1258, !noalias !1264 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i116 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i116, ptr %98, align 8, !alias.scope !1258, !noalias !1264 %122 = fadd <8 x double> %108, %114 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i115 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i115, ptr %100, align 8, !alias.scope !1258, !noalias !1264 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !1255, !noalias !1263 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !1255, !noalias !1263 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1255, !noalias !1263 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1255, !noalias !1263 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = bitcast <8 x i64> %130 to <8 x double> %132 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %133 = fadd <8 x double> %125, %127 store <8 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1258, !noalias !1264 %134 = fsub <8 x double> %126, %132 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i117.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i117.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1258, !noalias !1264 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i116.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i116.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1258, !noalias !1264 %140 = fadd <8 x double> %126, %132 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i115.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i115.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !1258, !noalias !1264 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !1255, !noalias !1263 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !1255, !noalias !1263 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1255, !noalias !1263 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1255, !noalias !1263 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %143, %145 store <8 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1258, !noalias !1264 %152 = fsub <8 x double> %144, %150 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i117.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i117.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1258, !noalias !1264 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i116.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i116.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1258, !noalias !1264 %158 = fadd <8 x double> %144, %150 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i115.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i115.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !1258, !noalias !1264 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !1255, !noalias !1263 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !1255, !noalias !1263 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1255, !noalias !1263 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1255, !noalias !1263 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = bitcast <8 x i64> %166 to <8 x double> %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = fadd <8 x double> %161, %163 store <8 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1258, !noalias !1264 %170 = fsub <8 x double> %162, %168 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i117.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i117.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1258, !noalias !1264 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i116.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i116.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1258, !noalias !1264 %176 = fadd <8 x double> %162, %168 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i115.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i115.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !1258, !noalias !1264 br i1 %_2.i.i.i.us.i90, label %bb22.us.i36, label %bb18.i.i.i.i.preheader bb18.i.i.i.i.preheader: ; preds = %bb22.us.i36 %_51.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %49, align 8, !noalias !1232 %179 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload %180 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload store <8 x double> %179, ptr %buf.0.i, align 8, !noalias !1232 store <8 x double> %180, ptr %7, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 17 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_51.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1232 %181 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 %182 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %181, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1232 store <8 x double> %182, ptr %_3.i.i.i.i.1, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 18 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_51.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1232 %183 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 %184 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 store <8 x double> %183, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1232 store <8 x double> %184, ptr %_3.i.i.i.i.2, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 19 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_51.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1232 %185 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 %186 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 store <8 x double> %185, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1232 store <8 x double> %186, ptr %_3.i.i.i.i.3, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %_3.i2.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %_3.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_3.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_51.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.4, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4, align 8, !noalias !1232 %187 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 %188 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 store <8 x double> %187, ptr %_3.i.i.i.i.i.i.4, align 8, !noalias !1232 store <8 x double> %188, ptr %_3.i.i.i.i.4, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i2.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 21 %_3.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_51.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.5, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.5, align 8, !noalias !1232 %189 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 %190 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 store <8 x double> %189, ptr %_3.i.i.i.i.i.i.5, align 8, !noalias !1232 store <8 x double> %190, ptr %_3.i.i.i.i.5, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i2.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 22 %_3.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_51.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.6, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.6, align 8, !noalias !1232 %191 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 %192 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 store <8 x double> %191, ptr %_3.i.i.i.i.i.i.6, align 8, !noalias !1232 store <8 x double> %192, ptr %_3.i.i.i.i.6, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i2.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 23 %_3.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_51.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.7, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.7, align 8, !noalias !1232 %193 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 %194 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 store <8 x double> %193, ptr %_3.i.i.i.i.i.i.7, align 8, !noalias !1232 store <8 x double> %194, ptr %_3.i.i.i.i.7, align 8, !noalias !1232 %_3.i2.i.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %_3.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_51.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %50, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.8, align 8, !noalias !1232 %195 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 %196 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 store <8 x double> %195, ptr %8, align 8, !noalias !1232 store <8 x double> %196, ptr %_3.i.i.i.i.8, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i2.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 25 %_3.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_51.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.9, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.9, align 8, !noalias !1232 %197 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 %198 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 store <8 x double> %197, ptr %_3.i.i.i.i.i.i.9, align 8, !noalias !1232 store <8 x double> %198, ptr %_3.i.i.i.i.9, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %_3.i2.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 26 %_3.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_51.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.10, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.10, align 8, !noalias !1232 %199 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 %200 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 store <8 x double> %199, ptr %_3.i.i.i.i.i.i.10, align 8, !noalias !1232 store <8 x double> %200, ptr %_3.i.i.i.i.10, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i2.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 27 %_3.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_51.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.11, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.11, align 8, !noalias !1232 %201 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 %202 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 store <8 x double> %201, ptr %_3.i.i.i.i.i.i.11, align 8, !noalias !1232 store <8 x double> %202, ptr %_3.i.i.i.i.11, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %_3.i2.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %_3.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_3.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_51.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.12, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.12, align 8, !noalias !1232 %203 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 %204 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 store <8 x double> %203, ptr %_3.i.i.i.i.i.i.12, align 8, !noalias !1232 store <8 x double> %204, ptr %_3.i.i.i.i.12, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i2.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 29 %_3.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_51.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.13, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.13, align 8, !noalias !1232 %205 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 %206 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 store <8 x double> %205, ptr %_3.i.i.i.i.i.i.13, align 8, !noalias !1232 store <8 x double> %206, ptr %_3.i.i.i.i.13, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_3.i2.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 30 %_3.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_51.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.14, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.14, align 8, !noalias !1232 %207 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 %208 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 store <8 x double> %207, ptr %_3.i.i.i.i.i.i.14, align 8, !noalias !1232 store <8 x double> %208, ptr %_3.i.i.i.i.14, align 8, !noalias !1232 %_3.i.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i2.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 31 %_3.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_51.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.15, align 8, !noalias !1232 %_52.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.15, align 8, !noalias !1232 %209 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 %210 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 store <8 x double> %209, ptr %_3.i.i.i.i.i.i.15, align 8, !noalias !1232 store <8 x double> %210, ptr %_3.i.i.i.i.15, align 8, !noalias !1232 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1232 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h86259e550b3657b8E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1265) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1265, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1265, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1265, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1265, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %3, align 8, !alias.scope !1265, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %4, align 8, !alias.scope !1265, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1265 store i64 16, ptr %n.i, align 8, !noalias !1265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1265 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1265 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1265 store ptr null, ptr %_16.i, align 8, !noalias !1265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1265 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1265 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1265 store ptr null, ptr %_24.i, align 8, !noalias !1265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1265 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1265 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1265 store ptr null, ptr %_32.i, align 8, !noalias !1265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1265 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1265 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h114f4419fcae1a9bE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1265 store ptr null, ptr %_40.i, align 8, !noalias !1265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h114f4419fcae1a9bE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1265 %5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_51.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1268 %_52.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %6, align 8, !noalias !1268 %7 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload %8 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload, %_52.i.i.i.sroa.0.0.copyload store <8 x double> %7, ptr %scratch.0.i, align 8, !noalias !1268 store <8 x double> %8, ptr %5, align 8, !noalias !1268 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_51.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1268 %_52.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1268 %9 = fadd <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 %10 = fsub <8 x double> %_51.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.sroa.0.0.copyload.1 store <8 x double> %9, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1268 store <8 x double> %10, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1268 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1265 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h86f6c72c7c4c0150E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1272) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1272, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1272, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1272, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1272, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1272, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1272, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1272, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1272, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1272 store i64 512, ptr %n.i, align 8, !noalias !1272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1272 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1272 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1272 store ptr null, ptr %_16.i, align 8, !noalias !1272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1272 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1272 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1272 store ptr null, ptr %_24.i, align 8, !noalias !1272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1272 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1272 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1272 store ptr null, ptr %_32.i, align 8, !noalias !1272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1272 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1272 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha22c42d06dc0de1aE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1272 store ptr null, ptr %_40.i, align 8, !noalias !1272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha22c42d06dc0de1aE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1272 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha22c42d06dc0de1aE.exit" %iter.i.i.i.i.sroa.8.01407 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha22c42d06dc0de1aE.exit" ], [ %11, %bb9.i.i.i.i ] %8 = or disjoint i64 %iter.i.i.i.i.sroa.8.01407, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.01407 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.01407 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1272 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !1272 %9 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %10 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %9, ptr %_3.i.i.i.i, align 8, !noalias !1272 store <8 x double> %10, ptr %_3.i2.i.i.i, align 8, !noalias !1272 %11 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.01407, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %8 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %8 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1272 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1272 %12 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %13 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %12, ptr %_3.i.i.i.i.1, align 8, !noalias !1272 store <8 x double> %13, ptr %_3.i2.i.i.i.1, align 8, !noalias !1272 %exitcond.not.1 = icmp eq i64 %11, 64 br i1 %exitcond.not.1, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit", label %bb9.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit": ; preds = %bb9.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1275) tail call void @llvm.experimental.noalias.scope.decl(metadata !1278) tail call void @llvm.experimental.noalias.scope.decl(metadata !1280) %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 72 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 88 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 104 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 120 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i br i1 %_2.i.i.i.i, label %bb46.i, label %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit bb46.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit", %bb44.loopexit.i %_2.i.i.i.i = phi i1 [ false, %bb44.loopexit.i ], [ true, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit" ] %iter.sroa.208.05263.i = phi i64 [ 1, %bb44.loopexit.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h47d47e53aecf12cbE.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05263.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05263.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05263.i, 4 %29 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.04940.i = load <2 x float>, ptr %29, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %30 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.14941.i = load <2 x float>, ptr %30, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.04942.i = load <2 x float>, ptr %31, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.14943.i = load <2 x float>, ptr %32, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.04944.i = load <2 x float>, ptr %33, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.14945.i = load <2 x float>, ptr %34, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.04946.i = load <2 x float>, ptr %35, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.14947.i = load <2 x float>, ptr %36, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.04948.i = load <2 x float>, ptr %37, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.14949.i = load <2 x float>, ptr %38, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.04950.i = load <2 x float>, ptr %39, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.14951.i = load <2 x float>, ptr %40, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.04952.i = load <2 x float>, ptr %41, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.14953.i = load <2 x float>, ptr %42, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.04954.i = load <2 x float>, ptr %43, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.14955.i = load <2 x float>, ptr %44, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.04956.i = load <2 x float>, ptr %45, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.14957.i = load <2 x float>, ptr %46, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.04958.i = load <2 x float>, ptr %47, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.14959.i = load <2 x float>, ptr %48, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.04960.i = load <2 x float>, ptr %49, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.14961.i = load <2 x float>, ptr %50, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.04962.i = load <2 x float>, ptr %51, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.14963.i = load <2 x float>, ptr %52, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.04964.i = load <2 x float>, ptr %53, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.14965.i = load <2 x float>, ptr %54, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.04966.i = load <2 x float>, ptr %55, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.14967.i = load <2 x float>, ptr %56, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.04968.i = load <2 x float>, ptr %57, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.14969.i = load <2 x float>, ptr %58, align 8, !alias.scope !1280, !noalias !1282, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.04940.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.14941.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %59 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.04942.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.14943.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %60 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.04944.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.14945.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %61 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.04946.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.14947.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %62 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.04948.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.14949.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %63 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.04950.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.14951.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %64 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.04952.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.14953.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %65 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.04954.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.14955.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %66 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.04956.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.14957.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %67 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.04958.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.14959.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %68 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.04960.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.14961.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %69 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.04962.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.14963.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %70 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.04964.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.14965.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %71 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.04966.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.14967.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %72 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.04968.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.14969.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %73 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %76 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %77 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %78 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %79 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %80 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %81 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %82 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %83 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %84 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %89 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %90 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %91 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %92 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %93 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> zeroinitializer %94 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> %95 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> zeroinitializer %96 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> %97 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> zeroinitializer %98 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> %99 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> zeroinitializer %100 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> %101 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> %107 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> zeroinitializer %108 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> %109 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> zeroinitializer %110 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> %111 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> zeroinitializer %112 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> %113 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> zeroinitializer %114 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> %115 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> zeroinitializer %116 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> %117 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> zeroinitializer %118 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05074.i = phi i64 [ %119, %bb98.i ], [ 0, %bb46.i ] %119 = add nuw nsw i64 %iter10.sroa.218.05074.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %77, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %76, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %78, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %75, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %80, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %79, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %81, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %74, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %84, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %83, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %85, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %82, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %87, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %86, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %88, i64 %iter10.sroa.218.05074.i %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %_220.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %120 = shufflevector <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %90, %120 %_4.i56 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %89, <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> %121, i32 noundef 4) #23 %_222.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %122 = shufflevector <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %92, %122 %_4.i55 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %91, <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> %123, i32 noundef 4) #23 %_224.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %124 = shufflevector <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %125 = fmul <8 x double> %94, %124 %_4.i54 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> %125, i32 noundef 4) #23 %_226.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %126 = shufflevector <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %127 = fmul <8 x double> %96, %126 %_4.i53 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> %127, i32 noundef 4) #23 %_228.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %128 = shufflevector <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %129 = fmul <8 x double> %98, %128 %_4.i52 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %97, <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> %129, i32 noundef 4) #23 %_230.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %130 = shufflevector <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %131 = fmul <8 x double> %100, %130 %_4.i51 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %99, <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> %131, i32 noundef 4) #23 %_232.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %132 = shufflevector <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %133 = fmul <8 x double> %102, %132 %_4.i50 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> %133, i32 noundef 4) #23 %_234.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %134 = shufflevector <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %135 = fmul <8 x double> %104, %134 %_4.i49 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> %135, i32 noundef 4) #23 %_236.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %136 = shufflevector <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %106, %136 %_4.i48 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> %137, i32 noundef 4) #23 %_238.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %138 = shufflevector <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %108, %138 %_4.i47 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %107, <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> %139, i32 noundef 4) #23 %_240.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %140 = shufflevector <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %110, %140 %_4.i46 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %109, <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> %141, i32 noundef 4) #23 %_242.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %142 = shufflevector <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %112, %142 %_4.i45 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %111, <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> %143, i32 noundef 4) #23 %_244.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %144 = shufflevector <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %114, %144 %_4.i44 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %113, <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> %145, i32 noundef 4) #23 %_246.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %146 = shufflevector <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %116, %146 %_4.i43 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %115, <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> %147, i32 noundef 4) #23 %_248.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !1278, !noalias !1283 %148 = shufflevector <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = fmul <8 x double> %118, %148 %_4.i42 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %117, <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> %149, i32 noundef 4) #23 %150 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i49 %151 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i49 %152 = fadd <8 x double> %_4.i53, %_4.i45 %153 = fsub <8 x double> %_4.i53, %_4.i45 %154 = fadd <8 x double> %_4.i55, %_4.i47 %155 = fsub <8 x double> %_4.i55, %_4.i47 %156 = fadd <8 x double> %_4.i51, %_4.i43 %157 = fsub <8 x double> %_4.i51, %_4.i43 %158 = fadd <8 x double> %_4.i56, %_4.i48 %159 = fsub <8 x double> %_4.i56, %_4.i48 %160 = fadd <8 x double> %_4.i52, %_4.i44 %161 = fsub <8 x double> %_4.i52, %_4.i44 %162 = fadd <8 x double> %_4.i54, %_4.i46 %163 = fsub <8 x double> %_4.i54, %_4.i46 %164 = fadd <8 x double> %_4.i50, %_4.i42 %165 = fsub <8 x double> %_4.i50, %_4.i42 %166 = bitcast <8 x double> %153 to <8 x i64> %167 = xor <8 x i64> %166, %168 = bitcast <8 x i64> %167 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = bitcast <8 x double> %157 to <8 x i64> %171 = xor <8 x i64> %170, %172 = bitcast <8 x i64> %171 to <8 x double> %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = bitcast <8 x double> %161 to <8 x i64> %175 = xor <8 x i64> %174, %176 = bitcast <8 x i64> %175 to <8 x double> %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = bitcast <8 x double> %165 to <8 x i64> %179 = xor <8 x i64> %178, %180 = bitcast <8 x i64> %179 to <8 x double> %181 = shufflevector <8 x double> %180, <8 x double> poison, <8 x i32> %182 = fadd <8 x double> %150, %152 %183 = fsub <8 x double> %151, %169 %184 = fsub <8 x double> %150, %152 %185 = fadd <8 x double> %151, %169 %186 = fadd <8 x double> %154, %156 %187 = fsub <8 x double> %155, %173 %188 = fsub <8 x double> %154, %156 %189 = fadd <8 x double> %155, %173 %190 = fadd <8 x double> %158, %160 %191 = fsub <8 x double> %159, %177 %192 = fsub <8 x double> %158, %160 %193 = fadd <8 x double> %159, %177 %194 = fadd <8 x double> %162, %164 %195 = fsub <8 x double> %163, %181 %196 = fsub <8 x double> %162, %164 %197 = fadd <8 x double> %163, %181 %198 = bitcast <8 x double> %187 to <8 x i64> %199 = xor <8 x i64> %198, %200 = bitcast <8 x i64> %199 to <8 x double> %201 = shufflevector <8 x double> %200, <8 x double> poison, <8 x i32> %202 = fadd <8 x double> %187, %201 %203 = fmul <8 x double> %202, %204 = bitcast <8 x double> %188 to <8 x i64> %205 = xor <8 x i64> %204, %206 = bitcast <8 x i64> %205 to <8 x double> %207 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %208 = bitcast <8 x double> %189 to <8 x i64> %209 = xor <8 x i64> %208, %210 = bitcast <8 x i64> %209 to <8 x double> %211 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %212 = fadd <8 x double> %189, %211 %213 = fmul <8 x double> %212, %214 = fadd <8 x double> %182, %186 %215 = fadd <8 x double> %183, %203 %216 = fsub <8 x double> %184, %207 %217 = fsub <8 x double> %185, %213 %218 = fsub <8 x double> %182, %186 %219 = fsub <8 x double> %183, %203 %220 = fadd <8 x double> %184, %207 %221 = fadd <8 x double> %185, %213 %222 = bitcast <8 x double> %195 to <8 x i64> %223 = xor <8 x i64> %222, %224 = bitcast <8 x i64> %223 to <8 x double> %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = fadd <8 x double> %195, %225 %227 = fmul <8 x double> %226, %228 = bitcast <8 x double> %196 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x i64> %229 to <8 x double> %231 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %232 = bitcast <8 x double> %197 to <8 x i64> %233 = xor <8 x i64> %232, %234 = bitcast <8 x i64> %233 to <8 x double> %235 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %236 = fadd <8 x double> %197, %235 %237 = fmul <8 x double> %236, %238 = fadd <8 x double> %190, %194 %239 = fadd <8 x double> %191, %227 %240 = fsub <8 x double> %192, %231 %241 = fsub <8 x double> %193, %237 %242 = fsub <8 x double> %190, %194 %243 = fsub <8 x double> %191, %227 %244 = fadd <8 x double> %192, %231 %245 = fadd <8 x double> %193, %237 %246 = fadd <8 x double> %214, %238 store <8 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %247 = fsub <8 x double> %214, %238 store <8 x double> %247, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %248 = fmul <8 x double> %239, %249 = shufflevector <8 x double> %248, <8 x double> poison, <8 x i32> %_4.i41 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %239, <8 x double> %249, i32 noundef 4) #23 %250 = fadd <8 x double> %_4.i41, %215 store <8 x double> %250, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %251 = fsub <8 x double> %215, %_4.i41 store <8 x double> %251, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %252 = bitcast <8 x double> %240 to <8 x i64> %253 = xor <8 x i64> %252, %254 = bitcast <8 x i64> %253 to <8 x double> %255 = shufflevector <8 x double> %254, <8 x double> poison, <8 x i32> %256 = fadd <8 x double> %240, %255 %257 = fmul <8 x double> %256, %258 = fadd <8 x double> %216, %257 store <8 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %259 = fsub <8 x double> %216, %257 store <8 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %260 = fmul <8 x double> %241, %261 = shufflevector <8 x double> %260, <8 x double> poison, <8 x i32> %_4.i40 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %241, <8 x double> %261, i32 noundef 4) #23 %262 = fadd <8 x double> %_4.i40, %217 store <8 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %263 = fsub <8 x double> %217, %_4.i40 store <8 x double> %263, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %264 = bitcast <8 x double> %242 to <8 x i64> %265 = xor <8 x i64> %264, %266 = bitcast <8 x i64> %265 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fsub <8 x double> %218, %267 store <8 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %269 = fadd <8 x double> %218, %267 store <8 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %270 = fmul <8 x double> %243, %271 = shufflevector <8 x double> %270, <8 x double> poison, <8 x i32> %_4.i39 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %243, <8 x double> %271, i32 noundef 4) #23 %272 = fsub <8 x double> %219, %_4.i39 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %273 = fadd <8 x double> %219, %_4.i39 store <8 x double> %273, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %274 = bitcast <8 x double> %244 to <8 x i64> %275 = xor <8 x i64> %274, %276 = bitcast <8 x i64> %275 to <8 x double> %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fadd <8 x double> %244, %277 %279 = fmul <8 x double> %278, %280 = fsub <8 x double> %220, %279 store <8 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %281 = fadd <8 x double> %220, %279 store <8 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %282 = fmul <8 x double> %245, %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %245, <8 x double> %283, i32 noundef 4) #23 %284 = fsub <8 x double> %221, %_4.i store <8 x double> %284, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %285 = fadd <8 x double> %221, %_4.i store <8 x double> %285, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1275, !noalias !1284 %exitcond.not.i = icmp eq i64 %119, 4 br i1 %exitcond.not.i, label %bb44.loopexit.i, label %bb98.i _ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit: ; preds = %bb44.loopexit.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1285) tail call void @llvm.experimental.noalias.scope.decl(metadata !1288) tail call void @llvm.experimental.noalias.scope.decl(metadata !1290) %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %295 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 72 %296 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 88 %297 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %298 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 104 %299 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 120 %300 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %301 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %302 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %303 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %304 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %305 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %306 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %307 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %308 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %309 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %310 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 72 %311 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 88 %312 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %313 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 104 %314 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 120 br label %bb39.i bb39.i: ; preds = %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit, %bb39.i %iter.sroa.218.04494.i = phi i64 [ %315, %bb39.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit ] %315 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21 = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22 = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23 = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24 = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25 = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26 = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28 = getelementptr inbounds %"fft_simd::c64x4", ptr %295, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29 = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30 = getelementptr inbounds %"fft_simd::c64x4", ptr %296, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31 = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32 = getelementptr inbounds %"fft_simd::c64x4", ptr %298, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i33 = getelementptr inbounds %"fft_simd::c64x4", ptr %297, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i34 = getelementptr inbounds %"fft_simd::c64x4", ptr %299, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %303, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %302, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %304, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %301, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %306, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %305, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %307, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %300, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %310, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %309, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %311, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %308, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %313, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %312, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i35 = getelementptr inbounds %"fft_simd::c64x4", ptr %314, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1290, !noalias !1292 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i35, align 8, !alias.scope !1290, !noalias !1292 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1288, !noalias !1293 %316 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %316, align 8, !alias.scope !1288, !noalias !1293 %317 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %317, align 8, !alias.scope !1288, !noalias !1293 %318 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %318, align 8, !alias.scope !1288, !noalias !1293 %319 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %319, align 8, !alias.scope !1288, !noalias !1293 %320 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %320, align 8, !alias.scope !1288, !noalias !1293 %321 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %321, align 8, !alias.scope !1288, !noalias !1293 %322 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %322, align 8, !alias.scope !1288, !noalias !1293 %323 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %323, align 8, !alias.scope !1288, !noalias !1293 %324 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %324, align 8, !alias.scope !1288, !noalias !1293 %325 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %325, align 8, !alias.scope !1288, !noalias !1293 %326 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %326, align 8, !alias.scope !1288, !noalias !1293 %327 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %327, align 8, !alias.scope !1288, !noalias !1293 %328 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %328, align 8, !alias.scope !1288, !noalias !1293 %329 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %329, align 8, !alias.scope !1288, !noalias !1293 %330 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %330, align 8, !alias.scope !1288, !noalias !1293 %331 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %332 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %333 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %334 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %335 = shufflevector <8 x double> %331, <8 x double> %333, <8 x i32> %336 = shufflevector <8 x double> %331, <8 x double> %333, <8 x i32> %337 = shufflevector <8 x double> %332, <8 x double> %334, <8 x i32> %338 = shufflevector <8 x double> %332, <8 x double> %334, <8 x i32> %339 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %340 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %341 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %342 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %343 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %344 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %345 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %346 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %347 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %348 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %349 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %350 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %351 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %352 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %353 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %354 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %355 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %356 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %357 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %358 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %359 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %360 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %361 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %362 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %363 = shufflevector <8 x double> %337, <8 x double> poison, <8 x i32> %364 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %365 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %366 = fmul <8 x double> %365, %363 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %364, <8 x double> %337, <8 x double> %366, i32 noundef 4) #23 %367 = shufflevector <8 x double> %336, <8 x double> poison, <8 x i32> %368 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %369 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %370 = fmul <8 x double> %369, %367 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %368, <8 x double> %336, <8 x double> %370, i32 noundef 4) #23 %371 = shufflevector <8 x double> %338, <8 x double> poison, <8 x i32> %372 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %373 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %374 = fmul <8 x double> %373, %371 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %372, <8 x double> %338, <8 x double> %374, i32 noundef 4) #23 %375 = shufflevector <8 x double> %343, <8 x double> poison, <8 x i32> %376 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %377 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %378 = fmul <8 x double> %377, %375 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %376, <8 x double> %343, <8 x double> %378, i32 noundef 4) #23 %379 = shufflevector <8 x double> %345, <8 x double> poison, <8 x i32> %380 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %381 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %382 = fmul <8 x double> %381, %379 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %380, <8 x double> %345, <8 x double> %382, i32 noundef 4) #23 %383 = shufflevector <8 x double> %344, <8 x double> poison, <8 x i32> %384 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %385 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %386 = fmul <8 x double> %385, %383 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %384, <8 x double> %344, <8 x double> %386, i32 noundef 4) #23 %387 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %388 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %389 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %390 = fmul <8 x double> %389, %387 %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %388, <8 x double> %346, <8 x double> %390, i32 noundef 4) #23 %391 = shufflevector <8 x double> %351, <8 x double> poison, <8 x i32> %392 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %393 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %394 = fmul <8 x double> %393, %391 %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %392, <8 x double> %351, <8 x double> %394, i32 noundef 4) #23 %395 = shufflevector <8 x double> %353, <8 x double> poison, <8 x i32> %396 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %397 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %398 = fmul <8 x double> %397, %395 %_4.i67 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %396, <8 x double> %353, <8 x double> %398, i32 noundef 4) #23 %399 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %400 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %401 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %402 = fmul <8 x double> %401, %399 %_4.i66 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %400, <8 x double> %352, <8 x double> %402, i32 noundef 4) #23 %403 = shufflevector <8 x double> %354, <8 x double> poison, <8 x i32> %404 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %405 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %406 = fmul <8 x double> %405, %403 %_4.i65 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %404, <8 x double> %354, <8 x double> %406, i32 noundef 4) #23 %407 = shufflevector <8 x double> %359, <8 x double> poison, <8 x i32> %408 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %409 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %410 = fmul <8 x double> %409, %407 %_4.i64 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %408, <8 x double> %359, <8 x double> %410, i32 noundef 4) #23 %411 = shufflevector <8 x double> %361, <8 x double> poison, <8 x i32> %412 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %413 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %414 = fmul <8 x double> %413, %411 %_4.i63 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %412, <8 x double> %361, <8 x double> %414, i32 noundef 4) #23 %415 = shufflevector <8 x double> %360, <8 x double> poison, <8 x i32> %416 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %417 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %418 = fmul <8 x double> %417, %415 %_4.i62 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %416, <8 x double> %360, <8 x double> %418, i32 noundef 4) #23 %419 = shufflevector <8 x double> %362, <8 x double> poison, <8 x i32> %420 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %421 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %422 = fmul <8 x double> %421, %419 %_4.i61 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %420, <8 x double> %362, <8 x double> %422, i32 noundef 4) #23 %423 = fadd <8 x double> %335, %_4.i68 %424 = fsub <8 x double> %335, %_4.i68 %425 = fadd <8 x double> %_4.i72, %_4.i64 %426 = fsub <8 x double> %_4.i72, %_4.i64 %427 = fadd <8 x double> %_4.i74, %_4.i66 %428 = fsub <8 x double> %_4.i74, %_4.i66 %429 = fadd <8 x double> %_4.i70, %_4.i62 %430 = fsub <8 x double> %_4.i70, %_4.i62 %431 = fadd <8 x double> %_4.i75, %_4.i67 %432 = fsub <8 x double> %_4.i75, %_4.i67 %433 = fadd <8 x double> %_4.i71, %_4.i63 %434 = fsub <8 x double> %_4.i71, %_4.i63 %435 = fadd <8 x double> %_4.i73, %_4.i65 %436 = fsub <8 x double> %_4.i73, %_4.i65 %437 = fadd <8 x double> %_4.i69, %_4.i61 %438 = fsub <8 x double> %_4.i69, %_4.i61 %439 = bitcast <8 x double> %426 to <8 x i64> %440 = xor <8 x i64> %439, %441 = bitcast <8 x i64> %440 to <8 x double> %442 = shufflevector <8 x double> %441, <8 x double> poison, <8 x i32> %443 = bitcast <8 x double> %430 to <8 x i64> %444 = xor <8 x i64> %443, %445 = bitcast <8 x i64> %444 to <8 x double> %446 = shufflevector <8 x double> %445, <8 x double> poison, <8 x i32> %447 = bitcast <8 x double> %434 to <8 x i64> %448 = xor <8 x i64> %447, %449 = bitcast <8 x i64> %448 to <8 x double> %450 = shufflevector <8 x double> %449, <8 x double> poison, <8 x i32> %451 = bitcast <8 x double> %438 to <8 x i64> %452 = xor <8 x i64> %451, %453 = bitcast <8 x i64> %452 to <8 x double> %454 = shufflevector <8 x double> %453, <8 x double> poison, <8 x i32> %455 = fadd <8 x double> %423, %425 %456 = fsub <8 x double> %424, %442 %457 = fsub <8 x double> %423, %425 %458 = fadd <8 x double> %424, %442 %459 = fadd <8 x double> %427, %429 %460 = fsub <8 x double> %428, %446 %461 = fsub <8 x double> %427, %429 %462 = fadd <8 x double> %428, %446 %463 = fadd <8 x double> %431, %433 %464 = fsub <8 x double> %432, %450 %465 = fsub <8 x double> %431, %433 %466 = fadd <8 x double> %432, %450 %467 = fadd <8 x double> %435, %437 %468 = fsub <8 x double> %436, %454 %469 = fsub <8 x double> %435, %437 %470 = fadd <8 x double> %436, %454 %471 = bitcast <8 x double> %460 to <8 x i64> %472 = xor <8 x i64> %471, %473 = bitcast <8 x i64> %472 to <8 x double> %474 = shufflevector <8 x double> %473, <8 x double> poison, <8 x i32> %475 = fadd <8 x double> %460, %474 %476 = fmul <8 x double> %475, %477 = bitcast <8 x double> %461 to <8 x i64> %478 = xor <8 x i64> %477, %479 = bitcast <8 x i64> %478 to <8 x double> %480 = shufflevector <8 x double> %479, <8 x double> poison, <8 x i32> %481 = bitcast <8 x double> %462 to <8 x i64> %482 = xor <8 x i64> %481, %483 = bitcast <8 x i64> %482 to <8 x double> %484 = shufflevector <8 x double> %483, <8 x double> poison, <8 x i32> %485 = fadd <8 x double> %462, %484 %486 = fmul <8 x double> %485, %487 = fadd <8 x double> %455, %459 %488 = fadd <8 x double> %456, %476 %489 = fsub <8 x double> %457, %480 %490 = fsub <8 x double> %458, %486 %491 = fsub <8 x double> %455, %459 %492 = fsub <8 x double> %456, %476 %493 = fadd <8 x double> %457, %480 %494 = fadd <8 x double> %458, %486 %495 = bitcast <8 x double> %468 to <8 x i64> %496 = xor <8 x i64> %495, %497 = bitcast <8 x i64> %496 to <8 x double> %498 = shufflevector <8 x double> %497, <8 x double> poison, <8 x i32> %499 = fadd <8 x double> %468, %498 %500 = fmul <8 x double> %499, %501 = bitcast <8 x double> %469 to <8 x i64> %502 = xor <8 x i64> %501, %503 = bitcast <8 x i64> %502 to <8 x double> %504 = shufflevector <8 x double> %503, <8 x double> poison, <8 x i32> %505 = bitcast <8 x double> %470 to <8 x i64> %506 = xor <8 x i64> %505, %507 = bitcast <8 x i64> %506 to <8 x double> %508 = shufflevector <8 x double> %507, <8 x double> poison, <8 x i32> %509 = fadd <8 x double> %470, %508 %510 = fmul <8 x double> %509, %511 = fadd <8 x double> %463, %467 %512 = fadd <8 x double> %464, %500 %513 = fsub <8 x double> %465, %504 %514 = fsub <8 x double> %466, %510 %515 = fsub <8 x double> %463, %467 %516 = fsub <8 x double> %464, %500 %517 = fadd <8 x double> %465, %504 %518 = fadd <8 x double> %466, %510 %519 = fadd <8 x double> %487, %511 store <8 x double> %519, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1285, !noalias !1294 %520 = fsub <8 x double> %487, %511 store <8 x double> %520, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27, align 8, !alias.scope !1285, !noalias !1294 %521 = fmul <8 x double> %512, %522 = shufflevector <8 x double> %521, <8 x double> poison, <8 x i32> %_4.i60 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %512, <8 x double> %522, i32 noundef 4) #23 %523 = fadd <8 x double> %_4.i60, %488 store <8 x double> %523, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1285, !noalias !1294 %524 = fsub <8 x double> %488, %_4.i60 store <8 x double> %524, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28, align 8, !alias.scope !1285, !noalias !1294 %525 = bitcast <8 x double> %513 to <8 x i64> %526 = xor <8 x i64> %525, %527 = bitcast <8 x i64> %526 to <8 x double> %528 = shufflevector <8 x double> %527, <8 x double> poison, <8 x i32> %529 = fadd <8 x double> %513, %528 %530 = fmul <8 x double> %529, %531 = fadd <8 x double> %489, %530 store <8 x double> %531, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21, align 8, !alias.scope !1285, !noalias !1294 %532 = fsub <8 x double> %489, %530 store <8 x double> %532, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29, align 8, !alias.scope !1285, !noalias !1294 %533 = fmul <8 x double> %514, %534 = shufflevector <8 x double> %533, <8 x double> poison, <8 x i32> %_4.i59 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %514, <8 x double> %534, i32 noundef 4) #23 %535 = fadd <8 x double> %_4.i59, %490 store <8 x double> %535, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22, align 8, !alias.scope !1285, !noalias !1294 %536 = fsub <8 x double> %490, %_4.i59 store <8 x double> %536, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30, align 8, !alias.scope !1285, !noalias !1294 %537 = bitcast <8 x double> %515 to <8 x i64> %538 = xor <8 x i64> %537, %539 = bitcast <8 x i64> %538 to <8 x double> %540 = shufflevector <8 x double> %539, <8 x double> poison, <8 x i32> %541 = fsub <8 x double> %491, %540 store <8 x double> %541, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23, align 8, !alias.scope !1285, !noalias !1294 %542 = fadd <8 x double> %491, %540 store <8 x double> %542, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31, align 8, !alias.scope !1285, !noalias !1294 %543 = fmul <8 x double> %516, %544 = shufflevector <8 x double> %543, <8 x double> poison, <8 x i32> %_4.i58 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %516, <8 x double> %544, i32 noundef 4) #23 %545 = fsub <8 x double> %492, %_4.i58 store <8 x double> %545, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24, align 8, !alias.scope !1285, !noalias !1294 %546 = fadd <8 x double> %492, %_4.i58 store <8 x double> %546, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32, align 8, !alias.scope !1285, !noalias !1294 %547 = bitcast <8 x double> %517 to <8 x i64> %548 = xor <8 x i64> %547, %549 = bitcast <8 x i64> %548 to <8 x double> %550 = shufflevector <8 x double> %549, <8 x double> poison, <8 x i32> %551 = fadd <8 x double> %517, %550 %552 = fmul <8 x double> %551, %553 = fsub <8 x double> %493, %552 store <8 x double> %553, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25, align 8, !alias.scope !1285, !noalias !1294 %554 = fadd <8 x double> %493, %552 store <8 x double> %554, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i33, align 8, !alias.scope !1285, !noalias !1294 %555 = fmul <8 x double> %518, %556 = shufflevector <8 x double> %555, <8 x double> poison, <8 x i32> %_4.i57 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %518, <8 x double> %556, i32 noundef 4) #23 %557 = fsub <8 x double> %494, %_4.i57 store <8 x double> %557, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26, align 8, !alias.scope !1285, !noalias !1294 %558 = fadd <8 x double> %494, %_4.i57 store <8 x double> %558, ptr %_3.i.i.i.i.i.i.i.i.i.i.i34, align 8, !alias.scope !1285, !noalias !1294 %exitcond.not.i38 = icmp eq i64 %315, 8 br i1 %exitcond.not.i38, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1272 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h877a8c7b45d9683dE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1295) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1295, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1295, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1295, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1295, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1295, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1295, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1295, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1295, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1295 store i64 512, ptr %n.i, align 8, !noalias !1295 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1295 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1295 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1295 store ptr null, ptr %_16.i, align 8, !noalias !1295 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1295 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1295 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1295 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1295 store ptr null, ptr %_24.i, align 8, !noalias !1295 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1295 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1295 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1295 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1295 store ptr null, ptr %_32.i, align 8, !noalias !1295 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1295 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1295 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1295 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he8cd0946196f6e0cE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1295 store ptr null, ptr %_40.i, align 8, !noalias !1295 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he8cd0946196f6e0cE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1295 tail call void @llvm.experimental.noalias.scope.decl(metadata !1298) tail call void @llvm.experimental.noalias.scope.decl(metadata !1301) tail call void @llvm.experimental.noalias.scope.decl(metadata !1303) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he8cd0946196f6e0cE.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he8cd0946196f6e0cE.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1303, !noalias !1305 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1303, !noalias !1305 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1303, !noalias !1305 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1298, !noalias !1306 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1298, !noalias !1306 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1298, !noalias !1306 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1298, !noalias !1306 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = bitcast <8 x i64> %19 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fadd <8 x double> %14, %16 %23 = fsub <8 x double> %15, %21 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i174 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %21 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %22, <8 x double> %_4.i174, <8 x i32> %39 = shufflevector <8 x double> %22, <8 x double> %_4.i174, <8 x i32> %40 = shufflevector <8 x double> %_4.i173, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i173, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1301, !noalias !1307 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1301, !noalias !1307 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1301, !noalias !1307 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1301, !noalias !1307 %exitcond.not.i = icmp eq i64 %13, 32 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1308) tail call void @llvm.experimental.noalias.scope.decl(metadata !1311) tail call void @llvm.experimental.noalias.scope.decl(metadata !1313) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1313, !noalias !1315, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1313, !noalias !1315, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1313, !noalias !1315, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1313, !noalias !1315, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1313, !noalias !1315, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1313, !noalias !1315, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1308, !noalias !1316 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1308, !noalias !1316 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1308, !noalias !1316 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1308, !noalias !1316 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = bitcast <8 x i64> %75 to <8 x double> %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = fadd <8 x double> %70, %72 store <8 x double> %78, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1311, !noalias !1317 %79 = fsub <8 x double> %71, %77 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i177 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i177, ptr %62, align 8, !alias.scope !1311, !noalias !1317 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i176 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i176, ptr %61, align 8, !alias.scope !1311, !noalias !1317 %85 = fadd <8 x double> %71, %77 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i175 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i175, ptr %63, align 8, !alias.scope !1311, !noalias !1317 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 32 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1318) tail call void @llvm.experimental.noalias.scope.decl(metadata !1321) tail call void @llvm.experimental.noalias.scope.decl(metadata !1323) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %iter.sroa.60.0648.us.i37 = phi i64 [ %179, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !1323, !noalias !1325, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !1323, !noalias !1325, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !1323, !noalias !1325, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !1323, !noalias !1325, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !1323, !noalias !1325, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !1323, !noalias !1325, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !1318, !noalias !1326 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !1318, !noalias !1326 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1318, !noalias !1326 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !1318, !noalias !1326 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = bitcast <8 x i64> %112 to <8 x double> %114 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %115 = fadd <8 x double> %107, %109 store <8 x double> %115, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1321, !noalias !1327 %116 = fsub <8 x double> %108, %114 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i180 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i180, ptr %99, align 8, !alias.scope !1321, !noalias !1327 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i179 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i179, ptr %98, align 8, !alias.scope !1321, !noalias !1327 %122 = fadd <8 x double> %108, %114 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i178 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i178, ptr %100, align 8, !alias.scope !1321, !noalias !1327 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !1318, !noalias !1326 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !1318, !noalias !1326 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1318, !noalias !1326 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1318, !noalias !1326 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = bitcast <8 x i64> %130 to <8 x double> %132 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %133 = fadd <8 x double> %125, %127 store <8 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1321, !noalias !1327 %134 = fsub <8 x double> %126, %132 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i180.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i180.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1321, !noalias !1327 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i179.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i179.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1321, !noalias !1327 %140 = fadd <8 x double> %126, %132 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i178.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i178.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !1321, !noalias !1327 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !1318, !noalias !1326 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !1318, !noalias !1326 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1318, !noalias !1326 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1318, !noalias !1326 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %143, %145 store <8 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1321, !noalias !1327 %152 = fsub <8 x double> %144, %150 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i180.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i180.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1321, !noalias !1327 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i179.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i179.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1321, !noalias !1327 %158 = fadd <8 x double> %144, %150 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i178.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i178.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !1321, !noalias !1327 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !1318, !noalias !1326 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !1318, !noalias !1326 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1318, !noalias !1326 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1318, !noalias !1326 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = bitcast <8 x i64> %166 to <8 x double> %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = fadd <8 x double> %161, %163 store <8 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1321, !noalias !1327 %170 = fsub <8 x double> %162, %168 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i180.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i180.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1321, !noalias !1327 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i179.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i179.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1321, !noalias !1327 %176 = fadd <8 x double> %162, %168 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i178.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i178.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !1321, !noalias !1327 %179 = add nuw nsw i64 %iter.sroa.60.0648.us.i37, 1 %exitcond523.not = icmp eq i64 %179, 8 br i1 %exitcond523.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91, label %bb22.us.i36 _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91: ; preds = %bb22.us.i36 tail call void @llvm.experimental.noalias.scope.decl(metadata !1328) tail call void @llvm.experimental.noalias.scope.decl(metadata !1331) tail call void @llvm.experimental.noalias.scope.decl(metadata !1333) %180 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0617.us.i120 = load <2 x float>, ptr %180, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1618.us.i121 = load <2 x float>, ptr %181, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0619.us.i122 = load <2 x float>, ptr %182, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1620.us.i123 = load <2 x float>, ptr %183, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0621.us.i124 = load <2 x float>, ptr %184, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1622.us.i125 = load <2 x float>, ptr %185, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i126 = shufflevector <2 x float> %w1.0617.us.i120, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i127 = shufflevector <2 x float> %w1.1618.us.i121, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i128 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i126, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i127, <4 x i32> %186 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i128 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i130 = shufflevector <2 x float> %w2.0619.us.i122, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i131 = shufflevector <2 x float> %w2.1620.us.i123, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i132 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i130, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i131, <4 x i32> %187 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i132 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i134 = shufflevector <2 x float> %w3.0621.us.i124, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i135 = shufflevector <2 x float> %w3.1622.us.i125, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i136 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i134, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i135, <4 x i32> %188 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i136 to <2 x double> %189 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %190 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %191 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> zeroinitializer %192 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> %193 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> zeroinitializer %194 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> %195 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> zeroinitializer %196 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> br label %bb38.us.i138 bb38.us.i138: ; preds = %bb38.us.i138, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91 %iter5.sroa.50.0635.us.i139 = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91 ], [ %197, %bb38.us.i138 ] %197 = add nuw nsw i64 %iter5.sroa.50.0635.us.i139, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter5.sroa.50.0635.us.i139 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141 = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142 = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143 = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.us.i144 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.us.i145 = getelementptr inbounds %"fft_simd::c64x4", ptr %189, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.us.i146 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.us.i147 = getelementptr inbounds %"fft_simd::c64x4", ptr %190, i64 %iter5.sroa.50.0635.us.i139 %a.sroa.0.0.copyload.us.i148 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140, align 8, !alias.scope !1328, !noalias !1336 %b.sroa.0.0.copyload.us.i149 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141, align 8, !alias.scope !1328, !noalias !1336 %c.sroa.0.0.copyload.us.i150 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142, align 8, !alias.scope !1328, !noalias !1336 %d.sroa.0.0.copyload.us.i151 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143, align 8, !alias.scope !1328, !noalias !1336 %198 = fadd <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %199 = fsub <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %200 = fadd <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %201 = fsub <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %202 = bitcast <8 x double> %201 to <8 x i64> %203 = xor <8 x i64> %202, %204 = bitcast <8 x i64> %203 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fadd <8 x double> %198, %200 store <8 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i144, align 8, !alias.scope !1331, !noalias !1337 %207 = fsub <8 x double> %199, %205 %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = fmul <8 x double> %192, %208 %_4.i183 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %191, <8 x double> %207, <8 x double> %209, i32 noundef 4) #23 store <8 x double> %_4.i183, ptr %_3.i.i.i.i.i.i.i.i.us.i145, align 8, !alias.scope !1331, !noalias !1337 %210 = fsub <8 x double> %198, %200 %211 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %212 = fmul <8 x double> %194, %211 %_4.i182 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %193, <8 x double> %210, <8 x double> %212, i32 noundef 4) #23 store <8 x double> %_4.i182, ptr %_3.i.i.i.i.i.i.us.i146, align 8, !alias.scope !1331, !noalias !1337 %213 = fadd <8 x double> %199, %205 %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = fmul <8 x double> %196, %214 %_4.i181 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %213, <8 x double> %215, i32 noundef 4) #23 store <8 x double> %_4.i181, ptr %_3.i.i.i.i.us.i147, align 8, !alias.scope !1331, !noalias !1337 %exitcond.not.i164 = icmp eq i64 %197, 16 br i1 %exitcond.not.i164, label %bb36.bb20.loopexit_crit_edge.us.i165, label %bb38.us.i138 bb36.bb20.loopexit_crit_edge.us.i165: ; preds = %bb38.us.i138 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %data.i.i.i.i.i.i.i.i.i.i.us.i116.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %data.i.i.i.i.i.i.i.i.us.i117.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %216 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1 %w1.0617.us.i120.1 = load <2 x float>, ptr %216, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %217 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 1, i32 1 %w1.1618.us.i121.1 = load <2 x float>, ptr %217, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %218 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2 %w2.0619.us.i122.1 = load <2 x float>, ptr %218, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %219 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 2, i32 1 %w2.1620.us.i123.1 = load <2 x float>, ptr %219, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %220 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3 %w3.0621.us.i124.1 = load <2 x float>, ptr %220, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %221 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 64, i64 3, i32 1 %w3.1622.us.i125.1 = load <2 x float>, ptr %221, align 8, !alias.scope !1333, !noalias !1335, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i126.1 = shufflevector <2 x float> %w1.0617.us.i120.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i127.1 = shufflevector <2 x float> %w1.1618.us.i121.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i128.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i126.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i127.1, <4 x i32> %222 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i128.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i130.1 = shufflevector <2 x float> %w2.0619.us.i122.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i131.1 = shufflevector <2 x float> %w2.1620.us.i123.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i132.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i130.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i131.1, <4 x i32> %223 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i132.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i134.1 = shufflevector <2 x float> %w3.0621.us.i124.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i135.1 = shufflevector <2 x float> %w3.1622.us.i125.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i136.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i134.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i135.1, <4 x i32> %224 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i136.1 to <2 x double> %225 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %226 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %227 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %228 = shufflevector <2 x double> %222, <2 x double> poison, <8 x i32> zeroinitializer %229 = shufflevector <2 x double> %222, <2 x double> poison, <8 x i32> %230 = shufflevector <2 x double> %223, <2 x double> poison, <8 x i32> zeroinitializer %231 = shufflevector <2 x double> %223, <2 x double> poison, <8 x i32> %232 = shufflevector <2 x double> %224, <2 x double> poison, <8 x i32> zeroinitializer %233 = shufflevector <2 x double> %224, <2 x double> poison, <8 x i32> br label %bb38.us.i138.1 bb38.us.i138.1: ; preds = %bb38.us.i138.1, %bb36.bb20.loopexit_crit_edge.us.i165 %iter5.sroa.50.0635.us.i139.1 = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i165 ], [ %234, %bb38.us.i138.1 ] %234 = add nuw nsw i64 %iter5.sroa.50.0635.us.i139.1, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i116.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i117.1, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.i.i.us.i144.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.i.i.us.i145.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %226, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.i.i.us.i146.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %225, i64 %iter5.sroa.50.0635.us.i139.1 %_3.i.i.i.i.us.i147.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %227, i64 %iter5.sroa.50.0635.us.i139.1 %a.sroa.0.0.copyload.us.i148.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140.1, align 8, !alias.scope !1328, !noalias !1336 %b.sroa.0.0.copyload.us.i149.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141.1, align 8, !alias.scope !1328, !noalias !1336 %c.sroa.0.0.copyload.us.i150.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142.1, align 8, !alias.scope !1328, !noalias !1336 %d.sroa.0.0.copyload.us.i151.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143.1, align 8, !alias.scope !1328, !noalias !1336 %235 = fadd <8 x double> %a.sroa.0.0.copyload.us.i148.1, %c.sroa.0.0.copyload.us.i150.1 %236 = fsub <8 x double> %a.sroa.0.0.copyload.us.i148.1, %c.sroa.0.0.copyload.us.i150.1 %237 = fadd <8 x double> %b.sroa.0.0.copyload.us.i149.1, %d.sroa.0.0.copyload.us.i151.1 %238 = fsub <8 x double> %b.sroa.0.0.copyload.us.i149.1, %d.sroa.0.0.copyload.us.i151.1 %239 = bitcast <8 x double> %238 to <8 x i64> %240 = xor <8 x i64> %239, %241 = bitcast <8 x i64> %240 to <8 x double> %242 = shufflevector <8 x double> %241, <8 x double> poison, <8 x i32> %243 = fadd <8 x double> %235, %237 store <8 x double> %243, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i144.1, align 8, !alias.scope !1331, !noalias !1337 %244 = fsub <8 x double> %236, %242 %245 = shufflevector <8 x double> %244, <8 x double> poison, <8 x i32> %246 = fmul <8 x double> %229, %245 %_4.i183.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %228, <8 x double> %244, <8 x double> %246, i32 noundef 4) #23 store <8 x double> %_4.i183.1, ptr %_3.i.i.i.i.i.i.i.i.us.i145.1, align 8, !alias.scope !1331, !noalias !1337 %247 = fsub <8 x double> %235, %237 %248 = shufflevector <8 x double> %247, <8 x double> poison, <8 x i32> %249 = fmul <8 x double> %231, %248 %_4.i182.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %230, <8 x double> %247, <8 x double> %249, i32 noundef 4) #23 store <8 x double> %_4.i182.1, ptr %_3.i.i.i.i.i.i.us.i146.1, align 8, !alias.scope !1331, !noalias !1337 %250 = fadd <8 x double> %236, %242 %251 = shufflevector <8 x double> %250, <8 x double> poison, <8 x i32> %252 = fmul <8 x double> %233, %251 %_4.i181.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %232, <8 x double> %250, <8 x double> %252, i32 noundef 4) #23 store <8 x double> %_4.i181.1, ptr %_3.i.i.i.i.us.i147.1, align 8, !alias.scope !1331, !noalias !1337 %exitcond.not.i164.1 = icmp eq i64 %234, 16 br i1 %exitcond.not.i164.1, label %bb9.i.i.i.i, label %bb38.us.i138.1 bb9.i.i.i.i: ; preds = %bb38.us.i138.1, %bb9.i.i.i.i %iter.i.i.i.i.sroa.8.0522 = phi i64 [ %256, %bb9.i.i.i.i ], [ 0, %bb38.us.i138.1 ] %253 = or disjoint i64 %iter.i.i.i.i.sroa.8.0522, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.0522 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.0522 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1295 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !1295 %254 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %255 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %254, ptr %_3.i.i.i.i, align 8, !noalias !1295 store <8 x double> %255, ptr %_3.i2.i.i.i, align 8, !noalias !1295 %256 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.0522, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %253 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %253 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1295 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1295 %257 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %258 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %257, ptr %_3.i.i.i.i.1, align 8, !noalias !1295 store <8 x double> %258, ptr %_3.i2.i.i.i.1, align 8, !noalias !1295 %exitcond524.not.1 = icmp eq i64 %256, 64 br i1 %exitcond524.not.1, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc3205509ebd15439E.exit", label %bb9.i.i.i.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc3205509ebd15439E.exit": ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1295 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h887043753fff2056E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1338) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1338, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1338, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1338, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1338, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1338, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1338, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1338, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1338, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1338 store i64 512, ptr %n.i, align 8, !noalias !1338 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1338 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1338 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1338 store ptr null, ptr %_16.i, align 8, !noalias !1338 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1338 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1338 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1338 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1338 store ptr null, ptr %_24.i, align 8, !noalias !1338 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1338 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1338 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1338 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1338 store ptr null, ptr %_32.i, align 8, !noalias !1338 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1338 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1338 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1338 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5e679b89a681da54E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1338 store ptr null, ptr %_40.i, align 8, !noalias !1338 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5e679b89a681da54E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1338 tail call void @llvm.experimental.noalias.scope.decl(metadata !1341) tail call void @llvm.experimental.noalias.scope.decl(metadata !1344) tail call void @llvm.experimental.noalias.scope.decl(metadata !1346) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 72 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 88 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 104 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 120 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 72 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 88 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 104 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 120 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5e679b89a681da54E.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %37, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5e679b89a681da54E.exit" ] %37 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1341, !noalias !1348 %38 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %40 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %42 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %44 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %46 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %48 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %50 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %52 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %54 = bitcast <8 x double> %41 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = bitcast <8 x double> %45 to <8 x i64> %59 = xor <8 x i64> %58, %60 = bitcast <8 x i64> %59 to <8 x double> %61 = shufflevector <8 x double> %60, <8 x double> poison, <8 x i32> %62 = bitcast <8 x double> %49 to <8 x i64> %63 = xor <8 x i64> %62, %64 = bitcast <8 x i64> %63 to <8 x double> %65 = shufflevector <8 x double> %64, <8 x double> poison, <8 x i32> %66 = bitcast <8 x double> %53 to <8 x i64> %67 = xor <8 x i64> %66, %68 = bitcast <8 x i64> %67 to <8 x double> %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = fadd <8 x double> %38, %40 %71 = fsub <8 x double> %39, %57 %72 = fsub <8 x double> %38, %40 %73 = fadd <8 x double> %39, %57 %74 = fadd <8 x double> %42, %44 %75 = fsub <8 x double> %43, %61 %76 = fsub <8 x double> %42, %44 %77 = fadd <8 x double> %43, %61 %78 = fadd <8 x double> %46, %48 %79 = fsub <8 x double> %47, %65 %80 = fsub <8 x double> %46, %48 %81 = fadd <8 x double> %47, %65 %82 = fadd <8 x double> %50, %52 %83 = fsub <8 x double> %51, %69 %84 = fsub <8 x double> %50, %52 %85 = fadd <8 x double> %51, %69 %86 = bitcast <8 x double> %75 to <8 x i64> %87 = xor <8 x i64> %86, %88 = bitcast <8 x i64> %87 to <8 x double> %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = fadd <8 x double> %75, %89 %91 = fmul <8 x double> %90, %92 = bitcast <8 x double> %76 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x i64> %93 to <8 x double> %95 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %96 = bitcast <8 x double> %77 to <8 x i64> %97 = xor <8 x i64> %96, %98 = bitcast <8 x i64> %97 to <8 x double> %99 = shufflevector <8 x double> %98, <8 x double> poison, <8 x i32> %100 = fadd <8 x double> %77, %99 %101 = fmul <8 x double> %100, %102 = fadd <8 x double> %70, %74 %103 = fadd <8 x double> %71, %91 %104 = fsub <8 x double> %72, %95 %105 = fsub <8 x double> %73, %101 %106 = fsub <8 x double> %70, %74 %107 = fsub <8 x double> %71, %91 %108 = fadd <8 x double> %72, %95 %109 = fadd <8 x double> %73, %101 %110 = bitcast <8 x double> %83 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fadd <8 x double> %83, %113 %115 = fmul <8 x double> %114, %116 = bitcast <8 x double> %84 to <8 x i64> %117 = xor <8 x i64> %116, %118 = bitcast <8 x i64> %117 to <8 x double> %119 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %120 = bitcast <8 x double> %85 to <8 x i64> %121 = xor <8 x i64> %120, %122 = bitcast <8 x i64> %121 to <8 x double> %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fadd <8 x double> %85, %123 %125 = fmul <8 x double> %124, %126 = fadd <8 x double> %78, %82 %127 = fadd <8 x double> %79, %115 %128 = fsub <8 x double> %80, %119 %129 = fsub <8 x double> %81, %125 %130 = fsub <8 x double> %78, %82 %131 = fsub <8 x double> %79, %115 %132 = fadd <8 x double> %80, %119 %133 = fadd <8 x double> %81, %125 %134 = fmul <8 x double> %127, %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %_4.i88 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %127, <8 x double> %135, i32 noundef 4) #23 %136 = bitcast <8 x double> %128 to <8 x i64> %137 = xor <8 x i64> %136, %138 = bitcast <8 x i64> %137 to <8 x double> %139 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %140 = fadd <8 x double> %128, %139 %141 = fmul <8 x double> %140, %142 = fmul <8 x double> %129, %143 = shufflevector <8 x double> %142, <8 x double> poison, <8 x i32> %_4.i87 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %129, <8 x double> %143, i32 noundef 4) #23 %144 = bitcast <8 x double> %130 to <8 x i64> %145 = xor <8 x i64> %144, %146 = bitcast <8 x i64> %145 to <8 x double> %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %148 = fmul <8 x double> %131, %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %_4.i86 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %131, <8 x double> %149, i32 noundef 4) #23 %150 = bitcast <8 x double> %132 to <8 x i64> %151 = xor <8 x i64> %150, %152 = bitcast <8 x i64> %151 to <8 x double> %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fadd <8 x double> %132, %153 %155 = fmul <8 x double> %154, %156 = fmul <8 x double> %133, %157 = shufflevector <8 x double> %156, <8 x double> poison, <8 x i32> %_4.i85 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %133, <8 x double> %157, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1346, !noalias !1349 %158 = fadd <8 x double> %102, %126 %159 = fadd <8 x double> %_4.i88, %103 %160 = shufflevector <8 x double> %159, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %163 = fmul <8 x double> %162, %160 %_4.i84 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %161, <8 x double> %159, <8 x double> %163, i32 noundef 4) #23 %164 = fadd <8 x double> %104, %141 %165 = shufflevector <8 x double> %164, <8 x double> poison, <8 x i32> %166 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %167 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %168 = fmul <8 x double> %167, %165 %_4.i83 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %164, <8 x double> %168, i32 noundef 4) #23 %169 = fadd <8 x double> %_4.i87, %105 %170 = shufflevector <8 x double> %169, <8 x double> poison, <8 x i32> %171 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %172 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %173 = fmul <8 x double> %172, %170 %_4.i82 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %171, <8 x double> %169, <8 x double> %173, i32 noundef 4) #23 %174 = fsub <8 x double> %106, %147 %175 = shufflevector <8 x double> %174, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %177, %175 %_4.i81 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %174, <8 x double> %178, i32 noundef 4) #23 %179 = fsub <8 x double> %107, %_4.i86 %180 = shufflevector <8 x double> %179, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %182, %180 %_4.i80 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %179, <8 x double> %183, i32 noundef 4) #23 %184 = fsub <8 x double> %108, %155 %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %187, %185 %_4.i79 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %186, <8 x double> %184, <8 x double> %188, i32 noundef 4) #23 %189 = fsub <8 x double> %109, %_4.i85 %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %193 = fmul <8 x double> %192, %190 %_4.i78 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %191, <8 x double> %189, <8 x double> %193, i32 noundef 4) #23 %194 = fsub <8 x double> %102, %126 %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %198 = fmul <8 x double> %195, %197 %_4.i77 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %194, <8 x double> %198, i32 noundef 4) #23 %199 = fsub <8 x double> %103, %_4.i88 %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %203 = fmul <8 x double> %202, %200 %_4.i76 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %201, <8 x double> %199, <8 x double> %203, i32 noundef 4) #23 %204 = fsub <8 x double> %104, %141 %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %208 = fmul <8 x double> %207, %205 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %206, <8 x double> %204, <8 x double> %208, i32 noundef 4) #23 %209 = fsub <8 x double> %105, %_4.i87 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %210, %212 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %211, <8 x double> %209, <8 x double> %213, i32 noundef 4) #23 %214 = fadd <8 x double> %106, %147 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %218 = fmul <8 x double> %215, %217 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %216, <8 x double> %214, <8 x double> %218, i32 noundef 4) #23 %219 = fadd <8 x double> %_4.i86, %107 %220 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %223 = fmul <8 x double> %220, %222 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %221, <8 x double> %219, <8 x double> %223, i32 noundef 4) #23 %224 = fadd <8 x double> %108, %155 %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %225, %227 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %226, <8 x double> %224, <8 x double> %228, i32 noundef 4) #23 %229 = fadd <8 x double> %_4.i85, %109 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %233 = fmul <8 x double> %230, %232 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %231, <8 x double> %229, <8 x double> %233, i32 noundef 4) #23 %234 = shufflevector <8 x double> %158, <8 x double> %_4.i84, <8 x i32> %235 = shufflevector <8 x double> %158, <8 x double> %_4.i84, <8 x i32> %236 = shufflevector <8 x double> %_4.i83, <8 x double> %_4.i82, <8 x i32> %237 = shufflevector <8 x double> %_4.i83, <8 x double> %_4.i82, <8 x i32> %238 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %241 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %242 = shufflevector <8 x double> %_4.i81, <8 x double> %_4.i80, <8 x i32> %243 = shufflevector <8 x double> %_4.i81, <8 x double> %_4.i80, <8 x i32> %244 = shufflevector <8 x double> %_4.i79, <8 x double> %_4.i78, <8 x i32> %245 = shufflevector <8 x double> %_4.i79, <8 x double> %_4.i78, <8 x i32> %246 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %249 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %250 = shufflevector <8 x double> %_4.i77, <8 x double> %_4.i76, <8 x i32> %251 = shufflevector <8 x double> %_4.i77, <8 x double> %_4.i76, <8 x i32> %252 = shufflevector <8 x double> %_4.i75, <8 x double> %_4.i74, <8 x i32> %253 = shufflevector <8 x double> %_4.i75, <8 x double> %_4.i74, <8 x i32> %254 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %257 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %258 = shufflevector <8 x double> %_4.i73, <8 x double> %_4.i72, <8 x i32> %259 = shufflevector <8 x double> %_4.i73, <8 x double> %_4.i72, <8 x i32> %260 = shufflevector <8 x double> %_4.i71, <8 x double> %_4.i, <8 x i32> %261 = shufflevector <8 x double> %_4.i71, <8 x double> %_4.i, <8 x i32> %262 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> %265 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> store <8 x double> %238, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1344, !noalias !1350 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %246, ptr %266, align 8, !alias.scope !1344, !noalias !1350 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %254, ptr %267, align 8, !alias.scope !1344, !noalias !1350 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %262, ptr %268, align 8, !alias.scope !1344, !noalias !1350 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %240, ptr %269, align 8, !alias.scope !1344, !noalias !1350 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %248, ptr %270, align 8, !alias.scope !1344, !noalias !1350 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %256, ptr %271, align 8, !alias.scope !1344, !noalias !1350 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %264, ptr %272, align 8, !alias.scope !1344, !noalias !1350 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %239, ptr %273, align 8, !alias.scope !1344, !noalias !1350 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %247, ptr %274, align 8, !alias.scope !1344, !noalias !1350 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %255, ptr %275, align 8, !alias.scope !1344, !noalias !1350 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %263, ptr %276, align 8, !alias.scope !1344, !noalias !1350 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %241, ptr %277, align 8, !alias.scope !1344, !noalias !1350 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %249, ptr %278, align 8, !alias.scope !1344, !noalias !1350 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %257, ptr %279, align 8, !alias.scope !1344, !noalias !1350 %280 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %265, ptr %280, align 8, !alias.scope !1344, !noalias !1350 %exitcond.not.i = icmp eq i64 %37, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1351) tail call void @llvm.experimental.noalias.scope.decl(metadata !1354) tail call void @llvm.experimental.noalias.scope.decl(metadata !1356) %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 72 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 88 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 104 %295 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 120 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i br i1 %_2.i.i.i.i, label %bb46.i, label %bb9.i.i.i.i bb46.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb44.loopexit.i %_2.i.i.i.i = phi i1 [ false, %bb44.loopexit.i ], [ true, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ] %iter.sroa.192.05439.i = phi i64 [ 1, %bb44.loopexit.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.05439.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %295, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.05439.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.05439.i, 4 %296 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.05116.i = load <2 x float>, ptr %296, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %297 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.15117.i = load <2 x float>, ptr %297, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %298 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.05118.i = load <2 x float>, ptr %298, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %299 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.15119.i = load <2 x float>, ptr %299, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %300 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.05120.i = load <2 x float>, ptr %300, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %301 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.15121.i = load <2 x float>, ptr %301, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %302 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.05122.i = load <2 x float>, ptr %302, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %303 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.15123.i = load <2 x float>, ptr %303, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %304 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.05124.i = load <2 x float>, ptr %304, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %305 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.15125.i = load <2 x float>, ptr %305, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %306 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.05126.i = load <2 x float>, ptr %306, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %307 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.15127.i = load <2 x float>, ptr %307, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %308 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.05128.i = load <2 x float>, ptr %308, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %309 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.15129.i = load <2 x float>, ptr %309, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.05130.i = load <2 x float>, ptr %310, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %311 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.15131.i = load <2 x float>, ptr %311, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %312 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.05132.i = load <2 x float>, ptr %312, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.15133.i = load <2 x float>, ptr %313, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %314 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.05134.i = load <2 x float>, ptr %314, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %315 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.15135.i = load <2 x float>, ptr %315, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.05136.i = load <2 x float>, ptr %316, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %317 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.15137.i = load <2 x float>, ptr %317, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %318 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.05138.i = load <2 x float>, ptr %318, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.15139.i = load <2 x float>, ptr %319, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %320 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.05140.i = load <2 x float>, ptr %320, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %321 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.15141.i = load <2 x float>, ptr %321, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.05142.i = load <2 x float>, ptr %322, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %323 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.15143.i = load <2 x float>, ptr %323, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %324 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.05144.i = load <2 x float>, ptr %324, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.15145.i = load <2 x float>, ptr %325, align 8, !alias.scope !1356, !noalias !1358, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.05116.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.15117.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %326 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.05118.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.15119.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %327 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.05120.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.15121.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %328 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.05122.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.15123.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %329 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.05124.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.15125.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %330 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.05126.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.15127.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %331 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.05128.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.15129.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %332 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.05130.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.15131.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %333 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.05132.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.15133.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %334 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.05134.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.15135.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %335 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.05136.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.15137.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %336 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.05138.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.15139.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %337 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.05140.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.15141.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %338 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.05142.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.15143.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %339 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.05144.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.15145.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %340 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %341 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %342 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %343 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %344 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %345 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %346 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %347 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %348 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %349 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %350 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %351 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %352 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %353 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %354 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %355 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %356 = shufflevector <2 x double> %326, <2 x double> poison, <8 x i32> zeroinitializer %357 = shufflevector <2 x double> %326, <2 x double> poison, <8 x i32> %358 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> zeroinitializer %359 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> %360 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> zeroinitializer %361 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> %362 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> zeroinitializer %363 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> %364 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> zeroinitializer %365 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> %366 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> zeroinitializer %367 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> %368 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> zeroinitializer %369 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> %370 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> zeroinitializer %371 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> %372 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> zeroinitializer %373 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> %374 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> zeroinitializer %375 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> %376 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> zeroinitializer %377 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> %378 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> zeroinitializer %379 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> %380 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> zeroinitializer %381 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> %382 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> zeroinitializer %383 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> %384 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> zeroinitializer %385 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05250.i = phi i64 [ %386, %bb98.i ], [ 0, %bb46.i ] %386 = add nuw nsw i64 %iter10.sroa.218.05250.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i45 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i46 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %344, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %343, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %345, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %342, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %347, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %346, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %348, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %341, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %351, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %350, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %352, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %349, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %354, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %353, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %355, i64 %iter10.sroa.218.05250.i %x0.sroa.0.0.copyload.i47 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32, align 8, !alias.scope !1351, !noalias !1359 %x1.sroa.0.0.copyload.i48 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1351, !noalias !1359 %x2.sroa.0.0.copyload.i49 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33, align 8, !alias.scope !1351, !noalias !1359 %x3.sroa.0.0.copyload.i50 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34, align 8, !alias.scope !1351, !noalias !1359 %x4.sroa.0.0.copyload.i51 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35, align 8, !alias.scope !1351, !noalias !1359 %x5.sroa.0.0.copyload.i52 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36, align 8, !alias.scope !1351, !noalias !1359 %x6.sroa.0.0.copyload.i53 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37, align 8, !alias.scope !1351, !noalias !1359 %x7.sroa.0.0.copyload.i54 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38, align 8, !alias.scope !1351, !noalias !1359 %x8.sroa.0.0.copyload.i55 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39, align 8, !alias.scope !1351, !noalias !1359 %x9.sroa.0.0.copyload.i56 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40, align 8, !alias.scope !1351, !noalias !1359 %xa.sroa.0.0.copyload.i57 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41, align 8, !alias.scope !1351, !noalias !1359 %xb.sroa.0.0.copyload.i58 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42, align 8, !alias.scope !1351, !noalias !1359 %xc.sroa.0.0.copyload.i59 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43, align 8, !alias.scope !1351, !noalias !1359 %xd.sroa.0.0.copyload.i60 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44, align 8, !alias.scope !1351, !noalias !1359 %xe.sroa.0.0.copyload.i61 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i45, align 8, !alias.scope !1351, !noalias !1359 %xf.sroa.0.0.copyload.i62 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i46, align 8, !alias.scope !1351, !noalias !1359 %387 = fadd <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %388 = fsub <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %389 = fadd <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %390 = fsub <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %391 = fadd <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %392 = fsub <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %393 = fadd <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %394 = fsub <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %395 = fadd <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %396 = fsub <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %397 = fadd <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %398 = fsub <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %399 = fadd <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %400 = fsub <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %401 = fadd <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %402 = fsub <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %403 = bitcast <8 x double> %390 to <8 x i64> %404 = xor <8 x i64> %403, %405 = bitcast <8 x i64> %404 to <8 x double> %406 = shufflevector <8 x double> %405, <8 x double> poison, <8 x i32> %407 = bitcast <8 x double> %394 to <8 x i64> %408 = xor <8 x i64> %407, %409 = bitcast <8 x i64> %408 to <8 x double> %410 = shufflevector <8 x double> %409, <8 x double> poison, <8 x i32> %411 = bitcast <8 x double> %398 to <8 x i64> %412 = xor <8 x i64> %411, %413 = bitcast <8 x i64> %412 to <8 x double> %414 = shufflevector <8 x double> %413, <8 x double> poison, <8 x i32> %415 = bitcast <8 x double> %402 to <8 x i64> %416 = xor <8 x i64> %415, %417 = bitcast <8 x i64> %416 to <8 x double> %418 = shufflevector <8 x double> %417, <8 x double> poison, <8 x i32> %419 = fadd <8 x double> %387, %389 %420 = fsub <8 x double> %388, %406 %421 = fsub <8 x double> %387, %389 %422 = fadd <8 x double> %388, %406 %423 = fadd <8 x double> %391, %393 %424 = fsub <8 x double> %392, %410 %425 = fsub <8 x double> %391, %393 %426 = fadd <8 x double> %392, %410 %427 = fadd <8 x double> %395, %397 %428 = fsub <8 x double> %396, %414 %429 = fsub <8 x double> %395, %397 %430 = fadd <8 x double> %396, %414 %431 = fadd <8 x double> %399, %401 %432 = fsub <8 x double> %400, %418 %433 = fsub <8 x double> %399, %401 %434 = fadd <8 x double> %400, %418 %435 = bitcast <8 x double> %424 to <8 x i64> %436 = xor <8 x i64> %435, %437 = bitcast <8 x i64> %436 to <8 x double> %438 = shufflevector <8 x double> %437, <8 x double> poison, <8 x i32> %439 = fadd <8 x double> %424, %438 %440 = fmul <8 x double> %439, %441 = bitcast <8 x double> %425 to <8 x i64> %442 = xor <8 x i64> %441, %443 = bitcast <8 x i64> %442 to <8 x double> %444 = shufflevector <8 x double> %443, <8 x double> poison, <8 x i32> %445 = bitcast <8 x double> %426 to <8 x i64> %446 = xor <8 x i64> %445, %447 = bitcast <8 x i64> %446 to <8 x double> %448 = shufflevector <8 x double> %447, <8 x double> poison, <8 x i32> %449 = fadd <8 x double> %426, %448 %450 = fmul <8 x double> %449, %451 = fadd <8 x double> %419, %423 %452 = fadd <8 x double> %420, %440 %453 = fsub <8 x double> %421, %444 %454 = fsub <8 x double> %422, %450 %455 = fsub <8 x double> %419, %423 %456 = fsub <8 x double> %420, %440 %457 = fadd <8 x double> %421, %444 %458 = fadd <8 x double> %422, %450 %459 = bitcast <8 x double> %432 to <8 x i64> %460 = xor <8 x i64> %459, %461 = bitcast <8 x i64> %460 to <8 x double> %462 = shufflevector <8 x double> %461, <8 x double> poison, <8 x i32> %463 = fadd <8 x double> %432, %462 %464 = fmul <8 x double> %463, %465 = bitcast <8 x double> %433 to <8 x i64> %466 = xor <8 x i64> %465, %467 = bitcast <8 x i64> %466 to <8 x double> %468 = shufflevector <8 x double> %467, <8 x double> poison, <8 x i32> %469 = bitcast <8 x double> %434 to <8 x i64> %470 = xor <8 x i64> %469, %471 = bitcast <8 x i64> %470 to <8 x double> %472 = shufflevector <8 x double> %471, <8 x double> poison, <8 x i32> %473 = fadd <8 x double> %434, %472 %474 = fmul <8 x double> %473, %475 = fadd <8 x double> %427, %431 %476 = fadd <8 x double> %428, %464 %477 = fsub <8 x double> %429, %468 %478 = fsub <8 x double> %430, %474 %479 = fsub <8 x double> %427, %431 %480 = fsub <8 x double> %428, %464 %481 = fadd <8 x double> %429, %468 %482 = fadd <8 x double> %430, %474 %483 = fmul <8 x double> %476, %484 = shufflevector <8 x double> %483, <8 x double> poison, <8 x i32> %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %476, <8 x double> %484, i32 noundef 4) #23 %485 = bitcast <8 x double> %477 to <8 x i64> %486 = xor <8 x i64> %485, %487 = bitcast <8 x i64> %486 to <8 x double> %488 = shufflevector <8 x double> %487, <8 x double> poison, <8 x i32> %489 = fadd <8 x double> %477, %488 %490 = fmul <8 x double> %489, %491 = fmul <8 x double> %478, %492 = shufflevector <8 x double> %491, <8 x double> poison, <8 x i32> %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %478, <8 x double> %492, i32 noundef 4) #23 %493 = bitcast <8 x double> %479 to <8 x i64> %494 = xor <8 x i64> %493, %495 = bitcast <8 x i64> %494 to <8 x double> %496 = shufflevector <8 x double> %495, <8 x double> poison, <8 x i32> %497 = fmul <8 x double> %480, %498 = shufflevector <8 x double> %497, <8 x double> poison, <8 x i32> %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %480, <8 x double> %498, i32 noundef 4) #23 %499 = bitcast <8 x double> %481 to <8 x i64> %500 = xor <8 x i64> %499, %501 = bitcast <8 x i64> %500 to <8 x double> %502 = shufflevector <8 x double> %501, <8 x double> poison, <8 x i32> %503 = fadd <8 x double> %481, %502 %504 = fmul <8 x double> %503, %505 = fmul <8 x double> %482, %506 = shufflevector <8 x double> %505, <8 x double> poison, <8 x i32> %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %482, <8 x double> %506, i32 noundef 4) #23 %507 = fadd <8 x double> %451, %475 store <8 x double> %507, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %508 = fadd <8 x double> %_4.i107, %452 %509 = shufflevector <8 x double> %508, <8 x double> poison, <8 x i32> %510 = fmul <8 x double> %357, %509 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %356, <8 x double> %508, <8 x double> %510, i32 noundef 4) #23 store <8 x double> %_4.i103, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %511 = fadd <8 x double> %453, %490 %512 = shufflevector <8 x double> %511, <8 x double> poison, <8 x i32> %513 = fmul <8 x double> %359, %512 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %358, <8 x double> %511, <8 x double> %513, i32 noundef 4) #23 store <8 x double> %_4.i102, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %514 = fadd <8 x double> %_4.i106, %454 %515 = shufflevector <8 x double> %514, <8 x double> poison, <8 x i32> %516 = fmul <8 x double> %361, %515 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %360, <8 x double> %514, <8 x double> %516, i32 noundef 4) #23 store <8 x double> %_4.i101, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %517 = fsub <8 x double> %455, %496 %518 = shufflevector <8 x double> %517, <8 x double> poison, <8 x i32> %519 = fmul <8 x double> %363, %518 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %362, <8 x double> %517, <8 x double> %519, i32 noundef 4) #23 store <8 x double> %_4.i100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %520 = fsub <8 x double> %456, %_4.i105 %521 = shufflevector <8 x double> %520, <8 x double> poison, <8 x i32> %522 = fmul <8 x double> %365, %521 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %364, <8 x double> %520, <8 x double> %522, i32 noundef 4) #23 store <8 x double> %_4.i99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %523 = fsub <8 x double> %457, %504 %524 = shufflevector <8 x double> %523, <8 x double> poison, <8 x i32> %525 = fmul <8 x double> %367, %524 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %366, <8 x double> %523, <8 x double> %525, i32 noundef 4) #23 store <8 x double> %_4.i98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %526 = fsub <8 x double> %458, %_4.i104 %527 = shufflevector <8 x double> %526, <8 x double> poison, <8 x i32> %528 = fmul <8 x double> %369, %527 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %368, <8 x double> %526, <8 x double> %528, i32 noundef 4) #23 store <8 x double> %_4.i97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %529 = fsub <8 x double> %451, %475 %530 = shufflevector <8 x double> %529, <8 x double> poison, <8 x i32> %531 = fmul <8 x double> %371, %530 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %370, <8 x double> %529, <8 x double> %531, i32 noundef 4) #23 store <8 x double> %_4.i96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %532 = fsub <8 x double> %452, %_4.i107 %533 = shufflevector <8 x double> %532, <8 x double> poison, <8 x i32> %534 = fmul <8 x double> %373, %533 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %372, <8 x double> %532, <8 x double> %534, i32 noundef 4) #23 store <8 x double> %_4.i95, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %535 = fsub <8 x double> %453, %490 %536 = shufflevector <8 x double> %535, <8 x double> poison, <8 x i32> %537 = fmul <8 x double> %375, %536 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %374, <8 x double> %535, <8 x double> %537, i32 noundef 4) #23 store <8 x double> %_4.i94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %538 = fsub <8 x double> %454, %_4.i106 %539 = shufflevector <8 x double> %538, <8 x double> poison, <8 x i32> %540 = fmul <8 x double> %377, %539 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %376, <8 x double> %538, <8 x double> %540, i32 noundef 4) #23 store <8 x double> %_4.i93, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %541 = fadd <8 x double> %455, %496 %542 = shufflevector <8 x double> %541, <8 x double> poison, <8 x i32> %543 = fmul <8 x double> %379, %542 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %378, <8 x double> %541, <8 x double> %543, i32 noundef 4) #23 store <8 x double> %_4.i92, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %544 = fadd <8 x double> %_4.i105, %456 %545 = shufflevector <8 x double> %544, <8 x double> poison, <8 x i32> %546 = fmul <8 x double> %381, %545 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %380, <8 x double> %544, <8 x double> %546, i32 noundef 4) #23 store <8 x double> %_4.i91, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %547 = fadd <8 x double> %457, %504 %548 = shufflevector <8 x double> %547, <8 x double> poison, <8 x i32> %549 = fmul <8 x double> %383, %548 %_4.i90 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %382, <8 x double> %547, <8 x double> %549, i32 noundef 4) #23 store <8 x double> %_4.i90, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %550 = fadd <8 x double> %_4.i104, %458 %551 = shufflevector <8 x double> %550, <8 x double> poison, <8 x i32> %552 = fmul <8 x double> %385, %551 %_4.i89 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %384, <8 x double> %550, <8 x double> %552, i32 noundef 4) #23 store <8 x double> %_4.i89, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !1354, !noalias !1360 %exitcond.not.i65 = icmp eq i64 %386, 4 br i1 %exitcond.not.i65, label %bb44.loopexit.i, label %bb98.i bb9.i.i.i.i: ; preds = %bb44.loopexit.i, %bb9.i.i.i.i %iter.i.i.i.i.sroa.8.01439 = phi i64 [ %556, %bb9.i.i.i.i ], [ 0, %bb44.loopexit.i ] %553 = or disjoint i64 %iter.i.i.i.i.sroa.8.01439, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.01439 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.01439 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1338 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !1338 %554 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %555 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %554, ptr %_3.i.i.i.i, align 8, !noalias !1338 store <8 x double> %555, ptr %_3.i2.i.i.i, align 8, !noalias !1338 %556 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.01439, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %553 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %553 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1338 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1338 %557 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %558 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %557, ptr %_3.i.i.i.i.1, align 8, !noalias !1338 store <8 x double> %558, ptr %_3.i2.i.i.i.1, align 8, !noalias !1338 %exitcond.not.1 = icmp eq i64 %556, 64 br i1 %exitcond.not.1, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb1e3e72167e4011dE.exit", label %bb9.i.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb1e3e72167e4011dE.exit": ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1338 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9139cf4c27e621b2E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1361) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1361, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1361, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1361, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1361, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1361, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1361, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1361, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1361 store i64 256, ptr %n.i, align 8, !noalias !1361 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1361 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1361 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1361 store ptr null, ptr %_16.i, align 8, !noalias !1361 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1361 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1361 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1361 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1361 store ptr null, ptr %_24.i, align 8, !noalias !1361 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1361 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1361 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1361 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1361 store ptr null, ptr %_32.i, align 8, !noalias !1361 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1361 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1361 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1361 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9dabd11bd978a069E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1361 store ptr null, ptr %_40.i, align 8, !noalias !1361 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9dabd11bd978a069E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1361 tail call void @llvm.experimental.noalias.scope.decl(metadata !1364) tail call void @llvm.experimental.noalias.scope.decl(metadata !1367) tail call void @llvm.experimental.noalias.scope.decl(metadata !1369) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 36 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 44 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 52 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 60 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 36 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 44 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 52 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 60 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9dabd11bd978a069E.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %36, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9dabd11bd978a069E.exit" ] %36 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1364, !noalias !1371 %37 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %38 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %40 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %42 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %44 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %46 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %48 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %50 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %52 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = bitcast <8 x double> %40 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x i64> %54 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = bitcast <8 x double> %44 to <8 x i64> %58 = xor <8 x i64> %57, %59 = bitcast <8 x i64> %58 to <8 x double> %60 = shufflevector <8 x double> %59, <8 x double> poison, <8 x i32> %61 = bitcast <8 x double> %48 to <8 x i64> %62 = xor <8 x i64> %61, %63 = bitcast <8 x i64> %62 to <8 x double> %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = bitcast <8 x double> %52 to <8 x i64> %66 = xor <8 x i64> %65, %67 = bitcast <8 x i64> %66 to <8 x double> %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = fadd <8 x double> %37, %39 %70 = fsub <8 x double> %38, %56 %71 = fsub <8 x double> %37, %39 %72 = fadd <8 x double> %38, %56 %73 = fadd <8 x double> %41, %43 %74 = fsub <8 x double> %42, %60 %75 = fsub <8 x double> %41, %43 %76 = fadd <8 x double> %42, %60 %77 = fadd <8 x double> %45, %47 %78 = fsub <8 x double> %46, %64 %79 = fsub <8 x double> %45, %47 %80 = fadd <8 x double> %46, %64 %81 = fadd <8 x double> %49, %51 %82 = fsub <8 x double> %50, %68 %83 = fsub <8 x double> %49, %51 %84 = fadd <8 x double> %50, %68 %85 = bitcast <8 x double> %74 to <8 x i64> %86 = xor <8 x i64> %85, %87 = bitcast <8 x i64> %86 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fadd <8 x double> %74, %88 %90 = fmul <8 x double> %89, %91 = bitcast <8 x double> %75 to <8 x i64> %92 = xor <8 x i64> %91, %93 = bitcast <8 x i64> %92 to <8 x double> %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = bitcast <8 x double> %76 to <8 x i64> %96 = xor <8 x i64> %95, %97 = bitcast <8 x i64> %96 to <8 x double> %98 = shufflevector <8 x double> %97, <8 x double> poison, <8 x i32> %99 = fadd <8 x double> %76, %98 %100 = fmul <8 x double> %99, %101 = fadd <8 x double> %69, %73 %102 = fadd <8 x double> %70, %90 %103 = fsub <8 x double> %71, %94 %104 = fsub <8 x double> %72, %100 %105 = fsub <8 x double> %69, %73 %106 = fsub <8 x double> %70, %90 %107 = fadd <8 x double> %71, %94 %108 = fadd <8 x double> %72, %100 %109 = bitcast <8 x double> %82 to <8 x i64> %110 = xor <8 x i64> %109, %111 = bitcast <8 x i64> %110 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fadd <8 x double> %82, %112 %114 = fmul <8 x double> %113, %115 = bitcast <8 x double> %83 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x i64> %116 to <8 x double> %118 = shufflevector <8 x double> %117, <8 x double> poison, <8 x i32> %119 = bitcast <8 x double> %84 to <8 x i64> %120 = xor <8 x i64> %119, %121 = bitcast <8 x i64> %120 to <8 x double> %122 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %123 = fadd <8 x double> %84, %122 %124 = fmul <8 x double> %123, %125 = fadd <8 x double> %77, %81 %126 = fadd <8 x double> %78, %114 %127 = fsub <8 x double> %79, %118 %128 = fsub <8 x double> %80, %124 %129 = fsub <8 x double> %77, %81 %130 = fsub <8 x double> %78, %114 %131 = fadd <8 x double> %79, %118 %132 = fadd <8 x double> %80, %124 %133 = fmul <8 x double> %126, %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %_4.i581 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %126, <8 x double> %134, i32 noundef 4) #23 %135 = bitcast <8 x double> %127 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %127, %138 %140 = fmul <8 x double> %139, %141 = fmul <8 x double> %128, %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %_4.i580 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %128, <8 x double> %142, i32 noundef 4) #23 %143 = bitcast <8 x double> %129 to <8 x i64> %144 = xor <8 x i64> %143, %145 = bitcast <8 x i64> %144 to <8 x double> %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %130, %148 = shufflevector <8 x double> %147, <8 x double> poison, <8 x i32> %_4.i579 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %130, <8 x double> %148, i32 noundef 4) #23 %149 = bitcast <8 x double> %131 to <8 x i64> %150 = xor <8 x i64> %149, %151 = bitcast <8 x i64> %150 to <8 x double> %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fadd <8 x double> %131, %152 %154 = fmul <8 x double> %153, %155 = fmul <8 x double> %132, %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %_4.i578 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %132, <8 x double> %156, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1369, !noalias !1372 %157 = fadd <8 x double> %101, %125 %158 = fadd <8 x double> %_4.i581, %102 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %161, %159 %_4.i577 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %158, <8 x double> %162, i32 noundef 4) #23 %163 = fadd <8 x double> %103, %140 %164 = shufflevector <8 x double> %163, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %167 = fmul <8 x double> %166, %164 %_4.i576 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %165, <8 x double> %163, <8 x double> %167, i32 noundef 4) #23 %168 = fadd <8 x double> %_4.i580, %104 %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %171, %169 %_4.i575 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %168, <8 x double> %172, i32 noundef 4) #23 %173 = fsub <8 x double> %105, %146 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %176, %174 %_4.i574 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %175, <8 x double> %173, <8 x double> %177, i32 noundef 4) #23 %178 = fsub <8 x double> %106, %_4.i579 %179 = shufflevector <8 x double> %178, <8 x double> poison, <8 x i32> %180 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = fmul <8 x double> %181, %179 %_4.i573 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %180, <8 x double> %178, <8 x double> %182, i32 noundef 4) #23 %183 = fsub <8 x double> %107, %154 %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %186, %184 %_4.i572 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %183, <8 x double> %187, i32 noundef 4) #23 %188 = fsub <8 x double> %108, %_4.i578 %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %191, %189 %_4.i571 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %188, <8 x double> %192, i32 noundef 4) #23 %193 = fsub <8 x double> %101, %125 %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = fmul <8 x double> %194, %196 %_4.i570 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %193, <8 x double> %197, i32 noundef 4) #23 %198 = fsub <8 x double> %102, %_4.i581 %199 = shufflevector <8 x double> %198, <8 x double> poison, <8 x i32> %200 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = fmul <8 x double> %201, %199 %_4.i569 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %198, <8 x double> %202, i32 noundef 4) #23 %203 = fsub <8 x double> %103, %140 %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = fmul <8 x double> %206, %204 %_4.i568 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %205, <8 x double> %203, <8 x double> %207, i32 noundef 4) #23 %208 = fsub <8 x double> %104, %_4.i580 %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = fmul <8 x double> %209, %211 %_4.i567 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %210, <8 x double> %208, <8 x double> %212, i32 noundef 4) #23 %213 = fadd <8 x double> %105, %146 %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = fmul <8 x double> %214, %216 %_4.i566 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %215, <8 x double> %213, <8 x double> %217, i32 noundef 4) #23 %218 = fadd <8 x double> %_4.i579, %106 %219 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %220 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %219, %221 %_4.i565 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %220, <8 x double> %218, <8 x double> %222, i32 noundef 4) #23 %223 = fadd <8 x double> %107, %154 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = fmul <8 x double> %224, %226 %_4.i564 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %225, <8 x double> %223, <8 x double> %227, i32 noundef 4) #23 %228 = fadd <8 x double> %_4.i578, %108 %229 = shufflevector <8 x double> %228, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = fmul <8 x double> %229, %231 %_4.i563 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %230, <8 x double> %228, <8 x double> %232, i32 noundef 4) #23 %233 = shufflevector <8 x double> %157, <8 x double> %_4.i577, <8 x i32> %234 = shufflevector <8 x double> %157, <8 x double> %_4.i577, <8 x i32> %235 = shufflevector <8 x double> %_4.i576, <8 x double> %_4.i575, <8 x i32> %236 = shufflevector <8 x double> %_4.i576, <8 x double> %_4.i575, <8 x i32> %237 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %238 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %241 = shufflevector <8 x double> %_4.i574, <8 x double> %_4.i573, <8 x i32> %242 = shufflevector <8 x double> %_4.i574, <8 x double> %_4.i573, <8 x i32> %243 = shufflevector <8 x double> %_4.i572, <8 x double> %_4.i571, <8 x i32> %244 = shufflevector <8 x double> %_4.i572, <8 x double> %_4.i571, <8 x i32> %245 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %246 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %249 = shufflevector <8 x double> %_4.i570, <8 x double> %_4.i569, <8 x i32> %250 = shufflevector <8 x double> %_4.i570, <8 x double> %_4.i569, <8 x i32> %251 = shufflevector <8 x double> %_4.i568, <8 x double> %_4.i567, <8 x i32> %252 = shufflevector <8 x double> %_4.i568, <8 x double> %_4.i567, <8 x i32> %253 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %254 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %257 = shufflevector <8 x double> %_4.i566, <8 x double> %_4.i565, <8 x i32> %258 = shufflevector <8 x double> %_4.i566, <8 x double> %_4.i565, <8 x i32> %259 = shufflevector <8 x double> %_4.i564, <8 x double> %_4.i563, <8 x i32> %260 = shufflevector <8 x double> %_4.i564, <8 x double> %_4.i563, <8 x i32> %261 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %262 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> store <8 x double> %237, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1367, !noalias !1373 %265 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %245, ptr %265, align 8, !alias.scope !1367, !noalias !1373 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %253, ptr %266, align 8, !alias.scope !1367, !noalias !1373 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %261, ptr %267, align 8, !alias.scope !1367, !noalias !1373 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %239, ptr %268, align 8, !alias.scope !1367, !noalias !1373 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %247, ptr %269, align 8, !alias.scope !1367, !noalias !1373 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %255, ptr %270, align 8, !alias.scope !1367, !noalias !1373 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %263, ptr %271, align 8, !alias.scope !1367, !noalias !1373 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %238, ptr %272, align 8, !alias.scope !1367, !noalias !1373 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %246, ptr %273, align 8, !alias.scope !1367, !noalias !1373 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %254, ptr %274, align 8, !alias.scope !1367, !noalias !1373 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %262, ptr %275, align 8, !alias.scope !1367, !noalias !1373 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %240, ptr %276, align 8, !alias.scope !1367, !noalias !1373 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %248, ptr %277, align 8, !alias.scope !1367, !noalias !1373 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %256, ptr %278, align 8, !alias.scope !1367, !noalias !1373 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %264, ptr %279, align 8, !alias.scope !1367, !noalias !1373 %exitcond.not.i = icmp eq i64 %36, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i %280 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 36 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 44 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 52 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 60 br label %bb62.i.i.i bb62.i.i.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb62.i.i.i %iter22.i.i.i.sroa.218.02190 = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ], [ %295, %bb62.i.i.i ] %295 = add nuw nsw i64 %iter22.i.i.i.sroa.218.02190, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %280, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i72.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i75.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i78.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter22.i.i.i.sroa.218.02190 %_208.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_209.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_210.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_211.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_212.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_213.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_214.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_215.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_216.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_217.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_218.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_219.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_220.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_221.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_222.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %_223.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1361 %296 = fadd <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %300 = fadd <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %301 = fsub <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %302 = fadd <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %303 = fsub <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %304 = fadd <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %305 = fsub <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %306 = fadd <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %307 = fsub <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %308 = fadd <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %309 = fsub <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %310 = fadd <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %311 = fsub <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %312 = bitcast <8 x double> %299 to <8 x i64> %313 = xor <8 x i64> %312, %314 = bitcast <8 x i64> %313 to <8 x double> %315 = shufflevector <8 x double> %314, <8 x double> poison, <8 x i32> %316 = bitcast <8 x double> %303 to <8 x i64> %317 = xor <8 x i64> %316, %318 = bitcast <8 x i64> %317 to <8 x double> %319 = shufflevector <8 x double> %318, <8 x double> poison, <8 x i32> %320 = bitcast <8 x double> %307 to <8 x i64> %321 = xor <8 x i64> %320, %322 = bitcast <8 x i64> %321 to <8 x double> %323 = shufflevector <8 x double> %322, <8 x double> poison, <8 x i32> %324 = bitcast <8 x double> %311 to <8 x i64> %325 = xor <8 x i64> %324, %326 = bitcast <8 x i64> %325 to <8 x double> %327 = shufflevector <8 x double> %326, <8 x double> poison, <8 x i32> %328 = fadd <8 x double> %296, %298 %329 = fsub <8 x double> %297, %315 %330 = fsub <8 x double> %296, %298 %331 = fadd <8 x double> %297, %315 %332 = fadd <8 x double> %300, %302 %333 = fsub <8 x double> %301, %319 %334 = fsub <8 x double> %300, %302 %335 = fadd <8 x double> %301, %319 %336 = fadd <8 x double> %304, %306 %337 = fsub <8 x double> %305, %323 %338 = fsub <8 x double> %304, %306 %339 = fadd <8 x double> %305, %323 %340 = fadd <8 x double> %308, %310 %341 = fsub <8 x double> %309, %327 %342 = fsub <8 x double> %308, %310 %343 = fadd <8 x double> %309, %327 %344 = bitcast <8 x double> %333 to <8 x i64> %345 = xor <8 x i64> %344, %346 = bitcast <8 x i64> %345 to <8 x double> %347 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %348 = fadd <8 x double> %333, %347 %349 = fmul <8 x double> %348, %350 = bitcast <8 x double> %334 to <8 x i64> %351 = xor <8 x i64> %350, %352 = bitcast <8 x i64> %351 to <8 x double> %353 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %354 = bitcast <8 x double> %335 to <8 x i64> %355 = xor <8 x i64> %354, %356 = bitcast <8 x i64> %355 to <8 x double> %357 = shufflevector <8 x double> %356, <8 x double> poison, <8 x i32> %358 = fadd <8 x double> %335, %357 %359 = fmul <8 x double> %358, %360 = fadd <8 x double> %328, %332 %361 = fadd <8 x double> %329, %349 %362 = fsub <8 x double> %330, %353 %363 = fsub <8 x double> %331, %359 %364 = fsub <8 x double> %328, %332 %365 = fsub <8 x double> %329, %349 %366 = fadd <8 x double> %330, %353 %367 = fadd <8 x double> %331, %359 %368 = bitcast <8 x double> %341 to <8 x i64> %369 = xor <8 x i64> %368, %370 = bitcast <8 x i64> %369 to <8 x double> %371 = shufflevector <8 x double> %370, <8 x double> poison, <8 x i32> %372 = fadd <8 x double> %341, %371 %373 = fmul <8 x double> %372, %374 = bitcast <8 x double> %342 to <8 x i64> %375 = xor <8 x i64> %374, %376 = bitcast <8 x i64> %375 to <8 x double> %377 = shufflevector <8 x double> %376, <8 x double> poison, <8 x i32> %378 = bitcast <8 x double> %343 to <8 x i64> %379 = xor <8 x i64> %378, %380 = bitcast <8 x i64> %379 to <8 x double> %381 = shufflevector <8 x double> %380, <8 x double> poison, <8 x i32> %382 = fadd <8 x double> %343, %381 %383 = fmul <8 x double> %382, %384 = fadd <8 x double> %336, %340 %385 = fadd <8 x double> %337, %373 %386 = fsub <8 x double> %338, %377 %387 = fsub <8 x double> %339, %383 %388 = fsub <8 x double> %336, %340 %389 = fsub <8 x double> %337, %373 %390 = fadd <8 x double> %338, %377 %391 = fadd <8 x double> %339, %383 %392 = fmul <8 x double> %385, %393 = shufflevector <8 x double> %392, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %385, <8 x double> %393, i32 noundef 4) #23 %394 = bitcast <8 x double> %386 to <8 x i64> %395 = xor <8 x i64> %394, %396 = bitcast <8 x i64> %395 to <8 x double> %397 = shufflevector <8 x double> %396, <8 x double> poison, <8 x i32> %398 = fadd <8 x double> %386, %397 %399 = fmul <8 x double> %398, %400 = fmul <8 x double> %387, %401 = shufflevector <8 x double> %400, <8 x double> poison, <8 x i32> %_4.i500 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %387, <8 x double> %401, i32 noundef 4) #23 %402 = bitcast <8 x double> %388 to <8 x i64> %403 = xor <8 x i64> %402, %404 = bitcast <8 x i64> %403 to <8 x double> %405 = shufflevector <8 x double> %404, <8 x double> poison, <8 x i32> %406 = fmul <8 x double> %389, %407 = shufflevector <8 x double> %406, <8 x double> poison, <8 x i32> %_4.i513 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %389, <8 x double> %407, i32 noundef 4) #23 %408 = bitcast <8 x double> %390 to <8 x i64> %409 = xor <8 x i64> %408, %410 = bitcast <8 x i64> %409 to <8 x double> %411 = shufflevector <8 x double> %410, <8 x double> poison, <8 x i32> %412 = fadd <8 x double> %390, %411 %413 = fmul <8 x double> %412, %414 = fmul <8 x double> %391, %415 = shufflevector <8 x double> %414, <8 x double> poison, <8 x i32> %_4.i530 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %391, <8 x double> %415, i32 noundef 4) #23 %416 = fadd <8 x double> %360, %384 %417 = fadd <8 x double> %_4.i, %361 %418 = fadd <8 x double> %362, %399 %419 = fadd <8 x double> %_4.i500, %363 %420 = fsub <8 x double> %364, %405 %421 = fsub <8 x double> %365, %_4.i513 %422 = fsub <8 x double> %366, %413 %423 = fsub <8 x double> %367, %_4.i530 %424 = fsub <8 x double> %360, %384 %425 = fsub <8 x double> %361, %_4.i %426 = fsub <8 x double> %362, %399 %427 = fsub <8 x double> %363, %_4.i500 %428 = fadd <8 x double> %364, %405 %429 = fadd <8 x double> %_4.i513, %365 %430 = fadd <8 x double> %366, %413 %431 = fadd <8 x double> %_4.i530, %367 store <8 x double> %416, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i, align 8, !noalias !1361 store <8 x double> %417, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i, align 8, !noalias !1361 store <8 x double> %418, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i, align 8, !noalias !1361 store <8 x double> %419, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i, align 8, !noalias !1361 store <8 x double> %420, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i, align 8, !noalias !1361 store <8 x double> %421, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i, align 8, !noalias !1361 store <8 x double> %422, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i, align 8, !noalias !1361 store <8 x double> %423, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i, align 8, !noalias !1361 store <8 x double> %424, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i, align 8, !noalias !1361 store <8 x double> %425, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i, align 8, !noalias !1361 store <8 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i, align 8, !noalias !1361 store <8 x double> %427, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i, align 8, !noalias !1361 store <8 x double> %428, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i, align 8, !noalias !1361 store <8 x double> %429, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i, align 8, !noalias !1361 store <8 x double> %430, ptr %_3.i.i.i.i.i.i.i75.i.i.i, align 8, !noalias !1361 store <8 x double> %431, ptr %_3.i.i.i.i.i78.i.i.i, align 8, !noalias !1361 %exitcond.not = icmp eq i64 %295, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc352633737ef7554E.exit", label %bb62.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc352633737ef7554E.exit": ; preds = %bb62.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1361 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h94077bb52a1d8e91E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1374) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1374, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1374, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1374, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1374, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1374, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1374, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1374, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1374, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1374 store i64 256, ptr %n.i, align 8, !noalias !1374 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1374 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1374 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1374 store ptr null, ptr %_16.i, align 8, !noalias !1374 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1374 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1374 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1374 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1374 store ptr null, ptr %_24.i, align 8, !noalias !1374 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1374 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1374 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1374 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1374 store ptr null, ptr %_32.i, align 8, !noalias !1374 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1374 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1374 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1374 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf1696029727d7327E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1374 store ptr null, ptr %_40.i, align 8, !noalias !1374 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf1696029727d7327E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1374 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 br label %bb13.i.i.i bb13.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf1696029727d7327E.exit", %bb13.i.i.i %iter.i.i.i.sroa.22.0651 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf1696029727d7327E.exit" ], [ %10, %bb13.i.i.i ] %10 = add nuw nsw i64 %iter.i.i.i.sroa.22.0651, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.sroa.22.0651 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.sroa.22.0651 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.sroa.22.0651 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.sroa.22.0651 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1377 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1377 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1377 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1377 %11 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %12 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %13 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %14 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %15 = bitcast <8 x double> %14 to <8 x i64> %16 = xor <8 x i64> %15, %17 = fadd <8 x double> %11, %13 %18 = bitcast <8 x i64> %16 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fsub <8 x double> %12, %19 %21 = fsub <8 x double> %11, %13 %22 = fadd <8 x double> %12, %19 store <8 x double> %17, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1377 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1377 store <8 x double> %21, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1377 store <8 x double> %22, ptr %_3.i.i.i.i, align 8, !noalias !1377 %exitcond.not = icmp eq i64 %10, 16 br i1 %exitcond.not, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit", label %bb13.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit": ; preds = %bb13.i.i.i %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 tail call void @llvm.experimental.noalias.scope.decl(metadata !1381) tail call void @llvm.experimental.noalias.scope.decl(metadata !1384) tail call void @llvm.experimental.noalias.scope.decl(metadata !1386) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 br label %bb30.i bb30.i: ; preds = %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit", %bb30.i %iter.sroa.104.01903.i = phi i64 [ %196, %bb30.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01903.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 3 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %30, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %31, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %32, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %33, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %34, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %35, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %36, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %37, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %38, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %39, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %40, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %41, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %42, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %43, align 8, !alias.scope !1386, !noalias !1388, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %44 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %45 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %46 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %47 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %48 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %49 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %50 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %52 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %53 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %54 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %55 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %56 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %57 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %58 = shufflevector <2 x double> %44, <2 x double> poison, <8 x i32> zeroinitializer %59 = shufflevector <2 x double> %44, <2 x double> poison, <8 x i32> %60 = shufflevector <2 x double> %45, <2 x double> poison, <8 x i32> zeroinitializer %61 = shufflevector <2 x double> %45, <2 x double> poison, <8 x i32> %62 = shufflevector <2 x double> %46, <2 x double> poison, <8 x i32> zeroinitializer %63 = shufflevector <2 x double> %46, <2 x double> poison, <8 x i32> %64 = shufflevector <2 x double> %47, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %47, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> %70 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> zeroinitializer %71 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !1384, !noalias !1389 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %53, align 8, !alias.scope !1384, !noalias !1389 %72 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %73 = fmul <8 x double> %59, %72 %_4.i65 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %73, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %52, align 8, !alias.scope !1384, !noalias !1389 %74 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %61, %74 %_4.i64 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %60, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %75, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %54, align 8, !alias.scope !1384, !noalias !1389 %76 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %63, %76 %_4.i63 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %62, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %77, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %51, align 8, !alias.scope !1384, !noalias !1389 %78 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %79 = fmul <8 x double> %65, %78 %_4.i62 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %79, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %56, align 8, !alias.scope !1384, !noalias !1389 %80 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %67, %80 %_4.i61 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %81, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %55, align 8, !alias.scope !1384, !noalias !1389 %82 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %69, %82 %_4.i60 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %83, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %57, align 8, !alias.scope !1384, !noalias !1389 %84 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %71, %84 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %85, i32 noundef 4) #23 %86 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i62 %87 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i62 %88 = fadd <8 x double> %_4.i64, %_4.i60 %89 = fsub <8 x double> %_4.i64, %_4.i60 %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = fadd <8 x double> %_4.i65, %_4.i61 %93 = fsub <8 x double> %_4.i65, %_4.i61 %94 = fadd <8 x double> %_4.i63, %_4.i %95 = fsub <8 x double> %_4.i63, %_4.i %96 = bitcast <8 x double> %95 to <8 x i64> %97 = xor <8 x i64> %96, %98 = fadd <8 x double> %86, %88 %99 = fadd <8 x double> %92, %94 %100 = fadd <8 x double> %98, %99 store <8 x double> %100, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %101 = fsub <8 x double> %98, %99 store <8 x double> %101, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %102 = bitcast <8 x i64> %91 to <8 x double> %103 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %104 = fsub <8 x double> %87, %103 %105 = bitcast <8 x i64> %97 to <8 x double> %106 = shufflevector <8 x double> %105, <8 x double> poison, <8 x i32> %107 = fsub <8 x double> %93, %106 %108 = bitcast <8 x double> %107 to <8 x i64> %109 = xor <8 x i64> %108, %110 = bitcast <8 x i64> %109 to <8 x double> %111 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %112 = fadd <8 x double> %107, %111 %113 = fmul <8 x double> %112, %114 = fadd <8 x double> %104, %113 store <8 x double> %114, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %115 = fsub <8 x double> %104, %113 store <8 x double> %115, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %116 = fsub <8 x double> %86, %88 %117 = fsub <8 x double> %92, %94 %118 = bitcast <8 x double> %117 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fsub <8 x double> %116, %121 store <8 x double> %122, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %123 = fadd <8 x double> %116, %121 store <8 x double> %123, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %124 = fadd <8 x double> %87, %103 %125 = fadd <8 x double> %93, %106 %126 = bitcast <8 x double> %125 to <8 x i64> %127 = xor <8 x i64> %126, %128 = bitcast <8 x i64> %127 to <8 x double> %129 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %130 = fadd <8 x double> %125, %129 %131 = fmul <8 x double> %130, %132 = fsub <8 x double> %124, %131 store <8 x double> %132, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %133 = fadd <8 x double> %124, %131 store <8 x double> %133, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1381, !noalias !1390 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %y0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %_131.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %134 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %135 = fmul <8 x double> %59, %134 %_4.i65.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> %135, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %136 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %61, %136 %_4.i64.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %60, <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> %137, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %138 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %63, %138 %_4.i63.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %62, <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> %139, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %140 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %65, %140 %_4.i62.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> %141, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %142 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %67, %142 %_4.i61.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> %143, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %144 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %69, %144 %_4.i60.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> %145, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !1384, !noalias !1389 %146 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %71, %146 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> %147, i32 noundef 4) #23 %148 = fadd <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i62.1 %149 = fsub <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i62.1 %150 = fadd <8 x double> %_4.i64.1, %_4.i60.1 %151 = fsub <8 x double> %_4.i64.1, %_4.i60.1 %152 = bitcast <8 x double> %151 to <8 x i64> %153 = xor <8 x i64> %152, %154 = fadd <8 x double> %_4.i65.1, %_4.i61.1 %155 = fsub <8 x double> %_4.i65.1, %_4.i61.1 %156 = fadd <8 x double> %_4.i63.1, %_4.i.1 %157 = fsub <8 x double> %_4.i63.1, %_4.i.1 %158 = bitcast <8 x double> %157 to <8 x i64> %159 = xor <8 x i64> %158, %160 = fadd <8 x double> %148, %150 %161 = fadd <8 x double> %154, %156 %162 = fadd <8 x double> %160, %161 store <8 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %163 = fsub <8 x double> %160, %161 store <8 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %164 = bitcast <8 x i64> %153 to <8 x double> %165 = shufflevector <8 x double> %164, <8 x double> poison, <8 x i32> %166 = fsub <8 x double> %149, %165 %167 = bitcast <8 x i64> %159 to <8 x double> %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = fsub <8 x double> %155, %168 %170 = bitcast <8 x double> %169 to <8 x i64> %171 = xor <8 x i64> %170, %172 = bitcast <8 x i64> %171 to <8 x double> %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = fadd <8 x double> %169, %173 %175 = fmul <8 x double> %174, %176 = fadd <8 x double> %166, %175 store <8 x double> %176, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %177 = fsub <8 x double> %166, %175 store <8 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %178 = fsub <8 x double> %148, %150 %179 = fsub <8 x double> %154, %156 %180 = bitcast <8 x double> %179 to <8 x i64> %181 = xor <8 x i64> %180, %182 = bitcast <8 x i64> %181 to <8 x double> %183 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %184 = fsub <8 x double> %178, %183 store <8 x double> %184, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %185 = fadd <8 x double> %178, %183 store <8 x double> %185, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %186 = fadd <8 x double> %149, %165 %187 = fadd <8 x double> %155, %168 %188 = bitcast <8 x double> %187 to <8 x i64> %189 = xor <8 x i64> %188, %190 = bitcast <8 x i64> %189 to <8 x double> %191 = shufflevector <8 x double> %190, <8 x double> poison, <8 x i32> %192 = fadd <8 x double> %187, %191 %193 = fmul <8 x double> %192, %194 = fsub <8 x double> %186, %193 store <8 x double> %194, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %195 = fadd <8 x double> %186, %193 store <8 x double> %195, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1381, !noalias !1390 %196 = add nuw nsw i64 %iter.sroa.104.01903.i, 1 %exitcond652.not = icmp eq i64 %196, 4 br i1 %exitcond652.not, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, label %bb30.i _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1391) tail call void @llvm.experimental.noalias.scope.decl(metadata !1394) tail call void @llvm.experimental.noalias.scope.decl(metadata !1396) %197 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %198 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %199 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %200 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %201 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %202 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %203 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %204 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %205 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %206 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %207 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %208, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %208 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %197, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51 = getelementptr inbounds %"fft_simd::c64x4", ptr %198, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53 = getelementptr inbounds %"fft_simd::c64x4", ptr %199, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i54 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i55 = getelementptr inbounds %"fft_simd::c64x4", ptr %200, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %203, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %202, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %204, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %201, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %206, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %205, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i56 = getelementptr inbounds %"fft_simd::c64x4", ptr %207, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1396, !noalias !1398 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1396, !noalias !1398 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1396, !noalias !1398 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1396, !noalias !1398 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1396, !noalias !1398 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1396, !noalias !1398 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i56, align 8, !alias.scope !1396, !noalias !1398 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1394, !noalias !1399 %209 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %209, align 8, !alias.scope !1394, !noalias !1399 %210 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %210, align 8, !alias.scope !1394, !noalias !1399 %211 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %211, align 8, !alias.scope !1394, !noalias !1399 %212 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %212, align 8, !alias.scope !1394, !noalias !1399 %213 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %213, align 8, !alias.scope !1394, !noalias !1399 %214 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %214, align 8, !alias.scope !1394, !noalias !1399 %215 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %215, align 8, !alias.scope !1394, !noalias !1399 %216 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %217 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %218 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %219 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %220 = shufflevector <8 x double> %216, <8 x double> %218, <8 x i32> %221 = shufflevector <8 x double> %216, <8 x double> %218, <8 x i32> %222 = shufflevector <8 x double> %217, <8 x double> %219, <8 x i32> %223 = shufflevector <8 x double> %217, <8 x double> %219, <8 x i32> %224 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %225 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %226 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %227 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %228 = shufflevector <8 x double> %224, <8 x double> %226, <8 x i32> %229 = shufflevector <8 x double> %224, <8 x double> %226, <8 x i32> %230 = shufflevector <8 x double> %225, <8 x double> %227, <8 x i32> %231 = shufflevector <8 x double> %225, <8 x double> %227, <8 x i32> %232 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %233 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %234 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %235 = fmul <8 x double> %234, %232 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %233, <8 x double> %222, <8 x double> %235, i32 noundef 4) #23 %236 = shufflevector <8 x double> %221, <8 x double> poison, <8 x i32> %237 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %238 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %239 = fmul <8 x double> %238, %236 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %237, <8 x double> %221, <8 x double> %239, i32 noundef 4) #23 %240 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %241 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %242 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %242, %240 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %241, <8 x double> %223, <8 x double> %243, i32 noundef 4) #23 %244 = shufflevector <8 x double> %228, <8 x double> poison, <8 x i32> %245 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %246 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %247 = fmul <8 x double> %246, %244 %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %245, <8 x double> %228, <8 x double> %247, i32 noundef 4) #23 %248 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %249 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %250 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %251 = fmul <8 x double> %250, %248 %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %249, <8 x double> %230, <8 x double> %251, i32 noundef 4) #23 %252 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %253 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %254 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %255 = fmul <8 x double> %254, %252 %_4.i67 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %253, <8 x double> %229, <8 x double> %255, i32 noundef 4) #23 %256 = shufflevector <8 x double> %231, <8 x double> poison, <8 x i32> %257 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %258 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %259 = fmul <8 x double> %258, %256 %_4.i66 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %257, <8 x double> %231, <8 x double> %259, i32 noundef 4) #23 %260 = fadd <8 x double> %220, %_4.i69 %261 = fsub <8 x double> %220, %_4.i69 %262 = fadd <8 x double> %_4.i71, %_4.i67 %263 = fsub <8 x double> %_4.i71, %_4.i67 %264 = bitcast <8 x double> %263 to <8 x i64> %265 = xor <8 x i64> %264, %266 = fadd <8 x double> %_4.i72, %_4.i68 %267 = fsub <8 x double> %_4.i72, %_4.i68 %268 = fadd <8 x double> %_4.i70, %_4.i66 %269 = fsub <8 x double> %_4.i70, %_4.i66 %270 = bitcast <8 x double> %269 to <8 x i64> %271 = xor <8 x i64> %270, %272 = fadd <8 x double> %260, %262 %273 = fadd <8 x double> %266, %268 %274 = fadd <8 x double> %272, %273 store <8 x double> %274, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1391, !noalias !1400 %275 = fsub <8 x double> %272, %273 store <8 x double> %275, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52, align 8, !alias.scope !1391, !noalias !1400 %276 = bitcast <8 x i64> %265 to <8 x double> %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fsub <8 x double> %261, %277 %279 = bitcast <8 x i64> %271 to <8 x double> %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fsub <8 x double> %267, %280 %282 = bitcast <8 x double> %281 to <8 x i64> %283 = xor <8 x i64> %282, %284 = bitcast <8 x i64> %283 to <8 x double> %285 = shufflevector <8 x double> %284, <8 x double> poison, <8 x i32> %286 = fadd <8 x double> %281, %285 %287 = fmul <8 x double> %286, %288 = fadd <8 x double> %278, %287 store <8 x double> %288, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1391, !noalias !1400 %289 = fsub <8 x double> %278, %287 store <8 x double> %289, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53, align 8, !alias.scope !1391, !noalias !1400 %290 = fsub <8 x double> %260, %262 %291 = fsub <8 x double> %266, %268 %292 = bitcast <8 x double> %291 to <8 x i64> %293 = xor <8 x i64> %292, %294 = bitcast <8 x i64> %293 to <8 x double> %295 = shufflevector <8 x double> %294, <8 x double> poison, <8 x i32> %296 = fsub <8 x double> %290, %295 store <8 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50, align 8, !alias.scope !1391, !noalias !1400 %297 = fadd <8 x double> %290, %295 store <8 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i54, align 8, !alias.scope !1391, !noalias !1400 %298 = fadd <8 x double> %261, %277 %299 = fadd <8 x double> %267, %280 %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = bitcast <8 x i64> %301 to <8 x double> %303 = shufflevector <8 x double> %302, <8 x double> poison, <8 x i32> %304 = fadd <8 x double> %299, %303 %305 = fmul <8 x double> %304, %306 = fsub <8 x double> %298, %305 store <8 x double> %306, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51, align 8, !alias.scope !1391, !noalias !1400 %307 = fadd <8 x double> %298, %305 store <8 x double> %307, ptr %_3.i.i.i.i.i.i.i.i.i.i.i55, align 8, !alias.scope !1391, !noalias !1400 %exitcond.not.i59 = icmp eq i64 %208, 8 br i1 %exitcond.not.i59, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1374 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9567e81409daf135E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1401) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1401, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1401, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1401, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1401, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1401, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1401, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1401, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1401, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1401 store i64 128, ptr %n.i, align 8, !noalias !1401 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1401 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1401 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1401 store ptr null, ptr %_16.i, align 8, !noalias !1401 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1401 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1401 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1401 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1401 store ptr null, ptr %_24.i, align 8, !noalias !1401 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1401 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1401 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1401 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1401 store ptr null, ptr %_32.i, align 8, !noalias !1401 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1401 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1401 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1401 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1401 store ptr null, ptr %_40.i, align 8, !noalias !1401 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1401 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %_51.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !1404 %9 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload %10 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload store <8 x double> %9, ptr %scratch.0.i, align 8, !noalias !1404 store <8 x double> %10, ptr %7, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 17 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_51.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1404 %11 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 %12 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %11, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1404 store <8 x double> %12, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 18 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_51.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1404 %13 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 %14 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 store <8 x double> %13, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1404 store <8 x double> %14, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 19 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_51.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1404 %15 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 %16 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 store <8 x double> %15, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1404 store <8 x double> %16, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %_3.i2.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %_3.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_3.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_51.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.i.i.4, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.4, align 8, !noalias !1404 %17 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 %18 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 store <8 x double> %17, ptr %_3.i.i.i.i.i.i.i.i.4, align 8, !noalias !1404 store <8 x double> %18, ptr %_3.i2.i.i.i.i.i.i.i.4, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i2.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 21 %_3.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_51.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.i.i.5, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.5, align 8, !noalias !1404 %19 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 %20 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 store <8 x double> %19, ptr %_3.i.i.i.i.i.i.i.i.5, align 8, !noalias !1404 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i.5, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i2.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 22 %_3.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_51.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.i.i.6, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.6, align 8, !noalias !1404 %21 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 %22 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 store <8 x double> %21, ptr %_3.i.i.i.i.i.i.i.i.6, align 8, !noalias !1404 store <8 x double> %22, ptr %_3.i2.i.i.i.i.i.i.i.6, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i2.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 23 %_3.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_51.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.i.i.7, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.7, align 8, !noalias !1404 %23 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 %24 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 store <8 x double> %23, ptr %_3.i.i.i.i.i.i.i.i.7, align 8, !noalias !1404 store <8 x double> %24, ptr %_3.i2.i.i.i.i.i.i.i.7, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %_3.i2.i.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %_3.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %_3.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_51.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i.i.i.i.i.i.8, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i.i.i.i.8, align 8, !noalias !1404 %25 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 %26 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 store <8 x double> %25, ptr %_3.i.i.i.i.i.i.i.i.8, align 8, !noalias !1404 store <8 x double> %26, ptr %_3.i2.i.i.i.i.i.i.i.8, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i2.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 25 %_3.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_51.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.i.i.9, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.9, align 8, !noalias !1404 %27 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 %28 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 store <8 x double> %27, ptr %_3.i.i.i.i.i.i.i.i.9, align 8, !noalias !1404 store <8 x double> %28, ptr %_3.i2.i.i.i.i.i.i.i.9, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %_3.i2.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 26 %_3.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_51.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.i.i.10, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.10, align 8, !noalias !1404 %29 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 %30 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 store <8 x double> %29, ptr %_3.i.i.i.i.i.i.i.i.10, align 8, !noalias !1404 store <8 x double> %30, ptr %_3.i2.i.i.i.i.i.i.i.10, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i2.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 27 %_3.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_51.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.i.i.11, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.11, align 8, !noalias !1404 %31 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 %32 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 store <8 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.11, align 8, !noalias !1404 store <8 x double> %32, ptr %_3.i2.i.i.i.i.i.i.i.11, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %_3.i2.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %_3.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_3.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_51.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.i.i.12, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.12, align 8, !noalias !1404 %33 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 %34 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 store <8 x double> %33, ptr %_3.i.i.i.i.i.i.i.i.12, align 8, !noalias !1404 store <8 x double> %34, ptr %_3.i2.i.i.i.i.i.i.i.12, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i2.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 29 %_3.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_51.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.i.i.13, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.13, align 8, !noalias !1404 %35 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 %36 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 store <8 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.13, align 8, !noalias !1404 store <8 x double> %36, ptr %_3.i2.i.i.i.i.i.i.i.13, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_3.i2.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 30 %_3.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_51.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.i.i.14, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.14, align 8, !noalias !1404 %37 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 %38 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 store <8 x double> %37, ptr %_3.i.i.i.i.i.i.i.i.14, align 8, !noalias !1404 store <8 x double> %38, ptr %_3.i2.i.i.i.i.i.i.i.14, align 8, !noalias !1404 %_3.i.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i2.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 31 %_3.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_51.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.i.i.15, align 8, !noalias !1404 %_52.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.15, align 8, !noalias !1404 %39 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 %40 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 store <8 x double> %39, ptr %_3.i.i.i.i.i.i.i.i.15, align 8, !noalias !1404 store <8 x double> %40, ptr %_3.i2.i.i.i.i.i.i.i.15, align 8, !noalias !1404 tail call void @llvm.experimental.noalias.scope.decl(metadata !1411) tail call void @llvm.experimental.noalias.scope.decl(metadata !1414) tail call void @llvm.experimental.noalias.scope.decl(metadata !1416) %41 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 br label %bb22.us.i bb22.us.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E.exit", %bb22.us.i %_2.i.i.i.us.i = phi i1 [ false, %bb22.us.i ], [ true, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E.exit" ] %iter.sroa.60.0645.us.i = phi i64 [ 1, %bb22.us.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl nuw nsw i64 %iter.sroa.60.0645.us.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.us.i = shl nuw nsw i64 %iter.sroa.60.0645.us.i, 4 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %41, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.i.i.8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %42 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1 %w1.0614.us.i = load <2 x float>, ptr %42, align 8, !alias.scope !1416, !noalias !1418, !noundef !3 %43 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %43, align 8, !alias.scope !1416, !noalias !1418, !noundef !3 %44 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2 %w2.0616.us.i = load <2 x float>, ptr %44, align 8, !alias.scope !1416, !noalias !1418, !noundef !3 %45 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %45, align 8, !alias.scope !1416, !noalias !1418, !noundef !3 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3 %w3.0618.us.i = load <2 x float>, ptr %46, align 8, !alias.scope !1416, !noalias !1418, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %47, align 8, !alias.scope !1416, !noalias !1418, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %48 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %49 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %50 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 8 %52 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 4 %53 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 12 %54 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> zeroinitializer %55 = shufflevector <2 x double> %48, <2 x double> poison, <8 x i32> %56 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> zeroinitializer %57 = shufflevector <2 x double> %49, <2 x double> poison, <8 x i32> %58 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> zeroinitializer %59 = shufflevector <2 x double> %50, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1414, !noalias !1419 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %52, align 8, !alias.scope !1414, !noalias !1419 %60 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %61 = fmul <8 x double> %55, %60 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %61, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %51, align 8, !alias.scope !1414, !noalias !1419 %62 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %63 = fmul <8 x double> %57, %62 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %63, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %53, align 8, !alias.scope !1414, !noalias !1419 %64 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %59, %64 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %65, i32 noundef 4) #23 %66 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i106 %67 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i106 %68 = fadd <8 x double> %_4.i107, %_4.i %69 = fsub <8 x double> %_4.i107, %_4.i %70 = bitcast <8 x double> %69 to <8 x i64> %71 = xor <8 x i64> %70, %72 = bitcast <8 x i64> %71 to <8 x double> %73 = shufflevector <8 x double> %72, <8 x double> poison, <8 x i32> %74 = fadd <8 x double> %66, %68 store <8 x double> %74, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1411, !noalias !1420 %75 = fsub <8 x double> %67, %73 store <8 x double> %75, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1411, !noalias !1420 %76 = fsub <8 x double> %66, %68 store <8 x double> %76, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1411, !noalias !1420 %77 = fadd <8 x double> %67, %73 store <8 x double> %77, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1411, !noalias !1420 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 5 %_3.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 9 %_3.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 13 %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1414, !noalias !1419 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1414, !noalias !1419 %78 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %79 = fmul <8 x double> %55, %78 %_4.i107.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %79, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1414, !noalias !1419 %80 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %57, %80 %_4.i106.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %81, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i.i.i.i.us.i.1, align 8, !alias.scope !1414, !noalias !1419 %82 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %83 = fmul <8 x double> %59, %82 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %83, i32 noundef 4) #23 %84 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i106.1 %85 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i106.1 %86 = fadd <8 x double> %_4.i107.1, %_4.i.1 %87 = fsub <8 x double> %_4.i107.1, %_4.i.1 %88 = bitcast <8 x double> %87 to <8 x i64> %89 = xor <8 x i64> %88, %90 = bitcast <8 x i64> %89 to <8 x double> %91 = shufflevector <8 x double> %90, <8 x double> poison, <8 x i32> %92 = fadd <8 x double> %84, %86 store <8 x double> %92, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1411, !noalias !1420 %93 = fsub <8 x double> %85, %91 store <8 x double> %93, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1411, !noalias !1420 %94 = fsub <8 x double> %84, %86 store <8 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1411, !noalias !1420 %95 = fadd <8 x double> %85, %91 store <8 x double> %95, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1411, !noalias !1420 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %_3.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 6 %_3.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 10 %_3.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 14 %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1414, !noalias !1419 %_84.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1414, !noalias !1419 %96 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %55, %96 %_4.i107.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> %97, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1414, !noalias !1419 %98 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %99 = fmul <8 x double> %57, %98 %_4.i106.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> %99, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %_3.i.i.i.i.us.i.2, align 8, !alias.scope !1414, !noalias !1419 %100 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %101 = fmul <8 x double> %59, %100 %_4.i.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> %101, i32 noundef 4) #23 %102 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i106.2 %103 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i106.2 %104 = fadd <8 x double> %_4.i107.2, %_4.i.2 %105 = fsub <8 x double> %_4.i107.2, %_4.i.2 %106 = bitcast <8 x double> %105 to <8 x i64> %107 = xor <8 x i64> %106, %108 = bitcast <8 x i64> %107 to <8 x double> %109 = shufflevector <8 x double> %108, <8 x double> poison, <8 x i32> %110 = fadd <8 x double> %102, %104 store <8 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1411, !noalias !1420 %111 = fsub <8 x double> %103, %109 store <8 x double> %111, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1411, !noalias !1420 %112 = fsub <8 x double> %102, %104 store <8 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1411, !noalias !1420 %113 = fadd <8 x double> %103, %109 store <8 x double> %113, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1411, !noalias !1420 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %_3.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 7 %_3.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 11 %_3.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 15 %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1414, !noalias !1419 %_84.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1414, !noalias !1419 %114 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %115 = fmul <8 x double> %55, %114 %_4.i107.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %54, <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> %115, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1414, !noalias !1419 %116 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %117 = fmul <8 x double> %57, %116 %_4.i106.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %56, <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> %117, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %_3.i.i.i.i.us.i.3, align 8, !alias.scope !1414, !noalias !1419 %118 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %119 = fmul <8 x double> %59, %118 %_4.i.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %58, <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> %119, i32 noundef 4) #23 %120 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i106.3 %121 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i106.3 %122 = fadd <8 x double> %_4.i107.3, %_4.i.3 %123 = fsub <8 x double> %_4.i107.3, %_4.i.3 %124 = bitcast <8 x double> %123 to <8 x i64> %125 = xor <8 x i64> %124, %126 = bitcast <8 x i64> %125 to <8 x double> %127 = shufflevector <8 x double> %126, <8 x double> poison, <8 x i32> %128 = fadd <8 x double> %120, %122 store <8 x double> %128, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1411, !noalias !1420 %129 = fsub <8 x double> %121, %127 store <8 x double> %129, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1411, !noalias !1420 %130 = fsub <8 x double> %120, %122 store <8 x double> %130, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1411, !noalias !1420 %131 = fadd <8 x double> %121, %127 store <8 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1411, !noalias !1420 br i1 %_2.i.i.i.us.i, label %bb22.us.i, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1421) tail call void @llvm.experimental.noalias.scope.decl(metadata !1424) tail call void @llvm.experimental.noalias.scope.decl(metadata !1426) %132 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 br label %bb22.us.i46 bb22.us.i46: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit, %bb22.us.i46 %iter.sroa.60.0645.us.i47 = phi i64 [ %169, %bb22.us.i46 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i48 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0645.us.i47 %start1.i.i.i.i.us.i49 = shl i64 %iter.sroa.60.0645.us.i47, 2 %data.i.i.i.i.i.i.us.i50 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.us.i49 %data.i.i.i.i.i.i.i.i.us.i51 = getelementptr inbounds %"fft_simd::c64x4", ptr %132, i64 %iter.sroa.60.0645.us.i47 %data.i.i.i.i.i.i.i.i.i.i.us.i52 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.60.0645.us.i47 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i53 = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.i.i.i.i.8, i64 %iter.sroa.60.0645.us.i47 %133 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 1 %w1.0614.us.i54 = load <2 x float>, ptr %133, align 8, !alias.scope !1426, !noalias !1428, !noundef !3 %134 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 1, i32 1 %w1.1615.us.i55 = load <2 x float>, ptr %134, align 8, !alias.scope !1426, !noalias !1428, !noundef !3 %135 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 2 %w2.0616.us.i56 = load <2 x float>, ptr %135, align 8, !alias.scope !1426, !noalias !1428, !noundef !3 %136 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 2, i32 1 %w2.1617.us.i57 = load <2 x float>, ptr %136, align 8, !alias.scope !1426, !noalias !1428, !noundef !3 %137 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 3 %w3.0618.us.i58 = load <2 x float>, ptr %137, align 8, !alias.scope !1426, !noalias !1428, !noundef !3 %138 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.us.i49, i64 3, i32 1 %w3.1619.us.i59 = load <2 x float>, ptr %138, align 8, !alias.scope !1426, !noalias !1428, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i60 = shufflevector <2 x float> %w1.0614.us.i54, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i61 = shufflevector <2 x float> %w1.1615.us.i55, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i62 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i60, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i61, <4 x i32> %139 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i62 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i64 = shufflevector <2 x float> %w2.0616.us.i56, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i65 = shufflevector <2 x float> %w2.1617.us.i57, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i66 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i64, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i65, <4 x i32> %140 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i66 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i68 = shufflevector <2 x float> %w3.0618.us.i58, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i69 = shufflevector <2 x float> %w3.1619.us.i59, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i70 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i68, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i69, <4 x i32> %141 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i70 to <2 x double> %142 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i50, i64 2 %143 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i50, i64 1 %144 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i50, i64 3 %145 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> zeroinitializer %146 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> %147 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> zeroinitializer %148 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> %149 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> zeroinitializer %150 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i82 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i50, align 8, !alias.scope !1424, !noalias !1429 %_84.sroa.0.0.copyload.us.i83 = load <8 x double>, ptr %143, align 8, !alias.scope !1424, !noalias !1429 %151 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i83, <8 x double> poison, <8 x i32> %152 = fmul <8 x double> %146, %151 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %145, <8 x double> %_84.sroa.0.0.copyload.us.i83, <8 x double> %152, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i85 = load <8 x double>, ptr %142, align 8, !alias.scope !1424, !noalias !1429 %153 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i85, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %148, %153 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %147, <8 x double> %_86.sroa.0.0.copyload.us.i85, <8 x double> %154, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i87 = load <8 x double>, ptr %144, align 8, !alias.scope !1424, !noalias !1429 %155 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i87, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %150, %155 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %149, <8 x double> %_88.sroa.0.0.copyload.us.i87, <8 x double> %156, i32 noundef 4) #23 %157 = fadd <8 x double> %a.sroa.0.0.copyload.us.i82, %_4.i109 %158 = fsub <8 x double> %a.sroa.0.0.copyload.us.i82, %_4.i109 %159 = fadd <8 x double> %_4.i110, %_4.i108 %160 = fsub <8 x double> %_4.i110, %_4.i108 %161 = bitcast <8 x double> %160 to <8 x i64> %162 = xor <8 x i64> %161, %163 = bitcast <8 x i64> %162 to <8 x double> %164 = shufflevector <8 x double> %163, <8 x double> poison, <8 x i32> %165 = fadd <8 x double> %157, %159 store <8 x double> %165, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i48, align 8, !alias.scope !1421, !noalias !1430 %166 = fsub <8 x double> %158, %164 store <8 x double> %166, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i53, align 8, !alias.scope !1421, !noalias !1430 %167 = fsub <8 x double> %157, %159 store <8 x double> %167, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i52, align 8, !alias.scope !1421, !noalias !1430 %168 = fadd <8 x double> %158, %164 store <8 x double> %168, ptr %data.i.i.i.i.i.i.i.i.us.i51, align 8, !alias.scope !1421, !noalias !1430 %169 = add nuw nsw i64 %iter.sroa.60.0645.us.i47, 1 %exitcond.not = icmp eq i64 %169, 8 br i1 %exitcond.not, label %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101, label %bb22.us.i46 _ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101: ; preds = %bb22.us.i46 tail call void @llvm.experimental.noalias.scope.decl(metadata !1431) tail call void @llvm.experimental.noalias.scope.decl(metadata !1434) tail call void @llvm.experimental.noalias.scope.decl(metadata !1436) %170 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %171 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %172 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 br label %bb15.i104 bb15.i104: ; preds = %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101, %bb15.i104 %iter.sroa.50.0449.i = phi i64 [ %173, %bb15.i104 ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE.exit101 ] %173 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.i.i.8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %41, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %171, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %170, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %172, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1436, !noalias !1438 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1436, !noalias !1438 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1436, !noalias !1438 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1434, !noalias !1439 %174 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %174, align 8, !alias.scope !1434, !noalias !1439 %175 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %175, align 8, !alias.scope !1434, !noalias !1439 %176 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %176, align 8, !alias.scope !1434, !noalias !1439 %177 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %178 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %179 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %180 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %181 = shufflevector <8 x double> %177, <8 x double> %179, <8 x i32> %182 = shufflevector <8 x double> %177, <8 x double> %179, <8 x i32> %183 = shufflevector <8 x double> %178, <8 x double> %180, <8 x i32> %184 = shufflevector <8 x double> %178, <8 x double> %180, <8 x i32> %185 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %187, %185 %_4.i113 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %186, <8 x double> %183, <8 x double> %188, i32 noundef 4) #23 %189 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %191, %189 %_4.i112 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %182, <8 x double> %192, i32 noundef 4) #23 %193 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %194 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = fmul <8 x double> %195, %193 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %184, <8 x double> %196, i32 noundef 4) #23 %197 = fadd <8 x double> %181, %_4.i112 %198 = fsub <8 x double> %181, %_4.i112 %199 = fadd <8 x double> %_4.i113, %_4.i111 %200 = fsub <8 x double> %_4.i113, %_4.i111 %201 = bitcast <8 x double> %200 to <8 x i64> %202 = xor <8 x i64> %201, %203 = bitcast <8 x i64> %202 to <8 x double> %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = fadd <8 x double> %197, %199 store <8 x double> %205, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1431, !noalias !1440 %206 = fsub <8 x double> %198, %204 store <8 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1431, !noalias !1440 %207 = fsub <8 x double> %197, %199 store <8 x double> %207, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1431, !noalias !1440 %208 = fadd <8 x double> %198, %204 store <8 x double> %208, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1431, !noalias !1440 %exitcond.not.i105 = icmp eq i64 %173, 8 br i1 %exitcond.not.i105, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i104 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i104 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1401 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h95bbf7344a038898E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1441) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1441, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1441, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1441, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1441, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1441, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1441, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1441, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1441, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1441 store i64 1024, ptr %n.i, align 8, !noalias !1441 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1441 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1441 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1441 store ptr null, ptr %_16.i, align 8, !noalias !1441 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1441 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1441 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1441 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1441 store ptr null, ptr %_24.i, align 8, !noalias !1441 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1441 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1441 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1441 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1441 store ptr null, ptr %_32.i, align 8, !noalias !1441 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1441 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1441 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1441 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f57aa9b76bee49cE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1441 store ptr null, ptr %_40.i, align 8, !noalias !1441 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f57aa9b76bee49cE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1441 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 br label %bb13.i.i.i.i bb13.i.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f57aa9b76bee49cE.exit", %bb13.i.i.i.i %iter.i.i.i.i.sroa.22.01498 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f57aa9b76bee49cE.exit" ], [ %10, %bb13.i.i.i.i ] %10 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.01498, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.22.01498 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.22.01498 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.22.01498 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.sroa.22.01498 %_43.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1444 %_44.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1444 %_45.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1444 %_46.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1444 %11 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %12 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %13 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %14 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %15 = bitcast <8 x double> %14 to <8 x i64> %16 = xor <8 x i64> %15, %17 = bitcast <8 x i64> %16 to <8 x double> %18 = shufflevector <8 x double> %17, <8 x double> poison, <8 x i32> %19 = fadd <8 x double> %11, %13 %20 = fsub <8 x double> %12, %18 %21 = fsub <8 x double> %11, %13 %22 = fadd <8 x double> %12, %18 store <8 x double> %19, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1444 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1444 store <8 x double> %21, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1444 store <8 x double> %22, ptr %_3.i.i.i.i, align 8, !noalias !1444 %exitcond.not = icmp eq i64 %10, 64 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit", label %bb13.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit": ; preds = %bb13.i.i.i.i %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 tail call void @llvm.experimental.noalias.scope.decl(metadata !1451) tail call void @llvm.experimental.noalias.scope.decl(metadata !1454) tail call void @llvm.experimental.noalias.scope.decl(metadata !1456) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 144 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 176 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 208 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 240 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i %38 = add nuw nsw i64 %iter.sroa.208.05263.i, 1 %exitcond1499.not = icmp eq i64 %38, 4 br i1 %exitcond1499.not, label %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit, label %bb46.i bb46.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit", %bb44.loopexit.i %iter.sroa.208.05263.i = phi i64 [ %38, %bb44.loopexit.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05263.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05263.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %37, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.208.05263.i, 4 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.04940.i = load <2 x float>, ptr %39, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.14941.i = load <2 x float>, ptr %40, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.04942.i = load <2 x float>, ptr %41, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.14943.i = load <2 x float>, ptr %42, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.04944.i = load <2 x float>, ptr %43, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.14945.i = load <2 x float>, ptr %44, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.04946.i = load <2 x float>, ptr %45, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.14947.i = load <2 x float>, ptr %46, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.04948.i = load <2 x float>, ptr %47, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.14949.i = load <2 x float>, ptr %48, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.04950.i = load <2 x float>, ptr %49, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.14951.i = load <2 x float>, ptr %50, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.04952.i = load <2 x float>, ptr %51, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.14953.i = load <2 x float>, ptr %52, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.04954.i = load <2 x float>, ptr %53, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.14955.i = load <2 x float>, ptr %54, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.04956.i = load <2 x float>, ptr %55, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.14957.i = load <2 x float>, ptr %56, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.04958.i = load <2 x float>, ptr %57, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.14959.i = load <2 x float>, ptr %58, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.04960.i = load <2 x float>, ptr %59, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.14961.i = load <2 x float>, ptr %60, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.04962.i = load <2 x float>, ptr %61, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.14963.i = load <2 x float>, ptr %62, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.04964.i = load <2 x float>, ptr %63, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.14965.i = load <2 x float>, ptr %64, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.04966.i = load <2 x float>, ptr %65, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.14967.i = load <2 x float>, ptr %66, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.04968.i = load <2 x float>, ptr %67, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.14969.i = load <2 x float>, ptr %68, align 8, !alias.scope !1456, !noalias !1458, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.04940.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.14941.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %69 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.04942.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.14943.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %70 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.04944.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.14945.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %71 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.04946.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.14947.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %72 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.04948.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.14949.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %73 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.04950.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.14951.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %74 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.04952.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.14953.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %75 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.04954.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.14955.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %76 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.04956.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.14957.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %77 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.04958.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.14959.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %78 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.04960.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.14961.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %79 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.04962.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.14963.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %80 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.04964.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.14965.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %81 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.04966.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.14967.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %82 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.04968.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.14969.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %83 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %84 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %89 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %90 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %92 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %93 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %94 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %95 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %96 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %97 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %99 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> zeroinitializer %100 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> %101 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> %107 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> zeroinitializer %108 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> %109 = shufflevector <2 x double> %74, <2 x double> poison, <8 x i32> zeroinitializer %110 = shufflevector <2 x double> %74, <2 x double> poison, <8 x i32> %111 = shufflevector <2 x double> %75, <2 x double> poison, <8 x i32> zeroinitializer %112 = shufflevector <2 x double> %75, <2 x double> poison, <8 x i32> %113 = shufflevector <2 x double> %76, <2 x double> poison, <8 x i32> zeroinitializer %114 = shufflevector <2 x double> %76, <2 x double> poison, <8 x i32> %115 = shufflevector <2 x double> %77, <2 x double> poison, <8 x i32> zeroinitializer %116 = shufflevector <2 x double> %77, <2 x double> poison, <8 x i32> %117 = shufflevector <2 x double> %78, <2 x double> poison, <8 x i32> zeroinitializer %118 = shufflevector <2 x double> %78, <2 x double> poison, <8 x i32> %119 = shufflevector <2 x double> %79, <2 x double> poison, <8 x i32> zeroinitializer %120 = shufflevector <2 x double> %79, <2 x double> poison, <8 x i32> %121 = shufflevector <2 x double> %80, <2 x double> poison, <8 x i32> zeroinitializer %122 = shufflevector <2 x double> %80, <2 x double> poison, <8 x i32> %123 = shufflevector <2 x double> %81, <2 x double> poison, <8 x i32> zeroinitializer %124 = shufflevector <2 x double> %81, <2 x double> poison, <8 x i32> %125 = shufflevector <2 x double> %82, <2 x double> poison, <8 x i32> zeroinitializer %126 = shufflevector <2 x double> %82, <2 x double> poison, <8 x i32> %127 = shufflevector <2 x double> %83, <2 x double> poison, <8 x i32> zeroinitializer %128 = shufflevector <2 x double> %83, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05074.i = phi i64 [ %129, %bb98.i ], [ 0, %bb46.i ] %129 = add nuw nsw i64 %iter10.sroa.218.05074.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %87, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %86, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %88, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %85, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %90, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %89, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %84, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %94, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %93, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %95, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %92, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %97, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %96, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %98, i64 %iter10.sroa.218.05074.i %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %_220.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %130 = shufflevector <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %131 = fmul <8 x double> %100, %130 %_4.i85 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %99, <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> %131, i32 noundef 4) #23 %_222.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %132 = shufflevector <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %133 = fmul <8 x double> %102, %132 %_4.i84 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> %133, i32 noundef 4) #23 %_224.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %134 = shufflevector <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %135 = fmul <8 x double> %104, %134 %_4.i83 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> %135, i32 noundef 4) #23 %_226.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %136 = shufflevector <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %106, %136 %_4.i82 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> %137, i32 noundef 4) #23 %_228.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %138 = shufflevector <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %108, %138 %_4.i81 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %107, <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> %139, i32 noundef 4) #23 %_230.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %140 = shufflevector <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %110, %140 %_4.i80 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %109, <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> %141, i32 noundef 4) #23 %_232.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %142 = shufflevector <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %112, %142 %_4.i79 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %111, <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> %143, i32 noundef 4) #23 %_234.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %144 = shufflevector <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %114, %144 %_4.i78 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %113, <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> %145, i32 noundef 4) #23 %_236.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %146 = shufflevector <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %116, %146 %_4.i77 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %115, <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> %147, i32 noundef 4) #23 %_238.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %148 = shufflevector <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = fmul <8 x double> %118, %148 %_4.i76 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %117, <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> %149, i32 noundef 4) #23 %_240.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %150 = shufflevector <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %120, %150 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %119, <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> %151, i32 noundef 4) #23 %_242.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %152 = shufflevector <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %153 = fmul <8 x double> %122, %152 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %121, <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> %153, i32 noundef 4) #23 %_244.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %154 = shufflevector <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %155 = fmul <8 x double> %124, %154 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %123, <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> %155, i32 noundef 4) #23 %_246.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %156 = shufflevector <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %126, %156 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %125, <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> %157, i32 noundef 4) #23 %_248.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !1454, !noalias !1459 %158 = shufflevector <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %128, %158 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %127, <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> %159, i32 noundef 4) #23 %160 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i78 %161 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i78 %162 = fadd <8 x double> %_4.i82, %_4.i74 %163 = fsub <8 x double> %_4.i82, %_4.i74 %164 = fadd <8 x double> %_4.i84, %_4.i76 %165 = fsub <8 x double> %_4.i84, %_4.i76 %166 = fadd <8 x double> %_4.i80, %_4.i72 %167 = fsub <8 x double> %_4.i80, %_4.i72 %168 = fadd <8 x double> %_4.i85, %_4.i77 %169 = fsub <8 x double> %_4.i85, %_4.i77 %170 = fadd <8 x double> %_4.i81, %_4.i73 %171 = fsub <8 x double> %_4.i81, %_4.i73 %172 = fadd <8 x double> %_4.i83, %_4.i75 %173 = fsub <8 x double> %_4.i83, %_4.i75 %174 = fadd <8 x double> %_4.i79, %_4.i71 %175 = fsub <8 x double> %_4.i79, %_4.i71 %176 = bitcast <8 x double> %163 to <8 x i64> %177 = xor <8 x i64> %176, %178 = bitcast <8 x i64> %177 to <8 x double> %179 = shufflevector <8 x double> %178, <8 x double> poison, <8 x i32> %180 = bitcast <8 x double> %167 to <8 x i64> %181 = xor <8 x i64> %180, %182 = bitcast <8 x i64> %181 to <8 x double> %183 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %184 = bitcast <8 x double> %171 to <8 x i64> %185 = xor <8 x i64> %184, %186 = bitcast <8 x i64> %185 to <8 x double> %187 = shufflevector <8 x double> %186, <8 x double> poison, <8 x i32> %188 = bitcast <8 x double> %175 to <8 x i64> %189 = xor <8 x i64> %188, %190 = bitcast <8 x i64> %189 to <8 x double> %191 = shufflevector <8 x double> %190, <8 x double> poison, <8 x i32> %192 = fadd <8 x double> %160, %162 %193 = fsub <8 x double> %161, %179 %194 = fsub <8 x double> %160, %162 %195 = fadd <8 x double> %161, %179 %196 = fadd <8 x double> %164, %166 %197 = fsub <8 x double> %165, %183 %198 = fsub <8 x double> %164, %166 %199 = fadd <8 x double> %165, %183 %200 = fadd <8 x double> %168, %170 %201 = fsub <8 x double> %169, %187 %202 = fsub <8 x double> %168, %170 %203 = fadd <8 x double> %169, %187 %204 = fadd <8 x double> %172, %174 %205 = fsub <8 x double> %173, %191 %206 = fsub <8 x double> %172, %174 %207 = fadd <8 x double> %173, %191 %208 = bitcast <8 x double> %197 to <8 x i64> %209 = xor <8 x i64> %208, %210 = bitcast <8 x i64> %209 to <8 x double> %211 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %212 = fadd <8 x double> %197, %211 %213 = fmul <8 x double> %212, %214 = bitcast <8 x double> %198 to <8 x i64> %215 = xor <8 x i64> %214, %216 = bitcast <8 x i64> %215 to <8 x double> %217 = shufflevector <8 x double> %216, <8 x double> poison, <8 x i32> %218 = bitcast <8 x double> %199 to <8 x i64> %219 = xor <8 x i64> %218, %220 = bitcast <8 x i64> %219 to <8 x double> %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fadd <8 x double> %199, %221 %223 = fmul <8 x double> %222, %224 = fadd <8 x double> %192, %196 %225 = fadd <8 x double> %193, %213 %226 = fsub <8 x double> %194, %217 %227 = fsub <8 x double> %195, %223 %228 = fsub <8 x double> %192, %196 %229 = fsub <8 x double> %193, %213 %230 = fadd <8 x double> %194, %217 %231 = fadd <8 x double> %195, %223 %232 = bitcast <8 x double> %205 to <8 x i64> %233 = xor <8 x i64> %232, %234 = bitcast <8 x i64> %233 to <8 x double> %235 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %236 = fadd <8 x double> %205, %235 %237 = fmul <8 x double> %236, %238 = bitcast <8 x double> %206 to <8 x i64> %239 = xor <8 x i64> %238, %240 = bitcast <8 x i64> %239 to <8 x double> %241 = shufflevector <8 x double> %240, <8 x double> poison, <8 x i32> %242 = bitcast <8 x double> %207 to <8 x i64> %243 = xor <8 x i64> %242, %244 = bitcast <8 x i64> %243 to <8 x double> %245 = shufflevector <8 x double> %244, <8 x double> poison, <8 x i32> %246 = fadd <8 x double> %207, %245 %247 = fmul <8 x double> %246, %248 = fadd <8 x double> %200, %204 %249 = fadd <8 x double> %201, %237 %250 = fsub <8 x double> %202, %241 %251 = fsub <8 x double> %203, %247 %252 = fsub <8 x double> %200, %204 %253 = fsub <8 x double> %201, %237 %254 = fadd <8 x double> %202, %241 %255 = fadd <8 x double> %203, %247 %256 = fadd <8 x double> %224, %248 store <8 x double> %256, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %257 = fsub <8 x double> %224, %248 store <8 x double> %257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %258 = fmul <8 x double> %249, %259 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %249, <8 x double> %259, i32 noundef 4) #23 %260 = fadd <8 x double> %_4.i70, %225 store <8 x double> %260, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %261 = fsub <8 x double> %225, %_4.i70 store <8 x double> %261, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %262 = bitcast <8 x double> %250 to <8 x i64> %263 = xor <8 x i64> %262, %264 = bitcast <8 x i64> %263 to <8 x double> %265 = shufflevector <8 x double> %264, <8 x double> poison, <8 x i32> %266 = fadd <8 x double> %250, %265 %267 = fmul <8 x double> %266, %268 = fadd <8 x double> %226, %267 store <8 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %269 = fsub <8 x double> %226, %267 store <8 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %270 = fmul <8 x double> %251, %271 = shufflevector <8 x double> %270, <8 x double> poison, <8 x i32> %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %251, <8 x double> %271, i32 noundef 4) #23 %272 = fadd <8 x double> %_4.i69, %227 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %273 = fsub <8 x double> %227, %_4.i69 store <8 x double> %273, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %274 = bitcast <8 x double> %252 to <8 x i64> %275 = xor <8 x i64> %274, %276 = bitcast <8 x i64> %275 to <8 x double> %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fsub <8 x double> %228, %277 store <8 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %279 = fadd <8 x double> %228, %277 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %280 = fmul <8 x double> %253, %281 = shufflevector <8 x double> %280, <8 x double> poison, <8 x i32> %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %253, <8 x double> %281, i32 noundef 4) #23 %282 = fsub <8 x double> %229, %_4.i68 store <8 x double> %282, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %283 = fadd <8 x double> %229, %_4.i68 store <8 x double> %283, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %284 = bitcast <8 x double> %254 to <8 x i64> %285 = xor <8 x i64> %284, %286 = bitcast <8 x i64> %285 to <8 x double> %287 = shufflevector <8 x double> %286, <8 x double> poison, <8 x i32> %288 = fadd <8 x double> %254, %287 %289 = fmul <8 x double> %288, %290 = fsub <8 x double> %230, %289 store <8 x double> %290, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %291 = fadd <8 x double> %230, %289 store <8 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %292 = fmul <8 x double> %255, %293 = shufflevector <8 x double> %292, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %255, <8 x double> %293, i32 noundef 4) #23 %294 = fsub <8 x double> %231, %_4.i store <8 x double> %294, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %295 = fadd <8 x double> %231, %_4.i store <8 x double> %295, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1451, !noalias !1460 %exitcond.not.i = icmp eq i64 %129, 4 br i1 %exitcond.not.i, label %bb44.loopexit.i, label %bb98.i _ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit: ; preds = %bb44.loopexit.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1461) tail call void @llvm.experimental.noalias.scope.decl(metadata !1464) tail call void @llvm.experimental.noalias.scope.decl(metadata !1466) %296 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %297 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %298 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %299 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %300 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %301 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %302 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %303 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 144 %304 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 176 %305 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 %306 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 208 %307 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 240 %308 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %309 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %310 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %311 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %312 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %313 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %314 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %315 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %316 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %317 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %318 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 144 %319 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 176 %320 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 %321 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 208 %322 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 240 br label %bb39.i bb39.i: ; preds = %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit, %bb39.i %iter.sroa.218.04494.i = phi i64 [ %323, %bb39.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit ] %323 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %297, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50 = getelementptr inbounds %"fft_simd::c64x4", ptr %296, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51 = getelementptr inbounds %"fft_simd::c64x4", ptr %298, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53 = getelementptr inbounds %"fft_simd::c64x4", ptr %300, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54 = getelementptr inbounds %"fft_simd::c64x4", ptr %299, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55 = getelementptr inbounds %"fft_simd::c64x4", ptr %301, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57 = getelementptr inbounds %"fft_simd::c64x4", ptr %303, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58 = getelementptr inbounds %"fft_simd::c64x4", ptr %302, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59 = getelementptr inbounds %"fft_simd::c64x4", ptr %304, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61 = getelementptr inbounds %"fft_simd::c64x4", ptr %306, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i62 = getelementptr inbounds %"fft_simd::c64x4", ptr %305, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i63 = getelementptr inbounds %"fft_simd::c64x4", ptr %307, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %311, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %310, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %312, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %309, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %314, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %313, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %315, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %308, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %318, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %317, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %319, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %316, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %321, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %320, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i64 = getelementptr inbounds %"fft_simd::c64x4", ptr %322, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1466, !noalias !1468 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i64, align 8, !alias.scope !1466, !noalias !1468 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1464, !noalias !1469 %324 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %324, align 8, !alias.scope !1464, !noalias !1469 %325 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %325, align 8, !alias.scope !1464, !noalias !1469 %326 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %326, align 8, !alias.scope !1464, !noalias !1469 %327 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %327, align 8, !alias.scope !1464, !noalias !1469 %328 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %328, align 8, !alias.scope !1464, !noalias !1469 %329 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %329, align 8, !alias.scope !1464, !noalias !1469 %330 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %330, align 8, !alias.scope !1464, !noalias !1469 %331 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %331, align 8, !alias.scope !1464, !noalias !1469 %332 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %332, align 8, !alias.scope !1464, !noalias !1469 %333 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %333, align 8, !alias.scope !1464, !noalias !1469 %334 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %334, align 8, !alias.scope !1464, !noalias !1469 %335 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %335, align 8, !alias.scope !1464, !noalias !1469 %336 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %336, align 8, !alias.scope !1464, !noalias !1469 %337 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %337, align 8, !alias.scope !1464, !noalias !1469 %338 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %338, align 8, !alias.scope !1464, !noalias !1469 %339 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %340 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %341 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %342 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %343 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %344 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %345 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %346 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %347 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %348 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %349 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %350 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %351 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %352 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %353 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %354 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %355 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %356 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %357 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %358 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %359 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %360 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %361 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %362 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %363 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %364 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %365 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %366 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %367 = shufflevector <8 x double> %363, <8 x double> %365, <8 x i32> %368 = shufflevector <8 x double> %363, <8 x double> %365, <8 x i32> %369 = shufflevector <8 x double> %364, <8 x double> %366, <8 x i32> %370 = shufflevector <8 x double> %364, <8 x double> %366, <8 x i32> %371 = shufflevector <8 x double> %345, <8 x double> poison, <8 x i32> %372 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %373 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %374 = fmul <8 x double> %373, %371 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %372, <8 x double> %345, <8 x double> %374, i32 noundef 4) #23 %375 = shufflevector <8 x double> %344, <8 x double> poison, <8 x i32> %376 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %377 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %378 = fmul <8 x double> %377, %375 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %376, <8 x double> %344, <8 x double> %378, i32 noundef 4) #23 %379 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %380 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %381 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %382 = fmul <8 x double> %381, %379 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %380, <8 x double> %346, <8 x double> %382, i32 noundef 4) #23 %383 = shufflevector <8 x double> %351, <8 x double> poison, <8 x i32> %384 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %385 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %386 = fmul <8 x double> %385, %383 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %384, <8 x double> %351, <8 x double> %386, i32 noundef 4) #23 %387 = shufflevector <8 x double> %353, <8 x double> poison, <8 x i32> %388 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %389 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %390 = fmul <8 x double> %389, %387 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %388, <8 x double> %353, <8 x double> %390, i32 noundef 4) #23 %391 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %392 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %393 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %394 = fmul <8 x double> %393, %391 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %392, <8 x double> %352, <8 x double> %394, i32 noundef 4) #23 %395 = shufflevector <8 x double> %354, <8 x double> poison, <8 x i32> %396 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %397 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %398 = fmul <8 x double> %397, %395 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %396, <8 x double> %354, <8 x double> %398, i32 noundef 4) #23 %399 = shufflevector <8 x double> %359, <8 x double> poison, <8 x i32> %400 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %401 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %402 = fmul <8 x double> %401, %399 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %400, <8 x double> %359, <8 x double> %402, i32 noundef 4) #23 %403 = shufflevector <8 x double> %361, <8 x double> poison, <8 x i32> %404 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %405 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %406 = fmul <8 x double> %405, %403 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %404, <8 x double> %361, <8 x double> %406, i32 noundef 4) #23 %407 = shufflevector <8 x double> %360, <8 x double> poison, <8 x i32> %408 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %409 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %410 = fmul <8 x double> %409, %407 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %408, <8 x double> %360, <8 x double> %410, i32 noundef 4) #23 %411 = shufflevector <8 x double> %362, <8 x double> poison, <8 x i32> %412 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %413 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %414 = fmul <8 x double> %413, %411 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %412, <8 x double> %362, <8 x double> %414, i32 noundef 4) #23 %415 = shufflevector <8 x double> %367, <8 x double> poison, <8 x i32> %416 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %417 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %418 = fmul <8 x double> %417, %415 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %416, <8 x double> %367, <8 x double> %418, i32 noundef 4) #23 %419 = shufflevector <8 x double> %369, <8 x double> poison, <8 x i32> %420 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %421 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %422 = fmul <8 x double> %421, %419 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %420, <8 x double> %369, <8 x double> %422, i32 noundef 4) #23 %423 = shufflevector <8 x double> %368, <8 x double> poison, <8 x i32> %424 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %425 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %426 = fmul <8 x double> %425, %423 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %424, <8 x double> %368, <8 x double> %426, i32 noundef 4) #23 %427 = shufflevector <8 x double> %370, <8 x double> poison, <8 x i32> %428 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %429 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %430 = fmul <8 x double> %429, %427 %_4.i90 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %428, <8 x double> %370, <8 x double> %430, i32 noundef 4) #23 %431 = fadd <8 x double> %343, %_4.i97 %432 = fsub <8 x double> %343, %_4.i97 %433 = fadd <8 x double> %_4.i101, %_4.i93 %434 = fsub <8 x double> %_4.i101, %_4.i93 %435 = fadd <8 x double> %_4.i103, %_4.i95 %436 = fsub <8 x double> %_4.i103, %_4.i95 %437 = fadd <8 x double> %_4.i99, %_4.i91 %438 = fsub <8 x double> %_4.i99, %_4.i91 %439 = fadd <8 x double> %_4.i104, %_4.i96 %440 = fsub <8 x double> %_4.i104, %_4.i96 %441 = fadd <8 x double> %_4.i100, %_4.i92 %442 = fsub <8 x double> %_4.i100, %_4.i92 %443 = fadd <8 x double> %_4.i102, %_4.i94 %444 = fsub <8 x double> %_4.i102, %_4.i94 %445 = fadd <8 x double> %_4.i98, %_4.i90 %446 = fsub <8 x double> %_4.i98, %_4.i90 %447 = bitcast <8 x double> %434 to <8 x i64> %448 = xor <8 x i64> %447, %449 = bitcast <8 x i64> %448 to <8 x double> %450 = shufflevector <8 x double> %449, <8 x double> poison, <8 x i32> %451 = bitcast <8 x double> %438 to <8 x i64> %452 = xor <8 x i64> %451, %453 = bitcast <8 x i64> %452 to <8 x double> %454 = shufflevector <8 x double> %453, <8 x double> poison, <8 x i32> %455 = bitcast <8 x double> %442 to <8 x i64> %456 = xor <8 x i64> %455, %457 = bitcast <8 x i64> %456 to <8 x double> %458 = shufflevector <8 x double> %457, <8 x double> poison, <8 x i32> %459 = bitcast <8 x double> %446 to <8 x i64> %460 = xor <8 x i64> %459, %461 = bitcast <8 x i64> %460 to <8 x double> %462 = shufflevector <8 x double> %461, <8 x double> poison, <8 x i32> %463 = fadd <8 x double> %431, %433 %464 = fsub <8 x double> %432, %450 %465 = fsub <8 x double> %431, %433 %466 = fadd <8 x double> %432, %450 %467 = fadd <8 x double> %435, %437 %468 = fsub <8 x double> %436, %454 %469 = fsub <8 x double> %435, %437 %470 = fadd <8 x double> %436, %454 %471 = fadd <8 x double> %439, %441 %472 = fsub <8 x double> %440, %458 %473 = fsub <8 x double> %439, %441 %474 = fadd <8 x double> %440, %458 %475 = fadd <8 x double> %443, %445 %476 = fsub <8 x double> %444, %462 %477 = fsub <8 x double> %443, %445 %478 = fadd <8 x double> %444, %462 %479 = bitcast <8 x double> %468 to <8 x i64> %480 = xor <8 x i64> %479, %481 = bitcast <8 x i64> %480 to <8 x double> %482 = shufflevector <8 x double> %481, <8 x double> poison, <8 x i32> %483 = fadd <8 x double> %468, %482 %484 = fmul <8 x double> %483, %485 = bitcast <8 x double> %469 to <8 x i64> %486 = xor <8 x i64> %485, %487 = bitcast <8 x i64> %486 to <8 x double> %488 = shufflevector <8 x double> %487, <8 x double> poison, <8 x i32> %489 = bitcast <8 x double> %470 to <8 x i64> %490 = xor <8 x i64> %489, %491 = bitcast <8 x i64> %490 to <8 x double> %492 = shufflevector <8 x double> %491, <8 x double> poison, <8 x i32> %493 = fadd <8 x double> %470, %492 %494 = fmul <8 x double> %493, %495 = fadd <8 x double> %463, %467 %496 = fadd <8 x double> %464, %484 %497 = fsub <8 x double> %465, %488 %498 = fsub <8 x double> %466, %494 %499 = fsub <8 x double> %463, %467 %500 = fsub <8 x double> %464, %484 %501 = fadd <8 x double> %465, %488 %502 = fadd <8 x double> %466, %494 %503 = bitcast <8 x double> %476 to <8 x i64> %504 = xor <8 x i64> %503, %505 = bitcast <8 x i64> %504 to <8 x double> %506 = shufflevector <8 x double> %505, <8 x double> poison, <8 x i32> %507 = fadd <8 x double> %476, %506 %508 = fmul <8 x double> %507, %509 = bitcast <8 x double> %477 to <8 x i64> %510 = xor <8 x i64> %509, %511 = bitcast <8 x i64> %510 to <8 x double> %512 = shufflevector <8 x double> %511, <8 x double> poison, <8 x i32> %513 = bitcast <8 x double> %478 to <8 x i64> %514 = xor <8 x i64> %513, %515 = bitcast <8 x i64> %514 to <8 x double> %516 = shufflevector <8 x double> %515, <8 x double> poison, <8 x i32> %517 = fadd <8 x double> %478, %516 %518 = fmul <8 x double> %517, %519 = fadd <8 x double> %471, %475 %520 = fadd <8 x double> %472, %508 %521 = fsub <8 x double> %473, %512 %522 = fsub <8 x double> %474, %518 %523 = fsub <8 x double> %471, %475 %524 = fsub <8 x double> %472, %508 %525 = fadd <8 x double> %473, %512 %526 = fadd <8 x double> %474, %518 %527 = fadd <8 x double> %495, %519 store <8 x double> %527, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1461, !noalias !1470 %528 = fsub <8 x double> %495, %519 store <8 x double> %528, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56, align 8, !alias.scope !1461, !noalias !1470 %529 = fmul <8 x double> %520, %530 = shufflevector <8 x double> %529, <8 x double> poison, <8 x i32> %_4.i89 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %520, <8 x double> %530, i32 noundef 4) #23 %531 = fadd <8 x double> %_4.i89, %496 store <8 x double> %531, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1461, !noalias !1470 %532 = fsub <8 x double> %496, %_4.i89 store <8 x double> %532, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57, align 8, !alias.scope !1461, !noalias !1470 %533 = bitcast <8 x double> %521 to <8 x i64> %534 = xor <8 x i64> %533, %535 = bitcast <8 x i64> %534 to <8 x double> %536 = shufflevector <8 x double> %535, <8 x double> poison, <8 x i32> %537 = fadd <8 x double> %521, %536 %538 = fmul <8 x double> %537, %539 = fadd <8 x double> %497, %538 store <8 x double> %539, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50, align 8, !alias.scope !1461, !noalias !1470 %540 = fsub <8 x double> %497, %538 store <8 x double> %540, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58, align 8, !alias.scope !1461, !noalias !1470 %541 = fmul <8 x double> %522, %542 = shufflevector <8 x double> %541, <8 x double> poison, <8 x i32> %_4.i88 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %522, <8 x double> %542, i32 noundef 4) #23 %543 = fadd <8 x double> %_4.i88, %498 store <8 x double> %543, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51, align 8, !alias.scope !1461, !noalias !1470 %544 = fsub <8 x double> %498, %_4.i88 store <8 x double> %544, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59, align 8, !alias.scope !1461, !noalias !1470 %545 = bitcast <8 x double> %523 to <8 x i64> %546 = xor <8 x i64> %545, %547 = bitcast <8 x i64> %546 to <8 x double> %548 = shufflevector <8 x double> %547, <8 x double> poison, <8 x i32> %549 = fsub <8 x double> %499, %548 store <8 x double> %549, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52, align 8, !alias.scope !1461, !noalias !1470 %550 = fadd <8 x double> %499, %548 store <8 x double> %550, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60, align 8, !alias.scope !1461, !noalias !1470 %551 = fmul <8 x double> %524, %552 = shufflevector <8 x double> %551, <8 x double> poison, <8 x i32> %_4.i87 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %524, <8 x double> %552, i32 noundef 4) #23 %553 = fsub <8 x double> %500, %_4.i87 store <8 x double> %553, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53, align 8, !alias.scope !1461, !noalias !1470 %554 = fadd <8 x double> %500, %_4.i87 store <8 x double> %554, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61, align 8, !alias.scope !1461, !noalias !1470 %555 = bitcast <8 x double> %525 to <8 x i64> %556 = xor <8 x i64> %555, %557 = bitcast <8 x i64> %556 to <8 x double> %558 = shufflevector <8 x double> %557, <8 x double> poison, <8 x i32> %559 = fadd <8 x double> %525, %558 %560 = fmul <8 x double> %559, %561 = fsub <8 x double> %501, %560 store <8 x double> %561, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54, align 8, !alias.scope !1461, !noalias !1470 %562 = fadd <8 x double> %501, %560 store <8 x double> %562, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i62, align 8, !alias.scope !1461, !noalias !1470 %563 = fmul <8 x double> %526, %564 = shufflevector <8 x double> %563, <8 x double> poison, <8 x i32> %_4.i86 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %526, <8 x double> %564, i32 noundef 4) #23 %565 = fsub <8 x double> %502, %_4.i86 store <8 x double> %565, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55, align 8, !alias.scope !1461, !noalias !1470 %566 = fadd <8 x double> %502, %_4.i86 store <8 x double> %566, ptr %_3.i.i.i.i.i.i.i.i.i.i.i63, align 8, !alias.scope !1461, !noalias !1470 %exitcond.not.i67 = icmp eq i64 %323, 16 br i1 %exitcond.not.i67, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1441 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h980c22c62b823cb5E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1471) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1471, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1471, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1471, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1471, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1471, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1471, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1471, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1471, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1471 store i64 128, ptr %n.i, align 8, !noalias !1471 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1471 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1471 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1471 store ptr null, ptr %_16.i, align 8, !noalias !1471 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1471 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1471 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1471 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1471 store ptr null, ptr %_24.i, align 8, !noalias !1471 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1471 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1471 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1471 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1471 store ptr null, ptr %_32.i, align 8, !noalias !1471 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1471 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1471 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1471 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1471 store ptr null, ptr %_40.i, align 8, !noalias !1471 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1471 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %_33.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1471 %8 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload %9 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload store <8 x double> %8, ptr %buf.0.i, align 8, !noalias !1471 store <8 x double> %9, ptr %7, align 8, !noalias !1471 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_33.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1471 %10 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 %11 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 store <8 x double> %10, ptr %_3.i.i.i.i.1, align 8, !noalias !1471 store <8 x double> %11, ptr %_3.i2.i.i.i.1, align 8, !noalias !1471 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_33.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !noalias !1471 %12 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 %13 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 store <8 x double> %12, ptr %_3.i.i.i.i.2, align 8, !noalias !1471 store <8 x double> %13, ptr %_3.i2.i.i.i.2, align 8, !noalias !1471 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_33.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !noalias !1471 %14 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 %15 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 store <8 x double> %14, ptr %_3.i.i.i.i.3, align 8, !noalias !1471 store <8 x double> %15, ptr %_3.i2.i.i.i.3, align 8, !noalias !1471 %_3.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_3.i2.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_33.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.4, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i2.i.i.i.4, align 8, !noalias !1471 %16 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.sroa.0.0.copyload.4 %17 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.sroa.0.0.copyload.4 store <8 x double> %16, ptr %_3.i.i.i.i.4, align 8, !noalias !1471 store <8 x double> %17, ptr %_3.i2.i.i.i.4, align 8, !noalias !1471 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i2.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_33.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.5, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i2.i.i.i.5, align 8, !noalias !1471 %18 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.sroa.0.0.copyload.5 %19 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.sroa.0.0.copyload.5 store <8 x double> %18, ptr %_3.i.i.i.i.5, align 8, !noalias !1471 store <8 x double> %19, ptr %_3.i2.i.i.i.5, align 8, !noalias !1471 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i2.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_33.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.6, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i2.i.i.i.6, align 8, !noalias !1471 %20 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.sroa.0.0.copyload.6 %21 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.sroa.0.0.copyload.6 store <8 x double> %20, ptr %_3.i.i.i.i.6, align 8, !noalias !1471 store <8 x double> %21, ptr %_3.i2.i.i.i.6, align 8, !noalias !1471 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i2.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_33.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.7, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i2.i.i.i.7, align 8, !noalias !1471 %22 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.sroa.0.0.copyload.7 %23 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.sroa.0.0.copyload.7 store <8 x double> %22, ptr %_3.i.i.i.i.7, align 8, !noalias !1471 store <8 x double> %23, ptr %_3.i2.i.i.i.7, align 8, !noalias !1471 %_3.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %_3.i2.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_33.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i.i.i.i.8, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i2.i.i.i.8, align 8, !noalias !1471 %24 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.sroa.0.0.copyload.8 %25 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.sroa.0.0.copyload.8 store <8 x double> %24, ptr %_3.i.i.i.i.8, align 8, !noalias !1471 store <8 x double> %25, ptr %_3.i2.i.i.i.8, align 8, !noalias !1471 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i2.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_33.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.9, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i2.i.i.i.9, align 8, !noalias !1471 %26 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.sroa.0.0.copyload.9 %27 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.sroa.0.0.copyload.9 store <8 x double> %26, ptr %_3.i.i.i.i.9, align 8, !noalias !1471 store <8 x double> %27, ptr %_3.i2.i.i.i.9, align 8, !noalias !1471 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i2.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_33.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.10, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i2.i.i.i.10, align 8, !noalias !1471 %28 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.sroa.0.0.copyload.10 %29 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.sroa.0.0.copyload.10 store <8 x double> %28, ptr %_3.i.i.i.i.10, align 8, !noalias !1471 store <8 x double> %29, ptr %_3.i2.i.i.i.10, align 8, !noalias !1471 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i2.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_33.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.11, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i2.i.i.i.11, align 8, !noalias !1471 %30 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.sroa.0.0.copyload.11 %31 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.sroa.0.0.copyload.11 store <8 x double> %30, ptr %_3.i.i.i.i.11, align 8, !noalias !1471 store <8 x double> %31, ptr %_3.i2.i.i.i.11, align 8, !noalias !1471 %_3.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_3.i2.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_33.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.12, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i2.i.i.i.12, align 8, !noalias !1471 %32 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.sroa.0.0.copyload.12 %33 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.sroa.0.0.copyload.12 store <8 x double> %32, ptr %_3.i.i.i.i.12, align 8, !noalias !1471 store <8 x double> %33, ptr %_3.i2.i.i.i.12, align 8, !noalias !1471 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i2.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_33.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.13, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i2.i.i.i.13, align 8, !noalias !1471 %34 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.sroa.0.0.copyload.13 %35 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.sroa.0.0.copyload.13 store <8 x double> %34, ptr %_3.i.i.i.i.13, align 8, !noalias !1471 store <8 x double> %35, ptr %_3.i2.i.i.i.13, align 8, !noalias !1471 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i2.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_33.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.14, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i2.i.i.i.14, align 8, !noalias !1471 %36 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.sroa.0.0.copyload.14 %37 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.sroa.0.0.copyload.14 store <8 x double> %36, ptr %_3.i.i.i.i.14, align 8, !noalias !1471 store <8 x double> %37, ptr %_3.i2.i.i.i.14, align 8, !noalias !1471 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i2.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_33.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.15, align 8, !noalias !1471 %_34.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i2.i.i.i.15, align 8, !noalias !1471 %38 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.sroa.0.0.copyload.15 %39 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.sroa.0.0.copyload.15 store <8 x double> %38, ptr %_3.i.i.i.i.15, align 8, !noalias !1471 store <8 x double> %39, ptr %_3.i2.i.i.i.15, align 8, !noalias !1471 tail call void @llvm.experimental.noalias.scope.decl(metadata !1474) tail call void @llvm.experimental.noalias.scope.decl(metadata !1477) tail call void @llvm.experimental.noalias.scope.decl(metadata !1479) %40 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %41 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %42 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %44 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %45 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %46 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 br label %bb30.i bb30.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E.exit", %bb30.i %_2.i.i.i.i = phi i1 [ false, %bb30.i ], [ true, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E.exit" ] %iter.sroa.104.01903.i = phi i64 [ 1, %bb30.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %46, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %40, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %41, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %42, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 3 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %47, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %48, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %49, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %50, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %51, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %52 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %52, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %53 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %53, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %54 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %54, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %55 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %55, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %56 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %56, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %57 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %57, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %58 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %58, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %59 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %59, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %60 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %60, align 8, !alias.scope !1479, !noalias !1481, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %61 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %62 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %63 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %64 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %65 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %66 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %67 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %68 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %75 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> zeroinitializer %76 = shufflevector <2 x double> %61, <2 x double> poison, <8 x i32> %77 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> zeroinitializer %78 = shufflevector <2 x double> %62, <2 x double> poison, <8 x i32> %79 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> zeroinitializer %80 = shufflevector <2 x double> %63, <2 x double> poison, <8 x i32> %81 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> zeroinitializer %82 = shufflevector <2 x double> %64, <2 x double> poison, <8 x i32> %83 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> zeroinitializer %84 = shufflevector <2 x double> %65, <2 x double> poison, <8 x i32> %85 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> zeroinitializer %86 = shufflevector <2 x double> %66, <2 x double> poison, <8 x i32> %87 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> zeroinitializer %88 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !1477, !noalias !1482 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %70, align 8, !alias.scope !1477, !noalias !1482 %89 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = fmul <8 x double> %76, %89 %_4.i36 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %90, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %69, align 8, !alias.scope !1477, !noalias !1482 %91 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %78, %91 %_4.i35 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %77, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %92, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %71, align 8, !alias.scope !1477, !noalias !1482 %93 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %94 = fmul <8 x double> %80, %93 %_4.i34 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %94, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %68, align 8, !alias.scope !1477, !noalias !1482 %95 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = fmul <8 x double> %82, %95 %_4.i33 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %81, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %96, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %73, align 8, !alias.scope !1477, !noalias !1482 %97 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %98 = fmul <8 x double> %84, %97 %_4.i32 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %98, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %72, align 8, !alias.scope !1477, !noalias !1482 %99 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %100 = fmul <8 x double> %86, %99 %_4.i31 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %100, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %74, align 8, !alias.scope !1477, !noalias !1482 %101 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %102 = fmul <8 x double> %88, %101 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %87, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %102, i32 noundef 4) #23 %103 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i33 %104 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i33 %105 = fadd <8 x double> %_4.i35, %_4.i31 %106 = fsub <8 x double> %_4.i35, %_4.i31 %107 = bitcast <8 x double> %106 to <8 x i64> %108 = xor <8 x i64> %107, %109 = bitcast <8 x i64> %108 to <8 x double> %110 = shufflevector <8 x double> %109, <8 x double> poison, <8 x i32> %111 = fadd <8 x double> %_4.i36, %_4.i32 %112 = fsub <8 x double> %_4.i36, %_4.i32 %113 = fadd <8 x double> %_4.i34, %_4.i %114 = fsub <8 x double> %_4.i34, %_4.i %115 = bitcast <8 x double> %114 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x i64> %116 to <8 x double> %118 = shufflevector <8 x double> %117, <8 x double> poison, <8 x i32> %119 = fadd <8 x double> %103, %105 %120 = fadd <8 x double> %111, %113 %121 = fadd <8 x double> %119, %120 store <8 x double> %121, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %122 = fsub <8 x double> %119, %120 store <8 x double> %122, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %123 = fsub <8 x double> %104, %110 %124 = fsub <8 x double> %112, %118 %125 = bitcast <8 x double> %124 to <8 x i64> %126 = xor <8 x i64> %125, %127 = bitcast <8 x i64> %126 to <8 x double> %128 = shufflevector <8 x double> %127, <8 x double> poison, <8 x i32> %129 = fadd <8 x double> %124, %128 %130 = fmul <8 x double> %129, %131 = fadd <8 x double> %123, %130 store <8 x double> %131, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %132 = fsub <8 x double> %123, %130 store <8 x double> %132, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %133 = fsub <8 x double> %103, %105 %134 = fsub <8 x double> %111, %113 %135 = bitcast <8 x double> %134 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fsub <8 x double> %133, %138 store <8 x double> %139, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %140 = fadd <8 x double> %133, %138 store <8 x double> %140, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %141 = fadd <8 x double> %104, %110 %142 = fadd <8 x double> %112, %118 %143 = bitcast <8 x double> %142 to <8 x i64> %144 = xor <8 x i64> %143, %145 = bitcast <8 x i64> %144 to <8 x double> %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %147 = fadd <8 x double> %142, %146 %148 = fmul <8 x double> %147, %149 = fsub <8 x double> %141, %148 store <8 x double> %149, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %150 = fadd <8 x double> %141, %148 store <8 x double> %150, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1474, !noalias !1483 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %y0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %_131.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %151 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %152 = fmul <8 x double> %76, %151 %_4.i36.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> %152, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %153 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %78, %153 %_4.i35.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %77, <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> %154, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %155 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %80, %155 %_4.i34.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> %156, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %157 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %158 = fmul <8 x double> %82, %157 %_4.i33.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %81, <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> %158, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %159 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %84, %159 %_4.i32.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> %160, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %161 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %86, %161 %_4.i31.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> %162, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !1477, !noalias !1482 %163 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %164 = fmul <8 x double> %88, %163 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %87, <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> %164, i32 noundef 4) #23 %165 = fadd <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i33.1 %166 = fsub <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i33.1 %167 = fadd <8 x double> %_4.i35.1, %_4.i31.1 %168 = fsub <8 x double> %_4.i35.1, %_4.i31.1 %169 = bitcast <8 x double> %168 to <8 x i64> %170 = xor <8 x i64> %169, %171 = bitcast <8 x i64> %170 to <8 x double> %172 = shufflevector <8 x double> %171, <8 x double> poison, <8 x i32> %173 = fadd <8 x double> %_4.i36.1, %_4.i32.1 %174 = fsub <8 x double> %_4.i36.1, %_4.i32.1 %175 = fadd <8 x double> %_4.i34.1, %_4.i.1 %176 = fsub <8 x double> %_4.i34.1, %_4.i.1 %177 = bitcast <8 x double> %176 to <8 x i64> %178 = xor <8 x i64> %177, %179 = bitcast <8 x i64> %178 to <8 x double> %180 = shufflevector <8 x double> %179, <8 x double> poison, <8 x i32> %181 = fadd <8 x double> %165, %167 %182 = fadd <8 x double> %173, %175 %183 = fadd <8 x double> %181, %182 store <8 x double> %183, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %184 = fsub <8 x double> %181, %182 store <8 x double> %184, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %185 = fsub <8 x double> %166, %172 %186 = fsub <8 x double> %174, %180 %187 = bitcast <8 x double> %186 to <8 x i64> %188 = xor <8 x i64> %187, %189 = bitcast <8 x i64> %188 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fadd <8 x double> %186, %190 %192 = fmul <8 x double> %191, %193 = fadd <8 x double> %185, %192 store <8 x double> %193, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %194 = fsub <8 x double> %185, %192 store <8 x double> %194, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %195 = fsub <8 x double> %165, %167 %196 = fsub <8 x double> %173, %175 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fsub <8 x double> %195, %200 store <8 x double> %201, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %202 = fadd <8 x double> %195, %200 store <8 x double> %202, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %203 = fadd <8 x double> %166, %172 %204 = fadd <8 x double> %174, %180 %205 = bitcast <8 x double> %204 to <8 x i64> %206 = xor <8 x i64> %205, %207 = bitcast <8 x i64> %206 to <8 x double> %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = fadd <8 x double> %204, %208 %210 = fmul <8 x double> %209, %211 = fsub <8 x double> %203, %210 store <8 x double> %211, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 %212 = fadd <8 x double> %203, %210 store <8 x double> %212, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1474, !noalias !1483 br i1 %_2.i.i.i.i, label %bb30.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1484) tail call void @llvm.experimental.noalias.scope.decl(metadata !1487) tail call void @llvm.experimental.noalias.scope.decl(metadata !1489) %213 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %214 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %215 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %216 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %217 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %218 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %219 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %220 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %221 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %222 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %223, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %223 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.4, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21 = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22 = getelementptr inbounds %"fft_simd::c64x4", ptr %_3.i.i.i.i.12, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24 = getelementptr inbounds %"fft_simd::c64x4", ptr %214, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25 = getelementptr inbounds %"fft_simd::c64x4", ptr %213, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i26 = getelementptr inbounds %"fft_simd::c64x4", ptr %215, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %218, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %217, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %219, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %216, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %221, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %220, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i27 = getelementptr inbounds %"fft_simd::c64x4", ptr %222, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1489, !noalias !1491 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1489, !noalias !1491 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1489, !noalias !1491 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1489, !noalias !1491 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1489, !noalias !1491 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1489, !noalias !1491 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i27, align 8, !alias.scope !1489, !noalias !1491 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1487, !noalias !1492 %224 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %224, align 8, !alias.scope !1487, !noalias !1492 %225 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %225, align 8, !alias.scope !1487, !noalias !1492 %226 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %226, align 8, !alias.scope !1487, !noalias !1492 %227 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %227, align 8, !alias.scope !1487, !noalias !1492 %228 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %228, align 8, !alias.scope !1487, !noalias !1492 %229 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %229, align 8, !alias.scope !1487, !noalias !1492 %230 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %230, align 8, !alias.scope !1487, !noalias !1492 %231 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %232 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %233 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %234 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %235 = shufflevector <8 x double> %231, <8 x double> %233, <8 x i32> %236 = shufflevector <8 x double> %231, <8 x double> %233, <8 x i32> %237 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %238 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %239 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %240 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %241 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %242 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %243 = shufflevector <8 x double> %239, <8 x double> %241, <8 x i32> %244 = shufflevector <8 x double> %239, <8 x double> %241, <8 x i32> %245 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %246 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %247 = shufflevector <8 x double> %237, <8 x double> poison, <8 x i32> %248 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %249 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %250 = fmul <8 x double> %249, %247 %_4.i43 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %248, <8 x double> %237, <8 x double> %250, i32 noundef 4) #23 %251 = shufflevector <8 x double> %236, <8 x double> poison, <8 x i32> %252 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %253 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %254 = fmul <8 x double> %253, %251 %_4.i42 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %252, <8 x double> %236, <8 x double> %254, i32 noundef 4) #23 %255 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %256 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %257 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %258 = fmul <8 x double> %257, %255 %_4.i41 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %256, <8 x double> %238, <8 x double> %258, i32 noundef 4) #23 %259 = shufflevector <8 x double> %243, <8 x double> poison, <8 x i32> %260 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %261 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %262 = fmul <8 x double> %261, %259 %_4.i40 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %260, <8 x double> %243, <8 x double> %262, i32 noundef 4) #23 %263 = shufflevector <8 x double> %245, <8 x double> poison, <8 x i32> %264 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %265 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %266 = fmul <8 x double> %265, %263 %_4.i39 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %264, <8 x double> %245, <8 x double> %266, i32 noundef 4) #23 %267 = shufflevector <8 x double> %244, <8 x double> poison, <8 x i32> %268 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %269 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %270 = fmul <8 x double> %269, %267 %_4.i38 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %268, <8 x double> %244, <8 x double> %270, i32 noundef 4) #23 %271 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %272 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %273 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %274 = fmul <8 x double> %273, %271 %_4.i37 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %272, <8 x double> %246, <8 x double> %274, i32 noundef 4) #23 %275 = fadd <8 x double> %235, %_4.i40 %276 = fsub <8 x double> %235, %_4.i40 %277 = fadd <8 x double> %_4.i42, %_4.i38 %278 = fsub <8 x double> %_4.i42, %_4.i38 %279 = bitcast <8 x double> %278 to <8 x i64> %280 = xor <8 x i64> %279, %281 = bitcast <8 x i64> %280 to <8 x double> %282 = shufflevector <8 x double> %281, <8 x double> poison, <8 x i32> %283 = fadd <8 x double> %_4.i43, %_4.i39 %284 = fsub <8 x double> %_4.i43, %_4.i39 %285 = fadd <8 x double> %_4.i41, %_4.i37 %286 = fsub <8 x double> %_4.i41, %_4.i37 %287 = bitcast <8 x double> %286 to <8 x i64> %288 = xor <8 x i64> %287, %289 = bitcast <8 x i64> %288 to <8 x double> %290 = shufflevector <8 x double> %289, <8 x double> poison, <8 x i32> %291 = fadd <8 x double> %275, %277 %292 = fadd <8 x double> %283, %285 %293 = fadd <8 x double> %291, %292 store <8 x double> %293, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1484, !noalias !1493 %294 = fsub <8 x double> %291, %292 store <8 x double> %294, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23, align 8, !alias.scope !1484, !noalias !1493 %295 = fsub <8 x double> %276, %282 %296 = fsub <8 x double> %284, %290 %297 = bitcast <8 x double> %296 to <8 x i64> %298 = xor <8 x i64> %297, %299 = bitcast <8 x i64> %298 to <8 x double> %300 = shufflevector <8 x double> %299, <8 x double> poison, <8 x i32> %301 = fadd <8 x double> %296, %300 %302 = fmul <8 x double> %301, %303 = fadd <8 x double> %295, %302 store <8 x double> %303, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1484, !noalias !1493 %304 = fsub <8 x double> %295, %302 store <8 x double> %304, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24, align 8, !alias.scope !1484, !noalias !1493 %305 = fsub <8 x double> %275, %277 %306 = fsub <8 x double> %283, %285 %307 = bitcast <8 x double> %306 to <8 x i64> %308 = xor <8 x i64> %307, %309 = bitcast <8 x i64> %308 to <8 x double> %310 = shufflevector <8 x double> %309, <8 x double> poison, <8 x i32> %311 = fsub <8 x double> %305, %310 store <8 x double> %311, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21, align 8, !alias.scope !1484, !noalias !1493 %312 = fadd <8 x double> %305, %310 store <8 x double> %312, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25, align 8, !alias.scope !1484, !noalias !1493 %313 = fadd <8 x double> %276, %282 %314 = fadd <8 x double> %284, %290 %315 = bitcast <8 x double> %314 to <8 x i64> %316 = xor <8 x i64> %315, %317 = bitcast <8 x i64> %316 to <8 x double> %318 = shufflevector <8 x double> %317, <8 x double> poison, <8 x i32> %319 = fadd <8 x double> %314, %318 %320 = fmul <8 x double> %319, %321 = fsub <8 x double> %313, %320 store <8 x double> %321, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22, align 8, !alias.scope !1484, !noalias !1493 %322 = fadd <8 x double> %313, %320 store <8 x double> %322, ptr %_3.i.i.i.i.i.i.i.i.i.i.i26, align 8, !alias.scope !1484, !noalias !1493 %exitcond.not.i30 = icmp eq i64 %223, 4 br i1 %exitcond.not.i30, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1471 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9f2ebeb936de011dE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1494) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1494, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1494, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1494, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1494, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1494, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1494, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1494, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1494 store i64 64, ptr %n.i, align 8, !noalias !1494 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1494 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1494 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1494 store ptr null, ptr %_16.i, align 8, !noalias !1494 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1494 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1494 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1494 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1494 store ptr null, ptr %_24.i, align 8, !noalias !1494 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1494 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1494 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1494 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1494 store ptr null, ptr %_32.i, align 8, !noalias !1494 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1494 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1494 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1494 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1196ceae3004ee67E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1494 store ptr null, ptr %_40.i, align 8, !noalias !1494 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1196ceae3004ee67E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1494 tail call void @llvm.experimental.noalias.scope.decl(metadata !1497) tail call void @llvm.experimental.noalias.scope.decl(metadata !1500) tail call void @llvm.experimental.noalias.scope.decl(metadata !1502) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1196ceae3004ee67E.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %20, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1196ceae3004ee67E.exit" ] %20 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1497, !noalias !1504 %21 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %22 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %24 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = bitcast <8 x double> %24 to <8 x i64> %26 = xor <8 x i64> %25, %27 = bitcast <8 x i64> %26 to <8 x double> %28 = shufflevector <8 x double> %27, <8 x double> poison, <8 x i32> %29 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %30 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %31 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %32 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %33 = bitcast <8 x double> %32 to <8 x i64> %34 = xor <8 x i64> %33, %35 = bitcast <8 x i64> %34 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fadd <8 x double> %21, %23 %38 = fsub <8 x double> %22, %28 %39 = fsub <8 x double> %21, %23 %40 = fadd <8 x double> %22, %28 %41 = fadd <8 x double> %29, %31 %42 = fsub <8 x double> %30, %36 %43 = bitcast <8 x double> %42 to <8 x i64> %44 = xor <8 x i64> %43, %45 = bitcast <8 x i64> %44 to <8 x double> %46 = shufflevector <8 x double> %45, <8 x double> poison, <8 x i32> %47 = fadd <8 x double> %42, %46 %48 = fmul <8 x double> %47, %49 = fsub <8 x double> %29, %31 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = bitcast <8 x i64> %51 to <8 x double> %53 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %54 = fadd <8 x double> %30, %36 %55 = bitcast <8 x double> %54 to <8 x i64> %56 = xor <8 x i64> %55, %57 = bitcast <8 x i64> %56 to <8 x double> %58 = shufflevector <8 x double> %57, <8 x double> poison, <8 x i32> %59 = fadd <8 x double> %54, %58 %60 = fmul <8 x double> %59, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1502, !noalias !1505 %61 = fadd <8 x double> %37, %41 %62 = fadd <8 x double> %38, %48 %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %66 = fmul <8 x double> %65, %63 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %62, <8 x double> %66, i32 noundef 4) #23 %67 = fsub <8 x double> %39, %53 %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = fmul <8 x double> %70, %68 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %69, <8 x double> %67, <8 x double> %71, i32 noundef 4) #23 %72 = fsub <8 x double> %40, %60 %73 = shufflevector <8 x double> %72, <8 x double> poison, <8 x i32> %74 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = fmul <8 x double> %75, %73 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %74, <8 x double> %72, <8 x double> %76, i32 noundef 4) #23 %77 = fsub <8 x double> %37, %41 %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %78, %80 %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %79, <8 x double> %77, <8 x double> %81, i32 noundef 4) #23 %82 = fsub <8 x double> %38, %48 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = fmul <8 x double> %85, %83 %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %84, <8 x double> %82, <8 x double> %86, i32 noundef 4) #23 %87 = fadd <8 x double> %39, %53 %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = fmul <8 x double> %90, %88 %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %89, <8 x double> %87, <8 x double> %91, i32 noundef 4) #23 %92 = fadd <8 x double> %40, %60 %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = fmul <8 x double> %95, %93 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %94, <8 x double> %92, <8 x double> %96, i32 noundef 4) #23 %97 = shufflevector <8 x double> %61, <8 x double> %_4.i229, <8 x i32> %98 = shufflevector <8 x double> %61, <8 x double> %_4.i229, <8 x i32> %99 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %100 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %101 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %102 = shufflevector <8 x double> %97, <8 x double> %99, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %105 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %106 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %107 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %108 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> %110 = shufflevector <8 x double> %105, <8 x double> %107, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> store <8 x double> %101, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1500, !noalias !1506 %113 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %109, ptr %113, align 8, !alias.scope !1500, !noalias !1506 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %103, ptr %114, align 8, !alias.scope !1500, !noalias !1506 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %111, ptr %115, align 8, !alias.scope !1500, !noalias !1506 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %102, ptr %116, align 8, !alias.scope !1500, !noalias !1506 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %110, ptr %117, align 8, !alias.scope !1500, !noalias !1506 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %104, ptr %118, align 8, !alias.scope !1500, !noalias !1506 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %112, ptr %119, align 8, !alias.scope !1500, !noalias !1506 %exitcond.not.i = icmp eq i64 %20, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i %120 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !1494 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %122, align 8, !noalias !1494 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %121, align 8, !noalias !1494 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %123, align 8, !noalias !1494 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %120, align 8, !noalias !1494 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %125, align 8, !noalias !1494 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %124, align 8, !noalias !1494 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %126, align 8, !noalias !1494 %127 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %128 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %129 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %130 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %131 = bitcast <8 x double> %130 to <8 x i64> %132 = xor <8 x i64> %131, %133 = bitcast <8 x i64> %132 to <8 x double> %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %135 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %136 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %137 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %138 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %139 = bitcast <8 x double> %138 to <8 x i64> %140 = xor <8 x i64> %139, %141 = bitcast <8 x i64> %140 to <8 x double> %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %143 = fadd <8 x double> %127, %129 %144 = fsub <8 x double> %128, %134 %145 = fsub <8 x double> %127, %129 %146 = fadd <8 x double> %128, %134 %147 = fadd <8 x double> %135, %137 %148 = fsub <8 x double> %136, %142 %149 = bitcast <8 x double> %148 to <8 x i64> %150 = xor <8 x i64> %149, %151 = bitcast <8 x i64> %150 to <8 x double> %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fadd <8 x double> %148, %152 %154 = fmul <8 x double> %153, %155 = fsub <8 x double> %135, %137 %156 = bitcast <8 x double> %155 to <8 x i64> %157 = xor <8 x i64> %156, %158 = bitcast <8 x i64> %157 to <8 x double> %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fadd <8 x double> %136, %142 %161 = bitcast <8 x double> %160 to <8 x i64> %162 = xor <8 x i64> %161, %163 = bitcast <8 x i64> %162 to <8 x double> %164 = shufflevector <8 x double> %163, <8 x double> poison, <8 x i32> %165 = fadd <8 x double> %160, %164 %166 = fmul <8 x double> %165, %167 = fadd <8 x double> %143, %147 %168 = fadd <8 x double> %144, %154 %169 = fsub <8 x double> %145, %159 %170 = fsub <8 x double> %146, %166 %171 = fsub <8 x double> %143, %147 %172 = fsub <8 x double> %144, %154 %173 = fadd <8 x double> %145, %159 %174 = fadd <8 x double> %146, %166 store <8 x double> %167, ptr %buf.0.i, align 8, !noalias !1494 store <8 x double> %168, ptr %8, align 8, !noalias !1494 store <8 x double> %169, ptr %7, align 8, !noalias !1494 store <8 x double> %170, ptr %9, align 8, !noalias !1494 store <8 x double> %171, ptr %6, align 8, !noalias !1494 store <8 x double> %172, ptr %11, align 8, !noalias !1494 store <8 x double> %173, ptr %10, align 8, !noalias !1494 store <8 x double> %174, ptr %12, align 8, !noalias !1494 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.i38.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_120.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_121.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_122.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_123.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_124.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_125.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_126.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %_127.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1494 %175 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %176 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %177 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %178 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %179 = bitcast <8 x double> %178 to <8 x i64> %180 = xor <8 x i64> %179, %181 = bitcast <8 x i64> %180 to <8 x double> %182 = shufflevector <8 x double> %181, <8 x double> poison, <8 x i32> %183 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %184 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %185 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %186 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %187 = bitcast <8 x double> %186 to <8 x i64> %188 = xor <8 x i64> %187, %189 = bitcast <8 x i64> %188 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fadd <8 x double> %175, %177 %192 = fsub <8 x double> %176, %182 %193 = fsub <8 x double> %175, %177 %194 = fadd <8 x double> %176, %182 %195 = fadd <8 x double> %183, %185 %196 = fsub <8 x double> %184, %190 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fadd <8 x double> %196, %200 %202 = fmul <8 x double> %201, %203 = fsub <8 x double> %183, %185 %204 = bitcast <8 x double> %203 to <8 x i64> %205 = xor <8 x i64> %204, %206 = bitcast <8 x i64> %205 to <8 x double> %207 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %208 = fadd <8 x double> %184, %190 %209 = bitcast <8 x double> %208 to <8 x i64> %210 = xor <8 x i64> %209, %211 = bitcast <8 x i64> %210 to <8 x double> %212 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %213 = fadd <8 x double> %208, %212 %214 = fmul <8 x double> %213, %215 = fadd <8 x double> %191, %195 %216 = fadd <8 x double> %192, %202 %217 = fsub <8 x double> %193, %207 %218 = fsub <8 x double> %194, %214 %219 = fsub <8 x double> %191, %195 %220 = fsub <8 x double> %192, %202 %221 = fadd <8 x double> %193, %207 %222 = fadd <8 x double> %194, %214 store <8 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1, align 8, !noalias !1494 store <8 x double> %216, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1, align 8, !noalias !1494 store <8 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1, align 8, !noalias !1494 store <8 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1, align 8, !noalias !1494 store <8 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1, align 8, !noalias !1494 store <8 x double> %220, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1, align 8, !noalias !1494 store <8 x double> %221, ptr %_3.i.i.i.i.i.i.i35.i.i.i.1, align 8, !noalias !1494 store <8 x double> %222, ptr %_3.i.i.i.i.i38.i.i.i.1, align 8, !noalias !1494 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1494 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9f3a67eb7fa480cbE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1507) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1507, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1507, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1507, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1507, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1507, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1507, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1507, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1507, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1507 store i64 512, ptr %n.i, align 8, !noalias !1507 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1507 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1507 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1507 store ptr null, ptr %_16.i, align 8, !noalias !1507 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1507 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1507 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1507 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1507 store ptr null, ptr %_24.i, align 8, !noalias !1507 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1507 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1507 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1507 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1507 store ptr null, ptr %_32.i, align 8, !noalias !1507 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1507 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1507 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1507 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17heac7008f031c5a2dE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1507 store ptr null, ptr %_40.i, align 8, !noalias !1507 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17heac7008f031c5a2dE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1507 tail call void @llvm.experimental.noalias.scope.decl(metadata !1510) tail call void @llvm.experimental.noalias.scope.decl(metadata !1513) tail call void @llvm.experimental.noalias.scope.decl(metadata !1515) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17heac7008f031c5a2dE.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17heac7008f031c5a2dE.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1510, !noalias !1517 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = bitcast <8 x i64> %27 to <8 x double> %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %31 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %32 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %33 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %34 = bitcast <8 x double> %33 to <8 x i64> %35 = xor <8 x i64> %34, %36 = bitcast <8 x i64> %35 to <8 x double> %37 = shufflevector <8 x double> %36, <8 x double> poison, <8 x i32> %38 = fadd <8 x double> %22, %24 %39 = fsub <8 x double> %23, %29 %40 = fsub <8 x double> %22, %24 %41 = fadd <8 x double> %23, %29 %42 = fadd <8 x double> %30, %32 %43 = fsub <8 x double> %31, %37 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %30, %32 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = bitcast <8 x i64> %52 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fadd <8 x double> %31, %37 %56 = bitcast <8 x double> %55 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x i64> %57 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = fadd <8 x double> %55, %59 %61 = fmul <8 x double> %60, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1515, !noalias !1518 %62 = fadd <8 x double> %38, %42 %63 = fadd <8 x double> %39, %49 %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %66 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %66, %64 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %65, <8 x double> %63, <8 x double> %67, i32 noundef 4) #23 %68 = fsub <8 x double> %40, %54 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i202 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %41, %61 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i201 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %38, %42 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i200 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %39, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i199 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %40, %54 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i198 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %41, %61 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %62, <8 x double> %_4.i203, <8 x i32> %99 = shufflevector <8 x double> %62, <8 x double> %_4.i203, <8 x i32> %100 = shufflevector <8 x double> %_4.i202, <8 x double> %_4.i201, <8 x i32> %101 = shufflevector <8 x double> %_4.i202, <8 x double> %_4.i201, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i200, <8 x double> %_4.i199, <8 x i32> %107 = shufflevector <8 x double> %_4.i200, <8 x double> %_4.i199, <8 x i32> %108 = shufflevector <8 x double> %_4.i198, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i198, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1513, !noalias !1519 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !1513, !noalias !1519 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !1513, !noalias !1519 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !1513, !noalias !1519 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !1513, !noalias !1519 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !1513, !noalias !1519 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !1513, !noalias !1519 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !1513, !noalias !1519 %exitcond.not.i = icmp eq i64 %21, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1520) tail call void @llvm.experimental.noalias.scope.decl(metadata !1523) tail call void @llvm.experimental.noalias.scope.decl(metadata !1525) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 br label %bb30.i bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %iter.sroa.104.01923.i = phi i64 [ %294, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %128, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %129, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %130, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %131, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %132, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %133, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %134, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %135, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %136, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %137, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %138, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %139, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %140, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %141, align 8, !alias.scope !1525, !noalias !1527, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %142 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %143 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %144 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %145 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %146 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %147 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %148 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %149 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %150 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %151 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %156 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> zeroinitializer %157 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> %158 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> zeroinitializer %159 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> %160 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1520, !noalias !1528 %170 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %171 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %172 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %173 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = bitcast <8 x i64> %175 to <8 x double> %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %179 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %180 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %181 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %182 = bitcast <8 x double> %181 to <8 x i64> %183 = xor <8 x i64> %182, %184 = bitcast <8 x i64> %183 to <8 x double> %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = fadd <8 x double> %170, %172 %187 = fsub <8 x double> %171, %177 %188 = fsub <8 x double> %170, %172 %189 = fadd <8 x double> %171, %177 %190 = fadd <8 x double> %178, %180 %191 = fsub <8 x double> %179, %185 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %191, %195 %197 = fmul <8 x double> %196, %198 = fsub <8 x double> %178, %180 %199 = bitcast <8 x double> %198 to <8 x i64> %200 = xor <8 x i64> %199, %201 = bitcast <8 x i64> %200 to <8 x double> %202 = shufflevector <8 x double> %201, <8 x double> poison, <8 x i32> %203 = fadd <8 x double> %179, %185 %204 = bitcast <8 x double> %203 to <8 x i64> %205 = xor <8 x i64> %204, %206 = bitcast <8 x i64> %205 to <8 x double> %207 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %208 = fadd <8 x double> %203, %207 %209 = fmul <8 x double> %208, %210 = fadd <8 x double> %186, %190 store <8 x double> %210, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !1523, !noalias !1529 %211 = fadd <8 x double> %187, %197 %212 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %157, %212 %_4.i210 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %211, <8 x double> %213, i32 noundef 4) #23 store <8 x double> %_4.i210, ptr %151, align 8, !alias.scope !1523, !noalias !1529 %214 = fsub <8 x double> %188, %202 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %159, %215 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i209, ptr %150, align 8, !alias.scope !1523, !noalias !1529 %217 = fsub <8 x double> %189, %209 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fmul <8 x double> %161, %218 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %217, <8 x double> %219, i32 noundef 4) #23 store <8 x double> %_4.i208, ptr %152, align 8, !alias.scope !1523, !noalias !1529 %220 = fsub <8 x double> %186, %190 %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %163, %221 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %220, <8 x double> %222, i32 noundef 4) #23 store <8 x double> %_4.i207, ptr %149, align 8, !alias.scope !1523, !noalias !1529 %223 = fsub <8 x double> %187, %197 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = fmul <8 x double> %165, %224 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %223, <8 x double> %225, i32 noundef 4) #23 store <8 x double> %_4.i206, ptr %154, align 8, !alias.scope !1523, !noalias !1529 %226 = fadd <8 x double> %188, %202 %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %167, %227 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %226, <8 x double> %228, i32 noundef 4) #23 store <8 x double> %_4.i205, ptr %153, align 8, !alias.scope !1523, !noalias !1529 %229 = fadd <8 x double> %189, %209 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %169, %230 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %229, <8 x double> %231, i32 noundef 4) #23 store <8 x double> %_4.i204, ptr %155, align 8, !alias.scope !1523, !noalias !1529 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !1520, !noalias !1528 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1520, !noalias !1528 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !1520, !noalias !1528 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !1520, !noalias !1528 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !1520, !noalias !1528 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !1520, !noalias !1528 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !1520, !noalias !1528 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !1520, !noalias !1528 %232 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %233 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %234 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %235 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = bitcast <8 x i64> %237 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %241 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %242 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %243 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %244 = bitcast <8 x double> %243 to <8 x i64> %245 = xor <8 x i64> %244, %246 = bitcast <8 x i64> %245 to <8 x double> %247 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %248 = fadd <8 x double> %232, %234 %249 = fsub <8 x double> %233, %239 %250 = fsub <8 x double> %232, %234 %251 = fadd <8 x double> %233, %239 %252 = fadd <8 x double> %240, %242 %253 = fsub <8 x double> %241, %247 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %253, %257 %259 = fmul <8 x double> %258, %260 = fsub <8 x double> %240, %242 %261 = bitcast <8 x double> %260 to <8 x i64> %262 = xor <8 x i64> %261, %263 = bitcast <8 x i64> %262 to <8 x double> %264 = shufflevector <8 x double> %263, <8 x double> poison, <8 x i32> %265 = fadd <8 x double> %241, %247 %266 = bitcast <8 x double> %265 to <8 x i64> %267 = xor <8 x i64> %266, %268 = bitcast <8 x i64> %267 to <8 x double> %269 = shufflevector <8 x double> %268, <8 x double> poison, <8 x i32> %270 = fadd <8 x double> %265, %269 %271 = fmul <8 x double> %270, %272 = fadd <8 x double> %248, %252 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %273 = fadd <8 x double> %249, %259 %274 = shufflevector <8 x double> %273, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %157, %274 %_4.i210.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %273, <8 x double> %275, i32 noundef 4) #23 store <8 x double> %_4.i210.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %276 = fsub <8 x double> %250, %264 %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fmul <8 x double> %159, %277 %_4.i209.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %276, <8 x double> %278, i32 noundef 4) #23 store <8 x double> %_4.i209.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %279 = fsub <8 x double> %251, %271 %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fmul <8 x double> %161, %280 %_4.i208.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %279, <8 x double> %281, i32 noundef 4) #23 store <8 x double> %_4.i208.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %282 = fsub <8 x double> %248, %252 %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fmul <8 x double> %163, %283 %_4.i207.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %282, <8 x double> %284, i32 noundef 4) #23 store <8 x double> %_4.i207.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %285 = fsub <8 x double> %249, %259 %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %165, %286 %_4.i206.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %285, <8 x double> %287, i32 noundef 4) #23 store <8 x double> %_4.i206.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %288 = fadd <8 x double> %250, %264 %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fmul <8 x double> %167, %289 %_4.i205.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %288, <8 x double> %290, i32 noundef 4) #23 store <8 x double> %_4.i205.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %291 = fadd <8 x double> %251, %271 %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fmul <8 x double> %169, %292 %_4.i204.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %291, <8 x double> %293, i32 noundef 4) #23 store <8 x double> %_4.i204.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !1523, !noalias !1529 %294 = add nuw nsw i64 %iter.sroa.104.01923.i, 1 %exitcond.not = icmp eq i64 %294, 8 br i1 %exitcond.not, label %bb17.i.i.i.i, label %bb30.i bb17.i.i.i.i: ; preds = %bb30.i, %bb17.i.i.i.i %iter.i.i.i.i.sroa.50.01001 = phi i64 [ %295, %bb17.i.i.i.i ], [ 0, %bb30.i ] %295 = add nuw nsw i64 %iter.i.i.i.i.sroa.50.01001, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.i.i.sroa.50.01001 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.i.i.sroa.50.01001 %_63.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 %_64.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 %_65.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 %_66.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 %_67.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 %_68.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1507 %_69.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1507 %_70.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1507 %296 = fadd <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = bitcast <8 x i64> %301 to <8 x double> %303 = shufflevector <8 x double> %302, <8 x double> poison, <8 x i32> %304 = fadd <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %305 = fsub <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %306 = fadd <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %307 = fsub <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %308 = bitcast <8 x double> %307 to <8 x i64> %309 = xor <8 x i64> %308, %310 = bitcast <8 x i64> %309 to <8 x double> %311 = shufflevector <8 x double> %310, <8 x double> poison, <8 x i32> %312 = fadd <8 x double> %296, %298 %313 = fsub <8 x double> %297, %303 %314 = fsub <8 x double> %296, %298 %315 = fadd <8 x double> %297, %303 %316 = fadd <8 x double> %304, %306 %317 = fsub <8 x double> %305, %311 %318 = bitcast <8 x double> %317 to <8 x i64> %319 = xor <8 x i64> %318, %320 = bitcast <8 x i64> %319 to <8 x double> %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %322 = fadd <8 x double> %317, %321 %323 = fmul <8 x double> %322, %324 = fsub <8 x double> %304, %306 %325 = bitcast <8 x double> %324 to <8 x i64> %326 = xor <8 x i64> %325, %327 = bitcast <8 x i64> %326 to <8 x double> %328 = shufflevector <8 x double> %327, <8 x double> poison, <8 x i32> %329 = fadd <8 x double> %305, %311 %330 = bitcast <8 x double> %329 to <8 x i64> %331 = xor <8 x i64> %330, %332 = bitcast <8 x i64> %331 to <8 x double> %333 = shufflevector <8 x double> %332, <8 x double> poison, <8 x i32> %334 = fadd <8 x double> %329, %333 %335 = fmul <8 x double> %334, %336 = fadd <8 x double> %312, %316 %337 = fadd <8 x double> %313, %323 %338 = fsub <8 x double> %314, %328 %339 = fsub <8 x double> %315, %335 %340 = fsub <8 x double> %312, %316 %341 = fsub <8 x double> %313, %323 %342 = fadd <8 x double> %314, %328 %343 = fadd <8 x double> %315, %335 store <8 x double> %336, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %337, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %338, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %339, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %340, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %341, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %342, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1507 store <8 x double> %343, ptr %_3.i.i.i.i, align 8, !noalias !1507 %exitcond1002.not = icmp eq i64 %295, 16 br i1 %exitcond1002.not, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h3b1c3ab2f3eea406E.exit", label %bb17.i.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h3b1c3ab2f3eea406E.exit": ; preds = %bb17.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1507 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9f52c6d2a07c0441E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1530) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1530, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1530, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1530, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1530, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1530, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1530, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1530, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1530, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1530 store i64 256, ptr %n.i, align 8, !noalias !1530 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1530 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1530 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1530 store ptr null, ptr %_16.i, align 8, !noalias !1530 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1530 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1530 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1530 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1530 store ptr null, ptr %_24.i, align 8, !noalias !1530 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1530 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1530 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1530 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1530 store ptr null, ptr %_32.i, align 8, !noalias !1530 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1530 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1530 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1530 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6d98b9dc7d112faE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1530 store ptr null, ptr %_40.i, align 8, !noalias !1530 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6d98b9dc7d112faE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1530 tail call void @llvm.experimental.noalias.scope.decl(metadata !1533) tail call void @llvm.experimental.noalias.scope.decl(metadata !1536) tail call void @llvm.experimental.noalias.scope.decl(metadata !1538) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6d98b9dc7d112faE.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6d98b9dc7d112faE.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1533, !noalias !1540 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = bitcast <8 x i64> %27 to <8 x double> %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %31 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %32 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %33 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %34 = bitcast <8 x double> %33 to <8 x i64> %35 = xor <8 x i64> %34, %36 = bitcast <8 x i64> %35 to <8 x double> %37 = shufflevector <8 x double> %36, <8 x double> poison, <8 x i32> %38 = fadd <8 x double> %22, %24 %39 = fsub <8 x double> %23, %29 %40 = fsub <8 x double> %22, %24 %41 = fadd <8 x double> %23, %29 %42 = fadd <8 x double> %30, %32 %43 = fsub <8 x double> %31, %37 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %30, %32 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = bitcast <8 x i64> %52 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fadd <8 x double> %31, %37 %56 = bitcast <8 x double> %55 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x i64> %57 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = fadd <8 x double> %55, %59 %61 = fmul <8 x double> %60, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1538, !noalias !1541 %62 = fadd <8 x double> %38, %42 %63 = fadd <8 x double> %39, %49 %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %66 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %66, %64 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %65, <8 x double> %63, <8 x double> %67, i32 noundef 4) #23 %68 = fsub <8 x double> %40, %54 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %41, %61 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %38, %42 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %39, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %40, %54 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %41, %61 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %62, <8 x double> %_4.i103, <8 x i32> %99 = shufflevector <8 x double> %62, <8 x double> %_4.i103, <8 x i32> %100 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %101 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i99, <8 x i32> %107 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i99, <8 x i32> %108 = shufflevector <8 x double> %_4.i98, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i98, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1536, !noalias !1542 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !1536, !noalias !1542 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !1536, !noalias !1542 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !1536, !noalias !1542 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !1536, !noalias !1542 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !1536, !noalias !1542 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !1536, !noalias !1542 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !1536, !noalias !1542 %exitcond.not.i = icmp eq i64 %21, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1543) tail call void @llvm.experimental.noalias.scope.decl(metadata !1546) tail call void @llvm.experimental.noalias.scope.decl(metadata !1548) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 br label %bb30.i bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %iter.sroa.104.01923.i = phi i64 [ %294, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01923.i, 3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %128, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %129, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %130, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %131, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %132, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %133, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %134, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %135, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %136, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %137, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %138, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %139, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %140, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %141, align 8, !alias.scope !1548, !noalias !1550, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %142 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %143 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %144 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %145 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %146 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %147 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %148 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %149 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %150 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %151 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %152 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %156 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> zeroinitializer %157 = shufflevector <2 x double> %142, <2 x double> poison, <8 x i32> %158 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> zeroinitializer %159 = shufflevector <2 x double> %143, <2 x double> poison, <8 x i32> %160 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %144, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %145, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1543, !noalias !1551 %170 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %171 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %172 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %173 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %174 = bitcast <8 x double> %173 to <8 x i64> %175 = xor <8 x i64> %174, %176 = bitcast <8 x i64> %175 to <8 x double> %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %179 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %180 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %181 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %182 = bitcast <8 x double> %181 to <8 x i64> %183 = xor <8 x i64> %182, %184 = bitcast <8 x i64> %183 to <8 x double> %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = fadd <8 x double> %170, %172 %187 = fsub <8 x double> %171, %177 %188 = fsub <8 x double> %170, %172 %189 = fadd <8 x double> %171, %177 %190 = fadd <8 x double> %178, %180 %191 = fsub <8 x double> %179, %185 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %191, %195 %197 = fmul <8 x double> %196, %198 = fsub <8 x double> %178, %180 %199 = bitcast <8 x double> %198 to <8 x i64> %200 = xor <8 x i64> %199, %201 = bitcast <8 x i64> %200 to <8 x double> %202 = shufflevector <8 x double> %201, <8 x double> poison, <8 x i32> %203 = fadd <8 x double> %179, %185 %204 = bitcast <8 x double> %203 to <8 x i64> %205 = xor <8 x i64> %204, %206 = bitcast <8 x i64> %205 to <8 x double> %207 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %208 = fadd <8 x double> %203, %207 %209 = fmul <8 x double> %208, %210 = fadd <8 x double> %186, %190 store <8 x double> %210, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !1546, !noalias !1552 %211 = fadd <8 x double> %187, %197 %212 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %157, %212 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %211, <8 x double> %213, i32 noundef 4) #23 store <8 x double> %_4.i110, ptr %151, align 8, !alias.scope !1546, !noalias !1552 %214 = fsub <8 x double> %188, %202 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %159, %215 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i109, ptr %150, align 8, !alias.scope !1546, !noalias !1552 %217 = fsub <8 x double> %189, %209 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fmul <8 x double> %161, %218 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %217, <8 x double> %219, i32 noundef 4) #23 store <8 x double> %_4.i108, ptr %152, align 8, !alias.scope !1546, !noalias !1552 %220 = fsub <8 x double> %186, %190 %221 = shufflevector <8 x double> %220, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %163, %221 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %220, <8 x double> %222, i32 noundef 4) #23 store <8 x double> %_4.i107, ptr %149, align 8, !alias.scope !1546, !noalias !1552 %223 = fsub <8 x double> %187, %197 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = fmul <8 x double> %165, %224 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %223, <8 x double> %225, i32 noundef 4) #23 store <8 x double> %_4.i106, ptr %154, align 8, !alias.scope !1546, !noalias !1552 %226 = fadd <8 x double> %188, %202 %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %167, %227 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %226, <8 x double> %228, i32 noundef 4) #23 store <8 x double> %_4.i105, ptr %153, align 8, !alias.scope !1546, !noalias !1552 %229 = fadd <8 x double> %189, %209 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %169, %230 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %229, <8 x double> %231, i32 noundef 4) #23 store <8 x double> %_4.i104, ptr %155, align 8, !alias.scope !1546, !noalias !1552 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !1543, !noalias !1551 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1543, !noalias !1551 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !1543, !noalias !1551 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !1543, !noalias !1551 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !1543, !noalias !1551 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !1543, !noalias !1551 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !1543, !noalias !1551 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !1543, !noalias !1551 %232 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %233 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %234 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %235 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = bitcast <8 x i64> %237 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %241 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %242 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %243 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %244 = bitcast <8 x double> %243 to <8 x i64> %245 = xor <8 x i64> %244, %246 = bitcast <8 x i64> %245 to <8 x double> %247 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %248 = fadd <8 x double> %232, %234 %249 = fsub <8 x double> %233, %239 %250 = fsub <8 x double> %232, %234 %251 = fadd <8 x double> %233, %239 %252 = fadd <8 x double> %240, %242 %253 = fsub <8 x double> %241, %247 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x i64> %255 to <8 x double> %257 = shufflevector <8 x double> %256, <8 x double> poison, <8 x i32> %258 = fadd <8 x double> %253, %257 %259 = fmul <8 x double> %258, %260 = fsub <8 x double> %240, %242 %261 = bitcast <8 x double> %260 to <8 x i64> %262 = xor <8 x i64> %261, %263 = bitcast <8 x i64> %262 to <8 x double> %264 = shufflevector <8 x double> %263, <8 x double> poison, <8 x i32> %265 = fadd <8 x double> %241, %247 %266 = bitcast <8 x double> %265 to <8 x i64> %267 = xor <8 x i64> %266, %268 = bitcast <8 x i64> %267 to <8 x double> %269 = shufflevector <8 x double> %268, <8 x double> poison, <8 x i32> %270 = fadd <8 x double> %265, %269 %271 = fmul <8 x double> %270, %272 = fadd <8 x double> %248, %252 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %273 = fadd <8 x double> %249, %259 %274 = shufflevector <8 x double> %273, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %157, %274 %_4.i110.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %273, <8 x double> %275, i32 noundef 4) #23 store <8 x double> %_4.i110.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %276 = fsub <8 x double> %250, %264 %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fmul <8 x double> %159, %277 %_4.i109.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %276, <8 x double> %278, i32 noundef 4) #23 store <8 x double> %_4.i109.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %279 = fsub <8 x double> %251, %271 %280 = shufflevector <8 x double> %279, <8 x double> poison, <8 x i32> %281 = fmul <8 x double> %161, %280 %_4.i108.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %279, <8 x double> %281, i32 noundef 4) #23 store <8 x double> %_4.i108.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %282 = fsub <8 x double> %248, %252 %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fmul <8 x double> %163, %283 %_4.i107.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %282, <8 x double> %284, i32 noundef 4) #23 store <8 x double> %_4.i107.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %285 = fsub <8 x double> %249, %259 %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %165, %286 %_4.i106.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %285, <8 x double> %287, i32 noundef 4) #23 store <8 x double> %_4.i106.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %288 = fadd <8 x double> %250, %264 %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fmul <8 x double> %167, %289 %_4.i105.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %288, <8 x double> %290, i32 noundef 4) #23 store <8 x double> %_4.i105.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %291 = fadd <8 x double> %251, %271 %292 = shufflevector <8 x double> %291, <8 x double> poison, <8 x i32> %293 = fmul <8 x double> %169, %292 %_4.i104.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %291, <8 x double> %293, i32 noundef 4) #23 store <8 x double> %_4.i104.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !1546, !noalias !1552 %294 = add nuw nsw i64 %iter.sroa.104.01923.i, 1 %exitcond.not = icmp eq i64 %294, 4 br i1 %exitcond.not, label %bb13.i.i.i, label %bb30.i bb13.i.i.i: ; preds = %bb30.i, %bb13.i.i.i %iter.i.i.i.sroa.22.0686 = phi i64 [ %295, %bb13.i.i.i ], [ 0, %bb30.i ] %295 = add nuw nsw i64 %iter.i.i.i.sroa.22.0686, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.sroa.22.0686 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.sroa.22.0686 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.sroa.22.0686 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.i.sroa.22.0686 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1530 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1530 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1530 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1530 %296 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = bitcast <8 x i64> %301 to <8 x double> %303 = shufflevector <8 x double> %302, <8 x double> poison, <8 x i32> %304 = fadd <8 x double> %296, %298 %305 = fsub <8 x double> %297, %303 %306 = fsub <8 x double> %296, %298 %307 = fadd <8 x double> %297, %303 store <8 x double> %304, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1530 store <8 x double> %305, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1530 store <8 x double> %306, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1530 store <8 x double> %307, ptr %_3.i.i.i.i, align 8, !noalias !1530 %exitcond687.not = icmp eq i64 %295, 16 br i1 %exitcond687.not, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd2f9af812cfcfae3E.exit", label %bb13.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd2f9af812cfcfae3E.exit": ; preds = %bb13.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1530 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17ha00ed9a97a24649aE(ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !1553) tail call void @llvm.experimental.noalias.scope.decl(metadata !1556) %0 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f, i64 0, i32 1 %_2.0.i.i = load ptr, ptr %0, align 8, !alias.scope !1559, !nonnull !3, !align !4, !noundef !3 %1 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f, i64 0, i32 1, i32 1 %_2.1.i.i = load i64, ptr %1, align 8, !alias.scope !1559, !noundef !3 %2 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f, i64 0, i32 2 %_3.0.i.i = load ptr, ptr %2, align 8, !alias.scope !1559, !nonnull !3, !align !4, !noundef !3 %3 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}", ptr %f, i64 0, i32 2, i32 1 %_3.1.i.i = load i64, ptr %3, align 8, !alias.scope !1559, !noundef !3 %4 = and i64 %_2.1.i.i, 3 %5 = icmp eq i64 %4, 0 br i1 %5, label %bb9.i.i.i, label %bb8.i.i.i bb9.i.i.i: ; preds = %start %6 = and i64 %_3.1.i.i, 3 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb12.i.i.i, label %bb11.i.i.i bb8.i.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !1560 unreachable bb12.i.i.i: ; preds = %bb9.i.i.i %8 = lshr exact i64 %_2.1.i.i, 2 %new_len2.i.i = and i64 %8, 288230376151711743 %9 = lshr exact i64 %_3.1.i.i, 2 %new_len2.i4.i = and i64 %9, 288230376151711743 %mid11.i.i.i = lshr i64 %new_len2.i.i, 1 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid11.i.i.i %11 = sub nsw i64 %new_len2.i.i, %mid11.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid11.i.i.i, i64 %11) %_0.0.sroa.speculated.i.i.i5.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %new_len2.i4.i) %_2.i.i.i43.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i, 0 br i1 %_2.i.i.i43.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit, label %bb5.i.i.i.preheader bb5.i.i.i.preheader: ; preds = %bb12.i.i.i %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i5.i, 1 %12 = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i, 1 br i1 %12, label %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit.loopexit.unr-lcssa, label %bb5.i.i.i.preheader.new bb5.i.i.i.preheader.new: ; preds = %bb5.i.i.i.preheader %unroll_iter = and i64 %_0.0.sroa.speculated.i.i.i5.i, 144115188075855870 br label %bb5.i.i.i bb11.i.i.i: ; preds = %bb9.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !1559 unreachable bb5.i.i.i: ; preds = %bb5.i.i.i, %bb5.i.i.i.preheader.new %iter.i.i.sroa.15.044.i = phi i64 [ 0, %bb5.i.i.i.preheader.new ], [ %20, %bb5.i.i.i ] %niter = phi i64 [ 0, %bb5.i.i.i.preheader.new ], [ %niter.next.1, %bb5.i.i.i ] %13 = or disjoint i64 %iter.i.i.sroa.15.044.i, 1 %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.15.044.i %_3.i2.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.sroa.15.044.i %_3.i.i.i.i.i = getelementptr inbounds [1 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.15.044.i %w1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !1559 %z0.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !1559 %z1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i, align 8, !noalias !1559 %14 = fadd <8 x double> %z0.i.i.sroa.0.0.copyload.i, %z1.i.i.sroa.0.0.copyload.i %15 = fsub <8 x double> %z0.i.i.sroa.0.0.copyload.i, %z1.i.i.sroa.0.0.copyload.i %16 = shufflevector <8 x double> %15, <8 x double> poison, <8 x i32> %17 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %18 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %19 = fmul <8 x double> %18, %16 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %17, <8 x double> %15, <8 x double> %19, i32 noundef 4) #23 store <8 x double> %14, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !1559 store <8 x double> %_4.i, ptr %_3.i2.i.i.i.i.i.i, align 8, !noalias !1559 %20 = add nuw nsw i64 %iter.i.i.sroa.15.044.i, 2 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %13 %_3.i2.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %13 %_3.i.i.i.i.i.1 = getelementptr inbounds [1 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %13 %w1.i.i.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !1559 %z0.i.i.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !1559 %z1.i.i.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !noalias !1559 %21 = fadd <8 x double> %z0.i.i.sroa.0.0.copyload.i.1, %z1.i.i.sroa.0.0.copyload.i.1 %22 = fsub <8 x double> %z0.i.i.sroa.0.0.copyload.i.1, %z1.i.i.sroa.0.0.copyload.i.1 %23 = shufflevector <8 x double> %22, <8 x double> poison, <8 x i32> %24 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %26 = fmul <8 x double> %25, %23 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %24, <8 x double> %22, <8 x double> %26, i32 noundef 4) #23 store <8 x double> %21, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !1559 store <8 x double> %_4.i.1, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !noalias !1559 %niter.next.1 = add i64 %niter, 2 %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1, label %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit.loopexit.unr-lcssa, label %bb5.i.i.i _ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit.loopexit.unr-lcssa: ; preds = %bb5.i.i.i, %bb5.i.i.i.preheader %iter.i.i.sroa.15.044.i.unr = phi i64 [ 0, %bb5.i.i.i.preheader ], [ %20, %bb5.i.i.i ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit, label %bb5.i.i.i.epil bb5.i.i.i.epil: ; preds = %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit.loopexit.unr-lcssa %_3.i.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.15.044.i.unr %_3.i2.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.sroa.15.044.i.unr %_3.i.i.i.i.i.epil = getelementptr inbounds [1 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.15.044.i.unr %w1.i.i.sroa.0.0.copyload.i.epil = load <8 x double>, ptr %_3.i.i.i.i.i.epil, align 8, !noalias !1559 %z0.i.i.sroa.0.0.copyload.i.epil = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.epil, align 8, !noalias !1559 %z1.i.i.sroa.0.0.copyload.i.epil = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.epil, align 8, !noalias !1559 %27 = fadd <8 x double> %z0.i.i.sroa.0.0.copyload.i.epil, %z1.i.i.sroa.0.0.copyload.i.epil %28 = fsub <8 x double> %z0.i.i.sroa.0.0.copyload.i.epil, %z1.i.i.sroa.0.0.copyload.i.epil %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.epil, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.epil, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i.epil = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 store <8 x double> %27, ptr %_3.i.i.i.i.i.i.i.epil, align 8, !noalias !1559 store <8 x double> %_4.i.epil, ptr %_3.i2.i.i.i.i.i.i.epil, align 8, !noalias !1559 br label %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit _ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit: ; preds = %bb5.i.i.i.epil, %_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E.exit.loopexit.unr-lcssa, %bb12.i.i.i ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17ha2fc08c99c9c6c0eE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1563) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1563, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1563, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1563, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1563, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1563, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1563, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1563, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1563, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1563 store i64 128, ptr %n.i, align 8, !noalias !1563 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1563 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1563 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1563 store ptr null, ptr %_16.i, align 8, !noalias !1563 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1563 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1563 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1563 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1563 store ptr null, ptr %_24.i, align 8, !noalias !1563 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1563 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1563 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1563 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1563 store ptr null, ptr %_32.i, align 8, !noalias !1563 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1563 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1563 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1563 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5a62728f70186f01E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1563 store ptr null, ptr %_40.i, align 8, !noalias !1563 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5a62728f70186f01E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1563 tail call void @llvm.experimental.noalias.scope.decl(metadata !1566) tail call void @llvm.experimental.noalias.scope.decl(metadata !1569) tail call void @llvm.experimental.noalias.scope.decl(metadata !1571) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5a62728f70186f01E.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5a62728f70186f01E.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1571, !noalias !1573 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1571, !noalias !1573 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1571, !noalias !1573 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1566, !noalias !1574 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1566, !noalias !1574 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1566, !noalias !1574 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1566, !noalias !1574 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = fadd <8 x double> %14, %16 %21 = bitcast <8 x i64> %19 to <8 x double> %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = fsub <8 x double> %15, %22 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %22 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %20, <8 x double> %_4.i111, <8 x i32> %39 = shufflevector <8 x double> %20, <8 x double> %_4.i111, <8 x i32> %40 = shufflevector <8 x double> %_4.i110, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i110, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1569, !noalias !1575 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1569, !noalias !1575 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1569, !noalias !1575 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1569, !noalias !1575 %exitcond.not.i = icmp eq i64 %13, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1576) tail call void @llvm.experimental.noalias.scope.decl(metadata !1579) tail call void @llvm.experimental.noalias.scope.decl(metadata !1581) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1581, !noalias !1583, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1581, !noalias !1583, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1581, !noalias !1583, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1581, !noalias !1583, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1581, !noalias !1583, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1581, !noalias !1583, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1576, !noalias !1584 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1576, !noalias !1584 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1576, !noalias !1584 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1576, !noalias !1584 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = fadd <8 x double> %70, %72 store <8 x double> %76, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1579, !noalias !1585 %77 = bitcast <8 x i64> %75 to <8 x double> %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = fsub <8 x double> %71, %78 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i114 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i114, ptr %62, align 8, !alias.scope !1579, !noalias !1585 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i113 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i113, ptr %61, align 8, !alias.scope !1579, !noalias !1585 %85 = fadd <8 x double> %71, %78 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i112 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i112, ptr %63, align 8, !alias.scope !1579, !noalias !1585 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 8 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1586) tail call void @llvm.experimental.noalias.scope.decl(metadata !1589) tail call void @llvm.experimental.noalias.scope.decl(metadata !1591) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %_2.i.i.i.us.i90 = phi i1 [ false, %bb22.us.i36 ], [ true, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %iter.sroa.60.0648.us.i37 = phi i64 [ 1, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl nuw nsw i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl nuw nsw i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !1591, !noalias !1593, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !1591, !noalias !1593, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !1591, !noalias !1593, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !1591, !noalias !1593, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !1591, !noalias !1593, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !1591, !noalias !1593, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !1586, !noalias !1594 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !1586, !noalias !1594 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1586, !noalias !1594 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !1586, !noalias !1594 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = fadd <8 x double> %107, %109 store <8 x double> %113, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1589, !noalias !1595 %114 = bitcast <8 x i64> %112 to <8 x double> %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fsub <8 x double> %108, %115 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i117 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i117, ptr %99, align 8, !alias.scope !1589, !noalias !1595 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i116 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i116, ptr %98, align 8, !alias.scope !1589, !noalias !1595 %122 = fadd <8 x double> %108, %115 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i115 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i115, ptr %100, align 8, !alias.scope !1589, !noalias !1595 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !1586, !noalias !1594 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !1586, !noalias !1594 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1586, !noalias !1594 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1586, !noalias !1594 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = fadd <8 x double> %125, %127 store <8 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1589, !noalias !1595 %132 = bitcast <8 x i64> %130 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fsub <8 x double> %126, %133 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i117.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i117.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1589, !noalias !1595 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i116.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i116.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1589, !noalias !1595 %140 = fadd <8 x double> %126, %133 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i115.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i115.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !1589, !noalias !1595 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !1586, !noalias !1594 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !1586, !noalias !1594 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1586, !noalias !1594 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1586, !noalias !1594 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = fadd <8 x double> %143, %145 store <8 x double> %149, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1589, !noalias !1595 %150 = bitcast <8 x i64> %148 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fsub <8 x double> %144, %151 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i117.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i117.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1589, !noalias !1595 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i116.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i116.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1589, !noalias !1595 %158 = fadd <8 x double> %144, %151 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i115.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i115.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !1589, !noalias !1595 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !1586, !noalias !1594 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !1586, !noalias !1594 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1586, !noalias !1594 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1586, !noalias !1594 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = fadd <8 x double> %161, %163 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1589, !noalias !1595 %168 = bitcast <8 x i64> %166 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = fsub <8 x double> %162, %169 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i117.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i117.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1589, !noalias !1595 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i116.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i116.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1589, !noalias !1595 %176 = fadd <8 x double> %162, %169 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i115.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i115.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !1589, !noalias !1595 br i1 %_2.i.i.i.us.i90, label %bb22.us.i36, label %bb18.i.i.i.i.preheader bb18.i.i.i.i.preheader: ; preds = %bb22.us.i36 %_51.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %scratch.0.i, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %49, align 8, !noalias !1563 %179 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload %180 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload store <8 x double> %179, ptr %buf.0.i, align 8, !noalias !1563 store <8 x double> %180, ptr %7, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 17 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_51.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1563 %181 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 %182 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %181, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1563 store <8 x double> %182, ptr %_3.i.i.i.i.1, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 18 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_51.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1563 %183 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 %184 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.2, %_52.i.i.i.i.sroa.0.0.copyload.2 store <8 x double> %183, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1563 store <8 x double> %184, ptr %_3.i.i.i.i.2, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 19 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_51.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1563 %185 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 %186 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.3, %_52.i.i.i.i.sroa.0.0.copyload.3 store <8 x double> %185, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1563 store <8 x double> %186, ptr %_3.i.i.i.i.3, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %_3.i2.i.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %_3.i.i.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_3.i.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_51.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.4, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4, align 8, !noalias !1563 %187 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 %188 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.4, %_52.i.i.i.i.sroa.0.0.copyload.4 store <8 x double> %187, ptr %_3.i.i.i.i.i.i.4, align 8, !noalias !1563 store <8 x double> %188, ptr %_3.i.i.i.i.4, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i2.i.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 21 %_3.i.i.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_51.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.5, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.5, align 8, !noalias !1563 %189 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 %190 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.5, %_52.i.i.i.i.sroa.0.0.copyload.5 store <8 x double> %189, ptr %_3.i.i.i.i.i.i.5, align 8, !noalias !1563 store <8 x double> %190, ptr %_3.i.i.i.i.5, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i2.i.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 22 %_3.i.i.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_51.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.6, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.6, align 8, !noalias !1563 %191 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 %192 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.6, %_52.i.i.i.i.sroa.0.0.copyload.6 store <8 x double> %191, ptr %_3.i.i.i.i.i.i.6, align 8, !noalias !1563 store <8 x double> %192, ptr %_3.i.i.i.i.6, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i2.i.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 23 %_3.i.i.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_51.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.7, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.7, align 8, !noalias !1563 %193 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 %194 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.7, %_52.i.i.i.i.sroa.0.0.copyload.7 store <8 x double> %193, ptr %_3.i.i.i.i.i.i.7, align 8, !noalias !1563 store <8 x double> %194, ptr %_3.i.i.i.i.7, align 8, !noalias !1563 %_3.i2.i.i.i.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %_3.i.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_51.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %50, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.8, align 8, !noalias !1563 %195 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 %196 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.8, %_52.i.i.i.i.sroa.0.0.copyload.8 store <8 x double> %195, ptr %8, align 8, !noalias !1563 store <8 x double> %196, ptr %_3.i.i.i.i.8, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i2.i.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 25 %_3.i.i.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_51.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.9, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.9, align 8, !noalias !1563 %197 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 %198 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.9, %_52.i.i.i.i.sroa.0.0.copyload.9 store <8 x double> %197, ptr %_3.i.i.i.i.i.i.9, align 8, !noalias !1563 store <8 x double> %198, ptr %_3.i.i.i.i.9, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %_3.i2.i.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 26 %_3.i.i.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_51.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.10, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.10, align 8, !noalias !1563 %199 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 %200 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.10, %_52.i.i.i.i.sroa.0.0.copyload.10 store <8 x double> %199, ptr %_3.i.i.i.i.i.i.10, align 8, !noalias !1563 store <8 x double> %200, ptr %_3.i.i.i.i.10, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i2.i.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 27 %_3.i.i.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_51.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.11, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.11, align 8, !noalias !1563 %201 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 %202 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.11, %_52.i.i.i.i.sroa.0.0.copyload.11 store <8 x double> %201, ptr %_3.i.i.i.i.i.i.11, align 8, !noalias !1563 store <8 x double> %202, ptr %_3.i.i.i.i.11, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %_3.i2.i.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %_3.i.i.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_3.i.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_51.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.12, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.12, align 8, !noalias !1563 %203 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 %204 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.12, %_52.i.i.i.i.sroa.0.0.copyload.12 store <8 x double> %203, ptr %_3.i.i.i.i.i.i.12, align 8, !noalias !1563 store <8 x double> %204, ptr %_3.i.i.i.i.12, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i2.i.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 29 %_3.i.i.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_51.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.13, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.13, align 8, !noalias !1563 %205 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 %206 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.13, %_52.i.i.i.i.sroa.0.0.copyload.13 store <8 x double> %205, ptr %_3.i.i.i.i.i.i.13, align 8, !noalias !1563 store <8 x double> %206, ptr %_3.i.i.i.i.13, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_3.i2.i.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 30 %_3.i.i.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_51.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.14, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.14, align 8, !noalias !1563 %207 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 %208 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.14, %_52.i.i.i.i.sroa.0.0.copyload.14 store <8 x double> %207, ptr %_3.i.i.i.i.i.i.14, align 8, !noalias !1563 store <8 x double> %208, ptr %_3.i.i.i.i.14, align 8, !noalias !1563 %_3.i.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i2.i.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 31 %_3.i.i.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_51.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.15, align 8, !noalias !1563 %_52.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.15, align 8, !noalias !1563 %209 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 %210 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.15, %_52.i.i.i.i.sroa.0.0.copyload.15 store <8 x double> %209, ptr %_3.i.i.i.i.i.i.15, align 8, !noalias !1563 store <8 x double> %210, ptr %_3.i.i.i.i.15, align 8, !noalias !1563 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1563 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17ha83c19226a513fbfE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1596) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1596, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1596, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1596, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1596, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1596, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1596, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1596, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1596 store i64 16, ptr %n.i, align 8, !noalias !1596 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1596 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1596 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1596 store ptr null, ptr %_16.i, align 8, !noalias !1596 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1596 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1596 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1596 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1596 store ptr null, ptr %_24.i, align 8, !noalias !1596 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1596 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1596 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1596 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1596 store ptr null, ptr %_32.i, align 8, !noalias !1596 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1596 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1596 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1596 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %bb26.i.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1596 store ptr null, ptr %_40.i, align 8, !noalias !1596 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb26.i.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1596 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1599 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !1599 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1599 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %6, align 8, !noalias !1599 %12 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %14 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = fadd <8 x double> %12, %14 %19 = bitcast <8 x i64> %17 to <8 x double> %20 = shufflevector <8 x double> %19, <8 x double> poison, <8 x i32> %21 = fsub <8 x double> %13, %20 %22 = fsub <8 x double> %12, %14 %23 = fadd <8 x double> %13, %20 store <8 x double> %18, ptr %scratch.0.i, align 8, !noalias !1599 store <8 x double> %21, ptr %10, align 8, !noalias !1599 store <8 x double> %22, ptr %11, align 8, !noalias !1599 store <8 x double> %23, ptr %9, align 8, !noalias !1599 tail call void @llvm.experimental.noalias.scope.decl(metadata !1603) tail call void @llvm.experimental.noalias.scope.decl(metadata !1606) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %25, align 8, !alias.scope !1606, !noalias !1608 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %24, align 8, !alias.scope !1606, !noalias !1608 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %26, align 8, !alias.scope !1606, !noalias !1608 %27 = shufflevector <8 x double> %18, <8 x double> %21, <8 x i32> %28 = shufflevector <8 x double> %18, <8 x double> %21, <8 x i32> %29 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %30 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %31 = shufflevector <8 x double> %27, <8 x double> %29, <8 x i32> %32 = shufflevector <8 x double> %27, <8 x double> %29, <8 x i32> %33 = shufflevector <8 x double> %28, <8 x double> %30, <8 x i32> %34 = shufflevector <8 x double> %28, <8 x double> %30, <8 x i32> %35 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %38 = fmul <8 x double> %37, %35 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %36, <8 x double> %33, <8 x double> %38, i32 noundef 4) #23 %39 = shufflevector <8 x double> %32, <8 x double> poison, <8 x i32> %40 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %41 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %42 = fmul <8 x double> %41, %39 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %32, <8 x double> %42, i32 noundef 4) #23 %43 = shufflevector <8 x double> %34, <8 x double> poison, <8 x i32> %44 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %45 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %46 = fmul <8 x double> %45, %43 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %44, <8 x double> %34, <8 x double> %46, i32 noundef 4) #23 %47 = fadd <8 x double> %31, %_4.i92 %48 = fsub <8 x double> %31, %_4.i92 %49 = fadd <8 x double> %_4.i93, %_4.i %50 = fsub <8 x double> %_4.i93, %_4.i %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = fadd <8 x double> %47, %49 store <8 x double> %53, ptr %buf.0.i, align 8, !alias.scope !1603, !noalias !1610 %54 = bitcast <8 x i64> %52 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = fsub <8 x double> %48, %55 store <8 x double> %56, ptr %8, align 8, !alias.scope !1603, !noalias !1610 %57 = fsub <8 x double> %47, %49 store <8 x double> %57, ptr %7, align 8, !alias.scope !1603, !noalias !1610 %58 = fadd <8 x double> %48, %55 store <8 x double> %58, ptr %6, align 8, !alias.scope !1603, !noalias !1610 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1596 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17haaee66dac2368b6dE(ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !1611) tail call void @llvm.experimental.noalias.scope.decl(metadata !1614) %0 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f, i64 0, i32 1 %_2.0.i.i = load ptr, ptr %0, align 8, !alias.scope !1617, !nonnull !3, !align !4, !noundef !3 %1 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f, i64 0, i32 1, i32 1 %_2.1.i.i = load i64, ptr %1, align 8, !alias.scope !1617, !noundef !3 %2 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f, i64 0, i32 2 %_3.0.i.i = load ptr, ptr %2, align 8, !alias.scope !1617, !nonnull !3, !align !4, !noundef !3 %3 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.838", ptr %f, i64 0, i32 2, i32 1 %_3.1.i.i = load i64, ptr %3, align 8, !alias.scope !1617, !noundef !3 %4 = and i64 %_2.1.i.i, 3 %5 = icmp eq i64 %4, 0 br i1 %5, label %bb9.i.i.i, label %bb8.i.i.i bb9.i.i.i: ; preds = %start %6 = and i64 %_3.1.i.i, 3 %7 = icmp eq i64 %6, 0 br i1 %7, label %bb12.i.i.i, label %bb11.i.i.i bb8.i.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !1618 unreachable bb12.i.i.i: ; preds = %bb9.i.i.i %8 = lshr exact i64 %_2.1.i.i, 2 %new_len2.i.i = and i64 %8, 288230376151711743 %9 = lshr exact i64 %_3.1.i.i, 2 %new_len2.i4.i = and i64 %9, 288230376151711743 %mid12.i.i.i = lshr i64 %new_len2.i.i, 1 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid12.i.i.i %11 = sub nsw i64 %new_len2.i.i, %mid12.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid12.i.i.i, i64 %11) %_0.0.sroa.speculated.i.i.i5.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %new_len2.i4.i) %_2.i.i.i43.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i, 0 br i1 %_2.i.i.i43.not.i, label %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit, label %bb5.i.i.i.preheader bb5.i.i.i.preheader: ; preds = %bb12.i.i.i %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i5.i, 1 %12 = icmp eq i64 %_0.0.sroa.speculated.i.i.i5.i, 1 br i1 %12, label %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit.loopexit.unr-lcssa, label %bb5.i.i.i.preheader.new bb5.i.i.i.preheader.new: ; preds = %bb5.i.i.i.preheader %unroll_iter = and i64 %_0.0.sroa.speculated.i.i.i5.i, 144115188075855870 br label %bb5.i.i.i bb11.i.i.i: ; preds = %bb9.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !1617 unreachable bb5.i.i.i: ; preds = %bb5.i.i.i, %bb5.i.i.i.preheader.new %iter.i.i.sroa.15.044.i = phi i64 [ 0, %bb5.i.i.i.preheader.new ], [ %20, %bb5.i.i.i ] %niter = phi i64 [ 0, %bb5.i.i.i.preheader.new ], [ %niter.next.1, %bb5.i.i.i ] %13 = or disjoint i64 %iter.i.i.sroa.15.044.i, 1 %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.15.044.i %_3.i2.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.sroa.15.044.i %_3.i.i.i.i.i = getelementptr inbounds [1 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.15.044.i %w1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !1617 %z0.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !1617 %z1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i, align 8, !noalias !1617 %14 = shufflevector <8 x double> %z1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %15 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %16 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %17 = fmul <8 x double> %16, %14 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %15, <8 x double> %z1.i.i.sroa.0.0.copyload.i, <8 x double> %17, i32 noundef 4) #23 %18 = fadd <8 x double> %z0.i.i.sroa.0.0.copyload.i, %_4.i %19 = fsub <8 x double> %z0.i.i.sroa.0.0.copyload.i, %_4.i store <8 x double> %18, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !1617 store <8 x double> %19, ptr %_3.i2.i.i.i.i.i.i, align 8, !noalias !1617 %20 = add nuw nsw i64 %iter.i.i.sroa.15.044.i, 2 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %13 %_3.i2.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %13 %_3.i.i.i.i.i.1 = getelementptr inbounds [1 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %13 %w1.i.i.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !1617 %z0.i.i.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !1617 %z1.i.i.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !noalias !1617 %21 = shufflevector <8 x double> %z1.i.i.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %22 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %23 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %24 = fmul <8 x double> %23, %21 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %22, <8 x double> %z1.i.i.sroa.0.0.copyload.i.1, <8 x double> %24, i32 noundef 4) #23 %25 = fadd <8 x double> %z0.i.i.sroa.0.0.copyload.i.1, %_4.i.1 %26 = fsub <8 x double> %z0.i.i.sroa.0.0.copyload.i.1, %_4.i.1 store <8 x double> %25, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !1617 store <8 x double> %26, ptr %_3.i2.i.i.i.i.i.i.1, align 8, !noalias !1617 %niter.next.1 = add i64 %niter, 2 %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1, label %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit.loopexit.unr-lcssa, label %bb5.i.i.i _ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit.loopexit.unr-lcssa: ; preds = %bb5.i.i.i, %bb5.i.i.i.preheader %iter.i.i.sroa.15.044.i.unr = phi i64 [ 0, %bb5.i.i.i.preheader ], [ %20, %bb5.i.i.i ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit, label %bb5.i.i.i.epil bb5.i.i.i.epil: ; preds = %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit.loopexit.unr-lcssa %_3.i.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.15.044.i.unr %_3.i2.i.i.i.i.i.i.epil = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.sroa.15.044.i.unr %_3.i.i.i.i.i.epil = getelementptr inbounds [1 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.15.044.i.unr %w1.i.i.sroa.0.0.copyload.i.epil = load <8 x double>, ptr %_3.i.i.i.i.i.epil, align 8, !noalias !1617 %z0.i.i.sroa.0.0.copyload.i.epil = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.epil, align 8, !noalias !1617 %z1.i.i.sroa.0.0.copyload.i.epil = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.epil, align 8, !noalias !1617 %27 = shufflevector <8 x double> %z1.i.i.sroa.0.0.copyload.i.epil, <8 x double> poison, <8 x i32> %28 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.epil, <8 x double> poison, <8 x i32> %29 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i.epil, <8 x double> poison, <8 x i32> %30 = fmul <8 x double> %29, %27 %_4.i.epil = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %28, <8 x double> %z1.i.i.sroa.0.0.copyload.i.epil, <8 x double> %30, i32 noundef 4) #23 %31 = fadd <8 x double> %z0.i.i.sroa.0.0.copyload.i.epil, %_4.i.epil %32 = fsub <8 x double> %z0.i.i.sroa.0.0.copyload.i.epil, %_4.i.epil store <8 x double> %31, ptr %_3.i.i.i.i.i.i.i.epil, align 8, !noalias !1617 store <8 x double> %32, ptr %_3.i2.i.i.i.i.i.i.epil, align 8, !noalias !1617 br label %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit _ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit: ; preds = %bb5.i.i.i.epil, %_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E.exit.loopexit.unr-lcssa, %bb12.i.i.i ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hadc66e6b1edd44ecE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1621) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1621, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1621, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1621, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1621, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1621, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1621, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1621, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1621, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1621 store i64 32, ptr %n.i, align 8, !noalias !1621 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1621 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1621 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1621 store ptr null, ptr %_16.i, align 8, !noalias !1621 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1621 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1621 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1621 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1621 store ptr null, ptr %_24.i, align 8, !noalias !1621 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1621 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1621 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1621 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1621 store ptr null, ptr %_32.i, align 8, !noalias !1621 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1621 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1621 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1621 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h29619756e668962bE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1621 store ptr null, ptr %_40.i, align 8, !noalias !1621 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h29619756e668962bE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1621 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %_33.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1621 %_34.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1621 %8 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload %9 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload, %_34.i.i.i.sroa.0.0.copyload store <8 x double> %8, ptr %buf.0.i, align 8, !noalias !1621 store <8 x double> %9, ptr %7, align 8, !noalias !1621 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_33.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1621 %_34.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1621 %10 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 %11 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.sroa.0.0.copyload.1 store <8 x double> %10, ptr %_3.i.i.i.i.1, align 8, !noalias !1621 store <8 x double> %11, ptr %_3.i2.i.i.i.1, align 8, !noalias !1621 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_33.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1621 %_34.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !noalias !1621 %12 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 %13 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.sroa.0.0.copyload.2 store <8 x double> %12, ptr %_3.i.i.i.i.2, align 8, !noalias !1621 store <8 x double> %13, ptr %_3.i2.i.i.i.2, align 8, !noalias !1621 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_33.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1621 %_34.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !noalias !1621 %14 = fadd <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 %15 = fsub <8 x double> %_33.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.sroa.0.0.copyload.3 store <8 x double> %14, ptr %_3.i.i.i.i.3, align 8, !noalias !1621 store <8 x double> %15, ptr %_3.i2.i.i.i.3, align 8, !noalias !1621 tail call void @llvm.experimental.noalias.scope.decl(metadata !1624) tail call void @llvm.experimental.noalias.scope.decl(metadata !1627) tail call void @llvm.experimental.noalias.scope.decl(metadata !1629) %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %19 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0614.us.i = load <2 x float>, ptr %19, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %20, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0616.us.i = load <2 x float>, ptr %21, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %22, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0618.us.i = load <2 x float>, ptr %23, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %24, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %25 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %26 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %27 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %28 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> zeroinitializer %29 = shufflevector <2 x double> %25, <2 x double> poison, <8 x i32> %30 = shufflevector <2 x double> %26, <2 x double> poison, <8 x i32> zeroinitializer %31 = shufflevector <2 x double> %26, <2 x double> poison, <8 x i32> %32 = shufflevector <2 x double> %27, <2 x double> poison, <8 x i32> zeroinitializer %33 = shufflevector <2 x double> %27, <2 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %10, <8 x double> poison, <8 x i32> %35 = fmul <8 x double> %29, %34 %_4.i23 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %28, <8 x double> %10, <8 x double> %35, i32 noundef 4) #23 %36 = shufflevector <8 x double> %12, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %31, %36 %_4.i22 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %12, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %14, <8 x double> poison, <8 x i32> %39 = fmul <8 x double> %33, %38 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %32, <8 x double> %14, <8 x double> %39, i32 noundef 4) #23 %40 = fadd <8 x double> %8, %_4.i22 %41 = fsub <8 x double> %8, %_4.i22 %42 = fadd <8 x double> %_4.i23, %_4.i %43 = fsub <8 x double> %_4.i23, %_4.i %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %40, %42 store <8 x double> %48, ptr %scratch.0.i, align 8, !alias.scope !1624, !noalias !1632 %49 = fsub <8 x double> %41, %47 store <8 x double> %49, ptr %17, align 8, !alias.scope !1624, !noalias !1632 %50 = fsub <8 x double> %40, %42 store <8 x double> %50, ptr %16, align 8, !alias.scope !1624, !noalias !1632 %51 = fadd <8 x double> %41, %47 store <8 x double> %51, ptr %18, align 8, !alias.scope !1624, !noalias !1632 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0614.us.i.1 = load <2 x float>, ptr %52, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1615.us.i.1 = load <2 x float>, ptr %53, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0616.us.i.1 = load <2 x float>, ptr %54, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1617.us.i.1 = load <2 x float>, ptr %55, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0618.us.i.1 = load <2 x float>, ptr %56, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1619.us.i.1 = load <2 x float>, ptr %57, align 8, !alias.scope !1629, !noalias !1631, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0614.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1615.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0616.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1617.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0618.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1619.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %61 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %62 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %63 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %64 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %65 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %66 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %7, align 8, !alias.scope !1627, !noalias !1633 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !alias.scope !1627, !noalias !1633 %67 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %68 = fmul <8 x double> %62, %67 %_4.i23.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %61, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %68, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !alias.scope !1627, !noalias !1633 %69 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %70 = fmul <8 x double> %64, %69 %_4.i22.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %70, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !alias.scope !1627, !noalias !1633 %71 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %66, %71 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %65, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %72, i32 noundef 4) #23 %73 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i22.1 %74 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i22.1 %75 = fadd <8 x double> %_4.i23.1, %_4.i.1 %76 = fsub <8 x double> %_4.i23.1, %_4.i.1 %77 = bitcast <8 x double> %76 to <8 x i64> %78 = xor <8 x i64> %77, %79 = bitcast <8 x i64> %78 to <8 x double> %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fadd <8 x double> %73, %75 store <8 x double> %81, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1624, !noalias !1632 %82 = fsub <8 x double> %74, %80 store <8 x double> %82, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1624, !noalias !1632 %83 = fsub <8 x double> %73, %75 store <8 x double> %83, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1624, !noalias !1632 %84 = fadd <8 x double> %74, %80 store <8 x double> %84, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1624, !noalias !1632 tail call void @llvm.experimental.noalias.scope.decl(metadata !1634) tail call void @llvm.experimental.noalias.scope.decl(metadata !1637) tail call void @llvm.experimental.noalias.scope.decl(metadata !1639) %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %87, align 8, !alias.scope !1639, !noalias !1641 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %86, align 8, !alias.scope !1639, !noalias !1641 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %88, align 8, !alias.scope !1639, !noalias !1641 %89 = shufflevector <8 x double> %48, <8 x double> %81, <8 x i32> %90 = shufflevector <8 x double> %48, <8 x double> %81, <8 x i32> %91 = shufflevector <8 x double> %49, <8 x double> %82, <8 x i32> %92 = shufflevector <8 x double> %49, <8 x double> %82, <8 x i32> %93 = shufflevector <8 x double> %89, <8 x double> %91, <8 x i32> %94 = shufflevector <8 x double> %89, <8 x double> %91, <8 x i32> %95 = shufflevector <8 x double> %90, <8 x double> %92, <8 x i32> %96 = shufflevector <8 x double> %90, <8 x double> %92, <8 x i32> %97 = shufflevector <8 x double> %95, <8 x double> poison, <8 x i32> %98 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %99 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %100 = fmul <8 x double> %99, %97 %_4.i26 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %95, <8 x double> %100, i32 noundef 4) #23 %101 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %102 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %103 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %104 = fmul <8 x double> %103, %101 %_4.i25 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %94, <8 x double> %104, i32 noundef 4) #23 %105 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %106 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %107 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %108 = fmul <8 x double> %107, %105 %_4.i24 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %96, <8 x double> %108, i32 noundef 4) #23 %109 = fadd <8 x double> %93, %_4.i25 %110 = fsub <8 x double> %93, %_4.i25 %111 = fadd <8 x double> %_4.i26, %_4.i24 %112 = fsub <8 x double> %_4.i26, %_4.i24 %113 = bitcast <8 x double> %112 to <8 x i64> %114 = xor <8 x i64> %113, %115 = bitcast <8 x i64> %114 to <8 x double> %116 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %117 = fadd <8 x double> %109, %111 store <8 x double> %117, ptr %buf.0.i, align 8, !alias.scope !1634, !noalias !1642 %118 = fsub <8 x double> %110, %116 store <8 x double> %118, ptr %_3.i.i.i.i.2, align 8, !alias.scope !1634, !noalias !1642 %119 = fsub <8 x double> %109, %111 store <8 x double> %119, ptr %7, align 8, !alias.scope !1634, !noalias !1642 %120 = fadd <8 x double> %110, %116 store <8 x double> %120, ptr %85, align 8, !alias.scope !1634, !noalias !1642 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %w1.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1639, !noalias !1641 %w2.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !1639, !noalias !1641 %w3.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.1, align 8, !alias.scope !1639, !noalias !1641 %abcd0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %16, align 8, !alias.scope !1637, !noalias !1643 %abcd2.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %18, align 8, !alias.scope !1637, !noalias !1643 %121 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i.1, <8 x double> %83, <8 x i32> %122 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i.1, <8 x double> %83, <8 x i32> %123 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i.1, <8 x double> %84, <8 x i32> %124 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i.1, <8 x double> %84, <8 x i32> %125 = shufflevector <8 x double> %121, <8 x double> %123, <8 x i32> %126 = shufflevector <8 x double> %121, <8 x double> %123, <8 x i32> %127 = shufflevector <8 x double> %122, <8 x double> %124, <8 x i32> %128 = shufflevector <8 x double> %122, <8 x double> %124, <8 x i32> %129 = shufflevector <8 x double> %127, <8 x double> poison, <8 x i32> %130 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %131 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %132 = fmul <8 x double> %131, %129 %_4.i26.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %130, <8 x double> %127, <8 x double> %132, i32 noundef 4) #23 %133 = shufflevector <8 x double> %126, <8 x double> poison, <8 x i32> %134 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %135 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %135, %133 %_4.i25.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %134, <8 x double> %126, <8 x double> %136, i32 noundef 4) #23 %137 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %138 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %139 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %140 = fmul <8 x double> %139, %137 %_4.i24.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %138, <8 x double> %128, <8 x double> %140, i32 noundef 4) #23 %141 = fadd <8 x double> %125, %_4.i25.1 %142 = fsub <8 x double> %125, %_4.i25.1 %143 = fadd <8 x double> %_4.i26.1, %_4.i24.1 %144 = fsub <8 x double> %_4.i26.1, %_4.i24.1 %145 = bitcast <8 x double> %144 to <8 x i64> %146 = xor <8 x i64> %145, %147 = bitcast <8 x i64> %146 to <8 x double> %148 = shufflevector <8 x double> %147, <8 x double> poison, <8 x i32> %149 = fadd <8 x double> %141, %143 store <8 x double> %149, ptr %_3.i.i.i.i.1, align 8, !alias.scope !1634, !noalias !1642 %150 = fsub <8 x double> %142, %148 store <8 x double> %150, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1634, !noalias !1642 %151 = fsub <8 x double> %141, %143 store <8 x double> %151, ptr %_3.i2.i.i.i.1, align 8, !alias.scope !1634, !noalias !1642 %152 = fadd <8 x double> %142, %148 store <8 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1634, !noalias !1642 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1621 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb09ac7953b13bb44E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1644) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1644, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1644, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1644, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1644, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1644, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1644, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1644, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1644, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1644 store i64 1024, ptr %n.i, align 8, !noalias !1644 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1644 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1644 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1644 store ptr null, ptr %_16.i, align 8, !noalias !1644 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1644 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1644 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1644 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1644 store ptr null, ptr %_24.i, align 8, !noalias !1644 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1644 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1644 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1644 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1644 store ptr null, ptr %_32.i, align 8, !noalias !1644 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1644 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1644 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1644 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h491896e6015246d1E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1644 store ptr null, ptr %_40.i, align 8, !noalias !1644 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h491896e6015246d1E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1644 tail call void @llvm.experimental.noalias.scope.decl(metadata !1647) tail call void @llvm.experimental.noalias.scope.decl(metadata !1650) tail call void @llvm.experimental.noalias.scope.decl(metadata !1652) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 144 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 176 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 208 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 240 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 144 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 176 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 208 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 240 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h491896e6015246d1E.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %37, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h491896e6015246d1E.exit" ] %37 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1647, !noalias !1654 %38 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %40 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %42 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %44 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %46 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %48 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %50 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %52 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %54 = bitcast <8 x double> %41 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = bitcast <8 x double> %45 to <8 x i64> %59 = xor <8 x i64> %58, %60 = bitcast <8 x i64> %59 to <8 x double> %61 = shufflevector <8 x double> %60, <8 x double> poison, <8 x i32> %62 = bitcast <8 x double> %49 to <8 x i64> %63 = xor <8 x i64> %62, %64 = bitcast <8 x i64> %63 to <8 x double> %65 = shufflevector <8 x double> %64, <8 x double> poison, <8 x i32> %66 = bitcast <8 x double> %53 to <8 x i64> %67 = xor <8 x i64> %66, %68 = bitcast <8 x i64> %67 to <8 x double> %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = fadd <8 x double> %38, %40 %71 = fsub <8 x double> %39, %57 %72 = fsub <8 x double> %38, %40 %73 = fadd <8 x double> %39, %57 %74 = fadd <8 x double> %42, %44 %75 = fsub <8 x double> %43, %61 %76 = fsub <8 x double> %42, %44 %77 = fadd <8 x double> %43, %61 %78 = fadd <8 x double> %46, %48 %79 = fsub <8 x double> %47, %65 %80 = fsub <8 x double> %46, %48 %81 = fadd <8 x double> %47, %65 %82 = fadd <8 x double> %50, %52 %83 = fsub <8 x double> %51, %69 %84 = fsub <8 x double> %50, %52 %85 = fadd <8 x double> %51, %69 %86 = bitcast <8 x double> %75 to <8 x i64> %87 = xor <8 x i64> %86, %88 = bitcast <8 x i64> %87 to <8 x double> %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = fadd <8 x double> %75, %89 %91 = fmul <8 x double> %90, %92 = bitcast <8 x double> %76 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x i64> %93 to <8 x double> %95 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %96 = bitcast <8 x double> %77 to <8 x i64> %97 = xor <8 x i64> %96, %98 = bitcast <8 x i64> %97 to <8 x double> %99 = shufflevector <8 x double> %98, <8 x double> poison, <8 x i32> %100 = fadd <8 x double> %77, %99 %101 = fmul <8 x double> %100, %102 = fadd <8 x double> %70, %74 %103 = fadd <8 x double> %71, %91 %104 = fsub <8 x double> %72, %95 %105 = fsub <8 x double> %73, %101 %106 = fsub <8 x double> %70, %74 %107 = fsub <8 x double> %71, %91 %108 = fadd <8 x double> %72, %95 %109 = fadd <8 x double> %73, %101 %110 = bitcast <8 x double> %83 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fadd <8 x double> %83, %113 %115 = fmul <8 x double> %114, %116 = bitcast <8 x double> %84 to <8 x i64> %117 = xor <8 x i64> %116, %118 = bitcast <8 x i64> %117 to <8 x double> %119 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %120 = bitcast <8 x double> %85 to <8 x i64> %121 = xor <8 x i64> %120, %122 = bitcast <8 x i64> %121 to <8 x double> %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fadd <8 x double> %85, %123 %125 = fmul <8 x double> %124, %126 = fadd <8 x double> %78, %82 %127 = fadd <8 x double> %79, %115 %128 = fsub <8 x double> %80, %119 %129 = fsub <8 x double> %81, %125 %130 = fsub <8 x double> %78, %82 %131 = fsub <8 x double> %79, %115 %132 = fadd <8 x double> %80, %119 %133 = fadd <8 x double> %81, %125 %134 = fmul <8 x double> %127, %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %_4.i117 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %127, <8 x double> %135, i32 noundef 4) #23 %136 = bitcast <8 x double> %128 to <8 x i64> %137 = xor <8 x i64> %136, %138 = bitcast <8 x i64> %137 to <8 x double> %139 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %140 = fadd <8 x double> %128, %139 %141 = fmul <8 x double> %140, %142 = fmul <8 x double> %129, %143 = shufflevector <8 x double> %142, <8 x double> poison, <8 x i32> %_4.i116 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %129, <8 x double> %143, i32 noundef 4) #23 %144 = bitcast <8 x double> %130 to <8 x i64> %145 = xor <8 x i64> %144, %146 = bitcast <8 x i64> %145 to <8 x double> %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %148 = fmul <8 x double> %131, %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %_4.i115 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %131, <8 x double> %149, i32 noundef 4) #23 %150 = bitcast <8 x double> %132 to <8 x i64> %151 = xor <8 x i64> %150, %152 = bitcast <8 x i64> %151 to <8 x double> %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fadd <8 x double> %132, %153 %155 = fmul <8 x double> %154, %156 = fmul <8 x double> %133, %157 = shufflevector <8 x double> %156, <8 x double> poison, <8 x i32> %_4.i114 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %133, <8 x double> %157, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1652, !noalias !1655 %158 = fadd <8 x double> %102, %126 %159 = fadd <8 x double> %_4.i117, %103 %160 = shufflevector <8 x double> %159, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %163 = fmul <8 x double> %162, %160 %_4.i113 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %161, <8 x double> %159, <8 x double> %163, i32 noundef 4) #23 %164 = fadd <8 x double> %104, %141 %165 = shufflevector <8 x double> %164, <8 x double> poison, <8 x i32> %166 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %167 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %168 = fmul <8 x double> %167, %165 %_4.i112 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %164, <8 x double> %168, i32 noundef 4) #23 %169 = fadd <8 x double> %_4.i116, %105 %170 = shufflevector <8 x double> %169, <8 x double> poison, <8 x i32> %171 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %172 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %173 = fmul <8 x double> %172, %170 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %171, <8 x double> %169, <8 x double> %173, i32 noundef 4) #23 %174 = fsub <8 x double> %106, %147 %175 = shufflevector <8 x double> %174, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %177, %175 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %174, <8 x double> %178, i32 noundef 4) #23 %179 = fsub <8 x double> %107, %_4.i115 %180 = shufflevector <8 x double> %179, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %182, %180 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %179, <8 x double> %183, i32 noundef 4) #23 %184 = fsub <8 x double> %108, %155 %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %187, %185 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %186, <8 x double> %184, <8 x double> %188, i32 noundef 4) #23 %189 = fsub <8 x double> %109, %_4.i114 %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %193 = fmul <8 x double> %192, %190 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %191, <8 x double> %189, <8 x double> %193, i32 noundef 4) #23 %194 = fsub <8 x double> %102, %126 %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %198 = fmul <8 x double> %195, %197 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %194, <8 x double> %198, i32 noundef 4) #23 %199 = fsub <8 x double> %103, %_4.i117 %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %203 = fmul <8 x double> %202, %200 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %201, <8 x double> %199, <8 x double> %203, i32 noundef 4) #23 %204 = fsub <8 x double> %104, %141 %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %208 = fmul <8 x double> %207, %205 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %206, <8 x double> %204, <8 x double> %208, i32 noundef 4) #23 %209 = fsub <8 x double> %105, %_4.i116 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %210, %212 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %211, <8 x double> %209, <8 x double> %213, i32 noundef 4) #23 %214 = fadd <8 x double> %106, %147 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %218 = fmul <8 x double> %215, %217 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %216, <8 x double> %214, <8 x double> %218, i32 noundef 4) #23 %219 = fadd <8 x double> %_4.i115, %107 %220 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %223 = fmul <8 x double> %220, %222 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %221, <8 x double> %219, <8 x double> %223, i32 noundef 4) #23 %224 = fadd <8 x double> %108, %155 %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %225, %227 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %226, <8 x double> %224, <8 x double> %228, i32 noundef 4) #23 %229 = fadd <8 x double> %_4.i114, %109 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %233 = fmul <8 x double> %230, %232 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %231, <8 x double> %229, <8 x double> %233, i32 noundef 4) #23 %234 = shufflevector <8 x double> %158, <8 x double> %_4.i113, <8 x i32> %235 = shufflevector <8 x double> %158, <8 x double> %_4.i113, <8 x i32> %236 = shufflevector <8 x double> %_4.i112, <8 x double> %_4.i111, <8 x i32> %237 = shufflevector <8 x double> %_4.i112, <8 x double> %_4.i111, <8 x i32> %238 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %241 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %242 = shufflevector <8 x double> %_4.i110, <8 x double> %_4.i109, <8 x i32> %243 = shufflevector <8 x double> %_4.i110, <8 x double> %_4.i109, <8 x i32> %244 = shufflevector <8 x double> %_4.i108, <8 x double> %_4.i107, <8 x i32> %245 = shufflevector <8 x double> %_4.i108, <8 x double> %_4.i107, <8 x i32> %246 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %249 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %250 = shufflevector <8 x double> %_4.i106, <8 x double> %_4.i105, <8 x i32> %251 = shufflevector <8 x double> %_4.i106, <8 x double> %_4.i105, <8 x i32> %252 = shufflevector <8 x double> %_4.i104, <8 x double> %_4.i103, <8 x i32> %253 = shufflevector <8 x double> %_4.i104, <8 x double> %_4.i103, <8 x i32> %254 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %257 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %258 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %259 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %260 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i, <8 x i32> %261 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i, <8 x i32> %262 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> %265 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> store <8 x double> %238, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1650, !noalias !1656 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %246, ptr %266, align 8, !alias.scope !1650, !noalias !1656 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %254, ptr %267, align 8, !alias.scope !1650, !noalias !1656 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %262, ptr %268, align 8, !alias.scope !1650, !noalias !1656 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %240, ptr %269, align 8, !alias.scope !1650, !noalias !1656 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %248, ptr %270, align 8, !alias.scope !1650, !noalias !1656 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %256, ptr %271, align 8, !alias.scope !1650, !noalias !1656 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %264, ptr %272, align 8, !alias.scope !1650, !noalias !1656 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %239, ptr %273, align 8, !alias.scope !1650, !noalias !1656 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %247, ptr %274, align 8, !alias.scope !1650, !noalias !1656 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %255, ptr %275, align 8, !alias.scope !1650, !noalias !1656 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %263, ptr %276, align 8, !alias.scope !1650, !noalias !1656 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %241, ptr %277, align 8, !alias.scope !1650, !noalias !1656 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %249, ptr %278, align 8, !alias.scope !1650, !noalias !1656 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %257, ptr %279, align 8, !alias.scope !1650, !noalias !1656 %280 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %265, ptr %280, align 8, !alias.scope !1650, !noalias !1656 %exitcond.not.i = icmp eq i64 %37, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1657) tail call void @llvm.experimental.noalias.scope.decl(metadata !1660) tail call void @llvm.experimental.noalias.scope.decl(metadata !1662) %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 144 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 176 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 208 %295 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 240 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i %296 = add nuw nsw i64 %iter.sroa.192.05439.i, 1 %exitcond.not = icmp eq i64 %296, 4 br i1 %exitcond.not, label %bb13.i.i.i.i, label %bb46.i bb46.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb44.loopexit.i %iter.sroa.192.05439.i = phi i64 [ %296, %bb44.loopexit.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.05439.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %295, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.05439.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.192.05439.i, 4 %297 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.05116.i = load <2 x float>, ptr %297, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %298 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.15117.i = load <2 x float>, ptr %298, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %299 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.05118.i = load <2 x float>, ptr %299, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %300 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.15119.i = load <2 x float>, ptr %300, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %301 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.05120.i = load <2 x float>, ptr %301, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %302 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.15121.i = load <2 x float>, ptr %302, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %303 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.05122.i = load <2 x float>, ptr %303, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %304 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.15123.i = load <2 x float>, ptr %304, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %305 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.05124.i = load <2 x float>, ptr %305, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %306 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.15125.i = load <2 x float>, ptr %306, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %307 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.05126.i = load <2 x float>, ptr %307, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %308 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.15127.i = load <2 x float>, ptr %308, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %309 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.05128.i = load <2 x float>, ptr %309, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.15129.i = load <2 x float>, ptr %310, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %311 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.05130.i = load <2 x float>, ptr %311, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %312 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.15131.i = load <2 x float>, ptr %312, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.05132.i = load <2 x float>, ptr %313, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %314 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.15133.i = load <2 x float>, ptr %314, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %315 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.05134.i = load <2 x float>, ptr %315, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.15135.i = load <2 x float>, ptr %316, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %317 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.05136.i = load <2 x float>, ptr %317, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %318 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.15137.i = load <2 x float>, ptr %318, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.05138.i = load <2 x float>, ptr %319, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %320 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.15139.i = load <2 x float>, ptr %320, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %321 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.05140.i = load <2 x float>, ptr %321, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.15141.i = load <2 x float>, ptr %322, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %323 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.05142.i = load <2 x float>, ptr %323, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %324 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.15143.i = load <2 x float>, ptr %324, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.05144.i = load <2 x float>, ptr %325, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %326 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.15145.i = load <2 x float>, ptr %326, align 8, !alias.scope !1662, !noalias !1664, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.05116.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.15117.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %327 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.05118.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.15119.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %328 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.05120.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.15121.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %329 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.05122.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.15123.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %330 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.05124.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.15125.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %331 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.05126.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.15127.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %332 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.05128.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.15129.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %333 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.05130.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.15131.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %334 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.05132.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.15133.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %335 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.05134.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.15135.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %336 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.05136.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.15137.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %337 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.05138.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.15139.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %338 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.05140.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.15141.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %339 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.05142.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.15143.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %340 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.05144.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.15145.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %341 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %342 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %343 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %344 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %345 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %346 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %347 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %348 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %349 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %350 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %351 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %352 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %353 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %354 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %355 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %356 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %357 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> zeroinitializer %358 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> %359 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> zeroinitializer %360 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> %361 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> zeroinitializer %362 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> %363 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> zeroinitializer %364 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> %365 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> zeroinitializer %366 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> %367 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> zeroinitializer %368 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> %369 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> zeroinitializer %370 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> %371 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> zeroinitializer %372 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> %373 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> zeroinitializer %374 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> %375 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> zeroinitializer %376 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> %377 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> zeroinitializer %378 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> %379 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> zeroinitializer %380 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> %381 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> zeroinitializer %382 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> %383 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> zeroinitializer %384 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> %385 = shufflevector <2 x double> %341, <2 x double> poison, <8 x i32> zeroinitializer %386 = shufflevector <2 x double> %341, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05250.i = phi i64 [ %387, %bb98.i ], [ 0, %bb46.i ] %387 = add nuw nsw i64 %iter10.sroa.218.05250.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i45 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i46 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %345, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %344, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %346, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %343, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %348, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %347, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %349, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %342, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %352, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %351, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %353, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %350, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %355, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %354, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %356, i64 %iter10.sroa.218.05250.i %x0.sroa.0.0.copyload.i47 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32, align 8, !alias.scope !1657, !noalias !1665 %x1.sroa.0.0.copyload.i48 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1657, !noalias !1665 %x2.sroa.0.0.copyload.i49 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33, align 8, !alias.scope !1657, !noalias !1665 %x3.sroa.0.0.copyload.i50 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34, align 8, !alias.scope !1657, !noalias !1665 %x4.sroa.0.0.copyload.i51 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35, align 8, !alias.scope !1657, !noalias !1665 %x5.sroa.0.0.copyload.i52 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36, align 8, !alias.scope !1657, !noalias !1665 %x6.sroa.0.0.copyload.i53 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37, align 8, !alias.scope !1657, !noalias !1665 %x7.sroa.0.0.copyload.i54 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38, align 8, !alias.scope !1657, !noalias !1665 %x8.sroa.0.0.copyload.i55 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39, align 8, !alias.scope !1657, !noalias !1665 %x9.sroa.0.0.copyload.i56 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40, align 8, !alias.scope !1657, !noalias !1665 %xa.sroa.0.0.copyload.i57 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41, align 8, !alias.scope !1657, !noalias !1665 %xb.sroa.0.0.copyload.i58 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42, align 8, !alias.scope !1657, !noalias !1665 %xc.sroa.0.0.copyload.i59 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43, align 8, !alias.scope !1657, !noalias !1665 %xd.sroa.0.0.copyload.i60 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44, align 8, !alias.scope !1657, !noalias !1665 %xe.sroa.0.0.copyload.i61 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i45, align 8, !alias.scope !1657, !noalias !1665 %xf.sroa.0.0.copyload.i62 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i46, align 8, !alias.scope !1657, !noalias !1665 %388 = fadd <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %389 = fsub <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %390 = fadd <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %391 = fsub <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %392 = fadd <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %393 = fsub <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %394 = fadd <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %395 = fsub <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %396 = fadd <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %397 = fsub <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %398 = fadd <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %399 = fsub <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %400 = fadd <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %401 = fsub <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %402 = fadd <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %403 = fsub <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %404 = bitcast <8 x double> %391 to <8 x i64> %405 = xor <8 x i64> %404, %406 = bitcast <8 x i64> %405 to <8 x double> %407 = shufflevector <8 x double> %406, <8 x double> poison, <8 x i32> %408 = bitcast <8 x double> %395 to <8 x i64> %409 = xor <8 x i64> %408, %410 = bitcast <8 x i64> %409 to <8 x double> %411 = shufflevector <8 x double> %410, <8 x double> poison, <8 x i32> %412 = bitcast <8 x double> %399 to <8 x i64> %413 = xor <8 x i64> %412, %414 = bitcast <8 x i64> %413 to <8 x double> %415 = shufflevector <8 x double> %414, <8 x double> poison, <8 x i32> %416 = bitcast <8 x double> %403 to <8 x i64> %417 = xor <8 x i64> %416, %418 = bitcast <8 x i64> %417 to <8 x double> %419 = shufflevector <8 x double> %418, <8 x double> poison, <8 x i32> %420 = fadd <8 x double> %388, %390 %421 = fsub <8 x double> %389, %407 %422 = fsub <8 x double> %388, %390 %423 = fadd <8 x double> %389, %407 %424 = fadd <8 x double> %392, %394 %425 = fsub <8 x double> %393, %411 %426 = fsub <8 x double> %392, %394 %427 = fadd <8 x double> %393, %411 %428 = fadd <8 x double> %396, %398 %429 = fsub <8 x double> %397, %415 %430 = fsub <8 x double> %396, %398 %431 = fadd <8 x double> %397, %415 %432 = fadd <8 x double> %400, %402 %433 = fsub <8 x double> %401, %419 %434 = fsub <8 x double> %400, %402 %435 = fadd <8 x double> %401, %419 %436 = bitcast <8 x double> %425 to <8 x i64> %437 = xor <8 x i64> %436, %438 = bitcast <8 x i64> %437 to <8 x double> %439 = shufflevector <8 x double> %438, <8 x double> poison, <8 x i32> %440 = fadd <8 x double> %425, %439 %441 = fmul <8 x double> %440, %442 = bitcast <8 x double> %426 to <8 x i64> %443 = xor <8 x i64> %442, %444 = bitcast <8 x i64> %443 to <8 x double> %445 = shufflevector <8 x double> %444, <8 x double> poison, <8 x i32> %446 = bitcast <8 x double> %427 to <8 x i64> %447 = xor <8 x i64> %446, %448 = bitcast <8 x i64> %447 to <8 x double> %449 = shufflevector <8 x double> %448, <8 x double> poison, <8 x i32> %450 = fadd <8 x double> %427, %449 %451 = fmul <8 x double> %450, %452 = fadd <8 x double> %420, %424 %453 = fadd <8 x double> %421, %441 %454 = fsub <8 x double> %422, %445 %455 = fsub <8 x double> %423, %451 %456 = fsub <8 x double> %420, %424 %457 = fsub <8 x double> %421, %441 %458 = fadd <8 x double> %422, %445 %459 = fadd <8 x double> %423, %451 %460 = bitcast <8 x double> %433 to <8 x i64> %461 = xor <8 x i64> %460, %462 = bitcast <8 x i64> %461 to <8 x double> %463 = shufflevector <8 x double> %462, <8 x double> poison, <8 x i32> %464 = fadd <8 x double> %433, %463 %465 = fmul <8 x double> %464, %466 = bitcast <8 x double> %434 to <8 x i64> %467 = xor <8 x i64> %466, %468 = bitcast <8 x i64> %467 to <8 x double> %469 = shufflevector <8 x double> %468, <8 x double> poison, <8 x i32> %470 = bitcast <8 x double> %435 to <8 x i64> %471 = xor <8 x i64> %470, %472 = bitcast <8 x i64> %471 to <8 x double> %473 = shufflevector <8 x double> %472, <8 x double> poison, <8 x i32> %474 = fadd <8 x double> %435, %473 %475 = fmul <8 x double> %474, %476 = fadd <8 x double> %428, %432 %477 = fadd <8 x double> %429, %465 %478 = fsub <8 x double> %430, %469 %479 = fsub <8 x double> %431, %475 %480 = fsub <8 x double> %428, %432 %481 = fsub <8 x double> %429, %465 %482 = fadd <8 x double> %430, %469 %483 = fadd <8 x double> %431, %475 %484 = fmul <8 x double> %477, %485 = shufflevector <8 x double> %484, <8 x double> poison, <8 x i32> %_4.i136 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %477, <8 x double> %485, i32 noundef 4) #23 %486 = bitcast <8 x double> %478 to <8 x i64> %487 = xor <8 x i64> %486, %488 = bitcast <8 x i64> %487 to <8 x double> %489 = shufflevector <8 x double> %488, <8 x double> poison, <8 x i32> %490 = fadd <8 x double> %478, %489 %491 = fmul <8 x double> %490, %492 = fmul <8 x double> %479, %493 = shufflevector <8 x double> %492, <8 x double> poison, <8 x i32> %_4.i135 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %479, <8 x double> %493, i32 noundef 4) #23 %494 = bitcast <8 x double> %480 to <8 x i64> %495 = xor <8 x i64> %494, %496 = bitcast <8 x i64> %495 to <8 x double> %497 = shufflevector <8 x double> %496, <8 x double> poison, <8 x i32> %498 = fmul <8 x double> %481, %499 = shufflevector <8 x double> %498, <8 x double> poison, <8 x i32> %_4.i134 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %481, <8 x double> %499, i32 noundef 4) #23 %500 = bitcast <8 x double> %482 to <8 x i64> %501 = xor <8 x i64> %500, %502 = bitcast <8 x i64> %501 to <8 x double> %503 = shufflevector <8 x double> %502, <8 x double> poison, <8 x i32> %504 = fadd <8 x double> %482, %503 %505 = fmul <8 x double> %504, %506 = fmul <8 x double> %483, %507 = shufflevector <8 x double> %506, <8 x double> poison, <8 x i32> %_4.i133 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %483, <8 x double> %507, i32 noundef 4) #23 %508 = fadd <8 x double> %452, %476 store <8 x double> %508, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %509 = fadd <8 x double> %_4.i136, %453 %510 = shufflevector <8 x double> %509, <8 x double> poison, <8 x i32> %511 = fmul <8 x double> %358, %510 %_4.i132 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %357, <8 x double> %509, <8 x double> %511, i32 noundef 4) #23 store <8 x double> %_4.i132, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %512 = fadd <8 x double> %454, %491 %513 = shufflevector <8 x double> %512, <8 x double> poison, <8 x i32> %514 = fmul <8 x double> %360, %513 %_4.i131 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %359, <8 x double> %512, <8 x double> %514, i32 noundef 4) #23 store <8 x double> %_4.i131, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %515 = fadd <8 x double> %_4.i135, %455 %516 = shufflevector <8 x double> %515, <8 x double> poison, <8 x i32> %517 = fmul <8 x double> %362, %516 %_4.i130 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %361, <8 x double> %515, <8 x double> %517, i32 noundef 4) #23 store <8 x double> %_4.i130, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %518 = fsub <8 x double> %456, %497 %519 = shufflevector <8 x double> %518, <8 x double> poison, <8 x i32> %520 = fmul <8 x double> %364, %519 %_4.i129 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %363, <8 x double> %518, <8 x double> %520, i32 noundef 4) #23 store <8 x double> %_4.i129, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %521 = fsub <8 x double> %457, %_4.i134 %522 = shufflevector <8 x double> %521, <8 x double> poison, <8 x i32> %523 = fmul <8 x double> %366, %522 %_4.i128 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %365, <8 x double> %521, <8 x double> %523, i32 noundef 4) #23 store <8 x double> %_4.i128, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %524 = fsub <8 x double> %458, %505 %525 = shufflevector <8 x double> %524, <8 x double> poison, <8 x i32> %526 = fmul <8 x double> %368, %525 %_4.i127 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %367, <8 x double> %524, <8 x double> %526, i32 noundef 4) #23 store <8 x double> %_4.i127, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %527 = fsub <8 x double> %459, %_4.i133 %528 = shufflevector <8 x double> %527, <8 x double> poison, <8 x i32> %529 = fmul <8 x double> %370, %528 %_4.i126 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %369, <8 x double> %527, <8 x double> %529, i32 noundef 4) #23 store <8 x double> %_4.i126, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %530 = fsub <8 x double> %452, %476 %531 = shufflevector <8 x double> %530, <8 x double> poison, <8 x i32> %532 = fmul <8 x double> %372, %531 %_4.i125 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %371, <8 x double> %530, <8 x double> %532, i32 noundef 4) #23 store <8 x double> %_4.i125, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %533 = fsub <8 x double> %453, %_4.i136 %534 = shufflevector <8 x double> %533, <8 x double> poison, <8 x i32> %535 = fmul <8 x double> %374, %534 %_4.i124 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %373, <8 x double> %533, <8 x double> %535, i32 noundef 4) #23 store <8 x double> %_4.i124, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %536 = fsub <8 x double> %454, %491 %537 = shufflevector <8 x double> %536, <8 x double> poison, <8 x i32> %538 = fmul <8 x double> %376, %537 %_4.i123 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %375, <8 x double> %536, <8 x double> %538, i32 noundef 4) #23 store <8 x double> %_4.i123, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %539 = fsub <8 x double> %455, %_4.i135 %540 = shufflevector <8 x double> %539, <8 x double> poison, <8 x i32> %541 = fmul <8 x double> %378, %540 %_4.i122 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %377, <8 x double> %539, <8 x double> %541, i32 noundef 4) #23 store <8 x double> %_4.i122, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %542 = fadd <8 x double> %456, %497 %543 = shufflevector <8 x double> %542, <8 x double> poison, <8 x i32> %544 = fmul <8 x double> %380, %543 %_4.i121 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %379, <8 x double> %542, <8 x double> %544, i32 noundef 4) #23 store <8 x double> %_4.i121, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %545 = fadd <8 x double> %_4.i134, %457 %546 = shufflevector <8 x double> %545, <8 x double> poison, <8 x i32> %547 = fmul <8 x double> %382, %546 %_4.i120 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %381, <8 x double> %545, <8 x double> %547, i32 noundef 4) #23 store <8 x double> %_4.i120, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %548 = fadd <8 x double> %458, %505 %549 = shufflevector <8 x double> %548, <8 x double> poison, <8 x i32> %550 = fmul <8 x double> %384, %549 %_4.i119 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %383, <8 x double> %548, <8 x double> %550, i32 noundef 4) #23 store <8 x double> %_4.i119, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %551 = fadd <8 x double> %_4.i133, %459 %552 = shufflevector <8 x double> %551, <8 x double> poison, <8 x i32> %553 = fmul <8 x double> %386, %552 %_4.i118 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %385, <8 x double> %551, <8 x double> %553, i32 noundef 4) #23 store <8 x double> %_4.i118, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !1660, !noalias !1666 %exitcond.not.i65 = icmp eq i64 %387, 4 br i1 %exitcond.not.i65, label %bb44.loopexit.i, label %bb98.i bb13.i.i.i.i: ; preds = %bb44.loopexit.i, %bb13.i.i.i.i %iter.i.i.i.i.sroa.22.01530 = phi i64 [ %554, %bb13.i.i.i.i ], [ 0, %bb44.loopexit.i ] %554 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.01530, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.22.01530 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.22.01530 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.22.01530 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.i.i.i.i.sroa.22.01530 %_43.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1644 %_44.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1644 %_45.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1644 %_46.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1644 %555 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %556 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %557 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %558 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %559 = bitcast <8 x double> %558 to <8 x i64> %560 = xor <8 x i64> %559, %561 = bitcast <8 x i64> %560 to <8 x double> %562 = shufflevector <8 x double> %561, <8 x double> poison, <8 x i32> %563 = fadd <8 x double> %555, %557 %564 = fsub <8 x double> %556, %562 %565 = fsub <8 x double> %555, %557 %566 = fadd <8 x double> %556, %562 store <8 x double> %563, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1644 store <8 x double> %564, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1644 store <8 x double> %565, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1644 store <8 x double> %566, ptr %_3.i.i.i.i, align 8, !noalias !1644 %exitcond1531.not = icmp eq i64 %554, 64 br i1 %exitcond1531.not, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h75e7cecac2188572E.exit", label %bb13.i.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h75e7cecac2188572E.exit": ; preds = %bb13.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1644 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb1277c03d7a14cb4E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1667) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1667, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1667, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1667, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1667, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1667, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1667, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1667, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1667, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1667 store i64 1024, ptr %n.i, align 8, !noalias !1667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1667 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1667 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1667 store ptr null, ptr %_16.i, align 8, !noalias !1667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1667 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1667 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1667 store ptr null, ptr %_24.i, align 8, !noalias !1667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1667 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1667 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1667 store ptr null, ptr %_32.i, align 8, !noalias !1667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1667 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1667 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hde61bb2171809abaE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1667 store ptr null, ptr %_40.i, align 8, !noalias !1667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hde61bb2171809abaE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1667 tail call void @llvm.experimental.noalias.scope.decl(metadata !1670) tail call void @llvm.experimental.noalias.scope.decl(metadata !1673) tail call void @llvm.experimental.noalias.scope.decl(metadata !1675) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hde61bb2171809abaE.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hde61bb2171809abaE.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1675, !noalias !1677 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1675, !noalias !1677 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1675, !noalias !1677 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1670, !noalias !1678 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1670, !noalias !1678 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1670, !noalias !1678 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1670, !noalias !1678 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = bitcast <8 x i64> %19 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fadd <8 x double> %14, %16 %23 = fsub <8 x double> %15, %21 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %21 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %22, <8 x double> %_4.i205, <8 x i32> %39 = shufflevector <8 x double> %22, <8 x double> %_4.i205, <8 x i32> %40 = shufflevector <8 x double> %_4.i204, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i204, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1673, !noalias !1679 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1673, !noalias !1679 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1673, !noalias !1679 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1673, !noalias !1679 %exitcond.not.i = icmp eq i64 %13, 64 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1680) tail call void @llvm.experimental.noalias.scope.decl(metadata !1683) tail call void @llvm.experimental.noalias.scope.decl(metadata !1685) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1685, !noalias !1687, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1685, !noalias !1687, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1685, !noalias !1687, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1685, !noalias !1687, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1685, !noalias !1687, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1685, !noalias !1687, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1680, !noalias !1688 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1680, !noalias !1688 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1680, !noalias !1688 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1680, !noalias !1688 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = bitcast <8 x i64> %75 to <8 x double> %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = fadd <8 x double> %70, %72 store <8 x double> %78, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1683, !noalias !1689 %79 = fsub <8 x double> %71, %77 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i208, ptr %62, align 8, !alias.scope !1683, !noalias !1689 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i207, ptr %61, align 8, !alias.scope !1683, !noalias !1689 %85 = fadd <8 x double> %71, %77 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i206, ptr %63, align 8, !alias.scope !1683, !noalias !1689 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 64 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1690) tail call void @llvm.experimental.noalias.scope.decl(metadata !1693) tail call void @llvm.experimental.noalias.scope.decl(metadata !1695) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %iter.sroa.60.0648.us.i37 = phi i64 [ %179, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !1695, !noalias !1697, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !1695, !noalias !1697, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !1695, !noalias !1697, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !1695, !noalias !1697, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !1695, !noalias !1697, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !1695, !noalias !1697, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !1690, !noalias !1698 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !1690, !noalias !1698 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1690, !noalias !1698 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !1690, !noalias !1698 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = bitcast <8 x i64> %112 to <8 x double> %114 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %115 = fadd <8 x double> %107, %109 store <8 x double> %115, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1693, !noalias !1699 %116 = fsub <8 x double> %108, %114 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i211 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i211, ptr %99, align 8, !alias.scope !1693, !noalias !1699 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i210 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i210, ptr %98, align 8, !alias.scope !1693, !noalias !1699 %122 = fadd <8 x double> %108, %114 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i209, ptr %100, align 8, !alias.scope !1693, !noalias !1699 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !1690, !noalias !1698 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !1690, !noalias !1698 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1690, !noalias !1698 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1690, !noalias !1698 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = bitcast <8 x i64> %130 to <8 x double> %132 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %133 = fadd <8 x double> %125, %127 store <8 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1693, !noalias !1699 %134 = fsub <8 x double> %126, %132 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i211.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i211.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1693, !noalias !1699 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i210.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i210.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1693, !noalias !1699 %140 = fadd <8 x double> %126, %132 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i209.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i209.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !1693, !noalias !1699 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !1690, !noalias !1698 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !1690, !noalias !1698 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1690, !noalias !1698 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1690, !noalias !1698 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %143, %145 store <8 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1693, !noalias !1699 %152 = fsub <8 x double> %144, %150 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i211.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i211.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1693, !noalias !1699 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i210.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i210.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1693, !noalias !1699 %158 = fadd <8 x double> %144, %150 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i209.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i209.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !1693, !noalias !1699 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !1690, !noalias !1698 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !1690, !noalias !1698 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1690, !noalias !1698 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1690, !noalias !1698 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = bitcast <8 x i64> %166 to <8 x double> %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = fadd <8 x double> %161, %163 store <8 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1693, !noalias !1699 %170 = fsub <8 x double> %162, %168 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i211.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i211.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1693, !noalias !1699 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i210.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i210.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1693, !noalias !1699 %176 = fadd <8 x double> %162, %168 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i209.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i209.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !1693, !noalias !1699 %179 = add nuw nsw i64 %iter.sroa.60.0648.us.i37, 1 %exitcond616.not = icmp eq i64 %179, 16 br i1 %exitcond616.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91, label %bb22.us.i36 _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91: ; preds = %bb22.us.i36 tail call void @llvm.experimental.noalias.scope.decl(metadata !1700) tail call void @llvm.experimental.noalias.scope.decl(metadata !1703) tail call void @llvm.experimental.noalias.scope.decl(metadata !1705) br label %bb22.us.i111 bb22.us.i111: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91, %bb36.bb20.loopexit_crit_edge.us.i165 %iter.sroa.60.0648.us.i112 = phi i64 [ %217, %bb36.bb20.loopexit_crit_edge.us.i165 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 = shl i64 %iter.sroa.60.0648.us.i112, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115 = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %data.i.i.i.i.i.i.i.i.i.i.us.i116 = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %data.i.i.i.i.i.i.i.i.us.i117 = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %start1.i.i.i.i.i.i.us.i118 = shl i64 %iter.sroa.60.0648.us.i112, 6 %data.i.i.i.i.i.i.us.i119 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i118 %180 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 1 %w1.0617.us.i120 = load <2 x float>, ptr %180, align 8, !alias.scope !1705, !noalias !1707, !noundef !3 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 1, i32 1 %w1.1618.us.i121 = load <2 x float>, ptr %181, align 8, !alias.scope !1705, !noalias !1707, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 2 %w2.0619.us.i122 = load <2 x float>, ptr %182, align 8, !alias.scope !1705, !noalias !1707, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 2, i32 1 %w2.1620.us.i123 = load <2 x float>, ptr %183, align 8, !alias.scope !1705, !noalias !1707, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 3 %w3.0621.us.i124 = load <2 x float>, ptr %184, align 8, !alias.scope !1705, !noalias !1707, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 3, i32 1 %w3.1622.us.i125 = load <2 x float>, ptr %185, align 8, !alias.scope !1705, !noalias !1707, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i126 = shufflevector <2 x float> %w1.0617.us.i120, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i127 = shufflevector <2 x float> %w1.1618.us.i121, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i128 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i126, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i127, <4 x i32> %186 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i128 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i130 = shufflevector <2 x float> %w2.0619.us.i122, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i131 = shufflevector <2 x float> %w2.1620.us.i123, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i132 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i130, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i131, <4 x i32> %187 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i132 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i134 = shufflevector <2 x float> %w3.0621.us.i124, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i135 = shufflevector <2 x float> %w3.1622.us.i125, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i136 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i134, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i135, <4 x i32> %188 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i136 to <2 x double> %189 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 32 %190 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 16 %191 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 48 %192 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> zeroinitializer %193 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> %194 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> zeroinitializer %195 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> %196 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> zeroinitializer %197 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> br label %bb38.us.i138 bb38.us.i138: ; preds = %bb38.us.i138, %bb22.us.i111 %iter5.sroa.50.0635.us.i139 = phi i64 [ 0, %bb22.us.i111 ], [ %198, %bb38.us.i138 ] %198 = add nuw nsw i64 %iter5.sroa.50.0635.us.i139, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114, i64 %iter5.sroa.50.0635.us.i139 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i116, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i117, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.us.i144 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.us.i145 = getelementptr inbounds %"fft_simd::c64x4", ptr %190, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.us.i146 = getelementptr inbounds %"fft_simd::c64x4", ptr %189, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.us.i147 = getelementptr inbounds %"fft_simd::c64x4", ptr %191, i64 %iter5.sroa.50.0635.us.i139 %a.sroa.0.0.copyload.us.i148 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140, align 8, !alias.scope !1700, !noalias !1708 %b.sroa.0.0.copyload.us.i149 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141, align 8, !alias.scope !1700, !noalias !1708 %c.sroa.0.0.copyload.us.i150 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142, align 8, !alias.scope !1700, !noalias !1708 %d.sroa.0.0.copyload.us.i151 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143, align 8, !alias.scope !1700, !noalias !1708 %199 = fadd <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %200 = fsub <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %201 = fadd <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %202 = fsub <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %203 = bitcast <8 x double> %202 to <8 x i64> %204 = xor <8 x i64> %203, %205 = bitcast <8 x i64> %204 to <8 x double> %206 = shufflevector <8 x double> %205, <8 x double> poison, <8 x i32> %207 = fadd <8 x double> %199, %201 store <8 x double> %207, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i144, align 8, !alias.scope !1703, !noalias !1709 %208 = fsub <8 x double> %200, %206 %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = fmul <8 x double> %193, %209 %_4.i214 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %192, <8 x double> %208, <8 x double> %210, i32 noundef 4) #23 store <8 x double> %_4.i214, ptr %_3.i.i.i.i.i.i.i.i.us.i145, align 8, !alias.scope !1703, !noalias !1709 %211 = fsub <8 x double> %199, %201 %212 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %195, %212 %_4.i213 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %211, <8 x double> %213, i32 noundef 4) #23 store <8 x double> %_4.i213, ptr %_3.i.i.i.i.i.i.us.i146, align 8, !alias.scope !1703, !noalias !1709 %214 = fadd <8 x double> %200, %206 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %197, %215 %_4.i212 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i212, ptr %_3.i.i.i.i.us.i147, align 8, !alias.scope !1703, !noalias !1709 %exitcond.not.i164 = icmp eq i64 %198, 16 br i1 %exitcond.not.i164, label %bb36.bb20.loopexit_crit_edge.us.i165, label %bb38.us.i138 bb36.bb20.loopexit_crit_edge.us.i165: ; preds = %bb38.us.i138 %217 = add nuw nsw i64 %iter.sroa.60.0648.us.i112, 1 %exitcond617.not = icmp eq i64 %217, 4 br i1 %exitcond617.not, label %bb13.i.i.i.i.i, label %bb22.us.i111 bb13.i.i.i.i.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i165, %bb13.i.i.i.i.i %iter.i.i.i.i.i.sroa.22.0615 = phi i64 [ %218, %bb13.i.i.i.i.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i165 ] %218 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.22.0615, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.i.sroa.22.0615 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.i.sroa.22.0615 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.i.sroa.22.0615 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.i.sroa.22.0615 %_43.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1667 %_44.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1667 %_45.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1667 %_46.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1667 %219 = fadd <8 x double> %_43.i.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.i.sroa.0.0.copyload %220 = fsub <8 x double> %_43.i.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.i.sroa.0.0.copyload %221 = fadd <8 x double> %_44.i.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.i.sroa.0.0.copyload %222 = fsub <8 x double> %_44.i.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.i.sroa.0.0.copyload %223 = bitcast <8 x double> %222 to <8 x i64> %224 = xor <8 x i64> %223, %225 = bitcast <8 x i64> %224 to <8 x double> %226 = shufflevector <8 x double> %225, <8 x double> poison, <8 x i32> %227 = fadd <8 x double> %219, %221 %228 = fsub <8 x double> %220, %226 %229 = fsub <8 x double> %219, %221 %230 = fadd <8 x double> %220, %226 store <8 x double> %227, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1667 store <8 x double> %228, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1667 store <8 x double> %229, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1667 store <8 x double> %230, ptr %_3.i.i.i.i, align 8, !noalias !1667 %exitcond618.not = icmp eq i64 %218, 64 br i1 %exitcond618.not, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit", label %bb13.i.i.i.i.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit": ; preds = %bb13.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1667 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb55e3d80b94e6f51E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1710) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1710, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1710, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1710, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1710, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1710, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1710, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1710, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1710, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1710 store i64 32, ptr %n.i, align 8, !noalias !1710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1710 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1710 %_12.i = icmp eq i64 %buf.1.i, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1710 store ptr null, ptr %_16.i, align 8, !noalias !1710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1710 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1710 %_20.i = icmp eq i64 %scratch.1.i, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1710 store ptr null, ptr %_24.i, align 8, !noalias !1710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1710 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1710 %_28.i = icmp eq i64 %w_init.1.i, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1710 store ptr null, ptr %_32.i, align 8, !noalias !1710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1710 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1710 %_36.i = icmp eq i64 %w.1.i, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he45b5cae52a104b8E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1710 store ptr null, ptr %_40.i, align 8, !noalias !1710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he45b5cae52a104b8E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1710 tail call void @llvm.experimental.noalias.scope.decl(metadata !1713) tail call void @llvm.experimental.noalias.scope.decl(metadata !1716) tail call void @llvm.experimental.noalias.scope.decl(metadata !1718) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !1718, !noalias !1720 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !1718, !noalias !1720 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %12, align 8, !alias.scope !1718, !noalias !1720 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !1713, !noalias !1721 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !1713, !noalias !1721 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !1713, !noalias !1721 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !1713, !noalias !1721 %13 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %14 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %16 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = bitcast <8 x double> %16 to <8 x i64> %18 = xor <8 x i64> %17, %19 = bitcast <8 x i64> %18 to <8 x double> %20 = shufflevector <8 x double> %19, <8 x double> poison, <8 x i32> %21 = fadd <8 x double> %13, %15 %22 = fsub <8 x double> %14, %20 %23 = shufflevector <8 x double> %22, <8 x double> poison, <8 x i32> %24 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = fmul <8 x double> %25, %23 %_4.i27 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %24, <8 x double> %22, <8 x double> %26, i32 noundef 4) #23 %27 = fsub <8 x double> %13, %15 %28 = shufflevector <8 x double> %27, <8 x double> poison, <8 x i32> %29 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = fmul <8 x double> %30, %28 %_4.i26 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %29, <8 x double> %27, <8 x double> %31, i32 noundef 4) #23 %32 = fadd <8 x double> %14, %20 %33 = shufflevector <8 x double> %32, <8 x double> poison, <8 x i32> %34 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = fmul <8 x double> %35, %33 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %34, <8 x double> %32, <8 x double> %36, i32 noundef 4) #23 %37 = shufflevector <8 x double> %21, <8 x double> %_4.i27, <8 x i32> %38 = shufflevector <8 x double> %21, <8 x double> %_4.i27, <8 x i32> %39 = shufflevector <8 x double> %_4.i26, <8 x double> %_4.i, <8 x i32> %40 = shufflevector <8 x double> %_4.i26, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> %42 = shufflevector <8 x double> %37, <8 x double> %39, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> store <8 x double> %41, ptr %scratch.0.i, align 8, !alias.scope !1716, !noalias !1722 %45 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %43, ptr %45, align 8, !alias.scope !1716, !noalias !1722 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %42, ptr %46, align 8, !alias.scope !1716, !noalias !1722 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %44, ptr %47, align 8, !alias.scope !1716, !noalias !1722 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %w1.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1718, !noalias !1720 %w2.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !alias.scope !1718, !noalias !1720 %w3.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.1, align 8, !alias.scope !1718, !noalias !1720 %a.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1713, !noalias !1721 %b.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1713, !noalias !1721 %c.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1713, !noalias !1721 %d.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1713, !noalias !1721 %48 = fadd <8 x double> %a.sroa.0.0.copyload.i.1, %c.sroa.0.0.copyload.i.1 %49 = fsub <8 x double> %a.sroa.0.0.copyload.i.1, %c.sroa.0.0.copyload.i.1 %50 = fadd <8 x double> %b.sroa.0.0.copyload.i.1, %d.sroa.0.0.copyload.i.1 %51 = fsub <8 x double> %b.sroa.0.0.copyload.i.1, %d.sroa.0.0.copyload.i.1 %52 = bitcast <8 x double> %51 to <8 x i64> %53 = xor <8 x i64> %52, %54 = bitcast <8 x i64> %53 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = fadd <8 x double> %48, %50 %57 = fsub <8 x double> %49, %55 %58 = shufflevector <8 x double> %57, <8 x double> poison, <8 x i32> %59 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %60 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %61 = fmul <8 x double> %60, %58 %_4.i27.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %59, <8 x double> %57, <8 x double> %61, i32 noundef 4) #23 %62 = fsub <8 x double> %48, %50 %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %66 = fmul <8 x double> %65, %63 %_4.i26.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %62, <8 x double> %66, i32 noundef 4) #23 %67 = fadd <8 x double> %49, %55 %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %71 = fmul <8 x double> %70, %68 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %69, <8 x double> %67, <8 x double> %71, i32 noundef 4) #23 %72 = shufflevector <8 x double> %56, <8 x double> %_4.i27.1, <8 x i32> %73 = shufflevector <8 x double> %56, <8 x double> %_4.i27.1, <8 x i32> %74 = shufflevector <8 x double> %_4.i26.1, <8 x double> %_4.i.1, <8 x i32> %75 = shufflevector <8 x double> %_4.i26.1, <8 x double> %_4.i.1, <8 x i32> %76 = shufflevector <8 x double> %72, <8 x double> %74, <8 x i32> %77 = shufflevector <8 x double> %72, <8 x double> %74, <8 x i32> %78 = shufflevector <8 x double> %73, <8 x double> %75, <8 x i32> %79 = shufflevector <8 x double> %73, <8 x double> %75, <8 x i32> store <8 x double> %76, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1716, !noalias !1722 %80 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 1 store <8 x double> %78, ptr %80, align 8, !alias.scope !1716, !noalias !1722 %81 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 2 store <8 x double> %77, ptr %81, align 8, !alias.scope !1716, !noalias !1722 %82 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 3 store <8 x double> %79, ptr %82, align 8, !alias.scope !1716, !noalias !1722 tail call void @llvm.experimental.noalias.scope.decl(metadata !1723) tail call void @llvm.experimental.noalias.scope.decl(metadata !1726) tail call void @llvm.experimental.noalias.scope.decl(metadata !1728) %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0617.us.i = load <2 x float>, ptr %83, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %84, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %85 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0619.us.i = load <2 x float>, ptr %85, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %86 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %86, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %87 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0621.us.i = load <2 x float>, ptr %87, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %88 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %88, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %89 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %90 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %91 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %92 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %93 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> zeroinitializer %94 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> %95 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> zeroinitializer %96 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> %97 = shufflevector <2 x double> %91, <2 x double> poison, <8 x i32> zeroinitializer %98 = shufflevector <2 x double> %91, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %scratch.0.i, align 8, !alias.scope !1723, !noalias !1731 %99 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %76 %100 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %76 %101 = fadd <8 x double> %42, %77 %102 = fsub <8 x double> %42, %77 %103 = bitcast <8 x double> %102 to <8 x i64> %104 = xor <8 x i64> %103, %105 = bitcast <8 x i64> %104 to <8 x double> %106 = shufflevector <8 x double> %105, <8 x double> poison, <8 x i32> %107 = fadd <8 x double> %99, %101 store <8 x double> %107, ptr %buf.0.i, align 8, !alias.scope !1726, !noalias !1732 %108 = fsub <8 x double> %100, %106 %109 = shufflevector <8 x double> %108, <8 x double> poison, <8 x i32> %110 = fmul <8 x double> %94, %109 %_4.i30 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %108, <8 x double> %110, i32 noundef 4) #23 store <8 x double> %_4.i30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1726, !noalias !1732 %111 = fsub <8 x double> %99, %101 %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fmul <8 x double> %96, %112 %_4.i29 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %111, <8 x double> %113, i32 noundef 4) #23 store <8 x double> %_4.i29, ptr %8, align 8, !alias.scope !1726, !noalias !1732 %114 = fadd <8 x double> %100, %106 %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fmul <8 x double> %98, %115 %_4.i28 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %97, <8 x double> %114, <8 x double> %116, i32 noundef 4) #23 store <8 x double> %_4.i28, ptr %92, align 8, !alias.scope !1726, !noalias !1732 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 1 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 1, i64 3 %117 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0617.us.i.1 = load <2 x float>, ptr %117, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %118 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1618.us.i.1 = load <2 x float>, ptr %118, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %119 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0619.us.i.1 = load <2 x float>, ptr %119, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %120 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1620.us.i.1 = load <2 x float>, ptr %120, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %121 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0621.us.i.1 = load <2 x float>, ptr %121, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %122 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1622.us.i.1 = load <2 x float>, ptr %122, align 8, !alias.scope !1728, !noalias !1730, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0617.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1618.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %123 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0619.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1620.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %124 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0621.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1622.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %125 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %128 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> zeroinitializer %129 = shufflevector <2 x double> %123, <2 x double> poison, <8 x i32> %130 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> zeroinitializer %131 = shufflevector <2 x double> %124, <2 x double> poison, <8 x i32> %132 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> zeroinitializer %133 = shufflevector <2 x double> %125, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %45, align 8, !alias.scope !1723, !noalias !1731 %b.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1723, !noalias !1731 %c.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1723, !noalias !1731 %d.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1723, !noalias !1731 %134 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %135 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %136 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %137 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %138 = bitcast <8 x double> %137 to <8 x i64> %139 = xor <8 x i64> %138, %140 = bitcast <8 x i64> %139 to <8 x double> %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fadd <8 x double> %134, %136 %143 = fsub <8 x double> %135, %141 %144 = shufflevector <8 x double> %143, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %129, %144 %_4.i30.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %128, <8 x double> %143, <8 x double> %145, i32 noundef 4) #23 %146 = fsub <8 x double> %134, %136 %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %148 = fmul <8 x double> %131, %147 %_4.i29.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %130, <8 x double> %146, <8 x double> %148, i32 noundef 4) #23 %149 = fadd <8 x double> %135, %141 %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %133, %150 %_4.i28.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %132, <8 x double> %149, <8 x double> %151, i32 noundef 4) #23 %152 = fadd <8 x double> %107, %142 %153 = fsub <8 x double> %107, %142 store <8 x double> %152, ptr %buf.0.i, align 8, !noalias !1710 store <8 x double> %153, ptr %7, align 8, !noalias !1710 %154 = fadd <8 x double> %_4.i30, %_4.i30.1 %155 = fsub <8 x double> %_4.i30, %_4.i30.1 store <8 x double> %154, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1710 store <8 x double> %155, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1710 %156 = fadd <8 x double> %_4.i29, %_4.i29.1 %157 = fsub <8 x double> %_4.i29, %_4.i29.1 store <8 x double> %156, ptr %8, align 8, !noalias !1710 store <8 x double> %157, ptr %126, align 8, !noalias !1710 %158 = fadd <8 x double> %_4.i28, %_4.i28.1 %159 = fsub <8 x double> %_4.i28, %_4.i28.1 store <8 x double> %158, ptr %92, align 8, !noalias !1710 store <8 x double> %159, ptr %127, align 8, !noalias !1710 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1710 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb949f96d3bd8822fE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1733) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1733, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1733, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1733, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1733, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1733, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1733, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1733, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1733, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1733 store i64 512, ptr %n.i, align 8, !noalias !1733 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1733 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1733 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1733 store ptr null, ptr %_16.i, align 8, !noalias !1733 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1733 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1733 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1733 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1733 store ptr null, ptr %_24.i, align 8, !noalias !1733 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1733 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1733 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1733 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1733 store ptr null, ptr %_32.i, align 8, !noalias !1733 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1733 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1733 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1733 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7d8143f35bc879a8E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1733 store ptr null, ptr %_40.i, align 8, !noalias !1733 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7d8143f35bc879a8E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1733 tail call void @llvm.experimental.noalias.scope.decl(metadata !1736) tail call void @llvm.experimental.noalias.scope.decl(metadata !1739) tail call void @llvm.experimental.noalias.scope.decl(metadata !1741) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 72 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 88 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 104 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 120 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 72 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 88 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 104 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 120 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7d8143f35bc879a8E.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %37, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7d8143f35bc879a8E.exit" ] %37 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1736, !noalias !1743 %38 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %40 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %42 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %44 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %46 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %48 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %50 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %52 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %54 = bitcast <8 x double> %41 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x double> %45 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x double> %49 to <8 x i64> %59 = xor <8 x i64> %58, %60 = bitcast <8 x double> %53 to <8 x i64> %61 = xor <8 x i64> %60, %62 = fadd <8 x double> %38, %40 %63 = bitcast <8 x i64> %55 to <8 x double> %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = fsub <8 x double> %39, %64 %66 = fsub <8 x double> %38, %40 %67 = fadd <8 x double> %39, %64 %68 = fadd <8 x double> %42, %44 %69 = bitcast <8 x i64> %57 to <8 x double> %70 = shufflevector <8 x double> %69, <8 x double> poison, <8 x i32> %71 = fsub <8 x double> %43, %70 %72 = fsub <8 x double> %42, %44 %73 = fadd <8 x double> %43, %70 %74 = fadd <8 x double> %46, %48 %75 = bitcast <8 x i64> %59 to <8 x double> %76 = shufflevector <8 x double> %75, <8 x double> poison, <8 x i32> %77 = fsub <8 x double> %47, %76 %78 = fsub <8 x double> %46, %48 %79 = fadd <8 x double> %47, %76 %80 = fadd <8 x double> %50, %52 %81 = bitcast <8 x i64> %61 to <8 x double> %82 = shufflevector <8 x double> %81, <8 x double> poison, <8 x i32> %83 = fsub <8 x double> %51, %82 %84 = fsub <8 x double> %50, %52 %85 = fadd <8 x double> %51, %82 %86 = bitcast <8 x double> %71 to <8 x i64> %87 = xor <8 x i64> %86, %88 = bitcast <8 x i64> %87 to <8 x double> %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = fadd <8 x double> %71, %89 %91 = fmul <8 x double> %90, %92 = bitcast <8 x double> %72 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x double> %73 to <8 x i64> %95 = xor <8 x i64> %94, %96 = bitcast <8 x i64> %95 to <8 x double> %97 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %98 = fadd <8 x double> %73, %97 %99 = fmul <8 x double> %98, %100 = fadd <8 x double> %62, %68 %101 = fadd <8 x double> %65, %91 %102 = bitcast <8 x i64> %93 to <8 x double> %103 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %104 = fsub <8 x double> %66, %103 %105 = fsub <8 x double> %67, %99 %106 = fsub <8 x double> %62, %68 %107 = fsub <8 x double> %65, %91 %108 = fadd <8 x double> %66, %103 %109 = fadd <8 x double> %67, %99 %110 = bitcast <8 x double> %83 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fadd <8 x double> %83, %113 %115 = fmul <8 x double> %114, %116 = bitcast <8 x double> %84 to <8 x i64> %117 = xor <8 x i64> %116, %118 = bitcast <8 x double> %85 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fadd <8 x double> %85, %121 %123 = fmul <8 x double> %122, %124 = fadd <8 x double> %74, %80 %125 = fadd <8 x double> %77, %115 %126 = bitcast <8 x i64> %117 to <8 x double> %127 = shufflevector <8 x double> %126, <8 x double> poison, <8 x i32> %128 = fsub <8 x double> %78, %127 %129 = fsub <8 x double> %79, %123 %130 = fsub <8 x double> %74, %80 %131 = fsub <8 x double> %77, %115 %132 = fadd <8 x double> %78, %127 %133 = fadd <8 x double> %79, %123 %134 = fmul <8 x double> %125, %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %_4.i87 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %125, <8 x double> %135, i32 noundef 4) #23 %136 = bitcast <8 x double> %128 to <8 x i64> %137 = xor <8 x i64> %136, %138 = bitcast <8 x i64> %137 to <8 x double> %139 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %140 = fadd <8 x double> %128, %139 %141 = fmul <8 x double> %140, %142 = fmul <8 x double> %129, %143 = shufflevector <8 x double> %142, <8 x double> poison, <8 x i32> %_4.i86 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %129, <8 x double> %143, i32 noundef 4) #23 %144 = bitcast <8 x double> %130 to <8 x i64> %145 = xor <8 x i64> %144, %146 = fmul <8 x double> %131, %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %_4.i85 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %131, <8 x double> %147, i32 noundef 4) #23 %148 = bitcast <8 x double> %132 to <8 x i64> %149 = xor <8 x i64> %148, %150 = bitcast <8 x i64> %149 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fadd <8 x double> %132, %151 %153 = fmul <8 x double> %152, %154 = fmul <8 x double> %133, %155 = shufflevector <8 x double> %154, <8 x double> poison, <8 x i32> %_4.i84 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %133, <8 x double> %155, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1741, !noalias !1744 %156 = fadd <8 x double> %100, %124 %157 = fadd <8 x double> %_4.i87, %101 %158 = shufflevector <8 x double> %157, <8 x double> poison, <8 x i32> %159 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = fmul <8 x double> %160, %158 %_4.i83 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %159, <8 x double> %157, <8 x double> %161, i32 noundef 4) #23 %162 = fadd <8 x double> %104, %141 %163 = shufflevector <8 x double> %162, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i82 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %162, <8 x double> %166, i32 noundef 4) #23 %167 = fadd <8 x double> %_4.i86, %105 %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = fmul <8 x double> %170, %168 %_4.i81 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %167, <8 x double> %171, i32 noundef 4) #23 %172 = bitcast <8 x i64> %145 to <8 x double> %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = fsub <8 x double> %106, %173 %175 = shufflevector <8 x double> %174, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %177, %175 %_4.i80 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %174, <8 x double> %178, i32 noundef 4) #23 %179 = fsub <8 x double> %107, %_4.i85 %180 = shufflevector <8 x double> %179, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %182, %180 %_4.i79 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %179, <8 x double> %183, i32 noundef 4) #23 %184 = fsub <8 x double> %108, %153 %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %187, %185 %_4.i78 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %186, <8 x double> %184, <8 x double> %188, i32 noundef 4) #23 %189 = fsub <8 x double> %109, %_4.i84 %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %193 = fmul <8 x double> %192, %190 %_4.i77 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %191, <8 x double> %189, <8 x double> %193, i32 noundef 4) #23 %194 = fsub <8 x double> %100, %124 %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %198 = fmul <8 x double> %195, %197 %_4.i76 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %194, <8 x double> %198, i32 noundef 4) #23 %199 = fsub <8 x double> %101, %_4.i87 %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %203 = fmul <8 x double> %202, %200 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %201, <8 x double> %199, <8 x double> %203, i32 noundef 4) #23 %204 = fsub <8 x double> %104, %141 %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %208 = fmul <8 x double> %207, %205 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %206, <8 x double> %204, <8 x double> %208, i32 noundef 4) #23 %209 = fsub <8 x double> %105, %_4.i86 %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %210, %212 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %211, <8 x double> %209, <8 x double> %213, i32 noundef 4) #23 %214 = fadd <8 x double> %106, %173 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %218 = fmul <8 x double> %215, %217 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %216, <8 x double> %214, <8 x double> %218, i32 noundef 4) #23 %219 = fadd <8 x double> %_4.i85, %107 %220 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %223 = fmul <8 x double> %220, %222 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %221, <8 x double> %219, <8 x double> %223, i32 noundef 4) #23 %224 = fadd <8 x double> %108, %153 %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %228 = fmul <8 x double> %225, %227 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %226, <8 x double> %224, <8 x double> %228, i32 noundef 4) #23 %229 = fadd <8 x double> %_4.i84, %109 %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %233 = fmul <8 x double> %230, %232 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %231, <8 x double> %229, <8 x double> %233, i32 noundef 4) #23 %234 = shufflevector <8 x double> %156, <8 x double> %_4.i83, <8 x i32> %235 = shufflevector <8 x double> %156, <8 x double> %_4.i83, <8 x i32> %236 = shufflevector <8 x double> %_4.i82, <8 x double> %_4.i81, <8 x i32> %237 = shufflevector <8 x double> %_4.i82, <8 x double> %_4.i81, <8 x i32> %238 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %241 = shufflevector <8 x double> %235, <8 x double> %237, <8 x i32> %242 = shufflevector <8 x double> %_4.i80, <8 x double> %_4.i79, <8 x i32> %243 = shufflevector <8 x double> %_4.i80, <8 x double> %_4.i79, <8 x i32> %244 = shufflevector <8 x double> %_4.i78, <8 x double> %_4.i77, <8 x i32> %245 = shufflevector <8 x double> %_4.i78, <8 x double> %_4.i77, <8 x i32> %246 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %249 = shufflevector <8 x double> %243, <8 x double> %245, <8 x i32> %250 = shufflevector <8 x double> %_4.i76, <8 x double> %_4.i75, <8 x i32> %251 = shufflevector <8 x double> %_4.i76, <8 x double> %_4.i75, <8 x i32> %252 = shufflevector <8 x double> %_4.i74, <8 x double> %_4.i73, <8 x i32> %253 = shufflevector <8 x double> %_4.i74, <8 x double> %_4.i73, <8 x i32> %254 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %257 = shufflevector <8 x double> %251, <8 x double> %253, <8 x i32> %258 = shufflevector <8 x double> %_4.i72, <8 x double> %_4.i71, <8 x i32> %259 = shufflevector <8 x double> %_4.i72, <8 x double> %_4.i71, <8 x i32> %260 = shufflevector <8 x double> %_4.i70, <8 x double> %_4.i, <8 x i32> %261 = shufflevector <8 x double> %_4.i70, <8 x double> %_4.i, <8 x i32> %262 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> %265 = shufflevector <8 x double> %259, <8 x double> %261, <8 x i32> store <8 x double> %238, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1739, !noalias !1745 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %246, ptr %266, align 8, !alias.scope !1739, !noalias !1745 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %254, ptr %267, align 8, !alias.scope !1739, !noalias !1745 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %262, ptr %268, align 8, !alias.scope !1739, !noalias !1745 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %240, ptr %269, align 8, !alias.scope !1739, !noalias !1745 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %248, ptr %270, align 8, !alias.scope !1739, !noalias !1745 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %256, ptr %271, align 8, !alias.scope !1739, !noalias !1745 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %264, ptr %272, align 8, !alias.scope !1739, !noalias !1745 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %239, ptr %273, align 8, !alias.scope !1739, !noalias !1745 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %247, ptr %274, align 8, !alias.scope !1739, !noalias !1745 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %255, ptr %275, align 8, !alias.scope !1739, !noalias !1745 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %263, ptr %276, align 8, !alias.scope !1739, !noalias !1745 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %241, ptr %277, align 8, !alias.scope !1739, !noalias !1745 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %249, ptr %278, align 8, !alias.scope !1739, !noalias !1745 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %257, ptr %279, align 8, !alias.scope !1739, !noalias !1745 %280 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %265, ptr %280, align 8, !alias.scope !1739, !noalias !1745 %exitcond.not.i = icmp eq i64 %37, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1746) tail call void @llvm.experimental.noalias.scope.decl(metadata !1749) tail call void @llvm.experimental.noalias.scope.decl(metadata !1751) %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 72 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 88 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 104 %295 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 120 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i br i1 %_2.i.i.i.i, label %bb46.i, label %bb9.i.i.i.i bb46.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb44.loopexit.i %_2.i.i.i.i = phi i1 [ false, %bb44.loopexit.i ], [ true, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ] %iter.sroa.192.05439.i = phi i64 [ 1, %bb44.loopexit.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.05439.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %295, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.05439.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.05439.i, 4 %296 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.05116.i = load <2 x float>, ptr %296, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %297 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.15117.i = load <2 x float>, ptr %297, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %298 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.05118.i = load <2 x float>, ptr %298, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %299 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.15119.i = load <2 x float>, ptr %299, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %300 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.05120.i = load <2 x float>, ptr %300, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %301 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.15121.i = load <2 x float>, ptr %301, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %302 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.05122.i = load <2 x float>, ptr %302, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %303 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.15123.i = load <2 x float>, ptr %303, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %304 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.05124.i = load <2 x float>, ptr %304, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %305 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.15125.i = load <2 x float>, ptr %305, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %306 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.05126.i = load <2 x float>, ptr %306, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %307 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.15127.i = load <2 x float>, ptr %307, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %308 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.05128.i = load <2 x float>, ptr %308, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %309 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.15129.i = load <2 x float>, ptr %309, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.05130.i = load <2 x float>, ptr %310, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %311 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.15131.i = load <2 x float>, ptr %311, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %312 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.05132.i = load <2 x float>, ptr %312, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.15133.i = load <2 x float>, ptr %313, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %314 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.05134.i = load <2 x float>, ptr %314, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %315 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.15135.i = load <2 x float>, ptr %315, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.05136.i = load <2 x float>, ptr %316, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %317 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.15137.i = load <2 x float>, ptr %317, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %318 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.05138.i = load <2 x float>, ptr %318, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.15139.i = load <2 x float>, ptr %319, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %320 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.05140.i = load <2 x float>, ptr %320, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %321 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.15141.i = load <2 x float>, ptr %321, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.05142.i = load <2 x float>, ptr %322, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %323 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.15143.i = load <2 x float>, ptr %323, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %324 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.05144.i = load <2 x float>, ptr %324, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.15145.i = load <2 x float>, ptr %325, align 8, !alias.scope !1751, !noalias !1753, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.05116.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.15117.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %326 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.05118.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.15119.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %327 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.05120.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.15121.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %328 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.05122.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.15123.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %329 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.05124.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.15125.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %330 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.05126.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.15127.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %331 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.05128.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.15129.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %332 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.05130.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.15131.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %333 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.05132.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.15133.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %334 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.05134.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.15135.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %335 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.05136.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.15137.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %336 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.05138.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.15139.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %337 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.05140.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.15141.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %338 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.05142.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.15143.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %339 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.05144.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.15145.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %340 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %341 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %342 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %343 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %344 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %345 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %346 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %347 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %348 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %349 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %350 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %351 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %352 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %353 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %354 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %355 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %356 = shufflevector <2 x double> %326, <2 x double> poison, <8 x i32> zeroinitializer %357 = shufflevector <2 x double> %326, <2 x double> poison, <8 x i32> %358 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> zeroinitializer %359 = shufflevector <2 x double> %327, <2 x double> poison, <8 x i32> %360 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> zeroinitializer %361 = shufflevector <2 x double> %328, <2 x double> poison, <8 x i32> %362 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> zeroinitializer %363 = shufflevector <2 x double> %329, <2 x double> poison, <8 x i32> %364 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> zeroinitializer %365 = shufflevector <2 x double> %330, <2 x double> poison, <8 x i32> %366 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> zeroinitializer %367 = shufflevector <2 x double> %331, <2 x double> poison, <8 x i32> %368 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> zeroinitializer %369 = shufflevector <2 x double> %332, <2 x double> poison, <8 x i32> %370 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> zeroinitializer %371 = shufflevector <2 x double> %333, <2 x double> poison, <8 x i32> %372 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> zeroinitializer %373 = shufflevector <2 x double> %334, <2 x double> poison, <8 x i32> %374 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> zeroinitializer %375 = shufflevector <2 x double> %335, <2 x double> poison, <8 x i32> %376 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> zeroinitializer %377 = shufflevector <2 x double> %336, <2 x double> poison, <8 x i32> %378 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> zeroinitializer %379 = shufflevector <2 x double> %337, <2 x double> poison, <8 x i32> %380 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> zeroinitializer %381 = shufflevector <2 x double> %338, <2 x double> poison, <8 x i32> %382 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> zeroinitializer %383 = shufflevector <2 x double> %339, <2 x double> poison, <8 x i32> %384 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> zeroinitializer %385 = shufflevector <2 x double> %340, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05250.i = phi i64 [ %386, %bb98.i ], [ 0, %bb46.i ] %386 = add nuw nsw i64 %iter10.sroa.218.05250.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i45 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i46 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05250.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %344, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %343, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %345, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %342, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %347, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %346, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %348, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %341, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %351, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %350, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %352, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %349, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %354, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %353, i64 %iter10.sroa.218.05250.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %355, i64 %iter10.sroa.218.05250.i %x0.sroa.0.0.copyload.i47 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32, align 8, !alias.scope !1746, !noalias !1754 %x1.sroa.0.0.copyload.i48 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1746, !noalias !1754 %x2.sroa.0.0.copyload.i49 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33, align 8, !alias.scope !1746, !noalias !1754 %x3.sroa.0.0.copyload.i50 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34, align 8, !alias.scope !1746, !noalias !1754 %x4.sroa.0.0.copyload.i51 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35, align 8, !alias.scope !1746, !noalias !1754 %x5.sroa.0.0.copyload.i52 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36, align 8, !alias.scope !1746, !noalias !1754 %x6.sroa.0.0.copyload.i53 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37, align 8, !alias.scope !1746, !noalias !1754 %x7.sroa.0.0.copyload.i54 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38, align 8, !alias.scope !1746, !noalias !1754 %x8.sroa.0.0.copyload.i55 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39, align 8, !alias.scope !1746, !noalias !1754 %x9.sroa.0.0.copyload.i56 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40, align 8, !alias.scope !1746, !noalias !1754 %xa.sroa.0.0.copyload.i57 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41, align 8, !alias.scope !1746, !noalias !1754 %xb.sroa.0.0.copyload.i58 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42, align 8, !alias.scope !1746, !noalias !1754 %xc.sroa.0.0.copyload.i59 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43, align 8, !alias.scope !1746, !noalias !1754 %xd.sroa.0.0.copyload.i60 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i44, align 8, !alias.scope !1746, !noalias !1754 %xe.sroa.0.0.copyload.i61 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i45, align 8, !alias.scope !1746, !noalias !1754 %xf.sroa.0.0.copyload.i62 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i46, align 8, !alias.scope !1746, !noalias !1754 %387 = fadd <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %388 = fsub <8 x double> %x0.sroa.0.0.copyload.i47, %x8.sroa.0.0.copyload.i55 %389 = fadd <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %390 = fsub <8 x double> %x4.sroa.0.0.copyload.i51, %xc.sroa.0.0.copyload.i59 %391 = fadd <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %392 = fsub <8 x double> %x2.sroa.0.0.copyload.i49, %xa.sroa.0.0.copyload.i57 %393 = fadd <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %394 = fsub <8 x double> %x6.sroa.0.0.copyload.i53, %xe.sroa.0.0.copyload.i61 %395 = fadd <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %396 = fsub <8 x double> %x1.sroa.0.0.copyload.i48, %x9.sroa.0.0.copyload.i56 %397 = fadd <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %398 = fsub <8 x double> %x5.sroa.0.0.copyload.i52, %xd.sroa.0.0.copyload.i60 %399 = fadd <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %400 = fsub <8 x double> %x3.sroa.0.0.copyload.i50, %xb.sroa.0.0.copyload.i58 %401 = fadd <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %402 = fsub <8 x double> %x7.sroa.0.0.copyload.i54, %xf.sroa.0.0.copyload.i62 %403 = bitcast <8 x double> %390 to <8 x i64> %404 = xor <8 x i64> %403, %405 = bitcast <8 x double> %394 to <8 x i64> %406 = xor <8 x i64> %405, %407 = bitcast <8 x double> %398 to <8 x i64> %408 = xor <8 x i64> %407, %409 = bitcast <8 x double> %402 to <8 x i64> %410 = xor <8 x i64> %409, %411 = fadd <8 x double> %387, %389 %412 = bitcast <8 x i64> %404 to <8 x double> %413 = shufflevector <8 x double> %412, <8 x double> poison, <8 x i32> %414 = fsub <8 x double> %388, %413 %415 = fsub <8 x double> %387, %389 %416 = fadd <8 x double> %388, %413 %417 = fadd <8 x double> %391, %393 %418 = bitcast <8 x i64> %406 to <8 x double> %419 = shufflevector <8 x double> %418, <8 x double> poison, <8 x i32> %420 = fsub <8 x double> %392, %419 %421 = fsub <8 x double> %391, %393 %422 = fadd <8 x double> %392, %419 %423 = fadd <8 x double> %395, %397 %424 = bitcast <8 x i64> %408 to <8 x double> %425 = shufflevector <8 x double> %424, <8 x double> poison, <8 x i32> %426 = fsub <8 x double> %396, %425 %427 = fsub <8 x double> %395, %397 %428 = fadd <8 x double> %396, %425 %429 = fadd <8 x double> %399, %401 %430 = bitcast <8 x i64> %410 to <8 x double> %431 = shufflevector <8 x double> %430, <8 x double> poison, <8 x i32> %432 = fsub <8 x double> %400, %431 %433 = fsub <8 x double> %399, %401 %434 = fadd <8 x double> %400, %431 %435 = bitcast <8 x double> %420 to <8 x i64> %436 = xor <8 x i64> %435, %437 = bitcast <8 x i64> %436 to <8 x double> %438 = shufflevector <8 x double> %437, <8 x double> poison, <8 x i32> %439 = fadd <8 x double> %420, %438 %440 = fmul <8 x double> %439, %441 = bitcast <8 x double> %421 to <8 x i64> %442 = xor <8 x i64> %441, %443 = bitcast <8 x double> %422 to <8 x i64> %444 = xor <8 x i64> %443, %445 = bitcast <8 x i64> %444 to <8 x double> %446 = shufflevector <8 x double> %445, <8 x double> poison, <8 x i32> %447 = fadd <8 x double> %422, %446 %448 = fmul <8 x double> %447, %449 = fadd <8 x double> %411, %417 %450 = fadd <8 x double> %414, %440 %451 = bitcast <8 x i64> %442 to <8 x double> %452 = shufflevector <8 x double> %451, <8 x double> poison, <8 x i32> %453 = fsub <8 x double> %415, %452 %454 = fsub <8 x double> %416, %448 %455 = fsub <8 x double> %411, %417 %456 = fsub <8 x double> %414, %440 %457 = fadd <8 x double> %415, %452 %458 = fadd <8 x double> %416, %448 %459 = bitcast <8 x double> %432 to <8 x i64> %460 = xor <8 x i64> %459, %461 = bitcast <8 x i64> %460 to <8 x double> %462 = shufflevector <8 x double> %461, <8 x double> poison, <8 x i32> %463 = fadd <8 x double> %432, %462 %464 = fmul <8 x double> %463, %465 = bitcast <8 x double> %433 to <8 x i64> %466 = xor <8 x i64> %465, %467 = bitcast <8 x double> %434 to <8 x i64> %468 = xor <8 x i64> %467, %469 = bitcast <8 x i64> %468 to <8 x double> %470 = shufflevector <8 x double> %469, <8 x double> poison, <8 x i32> %471 = fadd <8 x double> %434, %470 %472 = fmul <8 x double> %471, %473 = fadd <8 x double> %423, %429 %474 = fadd <8 x double> %426, %464 %475 = bitcast <8 x i64> %466 to <8 x double> %476 = shufflevector <8 x double> %475, <8 x double> poison, <8 x i32> %477 = fsub <8 x double> %427, %476 %478 = fsub <8 x double> %428, %472 %479 = fsub <8 x double> %423, %429 %480 = fsub <8 x double> %426, %464 %481 = fadd <8 x double> %427, %476 %482 = fadd <8 x double> %428, %472 %483 = fmul <8 x double> %474, %484 = shufflevector <8 x double> %483, <8 x double> poison, <8 x i32> %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %474, <8 x double> %484, i32 noundef 4) #23 %485 = bitcast <8 x double> %477 to <8 x i64> %486 = xor <8 x i64> %485, %487 = bitcast <8 x i64> %486 to <8 x double> %488 = shufflevector <8 x double> %487, <8 x double> poison, <8 x i32> %489 = fadd <8 x double> %477, %488 %490 = fmul <8 x double> %489, %491 = fmul <8 x double> %478, %492 = shufflevector <8 x double> %491, <8 x double> poison, <8 x i32> %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %478, <8 x double> %492, i32 noundef 4) #23 %493 = bitcast <8 x double> %479 to <8 x i64> %494 = xor <8 x i64> %493, %495 = fmul <8 x double> %480, %496 = shufflevector <8 x double> %495, <8 x double> poison, <8 x i32> %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %480, <8 x double> %496, i32 noundef 4) #23 %497 = bitcast <8 x double> %481 to <8 x i64> %498 = xor <8 x i64> %497, %499 = bitcast <8 x i64> %498 to <8 x double> %500 = shufflevector <8 x double> %499, <8 x double> poison, <8 x i32> %501 = fadd <8 x double> %481, %500 %502 = fmul <8 x double> %501, %503 = fmul <8 x double> %482, %504 = shufflevector <8 x double> %503, <8 x double> poison, <8 x i32> %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %482, <8 x double> %504, i32 noundef 4) #23 %505 = fadd <8 x double> %449, %473 store <8 x double> %505, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %506 = fadd <8 x double> %_4.i106, %450 %507 = shufflevector <8 x double> %506, <8 x double> poison, <8 x i32> %508 = fmul <8 x double> %357, %507 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %356, <8 x double> %506, <8 x double> %508, i32 noundef 4) #23 store <8 x double> %_4.i102, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %509 = fadd <8 x double> %453, %490 %510 = shufflevector <8 x double> %509, <8 x double> poison, <8 x i32> %511 = fmul <8 x double> %359, %510 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %358, <8 x double> %509, <8 x double> %511, i32 noundef 4) #23 store <8 x double> %_4.i101, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %512 = fadd <8 x double> %_4.i105, %454 %513 = shufflevector <8 x double> %512, <8 x double> poison, <8 x i32> %514 = fmul <8 x double> %361, %513 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %360, <8 x double> %512, <8 x double> %514, i32 noundef 4) #23 store <8 x double> %_4.i100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %515 = bitcast <8 x i64> %494 to <8 x double> %516 = shufflevector <8 x double> %515, <8 x double> poison, <8 x i32> %517 = fsub <8 x double> %455, %516 %518 = shufflevector <8 x double> %517, <8 x double> poison, <8 x i32> %519 = fmul <8 x double> %363, %518 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %362, <8 x double> %517, <8 x double> %519, i32 noundef 4) #23 store <8 x double> %_4.i99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %520 = fsub <8 x double> %456, %_4.i104 %521 = shufflevector <8 x double> %520, <8 x double> poison, <8 x i32> %522 = fmul <8 x double> %365, %521 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %364, <8 x double> %520, <8 x double> %522, i32 noundef 4) #23 store <8 x double> %_4.i98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %523 = fsub <8 x double> %457, %502 %524 = shufflevector <8 x double> %523, <8 x double> poison, <8 x i32> %525 = fmul <8 x double> %367, %524 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %366, <8 x double> %523, <8 x double> %525, i32 noundef 4) #23 store <8 x double> %_4.i97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %526 = fsub <8 x double> %458, %_4.i103 %527 = shufflevector <8 x double> %526, <8 x double> poison, <8 x i32> %528 = fmul <8 x double> %369, %527 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %368, <8 x double> %526, <8 x double> %528, i32 noundef 4) #23 store <8 x double> %_4.i96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %529 = fsub <8 x double> %449, %473 %530 = shufflevector <8 x double> %529, <8 x double> poison, <8 x i32> %531 = fmul <8 x double> %371, %530 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %370, <8 x double> %529, <8 x double> %531, i32 noundef 4) #23 store <8 x double> %_4.i95, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %532 = fsub <8 x double> %450, %_4.i106 %533 = shufflevector <8 x double> %532, <8 x double> poison, <8 x i32> %534 = fmul <8 x double> %373, %533 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %372, <8 x double> %532, <8 x double> %534, i32 noundef 4) #23 store <8 x double> %_4.i94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %535 = fsub <8 x double> %453, %490 %536 = shufflevector <8 x double> %535, <8 x double> poison, <8 x i32> %537 = fmul <8 x double> %375, %536 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %374, <8 x double> %535, <8 x double> %537, i32 noundef 4) #23 store <8 x double> %_4.i93, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %538 = fsub <8 x double> %454, %_4.i105 %539 = shufflevector <8 x double> %538, <8 x double> poison, <8 x i32> %540 = fmul <8 x double> %377, %539 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %376, <8 x double> %538, <8 x double> %540, i32 noundef 4) #23 store <8 x double> %_4.i92, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %541 = fadd <8 x double> %455, %516 %542 = shufflevector <8 x double> %541, <8 x double> poison, <8 x i32> %543 = fmul <8 x double> %379, %542 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %378, <8 x double> %541, <8 x double> %543, i32 noundef 4) #23 store <8 x double> %_4.i91, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %544 = fadd <8 x double> %_4.i104, %456 %545 = shufflevector <8 x double> %544, <8 x double> poison, <8 x i32> %546 = fmul <8 x double> %381, %545 %_4.i90 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %380, <8 x double> %544, <8 x double> %546, i32 noundef 4) #23 store <8 x double> %_4.i90, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %547 = fadd <8 x double> %457, %502 %548 = shufflevector <8 x double> %547, <8 x double> poison, <8 x i32> %549 = fmul <8 x double> %383, %548 %_4.i89 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %382, <8 x double> %547, <8 x double> %549, i32 noundef 4) #23 store <8 x double> %_4.i89, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %550 = fadd <8 x double> %_4.i103, %458 %551 = shufflevector <8 x double> %550, <8 x double> poison, <8 x i32> %552 = fmul <8 x double> %385, %551 %_4.i88 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %384, <8 x double> %550, <8 x double> %552, i32 noundef 4) #23 store <8 x double> %_4.i88, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !1749, !noalias !1755 %exitcond.not.i64 = icmp eq i64 %386, 4 br i1 %exitcond.not.i64, label %bb44.loopexit.i, label %bb98.i bb9.i.i.i.i: ; preds = %bb44.loopexit.i, %bb9.i.i.i.i %iter.i.i.i.i.sroa.8.01445 = phi i64 [ %556, %bb9.i.i.i.i ], [ 0, %bb44.loopexit.i ] %553 = or disjoint i64 %iter.i.i.i.i.sroa.8.01445, 1 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.8.01445 %_3.i2.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.8.01445 %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1733 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i, align 8, !noalias !1733 %554 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %555 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %554, ptr %_3.i.i.i.i, align 8, !noalias !1733 store <8 x double> %555, ptr %_3.i2.i.i.i, align 8, !noalias !1733 %556 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.01445, 2 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %553 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %553 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1733 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1733 %557 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %558 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %557, ptr %_3.i.i.i.i.1, align 8, !noalias !1733 store <8 x double> %558, ptr %_3.i2.i.i.i.1, align 8, !noalias !1733 %exitcond.not.1 = icmp eq i64 %556, 64 br i1 %exitcond.not.1, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb1e3e72167e4011dE.exit", label %bb9.i.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb1e3e72167e4011dE.exit": ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1733 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb977ca36041f1215E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1756) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1756, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1756, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1756, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1756, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1756, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1756, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1756, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1756 store i64 128, ptr %n.i, align 8, !noalias !1756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1756 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1756 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1756 store ptr null, ptr %_16.i, align 8, !noalias !1756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1756 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1756 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1756 store ptr null, ptr %_24.i, align 8, !noalias !1756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1756 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1756 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1756 store ptr null, ptr %_32.i, align 8, !noalias !1756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1756 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1756 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdca88b7098fddad9E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1756 store ptr null, ptr %_40.i, align 8, !noalias !1756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdca88b7098fddad9E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1756 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 br label %bb38.i.i.i bb38.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdca88b7098fddad9E.exit", %bb38.i.i.i %iter14.i.i.i.sroa.106.01220 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdca88b7098fddad9E.exit" ], [ %20, %bb38.i.i.i ] %20 = add nuw nsw i64 %iter14.i.i.i.sroa.106.01220, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i32.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i35.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i38.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter14.i.i.i.sroa.106.01220 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i, align 8, !noalias !1759 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i, align 8, !noalias !1759 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i, align 8, !noalias !1759 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i, align 8, !noalias !1759 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i, align 8, !noalias !1759 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i, align 8, !noalias !1759 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i, align 8, !noalias !1759 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i, align 8, !noalias !1759 %21 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %22 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %23 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %24 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %25 = bitcast <8 x double> %24 to <8 x i64> %26 = xor <8 x i64> %25, %27 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %28 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %29 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %30 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %31 = bitcast <8 x double> %30 to <8 x i64> %32 = xor <8 x i64> %31, %33 = fadd <8 x double> %21, %23 %34 = bitcast <8 x i64> %26 to <8 x double> %35 = shufflevector <8 x double> %34, <8 x double> poison, <8 x i32> %36 = fsub <8 x double> %22, %35 %37 = fsub <8 x double> %21, %23 %38 = fadd <8 x double> %22, %35 %39 = fadd <8 x double> %27, %29 %40 = bitcast <8 x i64> %32 to <8 x double> %41 = shufflevector <8 x double> %40, <8 x double> poison, <8 x i32> %42 = fsub <8 x double> %28, %41 %43 = bitcast <8 x double> %42 to <8 x i64> %44 = xor <8 x i64> %43, %45 = bitcast <8 x i64> %44 to <8 x double> %46 = shufflevector <8 x double> %45, <8 x double> poison, <8 x i32> %47 = fadd <8 x double> %42, %46 %48 = fmul <8 x double> %47, %49 = fsub <8 x double> %27, %29 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = fadd <8 x double> %28, %41 %53 = bitcast <8 x double> %52 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x i64> %54 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = fadd <8 x double> %52, %56 %58 = fmul <8 x double> %57, %59 = fadd <8 x double> %33, %39 %60 = fadd <8 x double> %36, %48 %61 = bitcast <8 x i64> %51 to <8 x double> %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = fsub <8 x double> %37, %62 %64 = fsub <8 x double> %38, %58 %65 = fsub <8 x double> %33, %39 %66 = fsub <8 x double> %36, %48 %67 = fadd <8 x double> %37, %62 %68 = fadd <8 x double> %38, %58 store <8 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %60, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %65, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %66, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %67, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1759 store <8 x double> %68, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1759 %exitcond.not = icmp eq i64 %20, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit", label %bb38.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit": ; preds = %bb38.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1763) tail call void @llvm.experimental.noalias.scope.decl(metadata !1766) tail call void @llvm.experimental.noalias.scope.decl(metadata !1768) %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %76 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %77 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %78 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %79 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %80 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %81 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %82 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %83 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %84 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 18 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 22 %89 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %90 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 26 %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 30 br label %bb39.i bb39.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit", %bb39.i %iter.sroa.218.04494.i = phi i64 [ %92, %bb39.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE.exit" ] %92 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %69, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %70, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %71, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %72, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %73, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %74, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %75, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %76, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %80, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %79, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %81, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %78, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %83, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %82, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %84, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %77, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %87, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %86, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %88, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %85, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %90, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %89, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1768, !noalias !1770 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1766, !noalias !1771 %93 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %93, align 8, !alias.scope !1766, !noalias !1771 %94 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %94, align 8, !alias.scope !1766, !noalias !1771 %95 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %95, align 8, !alias.scope !1766, !noalias !1771 %96 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %96, align 8, !alias.scope !1766, !noalias !1771 %97 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %97, align 8, !alias.scope !1766, !noalias !1771 %98 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %98, align 8, !alias.scope !1766, !noalias !1771 %99 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %99, align 8, !alias.scope !1766, !noalias !1771 %100 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %100, align 8, !alias.scope !1766, !noalias !1771 %101 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %101, align 8, !alias.scope !1766, !noalias !1771 %102 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %102, align 8, !alias.scope !1766, !noalias !1771 %103 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %103, align 8, !alias.scope !1766, !noalias !1771 %104 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %104, align 8, !alias.scope !1766, !noalias !1771 %105 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %105, align 8, !alias.scope !1766, !noalias !1771 %106 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %106, align 8, !alias.scope !1766, !noalias !1771 %107 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %107, align 8, !alias.scope !1766, !noalias !1771 %108 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %109 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %110 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %111 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %112 = shufflevector <8 x double> %108, <8 x double> %110, <8 x i32> %113 = shufflevector <8 x double> %108, <8 x double> %110, <8 x i32> %114 = shufflevector <8 x double> %109, <8 x double> %111, <8 x i32> %115 = shufflevector <8 x double> %109, <8 x double> %111, <8 x i32> %116 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %117 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %118 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %119 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %120 = shufflevector <8 x double> %116, <8 x double> %118, <8 x i32> %121 = shufflevector <8 x double> %116, <8 x double> %118, <8 x i32> %122 = shufflevector <8 x double> %117, <8 x double> %119, <8 x i32> %123 = shufflevector <8 x double> %117, <8 x double> %119, <8 x i32> %124 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %125 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %126 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %127 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %128 = shufflevector <8 x double> %124, <8 x double> %126, <8 x i32> %129 = shufflevector <8 x double> %124, <8 x double> %126, <8 x i32> %130 = shufflevector <8 x double> %125, <8 x double> %127, <8 x i32> %131 = shufflevector <8 x double> %125, <8 x double> %127, <8 x i32> %132 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %133 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %134 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %135 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %136 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %137 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %138 = shufflevector <8 x double> %133, <8 x double> %135, <8 x i32> %139 = shufflevector <8 x double> %133, <8 x double> %135, <8 x i32> %140 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %141 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %142 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %142, %140 %_4.i241 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %141, <8 x double> %114, <8 x double> %143, i32 noundef 4) #23 %144 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %145 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %146 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %146, %144 %_4.i240 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %145, <8 x double> %113, <8 x double> %147, i32 noundef 4) #23 %148 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %149 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %150 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %150, %148 %_4.i239 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %149, <8 x double> %115, <8 x double> %151, i32 noundef 4) #23 %152 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %153 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %154 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %155 = fmul <8 x double> %154, %152 %_4.i238 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %153, <8 x double> %120, <8 x double> %155, i32 noundef 4) #23 %156 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %158, %156 %_4.i237 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %157, <8 x double> %122, <8 x double> %159, i32 noundef 4) #23 %160 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %163 = fmul <8 x double> %162, %160 %_4.i236 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %161, <8 x double> %121, <8 x double> %163, i32 noundef 4) #23 %164 = shufflevector <8 x double> %123, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %167 = fmul <8 x double> %166, %164 %_4.i235 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %165, <8 x double> %123, <8 x double> %167, i32 noundef 4) #23 %168 = shufflevector <8 x double> %128, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = fmul <8 x double> %170, %168 %_4.i234 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %128, <8 x double> %171, i32 noundef 4) #23 %172 = shufflevector <8 x double> %130, <8 x double> poison, <8 x i32> %173 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %174 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %174, %172 %_4.i233 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %173, <8 x double> %130, <8 x double> %175, i32 noundef 4) #23 %176 = shufflevector <8 x double> %129, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %179 = fmul <8 x double> %178, %176 %_4.i232 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %177, <8 x double> %129, <8 x double> %179, i32 noundef 4) #23 %180 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %182, %180 %_4.i231 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %131, <8 x double> %183, i32 noundef 4) #23 %184 = shufflevector <8 x double> %136, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %186, %184 %_4.i230 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %136, <8 x double> %187, i32 noundef 4) #23 %188 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %189 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = fmul <8 x double> %190, %188 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %189, <8 x double> %138, <8 x double> %191, i32 noundef 4) #23 %192 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %193 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %194 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %195 = fmul <8 x double> %194, %192 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %193, <8 x double> %137, <8 x double> %195, i32 noundef 4) #23 %196 = shufflevector <8 x double> %139, <8 x double> poison, <8 x i32> %197 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %198 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %199 = fmul <8 x double> %198, %196 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %197, <8 x double> %139, <8 x double> %199, i32 noundef 4) #23 %200 = fadd <8 x double> %112, %_4.i234 %201 = fsub <8 x double> %112, %_4.i234 %202 = fadd <8 x double> %_4.i238, %_4.i230 %203 = fsub <8 x double> %_4.i238, %_4.i230 %204 = fadd <8 x double> %_4.i240, %_4.i232 %205 = fsub <8 x double> %_4.i240, %_4.i232 %206 = fadd <8 x double> %_4.i236, %_4.i228 %207 = fsub <8 x double> %_4.i236, %_4.i228 %208 = fadd <8 x double> %_4.i241, %_4.i233 %209 = fsub <8 x double> %_4.i241, %_4.i233 %210 = fadd <8 x double> %_4.i237, %_4.i229 %211 = fsub <8 x double> %_4.i237, %_4.i229 %212 = fadd <8 x double> %_4.i239, %_4.i231 %213 = fsub <8 x double> %_4.i239, %_4.i231 %214 = fadd <8 x double> %_4.i235, %_4.i227 %215 = fsub <8 x double> %_4.i235, %_4.i227 %216 = bitcast <8 x double> %203 to <8 x i64> %217 = xor <8 x i64> %216, %218 = bitcast <8 x double> %207 to <8 x i64> %219 = xor <8 x i64> %218, %220 = bitcast <8 x double> %211 to <8 x i64> %221 = xor <8 x i64> %220, %222 = bitcast <8 x double> %215 to <8 x i64> %223 = xor <8 x i64> %222, %224 = fadd <8 x double> %200, %202 %225 = bitcast <8 x i64> %217 to <8 x double> %226 = shufflevector <8 x double> %225, <8 x double> poison, <8 x i32> %227 = fsub <8 x double> %201, %226 %228 = fsub <8 x double> %200, %202 %229 = fadd <8 x double> %201, %226 %230 = fadd <8 x double> %204, %206 %231 = bitcast <8 x i64> %219 to <8 x double> %232 = shufflevector <8 x double> %231, <8 x double> poison, <8 x i32> %233 = fsub <8 x double> %205, %232 %234 = fsub <8 x double> %204, %206 %235 = fadd <8 x double> %205, %232 %236 = fadd <8 x double> %208, %210 %237 = bitcast <8 x i64> %221 to <8 x double> %238 = shufflevector <8 x double> %237, <8 x double> poison, <8 x i32> %239 = fsub <8 x double> %209, %238 %240 = fsub <8 x double> %208, %210 %241 = fadd <8 x double> %209, %238 %242 = fadd <8 x double> %212, %214 %243 = bitcast <8 x i64> %223 to <8 x double> %244 = shufflevector <8 x double> %243, <8 x double> poison, <8 x i32> %245 = fsub <8 x double> %213, %244 %246 = fsub <8 x double> %212, %214 %247 = fadd <8 x double> %213, %244 %248 = bitcast <8 x double> %233 to <8 x i64> %249 = xor <8 x i64> %248, %250 = bitcast <8 x i64> %249 to <8 x double> %251 = shufflevector <8 x double> %250, <8 x double> poison, <8 x i32> %252 = fadd <8 x double> %233, %251 %253 = fmul <8 x double> %252, %254 = bitcast <8 x double> %234 to <8 x i64> %255 = xor <8 x i64> %254, %256 = bitcast <8 x double> %235 to <8 x i64> %257 = xor <8 x i64> %256, %258 = bitcast <8 x i64> %257 to <8 x double> %259 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %260 = fadd <8 x double> %235, %259 %261 = fmul <8 x double> %260, %262 = fadd <8 x double> %224, %230 %263 = fadd <8 x double> %227, %253 %264 = bitcast <8 x i64> %255 to <8 x double> %265 = shufflevector <8 x double> %264, <8 x double> poison, <8 x i32> %266 = fsub <8 x double> %228, %265 %267 = fsub <8 x double> %229, %261 %268 = fsub <8 x double> %224, %230 %269 = fsub <8 x double> %227, %253 %270 = fadd <8 x double> %228, %265 %271 = fadd <8 x double> %229, %261 %272 = bitcast <8 x double> %245 to <8 x i64> %273 = xor <8 x i64> %272, %274 = bitcast <8 x i64> %273 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fadd <8 x double> %245, %275 %277 = fmul <8 x double> %276, %278 = bitcast <8 x double> %246 to <8 x i64> %279 = xor <8 x i64> %278, %280 = bitcast <8 x double> %247 to <8 x i64> %281 = xor <8 x i64> %280, %282 = bitcast <8 x i64> %281 to <8 x double> %283 = shufflevector <8 x double> %282, <8 x double> poison, <8 x i32> %284 = fadd <8 x double> %247, %283 %285 = fmul <8 x double> %284, %286 = fadd <8 x double> %236, %242 %287 = fadd <8 x double> %239, %277 %288 = bitcast <8 x i64> %279 to <8 x double> %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fsub <8 x double> %240, %289 %291 = fsub <8 x double> %241, %285 %292 = fsub <8 x double> %236, %242 %293 = fsub <8 x double> %239, %277 %294 = fadd <8 x double> %240, %289 %295 = fadd <8 x double> %241, %285 %296 = fadd <8 x double> %262, %286 store <8 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %297 = fsub <8 x double> %262, %286 store <8 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %298 = fmul <8 x double> %287, %299 = shufflevector <8 x double> %298, <8 x double> poison, <8 x i32> %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %287, <8 x double> %299, i32 noundef 4) #23 %300 = fadd <8 x double> %_4.i226, %263 store <8 x double> %300, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %301 = fsub <8 x double> %263, %_4.i226 store <8 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %302 = bitcast <8 x double> %290 to <8 x i64> %303 = xor <8 x i64> %302, %304 = bitcast <8 x i64> %303 to <8 x double> %305 = shufflevector <8 x double> %304, <8 x double> poison, <8 x i32> %306 = fadd <8 x double> %290, %305 %307 = fmul <8 x double> %306, %308 = fadd <8 x double> %266, %307 store <8 x double> %308, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %309 = fsub <8 x double> %266, %307 store <8 x double> %309, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %310 = fmul <8 x double> %291, %311 = shufflevector <8 x double> %310, <8 x double> poison, <8 x i32> %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %291, <8 x double> %311, i32 noundef 4) #23 %312 = fadd <8 x double> %_4.i225, %267 store <8 x double> %312, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %313 = fsub <8 x double> %267, %_4.i225 store <8 x double> %313, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %314 = bitcast <8 x double> %292 to <8 x i64> %315 = xor <8 x i64> %314, %316 = bitcast <8 x i64> %315 to <8 x double> %317 = shufflevector <8 x double> %316, <8 x double> poison, <8 x i32> %318 = fsub <8 x double> %268, %317 store <8 x double> %318, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %319 = fadd <8 x double> %268, %317 store <8 x double> %319, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %320 = fmul <8 x double> %293, %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %293, <8 x double> %321, i32 noundef 4) #23 %322 = fsub <8 x double> %269, %_4.i224 store <8 x double> %322, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %323 = fadd <8 x double> %269, %_4.i224 store <8 x double> %323, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %324 = bitcast <8 x double> %294 to <8 x i64> %325 = xor <8 x i64> %324, %326 = bitcast <8 x i64> %325 to <8 x double> %327 = shufflevector <8 x double> %326, <8 x double> poison, <8 x i32> %328 = fadd <8 x double> %294, %327 %329 = fmul <8 x double> %328, %330 = fsub <8 x double> %270, %329 store <8 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %331 = fadd <8 x double> %270, %329 store <8 x double> %331, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %332 = fmul <8 x double> %295, %333 = shufflevector <8 x double> %332, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %295, <8 x double> %333, i32 noundef 4) #23 %334 = fsub <8 x double> %271, %_4.i store <8 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %335 = fadd <8 x double> %271, %_4.i store <8 x double> %335, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1763, !noalias !1772 %exitcond.not.i = icmp eq i64 %92, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1756 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hbb167d7c96c7b6b4E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1773) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1773, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1773, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1773, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1773, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1773, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1773, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1773, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1773 store i64 16, ptr %n.i, align 8, !noalias !1773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1773 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1773 %_12.i = icmp eq i64 %buf.1.i, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1773 store ptr null, ptr %_16.i, align 8, !noalias !1773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1773 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1773 %_20.i = icmp eq i64 %scratch.1.i, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1773 store ptr null, ptr %_24.i, align 8, !noalias !1773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1773 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1773 %_28.i = icmp eq i64 %w_init.1.i, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1773 store ptr null, ptr %_32.i, align 8, !noalias !1773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1773 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1773 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1773 %_36.i = icmp eq i64 %w.1.i, 16 br i1 %_36.i, label %bb26.i.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1773 store ptr null, ptr %_40.i, align 8, !noalias !1773 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb26.i.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1773 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1776 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !1776 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1776 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %6, align 8, !noalias !1776 %12 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %14 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = bitcast <8 x i64> %17 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fadd <8 x double> %12, %14 %21 = fsub <8 x double> %13, %19 %22 = fsub <8 x double> %12, %14 %23 = fadd <8 x double> %13, %19 store <8 x double> %20, ptr %scratch.0.i, align 8, !noalias !1776 store <8 x double> %21, ptr %10, align 8, !noalias !1776 store <8 x double> %22, ptr %11, align 8, !noalias !1776 store <8 x double> %23, ptr %9, align 8, !noalias !1776 tail call void @llvm.experimental.noalias.scope.decl(metadata !1780) tail call void @llvm.experimental.noalias.scope.decl(metadata !1783) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %25, align 8, !alias.scope !1783, !noalias !1785 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %24, align 8, !alias.scope !1783, !noalias !1785 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %26, align 8, !alias.scope !1783, !noalias !1785 %27 = shufflevector <8 x double> %20, <8 x double> %21, <8 x i32> %28 = shufflevector <8 x double> %20, <8 x double> %21, <8 x i32> %29 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %30 = shufflevector <8 x double> %22, <8 x double> %23, <8 x i32> %31 = shufflevector <8 x double> %27, <8 x double> %29, <8 x i32> %32 = shufflevector <8 x double> %27, <8 x double> %29, <8 x i32> %33 = shufflevector <8 x double> %28, <8 x double> %30, <8 x i32> %34 = shufflevector <8 x double> %28, <8 x double> %30, <8 x i32> %35 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %38 = fmul <8 x double> %37, %35 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %36, <8 x double> %33, <8 x double> %38, i32 noundef 4) #23 %39 = shufflevector <8 x double> %32, <8 x double> poison, <8 x i32> %40 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %41 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %42 = fmul <8 x double> %41, %39 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %40, <8 x double> %32, <8 x double> %42, i32 noundef 4) #23 %43 = shufflevector <8 x double> %34, <8 x double> poison, <8 x i32> %44 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %45 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %46 = fmul <8 x double> %45, %43 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %44, <8 x double> %34, <8 x double> %46, i32 noundef 4) #23 %47 = fadd <8 x double> %31, %_4.i92 %48 = fsub <8 x double> %31, %_4.i92 %49 = fadd <8 x double> %_4.i93, %_4.i %50 = fsub <8 x double> %_4.i93, %_4.i %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = bitcast <8 x i64> %52 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fadd <8 x double> %47, %49 store <8 x double> %55, ptr %buf.0.i, align 8, !alias.scope !1780, !noalias !1787 %56 = fsub <8 x double> %48, %54 store <8 x double> %56, ptr %8, align 8, !alias.scope !1780, !noalias !1787 %57 = fsub <8 x double> %47, %49 store <8 x double> %57, ptr %7, align 8, !alias.scope !1780, !noalias !1787 %58 = fadd <8 x double> %48, %54 store <8 x double> %58, ptr %6, align 8, !alias.scope !1780, !noalias !1787 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1773 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hbf2f1ce8cb9235d5E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1788) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1788, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1788, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1788, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1788, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1788, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1788, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1788, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1788 store i64 64, ptr %n.i, align 8, !noalias !1788 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1788 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1788 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1788 store ptr null, ptr %_16.i, align 8, !noalias !1788 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1788 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1788 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1788 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1788 store ptr null, ptr %_24.i, align 8, !noalias !1788 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1788 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1788 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1788 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1788 store ptr null, ptr %_32.i, align 8, !noalias !1788 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1788 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1788 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1788 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h14bc1243b83a1875E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1788 store ptr null, ptr %_40.i, align 8, !noalias !1788 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h14bc1243b83a1875E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1788 tail call void @llvm.experimental.noalias.scope.decl(metadata !1791) tail call void @llvm.experimental.noalias.scope.decl(metadata !1794) tail call void @llvm.experimental.noalias.scope.decl(metadata !1796) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 9 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 11 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 13 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 15 %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !1791, !noalias !1798 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !1791, !noalias !1798 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !1791, !noalias !1798 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !1791, !noalias !1798 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !1791, !noalias !1798 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %12, align 8, !alias.scope !1791, !noalias !1798 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !1791, !noalias !1798 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %13, align 8, !alias.scope !1791, !noalias !1798 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !1791, !noalias !1798 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %16, align 8, !alias.scope !1791, !noalias !1798 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %15, align 8, !alias.scope !1791, !noalias !1798 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %17, align 8, !alias.scope !1791, !noalias !1798 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %14, align 8, !alias.scope !1791, !noalias !1798 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %19, align 8, !alias.scope !1791, !noalias !1798 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %18, align 8, !alias.scope !1791, !noalias !1798 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %20, align 8, !alias.scope !1791, !noalias !1798 %36 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %37 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %38 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %39 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %40 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %41 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %42 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %43 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %44 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %45 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %46 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %47 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %48 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %49 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %50 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %51 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %52 = bitcast <8 x double> %39 to <8 x i64> %53 = xor <8 x i64> %52, %54 = bitcast <8 x i64> %53 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = bitcast <8 x double> %43 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x i64> %57 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = bitcast <8 x double> %47 to <8 x i64> %61 = xor <8 x i64> %60, %62 = bitcast <8 x i64> %61 to <8 x double> %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = bitcast <8 x double> %51 to <8 x i64> %65 = xor <8 x i64> %64, %66 = bitcast <8 x i64> %65 to <8 x double> %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = fadd <8 x double> %36, %38 %69 = fsub <8 x double> %37, %55 %70 = fsub <8 x double> %36, %38 %71 = fadd <8 x double> %37, %55 %72 = fadd <8 x double> %40, %42 %73 = fsub <8 x double> %41, %59 %74 = fsub <8 x double> %40, %42 %75 = fadd <8 x double> %41, %59 %76 = fadd <8 x double> %44, %46 %77 = fsub <8 x double> %45, %63 %78 = fsub <8 x double> %44, %46 %79 = fadd <8 x double> %45, %63 %80 = fadd <8 x double> %48, %50 %81 = fsub <8 x double> %49, %67 %82 = fsub <8 x double> %48, %50 %83 = fadd <8 x double> %49, %67 %84 = bitcast <8 x double> %73 to <8 x i64> %85 = xor <8 x i64> %84, %86 = bitcast <8 x i64> %85 to <8 x double> %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = fadd <8 x double> %73, %87 %89 = fmul <8 x double> %88, %90 = bitcast <8 x double> %74 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x i64> %91 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = bitcast <8 x double> %75 to <8 x i64> %95 = xor <8 x i64> %94, %96 = bitcast <8 x i64> %95 to <8 x double> %97 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %98 = fadd <8 x double> %75, %97 %99 = fmul <8 x double> %98, %100 = fadd <8 x double> %68, %72 %101 = fadd <8 x double> %69, %89 %102 = fsub <8 x double> %70, %93 %103 = fsub <8 x double> %71, %99 %104 = fsub <8 x double> %68, %72 %105 = fsub <8 x double> %69, %89 %106 = fadd <8 x double> %70, %93 %107 = fadd <8 x double> %71, %99 %108 = bitcast <8 x double> %81 to <8 x i64> %109 = xor <8 x i64> %108, %110 = bitcast <8 x i64> %109 to <8 x double> %111 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %112 = fadd <8 x double> %81, %111 %113 = fmul <8 x double> %112, %114 = bitcast <8 x double> %82 to <8 x i64> %115 = xor <8 x i64> %114, %116 = bitcast <8 x i64> %115 to <8 x double> %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = bitcast <8 x double> %83 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fadd <8 x double> %83, %121 %123 = fmul <8 x double> %122, %124 = fadd <8 x double> %76, %80 %125 = fadd <8 x double> %77, %113 %126 = fsub <8 x double> %78, %117 %127 = fsub <8 x double> %79, %123 %128 = fsub <8 x double> %76, %80 %129 = fsub <8 x double> %77, %113 %130 = fadd <8 x double> %78, %117 %131 = fadd <8 x double> %79, %123 %132 = fmul <8 x double> %125, %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %125, <8 x double> %133, i32 noundef 4) #23 %134 = bitcast <8 x double> %126 to <8 x i64> %135 = xor <8 x i64> %134, %136 = bitcast <8 x i64> %135 to <8 x double> %137 = shufflevector <8 x double> %136, <8 x double> poison, <8 x i32> %138 = fadd <8 x double> %126, %137 %139 = fmul <8 x double> %138, %140 = fmul <8 x double> %127, %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %127, <8 x double> %141, i32 noundef 4) #23 %142 = bitcast <8 x double> %128 to <8 x i64> %143 = xor <8 x i64> %142, %144 = bitcast <8 x i64> %143 to <8 x double> %145 = shufflevector <8 x double> %144, <8 x double> poison, <8 x i32> %146 = fmul <8 x double> %129, %147 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %129, <8 x double> %147, i32 noundef 4) #23 %148 = bitcast <8 x double> %130 to <8 x i64> %149 = xor <8 x i64> %148, %150 = bitcast <8 x i64> %149 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fadd <8 x double> %130, %151 %153 = fmul <8 x double> %152, %154 = fmul <8 x double> %131, %155 = shufflevector <8 x double> %154, <8 x double> poison, <8 x i32> %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %131, <8 x double> %155, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %24, align 8, !alias.scope !1796, !noalias !1799 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %23, align 8, !alias.scope !1796, !noalias !1799 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %25, align 8, !alias.scope !1796, !noalias !1799 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %22, align 8, !alias.scope !1796, !noalias !1799 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %27, align 8, !alias.scope !1796, !noalias !1799 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %26, align 8, !alias.scope !1796, !noalias !1799 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %28, align 8, !alias.scope !1796, !noalias !1799 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %21, align 8, !alias.scope !1796, !noalias !1799 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %31, align 8, !alias.scope !1796, !noalias !1799 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %30, align 8, !alias.scope !1796, !noalias !1799 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %32, align 8, !alias.scope !1796, !noalias !1799 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %29, align 8, !alias.scope !1796, !noalias !1799 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %34, align 8, !alias.scope !1796, !noalias !1799 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %33, align 8, !alias.scope !1796, !noalias !1799 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %35, align 8, !alias.scope !1796, !noalias !1799 %156 = fadd <8 x double> %100, %124 %157 = fadd <8 x double> %_4.i111, %101 %158 = shufflevector <8 x double> %157, <8 x double> poison, <8 x i32> %159 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = fmul <8 x double> %160, %158 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %159, <8 x double> %157, <8 x double> %161, i32 noundef 4) #23 %162 = fadd <8 x double> %102, %139 %163 = shufflevector <8 x double> %162, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %162, <8 x double> %166, i32 noundef 4) #23 %167 = fadd <8 x double> %_4.i110, %103 %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = fmul <8 x double> %170, %168 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %169, <8 x double> %167, <8 x double> %171, i32 noundef 4) #23 %172 = fsub <8 x double> %104, %145 %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = fmul <8 x double> %175, %173 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %174, <8 x double> %172, <8 x double> %176, i32 noundef 4) #23 %177 = fsub <8 x double> %105, %_4.i109 %178 = shufflevector <8 x double> %177, <8 x double> poison, <8 x i32> %179 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %180 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %181 = fmul <8 x double> %180, %178 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %179, <8 x double> %177, <8 x double> %181, i32 noundef 4) #23 %182 = fsub <8 x double> %106, %153 %183 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %184 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = fmul <8 x double> %185, %183 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %184, <8 x double> %182, <8 x double> %186, i32 noundef 4) #23 %187 = fsub <8 x double> %107, %_4.i108 %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = fmul <8 x double> %190, %188 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %189, <8 x double> %187, <8 x double> %191, i32 noundef 4) #23 %192 = fsub <8 x double> %100, %124 %193 = shufflevector <8 x double> %192, <8 x double> poison, <8 x i32> %194 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = fmul <8 x double> %193, %195 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %192, <8 x double> %196, i32 noundef 4) #23 %197 = fsub <8 x double> %101, %_4.i111 %198 = shufflevector <8 x double> %197, <8 x double> poison, <8 x i32> %199 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %200 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %201 = fmul <8 x double> %200, %198 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %199, <8 x double> %197, <8 x double> %201, i32 noundef 4) #23 %202 = fsub <8 x double> %102, %139 %203 = shufflevector <8 x double> %202, <8 x double> poison, <8 x i32> %204 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %205 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %206 = fmul <8 x double> %205, %203 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %204, <8 x double> %202, <8 x double> %206, i32 noundef 4) #23 %207 = fsub <8 x double> %103, %_4.i110 %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %210 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %211 = fmul <8 x double> %208, %210 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %209, <8 x double> %207, <8 x double> %211, i32 noundef 4) #23 %212 = fadd <8 x double> %104, %145 %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %215 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %213, %215 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %214, <8 x double> %212, <8 x double> %216, i32 noundef 4) #23 %217 = fadd <8 x double> %_4.i109, %105 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %220 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %221 = fmul <8 x double> %218, %220 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %219, <8 x double> %217, <8 x double> %221, i32 noundef 4) #23 %222 = fadd <8 x double> %106, %153 %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = fmul <8 x double> %223, %225 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %224, <8 x double> %222, <8 x double> %226, i32 noundef 4) #23 %227 = fadd <8 x double> %_4.i108, %107 %228 = shufflevector <8 x double> %227, <8 x double> poison, <8 x i32> %229 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %228, %230 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %229, <8 x double> %227, <8 x double> %231, i32 noundef 4) #23 %232 = shufflevector <8 x double> %156, <8 x double> %_4.i107, <8 x i32> %233 = shufflevector <8 x double> %156, <8 x double> %_4.i107, <8 x i32> %234 = shufflevector <8 x double> %_4.i106, <8 x double> %_4.i105, <8 x i32> %235 = shufflevector <8 x double> %_4.i106, <8 x double> %_4.i105, <8 x i32> %236 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %237 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %238 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %239 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %240 = shufflevector <8 x double> %_4.i104, <8 x double> %_4.i103, <8 x i32> %241 = shufflevector <8 x double> %_4.i104, <8 x double> %_4.i103, <8 x i32> %242 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %243 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %244 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %245 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %246 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %247 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %248 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i99, <8 x i32> %249 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i99, <8 x i32> %250 = shufflevector <8 x double> %_4.i98, <8 x double> %_4.i97, <8 x i32> %251 = shufflevector <8 x double> %_4.i98, <8 x double> %_4.i97, <8 x i32> %252 = shufflevector <8 x double> %248, <8 x double> %250, <8 x i32> %253 = shufflevector <8 x double> %248, <8 x double> %250, <8 x i32> %254 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %255 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %256 = shufflevector <8 x double> %_4.i96, <8 x double> %_4.i95, <8 x i32> %257 = shufflevector <8 x double> %_4.i96, <8 x double> %_4.i95, <8 x i32> %258 = shufflevector <8 x double> %_4.i94, <8 x double> %_4.i, <8 x i32> %259 = shufflevector <8 x double> %_4.i94, <8 x double> %_4.i, <8 x i32> %260 = shufflevector <8 x double> %256, <8 x double> %258, <8 x i32> %261 = shufflevector <8 x double> %256, <8 x double> %258, <8 x i32> %262 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %263 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> store <8 x double> %236, ptr %scratch.0.i, align 8, !alias.scope !1794, !noalias !1800 %264 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %244, ptr %264, align 8, !alias.scope !1794, !noalias !1800 %265 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %252, ptr %265, align 8, !alias.scope !1794, !noalias !1800 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %260, ptr %266, align 8, !alias.scope !1794, !noalias !1800 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 4 store <8 x double> %238, ptr %267, align 8, !alias.scope !1794, !noalias !1800 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 store <8 x double> %246, ptr %268, align 8, !alias.scope !1794, !noalias !1800 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 6 store <8 x double> %254, ptr %269, align 8, !alias.scope !1794, !noalias !1800 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 store <8 x double> %262, ptr %270, align 8, !alias.scope !1794, !noalias !1800 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 8 store <8 x double> %237, ptr %271, align 8, !alias.scope !1794, !noalias !1800 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 9 store <8 x double> %245, ptr %272, align 8, !alias.scope !1794, !noalias !1800 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 10 store <8 x double> %253, ptr %273, align 8, !alias.scope !1794, !noalias !1800 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 11 store <8 x double> %261, ptr %274, align 8, !alias.scope !1794, !noalias !1800 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 12 store <8 x double> %239, ptr %275, align 8, !alias.scope !1794, !noalias !1800 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 13 store <8 x double> %247, ptr %276, align 8, !alias.scope !1794, !noalias !1800 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 14 store <8 x double> %255, ptr %277, align 8, !alias.scope !1794, !noalias !1800 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 15 store <8 x double> %263, ptr %278, align 8, !alias.scope !1794, !noalias !1800 %279 = fadd <8 x double> %236, %237 %280 = fsub <8 x double> %236, %237 %281 = fadd <8 x double> %238, %239 %282 = fsub <8 x double> %238, %239 %283 = bitcast <8 x double> %282 to <8 x i64> %284 = xor <8 x i64> %283, %285 = bitcast <8 x i64> %284 to <8 x double> %286 = shufflevector <8 x double> %285, <8 x double> poison, <8 x i32> %287 = fadd <8 x double> %279, %281 %288 = fsub <8 x double> %280, %286 %289 = fsub <8 x double> %279, %281 %290 = fadd <8 x double> %280, %286 store <8 x double> %287, ptr %buf.0.i, align 8, !noalias !1788 store <8 x double> %288, ptr %7, align 8, !noalias !1788 store <8 x double> %289, ptr %6, align 8, !noalias !1788 store <8 x double> %290, ptr %14, align 8, !noalias !1788 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 13 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %264, align 8, !noalias !1788 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1788 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1788 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1788 %291 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %292 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %293 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %294 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %295 = bitcast <8 x double> %294 to <8 x i64> %296 = xor <8 x i64> %295, %297 = bitcast <8 x i64> %296 to <8 x double> %298 = shufflevector <8 x double> %297, <8 x double> poison, <8 x i32> %299 = fadd <8 x double> %291, %293 %300 = fsub <8 x double> %292, %298 %301 = fsub <8 x double> %291, %293 %302 = fadd <8 x double> %292, %298 store <8 x double> %299, ptr %9, align 8, !noalias !1788 store <8 x double> %300, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1788 store <8 x double> %301, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1788 store <8 x double> %302, ptr %_3.i.i.i.i.1, align 8, !noalias !1788 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 14 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_73.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %265, align 8, !noalias !1788 %_74.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !1788 %_75.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !1788 %_76.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !1788 %303 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %304 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %305 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %306 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %307 = bitcast <8 x double> %306 to <8 x i64> %308 = xor <8 x i64> %307, %309 = bitcast <8 x i64> %308 to <8 x double> %310 = shufflevector <8 x double> %309, <8 x double> poison, <8 x i32> %311 = fadd <8 x double> %303, %305 %312 = fsub <8 x double> %304, %310 %313 = fsub <8 x double> %303, %305 %314 = fadd <8 x double> %304, %310 store <8 x double> %311, ptr %8, align 8, !noalias !1788 store <8 x double> %312, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1788 store <8 x double> %313, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1788 store <8 x double> %314, ptr %_3.i.i.i.i.2, align 8, !noalias !1788 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 15 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_73.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %266, align 8, !noalias !1788 %_74.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !1788 %_75.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !1788 %_76.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !1788 %315 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %316 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %317 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %318 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %319 = bitcast <8 x double> %318 to <8 x i64> %320 = xor <8 x i64> %319, %321 = bitcast <8 x i64> %320 to <8 x double> %322 = shufflevector <8 x double> %321, <8 x double> poison, <8 x i32> %323 = fadd <8 x double> %315, %317 %324 = fsub <8 x double> %316, %322 %325 = fsub <8 x double> %315, %317 %326 = fadd <8 x double> %316, %322 store <8 x double> %323, ptr %10, align 8, !noalias !1788 store <8 x double> %324, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1788 store <8 x double> %325, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1788 store <8 x double> %326, ptr %_3.i.i.i.i.3, align 8, !noalias !1788 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1788 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc0ebf6f49e270a1fE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1801) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1801, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1801, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1801, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1801, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1801, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1801, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1801, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1801, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1801 store i64 128, ptr %n.i, align 8, !noalias !1801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1801 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1801 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1801 store ptr null, ptr %_16.i, align 8, !noalias !1801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1801 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1801 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1801 store ptr null, ptr %_24.i, align 8, !noalias !1801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1801 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1801 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1801 store ptr null, ptr %_32.i, align 8, !noalias !1801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1801 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1801 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf786ea452b98fe11E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1801 store ptr null, ptr %_40.i, align 8, !noalias !1801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf786ea452b98fe11E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1801 tail call void @llvm.experimental.noalias.scope.decl(metadata !1804) tail call void @llvm.experimental.noalias.scope.decl(metadata !1807) tail call void @llvm.experimental.noalias.scope.decl(metadata !1809) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf786ea452b98fe11E.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf786ea452b98fe11E.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1804, !noalias !1811 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = bitcast <8 x i64> %27 to <8 x double> %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %31 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %32 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %33 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %34 = bitcast <8 x double> %33 to <8 x i64> %35 = xor <8 x i64> %34, %36 = bitcast <8 x i64> %35 to <8 x double> %37 = shufflevector <8 x double> %36, <8 x double> poison, <8 x i32> %38 = fadd <8 x double> %22, %24 %39 = fsub <8 x double> %23, %29 %40 = fsub <8 x double> %22, %24 %41 = fadd <8 x double> %23, %29 %42 = fadd <8 x double> %30, %32 %43 = fsub <8 x double> %31, %37 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %30, %32 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = bitcast <8 x i64> %52 to <8 x double> %54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> %55 = fadd <8 x double> %31, %37 %56 = bitcast <8 x double> %55 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x i64> %57 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = fadd <8 x double> %55, %59 %61 = fmul <8 x double> %60, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1809, !noalias !1812 %62 = fadd <8 x double> %38, %42 %63 = fadd <8 x double> %39, %49 %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %66 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %66, %64 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %65, <8 x double> %63, <8 x double> %67, i32 noundef 4) #23 %68 = fsub <8 x double> %40, %54 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %41, %61 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %38, %42 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %39, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %40, %54 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %41, %61 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %62, <8 x double> %_4.i73, <8 x i32> %99 = shufflevector <8 x double> %62, <8 x double> %_4.i73, <8 x i32> %100 = shufflevector <8 x double> %_4.i72, <8 x double> %_4.i71, <8 x i32> %101 = shufflevector <8 x double> %_4.i72, <8 x double> %_4.i71, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i70, <8 x double> %_4.i69, <8 x i32> %107 = shufflevector <8 x double> %_4.i70, <8 x double> %_4.i69, <8 x i32> %108 = shufflevector <8 x double> %_4.i68, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i68, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1807, !noalias !1813 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !1807, !noalias !1813 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !1807, !noalias !1813 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !1807, !noalias !1813 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !1807, !noalias !1813 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !1807, !noalias !1813 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !1807, !noalias !1813 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !1807, !noalias !1813 %exitcond.not.i = icmp eq i64 %21, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1814) tail call void @llvm.experimental.noalias.scope.decl(metadata !1817) tail call void @llvm.experimental.noalias.scope.decl(metadata !1819) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 br label %bb30.i bb9.i.i.i.i.preheader: ; preds = %bb30.i %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1801 %128 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %129 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %128, ptr %buf.0.i, align 8, !noalias !1801 store <8 x double> %129, ptr %7, align 8, !noalias !1801 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !1801 %130 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %131 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %130, ptr %_3.i.i.i.i.1, align 8, !noalias !1801 store <8 x double> %131, ptr %_3.i2.i.i.i.1, align 8, !noalias !1801 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_33.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !noalias !1801 %132 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.i.sroa.0.0.copyload.2 %133 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.i.sroa.0.0.copyload.2 store <8 x double> %132, ptr %_3.i.i.i.i.2, align 8, !noalias !1801 store <8 x double> %133, ptr %_3.i2.i.i.i.2, align 8, !noalias !1801 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_33.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !noalias !1801 %134 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.i.sroa.0.0.copyload.3 %135 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.i.sroa.0.0.copyload.3 store <8 x double> %134, ptr %_3.i.i.i.i.3, align 8, !noalias !1801 store <8 x double> %135, ptr %_3.i2.i.i.i.3, align 8, !noalias !1801 %_3.i2.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_33.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %9, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i2.i.i.i.4, align 8, !noalias !1801 %136 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.i.sroa.0.0.copyload.4 %137 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.i.sroa.0.0.copyload.4 store <8 x double> %136, ptr %9, align 8, !noalias !1801 store <8 x double> %137, ptr %_3.i2.i.i.i.4, align 8, !noalias !1801 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i2.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_33.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.5, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i2.i.i.i.5, align 8, !noalias !1801 %138 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.i.sroa.0.0.copyload.5 %139 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.i.sroa.0.0.copyload.5 store <8 x double> %138, ptr %_3.i.i.i.i.5, align 8, !noalias !1801 store <8 x double> %139, ptr %_3.i2.i.i.i.5, align 8, !noalias !1801 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i2.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_33.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.6, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i2.i.i.i.6, align 8, !noalias !1801 %140 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.i.sroa.0.0.copyload.6 %141 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.i.sroa.0.0.copyload.6 store <8 x double> %140, ptr %_3.i.i.i.i.6, align 8, !noalias !1801 store <8 x double> %141, ptr %_3.i2.i.i.i.6, align 8, !noalias !1801 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i2.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_33.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.7, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i2.i.i.i.7, align 8, !noalias !1801 %142 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.i.sroa.0.0.copyload.7 %143 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.i.sroa.0.0.copyload.7 store <8 x double> %142, ptr %_3.i.i.i.i.7, align 8, !noalias !1801 store <8 x double> %143, ptr %_3.i2.i.i.i.7, align 8, !noalias !1801 %_3.i2.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_33.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %8, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i2.i.i.i.8, align 8, !noalias !1801 %144 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.i.sroa.0.0.copyload.8 %145 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.i.sroa.0.0.copyload.8 store <8 x double> %144, ptr %8, align 8, !noalias !1801 store <8 x double> %145, ptr %_3.i2.i.i.i.8, align 8, !noalias !1801 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i2.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_33.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.9, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i2.i.i.i.9, align 8, !noalias !1801 %146 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.i.sroa.0.0.copyload.9 %147 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.i.sroa.0.0.copyload.9 store <8 x double> %146, ptr %_3.i.i.i.i.9, align 8, !noalias !1801 store <8 x double> %147, ptr %_3.i2.i.i.i.9, align 8, !noalias !1801 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i2.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_33.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.10, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i2.i.i.i.10, align 8, !noalias !1801 %148 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.i.sroa.0.0.copyload.10 %149 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.i.sroa.0.0.copyload.10 store <8 x double> %148, ptr %_3.i.i.i.i.10, align 8, !noalias !1801 store <8 x double> %149, ptr %_3.i2.i.i.i.10, align 8, !noalias !1801 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i2.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_33.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.11, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i2.i.i.i.11, align 8, !noalias !1801 %150 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.i.sroa.0.0.copyload.11 %151 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.i.sroa.0.0.copyload.11 store <8 x double> %150, ptr %_3.i.i.i.i.11, align 8, !noalias !1801 store <8 x double> %151, ptr %_3.i2.i.i.i.11, align 8, !noalias !1801 %_3.i2.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_33.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %10, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i2.i.i.i.12, align 8, !noalias !1801 %152 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.i.sroa.0.0.copyload.12 %153 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.i.sroa.0.0.copyload.12 store <8 x double> %152, ptr %10, align 8, !noalias !1801 store <8 x double> %153, ptr %_3.i2.i.i.i.12, align 8, !noalias !1801 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i2.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_33.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.13, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i2.i.i.i.13, align 8, !noalias !1801 %154 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.i.sroa.0.0.copyload.13 %155 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.i.sroa.0.0.copyload.13 store <8 x double> %154, ptr %_3.i.i.i.i.13, align 8, !noalias !1801 store <8 x double> %155, ptr %_3.i2.i.i.i.13, align 8, !noalias !1801 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i2.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_33.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.14, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i2.i.i.i.14, align 8, !noalias !1801 %156 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.i.sroa.0.0.copyload.14 %157 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.i.sroa.0.0.copyload.14 store <8 x double> %156, ptr %_3.i.i.i.i.14, align 8, !noalias !1801 store <8 x double> %157, ptr %_3.i2.i.i.i.14, align 8, !noalias !1801 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i2.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_33.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.15, align 8, !noalias !1801 %_34.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i2.i.i.i.15, align 8, !noalias !1801 %158 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.i.sroa.0.0.copyload.15 %159 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.i.sroa.0.0.copyload.15 store <8 x double> %158, ptr %_3.i.i.i.i.15, align 8, !noalias !1801 store <8 x double> %159, ptr %_3.i2.i.i.i.15, align 8, !noalias !1801 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1801 ret void bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %_2.i.i.i.i = phi i1 [ false, %bb30.i ], [ true, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %iter.sroa.104.01923.i = phi i64 [ 1, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01923.i, 3 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %160, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %161, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %162, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %163, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %164, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %165 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %165, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %166 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %166, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %167 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %167, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %168 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %168, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %169 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %169, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %170 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %170, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %171 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %171, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %172 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %172, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %173 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %173, align 8, !alias.scope !1819, !noalias !1821, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %174 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %175 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %176 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %177 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %178 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %179 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %180 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %181 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %182 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %183 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %184 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %185 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %186 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %187 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %188 = shufflevector <2 x double> %174, <2 x double> poison, <8 x i32> zeroinitializer %189 = shufflevector <2 x double> %174, <2 x double> poison, <8 x i32> %190 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> zeroinitializer %191 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> %192 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> zeroinitializer %193 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> %194 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> zeroinitializer %195 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> %196 = shufflevector <2 x double> %178, <2 x double> poison, <8 x i32> zeroinitializer %197 = shufflevector <2 x double> %178, <2 x double> poison, <8 x i32> %198 = shufflevector <2 x double> %179, <2 x double> poison, <8 x i32> zeroinitializer %199 = shufflevector <2 x double> %179, <2 x double> poison, <8 x i32> %200 = shufflevector <2 x double> %180, <2 x double> poison, <8 x i32> zeroinitializer %201 = shufflevector <2 x double> %180, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1814, !noalias !1822 %202 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %203 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %204 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %205 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %206 = bitcast <8 x double> %205 to <8 x i64> %207 = xor <8 x i64> %206, %208 = bitcast <8 x i64> %207 to <8 x double> %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %211 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %212 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %213 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %214 = bitcast <8 x double> %213 to <8 x i64> %215 = xor <8 x i64> %214, %216 = bitcast <8 x i64> %215 to <8 x double> %217 = shufflevector <8 x double> %216, <8 x double> poison, <8 x i32> %218 = fadd <8 x double> %202, %204 %219 = fsub <8 x double> %203, %209 %220 = fsub <8 x double> %202, %204 %221 = fadd <8 x double> %203, %209 %222 = fadd <8 x double> %210, %212 %223 = fsub <8 x double> %211, %217 %224 = bitcast <8 x double> %223 to <8 x i64> %225 = xor <8 x i64> %224, %226 = bitcast <8 x i64> %225 to <8 x double> %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fadd <8 x double> %223, %227 %229 = fmul <8 x double> %228, %230 = fsub <8 x double> %210, %212 %231 = bitcast <8 x double> %230 to <8 x i64> %232 = xor <8 x i64> %231, %233 = bitcast <8 x i64> %232 to <8 x double> %234 = shufflevector <8 x double> %233, <8 x double> poison, <8 x i32> %235 = fadd <8 x double> %211, %217 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = bitcast <8 x i64> %237 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fadd <8 x double> %235, %239 %241 = fmul <8 x double> %240, %242 = fadd <8 x double> %218, %222 store <8 x double> %242, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !1817, !noalias !1823 %243 = fadd <8 x double> %219, %229 %244 = shufflevector <8 x double> %243, <8 x double> poison, <8 x i32> %245 = fmul <8 x double> %189, %244 %_4.i80 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %188, <8 x double> %243, <8 x double> %245, i32 noundef 4) #23 store <8 x double> %_4.i80, ptr %183, align 8, !alias.scope !1817, !noalias !1823 %246 = fsub <8 x double> %220, %234 %247 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %248 = fmul <8 x double> %191, %247 %_4.i79 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %246, <8 x double> %248, i32 noundef 4) #23 store <8 x double> %_4.i79, ptr %182, align 8, !alias.scope !1817, !noalias !1823 %249 = fsub <8 x double> %221, %241 %250 = shufflevector <8 x double> %249, <8 x double> poison, <8 x i32> %251 = fmul <8 x double> %193, %250 %_4.i78 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %192, <8 x double> %249, <8 x double> %251, i32 noundef 4) #23 store <8 x double> %_4.i78, ptr %184, align 8, !alias.scope !1817, !noalias !1823 %252 = fsub <8 x double> %218, %222 %253 = shufflevector <8 x double> %252, <8 x double> poison, <8 x i32> %254 = fmul <8 x double> %195, %253 %_4.i77 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %252, <8 x double> %254, i32 noundef 4) #23 store <8 x double> %_4.i77, ptr %181, align 8, !alias.scope !1817, !noalias !1823 %255 = fsub <8 x double> %219, %229 %256 = shufflevector <8 x double> %255, <8 x double> poison, <8 x i32> %257 = fmul <8 x double> %197, %256 %_4.i76 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %255, <8 x double> %257, i32 noundef 4) #23 store <8 x double> %_4.i76, ptr %186, align 8, !alias.scope !1817, !noalias !1823 %258 = fadd <8 x double> %220, %234 %259 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %260 = fmul <8 x double> %199, %259 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %198, <8 x double> %258, <8 x double> %260, i32 noundef 4) #23 store <8 x double> %_4.i75, ptr %185, align 8, !alias.scope !1817, !noalias !1823 %261 = fadd <8 x double> %221, %241 %262 = shufflevector <8 x double> %261, <8 x double> poison, <8 x i32> %263 = fmul <8 x double> %201, %262 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %261, <8 x double> %263, i32 noundef 4) #23 store <8 x double> %_4.i74, ptr %187, align 8, !alias.scope !1817, !noalias !1823 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !1814, !noalias !1822 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !1814, !noalias !1822 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !1814, !noalias !1822 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !1814, !noalias !1822 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !1814, !noalias !1822 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !1814, !noalias !1822 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !1814, !noalias !1822 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !1814, !noalias !1822 %264 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %265 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %266 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %267 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %268 = bitcast <8 x double> %267 to <8 x i64> %269 = xor <8 x i64> %268, %270 = bitcast <8 x i64> %269 to <8 x double> %271 = shufflevector <8 x double> %270, <8 x double> poison, <8 x i32> %272 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %273 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %274 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %275 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %276 = bitcast <8 x double> %275 to <8 x i64> %277 = xor <8 x i64> %276, %278 = bitcast <8 x i64> %277 to <8 x double> %279 = shufflevector <8 x double> %278, <8 x double> poison, <8 x i32> %280 = fadd <8 x double> %264, %266 %281 = fsub <8 x double> %265, %271 %282 = fsub <8 x double> %264, %266 %283 = fadd <8 x double> %265, %271 %284 = fadd <8 x double> %272, %274 %285 = fsub <8 x double> %273, %279 %286 = bitcast <8 x double> %285 to <8 x i64> %287 = xor <8 x i64> %286, %288 = bitcast <8 x i64> %287 to <8 x double> %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fadd <8 x double> %285, %289 %291 = fmul <8 x double> %290, %292 = fsub <8 x double> %272, %274 %293 = bitcast <8 x double> %292 to <8 x i64> %294 = xor <8 x i64> %293, %295 = bitcast <8 x i64> %294 to <8 x double> %296 = shufflevector <8 x double> %295, <8 x double> poison, <8 x i32> %297 = fadd <8 x double> %273, %279 %298 = bitcast <8 x double> %297 to <8 x i64> %299 = xor <8 x i64> %298, %300 = bitcast <8 x i64> %299 to <8 x double> %301 = shufflevector <8 x double> %300, <8 x double> poison, <8 x i32> %302 = fadd <8 x double> %297, %301 %303 = fmul <8 x double> %302, %304 = fadd <8 x double> %280, %284 store <8 x double> %304, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %305 = fadd <8 x double> %281, %291 %306 = shufflevector <8 x double> %305, <8 x double> poison, <8 x i32> %307 = fmul <8 x double> %189, %306 %_4.i80.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %188, <8 x double> %305, <8 x double> %307, i32 noundef 4) #23 store <8 x double> %_4.i80.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %308 = fsub <8 x double> %282, %296 %309 = shufflevector <8 x double> %308, <8 x double> poison, <8 x i32> %310 = fmul <8 x double> %191, %309 %_4.i79.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %308, <8 x double> %310, i32 noundef 4) #23 store <8 x double> %_4.i79.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %311 = fsub <8 x double> %283, %303 %312 = shufflevector <8 x double> %311, <8 x double> poison, <8 x i32> %313 = fmul <8 x double> %193, %312 %_4.i78.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %192, <8 x double> %311, <8 x double> %313, i32 noundef 4) #23 store <8 x double> %_4.i78.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %314 = fsub <8 x double> %280, %284 %315 = shufflevector <8 x double> %314, <8 x double> poison, <8 x i32> %316 = fmul <8 x double> %195, %315 %_4.i77.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %314, <8 x double> %316, i32 noundef 4) #23 store <8 x double> %_4.i77.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %317 = fsub <8 x double> %281, %291 %318 = shufflevector <8 x double> %317, <8 x double> poison, <8 x i32> %319 = fmul <8 x double> %197, %318 %_4.i76.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %317, <8 x double> %319, i32 noundef 4) #23 store <8 x double> %_4.i76.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %320 = fadd <8 x double> %282, %296 %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %322 = fmul <8 x double> %199, %321 %_4.i75.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %198, <8 x double> %320, <8 x double> %322, i32 noundef 4) #23 store <8 x double> %_4.i75.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 %323 = fadd <8 x double> %283, %303 %324 = shufflevector <8 x double> %323, <8 x double> poison, <8 x i32> %325 = fmul <8 x double> %201, %324 %_4.i74.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %323, <8 x double> %325, i32 noundef 4) #23 store <8 x double> %_4.i74.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !1817, !noalias !1823 br i1 %_2.i.i.i.i, label %bb30.i, label %bb9.i.i.i.i.preheader } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc28b2b338276ff85E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1824) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1824, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1824, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1824, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1824, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1824, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1824, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1824, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1824, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1824 store i64 64, ptr %n.i, align 8, !noalias !1824 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1824 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1824 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1824 store ptr null, ptr %_16.i, align 8, !noalias !1824 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1824 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1824 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1824 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1824 store ptr null, ptr %_24.i, align 8, !noalias !1824 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1824 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1824 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1824 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1824 store ptr null, ptr %_32.i, align 8, !noalias !1824 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1824 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1824 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1824 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab4e004548e212e9E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1824 store ptr null, ptr %_40.i, align 8, !noalias !1824 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab4e004548e212e9E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1824 tail call void @llvm.experimental.noalias.scope.decl(metadata !1827) tail call void @llvm.experimental.noalias.scope.decl(metadata !1830) tail call void @llvm.experimental.noalias.scope.decl(metadata !1832) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab4e004548e212e9E.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab4e004548e212e9E.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1832, !noalias !1834 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1832, !noalias !1834 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1832, !noalias !1834 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1827, !noalias !1835 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1827, !noalias !1835 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1827, !noalias !1835 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1827, !noalias !1835 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = fadd <8 x double> %14, %16 %21 = bitcast <8 x i64> %19 to <8 x double> %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = fsub <8 x double> %15, %22 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i56 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i55 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %22 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %20, <8 x double> %_4.i56, <8 x i32> %39 = shufflevector <8 x double> %20, <8 x double> %_4.i56, <8 x i32> %40 = shufflevector <8 x double> %_4.i55, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i55, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1830, !noalias !1836 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1830, !noalias !1836 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1830, !noalias !1836 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1830, !noalias !1836 %exitcond.not.i = icmp eq i64 %13, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1837) tail call void @llvm.experimental.noalias.scope.decl(metadata !1840) tail call void @llvm.experimental.noalias.scope.decl(metadata !1842) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %scratch.0.i, align 8, !alias.scope !1837, !noalias !1845 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %50, align 8, !alias.scope !1837, !noalias !1845 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %51, align 8, !alias.scope !1837, !noalias !1845 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %49, align 8, !alias.scope !1837, !noalias !1845 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = fadd <8 x double> %70, %72 store <8 x double> %76, ptr %buf.0.i, align 8, !alias.scope !1840, !noalias !1846 %77 = bitcast <8 x i64> %75 to <8 x double> %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = fsub <8 x double> %71, %78 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i59 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i59, ptr %62, align 8, !alias.scope !1840, !noalias !1846 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i58 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i58, ptr %61, align 8, !alias.scope !1840, !noalias !1846 %85 = fadd <8 x double> %71, %78 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i57 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i57, ptr %63, align 8, !alias.scope !1840, !noalias !1846 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %data.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %88 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0617.us.i.1 = load <2 x float>, ptr %88, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1618.us.i.1 = load <2 x float>, ptr %89, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0619.us.i.1 = load <2 x float>, ptr %90, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1620.us.i.1 = load <2 x float>, ptr %91, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0621.us.i.1 = load <2 x float>, ptr %92, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1622.us.i.1 = load <2 x float>, ptr %93, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0617.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1618.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %94 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0619.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1620.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %95 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0621.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1622.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %96 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %97 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %100 = shufflevector <2 x double> %94, <2 x double> poison, <8 x i32> zeroinitializer %101 = shufflevector <2 x double> %94, <2 x double> poison, <8 x i32> %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %103 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %105 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1837, !noalias !1845 %b.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1837, !noalias !1845 %c.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1837, !noalias !1845 %d.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1837, !noalias !1845 %106 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %107 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %108 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %109 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %110 = bitcast <8 x double> %109 to <8 x i64> %111 = xor <8 x i64> %110, %112 = fadd <8 x double> %106, %108 store <8 x double> %112, ptr %data.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1840, !noalias !1846 %113 = bitcast <8 x i64> %111 to <8 x double> %114 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %115 = fsub <8 x double> %107, %114 %116 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %117 = fmul <8 x double> %101, %116 %_4.i59.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %100, <8 x double> %115, <8 x double> %117, i32 noundef 4) #23 store <8 x double> %_4.i59.1, ptr %98, align 8, !alias.scope !1840, !noalias !1846 %118 = fsub <8 x double> %106, %108 %119 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %120 = fmul <8 x double> %103, %119 %_4.i58.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %118, <8 x double> %120, i32 noundef 4) #23 store <8 x double> %_4.i58.1, ptr %97, align 8, !alias.scope !1840, !noalias !1846 %121 = fadd <8 x double> %107, %114 %122 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %105, %122 %_4.i57.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %121, <8 x double> %123, i32 noundef 4) #23 store <8 x double> %_4.i57.1, ptr %99, align 8, !alias.scope !1840, !noalias !1846 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %data.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %data.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %data.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %124 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1 %w1.0617.us.i.2 = load <2 x float>, ptr %124, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %125 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1, i32 1 %w1.1618.us.i.2 = load <2 x float>, ptr %125, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %126 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2 %w2.0619.us.i.2 = load <2 x float>, ptr %126, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %127 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2, i32 1 %w2.1620.us.i.2 = load <2 x float>, ptr %127, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %128 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3 %w3.0621.us.i.2 = load <2 x float>, ptr %128, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %129 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3, i32 1 %w3.1622.us.i.2 = load <2 x float>, ptr %129, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w1.0617.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w1.1618.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.2, <4 x i32> %130 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w2.0619.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w2.1620.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.2, <4 x i32> %131 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w3.0621.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w3.1622.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.2, <4 x i32> %132 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.2 to <2 x double> %133 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %134 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %135 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %136 = shufflevector <2 x double> %130, <2 x double> poison, <8 x i32> zeroinitializer %137 = shufflevector <2 x double> %130, <2 x double> poison, <8 x i32> %138 = shufflevector <2 x double> %131, <2 x double> poison, <8 x i32> zeroinitializer %139 = shufflevector <2 x double> %131, <2 x double> poison, <8 x i32> %140 = shufflevector <2 x double> %132, <2 x double> poison, <8 x i32> zeroinitializer %141 = shufflevector <2 x double> %132, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1837, !noalias !1845 %b.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1837, !noalias !1845 %c.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1837, !noalias !1845 %d.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1837, !noalias !1845 %142 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %c.sroa.0.0.copyload.us.i.2 %143 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %c.sroa.0.0.copyload.us.i.2 %144 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.2, %d.sroa.0.0.copyload.us.i.2 %145 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.2, %d.sroa.0.0.copyload.us.i.2 %146 = bitcast <8 x double> %145 to <8 x i64> %147 = xor <8 x i64> %146, %148 = fadd <8 x double> %142, %144 store <8 x double> %148, ptr %data.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1840, !noalias !1846 %149 = bitcast <8 x i64> %147 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fsub <8 x double> %143, %150 %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fmul <8 x double> %137, %152 %_4.i59.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %136, <8 x double> %151, <8 x double> %153, i32 noundef 4) #23 store <8 x double> %_4.i59.2, ptr %134, align 8, !alias.scope !1840, !noalias !1846 %154 = fsub <8 x double> %142, %144 %155 = shufflevector <8 x double> %154, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %139, %155 %_4.i58.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %138, <8 x double> %154, <8 x double> %156, i32 noundef 4) #23 store <8 x double> %_4.i58.2, ptr %133, align 8, !alias.scope !1840, !noalias !1846 %157 = fadd <8 x double> %143, %150 %158 = shufflevector <8 x double> %157, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %141, %158 %_4.i57.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %140, <8 x double> %157, <8 x double> %159, i32 noundef 4) #23 store <8 x double> %_4.i57.2, ptr %135, align 8, !alias.scope !1840, !noalias !1846 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %data.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %data.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %data.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %160 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1 %w1.0617.us.i.3 = load <2 x float>, ptr %160, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %161 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1, i32 1 %w1.1618.us.i.3 = load <2 x float>, ptr %161, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %162 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2 %w2.0619.us.i.3 = load <2 x float>, ptr %162, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %163 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2, i32 1 %w2.1620.us.i.3 = load <2 x float>, ptr %163, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %164 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3 %w3.0621.us.i.3 = load <2 x float>, ptr %164, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %165 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3, i32 1 %w3.1622.us.i.3 = load <2 x float>, ptr %165, align 8, !alias.scope !1842, !noalias !1844, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w1.0617.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w1.1618.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.3, <4 x i32> %166 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w2.0619.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w2.1620.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.3, <4 x i32> %167 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w3.0621.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w3.1622.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.3, <4 x i32> %168 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.3 to <2 x double> %169 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %170 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %171 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %172 = shufflevector <2 x double> %166, <2 x double> poison, <8 x i32> zeroinitializer %173 = shufflevector <2 x double> %166, <2 x double> poison, <8 x i32> %174 = shufflevector <2 x double> %167, <2 x double> poison, <8 x i32> zeroinitializer %175 = shufflevector <2 x double> %167, <2 x double> poison, <8 x i32> %176 = shufflevector <2 x double> %168, <2 x double> poison, <8 x i32> zeroinitializer %177 = shufflevector <2 x double> %168, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1837, !noalias !1845 %b.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1837, !noalias !1845 %c.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1837, !noalias !1845 %d.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1837, !noalias !1845 %178 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %c.sroa.0.0.copyload.us.i.3 %179 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %c.sroa.0.0.copyload.us.i.3 %180 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.3, %d.sroa.0.0.copyload.us.i.3 %181 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.3, %d.sroa.0.0.copyload.us.i.3 %182 = bitcast <8 x double> %181 to <8 x i64> %183 = xor <8 x i64> %182, %184 = fadd <8 x double> %178, %180 store <8 x double> %184, ptr %data.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1840, !noalias !1846 %185 = bitcast <8 x i64> %183 to <8 x double> %186 = shufflevector <8 x double> %185, <8 x double> poison, <8 x i32> %187 = fsub <8 x double> %179, %186 %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = fmul <8 x double> %173, %188 %_4.i59.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %187, <8 x double> %189, i32 noundef 4) #23 store <8 x double> %_4.i59.3, ptr %170, align 8, !alias.scope !1840, !noalias !1846 %190 = fsub <8 x double> %178, %180 %191 = shufflevector <8 x double> %190, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %175, %191 %_4.i58.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %174, <8 x double> %190, <8 x double> %192, i32 noundef 4) #23 store <8 x double> %_4.i58.3, ptr %169, align 8, !alias.scope !1840, !noalias !1846 %193 = fadd <8 x double> %179, %186 %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = fmul <8 x double> %177, %194 %_4.i57.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %193, <8 x double> %195, i32 noundef 4) #23 store <8 x double> %_4.i57.3, ptr %171, align 8, !alias.scope !1840, !noalias !1846 %_43.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1824 %_44.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !1824 %_45.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1824 %_46.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !1824 %196 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %197 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %198 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %199 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %200 = bitcast <8 x double> %199 to <8 x i64> %201 = xor <8 x i64> %200, %202 = fadd <8 x double> %196, %198 %203 = bitcast <8 x i64> %201 to <8 x double> %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = fsub <8 x double> %197, %204 %206 = fsub <8 x double> %196, %198 %207 = fadd <8 x double> %197, %204 store <8 x double> %202, ptr %buf.0.i, align 8, !noalias !1824 store <8 x double> %205, ptr %8, align 8, !noalias !1824 store <8 x double> %206, ptr %7, align 8, !noalias !1824 store <8 x double> %207, ptr %9, align 8, !noalias !1824 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_43.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1824 %_44.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1824 %_45.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1824 %_46.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1824 %208 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.i.sroa.0.0.copyload.1 %209 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.i.sroa.0.0.copyload.1 %210 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.i.sroa.0.0.copyload.1 %211 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.i.sroa.0.0.copyload.1 %212 = bitcast <8 x double> %211 to <8 x i64> %213 = xor <8 x i64> %212, %214 = fadd <8 x double> %208, %210 %215 = bitcast <8 x i64> %213 to <8 x double> %216 = shufflevector <8 x double> %215, <8 x double> poison, <8 x i32> %217 = fsub <8 x double> %209, %216 %218 = fsub <8 x double> %208, %210 %219 = fadd <8 x double> %209, %216 store <8 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1824 store <8 x double> %217, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1824 store <8 x double> %218, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1824 store <8 x double> %219, ptr %_3.i.i.i.i.1, align 8, !noalias !1824 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_43.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1824 %_44.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1824 %_45.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1824 %_46.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1824 %220 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.i.sroa.0.0.copyload.2 %221 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.i.sroa.0.0.copyload.2 %222 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.i.sroa.0.0.copyload.2 %223 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.i.sroa.0.0.copyload.2 %224 = bitcast <8 x double> %223 to <8 x i64> %225 = xor <8 x i64> %224, %226 = fadd <8 x double> %220, %222 %227 = bitcast <8 x i64> %225 to <8 x double> %228 = shufflevector <8 x double> %227, <8 x double> poison, <8 x i32> %229 = fsub <8 x double> %221, %228 %230 = fsub <8 x double> %220, %222 %231 = fadd <8 x double> %221, %228 store <8 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1824 store <8 x double> %229, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1824 store <8 x double> %230, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1824 store <8 x double> %231, ptr %_3.i.i.i.i.2, align 8, !noalias !1824 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_43.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1824 %_44.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1824 %_45.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1824 %_46.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1824 %232 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.i.sroa.0.0.copyload.3 %233 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.i.sroa.0.0.copyload.3 %234 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.i.sroa.0.0.copyload.3 %235 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.i.sroa.0.0.copyload.3 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = fadd <8 x double> %232, %234 %239 = bitcast <8 x i64> %237 to <8 x double> %240 = shufflevector <8 x double> %239, <8 x double> poison, <8 x i32> %241 = fsub <8 x double> %233, %240 %242 = fsub <8 x double> %232, %234 %243 = fadd <8 x double> %233, %240 store <8 x double> %238, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1824 store <8 x double> %241, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1824 store <8 x double> %242, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1824 store <8 x double> %243, ptr %_3.i.i.i.i.3, align 8, !noalias !1824 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1824 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc557dca8d654a097E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1847) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1847, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1847, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1847, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1847, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1847, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1847, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1847, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1847, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1847 store i64 64, ptr %n.i, align 8, !noalias !1847 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1847 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1847 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1847 store ptr null, ptr %_16.i, align 8, !noalias !1847 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1847 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1847 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1847 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1847 store ptr null, ptr %_24.i, align 8, !noalias !1847 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1847 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1847 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1847 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1847 store ptr null, ptr %_32.i, align 8, !noalias !1847 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1847 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1847 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1847 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0ad08f9affb3cd32E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1847 store ptr null, ptr %_40.i, align 8, !noalias !1847 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0ad08f9affb3cd32E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1847 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_43.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1850 %_44.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !1850 %_45.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !1850 %_46.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !1850 %10 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %11 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload, %_45.i.i.i.sroa.0.0.copyload %12 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload, %_46.i.i.i.sroa.0.0.copyload %14 = bitcast <8 x double> %13 to <8 x i64> %15 = xor <8 x i64> %14, %16 = bitcast <8 x i64> %15 to <8 x double> %17 = shufflevector <8 x double> %16, <8 x double> poison, <8 x i32> %18 = fadd <8 x double> %10, %12 %19 = fsub <8 x double> %11, %17 %20 = fsub <8 x double> %10, %12 %21 = fadd <8 x double> %11, %17 store <8 x double> %18, ptr %buf.0.i, align 8, !noalias !1850 store <8 x double> %19, ptr %8, align 8, !noalias !1850 store <8 x double> %20, ptr %7, align 8, !noalias !1850 store <8 x double> %21, ptr %9, align 8, !noalias !1850 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_43.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1850 %_44.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1850 %_45.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1850 %_46.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !1850 %22 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.sroa.0.0.copyload.1 %23 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.sroa.0.0.copyload.1 %24 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.sroa.0.0.copyload.1 %25 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.sroa.0.0.copyload.1 %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = bitcast <8 x i64> %27 to <8 x double> %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = fadd <8 x double> %22, %24 %31 = fsub <8 x double> %23, %29 %32 = fsub <8 x double> %22, %24 %33 = fadd <8 x double> %23, %29 store <8 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1850 store <8 x double> %31, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !1850 store <8 x double> %32, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1850 store <8 x double> %33, ptr %_3.i.i.i.i.1, align 8, !noalias !1850 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_43.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1850 %_44.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1850 %_45.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1850 %_46.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !1850 %34 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.sroa.0.0.copyload.2 %35 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.sroa.0.0.copyload.2 %36 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.sroa.0.0.copyload.2 %37 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.sroa.0.0.copyload.2 %38 = bitcast <8 x double> %37 to <8 x i64> %39 = xor <8 x i64> %38, %40 = bitcast <8 x i64> %39 to <8 x double> %41 = shufflevector <8 x double> %40, <8 x double> poison, <8 x i32> %42 = fadd <8 x double> %34, %36 %43 = fsub <8 x double> %35, %41 %44 = fsub <8 x double> %34, %36 %45 = fadd <8 x double> %35, %41 store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1850 store <8 x double> %43, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !1850 store <8 x double> %44, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1850 store <8 x double> %45, ptr %_3.i.i.i.i.2, align 8, !noalias !1850 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_43.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1850 %_44.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1850 %_45.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1850 %_46.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !1850 %46 = fadd <8 x double> %_43.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.sroa.0.0.copyload.3 %47 = fsub <8 x double> %_43.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.sroa.0.0.copyload.3 %48 = fadd <8 x double> %_44.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.sroa.0.0.copyload.3 %49 = fsub <8 x double> %_44.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.sroa.0.0.copyload.3 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = bitcast <8 x i64> %51 to <8 x double> %53 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %54 = fadd <8 x double> %46, %48 %55 = fsub <8 x double> %47, %53 %56 = fsub <8 x double> %46, %48 %57 = fadd <8 x double> %47, %53 store <8 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1850 store <8 x double> %55, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !1850 store <8 x double> %56, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1850 store <8 x double> %57, ptr %_3.i.i.i.i.3, align 8, !noalias !1850 tail call void @llvm.experimental.noalias.scope.decl(metadata !1854) tail call void @llvm.experimental.noalias.scope.decl(metadata !1857) tail call void @llvm.experimental.noalias.scope.decl(metadata !1859) %58 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %59 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %60 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0614.us.i = load <2 x float>, ptr %61, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1615.us.i = load <2 x float>, ptr %62, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0616.us.i = load <2 x float>, ptr %63, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1617.us.i = load <2 x float>, ptr %64, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0618.us.i = load <2 x float>, ptr %65, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1619.us.i = load <2 x float>, ptr %66, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0614.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1615.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %67 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0616.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1617.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %68 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0618.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1619.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %69 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %73 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> zeroinitializer %74 = shufflevector <2 x double> %67, <2 x double> poison, <8 x i32> %75 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> zeroinitializer %76 = shufflevector <2 x double> %68, <2 x double> poison, <8 x i32> %77 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> zeroinitializer %78 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !1857, !noalias !1862 %_84.sroa.0.0.copyload.us.i = load <8 x double>, ptr %71, align 8, !alias.scope !1857, !noalias !1862 %79 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %80 = fmul <8 x double> %74, %79 %_4.i53 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %73, <8 x double> %_84.sroa.0.0.copyload.us.i, <8 x double> %80, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i = load <8 x double>, ptr %70, align 8, !alias.scope !1857, !noalias !1862 %81 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %76, %81 %_4.i52 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %_86.sroa.0.0.copyload.us.i, <8 x double> %82, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i = load <8 x double>, ptr %72, align 8, !alias.scope !1857, !noalias !1862 %83 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %78, %83 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %77, <8 x double> %_88.sroa.0.0.copyload.us.i, <8 x double> %84, i32 noundef 4) #23 %85 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i52 %86 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %_4.i52 %87 = fadd <8 x double> %_4.i53, %_4.i %88 = fsub <8 x double> %_4.i53, %_4.i %89 = bitcast <8 x double> %88 to <8 x i64> %90 = xor <8 x i64> %89, %91 = bitcast <8 x i64> %90 to <8 x double> %92 = shufflevector <8 x double> %91, <8 x double> poison, <8 x i32> %93 = fadd <8 x double> %85, %87 store <8 x double> %93, ptr %scratch.0.i, align 8, !alias.scope !1854, !noalias !1863 %94 = fsub <8 x double> %86, %92 store <8 x double> %94, ptr %59, align 8, !alias.scope !1854, !noalias !1863 %95 = fsub <8 x double> %85, %87 store <8 x double> %95, ptr %60, align 8, !alias.scope !1854, !noalias !1863 %96 = fadd <8 x double> %86, %92 store <8 x double> %96, ptr %58, align 8, !alias.scope !1854, !noalias !1863 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %data.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0614.us.i.1 = load <2 x float>, ptr %97, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1615.us.i.1 = load <2 x float>, ptr %98, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0616.us.i.1 = load <2 x float>, ptr %99, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1617.us.i.1 = load <2 x float>, ptr %100, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0618.us.i.1 = load <2 x float>, ptr %101, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1619.us.i.1 = load <2 x float>, ptr %102, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0614.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1615.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %103 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0616.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1617.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %104 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0618.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1619.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %105 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %106 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %107 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %108 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %109 = shufflevector <2 x double> %103, <2 x double> poison, <8 x i32> zeroinitializer %110 = shufflevector <2 x double> %103, <2 x double> poison, <8 x i32> %111 = shufflevector <2 x double> %104, <2 x double> poison, <8 x i32> zeroinitializer %112 = shufflevector <2 x double> %104, <2 x double> poison, <8 x i32> %113 = shufflevector <2 x double> %105, <2 x double> poison, <8 x i32> zeroinitializer %114 = shufflevector <2 x double> %105, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1857, !noalias !1862 %_84.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %107, align 8, !alias.scope !1857, !noalias !1862 %115 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %116 = fmul <8 x double> %110, %115 %_4.i53.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %109, <8 x double> %_84.sroa.0.0.copyload.us.i.1, <8 x double> %116, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %106, align 8, !alias.scope !1857, !noalias !1862 %117 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %112, %117 %_4.i52.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %111, <8 x double> %_86.sroa.0.0.copyload.us.i.1, <8 x double> %118, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %108, align 8, !alias.scope !1857, !noalias !1862 %119 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> poison, <8 x i32> %120 = fmul <8 x double> %114, %119 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %113, <8 x double> %_88.sroa.0.0.copyload.us.i.1, <8 x double> %120, i32 noundef 4) #23 %121 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i52.1 %122 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %_4.i52.1 %123 = fadd <8 x double> %_4.i53.1, %_4.i.1 %124 = fsub <8 x double> %_4.i53.1, %_4.i.1 %125 = bitcast <8 x double> %124 to <8 x i64> %126 = xor <8 x i64> %125, %127 = bitcast <8 x i64> %126 to <8 x double> %128 = shufflevector <8 x double> %127, <8 x double> poison, <8 x i32> %129 = fadd <8 x double> %121, %123 store <8 x double> %129, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1854, !noalias !1863 %130 = fsub <8 x double> %122, %128 store <8 x double> %130, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1854, !noalias !1863 %131 = fsub <8 x double> %121, %123 store <8 x double> %131, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1854, !noalias !1863 %132 = fadd <8 x double> %122, %128 store <8 x double> %132, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !1854, !noalias !1863 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %data.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %data.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %data.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %133 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1 %w1.0614.us.i.2 = load <2 x float>, ptr %133, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %134 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1, i32 1 %w1.1615.us.i.2 = load <2 x float>, ptr %134, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %135 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2 %w2.0616.us.i.2 = load <2 x float>, ptr %135, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %136 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2, i32 1 %w2.1617.us.i.2 = load <2 x float>, ptr %136, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %137 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3 %w3.0618.us.i.2 = load <2 x float>, ptr %137, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %138 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3, i32 1 %w3.1619.us.i.2 = load <2 x float>, ptr %138, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w1.0614.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w1.1615.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.2, <4 x i32> %139 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w2.0616.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w2.1617.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.2, <4 x i32> %140 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w3.0618.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w3.1619.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.2, <4 x i32> %141 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.2 to <2 x double> %142 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %143 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %144 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %145 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> zeroinitializer %146 = shufflevector <2 x double> %139, <2 x double> poison, <8 x i32> %147 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> zeroinitializer %148 = shufflevector <2 x double> %140, <2 x double> poison, <8 x i32> %149 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> zeroinitializer %150 = shufflevector <2 x double> %141, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1857, !noalias !1862 %_84.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %143, align 8, !alias.scope !1857, !noalias !1862 %151 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %152 = fmul <8 x double> %146, %151 %_4.i53.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %145, <8 x double> %_84.sroa.0.0.copyload.us.i.2, <8 x double> %152, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %142, align 8, !alias.scope !1857, !noalias !1862 %153 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %148, %153 %_4.i52.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %147, <8 x double> %_86.sroa.0.0.copyload.us.i.2, <8 x double> %154, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %144, align 8, !alias.scope !1857, !noalias !1862 %155 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %150, %155 %_4.i.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %149, <8 x double> %_88.sroa.0.0.copyload.us.i.2, <8 x double> %156, i32 noundef 4) #23 %157 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i52.2 %158 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %_4.i52.2 %159 = fadd <8 x double> %_4.i53.2, %_4.i.2 %160 = fsub <8 x double> %_4.i53.2, %_4.i.2 %161 = bitcast <8 x double> %160 to <8 x i64> %162 = xor <8 x i64> %161, %163 = bitcast <8 x i64> %162 to <8 x double> %164 = shufflevector <8 x double> %163, <8 x double> poison, <8 x i32> %165 = fadd <8 x double> %157, %159 store <8 x double> %165, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1854, !noalias !1863 %166 = fsub <8 x double> %158, %164 store <8 x double> %166, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1854, !noalias !1863 %167 = fsub <8 x double> %157, %159 store <8 x double> %167, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1854, !noalias !1863 %168 = fadd <8 x double> %158, %164 store <8 x double> %168, ptr %data.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !1854, !noalias !1863 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %data.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %data.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %data.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %169 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1 %w1.0614.us.i.3 = load <2 x float>, ptr %169, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %170 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1, i32 1 %w1.1615.us.i.3 = load <2 x float>, ptr %170, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %171 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2 %w2.0616.us.i.3 = load <2 x float>, ptr %171, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %172 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2, i32 1 %w2.1617.us.i.3 = load <2 x float>, ptr %172, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %173 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3 %w3.0618.us.i.3 = load <2 x float>, ptr %173, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %174 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3, i32 1 %w3.1619.us.i.3 = load <2 x float>, ptr %174, align 8, !alias.scope !1859, !noalias !1861, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w1.0614.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w1.1615.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.3, <4 x i32> %175 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w2.0616.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w2.1617.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.3, <4 x i32> %176 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w3.0618.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w3.1619.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.3, <4 x i32> %177 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.3 to <2 x double> %178 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %179 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %180 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %181 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> zeroinitializer %182 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> %183 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> zeroinitializer %184 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> %185 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> zeroinitializer %186 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1857, !noalias !1862 %_84.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %179, align 8, !alias.scope !1857, !noalias !1862 %187 = shufflevector <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %188 = fmul <8 x double> %182, %187 %_4.i53.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %181, <8 x double> %_84.sroa.0.0.copyload.us.i.3, <8 x double> %188, i32 noundef 4) #23 %_86.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %178, align 8, !alias.scope !1857, !noalias !1862 %189 = shufflevector <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %190 = fmul <8 x double> %184, %189 %_4.i52.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %183, <8 x double> %_86.sroa.0.0.copyload.us.i.3, <8 x double> %190, i32 noundef 4) #23 %_88.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %180, align 8, !alias.scope !1857, !noalias !1862 %191 = shufflevector <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %186, %191 %_4.i.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %_88.sroa.0.0.copyload.us.i.3, <8 x double> %192, i32 noundef 4) #23 %193 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i52.3 %194 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %_4.i52.3 %195 = fadd <8 x double> %_4.i53.3, %_4.i.3 %196 = fsub <8 x double> %_4.i53.3, %_4.i.3 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fadd <8 x double> %193, %195 store <8 x double> %201, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1854, !noalias !1863 %202 = fsub <8 x double> %194, %200 store <8 x double> %202, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1854, !noalias !1863 %203 = fsub <8 x double> %193, %195 store <8 x double> %203, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1854, !noalias !1863 %204 = fadd <8 x double> %194, %200 store <8 x double> %204, ptr %data.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !1854, !noalias !1863 tail call void @llvm.experimental.noalias.scope.decl(metadata !1864) tail call void @llvm.experimental.noalias.scope.decl(metadata !1867) tail call void @llvm.experimental.noalias.scope.decl(metadata !1869) %205 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %206 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %207 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 br label %bb15.i50 bb15.i50: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0ad08f9affb3cd32E.exit", %bb15.i50 %iter.sroa.50.0449.i = phi i64 [ %208, %bb15.i50 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0ad08f9affb3cd32E.exit" ] %208 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %206, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %205, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %207, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1869, !noalias !1871 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1869, !noalias !1871 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1869, !noalias !1871 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1867, !noalias !1872 %209 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %209, align 8, !alias.scope !1867, !noalias !1872 %210 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %210, align 8, !alias.scope !1867, !noalias !1872 %211 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %211, align 8, !alias.scope !1867, !noalias !1872 %212 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %213 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %214 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %215 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %216 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %217 = shufflevector <8 x double> %212, <8 x double> %214, <8 x i32> %218 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %219 = shufflevector <8 x double> %213, <8 x double> %215, <8 x i32> %220 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %223 = fmul <8 x double> %222, %220 %_4.i56 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %221, <8 x double> %218, <8 x double> %223, i32 noundef 4) #23 %224 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = fmul <8 x double> %226, %224 %_4.i55 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %225, <8 x double> %217, <8 x double> %227, i32 noundef 4) #23 %228 = shufflevector <8 x double> %219, <8 x double> poison, <8 x i32> %229 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %230, %228 %_4.i54 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %229, <8 x double> %219, <8 x double> %231, i32 noundef 4) #23 %232 = fadd <8 x double> %216, %_4.i55 %233 = fsub <8 x double> %216, %_4.i55 %234 = fadd <8 x double> %_4.i56, %_4.i54 %235 = fsub <8 x double> %_4.i56, %_4.i54 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = bitcast <8 x i64> %237 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fadd <8 x double> %232, %234 store <8 x double> %240, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1864, !noalias !1873 %241 = fsub <8 x double> %233, %239 store <8 x double> %241, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1864, !noalias !1873 %242 = fsub <8 x double> %232, %234 store <8 x double> %242, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1864, !noalias !1873 %243 = fadd <8 x double> %233, %239 store <8 x double> %243, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1864, !noalias !1873 %exitcond.not.i51 = icmp eq i64 %208, 4 br i1 %exitcond.not.i51, label %_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit, label %bb15.i50 _ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E.exit: ; preds = %bb15.i50 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1847 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc6c70094a8e295fbE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1874) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1874, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1874, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1874, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1874, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1874, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1874, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1874, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1874 store i64 64, ptr %n.i, align 8, !noalias !1874 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1874 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1874 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1874 store ptr null, ptr %_16.i, align 8, !noalias !1874 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1874 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1874 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1874 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1874 store ptr null, ptr %_24.i, align 8, !noalias !1874 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1874 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1874 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1874 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1874 store ptr null, ptr %_32.i, align 8, !noalias !1874 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1874 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1874 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1874 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce6117a7f3f609e1E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1874 store ptr null, ptr %_40.i, align 8, !noalias !1874 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce6117a7f3f609e1E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1874 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !1877 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %15, align 8, !noalias !1877 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %14, align 8, !noalias !1877 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %16, align 8, !noalias !1877 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %13, align 8, !noalias !1877 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %18, align 8, !noalias !1877 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %17, align 8, !noalias !1877 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %19, align 8, !noalias !1877 %20 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %21 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %22 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %23 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %24 = bitcast <8 x double> %23 to <8 x i64> %25 = xor <8 x i64> %24, %26 = bitcast <8 x i64> %25 to <8 x double> %27 = shufflevector <8 x double> %26, <8 x double> poison, <8 x i32> %28 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %29 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %30 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %31 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %32 = bitcast <8 x double> %31 to <8 x i64> %33 = xor <8 x i64> %32, %34 = bitcast <8 x i64> %33 to <8 x double> %35 = shufflevector <8 x double> %34, <8 x double> poison, <8 x i32> %36 = fadd <8 x double> %20, %22 %37 = fsub <8 x double> %21, %27 %38 = fsub <8 x double> %20, %22 %39 = fadd <8 x double> %21, %27 %40 = fadd <8 x double> %28, %30 %41 = fsub <8 x double> %29, %35 %42 = bitcast <8 x double> %41 to <8 x i64> %43 = xor <8 x i64> %42, %44 = bitcast <8 x i64> %43 to <8 x double> %45 = shufflevector <8 x double> %44, <8 x double> poison, <8 x i32> %46 = fadd <8 x double> %41, %45 %47 = fmul <8 x double> %46, %48 = fsub <8 x double> %28, %30 %49 = bitcast <8 x double> %48 to <8 x i64> %50 = xor <8 x i64> %49, %51 = bitcast <8 x i64> %50 to <8 x double> %52 = shufflevector <8 x double> %51, <8 x double> poison, <8 x i32> %53 = fadd <8 x double> %29, %35 %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %53, %57 %59 = fmul <8 x double> %58, %60 = fadd <8 x double> %36, %40 %61 = fadd <8 x double> %37, %47 %62 = fsub <8 x double> %38, %52 %63 = fsub <8 x double> %39, %59 %64 = fsub <8 x double> %36, %40 %65 = fsub <8 x double> %37, %47 %66 = fadd <8 x double> %38, %52 %67 = fadd <8 x double> %39, %59 store <8 x double> %60, ptr %scratch.0.i, align 8, !noalias !1877 store <8 x double> %61, ptr %8, align 8, !noalias !1877 store <8 x double> %62, ptr %7, align 8, !noalias !1877 store <8 x double> %63, ptr %9, align 8, !noalias !1877 store <8 x double> %64, ptr %6, align 8, !noalias !1877 store <8 x double> %65, ptr %11, align 8, !noalias !1877 store <8 x double> %66, ptr %10, align 8, !noalias !1877 store <8 x double> %67, ptr %12, align 8, !noalias !1877 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i.i.i.i.i38.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_120.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.1, align 8, !noalias !1877 %_121.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.1, align 8, !noalias !1877 %_122.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.1, align 8, !noalias !1877 %_123.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.1, align 8, !noalias !1877 %_124.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.1, align 8, !noalias !1877 %_125.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.1, align 8, !noalias !1877 %_126.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.1, align 8, !noalias !1877 %_127.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.1, align 8, !noalias !1877 %68 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %69 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload.1, %_124.i.i.i.sroa.0.0.copyload.1 %70 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %71 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload.1, %_126.i.i.i.sroa.0.0.copyload.1 %72 = bitcast <8 x double> %71 to <8 x i64> %73 = xor <8 x i64> %72, %74 = bitcast <8 x i64> %73 to <8 x double> %75 = shufflevector <8 x double> %74, <8 x double> poison, <8 x i32> %76 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %77 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload.1, %_125.i.i.i.sroa.0.0.copyload.1 %78 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %79 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload.1, %_127.i.i.i.sroa.0.0.copyload.1 %80 = bitcast <8 x double> %79 to <8 x i64> %81 = xor <8 x i64> %80, %82 = bitcast <8 x i64> %81 to <8 x double> %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fadd <8 x double> %68, %70 %85 = fsub <8 x double> %69, %75 %86 = fsub <8 x double> %68, %70 %87 = fadd <8 x double> %69, %75 %88 = fadd <8 x double> %76, %78 %89 = fsub <8 x double> %77, %83 %90 = bitcast <8 x double> %89 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x i64> %91 to <8 x double> %93 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %94 = fadd <8 x double> %89, %93 %95 = fmul <8 x double> %94, %96 = fsub <8 x double> %76, %78 %97 = bitcast <8 x double> %96 to <8 x i64> %98 = xor <8 x i64> %97, %99 = bitcast <8 x i64> %98 to <8 x double> %100 = shufflevector <8 x double> %99, <8 x double> poison, <8 x i32> %101 = fadd <8 x double> %77, %83 %102 = bitcast <8 x double> %101 to <8 x i64> %103 = xor <8 x i64> %102, %104 = bitcast <8 x i64> %103 to <8 x double> %105 = shufflevector <8 x double> %104, <8 x double> poison, <8 x i32> %106 = fadd <8 x double> %101, %105 %107 = fmul <8 x double> %106, %108 = fadd <8 x double> %84, %88 %109 = fadd <8 x double> %85, %95 %110 = fsub <8 x double> %86, %100 %111 = fsub <8 x double> %87, %107 %112 = fsub <8 x double> %84, %88 %113 = fsub <8 x double> %85, %95 %114 = fadd <8 x double> %86, %100 %115 = fadd <8 x double> %87, %107 store <8 x double> %108, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %109, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %111, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %113, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 store <8 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1877 tail call void @llvm.experimental.noalias.scope.decl(metadata !1881) tail call void @llvm.experimental.noalias.scope.decl(metadata !1884) tail call void @llvm.experimental.noalias.scope.decl(metadata !1886) %116 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %117 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %118 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %119 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %120 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce6117a7f3f609e1E.exit", %bb23.i %iter.sroa.106.01511.i = phi i64 [ %123, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce6117a7f3f609e1E.exit" ] %123 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %118, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %117, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %119, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %116, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %120, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1886, !noalias !1888 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1884, !noalias !1889 %124 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %124, align 8, !alias.scope !1884, !noalias !1889 %125 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %125, align 8, !alias.scope !1884, !noalias !1889 %126 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %126, align 8, !alias.scope !1884, !noalias !1889 %127 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %127, align 8, !alias.scope !1884, !noalias !1889 %128 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %128, align 8, !alias.scope !1884, !noalias !1889 %129 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %129, align 8, !alias.scope !1884, !noalias !1889 %130 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %130, align 8, !alias.scope !1884, !noalias !1889 %131 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %132 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %133 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %134 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %135 = shufflevector <8 x double> %131, <8 x double> %133, <8 x i32> %136 = shufflevector <8 x double> %131, <8 x double> %133, <8 x i32> %137 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %138 = shufflevector <8 x double> %132, <8 x double> %134, <8 x i32> %139 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %140 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %141 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %142 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %143 = shufflevector <8 x double> %139, <8 x double> %141, <8 x i32> %144 = shufflevector <8 x double> %139, <8 x double> %141, <8 x i32> %145 = shufflevector <8 x double> %140, <8 x double> %142, <8 x i32> %146 = shufflevector <8 x double> %140, <8 x double> %142, <8 x i32> %147 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %148 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %150 = fmul <8 x double> %149, %147 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %148, <8 x double> %137, <8 x double> %150, i32 noundef 4) #23 %151 = shufflevector <8 x double> %136, <8 x double> poison, <8 x i32> %152 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %153 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %153, %151 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %152, <8 x double> %136, <8 x double> %154, i32 noundef 4) #23 %155 = shufflevector <8 x double> %138, <8 x double> poison, <8 x i32> %156 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = fmul <8 x double> %157, %155 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %138, <8 x double> %158, i32 noundef 4) #23 %159 = shufflevector <8 x double> %143, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %161, %159 %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %143, <8 x double> %162, i32 noundef 4) #23 %163 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %145, <8 x double> %166, i32 noundef 4) #23 %167 = shufflevector <8 x double> %144, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = fmul <8 x double> %169, %167 %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %144, <8 x double> %170, i32 noundef 4) #23 %171 = shufflevector <8 x double> %146, <8 x double> poison, <8 x i32> %172 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %173 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %174 = fmul <8 x double> %173, %171 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %146, <8 x double> %174, i32 noundef 4) #23 %175 = fadd <8 x double> %135, %_4.i226 %176 = fsub <8 x double> %135, %_4.i226 %177 = fadd <8 x double> %_4.i228, %_4.i224 %178 = fsub <8 x double> %_4.i228, %_4.i224 %179 = bitcast <8 x double> %178 to <8 x i64> %180 = xor <8 x i64> %179, %181 = bitcast <8 x i64> %180 to <8 x double> %182 = shufflevector <8 x double> %181, <8 x double> poison, <8 x i32> %183 = fadd <8 x double> %_4.i229, %_4.i225 %184 = fsub <8 x double> %_4.i229, %_4.i225 %185 = fadd <8 x double> %_4.i227, %_4.i %186 = fsub <8 x double> %_4.i227, %_4.i %187 = bitcast <8 x double> %186 to <8 x i64> %188 = xor <8 x i64> %187, %189 = bitcast <8 x i64> %188 to <8 x double> %190 = shufflevector <8 x double> %189, <8 x double> poison, <8 x i32> %191 = fadd <8 x double> %175, %177 %192 = fadd <8 x double> %183, %185 %193 = fadd <8 x double> %191, %192 store <8 x double> %193, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %194 = fsub <8 x double> %191, %192 store <8 x double> %194, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %195 = fsub <8 x double> %176, %182 %196 = fsub <8 x double> %184, %190 %197 = bitcast <8 x double> %196 to <8 x i64> %198 = xor <8 x i64> %197, %199 = bitcast <8 x i64> %198 to <8 x double> %200 = shufflevector <8 x double> %199, <8 x double> poison, <8 x i32> %201 = fadd <8 x double> %196, %200 %202 = fmul <8 x double> %201, %203 = fadd <8 x double> %195, %202 store <8 x double> %203, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %204 = fsub <8 x double> %195, %202 store <8 x double> %204, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %205 = fsub <8 x double> %175, %177 %206 = fsub <8 x double> %183, %185 %207 = bitcast <8 x double> %206 to <8 x i64> %208 = xor <8 x i64> %207, %209 = bitcast <8 x i64> %208 to <8 x double> %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fsub <8 x double> %205, %210 store <8 x double> %211, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %212 = fadd <8 x double> %205, %210 store <8 x double> %212, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %213 = fadd <8 x double> %176, %182 %214 = fadd <8 x double> %184, %190 %215 = bitcast <8 x double> %214 to <8 x i64> %216 = xor <8 x i64> %215, %217 = bitcast <8 x i64> %216 to <8 x double> %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = fadd <8 x double> %214, %218 %220 = fmul <8 x double> %219, %221 = fsub <8 x double> %213, %220 store <8 x double> %221, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %222 = fadd <8 x double> %213, %220 store <8 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1881, !noalias !1890 %exitcond.not.i = icmp eq i64 %123, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1874 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc6dce19fdfcbbc8bE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1891) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1891, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1891, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1891, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1891, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1891, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1891, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1891, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1891 store i64 64, ptr %n.i, align 8, !noalias !1891 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1891 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1891 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1891 store ptr null, ptr %_16.i, align 8, !noalias !1891 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1891 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1891 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1891 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1891 store ptr null, ptr %_24.i, align 8, !noalias !1891 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1891 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1891 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1891 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1891 store ptr null, ptr %_32.i, align 8, !noalias !1891 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1891 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1891 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1891 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93f60c7fca2857dcE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1891 store ptr null, ptr %_40.i, align 8, !noalias !1891 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93f60c7fca2857dcE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1891 tail call void @llvm.experimental.noalias.scope.decl(metadata !1894) tail call void @llvm.experimental.noalias.scope.decl(metadata !1897) tail call void @llvm.experimental.noalias.scope.decl(metadata !1899) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 9 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 11 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 13 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 15 %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %buf.0.i, align 8, !alias.scope !1894, !noalias !1901 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %9, align 8, !alias.scope !1894, !noalias !1901 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !1894, !noalias !1901 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %10, align 8, !alias.scope !1894, !noalias !1901 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !1894, !noalias !1901 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %12, align 8, !alias.scope !1894, !noalias !1901 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %11, align 8, !alias.scope !1894, !noalias !1901 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %13, align 8, !alias.scope !1894, !noalias !1901 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !1894, !noalias !1901 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %16, align 8, !alias.scope !1894, !noalias !1901 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %15, align 8, !alias.scope !1894, !noalias !1901 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %17, align 8, !alias.scope !1894, !noalias !1901 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %14, align 8, !alias.scope !1894, !noalias !1901 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %19, align 8, !alias.scope !1894, !noalias !1901 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %18, align 8, !alias.scope !1894, !noalias !1901 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %20, align 8, !alias.scope !1894, !noalias !1901 %36 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %37 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %38 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %39 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %40 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %41 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %42 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %43 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %44 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %45 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %46 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %47 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %48 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %49 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %50 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %51 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %52 = bitcast <8 x double> %39 to <8 x i64> %53 = xor <8 x i64> %52, %54 = bitcast <8 x double> %43 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x double> %47 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x double> %51 to <8 x i64> %59 = xor <8 x i64> %58, %60 = fadd <8 x double> %36, %38 %61 = bitcast <8 x i64> %53 to <8 x double> %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = fsub <8 x double> %37, %62 %64 = fsub <8 x double> %36, %38 %65 = fadd <8 x double> %37, %62 %66 = fadd <8 x double> %40, %42 %67 = bitcast <8 x i64> %55 to <8 x double> %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = fsub <8 x double> %41, %68 %70 = fsub <8 x double> %40, %42 %71 = fadd <8 x double> %41, %68 %72 = fadd <8 x double> %44, %46 %73 = bitcast <8 x i64> %57 to <8 x double> %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = fsub <8 x double> %45, %74 %76 = fsub <8 x double> %44, %46 %77 = fadd <8 x double> %45, %74 %78 = fadd <8 x double> %48, %50 %79 = bitcast <8 x i64> %59 to <8 x double> %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fsub <8 x double> %49, %80 %82 = fsub <8 x double> %48, %50 %83 = fadd <8 x double> %49, %80 %84 = bitcast <8 x double> %69 to <8 x i64> %85 = xor <8 x i64> %84, %86 = bitcast <8 x i64> %85 to <8 x double> %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = fadd <8 x double> %69, %87 %89 = fmul <8 x double> %88, %90 = bitcast <8 x double> %70 to <8 x i64> %91 = xor <8 x i64> %90, %92 = bitcast <8 x double> %71 to <8 x i64> %93 = xor <8 x i64> %92, %94 = bitcast <8 x i64> %93 to <8 x double> %95 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %96 = fadd <8 x double> %71, %95 %97 = fmul <8 x double> %96, %98 = fadd <8 x double> %60, %66 %99 = fadd <8 x double> %63, %89 %100 = bitcast <8 x i64> %91 to <8 x double> %101 = shufflevector <8 x double> %100, <8 x double> poison, <8 x i32> %102 = fsub <8 x double> %64, %101 %103 = fsub <8 x double> %65, %97 %104 = fsub <8 x double> %60, %66 %105 = fsub <8 x double> %63, %89 %106 = fadd <8 x double> %64, %101 %107 = fadd <8 x double> %65, %97 %108 = bitcast <8 x double> %81 to <8 x i64> %109 = xor <8 x i64> %108, %110 = bitcast <8 x i64> %109 to <8 x double> %111 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %112 = fadd <8 x double> %81, %111 %113 = fmul <8 x double> %112, %114 = bitcast <8 x double> %82 to <8 x i64> %115 = xor <8 x i64> %114, %116 = bitcast <8 x double> %83 to <8 x i64> %117 = xor <8 x i64> %116, %118 = bitcast <8 x i64> %117 to <8 x double> %119 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %120 = fadd <8 x double> %83, %119 %121 = fmul <8 x double> %120, %122 = fadd <8 x double> %72, %78 %123 = fadd <8 x double> %75, %113 %124 = bitcast <8 x i64> %115 to <8 x double> %125 = shufflevector <8 x double> %124, <8 x double> poison, <8 x i32> %126 = fsub <8 x double> %76, %125 %127 = fsub <8 x double> %77, %121 %128 = fsub <8 x double> %72, %78 %129 = fsub <8 x double> %75, %113 %130 = fadd <8 x double> %76, %125 %131 = fadd <8 x double> %77, %121 %132 = fmul <8 x double> %123, %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %123, <8 x double> %133, i32 noundef 4) #23 %134 = bitcast <8 x double> %126 to <8 x i64> %135 = xor <8 x i64> %134, %136 = bitcast <8 x i64> %135 to <8 x double> %137 = shufflevector <8 x double> %136, <8 x double> poison, <8 x i32> %138 = fadd <8 x double> %126, %137 %139 = fmul <8 x double> %138, %140 = fmul <8 x double> %127, %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %127, <8 x double> %141, i32 noundef 4) #23 %142 = bitcast <8 x double> %128 to <8 x i64> %143 = xor <8 x i64> %142, %144 = fmul <8 x double> %129, %145 = shufflevector <8 x double> %144, <8 x double> poison, <8 x i32> %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %129, <8 x double> %145, i32 noundef 4) #23 %146 = bitcast <8 x double> %130 to <8 x i64> %147 = xor <8 x i64> %146, %148 = bitcast <8 x i64> %147 to <8 x double> %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %150 = fadd <8 x double> %130, %149 %151 = fmul <8 x double> %150, %152 = fmul <8 x double> %131, %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %131, <8 x double> %153, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %24, align 8, !alias.scope !1899, !noalias !1902 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %23, align 8, !alias.scope !1899, !noalias !1902 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %25, align 8, !alias.scope !1899, !noalias !1902 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %22, align 8, !alias.scope !1899, !noalias !1902 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %27, align 8, !alias.scope !1899, !noalias !1902 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %26, align 8, !alias.scope !1899, !noalias !1902 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %28, align 8, !alias.scope !1899, !noalias !1902 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %21, align 8, !alias.scope !1899, !noalias !1902 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %31, align 8, !alias.scope !1899, !noalias !1902 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %30, align 8, !alias.scope !1899, !noalias !1902 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %32, align 8, !alias.scope !1899, !noalias !1902 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %29, align 8, !alias.scope !1899, !noalias !1902 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %34, align 8, !alias.scope !1899, !noalias !1902 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %33, align 8, !alias.scope !1899, !noalias !1902 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %35, align 8, !alias.scope !1899, !noalias !1902 %154 = fadd <8 x double> %98, %122 %155 = fadd <8 x double> %_4.i111, %99 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %158, %156 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %157, <8 x double> %155, <8 x double> %159, i32 noundef 4) #23 %160 = fadd <8 x double> %102, %139 %161 = shufflevector <8 x double> %160, <8 x double> poison, <8 x i32> %162 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %163 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %164 = fmul <8 x double> %163, %161 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %160, <8 x double> %164, i32 noundef 4) #23 %165 = fadd <8 x double> %_4.i110, %103 %166 = shufflevector <8 x double> %165, <8 x double> poison, <8 x i32> %167 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = fmul <8 x double> %168, %166 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %167, <8 x double> %165, <8 x double> %169, i32 noundef 4) #23 %170 = bitcast <8 x i64> %143 to <8 x double> %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fsub <8 x double> %104, %171 %173 = shufflevector <8 x double> %172, <8 x double> poison, <8 x i32> %174 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = fmul <8 x double> %175, %173 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %174, <8 x double> %172, <8 x double> %176, i32 noundef 4) #23 %177 = fsub <8 x double> %105, %_4.i109 %178 = shufflevector <8 x double> %177, <8 x double> poison, <8 x i32> %179 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %180 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %181 = fmul <8 x double> %180, %178 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %179, <8 x double> %177, <8 x double> %181, i32 noundef 4) #23 %182 = fsub <8 x double> %106, %151 %183 = shufflevector <8 x double> %182, <8 x double> poison, <8 x i32> %184 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = fmul <8 x double> %185, %183 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %184, <8 x double> %182, <8 x double> %186, i32 noundef 4) #23 %187 = fsub <8 x double> %107, %_4.i108 %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = fmul <8 x double> %190, %188 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %189, <8 x double> %187, <8 x double> %191, i32 noundef 4) #23 %192 = fsub <8 x double> %98, %122 %193 = shufflevector <8 x double> %192, <8 x double> poison, <8 x i32> %194 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = fmul <8 x double> %193, %195 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %192, <8 x double> %196, i32 noundef 4) #23 %197 = fsub <8 x double> %99, %_4.i111 %198 = shufflevector <8 x double> %197, <8 x double> poison, <8 x i32> %199 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %200 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %201 = fmul <8 x double> %200, %198 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %199, <8 x double> %197, <8 x double> %201, i32 noundef 4) #23 %202 = fsub <8 x double> %102, %139 %203 = shufflevector <8 x double> %202, <8 x double> poison, <8 x i32> %204 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %205 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %206 = fmul <8 x double> %205, %203 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %204, <8 x double> %202, <8 x double> %206, i32 noundef 4) #23 %207 = fsub <8 x double> %103, %_4.i110 %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %210 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %211 = fmul <8 x double> %208, %210 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %209, <8 x double> %207, <8 x double> %211, i32 noundef 4) #23 %212 = fadd <8 x double> %104, %171 %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %215 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %213, %215 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %214, <8 x double> %212, <8 x double> %216, i32 noundef 4) #23 %217 = fadd <8 x double> %_4.i109, %105 %218 = shufflevector <8 x double> %217, <8 x double> poison, <8 x i32> %219 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %220 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %221 = fmul <8 x double> %218, %220 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %219, <8 x double> %217, <8 x double> %221, i32 noundef 4) #23 %222 = fadd <8 x double> %106, %151 %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = fmul <8 x double> %223, %225 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %224, <8 x double> %222, <8 x double> %226, i32 noundef 4) #23 %227 = fadd <8 x double> %_4.i108, %107 %228 = shufflevector <8 x double> %227, <8 x double> poison, <8 x i32> %229 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = fmul <8 x double> %228, %230 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %229, <8 x double> %227, <8 x double> %231, i32 noundef 4) #23 %232 = shufflevector <8 x double> %154, <8 x double> %_4.i107, <8 x i32> %233 = shufflevector <8 x double> %154, <8 x double> %_4.i107, <8 x i32> %234 = shufflevector <8 x double> %_4.i106, <8 x double> %_4.i105, <8 x i32> %235 = shufflevector <8 x double> %_4.i106, <8 x double> %_4.i105, <8 x i32> %236 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %237 = shufflevector <8 x double> %232, <8 x double> %234, <8 x i32> %238 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %239 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %240 = shufflevector <8 x double> %_4.i104, <8 x double> %_4.i103, <8 x i32> %241 = shufflevector <8 x double> %_4.i104, <8 x double> %_4.i103, <8 x i32> %242 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %243 = shufflevector <8 x double> %_4.i102, <8 x double> %_4.i101, <8 x i32> %244 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %245 = shufflevector <8 x double> %240, <8 x double> %242, <8 x i32> %246 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %247 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %248 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i99, <8 x i32> %249 = shufflevector <8 x double> %_4.i100, <8 x double> %_4.i99, <8 x i32> %250 = shufflevector <8 x double> %_4.i98, <8 x double> %_4.i97, <8 x i32> %251 = shufflevector <8 x double> %_4.i98, <8 x double> %_4.i97, <8 x i32> %252 = shufflevector <8 x double> %248, <8 x double> %250, <8 x i32> %253 = shufflevector <8 x double> %248, <8 x double> %250, <8 x i32> %254 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %255 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %256 = shufflevector <8 x double> %_4.i96, <8 x double> %_4.i95, <8 x i32> %257 = shufflevector <8 x double> %_4.i96, <8 x double> %_4.i95, <8 x i32> %258 = shufflevector <8 x double> %_4.i94, <8 x double> %_4.i, <8 x i32> %259 = shufflevector <8 x double> %_4.i94, <8 x double> %_4.i, <8 x i32> %260 = shufflevector <8 x double> %256, <8 x double> %258, <8 x i32> %261 = shufflevector <8 x double> %256, <8 x double> %258, <8 x i32> %262 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %263 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> store <8 x double> %236, ptr %scratch.0.i, align 8, !alias.scope !1897, !noalias !1903 %264 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 1 store <8 x double> %244, ptr %264, align 8, !alias.scope !1897, !noalias !1903 %265 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 2 store <8 x double> %252, ptr %265, align 8, !alias.scope !1897, !noalias !1903 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 3 store <8 x double> %260, ptr %266, align 8, !alias.scope !1897, !noalias !1903 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 4 store <8 x double> %238, ptr %267, align 8, !alias.scope !1897, !noalias !1903 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 store <8 x double> %246, ptr %268, align 8, !alias.scope !1897, !noalias !1903 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 6 store <8 x double> %254, ptr %269, align 8, !alias.scope !1897, !noalias !1903 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 store <8 x double> %262, ptr %270, align 8, !alias.scope !1897, !noalias !1903 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 8 store <8 x double> %237, ptr %271, align 8, !alias.scope !1897, !noalias !1903 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 9 store <8 x double> %245, ptr %272, align 8, !alias.scope !1897, !noalias !1903 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 10 store <8 x double> %253, ptr %273, align 8, !alias.scope !1897, !noalias !1903 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 11 store <8 x double> %261, ptr %274, align 8, !alias.scope !1897, !noalias !1903 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 12 store <8 x double> %239, ptr %275, align 8, !alias.scope !1897, !noalias !1903 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 13 store <8 x double> %247, ptr %276, align 8, !alias.scope !1897, !noalias !1903 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 14 store <8 x double> %255, ptr %277, align 8, !alias.scope !1897, !noalias !1903 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 15 store <8 x double> %263, ptr %278, align 8, !alias.scope !1897, !noalias !1903 %279 = fadd <8 x double> %236, %237 %280 = fsub <8 x double> %236, %237 %281 = fadd <8 x double> %238, %239 %282 = fsub <8 x double> %238, %239 %283 = bitcast <8 x double> %282 to <8 x i64> %284 = xor <8 x i64> %283, %285 = fadd <8 x double> %279, %281 %286 = bitcast <8 x i64> %284 to <8 x double> %287 = shufflevector <8 x double> %286, <8 x double> poison, <8 x i32> %288 = fsub <8 x double> %280, %287 %289 = fsub <8 x double> %279, %281 %290 = fadd <8 x double> %280, %287 store <8 x double> %285, ptr %buf.0.i, align 8, !noalias !1891 store <8 x double> %288, ptr %7, align 8, !noalias !1891 store <8 x double> %289, ptr %6, align 8, !noalias !1891 store <8 x double> %290, ptr %14, align 8, !noalias !1891 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 13 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %264, align 8, !noalias !1891 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1891 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1891 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !1891 %291 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %292 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %293 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %294 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %295 = bitcast <8 x double> %294 to <8 x i64> %296 = xor <8 x i64> %295, %297 = fadd <8 x double> %291, %293 %298 = bitcast <8 x i64> %296 to <8 x double> %299 = shufflevector <8 x double> %298, <8 x double> poison, <8 x i32> %300 = fsub <8 x double> %292, %299 %301 = fsub <8 x double> %291, %293 %302 = fadd <8 x double> %292, %299 store <8 x double> %297, ptr %9, align 8, !noalias !1891 store <8 x double> %300, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !1891 store <8 x double> %301, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !1891 store <8 x double> %302, ptr %_3.i.i.i.i.1, align 8, !noalias !1891 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 14 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_73.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %265, align 8, !noalias !1891 %_74.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !1891 %_75.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !1891 %_76.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !1891 %303 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %304 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %305 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %306 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %307 = bitcast <8 x double> %306 to <8 x i64> %308 = xor <8 x i64> %307, %309 = fadd <8 x double> %303, %305 %310 = bitcast <8 x i64> %308 to <8 x double> %311 = shufflevector <8 x double> %310, <8 x double> poison, <8 x i32> %312 = fsub <8 x double> %304, %311 %313 = fsub <8 x double> %303, %305 %314 = fadd <8 x double> %304, %311 store <8 x double> %309, ptr %8, align 8, !noalias !1891 store <8 x double> %312, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !1891 store <8 x double> %313, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !1891 store <8 x double> %314, ptr %_3.i.i.i.i.2, align 8, !noalias !1891 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 15 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_73.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %266, align 8, !noalias !1891 %_74.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !1891 %_75.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !1891 %_76.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !1891 %315 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %316 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %317 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %318 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %319 = bitcast <8 x double> %318 to <8 x i64> %320 = xor <8 x i64> %319, %321 = fadd <8 x double> %315, %317 %322 = bitcast <8 x i64> %320 to <8 x double> %323 = shufflevector <8 x double> %322, <8 x double> poison, <8 x i32> %324 = fsub <8 x double> %316, %323 %325 = fsub <8 x double> %315, %317 %326 = fadd <8 x double> %316, %323 store <8 x double> %321, ptr %10, align 8, !noalias !1891 store <8 x double> %324, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !1891 store <8 x double> %325, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !1891 store <8 x double> %326, ptr %_3.i.i.i.i.3, align 8, !noalias !1891 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1891 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc8f4f6e5b2e7b1b3E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1904) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1904, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1904, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1904, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1904, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1904, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1904, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1904, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1904, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1904 store i64 1024, ptr %n.i, align 8, !noalias !1904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1904 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1904 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1904 store ptr null, ptr %_16.i, align 8, !noalias !1904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1904 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1904 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1904 store ptr null, ptr %_24.i, align 8, !noalias !1904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1904 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1904 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1904 store ptr null, ptr %_32.i, align 8, !noalias !1904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1904 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1904 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93db5a6cbd7d8eecE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1904 store ptr null, ptr %_40.i, align 8, !noalias !1904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93db5a6cbd7d8eecE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1904 tail call void @llvm.experimental.noalias.scope.decl(metadata !1907) tail call void @llvm.experimental.noalias.scope.decl(metadata !1910) tail call void @llvm.experimental.noalias.scope.decl(metadata !1912) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93db5a6cbd7d8eecE.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93db5a6cbd7d8eecE.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1912, !noalias !1914 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1912, !noalias !1914 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !1912, !noalias !1914 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1907, !noalias !1915 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1907, !noalias !1915 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1907, !noalias !1915 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1907, !noalias !1915 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = fadd <8 x double> %14, %16 %21 = bitcast <8 x i64> %19 to <8 x double> %22 = shufflevector <8 x double> %21, <8 x double> poison, <8 x i32> %23 = fsub <8 x double> %15, %22 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %22 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %20, <8 x double> %_4.i204, <8 x i32> %39 = shufflevector <8 x double> %20, <8 x double> %_4.i204, <8 x i32> %40 = shufflevector <8 x double> %_4.i203, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i203, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1910, !noalias !1916 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !1910, !noalias !1916 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !1910, !noalias !1916 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !1910, !noalias !1916 %exitcond.not.i = icmp eq i64 %13, 64 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !1917) tail call void @llvm.experimental.noalias.scope.decl(metadata !1920) tail call void @llvm.experimental.noalias.scope.decl(metadata !1922) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !1922, !noalias !1924, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !1922, !noalias !1924, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !1922, !noalias !1924, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !1922, !noalias !1924, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !1922, !noalias !1924, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !1922, !noalias !1924, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1917, !noalias !1925 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1917, !noalias !1925 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1917, !noalias !1925 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !1917, !noalias !1925 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = fadd <8 x double> %70, %72 store <8 x double> %76, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !1920, !noalias !1926 %77 = bitcast <8 x i64> %75 to <8 x double> %78 = shufflevector <8 x double> %77, <8 x double> poison, <8 x i32> %79 = fsub <8 x double> %71, %78 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i207, ptr %62, align 8, !alias.scope !1920, !noalias !1926 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i206, ptr %61, align 8, !alias.scope !1920, !noalias !1926 %85 = fadd <8 x double> %71, %78 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i205, ptr %63, align 8, !alias.scope !1920, !noalias !1926 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 64 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1927) tail call void @llvm.experimental.noalias.scope.decl(metadata !1930) tail call void @llvm.experimental.noalias.scope.decl(metadata !1932) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %iter.sroa.60.0648.us.i37 = phi i64 [ %179, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !1932, !noalias !1934, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !1932, !noalias !1934, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !1932, !noalias !1934, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !1932, !noalias !1934, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !1932, !noalias !1934, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !1932, !noalias !1934, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !1927, !noalias !1935 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !1927, !noalias !1935 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !1927, !noalias !1935 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !1927, !noalias !1935 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = fadd <8 x double> %107, %109 store <8 x double> %113, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !1930, !noalias !1936 %114 = bitcast <8 x i64> %112 to <8 x double> %115 = shufflevector <8 x double> %114, <8 x double> poison, <8 x i32> %116 = fsub <8 x double> %108, %115 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i210 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i210, ptr %99, align 8, !alias.scope !1930, !noalias !1936 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i209, ptr %98, align 8, !alias.scope !1930, !noalias !1936 %122 = fadd <8 x double> %108, %115 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i208, ptr %100, align 8, !alias.scope !1930, !noalias !1936 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !1927, !noalias !1935 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !1927, !noalias !1935 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !1927, !noalias !1935 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !1927, !noalias !1935 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = fadd <8 x double> %125, %127 store <8 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !1930, !noalias !1936 %132 = bitcast <8 x i64> %130 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fsub <8 x double> %126, %133 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i210.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i210.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !1930, !noalias !1936 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i209.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i209.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !1930, !noalias !1936 %140 = fadd <8 x double> %126, %133 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i208.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i208.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !1930, !noalias !1936 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !1927, !noalias !1935 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !1927, !noalias !1935 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !1927, !noalias !1935 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !1927, !noalias !1935 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = fadd <8 x double> %143, %145 store <8 x double> %149, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !1930, !noalias !1936 %150 = bitcast <8 x i64> %148 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fsub <8 x double> %144, %151 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i210.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i210.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !1930, !noalias !1936 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i209.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i209.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !1930, !noalias !1936 %158 = fadd <8 x double> %144, %151 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i208.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i208.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !1930, !noalias !1936 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !1927, !noalias !1935 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !1927, !noalias !1935 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !1927, !noalias !1935 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !1927, !noalias !1935 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = fadd <8 x double> %161, %163 store <8 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !1930, !noalias !1936 %168 = bitcast <8 x i64> %166 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = fsub <8 x double> %162, %169 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i210.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i210.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !1930, !noalias !1936 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i209.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i209.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !1930, !noalias !1936 %176 = fadd <8 x double> %162, %169 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i208.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i208.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !1930, !noalias !1936 %179 = add nuw nsw i64 %iter.sroa.60.0648.us.i37, 1 %exitcond618.not = icmp eq i64 %179, 16 br i1 %exitcond618.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91, label %bb22.us.i36 _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91: ; preds = %bb22.us.i36 tail call void @llvm.experimental.noalias.scope.decl(metadata !1937) tail call void @llvm.experimental.noalias.scope.decl(metadata !1940) tail call void @llvm.experimental.noalias.scope.decl(metadata !1942) br label %bb22.us.i111 bb22.us.i111: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91, %bb36.bb20.loopexit_crit_edge.us.i165 %iter.sroa.60.0648.us.i112 = phi i64 [ %217, %bb36.bb20.loopexit_crit_edge.us.i165 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit91 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 = shl i64 %iter.sroa.60.0648.us.i112, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115 = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %data.i.i.i.i.i.i.i.i.i.i.us.i116 = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %data.i.i.i.i.i.i.i.i.us.i117 = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i113 %start1.i.i.i.i.i.i.us.i118 = shl i64 %iter.sroa.60.0648.us.i112, 6 %data.i.i.i.i.i.i.us.i119 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i118 %180 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 1 %w1.0617.us.i120 = load <2 x float>, ptr %180, align 8, !alias.scope !1942, !noalias !1944, !noundef !3 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 1, i32 1 %w1.1618.us.i121 = load <2 x float>, ptr %181, align 8, !alias.scope !1942, !noalias !1944, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 2 %w2.0619.us.i122 = load <2 x float>, ptr %182, align 8, !alias.scope !1942, !noalias !1944, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 2, i32 1 %w2.1620.us.i123 = load <2 x float>, ptr %183, align 8, !alias.scope !1942, !noalias !1944, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 3 %w3.0621.us.i124 = load <2 x float>, ptr %184, align 8, !alias.scope !1942, !noalias !1944, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i118, i64 3, i32 1 %w3.1622.us.i125 = load <2 x float>, ptr %185, align 8, !alias.scope !1942, !noalias !1944, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i126 = shufflevector <2 x float> %w1.0617.us.i120, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i127 = shufflevector <2 x float> %w1.1618.us.i121, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i128 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i126, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i127, <4 x i32> %186 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i128 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i130 = shufflevector <2 x float> %w2.0619.us.i122, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i131 = shufflevector <2 x float> %w2.1620.us.i123, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i132 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i130, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i131, <4 x i32> %187 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i132 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i134 = shufflevector <2 x float> %w3.0621.us.i124, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i135 = shufflevector <2 x float> %w3.1622.us.i125, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i136 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i134, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i135, <4 x i32> %188 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i136 to <2 x double> %189 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 32 %190 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 16 %191 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 48 %192 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> zeroinitializer %193 = shufflevector <2 x double> %186, <2 x double> poison, <8 x i32> %194 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> zeroinitializer %195 = shufflevector <2 x double> %187, <2 x double> poison, <8 x i32> %196 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> zeroinitializer %197 = shufflevector <2 x double> %188, <2 x double> poison, <8 x i32> br label %bb38.us.i138 bb38.us.i138: ; preds = %bb38.us.i138, %bb22.us.i111 %iter5.sroa.50.0635.us.i139 = phi i64 [ 0, %bb22.us.i111 ], [ %198, %bb38.us.i138 ] %198 = add nuw nsw i64 %iter5.sroa.50.0635.us.i139, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i114, i64 %iter5.sroa.50.0635.us.i139 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i115, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i116, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i117, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.i.i.us.i144 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i119, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.i.i.us.i145 = getelementptr inbounds %"fft_simd::c64x4", ptr %190, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.i.i.us.i146 = getelementptr inbounds %"fft_simd::c64x4", ptr %189, i64 %iter5.sroa.50.0635.us.i139 %_3.i.i.i.i.us.i147 = getelementptr inbounds %"fft_simd::c64x4", ptr %191, i64 %iter5.sroa.50.0635.us.i139 %a.sroa.0.0.copyload.us.i148 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i140, align 8, !alias.scope !1937, !noalias !1945 %b.sroa.0.0.copyload.us.i149 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i141, align 8, !alias.scope !1937, !noalias !1945 %c.sroa.0.0.copyload.us.i150 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i142, align 8, !alias.scope !1937, !noalias !1945 %d.sroa.0.0.copyload.us.i151 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i143, align 8, !alias.scope !1937, !noalias !1945 %199 = fadd <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %200 = fsub <8 x double> %a.sroa.0.0.copyload.us.i148, %c.sroa.0.0.copyload.us.i150 %201 = fadd <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %202 = fsub <8 x double> %b.sroa.0.0.copyload.us.i149, %d.sroa.0.0.copyload.us.i151 %203 = bitcast <8 x double> %202 to <8 x i64> %204 = xor <8 x i64> %203, %205 = fadd <8 x double> %199, %201 store <8 x double> %205, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i144, align 8, !alias.scope !1940, !noalias !1946 %206 = bitcast <8 x i64> %204 to <8 x double> %207 = shufflevector <8 x double> %206, <8 x double> poison, <8 x i32> %208 = fsub <8 x double> %200, %207 %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = fmul <8 x double> %193, %209 %_4.i213 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %192, <8 x double> %208, <8 x double> %210, i32 noundef 4) #23 store <8 x double> %_4.i213, ptr %_3.i.i.i.i.i.i.i.i.us.i145, align 8, !alias.scope !1940, !noalias !1946 %211 = fsub <8 x double> %199, %201 %212 = shufflevector <8 x double> %211, <8 x double> poison, <8 x i32> %213 = fmul <8 x double> %195, %212 %_4.i212 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %211, <8 x double> %213, i32 noundef 4) #23 store <8 x double> %_4.i212, ptr %_3.i.i.i.i.i.i.us.i146, align 8, !alias.scope !1940, !noalias !1946 %214 = fadd <8 x double> %200, %207 %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fmul <8 x double> %197, %215 %_4.i211 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %214, <8 x double> %216, i32 noundef 4) #23 store <8 x double> %_4.i211, ptr %_3.i.i.i.i.us.i147, align 8, !alias.scope !1940, !noalias !1946 %exitcond.not.i164 = icmp eq i64 %198, 16 br i1 %exitcond.not.i164, label %bb36.bb20.loopexit_crit_edge.us.i165, label %bb38.us.i138 bb36.bb20.loopexit_crit_edge.us.i165: ; preds = %bb38.us.i138 %217 = add nuw nsw i64 %iter.sroa.60.0648.us.i112, 1 %exitcond619.not = icmp eq i64 %217, 4 br i1 %exitcond619.not, label %bb13.i.i.i.i.i, label %bb22.us.i111 bb13.i.i.i.i.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i165, %bb13.i.i.i.i.i %iter.i.i.i.i.i.sroa.22.0617 = phi i64 [ %218, %bb13.i.i.i.i.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i165 ] %218 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.22.0617, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.i.sroa.22.0617 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.i.sroa.22.0617 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.i.sroa.22.0617 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.i.sroa.22.0617 %_43.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1904 %_44.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1904 %_45.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1904 %_46.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1904 %219 = fadd <8 x double> %_43.i.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.i.sroa.0.0.copyload %220 = fsub <8 x double> %_43.i.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.i.sroa.0.0.copyload %221 = fadd <8 x double> %_44.i.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.i.sroa.0.0.copyload %222 = fsub <8 x double> %_44.i.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.i.sroa.0.0.copyload %223 = bitcast <8 x double> %222 to <8 x i64> %224 = xor <8 x i64> %223, %225 = fadd <8 x double> %219, %221 %226 = bitcast <8 x i64> %224 to <8 x double> %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fsub <8 x double> %220, %227 %229 = fsub <8 x double> %219, %221 %230 = fadd <8 x double> %220, %227 store <8 x double> %225, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1904 store <8 x double> %228, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1904 store <8 x double> %229, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1904 store <8 x double> %230, ptr %_3.i.i.i.i, align 8, !noalias !1904 %exitcond620.not = icmp eq i64 %218, 64 br i1 %exitcond620.not, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit", label %bb13.i.i.i.i.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit": ; preds = %bb13.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1904 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hce9b04a2e74430f1E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1947) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1947, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1947, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1947, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1947, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1947, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1947, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !1947, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !1947, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1947 store i64 1024, ptr %n.i, align 8, !noalias !1947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1947 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1947 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1947 store ptr null, ptr %_16.i, align 8, !noalias !1947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1947 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1947 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1947 store ptr null, ptr %_24.i, align 8, !noalias !1947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1947 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1947 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1947 store ptr null, ptr %_32.i, align 8, !noalias !1947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1947 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1947 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd3651cd2654ed5b9E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1947 store ptr null, ptr %_40.i, align 8, !noalias !1947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd3651cd2654ed5b9E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1947 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 br label %bb13.i.i.i.i bb13.i.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd3651cd2654ed5b9E.exit", %bb13.i.i.i.i %iter.i.i.i.i.sroa.22.01504 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd3651cd2654ed5b9E.exit" ], [ %10, %bb13.i.i.i.i ] %10 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.01504, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.22.01504 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.22.01504 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.22.01504 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.sroa.22.01504 %_43.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1950 %_44.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1950 %_45.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1950 %_46.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !1950 %11 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %12 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %13 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %14 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %15 = bitcast <8 x double> %14 to <8 x i64> %16 = xor <8 x i64> %15, %17 = fadd <8 x double> %11, %13 %18 = bitcast <8 x i64> %16 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fsub <8 x double> %12, %19 %21 = fsub <8 x double> %11, %13 %22 = fadd <8 x double> %12, %19 store <8 x double> %17, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1950 store <8 x double> %20, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !1950 store <8 x double> %21, ptr %_3.i.i.i.i.i.i, align 8, !noalias !1950 store <8 x double> %22, ptr %_3.i.i.i.i, align 8, !noalias !1950 %exitcond.not = icmp eq i64 %10, 64 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit", label %bb13.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit": ; preds = %bb13.i.i.i.i %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 tail call void @llvm.experimental.noalias.scope.decl(metadata !1957) tail call void @llvm.experimental.noalias.scope.decl(metadata !1960) tail call void @llvm.experimental.noalias.scope.decl(metadata !1962) %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 144 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 176 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 %36 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 208 %37 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 240 br label %bb46.i bb44.loopexit.i: ; preds = %bb98.i %38 = add nuw nsw i64 %iter.sroa.208.05263.i, 1 %exitcond1505.not = icmp eq i64 %38, 4 br i1 %exitcond1505.not, label %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit, label %bb46.i bb46.i: ; preds = %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit", %bb44.loopexit.i %iter.sroa.208.05263.i = phi i64 [ %38, %bb44.loopexit.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05263.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05263.i, 6 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %37, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %36, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.208.05263.i, 4 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.04940.i = load <2 x float>, ptr %39, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.14941.i = load <2 x float>, ptr %40, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.04942.i = load <2 x float>, ptr %41, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.14943.i = load <2 x float>, ptr %42, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.04944.i = load <2 x float>, ptr %43, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.14945.i = load <2 x float>, ptr %44, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.04946.i = load <2 x float>, ptr %45, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.14947.i = load <2 x float>, ptr %46, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.04948.i = load <2 x float>, ptr %47, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.14949.i = load <2 x float>, ptr %48, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.04950.i = load <2 x float>, ptr %49, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.14951.i = load <2 x float>, ptr %50, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.04952.i = load <2 x float>, ptr %51, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.14953.i = load <2 x float>, ptr %52, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8 %w8.04954.i = load <2 x float>, ptr %53, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 8, i32 1 %w8.14955.i = load <2 x float>, ptr %54, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9 %w9.04956.i = load <2 x float>, ptr %55, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 9, i32 1 %w9.14957.i = load <2 x float>, ptr %56, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10 %wa.04958.i = load <2 x float>, ptr %57, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 10, i32 1 %wa.14959.i = load <2 x float>, ptr %58, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11 %wb.04960.i = load <2 x float>, ptr %59, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 11, i32 1 %wb.14961.i = load <2 x float>, ptr %60, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12 %wc.04962.i = load <2 x float>, ptr %61, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 12, i32 1 %wc.14963.i = load <2 x float>, ptr %62, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13 %wd.04964.i = load <2 x float>, ptr %63, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 13, i32 1 %wd.14965.i = load <2 x float>, ptr %64, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14 %we.04966.i = load <2 x float>, ptr %65, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 14, i32 1 %we.14967.i = load <2 x float>, ptr %66, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15 %wf.04968.i = load <2 x float>, ptr %67, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 15, i32 1 %wf.14969.i = load <2 x float>, ptr %68, align 8, !alias.scope !1962, !noalias !1964, !noundef !3 %value.i394.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.04940.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.14941.i, <2 x float> poison, <4 x i32> %value.i394.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i394.sroa.0.0.vec.expand.i, <4 x float> %value.i394.sroa.0.8.vec.expand.i, <4 x i32> %69 = bitcast <4 x float> %value.i394.sroa.0.8.vecblend.i to <2 x double> %value.i390.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.04942.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.14943.i, <2 x float> poison, <4 x i32> %value.i390.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i390.sroa.0.0.vec.expand.i, <4 x float> %value.i390.sroa.0.8.vec.expand.i, <4 x i32> %70 = bitcast <4 x float> %value.i390.sroa.0.8.vecblend.i to <2 x double> %value.i386.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.04944.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.14945.i, <2 x float> poison, <4 x i32> %value.i386.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i386.sroa.0.0.vec.expand.i, <4 x float> %value.i386.sroa.0.8.vec.expand.i, <4 x i32> %71 = bitcast <4 x float> %value.i386.sroa.0.8.vecblend.i to <2 x double> %value.i382.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.04946.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.14947.i, <2 x float> poison, <4 x i32> %value.i382.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i382.sroa.0.0.vec.expand.i, <4 x float> %value.i382.sroa.0.8.vec.expand.i, <4 x i32> %72 = bitcast <4 x float> %value.i382.sroa.0.8.vecblend.i to <2 x double> %value.i378.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.04948.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.14949.i, <2 x float> poison, <4 x i32> %value.i378.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i378.sroa.0.0.vec.expand.i, <4 x float> %value.i378.sroa.0.8.vec.expand.i, <4 x i32> %73 = bitcast <4 x float> %value.i378.sroa.0.8.vecblend.i to <2 x double> %value.i374.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.04950.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.14951.i, <2 x float> poison, <4 x i32> %value.i374.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i374.sroa.0.0.vec.expand.i, <4 x float> %value.i374.sroa.0.8.vec.expand.i, <4 x i32> %74 = bitcast <4 x float> %value.i374.sroa.0.8.vecblend.i to <2 x double> %value.i370.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.04952.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.14953.i, <2 x float> poison, <4 x i32> %value.i370.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i370.sroa.0.0.vec.expand.i, <4 x float> %value.i370.sroa.0.8.vec.expand.i, <4 x i32> %75 = bitcast <4 x float> %value.i370.sroa.0.8.vecblend.i to <2 x double> %value.i366.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w8.04954.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w8.14955.i, <2 x float> poison, <4 x i32> %value.i366.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i366.sroa.0.0.vec.expand.i, <4 x float> %value.i366.sroa.0.8.vec.expand.i, <4 x i32> %76 = bitcast <4 x float> %value.i366.sroa.0.8.vecblend.i to <2 x double> %value.i362.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w9.04956.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w9.14957.i, <2 x float> poison, <4 x i32> %value.i362.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i362.sroa.0.0.vec.expand.i, <4 x float> %value.i362.sroa.0.8.vec.expand.i, <4 x i32> %77 = bitcast <4 x float> %value.i362.sroa.0.8.vecblend.i to <2 x double> %value.i358.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wa.04958.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wa.14959.i, <2 x float> poison, <4 x i32> %value.i358.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i358.sroa.0.0.vec.expand.i, <4 x float> %value.i358.sroa.0.8.vec.expand.i, <4 x i32> %78 = bitcast <4 x float> %value.i358.sroa.0.8.vecblend.i to <2 x double> %value.i354.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wb.04960.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wb.14961.i, <2 x float> poison, <4 x i32> %value.i354.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i354.sroa.0.0.vec.expand.i, <4 x float> %value.i354.sroa.0.8.vec.expand.i, <4 x i32> %79 = bitcast <4 x float> %value.i354.sroa.0.8.vecblend.i to <2 x double> %value.i350.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wc.04962.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wc.14963.i, <2 x float> poison, <4 x i32> %value.i350.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i350.sroa.0.0.vec.expand.i, <4 x float> %value.i350.sroa.0.8.vec.expand.i, <4 x i32> %80 = bitcast <4 x float> %value.i350.sroa.0.8.vecblend.i to <2 x double> %value.i346.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wd.04964.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wd.14965.i, <2 x float> poison, <4 x i32> %value.i346.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i346.sroa.0.0.vec.expand.i, <4 x float> %value.i346.sroa.0.8.vec.expand.i, <4 x i32> %81 = bitcast <4 x float> %value.i346.sroa.0.8.vecblend.i to <2 x double> %value.i342.sroa.0.0.vec.expand.i = shufflevector <2 x float> %we.04966.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vec.expand.i = shufflevector <2 x float> %we.14967.i, <2 x float> poison, <4 x i32> %value.i342.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i342.sroa.0.0.vec.expand.i, <4 x float> %value.i342.sroa.0.8.vec.expand.i, <4 x i32> %82 = bitcast <4 x float> %value.i342.sroa.0.8.vecblend.i to <2 x double> %value.i338.sroa.0.0.vec.expand.i = shufflevector <2 x float> %wf.04968.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vec.expand.i = shufflevector <2 x float> %wf.14969.i, <2 x float> poison, <4 x i32> %value.i338.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i338.sroa.0.0.vec.expand.i, <4 x float> %value.i338.sroa.0.8.vec.expand.i, <4 x i32> %83 = bitcast <4 x float> %value.i338.sroa.0.8.vecblend.i to <2 x double> %84 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %85 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %86 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %87 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %88 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %89 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 24 %90 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 20 %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 28 %92 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %93 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 40 %94 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 36 %95 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 44 %96 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 56 %97 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 52 %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 60 %99 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> zeroinitializer %100 = shufflevector <2 x double> %69, <2 x double> poison, <8 x i32> %101 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %70, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %71, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %72, <2 x double> poison, <8 x i32> %107 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> zeroinitializer %108 = shufflevector <2 x double> %73, <2 x double> poison, <8 x i32> %109 = shufflevector <2 x double> %74, <2 x double> poison, <8 x i32> zeroinitializer %110 = shufflevector <2 x double> %74, <2 x double> poison, <8 x i32> %111 = shufflevector <2 x double> %75, <2 x double> poison, <8 x i32> zeroinitializer %112 = shufflevector <2 x double> %75, <2 x double> poison, <8 x i32> %113 = shufflevector <2 x double> %76, <2 x double> poison, <8 x i32> zeroinitializer %114 = shufflevector <2 x double> %76, <2 x double> poison, <8 x i32> %115 = shufflevector <2 x double> %77, <2 x double> poison, <8 x i32> zeroinitializer %116 = shufflevector <2 x double> %77, <2 x double> poison, <8 x i32> %117 = shufflevector <2 x double> %78, <2 x double> poison, <8 x i32> zeroinitializer %118 = shufflevector <2 x double> %78, <2 x double> poison, <8 x i32> %119 = shufflevector <2 x double> %79, <2 x double> poison, <8 x i32> zeroinitializer %120 = shufflevector <2 x double> %79, <2 x double> poison, <8 x i32> %121 = shufflevector <2 x double> %80, <2 x double> poison, <8 x i32> zeroinitializer %122 = shufflevector <2 x double> %80, <2 x double> poison, <8 x i32> %123 = shufflevector <2 x double> %81, <2 x double> poison, <8 x i32> zeroinitializer %124 = shufflevector <2 x double> %81, <2 x double> poison, <8 x i32> %125 = shufflevector <2 x double> %82, <2 x double> poison, <8 x i32> zeroinitializer %126 = shufflevector <2 x double> %82, <2 x double> poison, <8 x i32> %127 = shufflevector <2 x double> %83, <2 x double> poison, <8 x i32> zeroinitializer %128 = shufflevector <2 x double> %83, <2 x double> poison, <8 x i32> br label %bb98.i bb98.i: ; preds = %bb98.i, %bb46.i %iter10.sroa.218.05074.i = phi i64 [ %129, %bb98.i ], [ 0, %bb46.i ] %129 = add nuw nsw i64 %iter10.sroa.218.05074.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05074.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %87, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %86, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %88, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %85, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %90, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %89, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %91, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %84, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %94, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %93, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %95, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %92, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %97, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %96, i64 %iter10.sroa.218.05074.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %98, i64 %iter10.sroa.218.05074.i %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %_220.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %130 = shufflevector <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %131 = fmul <8 x double> %100, %130 %_4.i84 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %99, <8 x double> %_220.sroa.0.0.copyload.i, <8 x double> %131, i32 noundef 4) #23 %_222.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %132 = shufflevector <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %133 = fmul <8 x double> %102, %132 %_4.i83 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %_222.sroa.0.0.copyload.i, <8 x double> %133, i32 noundef 4) #23 %_224.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %134 = shufflevector <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %135 = fmul <8 x double> %104, %134 %_4.i82 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %_224.sroa.0.0.copyload.i, <8 x double> %135, i32 noundef 4) #23 %_226.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %136 = shufflevector <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %137 = fmul <8 x double> %106, %136 %_4.i81 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %_226.sroa.0.0.copyload.i, <8 x double> %137, i32 noundef 4) #23 %_228.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %138 = shufflevector <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %108, %138 %_4.i80 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %107, <8 x double> %_228.sroa.0.0.copyload.i, <8 x double> %139, i32 noundef 4) #23 %_230.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %140 = shufflevector <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %141 = fmul <8 x double> %110, %140 %_4.i79 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %109, <8 x double> %_230.sroa.0.0.copyload.i, <8 x double> %141, i32 noundef 4) #23 %_232.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %142 = shufflevector <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %143 = fmul <8 x double> %112, %142 %_4.i78 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %111, <8 x double> %_232.sroa.0.0.copyload.i, <8 x double> %143, i32 noundef 4) #23 %_234.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %144 = shufflevector <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %145 = fmul <8 x double> %114, %144 %_4.i77 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %113, <8 x double> %_234.sroa.0.0.copyload.i, <8 x double> %145, i32 noundef 4) #23 %_236.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %146 = shufflevector <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %116, %146 %_4.i76 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %115, <8 x double> %_236.sroa.0.0.copyload.i, <8 x double> %147, i32 noundef 4) #23 %_238.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %148 = shufflevector <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = fmul <8 x double> %118, %148 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %117, <8 x double> %_238.sroa.0.0.copyload.i, <8 x double> %149, i32 noundef 4) #23 %_240.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %150 = shufflevector <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %151 = fmul <8 x double> %120, %150 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %119, <8 x double> %_240.sroa.0.0.copyload.i, <8 x double> %151, i32 noundef 4) #23 %_242.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %152 = shufflevector <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %153 = fmul <8 x double> %122, %152 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %121, <8 x double> %_242.sroa.0.0.copyload.i, <8 x double> %153, i32 noundef 4) #23 %_244.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %154 = shufflevector <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %155 = fmul <8 x double> %124, %154 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %123, <8 x double> %_244.sroa.0.0.copyload.i, <8 x double> %155, i32 noundef 4) #23 %_246.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %156 = shufflevector <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %126, %156 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %125, <8 x double> %_246.sroa.0.0.copyload.i, <8 x double> %157, i32 noundef 4) #23 %_248.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !alias.scope !1960, !noalias !1965 %158 = shufflevector <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %128, %158 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %127, <8 x double> %_248.sroa.0.0.copyload.i, <8 x double> %159, i32 noundef 4) #23 %160 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i77 %161 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i77 %162 = fadd <8 x double> %_4.i81, %_4.i73 %163 = fsub <8 x double> %_4.i81, %_4.i73 %164 = fadd <8 x double> %_4.i83, %_4.i75 %165 = fsub <8 x double> %_4.i83, %_4.i75 %166 = fadd <8 x double> %_4.i79, %_4.i71 %167 = fsub <8 x double> %_4.i79, %_4.i71 %168 = fadd <8 x double> %_4.i84, %_4.i76 %169 = fsub <8 x double> %_4.i84, %_4.i76 %170 = fadd <8 x double> %_4.i80, %_4.i72 %171 = fsub <8 x double> %_4.i80, %_4.i72 %172 = fadd <8 x double> %_4.i82, %_4.i74 %173 = fsub <8 x double> %_4.i82, %_4.i74 %174 = fadd <8 x double> %_4.i78, %_4.i70 %175 = fsub <8 x double> %_4.i78, %_4.i70 %176 = bitcast <8 x double> %163 to <8 x i64> %177 = xor <8 x i64> %176, %178 = bitcast <8 x double> %167 to <8 x i64> %179 = xor <8 x i64> %178, %180 = bitcast <8 x double> %171 to <8 x i64> %181 = xor <8 x i64> %180, %182 = bitcast <8 x double> %175 to <8 x i64> %183 = xor <8 x i64> %182, %184 = fadd <8 x double> %160, %162 %185 = bitcast <8 x i64> %177 to <8 x double> %186 = shufflevector <8 x double> %185, <8 x double> poison, <8 x i32> %187 = fsub <8 x double> %161, %186 %188 = fsub <8 x double> %160, %162 %189 = fadd <8 x double> %161, %186 %190 = fadd <8 x double> %164, %166 %191 = bitcast <8 x i64> %179 to <8 x double> %192 = shufflevector <8 x double> %191, <8 x double> poison, <8 x i32> %193 = fsub <8 x double> %165, %192 %194 = fsub <8 x double> %164, %166 %195 = fadd <8 x double> %165, %192 %196 = fadd <8 x double> %168, %170 %197 = bitcast <8 x i64> %181 to <8 x double> %198 = shufflevector <8 x double> %197, <8 x double> poison, <8 x i32> %199 = fsub <8 x double> %169, %198 %200 = fsub <8 x double> %168, %170 %201 = fadd <8 x double> %169, %198 %202 = fadd <8 x double> %172, %174 %203 = bitcast <8 x i64> %183 to <8 x double> %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = fsub <8 x double> %173, %204 %206 = fsub <8 x double> %172, %174 %207 = fadd <8 x double> %173, %204 %208 = bitcast <8 x double> %193 to <8 x i64> %209 = xor <8 x i64> %208, %210 = bitcast <8 x i64> %209 to <8 x double> %211 = shufflevector <8 x double> %210, <8 x double> poison, <8 x i32> %212 = fadd <8 x double> %193, %211 %213 = fmul <8 x double> %212, %214 = bitcast <8 x double> %194 to <8 x i64> %215 = xor <8 x i64> %214, %216 = bitcast <8 x double> %195 to <8 x i64> %217 = xor <8 x i64> %216, %218 = bitcast <8 x i64> %217 to <8 x double> %219 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %220 = fadd <8 x double> %195, %219 %221 = fmul <8 x double> %220, %222 = fadd <8 x double> %184, %190 %223 = fadd <8 x double> %187, %213 %224 = bitcast <8 x i64> %215 to <8 x double> %225 = shufflevector <8 x double> %224, <8 x double> poison, <8 x i32> %226 = fsub <8 x double> %188, %225 %227 = fsub <8 x double> %189, %221 %228 = fsub <8 x double> %184, %190 %229 = fsub <8 x double> %187, %213 %230 = fadd <8 x double> %188, %225 %231 = fadd <8 x double> %189, %221 %232 = bitcast <8 x double> %205 to <8 x i64> %233 = xor <8 x i64> %232, %234 = bitcast <8 x i64> %233 to <8 x double> %235 = shufflevector <8 x double> %234, <8 x double> poison, <8 x i32> %236 = fadd <8 x double> %205, %235 %237 = fmul <8 x double> %236, %238 = bitcast <8 x double> %206 to <8 x i64> %239 = xor <8 x i64> %238, %240 = bitcast <8 x double> %207 to <8 x i64> %241 = xor <8 x i64> %240, %242 = bitcast <8 x i64> %241 to <8 x double> %243 = shufflevector <8 x double> %242, <8 x double> poison, <8 x i32> %244 = fadd <8 x double> %207, %243 %245 = fmul <8 x double> %244, %246 = fadd <8 x double> %196, %202 %247 = fadd <8 x double> %199, %237 %248 = bitcast <8 x i64> %239 to <8 x double> %249 = shufflevector <8 x double> %248, <8 x double> poison, <8 x i32> %250 = fsub <8 x double> %200, %249 %251 = fsub <8 x double> %201, %245 %252 = fsub <8 x double> %196, %202 %253 = fsub <8 x double> %199, %237 %254 = fadd <8 x double> %200, %249 %255 = fadd <8 x double> %201, %245 %256 = fadd <8 x double> %222, %246 store <8 x double> %256, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %257 = fsub <8 x double> %222, %246 store <8 x double> %257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %258 = fmul <8 x double> %247, %259 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %_4.i69 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %247, <8 x double> %259, i32 noundef 4) #23 %260 = fadd <8 x double> %_4.i69, %223 store <8 x double> %260, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %261 = fsub <8 x double> %223, %_4.i69 store <8 x double> %261, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %262 = bitcast <8 x double> %250 to <8 x i64> %263 = xor <8 x i64> %262, %264 = bitcast <8 x i64> %263 to <8 x double> %265 = shufflevector <8 x double> %264, <8 x double> poison, <8 x i32> %266 = fadd <8 x double> %250, %265 %267 = fmul <8 x double> %266, %268 = fadd <8 x double> %226, %267 store <8 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %269 = fsub <8 x double> %226, %267 store <8 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %270 = fmul <8 x double> %251, %271 = shufflevector <8 x double> %270, <8 x double> poison, <8 x i32> %_4.i68 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %251, <8 x double> %271, i32 noundef 4) #23 %272 = fadd <8 x double> %_4.i68, %227 store <8 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %273 = fsub <8 x double> %227, %_4.i68 store <8 x double> %273, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %274 = bitcast <8 x double> %252 to <8 x i64> %275 = xor <8 x i64> %274, %276 = bitcast <8 x i64> %275 to <8 x double> %277 = shufflevector <8 x double> %276, <8 x double> poison, <8 x i32> %278 = fsub <8 x double> %228, %277 store <8 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %279 = fadd <8 x double> %228, %277 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %280 = fmul <8 x double> %253, %281 = shufflevector <8 x double> %280, <8 x double> poison, <8 x i32> %_4.i67 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %253, <8 x double> %281, i32 noundef 4) #23 %282 = fsub <8 x double> %229, %_4.i67 store <8 x double> %282, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %283 = fadd <8 x double> %229, %_4.i67 store <8 x double> %283, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %284 = bitcast <8 x double> %254 to <8 x i64> %285 = xor <8 x i64> %284, %286 = bitcast <8 x i64> %285 to <8 x double> %287 = shufflevector <8 x double> %286, <8 x double> poison, <8 x i32> %288 = fadd <8 x double> %254, %287 %289 = fmul <8 x double> %288, %290 = fsub <8 x double> %230, %289 store <8 x double> %290, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %291 = fadd <8 x double> %230, %289 store <8 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %292 = fmul <8 x double> %255, %293 = shufflevector <8 x double> %292, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %255, <8 x double> %293, i32 noundef 4) #23 %294 = fsub <8 x double> %231, %_4.i store <8 x double> %294, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %295 = fadd <8 x double> %231, %_4.i store <8 x double> %295, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1957, !noalias !1966 %exitcond.not.i = icmp eq i64 %129, 4 br i1 %exitcond.not.i, label %bb44.loopexit.i, label %bb98.i _ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit: ; preds = %bb44.loopexit.i tail call void @llvm.experimental.noalias.scope.decl(metadata !1967) tail call void @llvm.experimental.noalias.scope.decl(metadata !1970) tail call void @llvm.experimental.noalias.scope.decl(metadata !1972) %296 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %297 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %298 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %299 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %300 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %301 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %302 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %303 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 144 %304 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 176 %305 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 %306 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 208 %307 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 240 %308 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %309 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %310 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %311 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %312 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %313 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %314 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %315 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 %316 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %317 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %318 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 144 %319 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 176 %320 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 %321 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 208 %322 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 240 br label %bb39.i bb39.i: ; preds = %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit, %bb39.i %iter.sroa.218.04494.i = phi i64 [ %323, %bb39.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E.exit ] %323 = add nuw nsw i64 %iter.sroa.218.04494.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %297, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50 = getelementptr inbounds %"fft_simd::c64x4", ptr %296, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51 = getelementptr inbounds %"fft_simd::c64x4", ptr %298, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53 = getelementptr inbounds %"fft_simd::c64x4", ptr %300, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54 = getelementptr inbounds %"fft_simd::c64x4", ptr %299, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55 = getelementptr inbounds %"fft_simd::c64x4", ptr %301, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57 = getelementptr inbounds %"fft_simd::c64x4", ptr %303, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58 = getelementptr inbounds %"fft_simd::c64x4", ptr %302, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59 = getelementptr inbounds %"fft_simd::c64x4", ptr %304, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61 = getelementptr inbounds %"fft_simd::c64x4", ptr %306, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i62 = getelementptr inbounds %"fft_simd::c64x4", ptr %305, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i63 = getelementptr inbounds %"fft_simd::c64x4", ptr %307, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %311, i64 %iter.sroa.218.04494.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %310, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %312, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %309, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %314, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %313, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %315, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %308, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %318, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %317, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %319, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %316, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %321, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %320, i64 %iter.sroa.218.04494.i %_3.i.i.i.i.i.i.i.i.i64 = getelementptr inbounds %"fft_simd::c64x4", ptr %322, i64 %iter.sroa.218.04494.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1972, !noalias !1974 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i64, align 8, !alias.scope !1972, !noalias !1974 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1970, !noalias !1975 %324 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 1 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %324, align 8, !alias.scope !1970, !noalias !1975 %325 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 2 %ijkl0.sroa.0.0.copyload.i = load <8 x double>, ptr %325, align 8, !alias.scope !1970, !noalias !1975 %326 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 3 %mnop0.sroa.0.0.copyload.i = load <8 x double>, ptr %326, align 8, !alias.scope !1970, !noalias !1975 %327 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 4 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %327, align 8, !alias.scope !1970, !noalias !1975 %328 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %328, align 8, !alias.scope !1970, !noalias !1975 %329 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 6 %ijkl1.sroa.0.0.copyload.i = load <8 x double>, ptr %329, align 8, !alias.scope !1970, !noalias !1975 %330 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 7 %mnop1.sroa.0.0.copyload.i = load <8 x double>, ptr %330, align 8, !alias.scope !1970, !noalias !1975 %331 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 8 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %331, align 8, !alias.scope !1970, !noalias !1975 %332 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %332, align 8, !alias.scope !1970, !noalias !1975 %333 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 10 %ijkl2.sroa.0.0.copyload.i = load <8 x double>, ptr %333, align 8, !alias.scope !1970, !noalias !1975 %334 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 11 %mnop2.sroa.0.0.copyload.i = load <8 x double>, ptr %334, align 8, !alias.scope !1970, !noalias !1975 %335 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 12 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %335, align 8, !alias.scope !1970, !noalias !1975 %336 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %336, align 8, !alias.scope !1970, !noalias !1975 %337 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 14 %ijkl3.sroa.0.0.copyload.i = load <8 x double>, ptr %337, align 8, !alias.scope !1970, !noalias !1975 %338 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04494.i, i64 15 %mnop3.sroa.0.0.copyload.i = load <8 x double>, ptr %338, align 8, !alias.scope !1970, !noalias !1975 %339 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %340 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %341 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %342 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %343 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %344 = shufflevector <8 x double> %339, <8 x double> %341, <8 x i32> %345 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %346 = shufflevector <8 x double> %340, <8 x double> %342, <8 x i32> %347 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %348 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %349 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %350 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %351 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %352 = shufflevector <8 x double> %347, <8 x double> %349, <8 x i32> %353 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %354 = shufflevector <8 x double> %348, <8 x double> %350, <8 x i32> %355 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %356 = shufflevector <8 x double> %ijkl0.sroa.0.0.copyload.i, <8 x double> %ijkl1.sroa.0.0.copyload.i, <8 x i32> %357 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %358 = shufflevector <8 x double> %ijkl2.sroa.0.0.copyload.i, <8 x double> %ijkl3.sroa.0.0.copyload.i, <8 x i32> %359 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %360 = shufflevector <8 x double> %355, <8 x double> %357, <8 x i32> %361 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %362 = shufflevector <8 x double> %356, <8 x double> %358, <8 x i32> %363 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %364 = shufflevector <8 x double> %mnop0.sroa.0.0.copyload.i, <8 x double> %mnop1.sroa.0.0.copyload.i, <8 x i32> %365 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %366 = shufflevector <8 x double> %mnop2.sroa.0.0.copyload.i, <8 x double> %mnop3.sroa.0.0.copyload.i, <8 x i32> %367 = shufflevector <8 x double> %363, <8 x double> %365, <8 x i32> %368 = shufflevector <8 x double> %363, <8 x double> %365, <8 x i32> %369 = shufflevector <8 x double> %364, <8 x double> %366, <8 x i32> %370 = shufflevector <8 x double> %364, <8 x double> %366, <8 x i32> %371 = shufflevector <8 x double> %345, <8 x double> poison, <8 x i32> %372 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %373 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %374 = fmul <8 x double> %373, %371 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %372, <8 x double> %345, <8 x double> %374, i32 noundef 4) #23 %375 = shufflevector <8 x double> %344, <8 x double> poison, <8 x i32> %376 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %377 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %378 = fmul <8 x double> %377, %375 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %376, <8 x double> %344, <8 x double> %378, i32 noundef 4) #23 %379 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %380 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %381 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %382 = fmul <8 x double> %381, %379 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %380, <8 x double> %346, <8 x double> %382, i32 noundef 4) #23 %383 = shufflevector <8 x double> %351, <8 x double> poison, <8 x i32> %384 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %385 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %386 = fmul <8 x double> %385, %383 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %384, <8 x double> %351, <8 x double> %386, i32 noundef 4) #23 %387 = shufflevector <8 x double> %353, <8 x double> poison, <8 x i32> %388 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %389 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %390 = fmul <8 x double> %389, %387 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %388, <8 x double> %353, <8 x double> %390, i32 noundef 4) #23 %391 = shufflevector <8 x double> %352, <8 x double> poison, <8 x i32> %392 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %393 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %394 = fmul <8 x double> %393, %391 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %392, <8 x double> %352, <8 x double> %394, i32 noundef 4) #23 %395 = shufflevector <8 x double> %354, <8 x double> poison, <8 x i32> %396 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %397 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %398 = fmul <8 x double> %397, %395 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %396, <8 x double> %354, <8 x double> %398, i32 noundef 4) #23 %399 = shufflevector <8 x double> %359, <8 x double> poison, <8 x i32> %400 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %401 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %402 = fmul <8 x double> %401, %399 %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %400, <8 x double> %359, <8 x double> %402, i32 noundef 4) #23 %403 = shufflevector <8 x double> %361, <8 x double> poison, <8 x i32> %404 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %405 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %406 = fmul <8 x double> %405, %403 %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %404, <8 x double> %361, <8 x double> %406, i32 noundef 4) #23 %407 = shufflevector <8 x double> %360, <8 x double> poison, <8 x i32> %408 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %409 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %410 = fmul <8 x double> %409, %407 %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %408, <8 x double> %360, <8 x double> %410, i32 noundef 4) #23 %411 = shufflevector <8 x double> %362, <8 x double> poison, <8 x i32> %412 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %413 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %414 = fmul <8 x double> %413, %411 %_4.i93 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %412, <8 x double> %362, <8 x double> %414, i32 noundef 4) #23 %415 = shufflevector <8 x double> %367, <8 x double> poison, <8 x i32> %416 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %417 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %418 = fmul <8 x double> %417, %415 %_4.i92 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %416, <8 x double> %367, <8 x double> %418, i32 noundef 4) #23 %419 = shufflevector <8 x double> %369, <8 x double> poison, <8 x i32> %420 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %421 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %422 = fmul <8 x double> %421, %419 %_4.i91 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %420, <8 x double> %369, <8 x double> %422, i32 noundef 4) #23 %423 = shufflevector <8 x double> %368, <8 x double> poison, <8 x i32> %424 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %425 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %426 = fmul <8 x double> %425, %423 %_4.i90 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %424, <8 x double> %368, <8 x double> %426, i32 noundef 4) #23 %427 = shufflevector <8 x double> %370, <8 x double> poison, <8 x i32> %428 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %429 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %430 = fmul <8 x double> %429, %427 %_4.i89 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %428, <8 x double> %370, <8 x double> %430, i32 noundef 4) #23 %431 = fadd <8 x double> %343, %_4.i96 %432 = fsub <8 x double> %343, %_4.i96 %433 = fadd <8 x double> %_4.i100, %_4.i92 %434 = fsub <8 x double> %_4.i100, %_4.i92 %435 = fadd <8 x double> %_4.i102, %_4.i94 %436 = fsub <8 x double> %_4.i102, %_4.i94 %437 = fadd <8 x double> %_4.i98, %_4.i90 %438 = fsub <8 x double> %_4.i98, %_4.i90 %439 = fadd <8 x double> %_4.i103, %_4.i95 %440 = fsub <8 x double> %_4.i103, %_4.i95 %441 = fadd <8 x double> %_4.i99, %_4.i91 %442 = fsub <8 x double> %_4.i99, %_4.i91 %443 = fadd <8 x double> %_4.i101, %_4.i93 %444 = fsub <8 x double> %_4.i101, %_4.i93 %445 = fadd <8 x double> %_4.i97, %_4.i89 %446 = fsub <8 x double> %_4.i97, %_4.i89 %447 = bitcast <8 x double> %434 to <8 x i64> %448 = xor <8 x i64> %447, %449 = bitcast <8 x double> %438 to <8 x i64> %450 = xor <8 x i64> %449, %451 = bitcast <8 x double> %442 to <8 x i64> %452 = xor <8 x i64> %451, %453 = bitcast <8 x double> %446 to <8 x i64> %454 = xor <8 x i64> %453, %455 = fadd <8 x double> %431, %433 %456 = bitcast <8 x i64> %448 to <8 x double> %457 = shufflevector <8 x double> %456, <8 x double> poison, <8 x i32> %458 = fsub <8 x double> %432, %457 %459 = fsub <8 x double> %431, %433 %460 = fadd <8 x double> %432, %457 %461 = fadd <8 x double> %435, %437 %462 = bitcast <8 x i64> %450 to <8 x double> %463 = shufflevector <8 x double> %462, <8 x double> poison, <8 x i32> %464 = fsub <8 x double> %436, %463 %465 = fsub <8 x double> %435, %437 %466 = fadd <8 x double> %436, %463 %467 = fadd <8 x double> %439, %441 %468 = bitcast <8 x i64> %452 to <8 x double> %469 = shufflevector <8 x double> %468, <8 x double> poison, <8 x i32> %470 = fsub <8 x double> %440, %469 %471 = fsub <8 x double> %439, %441 %472 = fadd <8 x double> %440, %469 %473 = fadd <8 x double> %443, %445 %474 = bitcast <8 x i64> %454 to <8 x double> %475 = shufflevector <8 x double> %474, <8 x double> poison, <8 x i32> %476 = fsub <8 x double> %444, %475 %477 = fsub <8 x double> %443, %445 %478 = fadd <8 x double> %444, %475 %479 = bitcast <8 x double> %464 to <8 x i64> %480 = xor <8 x i64> %479, %481 = bitcast <8 x i64> %480 to <8 x double> %482 = shufflevector <8 x double> %481, <8 x double> poison, <8 x i32> %483 = fadd <8 x double> %464, %482 %484 = fmul <8 x double> %483, %485 = bitcast <8 x double> %465 to <8 x i64> %486 = xor <8 x i64> %485, %487 = bitcast <8 x double> %466 to <8 x i64> %488 = xor <8 x i64> %487, %489 = bitcast <8 x i64> %488 to <8 x double> %490 = shufflevector <8 x double> %489, <8 x double> poison, <8 x i32> %491 = fadd <8 x double> %466, %490 %492 = fmul <8 x double> %491, %493 = fadd <8 x double> %455, %461 %494 = fadd <8 x double> %458, %484 %495 = bitcast <8 x i64> %486 to <8 x double> %496 = shufflevector <8 x double> %495, <8 x double> poison, <8 x i32> %497 = fsub <8 x double> %459, %496 %498 = fsub <8 x double> %460, %492 %499 = fsub <8 x double> %455, %461 %500 = fsub <8 x double> %458, %484 %501 = fadd <8 x double> %459, %496 %502 = fadd <8 x double> %460, %492 %503 = bitcast <8 x double> %476 to <8 x i64> %504 = xor <8 x i64> %503, %505 = bitcast <8 x i64> %504 to <8 x double> %506 = shufflevector <8 x double> %505, <8 x double> poison, <8 x i32> %507 = fadd <8 x double> %476, %506 %508 = fmul <8 x double> %507, %509 = bitcast <8 x double> %477 to <8 x i64> %510 = xor <8 x i64> %509, %511 = bitcast <8 x double> %478 to <8 x i64> %512 = xor <8 x i64> %511, %513 = bitcast <8 x i64> %512 to <8 x double> %514 = shufflevector <8 x double> %513, <8 x double> poison, <8 x i32> %515 = fadd <8 x double> %478, %514 %516 = fmul <8 x double> %515, %517 = fadd <8 x double> %467, %473 %518 = fadd <8 x double> %470, %508 %519 = bitcast <8 x i64> %510 to <8 x double> %520 = shufflevector <8 x double> %519, <8 x double> poison, <8 x i32> %521 = fsub <8 x double> %471, %520 %522 = fsub <8 x double> %472, %516 %523 = fsub <8 x double> %467, %473 %524 = fsub <8 x double> %470, %508 %525 = fadd <8 x double> %471, %520 %526 = fadd <8 x double> %472, %516 %527 = fadd <8 x double> %493, %517 store <8 x double> %527, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1967, !noalias !1976 %528 = fsub <8 x double> %493, %517 store <8 x double> %528, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56, align 8, !alias.scope !1967, !noalias !1976 %529 = fmul <8 x double> %518, %530 = shufflevector <8 x double> %529, <8 x double> poison, <8 x i32> %_4.i88 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %518, <8 x double> %530, i32 noundef 4) #23 %531 = fadd <8 x double> %_4.i88, %494 store <8 x double> %531, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1967, !noalias !1976 %532 = fsub <8 x double> %494, %_4.i88 store <8 x double> %532, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57, align 8, !alias.scope !1967, !noalias !1976 %533 = bitcast <8 x double> %521 to <8 x i64> %534 = xor <8 x i64> %533, %535 = bitcast <8 x i64> %534 to <8 x double> %536 = shufflevector <8 x double> %535, <8 x double> poison, <8 x i32> %537 = fadd <8 x double> %521, %536 %538 = fmul <8 x double> %537, %539 = fadd <8 x double> %497, %538 store <8 x double> %539, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50, align 8, !alias.scope !1967, !noalias !1976 %540 = fsub <8 x double> %497, %538 store <8 x double> %540, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58, align 8, !alias.scope !1967, !noalias !1976 %541 = fmul <8 x double> %522, %542 = shufflevector <8 x double> %541, <8 x double> poison, <8 x i32> %_4.i87 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %522, <8 x double> %542, i32 noundef 4) #23 %543 = fadd <8 x double> %_4.i87, %498 store <8 x double> %543, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51, align 8, !alias.scope !1967, !noalias !1976 %544 = fsub <8 x double> %498, %_4.i87 store <8 x double> %544, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59, align 8, !alias.scope !1967, !noalias !1976 %545 = bitcast <8 x double> %523 to <8 x i64> %546 = xor <8 x i64> %545, %547 = bitcast <8 x i64> %546 to <8 x double> %548 = shufflevector <8 x double> %547, <8 x double> poison, <8 x i32> %549 = fsub <8 x double> %499, %548 store <8 x double> %549, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52, align 8, !alias.scope !1967, !noalias !1976 %550 = fadd <8 x double> %499, %548 store <8 x double> %550, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60, align 8, !alias.scope !1967, !noalias !1976 %551 = fmul <8 x double> %524, %552 = shufflevector <8 x double> %551, <8 x double> poison, <8 x i32> %_4.i86 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %524, <8 x double> %552, i32 noundef 4) #23 %553 = fsub <8 x double> %500, %_4.i86 store <8 x double> %553, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53, align 8, !alias.scope !1967, !noalias !1976 %554 = fadd <8 x double> %500, %_4.i86 store <8 x double> %554, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61, align 8, !alias.scope !1967, !noalias !1976 %555 = bitcast <8 x double> %525 to <8 x i64> %556 = xor <8 x i64> %555, %557 = bitcast <8 x i64> %556 to <8 x double> %558 = shufflevector <8 x double> %557, <8 x double> poison, <8 x i32> %559 = fadd <8 x double> %525, %558 %560 = fmul <8 x double> %559, %561 = fsub <8 x double> %501, %560 store <8 x double> %561, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54, align 8, !alias.scope !1967, !noalias !1976 %562 = fadd <8 x double> %501, %560 store <8 x double> %562, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i62, align 8, !alias.scope !1967, !noalias !1976 %563 = fmul <8 x double> %526, %564 = shufflevector <8 x double> %563, <8 x double> poison, <8 x i32> %_4.i85 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %526, <8 x double> %564, i32 noundef 4) #23 %565 = fsub <8 x double> %502, %_4.i85 store <8 x double> %565, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55, align 8, !alias.scope !1967, !noalias !1976 %566 = fadd <8 x double> %502, %_4.i85 store <8 x double> %566, ptr %_3.i.i.i.i.i.i.i.i.i.i.i63, align 8, !alias.scope !1967, !noalias !1976 %exitcond.not.i66 = icmp eq i64 %323, 16 br i1 %exitcond.not.i66, label %_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit, label %bb39.i _ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE.exit: ; preds = %bb39.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1947 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hcf21a61aa3b0d7c6E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1977) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !1977, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !1977, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !1977, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !1977, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !1977, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !1977, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !1977, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !1977 store i64 256, ptr %n.i, align 8, !noalias !1977 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !1977 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !1977 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !1977 store ptr null, ptr %_16.i, align 8, !noalias !1977 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !1977 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !1977 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !1977 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !1977 store ptr null, ptr %_24.i, align 8, !noalias !1977 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !1977 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !1977 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !1977 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !1977 store ptr null, ptr %_32.i, align 8, !noalias !1977 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !1977 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !1977 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !1977 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfab32900b217d0beE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !1977 store ptr null, ptr %_40.i, align 8, !noalias !1977 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfab32900b217d0beE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !1977 tail call void @llvm.experimental.noalias.scope.decl(metadata !1980) tail call void @llvm.experimental.noalias.scope.decl(metadata !1983) tail call void @llvm.experimental.noalias.scope.decl(metadata !1985) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 40 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 36 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 44 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 56 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 52 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 60 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 40 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 36 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 44 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 56 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 52 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 60 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfab32900b217d0beE.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %36, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfab32900b217d0beE.exit" ] %36 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1980, !noalias !1987 %37 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %38 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %40 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %42 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %44 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %46 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %48 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %50 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %52 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = bitcast <8 x double> %40 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x double> %44 to <8 x i64> %56 = xor <8 x i64> %55, %57 = bitcast <8 x double> %48 to <8 x i64> %58 = xor <8 x i64> %57, %59 = bitcast <8 x double> %52 to <8 x i64> %60 = xor <8 x i64> %59, %61 = fadd <8 x double> %37, %39 %62 = bitcast <8 x i64> %54 to <8 x double> %63 = shufflevector <8 x double> %62, <8 x double> poison, <8 x i32> %64 = fsub <8 x double> %38, %63 %65 = fsub <8 x double> %37, %39 %66 = fadd <8 x double> %38, %63 %67 = fadd <8 x double> %41, %43 %68 = bitcast <8 x i64> %56 to <8 x double> %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = fsub <8 x double> %42, %69 %71 = fsub <8 x double> %41, %43 %72 = fadd <8 x double> %42, %69 %73 = fadd <8 x double> %45, %47 %74 = bitcast <8 x i64> %58 to <8 x double> %75 = shufflevector <8 x double> %74, <8 x double> poison, <8 x i32> %76 = fsub <8 x double> %46, %75 %77 = fsub <8 x double> %45, %47 %78 = fadd <8 x double> %46, %75 %79 = fadd <8 x double> %49, %51 %80 = bitcast <8 x i64> %60 to <8 x double> %81 = shufflevector <8 x double> %80, <8 x double> poison, <8 x i32> %82 = fsub <8 x double> %50, %81 %83 = fsub <8 x double> %49, %51 %84 = fadd <8 x double> %50, %81 %85 = bitcast <8 x double> %70 to <8 x i64> %86 = xor <8 x i64> %85, %87 = bitcast <8 x i64> %86 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fadd <8 x double> %70, %88 %90 = fmul <8 x double> %89, %91 = bitcast <8 x double> %71 to <8 x i64> %92 = xor <8 x i64> %91, %93 = bitcast <8 x double> %72 to <8 x i64> %94 = xor <8 x i64> %93, %95 = bitcast <8 x i64> %94 to <8 x double> %96 = shufflevector <8 x double> %95, <8 x double> poison, <8 x i32> %97 = fadd <8 x double> %72, %96 %98 = fmul <8 x double> %97, %99 = fadd <8 x double> %61, %67 %100 = fadd <8 x double> %64, %90 %101 = bitcast <8 x i64> %92 to <8 x double> %102 = shufflevector <8 x double> %101, <8 x double> poison, <8 x i32> %103 = fsub <8 x double> %65, %102 %104 = fsub <8 x double> %66, %98 %105 = fsub <8 x double> %61, %67 %106 = fsub <8 x double> %64, %90 %107 = fadd <8 x double> %65, %102 %108 = fadd <8 x double> %66, %98 %109 = bitcast <8 x double> %82 to <8 x i64> %110 = xor <8 x i64> %109, %111 = bitcast <8 x i64> %110 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fadd <8 x double> %82, %112 %114 = fmul <8 x double> %113, %115 = bitcast <8 x double> %83 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x double> %84 to <8 x i64> %118 = xor <8 x i64> %117, %119 = bitcast <8 x i64> %118 to <8 x double> %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fadd <8 x double> %84, %120 %122 = fmul <8 x double> %121, %123 = fadd <8 x double> %73, %79 %124 = fadd <8 x double> %76, %114 %125 = bitcast <8 x i64> %116 to <8 x double> %126 = shufflevector <8 x double> %125, <8 x double> poison, <8 x i32> %127 = fsub <8 x double> %77, %126 %128 = fsub <8 x double> %78, %122 %129 = fsub <8 x double> %73, %79 %130 = fsub <8 x double> %76, %114 %131 = fadd <8 x double> %77, %126 %132 = fadd <8 x double> %78, %122 %133 = fmul <8 x double> %124, %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %_4.i581 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %124, <8 x double> %134, i32 noundef 4) #23 %135 = bitcast <8 x double> %127 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %127, %138 %140 = fmul <8 x double> %139, %141 = fmul <8 x double> %128, %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %_4.i580 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %128, <8 x double> %142, i32 noundef 4) #23 %143 = bitcast <8 x double> %129 to <8 x i64> %144 = xor <8 x i64> %143, %145 = fmul <8 x double> %130, %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %_4.i579 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %130, <8 x double> %146, i32 noundef 4) #23 %147 = bitcast <8 x double> %131 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %131, %150 %152 = fmul <8 x double> %151, %153 = fmul <8 x double> %132, %154 = shufflevector <8 x double> %153, <8 x double> poison, <8 x i32> %_4.i578 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %132, <8 x double> %154, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !1985, !noalias !1988 %155 = fadd <8 x double> %99, %123 %156 = fadd <8 x double> %_4.i581, %100 %157 = shufflevector <8 x double> %156, <8 x double> poison, <8 x i32> %158 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %159 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %159, %157 %_4.i577 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %158, <8 x double> %156, <8 x double> %160, i32 noundef 4) #23 %161 = fadd <8 x double> %103, %140 %162 = shufflevector <8 x double> %161, <8 x double> poison, <8 x i32> %163 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = fmul <8 x double> %164, %162 %_4.i576 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %163, <8 x double> %161, <8 x double> %165, i32 noundef 4) #23 %166 = fadd <8 x double> %_4.i580, %104 %167 = shufflevector <8 x double> %166, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = fmul <8 x double> %169, %167 %_4.i575 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %166, <8 x double> %170, i32 noundef 4) #23 %171 = bitcast <8 x i64> %144 to <8 x double> %172 = shufflevector <8 x double> %171, <8 x double> poison, <8 x i32> %173 = fsub <8 x double> %105, %172 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %176, %174 %_4.i574 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %175, <8 x double> %173, <8 x double> %177, i32 noundef 4) #23 %178 = fsub <8 x double> %106, %_4.i579 %179 = shufflevector <8 x double> %178, <8 x double> poison, <8 x i32> %180 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = fmul <8 x double> %181, %179 %_4.i573 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %180, <8 x double> %178, <8 x double> %182, i32 noundef 4) #23 %183 = fsub <8 x double> %107, %152 %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %186, %184 %_4.i572 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %183, <8 x double> %187, i32 noundef 4) #23 %188 = fsub <8 x double> %108, %_4.i578 %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %191, %189 %_4.i571 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %188, <8 x double> %192, i32 noundef 4) #23 %193 = fsub <8 x double> %99, %123 %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = fmul <8 x double> %194, %196 %_4.i570 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %193, <8 x double> %197, i32 noundef 4) #23 %198 = fsub <8 x double> %100, %_4.i581 %199 = shufflevector <8 x double> %198, <8 x double> poison, <8 x i32> %200 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = fmul <8 x double> %201, %199 %_4.i569 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %198, <8 x double> %202, i32 noundef 4) #23 %203 = fsub <8 x double> %103, %140 %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = fmul <8 x double> %206, %204 %_4.i568 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %205, <8 x double> %203, <8 x double> %207, i32 noundef 4) #23 %208 = fsub <8 x double> %104, %_4.i580 %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = fmul <8 x double> %209, %211 %_4.i567 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %210, <8 x double> %208, <8 x double> %212, i32 noundef 4) #23 %213 = fadd <8 x double> %105, %172 %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = fmul <8 x double> %214, %216 %_4.i566 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %215, <8 x double> %213, <8 x double> %217, i32 noundef 4) #23 %218 = fadd <8 x double> %_4.i579, %106 %219 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %220 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %219, %221 %_4.i565 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %220, <8 x double> %218, <8 x double> %222, i32 noundef 4) #23 %223 = fadd <8 x double> %107, %152 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = fmul <8 x double> %224, %226 %_4.i564 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %225, <8 x double> %223, <8 x double> %227, i32 noundef 4) #23 %228 = fadd <8 x double> %_4.i578, %108 %229 = shufflevector <8 x double> %228, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = fmul <8 x double> %229, %231 %_4.i563 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %230, <8 x double> %228, <8 x double> %232, i32 noundef 4) #23 %233 = shufflevector <8 x double> %155, <8 x double> %_4.i577, <8 x i32> %234 = shufflevector <8 x double> %155, <8 x double> %_4.i577, <8 x i32> %235 = shufflevector <8 x double> %_4.i576, <8 x double> %_4.i575, <8 x i32> %236 = shufflevector <8 x double> %_4.i576, <8 x double> %_4.i575, <8 x i32> %237 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %238 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %241 = shufflevector <8 x double> %_4.i574, <8 x double> %_4.i573, <8 x i32> %242 = shufflevector <8 x double> %_4.i574, <8 x double> %_4.i573, <8 x i32> %243 = shufflevector <8 x double> %_4.i572, <8 x double> %_4.i571, <8 x i32> %244 = shufflevector <8 x double> %_4.i572, <8 x double> %_4.i571, <8 x i32> %245 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %246 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %249 = shufflevector <8 x double> %_4.i570, <8 x double> %_4.i569, <8 x i32> %250 = shufflevector <8 x double> %_4.i570, <8 x double> %_4.i569, <8 x i32> %251 = shufflevector <8 x double> %_4.i568, <8 x double> %_4.i567, <8 x i32> %252 = shufflevector <8 x double> %_4.i568, <8 x double> %_4.i567, <8 x i32> %253 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %254 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %257 = shufflevector <8 x double> %_4.i566, <8 x double> %_4.i565, <8 x i32> %258 = shufflevector <8 x double> %_4.i566, <8 x double> %_4.i565, <8 x i32> %259 = shufflevector <8 x double> %_4.i564, <8 x double> %_4.i563, <8 x i32> %260 = shufflevector <8 x double> %_4.i564, <8 x double> %_4.i563, <8 x i32> %261 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %262 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> store <8 x double> %237, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !1983, !noalias !1989 %265 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %245, ptr %265, align 8, !alias.scope !1983, !noalias !1989 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %253, ptr %266, align 8, !alias.scope !1983, !noalias !1989 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %261, ptr %267, align 8, !alias.scope !1983, !noalias !1989 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %239, ptr %268, align 8, !alias.scope !1983, !noalias !1989 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %247, ptr %269, align 8, !alias.scope !1983, !noalias !1989 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %255, ptr %270, align 8, !alias.scope !1983, !noalias !1989 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %263, ptr %271, align 8, !alias.scope !1983, !noalias !1989 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %238, ptr %272, align 8, !alias.scope !1983, !noalias !1989 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %246, ptr %273, align 8, !alias.scope !1983, !noalias !1989 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %254, ptr %274, align 8, !alias.scope !1983, !noalias !1989 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %262, ptr %275, align 8, !alias.scope !1983, !noalias !1989 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %240, ptr %276, align 8, !alias.scope !1983, !noalias !1989 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %248, ptr %277, align 8, !alias.scope !1983, !noalias !1989 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %256, ptr %278, align 8, !alias.scope !1983, !noalias !1989 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %264, ptr %279, align 8, !alias.scope !1983, !noalias !1989 %exitcond.not.i = icmp eq i64 %36, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i %280 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %287 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 %288 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %289 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 40 %290 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 36 %291 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 44 %292 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 56 %293 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 52 %294 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 60 br label %bb62.i.i.i bb62.i.i.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb62.i.i.i %iter22.i.i.i.sroa.218.02190 = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ], [ %295, %bb62.i.i.i ] %295 = add nuw nsw i64 %iter22.i.i.i.sroa.218.02190, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %287, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %280, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %290, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %289, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %291, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %288, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %293, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %292, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %294, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter22.i.i.i.sroa.218.02190 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i.i.i72.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i.i.i75.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter22.i.i.i.sroa.218.02190 %_3.i.i.i.i.i78.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter22.i.i.i.sroa.218.02190 %_208.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_209.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_210.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_211.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_212.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_213.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_214.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_215.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_216.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_217.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_218.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_219.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_220.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_221.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_222.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %_223.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !1977 %296 = fadd <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_208.i.i.i.sroa.0.0.copyload, %_216.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_212.i.i.i.sroa.0.0.copyload, %_220.i.i.i.sroa.0.0.copyload %300 = fadd <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %301 = fsub <8 x double> %_210.i.i.i.sroa.0.0.copyload, %_218.i.i.i.sroa.0.0.copyload %302 = fadd <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %303 = fsub <8 x double> %_214.i.i.i.sroa.0.0.copyload, %_222.i.i.i.sroa.0.0.copyload %304 = fadd <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %305 = fsub <8 x double> %_209.i.i.i.sroa.0.0.copyload, %_217.i.i.i.sroa.0.0.copyload %306 = fadd <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %307 = fsub <8 x double> %_213.i.i.i.sroa.0.0.copyload, %_221.i.i.i.sroa.0.0.copyload %308 = fadd <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %309 = fsub <8 x double> %_211.i.i.i.sroa.0.0.copyload, %_219.i.i.i.sroa.0.0.copyload %310 = fadd <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %311 = fsub <8 x double> %_215.i.i.i.sroa.0.0.copyload, %_223.i.i.i.sroa.0.0.copyload %312 = bitcast <8 x double> %299 to <8 x i64> %313 = xor <8 x i64> %312, %314 = bitcast <8 x double> %303 to <8 x i64> %315 = xor <8 x i64> %314, %316 = bitcast <8 x double> %307 to <8 x i64> %317 = xor <8 x i64> %316, %318 = bitcast <8 x double> %311 to <8 x i64> %319 = xor <8 x i64> %318, %320 = fadd <8 x double> %296, %298 %321 = bitcast <8 x i64> %313 to <8 x double> %322 = shufflevector <8 x double> %321, <8 x double> poison, <8 x i32> %323 = fsub <8 x double> %297, %322 %324 = fsub <8 x double> %296, %298 %325 = fadd <8 x double> %297, %322 %326 = fadd <8 x double> %300, %302 %327 = bitcast <8 x i64> %315 to <8 x double> %328 = shufflevector <8 x double> %327, <8 x double> poison, <8 x i32> %329 = fsub <8 x double> %301, %328 %330 = fsub <8 x double> %300, %302 %331 = fadd <8 x double> %301, %328 %332 = fadd <8 x double> %304, %306 %333 = bitcast <8 x i64> %317 to <8 x double> %334 = shufflevector <8 x double> %333, <8 x double> poison, <8 x i32> %335 = fsub <8 x double> %305, %334 %336 = fsub <8 x double> %304, %306 %337 = fadd <8 x double> %305, %334 %338 = fadd <8 x double> %308, %310 %339 = bitcast <8 x i64> %319 to <8 x double> %340 = shufflevector <8 x double> %339, <8 x double> poison, <8 x i32> %341 = fsub <8 x double> %309, %340 %342 = fsub <8 x double> %308, %310 %343 = fadd <8 x double> %309, %340 %344 = bitcast <8 x double> %329 to <8 x i64> %345 = xor <8 x i64> %344, %346 = bitcast <8 x i64> %345 to <8 x double> %347 = shufflevector <8 x double> %346, <8 x double> poison, <8 x i32> %348 = fadd <8 x double> %329, %347 %349 = fmul <8 x double> %348, %350 = bitcast <8 x double> %330 to <8 x i64> %351 = xor <8 x i64> %350, %352 = bitcast <8 x double> %331 to <8 x i64> %353 = xor <8 x i64> %352, %354 = bitcast <8 x i64> %353 to <8 x double> %355 = shufflevector <8 x double> %354, <8 x double> poison, <8 x i32> %356 = fadd <8 x double> %331, %355 %357 = fmul <8 x double> %356, %358 = fadd <8 x double> %320, %326 %359 = fadd <8 x double> %323, %349 %360 = bitcast <8 x i64> %351 to <8 x double> %361 = shufflevector <8 x double> %360, <8 x double> poison, <8 x i32> %362 = fsub <8 x double> %324, %361 %363 = fsub <8 x double> %325, %357 %364 = fsub <8 x double> %320, %326 %365 = fsub <8 x double> %323, %349 %366 = fadd <8 x double> %324, %361 %367 = fadd <8 x double> %325, %357 %368 = bitcast <8 x double> %341 to <8 x i64> %369 = xor <8 x i64> %368, %370 = bitcast <8 x i64> %369 to <8 x double> %371 = shufflevector <8 x double> %370, <8 x double> poison, <8 x i32> %372 = fadd <8 x double> %341, %371 %373 = fmul <8 x double> %372, %374 = bitcast <8 x double> %342 to <8 x i64> %375 = xor <8 x i64> %374, %376 = bitcast <8 x double> %343 to <8 x i64> %377 = xor <8 x i64> %376, %378 = bitcast <8 x i64> %377 to <8 x double> %379 = shufflevector <8 x double> %378, <8 x double> poison, <8 x i32> %380 = fadd <8 x double> %343, %379 %381 = fmul <8 x double> %380, %382 = fadd <8 x double> %332, %338 %383 = fadd <8 x double> %335, %373 %384 = bitcast <8 x i64> %375 to <8 x double> %385 = shufflevector <8 x double> %384, <8 x double> poison, <8 x i32> %386 = fsub <8 x double> %336, %385 %387 = fsub <8 x double> %337, %381 %388 = fsub <8 x double> %332, %338 %389 = fsub <8 x double> %335, %373 %390 = fadd <8 x double> %336, %385 %391 = fadd <8 x double> %337, %381 %392 = fmul <8 x double> %383, %393 = shufflevector <8 x double> %392, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %383, <8 x double> %393, i32 noundef 4) #23 %394 = bitcast <8 x double> %386 to <8 x i64> %395 = xor <8 x i64> %394, %396 = bitcast <8 x i64> %395 to <8 x double> %397 = shufflevector <8 x double> %396, <8 x double> poison, <8 x i32> %398 = fadd <8 x double> %386, %397 %399 = fmul <8 x double> %398, %400 = fmul <8 x double> %387, %401 = shufflevector <8 x double> %400, <8 x double> poison, <8 x i32> %_4.i500 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %387, <8 x double> %401, i32 noundef 4) #23 %402 = bitcast <8 x double> %388 to <8 x i64> %403 = xor <8 x i64> %402, %404 = fmul <8 x double> %389, %405 = shufflevector <8 x double> %404, <8 x double> poison, <8 x i32> %_4.i513 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %389, <8 x double> %405, i32 noundef 4) #23 %406 = bitcast <8 x double> %390 to <8 x i64> %407 = xor <8 x i64> %406, %408 = bitcast <8 x i64> %407 to <8 x double> %409 = shufflevector <8 x double> %408, <8 x double> poison, <8 x i32> %410 = fadd <8 x double> %390, %409 %411 = fmul <8 x double> %410, %412 = fmul <8 x double> %391, %413 = shufflevector <8 x double> %412, <8 x double> poison, <8 x i32> %_4.i530 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %391, <8 x double> %413, i32 noundef 4) #23 %414 = fadd <8 x double> %358, %382 %415 = fadd <8 x double> %_4.i, %359 %416 = fadd <8 x double> %362, %399 %417 = fadd <8 x double> %_4.i500, %363 %418 = bitcast <8 x i64> %403 to <8 x double> %419 = shufflevector <8 x double> %418, <8 x double> poison, <8 x i32> %420 = fsub <8 x double> %364, %419 %421 = fsub <8 x double> %365, %_4.i513 %422 = fsub <8 x double> %366, %411 %423 = fsub <8 x double> %367, %_4.i530 %424 = fsub <8 x double> %358, %382 %425 = fsub <8 x double> %359, %_4.i %426 = fsub <8 x double> %362, %399 %427 = fsub <8 x double> %363, %_4.i500 %428 = fadd <8 x double> %364, %419 %429 = fadd <8 x double> %_4.i513, %365 %430 = fadd <8 x double> %366, %411 %431 = fadd <8 x double> %_4.i530, %367 store <8 x double> %414, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i, align 8, !noalias !1977 store <8 x double> %415, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i, align 8, !noalias !1977 store <8 x double> %416, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i, align 8, !noalias !1977 store <8 x double> %417, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i, align 8, !noalias !1977 store <8 x double> %420, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i, align 8, !noalias !1977 store <8 x double> %421, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i, align 8, !noalias !1977 store <8 x double> %422, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i, align 8, !noalias !1977 store <8 x double> %423, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i, align 8, !noalias !1977 store <8 x double> %424, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i, align 8, !noalias !1977 store <8 x double> %425, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i, align 8, !noalias !1977 store <8 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i, align 8, !noalias !1977 store <8 x double> %427, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i, align 8, !noalias !1977 store <8 x double> %428, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i, align 8, !noalias !1977 store <8 x double> %429, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i, align 8, !noalias !1977 store <8 x double> %430, ptr %_3.i.i.i.i.i.i.i75.i.i.i, align 8, !noalias !1977 store <8 x double> %431, ptr %_3.i.i.i.i.i78.i.i.i, align 8, !noalias !1977 %exitcond.not = icmp eq i64 %295, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc352633737ef7554E.exit", label %bb62.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc352633737ef7554E.exit": ; preds = %bb62.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !1977 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hd5f8fb8fa3a8b2c5E(ptr noalias nocapture noundef readonly align 8 dereferenceable(40) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: tail call void @llvm.experimental.noalias.scope.decl(metadata !1990) tail call void @llvm.experimental.noalias.scope.decl(metadata !1993) %0 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f, i64 0, i32 1 %_2.0.i.i = load ptr, ptr %0, align 8, !alias.scope !1996, !nonnull !3, !align !4, !noundef !3 %1 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f, i64 0, i32 1, i32 1 %_2.1.i.i = load i64, ptr %1, align 8, !alias.scope !1996, !noundef !3 %2 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f, i64 0, i32 2 %_3.0.i.i = load ptr, ptr %2, align 8, !alias.scope !1996, !nonnull !3, !align !4, !noundef !3 %3 = and i64 %_2.1.i.i, 3 %4 = icmp eq i64 %3, 0 br i1 %4, label %bb17.i.i.i, label %bb16.i.i.i bb17.i.i.i: ; preds = %start %5 = getelementptr inbounds %"{closure@src/unordered.rs:306:29: 306:31}.836", ptr %f, i64 0, i32 2, i32 1 %_3.1.i.i = load i64, ptr %5, align 8, !alias.scope !1996, !noundef !3 %6 = shl nsw i64 %_3.1.i.i, 4 %_13.i.i = urem i64 %6, 448 %new_len.i.i = udiv i64 %6, 448 %7 = icmp eq i64 %_13.i.i, 0 br i1 %7, label %bb20.i.i.i, label %bb19.i.i.i bb16.i.i.i: ; preds = %start ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_a14c34eba40c576a6249806baf07fe01, i64 noundef 14, i8 noundef 1) #22, !noalias !1997 unreachable bb20.i.i.i: ; preds = %bb17.i.i.i %8 = lshr exact i64 %_2.1.i.i, 2 %new_len2.i.i = and i64 %8, 288230376151711743 %mid1.i.i.i.i = lshr i64 %new_len2.i.i, 1 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid1.i.i.i.i %10 = sub nsw i64 %new_len2.i.i, %mid1.i.i.i.i %mid5.i5.i.i.i.i = lshr i64 %new_len2.i.i, 2 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid5.i5.i.i.i.i %12 = sub nsw i64 %mid1.i.i.i.i, %mid5.i5.i.i.i.i %mid36.i10.i.i.i.i = lshr i64 %new_len2.i.i, 3 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %mid36.i10.i.i.i.i %14 = sub nsw i64 %mid5.i5.i.i.i.i, %mid36.i10.i.i.i.i %mid47.i15.i.i.i.i = lshr i64 %12, 1 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %mid47.i15.i.i.i.i %16 = sub i64 %12, %mid47.i15.i.i.i.i %mid5.i.i.i.i.i = lshr i64 %10, 1 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %mid5.i.i.i.i.i %18 = sub i64 %10, %mid5.i.i.i.i.i %mid36.i.i.i.i.i = lshr i64 %10, 2 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %mid36.i.i.i.i.i %20 = sub nsw i64 %mid5.i.i.i.i.i, %mid36.i.i.i.i.i %mid47.i.i.i.i.i = lshr i64 %18, 1 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %mid47.i.i.i.i.i %22 = sub i64 %18, %mid47.i.i.i.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %mid36.i10.i.i.i.i, i64 %14) %_0.0.sroa.speculated.i.i.i4.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i.i, i64 %mid47.i15.i.i.i.i) %_0.0.sroa.speculated.i.i.i12.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i4.i, i64 %16) %_0.0.sroa.speculated.i.i.i23.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i12.i, i64 %mid36.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i34.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i23.i, i64 %20) %_0.0.sroa.speculated.i.i.i45.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i34.i, i64 %mid47.i.i.i.i.i) %_0.0.sroa.speculated.i.i.i56.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i45.i, i64 %22) %_0.0.sroa.speculated.i.i.i67.i = tail call noundef i64 @llvm.umin.i64(i64 %_0.0.sroa.speculated.i.i.i56.i, i64 %new_len.i.i) %_2.i.i.i426.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i67.i, 0 br i1 %_2.i.i.i426.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h2fdac5807a19719bE.exit, label %bb12.i.i.i bb19.i.i.i: ; preds = %bb17.i.i.i ; call bytemuck::internal::something_went_wrong tail call fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 @alloc_e8f8dc8c2b4470f2145c106979ea8daf, i64 noundef 10, i8 noundef 1) #22, !noalias !1996 unreachable bb12.i.i.i: ; preds = %bb20.i.i.i, %bb12.i.i.i %iter.i.i.sroa.57.0427.i = phi i64 [ %23, %bb12.i.i.i ], [ 0, %bb20.i.i.i ] %23 = add nuw nsw i64 %iter.i.i.sroa.57.0427.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %_2.0.i.i, i64 %iter.i.i.sroa.57.0427.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.i.i.sroa.57.0427.i %_3.i.i.i.i.i = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i %w1.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !1996 %24 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i, i64 1 %w2.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %24, align 8, !noalias !1996 %25 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i, i64 2 %w3.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %25, align 8, !noalias !1996 %26 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i, i64 3 %w4.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %26, align 8, !noalias !1996 %27 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i, i64 4 %w5.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %27, align 8, !noalias !1996 %28 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i, i64 5 %w6.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %28, align 8, !noalias !1996 %29 = getelementptr inbounds [7 x %"fft_simd::c64x4"], ptr %_3.0.i.i, i64 %iter.i.i.sroa.57.0427.i, i64 6 %w7.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %29, align 8, !noalias !1996 %_53.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_54.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_55.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_56.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_57.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_58.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_59.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 %_60.i.i.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !1996 %30 = fadd <8 x double> %_53.i.i.sroa.0.0.copyload.i, %_57.i.i.sroa.0.0.copyload.i %31 = fsub <8 x double> %_53.i.i.sroa.0.0.copyload.i, %_57.i.i.sroa.0.0.copyload.i %32 = fadd <8 x double> %_55.i.i.sroa.0.0.copyload.i, %_59.i.i.sroa.0.0.copyload.i %33 = fsub <8 x double> %_55.i.i.sroa.0.0.copyload.i, %_59.i.i.sroa.0.0.copyload.i %34 = bitcast <8 x double> %33 to <8 x i64> %35 = xor <8 x i64> %34, %36 = bitcast <8 x i64> %35 to <8 x double> %37 = shufflevector <8 x double> %36, <8 x double> poison, <8 x i32> %38 = fadd <8 x double> %_54.i.i.sroa.0.0.copyload.i, %_58.i.i.sroa.0.0.copyload.i %39 = fsub <8 x double> %_54.i.i.sroa.0.0.copyload.i, %_58.i.i.sroa.0.0.copyload.i %40 = fadd <8 x double> %_56.i.i.sroa.0.0.copyload.i, %_60.i.i.sroa.0.0.copyload.i %41 = fsub <8 x double> %_56.i.i.sroa.0.0.copyload.i, %_60.i.i.sroa.0.0.copyload.i %42 = bitcast <8 x double> %41 to <8 x i64> %43 = xor <8 x i64> %42, %44 = bitcast <8 x i64> %43 to <8 x double> %45 = shufflevector <8 x double> %44, <8 x double> poison, <8 x i32> %46 = fadd <8 x double> %30, %32 %47 = fadd <8 x double> %38, %40 %48 = fsub <8 x double> %30, %32 %49 = fsub <8 x double> %38, %40 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = bitcast <8 x i64> %51 to <8 x double> %53 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %54 = fsub <8 x double> %31, %37 %55 = fsub <8 x double> %39, %45 %56 = bitcast <8 x double> %55 to <8 x i64> %57 = xor <8 x i64> %56, %58 = bitcast <8 x i64> %57 to <8 x double> %59 = shufflevector <8 x double> %58, <8 x double> poison, <8 x i32> %60 = fadd <8 x double> %55, %59 %61 = fmul <8 x double> %60, %62 = fadd <8 x double> %31, %37 %63 = fadd <8 x double> %39, %45 %64 = bitcast <8 x double> %63 to <8 x i64> %65 = xor <8 x i64> %64, %66 = bitcast <8 x i64> %65 to <8 x double> %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = fadd <8 x double> %63, %67 %69 = fmul <8 x double> %68, %70 = fadd <8 x double> %46, %47 %71 = fadd <8 x double> %54, %61 %72 = shufflevector <8 x double> %71, <8 x double> poison, <8 x i32> %73 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %74 = shufflevector <8 x double> %w1.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %74, %72 %_4.i6 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %73, <8 x double> %71, <8 x double> %75, i32 noundef 4) #23 %76 = fsub <8 x double> %48, %53 %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %79 = shufflevector <8 x double> %w2.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %80 = fmul <8 x double> %79, %77 %_4.i5 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %78, <8 x double> %76, <8 x double> %80, i32 noundef 4) #23 %81 = fsub <8 x double> %62, %69 %82 = shufflevector <8 x double> %81, <8 x double> poison, <8 x i32> %83 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %84 = shufflevector <8 x double> %w3.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %85 = fmul <8 x double> %84, %82 %_4.i4 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %83, <8 x double> %81, <8 x double> %85, i32 noundef 4) #23 %86 = fsub <8 x double> %46, %47 %87 = shufflevector <8 x double> %86, <8 x double> poison, <8 x i32> %88 = shufflevector <8 x double> %w4.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %89 = shufflevector <8 x double> %w4.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %90 = fmul <8 x double> %89, %87 %_4.i3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %88, <8 x double> %86, <8 x double> %90, i32 noundef 4) #23 %91 = fsub <8 x double> %54, %61 %92 = shufflevector <8 x double> %91, <8 x double> poison, <8 x i32> %93 = shufflevector <8 x double> %w5.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %94 = shufflevector <8 x double> %w5.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %95 = fmul <8 x double> %94, %92 %_4.i2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %93, <8 x double> %91, <8 x double> %95, i32 noundef 4) #23 %96 = fadd <8 x double> %48, %53 %97 = shufflevector <8 x double> %96, <8 x double> poison, <8 x i32> %98 = shufflevector <8 x double> %w6.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %99 = shufflevector <8 x double> %w6.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %100 = fmul <8 x double> %99, %97 %_4.i1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %96, <8 x double> %100, i32 noundef 4) #23 %101 = fadd <8 x double> %62, %69 %102 = shufflevector <8 x double> %101, <8 x double> poison, <8 x i32> %103 = shufflevector <8 x double> %w7.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %104 = shufflevector <8 x double> %w7.i.i.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %105 = fmul <8 x double> %104, %102 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %101, <8 x double> %105, i32 noundef 4) #23 store <8 x double> %70, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i6, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i5, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i4, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i3, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !1996 store <8 x double> %_4.i, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !1996 %exitcond.not.i = icmp eq i64 %23, %_0.0.sroa.speculated.i.i.i67.i br i1 %exitcond.not.i, label %_ZN4core3ops8function6FnOnce9call_once17h2fdac5807a19719bE.exit, label %bb12.i.i.i _ZN4core3ops8function6FnOnce9call_once17h2fdac5807a19719bE.exit: ; preds = %bb12.i.i.i, %bb20.i.i.i ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hda3cf76f07d05a4dE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2000) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2000, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2000, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2000, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2000, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2000, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2000, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !2000, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !2000, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2000 store i64 256, ptr %n.i, align 8, !noalias !2000 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2000 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2000 %_12.i = icmp eq i64 %buf.1.i, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2000 store ptr null, ptr %_16.i, align 8, !noalias !2000 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2000 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2000 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2000 %_20.i = icmp eq i64 %scratch.1.i, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2000 store ptr null, ptr %_24.i, align 8, !noalias !2000 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2000 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2000 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2000 %_28.i = icmp eq i64 %w_init.1.i, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2000 store ptr null, ptr %_32.i, align 8, !noalias !2000 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2000 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2000 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2000 %_36.i = icmp eq i64 %w.1.i, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83c6b72a78a4249E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2000 store ptr null, ptr %_40.i, align 8, !noalias !2000 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83c6b72a78a4249E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2000 tail call void @llvm.experimental.noalias.scope.decl(metadata !2003) tail call void @llvm.experimental.noalias.scope.decl(metadata !2006) tail call void @llvm.experimental.noalias.scope.decl(metadata !2008) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83c6b72a78a4249E.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83c6b72a78a4249E.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2008, !noalias !2010 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !2008, !noalias !2010 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !2008, !noalias !2010 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2003, !noalias !2011 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2003, !noalias !2011 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2003, !noalias !2011 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2003, !noalias !2011 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = bitcast <8 x i64> %19 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fadd <8 x double> %14, %16 %23 = fsub <8 x double> %15, %21 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %21 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %22, <8 x double> %_4.i172, <8 x i32> %39 = shufflevector <8 x double> %22, <8 x double> %_4.i172, <8 x i32> %40 = shufflevector <8 x double> %_4.i171, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i171, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2006, !noalias !2012 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !2006, !noalias !2012 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !2006, !noalias !2012 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !2006, !noalias !2012 %exitcond.not.i = icmp eq i64 %13, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !2013) tail call void @llvm.experimental.noalias.scope.decl(metadata !2016) tail call void @llvm.experimental.noalias.scope.decl(metadata !2018) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 br label %bb22.us.i bb22.us.i: ; preds = %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, %bb22.us.i %iter.sroa.60.0648.us.i = phi i64 [ %88, %bb22.us.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit ] %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter.sroa.60.0648.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter.sroa.60.0648.us.i %data.i.i.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter.sroa.60.0648.us.i %start1.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i, 2 %data.i.i.i.i.i.i.us.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.us.i %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !2018, !noalias !2020, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !2018, !noalias !2020, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !2018, !noalias !2020, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !2018, !noalias !2020, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !2018, !noalias !2020, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !2018, !noalias !2020, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !2013, !noalias !2021 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !2013, !noalias !2021 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !2013, !noalias !2021 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i, align 8, !alias.scope !2013, !noalias !2021 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = bitcast <8 x i64> %75 to <8 x double> %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = fadd <8 x double> %70, %72 store <8 x double> %78, ptr %data.i.i.i.i.i.i.us.i, align 8, !alias.scope !2016, !noalias !2022 %79 = fsub <8 x double> %71, %77 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i175 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i175, ptr %62, align 8, !alias.scope !2016, !noalias !2022 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i174 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i174, ptr %61, align 8, !alias.scope !2016, !noalias !2022 %85 = fadd <8 x double> %71, %77 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i173, ptr %63, align 8, !alias.scope !2016, !noalias !2022 %88 = add nuw nsw i64 %iter.sroa.60.0648.us.i, 1 %exitcond.not = icmp eq i64 %88, 16 br i1 %exitcond.not, label %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, label %bb22.us.i _ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit: ; preds = %bb22.us.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2023) tail call void @llvm.experimental.noalias.scope.decl(metadata !2026) tail call void @llvm.experimental.noalias.scope.decl(metadata !2028) br label %bb22.us.i36 bb22.us.i36: ; preds = %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit, %bb22.us.i36 %iter.sroa.60.0648.us.i37 = phi i64 [ %179, %bb22.us.i36 ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i = shl i64 %iter.sroa.60.0648.us.i37, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.i.i.us.i40 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %data.i.i.i.i.i.i.i.i.us.i41 = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i %start1.i.i.i.i.i.i.us.i42 = shl i64 %iter.sroa.60.0648.us.i37, 4 %data.i.i.i.i.i.i.us.i43 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.us.i42 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1 %w1.0617.us.i44 = load <2 x float>, ptr %89, align 8, !alias.scope !2028, !noalias !2030, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 1, i32 1 %w1.1618.us.i45 = load <2 x float>, ptr %90, align 8, !alias.scope !2028, !noalias !2030, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2 %w2.0619.us.i46 = load <2 x float>, ptr %91, align 8, !alias.scope !2028, !noalias !2030, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 2, i32 1 %w2.1620.us.i47 = load <2 x float>, ptr %92, align 8, !alias.scope !2028, !noalias !2030, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3 %w3.0621.us.i48 = load <2 x float>, ptr %93, align 8, !alias.scope !2028, !noalias !2030, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i.i.us.i42, i64 3, i32 1 %w3.1622.us.i49 = load <2 x float>, ptr %94, align 8, !alias.scope !2028, !noalias !2030, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i50 = shufflevector <2 x float> %w1.0617.us.i44, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i51 = shufflevector <2 x float> %w1.1618.us.i45, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i52 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i50, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i51, <4 x i32> %95 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i52 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i54 = shufflevector <2 x float> %w2.0619.us.i46, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i55 = shufflevector <2 x float> %w2.1620.us.i47, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i56 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i54, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i55, <4 x i32> %96 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i56 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i58 = shufflevector <2 x float> %w3.0621.us.i48, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i59 = shufflevector <2 x float> %w3.1622.us.i49, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i60 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i58, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i59, <4 x i32> %97 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i60 to <2 x double> %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 8 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 4 %100 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 12 %101 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %103 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %105 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> zeroinitializer %106 = shufflevector <2 x double> %97, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i72 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, align 8, !alias.scope !2023, !noalias !2031 %b.sroa.0.0.copyload.us.i73 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, align 8, !alias.scope !2023, !noalias !2031 %c.sroa.0.0.copyload.us.i74 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, align 8, !alias.scope !2023, !noalias !2031 %d.sroa.0.0.copyload.us.i75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i41, align 8, !alias.scope !2023, !noalias !2031 %107 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %108 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72, %c.sroa.0.0.copyload.us.i74 %109 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %110 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73, %d.sroa.0.0.copyload.us.i75 %111 = bitcast <8 x double> %110 to <8 x i64> %112 = xor <8 x i64> %111, %113 = bitcast <8 x i64> %112 to <8 x double> %114 = shufflevector <8 x double> %113, <8 x double> poison, <8 x i32> %115 = fadd <8 x double> %107, %109 store <8 x double> %115, ptr %data.i.i.i.i.i.i.us.i43, align 8, !alias.scope !2026, !noalias !2032 %116 = fsub <8 x double> %108, %114 %117 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %118 = fmul <8 x double> %102, %117 %_4.i178 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %116, <8 x double> %118, i32 noundef 4) #23 store <8 x double> %_4.i178, ptr %99, align 8, !alias.scope !2026, !noalias !2032 %119 = fsub <8 x double> %107, %109 %120 = shufflevector <8 x double> %119, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %104, %120 %_4.i177 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %119, <8 x double> %121, i32 noundef 4) #23 store <8 x double> %_4.i177, ptr %98, align 8, !alias.scope !2026, !noalias !2032 %122 = fadd <8 x double> %108, %114 %123 = shufflevector <8 x double> %122, <8 x double> poison, <8 x i32> %124 = fmul <8 x double> %106, %123 %_4.i176 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %122, <8 x double> %124, i32 noundef 4) #23 store <8 x double> %_4.i176, ptr %100, align 8, !alias.scope !2026, !noalias !2032 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 1 %_3.i.i.i.i.i.i.i.i.us.i69.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 5 %_3.i.i.i.i.i.i.us.i70.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 9 %_3.i.i.i.i.us.i71.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 13 %a.sroa.0.0.copyload.us.i72.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1, align 8, !alias.scope !2023, !noalias !2031 %b.sroa.0.0.copyload.us.i73.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.1, align 8, !alias.scope !2023, !noalias !2031 %c.sroa.0.0.copyload.us.i74.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.1, align 8, !alias.scope !2023, !noalias !2031 %d.sroa.0.0.copyload.us.i75.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.1, align 8, !alias.scope !2023, !noalias !2031 %125 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %126 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.1, %c.sroa.0.0.copyload.us.i74.1 %127 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %128 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.1, %d.sroa.0.0.copyload.us.i75.1 %129 = bitcast <8 x double> %128 to <8 x i64> %130 = xor <8 x i64> %129, %131 = bitcast <8 x i64> %130 to <8 x double> %132 = shufflevector <8 x double> %131, <8 x double> poison, <8 x i32> %133 = fadd <8 x double> %125, %127 store <8 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.1, align 8, !alias.scope !2026, !noalias !2032 %134 = fsub <8 x double> %126, %132 %135 = shufflevector <8 x double> %134, <8 x double> poison, <8 x i32> %136 = fmul <8 x double> %102, %135 %_4.i178.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %134, <8 x double> %136, i32 noundef 4) #23 store <8 x double> %_4.i178.1, ptr %_3.i.i.i.i.i.i.i.i.us.i69.1, align 8, !alias.scope !2026, !noalias !2032 %137 = fsub <8 x double> %125, %127 %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fmul <8 x double> %104, %138 %_4.i177.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %137, <8 x double> %139, i32 noundef 4) #23 store <8 x double> %_4.i177.1, ptr %_3.i.i.i.i.i.i.us.i70.1, align 8, !alias.scope !2026, !noalias !2032 %140 = fadd <8 x double> %126, %132 %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %106, %141 %_4.i176.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %140, <8 x double> %142, i32 noundef 4) #23 store <8 x double> %_4.i176.1, ptr %_3.i.i.i.i.us.i71.1, align 8, !alias.scope !2026, !noalias !2032 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 2 %_3.i.i.i.i.i.i.i.i.us.i69.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 6 %_3.i.i.i.i.i.i.us.i70.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 10 %_3.i.i.i.i.us.i71.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 14 %a.sroa.0.0.copyload.us.i72.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2, align 8, !alias.scope !2023, !noalias !2031 %b.sroa.0.0.copyload.us.i73.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.2, align 8, !alias.scope !2023, !noalias !2031 %c.sroa.0.0.copyload.us.i74.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.2, align 8, !alias.scope !2023, !noalias !2031 %d.sroa.0.0.copyload.us.i75.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.2, align 8, !alias.scope !2023, !noalias !2031 %143 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %144 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.2, %c.sroa.0.0.copyload.us.i74.2 %145 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %146 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.2, %d.sroa.0.0.copyload.us.i75.2 %147 = bitcast <8 x double> %146 to <8 x i64> %148 = xor <8 x i64> %147, %149 = bitcast <8 x i64> %148 to <8 x double> %150 = shufflevector <8 x double> %149, <8 x double> poison, <8 x i32> %151 = fadd <8 x double> %143, %145 store <8 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.2, align 8, !alias.scope !2026, !noalias !2032 %152 = fsub <8 x double> %144, %150 %153 = shufflevector <8 x double> %152, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %102, %153 %_4.i178.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %152, <8 x double> %154, i32 noundef 4) #23 store <8 x double> %_4.i178.2, ptr %_3.i.i.i.i.i.i.i.i.us.i69.2, align 8, !alias.scope !2026, !noalias !2032 %155 = fsub <8 x double> %143, %145 %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %157 = fmul <8 x double> %104, %156 %_4.i177.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %155, <8 x double> %157, i32 noundef 4) #23 store <8 x double> %_4.i177.2, ptr %_3.i.i.i.i.i.i.us.i70.2, align 8, !alias.scope !2026, !noalias !2032 %158 = fadd <8 x double> %144, %150 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = fmul <8 x double> %106, %159 %_4.i176.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %158, <8 x double> %160, i32 noundef 4) #23 store <8 x double> %_4.i176.2, ptr %_3.i.i.i.i.us.i71.2, align 8, !alias.scope !2026, !noalias !2032 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i38, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i39, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i40, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.us.i41, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 3 %_3.i.i.i.i.i.i.i.i.us.i69.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 7 %_3.i.i.i.i.i.i.us.i70.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 11 %_3.i.i.i.i.us.i71.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.us.i43, i64 15 %a.sroa.0.0.copyload.us.i72.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3, align 8, !alias.scope !2023, !noalias !2031 %b.sroa.0.0.copyload.us.i73.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i65.3, align 8, !alias.scope !2023, !noalias !2031 %c.sroa.0.0.copyload.us.i74.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i66.3, align 8, !alias.scope !2023, !noalias !2031 %d.sroa.0.0.copyload.us.i75.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i67.3, align 8, !alias.scope !2023, !noalias !2031 %161 = fadd <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %162 = fsub <8 x double> %a.sroa.0.0.copyload.us.i72.3, %c.sroa.0.0.copyload.us.i74.3 %163 = fadd <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %164 = fsub <8 x double> %b.sroa.0.0.copyload.us.i73.3, %d.sroa.0.0.copyload.us.i75.3 %165 = bitcast <8 x double> %164 to <8 x i64> %166 = xor <8 x i64> %165, %167 = bitcast <8 x i64> %166 to <8 x double> %168 = shufflevector <8 x double> %167, <8 x double> poison, <8 x i32> %169 = fadd <8 x double> %161, %163 store <8 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i68.3, align 8, !alias.scope !2026, !noalias !2032 %170 = fsub <8 x double> %162, %168 %171 = shufflevector <8 x double> %170, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %102, %171 %_4.i178.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %101, <8 x double> %170, <8 x double> %172, i32 noundef 4) #23 store <8 x double> %_4.i178.3, ptr %_3.i.i.i.i.i.i.i.i.us.i69.3, align 8, !alias.scope !2026, !noalias !2032 %173 = fsub <8 x double> %161, %163 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %104, %174 %_4.i177.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %103, <8 x double> %173, <8 x double> %175, i32 noundef 4) #23 store <8 x double> %_4.i177.3, ptr %_3.i.i.i.i.i.i.us.i70.3, align 8, !alias.scope !2026, !noalias !2032 %176 = fadd <8 x double> %162, %168 %177 = shufflevector <8 x double> %176, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %106, %177 %_4.i176.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %105, <8 x double> %176, <8 x double> %178, i32 noundef 4) #23 store <8 x double> %_4.i176.3, ptr %_3.i.i.i.i.us.i71.3, align 8, !alias.scope !2026, !noalias !2032 %179 = add nuw nsw i64 %iter.sroa.60.0648.us.i37, 1 %exitcond507.not = icmp eq i64 %179, 4 br i1 %exitcond507.not, label %bb26.i.i.i.i.i, label %bb22.us.i36 bb26.i.i.i.i.i: ; preds = %bb22.us.i36, %bb26.i.i.i.i.i %iter7.i.i.i.i.i.sroa.50.0506 = phi i64 [ %180, %bb26.i.i.i.i.i ], [ 0, %bb22.us.i36 ] %180 = add nuw nsw i64 %iter7.i.i.i.i.i.sroa.50.0506, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %50, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %49, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %51, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter7.i.i.i.i.i.sroa.50.0506 %_73.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2000 %_74.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2000 %_75.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2000 %_76.i.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2000 %181 = fadd <8 x double> %_73.i.i.i.i.i.sroa.0.0.copyload, %_75.i.i.i.i.i.sroa.0.0.copyload %182 = fsub <8 x double> %_73.i.i.i.i.i.sroa.0.0.copyload, %_75.i.i.i.i.i.sroa.0.0.copyload %183 = fadd <8 x double> %_74.i.i.i.i.i.sroa.0.0.copyload, %_76.i.i.i.i.i.sroa.0.0.copyload %184 = fsub <8 x double> %_74.i.i.i.i.i.sroa.0.0.copyload, %_76.i.i.i.i.i.sroa.0.0.copyload %185 = bitcast <8 x double> %184 to <8 x i64> %186 = xor <8 x i64> %185, %187 = bitcast <8 x i64> %186 to <8 x double> %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = fadd <8 x double> %181, %183 %190 = fsub <8 x double> %182, %188 %191 = fsub <8 x double> %181, %183 %192 = fadd <8 x double> %182, %188 store <8 x double> %189, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2000 store <8 x double> %190, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !2000 store <8 x double> %191, ptr %_3.i.i.i.i.i.i, align 8, !noalias !2000 store <8 x double> %192, ptr %_3.i.i.i.i, align 8, !noalias !2000 %exitcond508.not = icmp eq i64 %180, 16 br i1 %exitcond508.not, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit", label %bb26.i.i.i.i.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had6e3fc1dddb72cbE.exit": ; preds = %bb26.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2000 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17he14bd5ed8838f289E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2033) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2033, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2033, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2033, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2033, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2033, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2033, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !2033, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2033 store i64 64, ptr %n.i, align 8, !noalias !2033 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2033 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2033 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2033 store ptr null, ptr %_16.i, align 8, !noalias !2033 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2033 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2033 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2033 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2033 store ptr null, ptr %_24.i, align 8, !noalias !2033 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2033 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2033 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2033 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2033 store ptr null, ptr %_32.i, align 8, !noalias !2033 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2033 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2033 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2033 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h747255713c4e61b2E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2033 store ptr null, ptr %_40.i, align 8, !noalias !2033 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h747255713c4e61b2E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2033 %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %_73.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !2036 %_74.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %10, align 8, !noalias !2036 %_75.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !2036 %_76.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %11, align 8, !noalias !2036 %12 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %13 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload, %_75.i.i.i.sroa.0.0.copyload %14 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %15 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload, %_76.i.i.i.sroa.0.0.copyload %16 = bitcast <8 x double> %15 to <8 x i64> %17 = xor <8 x i64> %16, %18 = bitcast <8 x i64> %17 to <8 x double> %19 = shufflevector <8 x double> %18, <8 x double> poison, <8 x i32> %20 = fadd <8 x double> %12, %14 %21 = fsub <8 x double> %13, %19 %22 = fsub <8 x double> %12, %14 %23 = fadd <8 x double> %13, %19 store <8 x double> %20, ptr %scratch.0.i, align 8, !noalias !2036 store <8 x double> %21, ptr %7, align 8, !noalias !2036 store <8 x double> %22, ptr %6, align 8, !noalias !2036 store <8 x double> %23, ptr %8, align 8, !noalias !2036 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_73.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2036 %_74.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !2036 %_75.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !2036 %_76.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !2036 %24 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %25 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.1, %_75.i.i.i.sroa.0.0.copyload.1 %26 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %27 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.1, %_76.i.i.i.sroa.0.0.copyload.1 %28 = bitcast <8 x double> %27 to <8 x i64> %29 = xor <8 x i64> %28, %30 = bitcast <8 x i64> %29 to <8 x double> %31 = shufflevector <8 x double> %30, <8 x double> poison, <8 x i32> %32 = fadd <8 x double> %24, %26 %33 = fsub <8 x double> %25, %31 %34 = fsub <8 x double> %24, %26 %35 = fadd <8 x double> %25, %31 store <8 x double> %32, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2036 store <8 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2036 store <8 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2036 store <8 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2036 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_73.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2036 %_74.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !2036 %_75.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !2036 %_76.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !2036 %36 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %37 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.2, %_75.i.i.i.sroa.0.0.copyload.2 %38 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %39 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.2, %_76.i.i.i.sroa.0.0.copyload.2 %40 = bitcast <8 x double> %39 to <8 x i64> %41 = xor <8 x i64> %40, %42 = bitcast <8 x i64> %41 to <8 x double> %43 = shufflevector <8 x double> %42, <8 x double> poison, <8 x i32> %44 = fadd <8 x double> %36, %38 %45 = fsub <8 x double> %37, %43 %46 = fsub <8 x double> %36, %38 %47 = fadd <8 x double> %37, %43 store <8 x double> %44, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2036 store <8 x double> %45, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2036 store <8 x double> %46, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2036 store <8 x double> %47, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2036 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_73.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2036 %_74.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !2036 %_75.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !2036 %_76.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !2036 %48 = fadd <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %49 = fsub <8 x double> %_73.i.i.i.sroa.0.0.copyload.3, %_75.i.i.i.sroa.0.0.copyload.3 %50 = fadd <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %51 = fsub <8 x double> %_74.i.i.i.sroa.0.0.copyload.3, %_76.i.i.i.sroa.0.0.copyload.3 %52 = bitcast <8 x double> %51 to <8 x i64> %53 = xor <8 x i64> %52, %54 = bitcast <8 x i64> %53 to <8 x double> %55 = shufflevector <8 x double> %54, <8 x double> poison, <8 x i32> %56 = fadd <8 x double> %48, %50 %57 = fsub <8 x double> %49, %55 %58 = fsub <8 x double> %48, %50 %59 = fadd <8 x double> %49, %55 store <8 x double> %56, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2036 store <8 x double> %57, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2036 store <8 x double> %58, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2036 store <8 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2036 tail call void @llvm.experimental.noalias.scope.decl(metadata !2040) tail call void @llvm.experimental.noalias.scope.decl(metadata !2043) tail call void @llvm.experimental.noalias.scope.decl(metadata !2045) %60 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %64 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %65 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %66 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %67 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %68 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %70 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %71 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %72 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 1 %73 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 3 %74 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %75 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 5 %76 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 7 %77 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %78 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %79 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 9 %80 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 11 %81 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %82 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 13 %83 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 15 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %72, align 8, !alias.scope !2045, !noalias !2047 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %71, align 8, !alias.scope !2045, !noalias !2047 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %73, align 8, !alias.scope !2045, !noalias !2047 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %70, align 8, !alias.scope !2045, !noalias !2047 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %75, align 8, !alias.scope !2045, !noalias !2047 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %74, align 8, !alias.scope !2045, !noalias !2047 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %76, align 8, !alias.scope !2045, !noalias !2047 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %69, align 8, !alias.scope !2045, !noalias !2047 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %79, align 8, !alias.scope !2045, !noalias !2047 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %78, align 8, !alias.scope !2045, !noalias !2047 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %80, align 8, !alias.scope !2045, !noalias !2047 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %77, align 8, !alias.scope !2045, !noalias !2047 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %82, align 8, !alias.scope !2045, !noalias !2047 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %81, align 8, !alias.scope !2045, !noalias !2047 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %83, align 8, !alias.scope !2045, !noalias !2047 %abcd0.sroa.0.0.copyload.i = load <8 x double>, ptr %scratch.0.i, align 8, !alias.scope !2043, !noalias !2048 %efgh0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2043, !noalias !2048 %abcd1.sroa.0.0.copyload.i = load <8 x double>, ptr %7, align 8, !alias.scope !2043, !noalias !2048 %84 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 5 %efgh1.sroa.0.0.copyload.i = load <8 x double>, ptr %84, align 8, !alias.scope !2043, !noalias !2048 %abcd2.sroa.0.0.copyload.i = load <8 x double>, ptr %6, align 8, !alias.scope !2043, !noalias !2048 %85 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 9 %efgh2.sroa.0.0.copyload.i = load <8 x double>, ptr %85, align 8, !alias.scope !2043, !noalias !2048 %abcd3.sroa.0.0.copyload.i = load <8 x double>, ptr %8, align 8, !alias.scope !2043, !noalias !2048 %86 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 0, i64 13 %efgh3.sroa.0.0.copyload.i = load <8 x double>, ptr %86, align 8, !alias.scope !2043, !noalias !2048 %87 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %88 = shufflevector <8 x double> %abcd0.sroa.0.0.copyload.i, <8 x double> %abcd1.sroa.0.0.copyload.i, <8 x i32> %89 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %90 = shufflevector <8 x double> %abcd2.sroa.0.0.copyload.i, <8 x double> %abcd3.sroa.0.0.copyload.i, <8 x i32> %91 = shufflevector <8 x double> %87, <8 x double> %89, <8 x i32> %92 = shufflevector <8 x double> %87, <8 x double> %89, <8 x i32> %93 = shufflevector <8 x double> %88, <8 x double> %90, <8 x i32> %94 = shufflevector <8 x double> %88, <8 x double> %90, <8 x i32> %95 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %96 = shufflevector <8 x double> %efgh0.sroa.0.0.copyload.i, <8 x double> %efgh1.sroa.0.0.copyload.i, <8 x i32> %97 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %98 = shufflevector <8 x double> %efgh2.sroa.0.0.copyload.i, <8 x double> %efgh3.sroa.0.0.copyload.i, <8 x i32> %99 = shufflevector <8 x double> %95, <8 x double> %97, <8 x i32> %100 = shufflevector <8 x double> %95, <8 x double> %97, <8 x i32> %101 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %102 = shufflevector <8 x double> %96, <8 x double> %98, <8 x i32> %103 = shufflevector <8 x double> %44, <8 x double> %45, <8 x i32> %104 = shufflevector <8 x double> %44, <8 x double> %45, <8 x i32> %105 = shufflevector <8 x double> %46, <8 x double> %47, <8 x i32> %106 = shufflevector <8 x double> %46, <8 x double> %47, <8 x i32> %107 = shufflevector <8 x double> %103, <8 x double> %105, <8 x i32> %108 = shufflevector <8 x double> %103, <8 x double> %105, <8 x i32> %109 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %110 = shufflevector <8 x double> %104, <8 x double> %106, <8 x i32> %111 = shufflevector <8 x double> %56, <8 x double> %57, <8 x i32> %112 = shufflevector <8 x double> %56, <8 x double> %57, <8 x i32> %113 = shufflevector <8 x double> %58, <8 x double> %59, <8 x i32> %114 = shufflevector <8 x double> %58, <8 x double> %59, <8 x i32> %115 = shufflevector <8 x double> %111, <8 x double> %113, <8 x i32> %116 = shufflevector <8 x double> %111, <8 x double> %113, <8 x i32> %117 = shufflevector <8 x double> %112, <8 x double> %114, <8 x i32> %118 = shufflevector <8 x double> %112, <8 x double> %114, <8 x i32> %119 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %120 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %121 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %122 = fmul <8 x double> %121, %119 %_4.i111 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %120, <8 x double> %93, <8 x double> %122, i32 noundef 4) #23 %123 = shufflevector <8 x double> %92, <8 x double> poison, <8 x i32> %124 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %125 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %126 = fmul <8 x double> %125, %123 %_4.i110 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %124, <8 x double> %92, <8 x double> %126, i32 noundef 4) #23 %127 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %128 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %129 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %130 = fmul <8 x double> %129, %127 %_4.i109 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %128, <8 x double> %94, <8 x double> %130, i32 noundef 4) #23 %131 = shufflevector <8 x double> %99, <8 x double> poison, <8 x i32> %132 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %133 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %134 = fmul <8 x double> %133, %131 %_4.i108 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %132, <8 x double> %99, <8 x double> %134, i32 noundef 4) #23 %135 = shufflevector <8 x double> %101, <8 x double> poison, <8 x i32> %136 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %137 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %138 = fmul <8 x double> %137, %135 %_4.i107 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %136, <8 x double> %101, <8 x double> %138, i32 noundef 4) #23 %139 = shufflevector <8 x double> %100, <8 x double> poison, <8 x i32> %140 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %141 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %142 = fmul <8 x double> %141, %139 %_4.i106 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %140, <8 x double> %100, <8 x double> %142, i32 noundef 4) #23 %143 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %144 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %145 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %146 = fmul <8 x double> %145, %143 %_4.i105 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %144, <8 x double> %102, <8 x double> %146, i32 noundef 4) #23 %147 = shufflevector <8 x double> %107, <8 x double> poison, <8 x i32> %148 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %149 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %150 = fmul <8 x double> %149, %147 %_4.i104 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %148, <8 x double> %107, <8 x double> %150, i32 noundef 4) #23 %151 = shufflevector <8 x double> %109, <8 x double> poison, <8 x i32> %152 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %153 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %154 = fmul <8 x double> %153, %151 %_4.i103 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %152, <8 x double> %109, <8 x double> %154, i32 noundef 4) #23 %155 = shufflevector <8 x double> %108, <8 x double> poison, <8 x i32> %156 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %157 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %158 = fmul <8 x double> %157, %155 %_4.i102 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %156, <8 x double> %108, <8 x double> %158, i32 noundef 4) #23 %159 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %161, %159 %_4.i101 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %110, <8 x double> %162, i32 noundef 4) #23 %163 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %164 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = fmul <8 x double> %165, %163 %_4.i100 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %115, <8 x double> %166, i32 noundef 4) #23 %167 = shufflevector <8 x double> %117, <8 x double> poison, <8 x i32> %168 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %169 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %170 = fmul <8 x double> %169, %167 %_4.i99 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %117, <8 x double> %170, i32 noundef 4) #23 %171 = shufflevector <8 x double> %116, <8 x double> poison, <8 x i32> %172 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %173 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %174 = fmul <8 x double> %173, %171 %_4.i98 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %116, <8 x double> %174, i32 noundef 4) #23 %175 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %178 = fmul <8 x double> %177, %175 %_4.i97 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %118, <8 x double> %178, i32 noundef 4) #23 %179 = fadd <8 x double> %91, %_4.i104 %180 = fsub <8 x double> %91, %_4.i104 %181 = fadd <8 x double> %_4.i108, %_4.i100 %182 = fsub <8 x double> %_4.i108, %_4.i100 %183 = fadd <8 x double> %_4.i110, %_4.i102 %184 = fsub <8 x double> %_4.i110, %_4.i102 %185 = fadd <8 x double> %_4.i106, %_4.i98 %186 = fsub <8 x double> %_4.i106, %_4.i98 %187 = fadd <8 x double> %_4.i111, %_4.i103 %188 = fsub <8 x double> %_4.i111, %_4.i103 %189 = fadd <8 x double> %_4.i107, %_4.i99 %190 = fsub <8 x double> %_4.i107, %_4.i99 %191 = fadd <8 x double> %_4.i109, %_4.i101 %192 = fsub <8 x double> %_4.i109, %_4.i101 %193 = fadd <8 x double> %_4.i105, %_4.i97 %194 = fsub <8 x double> %_4.i105, %_4.i97 %195 = bitcast <8 x double> %182 to <8 x i64> %196 = xor <8 x i64> %195, %197 = bitcast <8 x i64> %196 to <8 x double> %198 = shufflevector <8 x double> %197, <8 x double> poison, <8 x i32> %199 = bitcast <8 x double> %186 to <8 x i64> %200 = xor <8 x i64> %199, %201 = bitcast <8 x i64> %200 to <8 x double> %202 = shufflevector <8 x double> %201, <8 x double> poison, <8 x i32> %203 = bitcast <8 x double> %190 to <8 x i64> %204 = xor <8 x i64> %203, %205 = bitcast <8 x i64> %204 to <8 x double> %206 = shufflevector <8 x double> %205, <8 x double> poison, <8 x i32> %207 = bitcast <8 x double> %194 to <8 x i64> %208 = xor <8 x i64> %207, %209 = bitcast <8 x i64> %208 to <8 x double> %210 = shufflevector <8 x double> %209, <8 x double> poison, <8 x i32> %211 = fadd <8 x double> %179, %181 %212 = fsub <8 x double> %180, %198 %213 = fsub <8 x double> %179, %181 %214 = fadd <8 x double> %180, %198 %215 = fadd <8 x double> %183, %185 %216 = fsub <8 x double> %184, %202 %217 = fsub <8 x double> %183, %185 %218 = fadd <8 x double> %184, %202 %219 = fadd <8 x double> %187, %189 %220 = fsub <8 x double> %188, %206 %221 = fsub <8 x double> %187, %189 %222 = fadd <8 x double> %188, %206 %223 = fadd <8 x double> %191, %193 %224 = fsub <8 x double> %192, %210 %225 = fsub <8 x double> %191, %193 %226 = fadd <8 x double> %192, %210 %227 = bitcast <8 x double> %216 to <8 x i64> %228 = xor <8 x i64> %227, %229 = bitcast <8 x i64> %228 to <8 x double> %230 = shufflevector <8 x double> %229, <8 x double> poison, <8 x i32> %231 = fadd <8 x double> %216, %230 %232 = fmul <8 x double> %231, %233 = bitcast <8 x double> %217 to <8 x i64> %234 = xor <8 x i64> %233, %235 = bitcast <8 x i64> %234 to <8 x double> %236 = shufflevector <8 x double> %235, <8 x double> poison, <8 x i32> %237 = bitcast <8 x double> %218 to <8 x i64> %238 = xor <8 x i64> %237, %239 = bitcast <8 x i64> %238 to <8 x double> %240 = shufflevector <8 x double> %239, <8 x double> poison, <8 x i32> %241 = fadd <8 x double> %218, %240 %242 = fmul <8 x double> %241, %243 = fadd <8 x double> %211, %215 %244 = fadd <8 x double> %212, %232 %245 = fsub <8 x double> %213, %236 %246 = fsub <8 x double> %214, %242 %247 = fsub <8 x double> %211, %215 %248 = fsub <8 x double> %212, %232 %249 = fadd <8 x double> %213, %236 %250 = fadd <8 x double> %214, %242 %251 = bitcast <8 x double> %224 to <8 x i64> %252 = xor <8 x i64> %251, %253 = bitcast <8 x i64> %252 to <8 x double> %254 = shufflevector <8 x double> %253, <8 x double> poison, <8 x i32> %255 = fadd <8 x double> %224, %254 %256 = fmul <8 x double> %255, %257 = bitcast <8 x double> %225 to <8 x i64> %258 = xor <8 x i64> %257, %259 = bitcast <8 x i64> %258 to <8 x double> %260 = shufflevector <8 x double> %259, <8 x double> poison, <8 x i32> %261 = bitcast <8 x double> %226 to <8 x i64> %262 = xor <8 x i64> %261, %263 = bitcast <8 x i64> %262 to <8 x double> %264 = shufflevector <8 x double> %263, <8 x double> poison, <8 x i32> %265 = fadd <8 x double> %226, %264 %266 = fmul <8 x double> %265, %267 = fadd <8 x double> %219, %223 %268 = fadd <8 x double> %220, %256 %269 = fsub <8 x double> %221, %260 %270 = fsub <8 x double> %222, %266 %271 = fsub <8 x double> %219, %223 %272 = fsub <8 x double> %220, %256 %273 = fadd <8 x double> %221, %260 %274 = fadd <8 x double> %222, %266 %275 = fadd <8 x double> %243, %267 store <8 x double> %275, ptr %buf.0.i, align 8, !alias.scope !2040, !noalias !2049 %276 = fsub <8 x double> %243, %267 store <8 x double> %276, ptr %9, align 8, !alias.scope !2040, !noalias !2049 %277 = fmul <8 x double> %268, %278 = shufflevector <8 x double> %277, <8 x double> poison, <8 x i32> %_4.i96 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %268, <8 x double> %278, i32 noundef 4) #23 %279 = fadd <8 x double> %_4.i96, %244 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2040, !noalias !2049 %280 = fsub <8 x double> %244, %_4.i96 store <8 x double> %280, ptr %64, align 8, !alias.scope !2040, !noalias !2049 %281 = bitcast <8 x double> %269 to <8 x i64> %282 = xor <8 x i64> %281, %283 = bitcast <8 x i64> %282 to <8 x double> %284 = shufflevector <8 x double> %283, <8 x double> poison, <8 x i32> %285 = fadd <8 x double> %269, %284 %286 = fmul <8 x double> %285, %287 = fadd <8 x double> %245, %286 store <8 x double> %287, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !alias.scope !2040, !noalias !2049 %288 = fsub <8 x double> %245, %286 store <8 x double> %288, ptr %63, align 8, !alias.scope !2040, !noalias !2049 %289 = fmul <8 x double> %270, %290 = shufflevector <8 x double> %289, <8 x double> poison, <8 x i32> %_4.i95 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %270, <8 x double> %290, i32 noundef 4) #23 %291 = fadd <8 x double> %_4.i95, %246 store <8 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !alias.scope !2040, !noalias !2049 %292 = fsub <8 x double> %246, %_4.i95 store <8 x double> %292, ptr %65, align 8, !alias.scope !2040, !noalias !2049 %293 = bitcast <8 x double> %271 to <8 x i64> %294 = xor <8 x i64> %293, %295 = bitcast <8 x i64> %294 to <8 x double> %296 = shufflevector <8 x double> %295, <8 x double> poison, <8 x i32> %297 = fsub <8 x double> %247, %296 store <8 x double> %297, ptr %10, align 8, !alias.scope !2040, !noalias !2049 %298 = fadd <8 x double> %247, %296 store <8 x double> %298, ptr %11, align 8, !alias.scope !2040, !noalias !2049 %299 = fmul <8 x double> %272, %300 = shufflevector <8 x double> %299, <8 x double> poison, <8 x i32> %_4.i94 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %272, <8 x double> %300, i32 noundef 4) #23 %301 = fsub <8 x double> %248, %_4.i94 store <8 x double> %301, ptr %61, align 8, !alias.scope !2040, !noalias !2049 %302 = fadd <8 x double> %248, %_4.i94 store <8 x double> %302, ptr %67, align 8, !alias.scope !2040, !noalias !2049 %303 = bitcast <8 x double> %273 to <8 x i64> %304 = xor <8 x i64> %303, %305 = bitcast <8 x i64> %304 to <8 x double> %306 = shufflevector <8 x double> %305, <8 x double> poison, <8 x i32> %307 = fadd <8 x double> %273, %306 %308 = fmul <8 x double> %307, %309 = fsub <8 x double> %249, %308 store <8 x double> %309, ptr %60, align 8, !alias.scope !2040, !noalias !2049 %310 = fadd <8 x double> %249, %308 store <8 x double> %310, ptr %66, align 8, !alias.scope !2040, !noalias !2049 %311 = fmul <8 x double> %274, %312 = shufflevector <8 x double> %311, <8 x double> poison, <8 x i32> %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %274, <8 x double> %312, i32 noundef 4) #23 %313 = fsub <8 x double> %250, %_4.i store <8 x double> %313, ptr %62, align 8, !alias.scope !2040, !noalias !2049 %314 = fadd <8 x double> %250, %_4.i store <8 x double> %314, ptr %68, align 8, !alias.scope !2040, !noalias !2049 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2033 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17he180c444e7a247aaE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2050) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2050, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2050, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2050, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2050, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2050, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2050, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !2050, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !2050, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2050 store i64 512, ptr %n.i, align 8, !noalias !2050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2050 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2050 %_12.i = icmp eq i64 %buf.1.i, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2050 store ptr null, ptr %_16.i, align 8, !noalias !2050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2050 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2050 %_20.i = icmp eq i64 %scratch.1.i, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2050 store ptr null, ptr %_24.i, align 8, !noalias !2050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2050 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2050 %_28.i = icmp eq i64 %w_init.1.i, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2050 store ptr null, ptr %_32.i, align 8, !noalias !2050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2050 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2050 %_36.i = icmp eq i64 %w.1.i, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h891bcacafe25efbcE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2050 store ptr null, ptr %_40.i, align 8, !noalias !2050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h891bcacafe25efbcE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2050 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 48 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 80 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 112 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 br label %bb17.i.i.i.i bb17.i.i.i.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h891bcacafe25efbcE.exit", %bb17.i.i.i.i %iter.i.i.i.i.sroa.50.0964 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h891bcacafe25efbcE.exit" ], [ %15, %bb17.i.i.i.i ] %15 = add nuw nsw i64 %iter.i.i.i.i.sroa.50.0964, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.i.i.i.i.sroa.50.0964 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.i.i.i.i.sroa.50.0964 %_63.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 %_64.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 %_65.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 %_66.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 %_67.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 %_68.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !2053 %_69.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !2053 %_70.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !2053 %16 = fadd <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %17 = fsub <8 x double> %_63.i.i.i.i.sroa.0.0.copyload, %_67.i.i.i.i.sroa.0.0.copyload %18 = fadd <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %19 = fsub <8 x double> %_65.i.i.i.i.sroa.0.0.copyload, %_69.i.i.i.i.sroa.0.0.copyload %20 = bitcast <8 x double> %19 to <8 x i64> %21 = xor <8 x i64> %20, %22 = bitcast <8 x i64> %21 to <8 x double> %23 = shufflevector <8 x double> %22, <8 x double> poison, <8 x i32> %24 = fadd <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %25 = fsub <8 x double> %_64.i.i.i.i.sroa.0.0.copyload, %_68.i.i.i.i.sroa.0.0.copyload %26 = fadd <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %27 = fsub <8 x double> %_66.i.i.i.i.sroa.0.0.copyload, %_70.i.i.i.i.sroa.0.0.copyload %28 = bitcast <8 x double> %27 to <8 x i64> %29 = xor <8 x i64> %28, %30 = bitcast <8 x i64> %29 to <8 x double> %31 = shufflevector <8 x double> %30, <8 x double> poison, <8 x i32> %32 = fadd <8 x double> %16, %18 %33 = fsub <8 x double> %17, %23 %34 = fsub <8 x double> %16, %18 %35 = fadd <8 x double> %17, %23 %36 = fadd <8 x double> %24, %26 %37 = fsub <8 x double> %25, %31 %38 = bitcast <8 x double> %37 to <8 x i64> %39 = xor <8 x i64> %38, %40 = bitcast <8 x i64> %39 to <8 x double> %41 = shufflevector <8 x double> %40, <8 x double> poison, <8 x i32> %42 = fadd <8 x double> %37, %41 %43 = fmul <8 x double> %42, %44 = fsub <8 x double> %24, %26 %45 = bitcast <8 x double> %44 to <8 x i64> %46 = xor <8 x i64> %45, %47 = bitcast <8 x i64> %46 to <8 x double> %48 = shufflevector <8 x double> %47, <8 x double> poison, <8 x i32> %49 = fadd <8 x double> %25, %31 %50 = bitcast <8 x double> %49 to <8 x i64> %51 = xor <8 x i64> %50, %52 = bitcast <8 x i64> %51 to <8 x double> %53 = shufflevector <8 x double> %52, <8 x double> poison, <8 x i32> %54 = fadd <8 x double> %49, %53 %55 = fmul <8 x double> %54, %56 = fadd <8 x double> %32, %36 %57 = fadd <8 x double> %33, %43 %58 = fsub <8 x double> %34, %48 %59 = fsub <8 x double> %35, %55 %60 = fsub <8 x double> %32, %36 %61 = fsub <8 x double> %33, %43 %62 = fadd <8 x double> %34, %48 %63 = fadd <8 x double> %35, %55 store <8 x double> %56, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %57, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %58, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %61, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %62, ptr %_3.i.i.i.i.i.i, align 8, !noalias !2053 store <8 x double> %63, ptr %_3.i.i.i.i, align 8, !noalias !2053 %exitcond.not = icmp eq i64 %15, 16 br i1 %exitcond.not, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit", label %bb17.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit": ; preds = %bb17.i.i.i.i %64 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 tail call void @llvm.experimental.noalias.scope.decl(metadata !2060) tail call void @llvm.experimental.noalias.scope.decl(metadata !2063) tail call void @llvm.experimental.noalias.scope.decl(metadata !2065) %65 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %66 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %67 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 48 %68 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 80 %69 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 112 br label %bb30.i bb30.i: ; preds = %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit", %bb30.i %iter.sroa.104.01903.i = phi i64 [ %236, %bb30.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw i64 %iter.sroa.104.01903.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %69, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %64, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %68, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %67, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %65, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %66, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl i64 %iter.sroa.104.01903.i, 3 %70 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %70, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %71 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %71, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %72 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %72, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %73 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %73, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %74 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %74, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %75 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %75, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %76 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %76, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %77 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %77, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %78 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %78, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %79 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %79, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %80 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %80, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %81 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %81, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %82 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %82, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %83 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %83, align 8, !alias.scope !2065, !noalias !2067, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %84 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %85 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %86 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %87 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %88 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %89 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %90 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %91 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %92 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %93 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %94 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %95 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %96 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %97 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %98 = shufflevector <2 x double> %84, <2 x double> poison, <8 x i32> zeroinitializer %99 = shufflevector <2 x double> %84, <2 x double> poison, <8 x i32> %100 = shufflevector <2 x double> %85, <2 x double> poison, <8 x i32> zeroinitializer %101 = shufflevector <2 x double> %85, <2 x double> poison, <8 x i32> %102 = shufflevector <2 x double> %86, <2 x double> poison, <8 x i32> zeroinitializer %103 = shufflevector <2 x double> %86, <2 x double> poison, <8 x i32> %104 = shufflevector <2 x double> %87, <2 x double> poison, <8 x i32> zeroinitializer %105 = shufflevector <2 x double> %87, <2 x double> poison, <8 x i32> %106 = shufflevector <2 x double> %88, <2 x double> poison, <8 x i32> zeroinitializer %107 = shufflevector <2 x double> %88, <2 x double> poison, <8 x i32> %108 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> zeroinitializer %109 = shufflevector <2 x double> %89, <2 x double> poison, <8 x i32> %110 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> zeroinitializer %111 = shufflevector <2 x double> %90, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !2063, !noalias !2068 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %93, align 8, !alias.scope !2063, !noalias !2068 %112 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %113 = fmul <8 x double> %99, %112 %_4.i166 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %113, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %92, align 8, !alias.scope !2063, !noalias !2068 %114 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %115 = fmul <8 x double> %101, %114 %_4.i165 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %100, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %115, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %94, align 8, !alias.scope !2063, !noalias !2068 %116 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %117 = fmul <8 x double> %103, %116 %_4.i164 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %117, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %91, align 8, !alias.scope !2063, !noalias !2068 %118 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %119 = fmul <8 x double> %105, %118 %_4.i163 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %119, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %96, align 8, !alias.scope !2063, !noalias !2068 %120 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %121 = fmul <8 x double> %107, %120 %_4.i162 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %121, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %95, align 8, !alias.scope !2063, !noalias !2068 %122 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %109, %122 %_4.i161 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %123, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %97, align 8, !alias.scope !2063, !noalias !2068 %124 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %125 = fmul <8 x double> %111, %124 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %110, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %125, i32 noundef 4) #23 %126 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i163 %127 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i163 %128 = fadd <8 x double> %_4.i165, %_4.i161 %129 = fsub <8 x double> %_4.i165, %_4.i161 %130 = bitcast <8 x double> %129 to <8 x i64> %131 = xor <8 x i64> %130, %132 = bitcast <8 x i64> %131 to <8 x double> %133 = shufflevector <8 x double> %132, <8 x double> poison, <8 x i32> %134 = fadd <8 x double> %_4.i166, %_4.i162 %135 = fsub <8 x double> %_4.i166, %_4.i162 %136 = fadd <8 x double> %_4.i164, %_4.i %137 = fsub <8 x double> %_4.i164, %_4.i %138 = bitcast <8 x double> %137 to <8 x i64> %139 = xor <8 x i64> %138, %140 = bitcast <8 x i64> %139 to <8 x double> %141 = shufflevector <8 x double> %140, <8 x double> poison, <8 x i32> %142 = fadd <8 x double> %126, %128 %143 = fadd <8 x double> %134, %136 %144 = fadd <8 x double> %142, %143 store <8 x double> %144, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %145 = fsub <8 x double> %142, %143 store <8 x double> %145, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %146 = fsub <8 x double> %127, %133 %147 = fsub <8 x double> %135, %141 %148 = bitcast <8 x double> %147 to <8 x i64> %149 = xor <8 x i64> %148, %150 = bitcast <8 x i64> %149 to <8 x double> %151 = shufflevector <8 x double> %150, <8 x double> poison, <8 x i32> %152 = fadd <8 x double> %147, %151 %153 = fmul <8 x double> %152, %154 = fadd <8 x double> %146, %153 store <8 x double> %154, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %155 = fsub <8 x double> %146, %153 store <8 x double> %155, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %156 = fsub <8 x double> %126, %128 %157 = fsub <8 x double> %134, %136 %158 = bitcast <8 x double> %157 to <8 x i64> %159 = xor <8 x i64> %158, %160 = bitcast <8 x i64> %159 to <8 x double> %161 = shufflevector <8 x double> %160, <8 x double> poison, <8 x i32> %162 = fsub <8 x double> %156, %161 store <8 x double> %162, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %163 = fadd <8 x double> %156, %161 store <8 x double> %163, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %164 = fadd <8 x double> %127, %133 %165 = fadd <8 x double> %135, %141 %166 = bitcast <8 x double> %165 to <8 x i64> %167 = xor <8 x i64> %166, %168 = bitcast <8 x i64> %167 to <8 x double> %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = fadd <8 x double> %165, %169 %171 = fmul <8 x double> %170, %172 = fsub <8 x double> %164, %171 store <8 x double> %172, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %173 = fadd <8 x double> %164, %171 store <8 x double> %173, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2060, !noalias !2069 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %y0.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %_131.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %174 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %99, %174 %_4.i166.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %98, <8 x double> %_131.sroa.0.0.copyload.i.1, <8 x double> %175, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %176 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %101, %176 %_4.i165.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %100, <8 x double> %_133.sroa.0.0.copyload.i.1, <8 x double> %177, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %178 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %179 = fmul <8 x double> %103, %178 %_4.i164.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %_135.sroa.0.0.copyload.i.1, <8 x double> %179, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %180 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %181 = fmul <8 x double> %105, %180 %_4.i163.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %_137.sroa.0.0.copyload.i.1, <8 x double> %181, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %182 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %107, %182 %_4.i162.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %106, <8 x double> %_139.sroa.0.0.copyload.i.1, <8 x double> %183, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %184 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %185 = fmul <8 x double> %109, %184 %_4.i161.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %108, <8 x double> %_141.sroa.0.0.copyload.i.1, <8 x double> %185, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !2063, !noalias !2068 %186 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %111, %186 %_4.i.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %110, <8 x double> %_143.sroa.0.0.copyload.i.1, <8 x double> %187, i32 noundef 4) #23 %188 = fadd <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i163.1 %189 = fsub <8 x double> %y0.sroa.0.0.copyload.i.1, %_4.i163.1 %190 = fadd <8 x double> %_4.i165.1, %_4.i161.1 %191 = fsub <8 x double> %_4.i165.1, %_4.i161.1 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = bitcast <8 x i64> %193 to <8 x double> %195 = shufflevector <8 x double> %194, <8 x double> poison, <8 x i32> %196 = fadd <8 x double> %_4.i166.1, %_4.i162.1 %197 = fsub <8 x double> %_4.i166.1, %_4.i162.1 %198 = fadd <8 x double> %_4.i164.1, %_4.i.1 %199 = fsub <8 x double> %_4.i164.1, %_4.i.1 %200 = bitcast <8 x double> %199 to <8 x i64> %201 = xor <8 x i64> %200, %202 = bitcast <8 x i64> %201 to <8 x double> %203 = shufflevector <8 x double> %202, <8 x double> poison, <8 x i32> %204 = fadd <8 x double> %188, %190 %205 = fadd <8 x double> %196, %198 %206 = fadd <8 x double> %204, %205 store <8 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %207 = fsub <8 x double> %204, %205 store <8 x double> %207, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %208 = fsub <8 x double> %189, %195 %209 = fsub <8 x double> %197, %203 %210 = bitcast <8 x double> %209 to <8 x i64> %211 = xor <8 x i64> %210, %212 = bitcast <8 x i64> %211 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fadd <8 x double> %209, %213 %215 = fmul <8 x double> %214, %216 = fadd <8 x double> %208, %215 store <8 x double> %216, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %217 = fsub <8 x double> %208, %215 store <8 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %218 = fsub <8 x double> %188, %190 %219 = fsub <8 x double> %196, %198 %220 = bitcast <8 x double> %219 to <8 x i64> %221 = xor <8 x i64> %220, %222 = bitcast <8 x i64> %221 to <8 x double> %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = fsub <8 x double> %218, %223 store <8 x double> %224, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %225 = fadd <8 x double> %218, %223 store <8 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %226 = fadd <8 x double> %189, %195 %227 = fadd <8 x double> %197, %203 %228 = bitcast <8 x double> %227 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x i64> %229 to <8 x double> %231 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %232 = fadd <8 x double> %227, %231 %233 = fmul <8 x double> %232, %234 = fsub <8 x double> %226, %233 store <8 x double> %234, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %235 = fadd <8 x double> %226, %233 store <8 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2060, !noalias !2069 %236 = add nuw nsw i64 %iter.sroa.104.01903.i, 1 %exitcond965.not = icmp eq i64 %236, 8 br i1 %exitcond965.not, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, label %bb30.i _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb30.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2070) tail call void @llvm.experimental.noalias.scope.decl(metadata !2073) tail call void @llvm.experimental.noalias.scope.decl(metadata !2075) %237 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %238 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %239 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %240 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 48 %241 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %242 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 80 %243 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 112 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %244, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %244 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i151 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i152 = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i153 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154 = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i155 = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i156 = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %239, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %238, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %240, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %237, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %242, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %241, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i157 = getelementptr inbounds %"fft_simd::c64x4", ptr %243, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !2075, !noalias !2077 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2075, !noalias !2077 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !2075, !noalias !2077 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !2075, !noalias !2077 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !2075, !noalias !2077 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !2075, !noalias !2077 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i157, align 8, !alias.scope !2075, !noalias !2077 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !2073, !noalias !2078 %245 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %245, align 8, !alias.scope !2073, !noalias !2078 %246 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %246, align 8, !alias.scope !2073, !noalias !2078 %247 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %247, align 8, !alias.scope !2073, !noalias !2078 %248 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %248, align 8, !alias.scope !2073, !noalias !2078 %249 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %249, align 8, !alias.scope !2073, !noalias !2078 %250 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %250, align 8, !alias.scope !2073, !noalias !2078 %251 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %251, align 8, !alias.scope !2073, !noalias !2078 %252 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %253 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %254 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %255 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %256 = shufflevector <8 x double> %252, <8 x double> %254, <8 x i32> %257 = shufflevector <8 x double> %252, <8 x double> %254, <8 x i32> %258 = shufflevector <8 x double> %253, <8 x double> %255, <8 x i32> %259 = shufflevector <8 x double> %253, <8 x double> %255, <8 x i32> %260 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %261 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %262 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %263 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %264 = shufflevector <8 x double> %260, <8 x double> %262, <8 x i32> %265 = shufflevector <8 x double> %260, <8 x double> %262, <8 x i32> %266 = shufflevector <8 x double> %261, <8 x double> %263, <8 x i32> %267 = shufflevector <8 x double> %261, <8 x double> %263, <8 x i32> %268 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %269 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %270 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %271 = fmul <8 x double> %270, %268 %_4.i173 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %269, <8 x double> %258, <8 x double> %271, i32 noundef 4) #23 %272 = shufflevector <8 x double> %257, <8 x double> poison, <8 x i32> %273 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %274 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %275 = fmul <8 x double> %274, %272 %_4.i172 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %273, <8 x double> %257, <8 x double> %275, i32 noundef 4) #23 %276 = shufflevector <8 x double> %259, <8 x double> poison, <8 x i32> %277 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %278 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %279 = fmul <8 x double> %278, %276 %_4.i171 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %277, <8 x double> %259, <8 x double> %279, i32 noundef 4) #23 %280 = shufflevector <8 x double> %264, <8 x double> poison, <8 x i32> %281 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %282 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %283 = fmul <8 x double> %282, %280 %_4.i170 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %281, <8 x double> %264, <8 x double> %283, i32 noundef 4) #23 %284 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %285 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %286 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %287 = fmul <8 x double> %286, %284 %_4.i169 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %285, <8 x double> %266, <8 x double> %287, i32 noundef 4) #23 %288 = shufflevector <8 x double> %265, <8 x double> poison, <8 x i32> %289 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %290 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %291 = fmul <8 x double> %290, %288 %_4.i168 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %289, <8 x double> %265, <8 x double> %291, i32 noundef 4) #23 %292 = shufflevector <8 x double> %267, <8 x double> poison, <8 x i32> %293 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %294 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %295 = fmul <8 x double> %294, %292 %_4.i167 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %293, <8 x double> %267, <8 x double> %295, i32 noundef 4) #23 %296 = fadd <8 x double> %256, %_4.i170 %297 = fsub <8 x double> %256, %_4.i170 %298 = fadd <8 x double> %_4.i172, %_4.i168 %299 = fsub <8 x double> %_4.i172, %_4.i168 %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = bitcast <8 x i64> %301 to <8 x double> %303 = shufflevector <8 x double> %302, <8 x double> poison, <8 x i32> %304 = fadd <8 x double> %_4.i173, %_4.i169 %305 = fsub <8 x double> %_4.i173, %_4.i169 %306 = fadd <8 x double> %_4.i171, %_4.i167 %307 = fsub <8 x double> %_4.i171, %_4.i167 %308 = bitcast <8 x double> %307 to <8 x i64> %309 = xor <8 x i64> %308, %310 = bitcast <8 x i64> %309 to <8 x double> %311 = shufflevector <8 x double> %310, <8 x double> poison, <8 x i32> %312 = fadd <8 x double> %296, %298 %313 = fadd <8 x double> %304, %306 %314 = fadd <8 x double> %312, %313 store <8 x double> %314, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2070, !noalias !2079 %315 = fsub <8 x double> %312, %313 store <8 x double> %315, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i153, align 8, !alias.scope !2070, !noalias !2079 %316 = fsub <8 x double> %297, %303 %317 = fsub <8 x double> %305, %311 %318 = bitcast <8 x double> %317 to <8 x i64> %319 = xor <8 x i64> %318, %320 = bitcast <8 x i64> %319 to <8 x double> %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %322 = fadd <8 x double> %317, %321 %323 = fmul <8 x double> %322, %324 = fadd <8 x double> %316, %323 store <8 x double> %324, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2070, !noalias !2079 %325 = fsub <8 x double> %316, %323 store <8 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154, align 8, !alias.scope !2070, !noalias !2079 %326 = fsub <8 x double> %296, %298 %327 = fsub <8 x double> %304, %306 %328 = bitcast <8 x double> %327 to <8 x i64> %329 = xor <8 x i64> %328, %330 = bitcast <8 x i64> %329 to <8 x double> %331 = shufflevector <8 x double> %330, <8 x double> poison, <8 x i32> %332 = fsub <8 x double> %326, %331 store <8 x double> %332, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i151, align 8, !alias.scope !2070, !noalias !2079 %333 = fadd <8 x double> %326, %331 store <8 x double> %333, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i155, align 8, !alias.scope !2070, !noalias !2079 %334 = fadd <8 x double> %297, %303 %335 = fadd <8 x double> %305, %311 %336 = bitcast <8 x double> %335 to <8 x i64> %337 = xor <8 x i64> %336, %338 = bitcast <8 x i64> %337 to <8 x double> %339 = shufflevector <8 x double> %338, <8 x double> poison, <8 x i32> %340 = fadd <8 x double> %335, %339 %341 = fmul <8 x double> %340, %342 = fsub <8 x double> %334, %341 store <8 x double> %342, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i152, align 8, !alias.scope !2070, !noalias !2079 %343 = fadd <8 x double> %334, %341 store <8 x double> %343, ptr %_3.i.i.i.i.i.i.i.i.i.i.i156, align 8, !alias.scope !2070, !noalias !2079 %exitcond.not.i160 = icmp eq i64 %244, 16 br i1 %exitcond.not.i160, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2050 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17he635ea48492baaabE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2080) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2080, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2080, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2080, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2080, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2080, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2080, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !2080, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !2080, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2080 store i64 64, ptr %n.i, align 8, !noalias !2080 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2080 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2080 %_12.i = icmp eq i64 %buf.1.i, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2080 store ptr null, ptr %_16.i, align 8, !noalias !2080 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2080 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2080 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2080 %_20.i = icmp eq i64 %scratch.1.i, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2080 store ptr null, ptr %_24.i, align 8, !noalias !2080 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2080 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2080 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2080 %_28.i = icmp eq i64 %w_init.1.i, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2080 store ptr null, ptr %_32.i, align 8, !noalias !2080 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2080 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2080 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2080 %_36.i = icmp eq i64 %w.1.i, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfdb9c8bbb9739c47E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2080 store ptr null, ptr %_40.i, align 8, !noalias !2080 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfdb9c8bbb9739c47E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2080 tail call void @llvm.experimental.noalias.scope.decl(metadata !2083) tail call void @llvm.experimental.noalias.scope.decl(metadata !2086) tail call void @llvm.experimental.noalias.scope.decl(metadata !2088) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 br label %bb15.i13 bb15.i13: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfdb9c8bbb9739c47E.exit", %bb15.i13 %iter.sroa.50.0449.i = phi i64 [ %13, %bb15.i13 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfdb9c8bbb9739c47E.exit" ] %13 = add nuw nsw i64 %iter.sroa.50.0449.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.50.0449.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.50.0449.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.50.0449.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2088, !noalias !2090 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !2088, !noalias !2090 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i, align 8, !alias.scope !2088, !noalias !2090 %a.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2083, !noalias !2091 %b.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2083, !noalias !2091 %c.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2083, !noalias !2091 %d.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2083, !noalias !2091 %14 = fadd <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %15 = fsub <8 x double> %a.sroa.0.0.copyload.i, %c.sroa.0.0.copyload.i %16 = fadd <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %17 = fsub <8 x double> %b.sroa.0.0.copyload.i, %d.sroa.0.0.copyload.i %18 = bitcast <8 x double> %17 to <8 x i64> %19 = xor <8 x i64> %18, %20 = bitcast <8 x i64> %19 to <8 x double> %21 = shufflevector <8 x double> %20, <8 x double> poison, <8 x i32> %22 = fadd <8 x double> %14, %16 %23 = fsub <8 x double> %15, %21 %24 = shufflevector <8 x double> %23, <8 x double> poison, <8 x i32> %25 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %26 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %27 = fmul <8 x double> %26, %24 %_4.i56 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %25, <8 x double> %23, <8 x double> %27, i32 noundef 4) #23 %28 = fsub <8 x double> %14, %16 %29 = shufflevector <8 x double> %28, <8 x double> poison, <8 x i32> %30 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %31 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %32 = fmul <8 x double> %31, %29 %_4.i55 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %30, <8 x double> %28, <8 x double> %32, i32 noundef 4) #23 %33 = fadd <8 x double> %15, %21 %34 = shufflevector <8 x double> %33, <8 x double> poison, <8 x i32> %35 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %36 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %37 = fmul <8 x double> %36, %34 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %35, <8 x double> %33, <8 x double> %37, i32 noundef 4) #23 %38 = shufflevector <8 x double> %22, <8 x double> %_4.i56, <8 x i32> %39 = shufflevector <8 x double> %22, <8 x double> %_4.i56, <8 x i32> %40 = shufflevector <8 x double> %_4.i55, <8 x double> %_4.i, <8 x i32> %41 = shufflevector <8 x double> %_4.i55, <8 x double> %_4.i, <8 x i32> %42 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %43 = shufflevector <8 x double> %38, <8 x double> %40, <8 x i32> %44 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> %45 = shufflevector <8 x double> %39, <8 x double> %41, <8 x i32> store <8 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2086, !noalias !2092 %46 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 1 store <8 x double> %44, ptr %46, align 8, !alias.scope !2086, !noalias !2092 %47 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 2 store <8 x double> %43, ptr %47, align 8, !alias.scope !2086, !noalias !2092 %48 = getelementptr inbounds [4 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.50.0449.i, i64 3 store <8 x double> %45, ptr %48, align 8, !alias.scope !2086, !noalias !2092 %exitcond.not.i = icmp eq i64 %13, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit, label %bb15.i13 _ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE.exit: ; preds = %bb15.i13 tail call void @llvm.experimental.noalias.scope.decl(metadata !2093) tail call void @llvm.experimental.noalias.scope.decl(metadata !2096) tail call void @llvm.experimental.noalias.scope.decl(metadata !2098) %49 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %50 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %51 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1 %w1.0617.us.i = load <2 x float>, ptr %52, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 1, i32 1 %w1.1618.us.i = load <2 x float>, ptr %53, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2 %w2.0619.us.i = load <2 x float>, ptr %54, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 2, i32 1 %w2.1620.us.i = load <2 x float>, ptr %55, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3 %w3.0621.us.i = load <2 x float>, ptr %56, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 0, i64 3, i32 1 %w3.1622.us.i = load <2 x float>, ptr %57, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w1.0617.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w1.1618.us.i, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i, <4 x i32> %58 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w2.0619.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w2.1620.us.i, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i, <4 x i32> %59 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i = shufflevector <2 x float> %w3.0621.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i = shufflevector <2 x float> %w3.1622.us.i, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i, <4 x i32> %60 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i to <2 x double> %61 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %62 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %63 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %64 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> zeroinitializer %65 = shufflevector <2 x double> %58, <2 x double> poison, <8 x i32> %66 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> zeroinitializer %67 = shufflevector <2 x double> %59, <2 x double> poison, <8 x i32> %68 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> zeroinitializer %69 = shufflevector <2 x double> %60, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i = load <8 x double>, ptr %scratch.0.i, align 8, !alias.scope !2093, !noalias !2101 %b.sroa.0.0.copyload.us.i = load <8 x double>, ptr %50, align 8, !alias.scope !2093, !noalias !2101 %c.sroa.0.0.copyload.us.i = load <8 x double>, ptr %51, align 8, !alias.scope !2093, !noalias !2101 %d.sroa.0.0.copyload.us.i = load <8 x double>, ptr %49, align 8, !alias.scope !2093, !noalias !2101 %70 = fadd <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %71 = fsub <8 x double> %a.sroa.0.0.copyload.us.i, %c.sroa.0.0.copyload.us.i %72 = fadd <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %73 = fsub <8 x double> %b.sroa.0.0.copyload.us.i, %d.sroa.0.0.copyload.us.i %74 = bitcast <8 x double> %73 to <8 x i64> %75 = xor <8 x i64> %74, %76 = bitcast <8 x i64> %75 to <8 x double> %77 = shufflevector <8 x double> %76, <8 x double> poison, <8 x i32> %78 = fadd <8 x double> %70, %72 store <8 x double> %78, ptr %buf.0.i, align 8, !alias.scope !2096, !noalias !2102 %79 = fsub <8 x double> %71, %77 %80 = shufflevector <8 x double> %79, <8 x double> poison, <8 x i32> %81 = fmul <8 x double> %65, %80 %_4.i59 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %64, <8 x double> %79, <8 x double> %81, i32 noundef 4) #23 store <8 x double> %_4.i59, ptr %62, align 8, !alias.scope !2096, !noalias !2102 %82 = fsub <8 x double> %70, %72 %83 = shufflevector <8 x double> %82, <8 x double> poison, <8 x i32> %84 = fmul <8 x double> %67, %83 %_4.i58 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %66, <8 x double> %82, <8 x double> %84, i32 noundef 4) #23 store <8 x double> %_4.i58, ptr %61, align 8, !alias.scope !2096, !noalias !2102 %85 = fadd <8 x double> %71, %77 %86 = shufflevector <8 x double> %85, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %69, %86 %_4.i57 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %68, <8 x double> %85, <8 x double> %87, i32 noundef 4) #23 store <8 x double> %_4.i57, ptr %63, align 8, !alias.scope !2096, !noalias !2102 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 5 %data.i.i.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 9 %data.i.i.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 13 %data.i.i.i.i.i.i.us.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %88 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1 %w1.0617.us.i.1 = load <2 x float>, ptr %88, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %89 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 1, i32 1 %w1.1618.us.i.1 = load <2 x float>, ptr %89, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %90 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2 %w2.0619.us.i.1 = load <2 x float>, ptr %90, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %91 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 2, i32 1 %w2.1620.us.i.1 = load <2 x float>, ptr %91, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3 %w3.0621.us.i.1 = load <2 x float>, ptr %92, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 4, i64 3, i32 1 %w3.1622.us.i.1 = load <2 x float>, ptr %93, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w1.0617.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w1.1618.us.i.1, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.1, <4 x i32> %94 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w2.0619.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w2.1620.us.i.1, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.1, <4 x i32> %95 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.1 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.1 = shufflevector <2 x float> %w3.0621.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.1 = shufflevector <2 x float> %w3.1622.us.i.1, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.1 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.1, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.1, <4 x i32> %96 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.1 to <2 x double> %97 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %98 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %99 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %100 = shufflevector <2 x double> %94, <2 x double> poison, <8 x i32> zeroinitializer %101 = shufflevector <2 x double> %94, <2 x double> poison, <8 x i32> %102 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> zeroinitializer %103 = shufflevector <2 x double> %95, <2 x double> poison, <8 x i32> %104 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> zeroinitializer %105 = shufflevector <2 x double> %96, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !2093, !noalias !2101 %b.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !2093, !noalias !2101 %c.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !2093, !noalias !2101 %d.sroa.0.0.copyload.us.i.1 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !2093, !noalias !2101 %106 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %107 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.1, %c.sroa.0.0.copyload.us.i.1 %108 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %109 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.1, %d.sroa.0.0.copyload.us.i.1 %110 = bitcast <8 x double> %109 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fadd <8 x double> %106, %108 store <8 x double> %114, ptr %data.i.i.i.i.i.i.us.i.1, align 8, !alias.scope !2096, !noalias !2102 %115 = fsub <8 x double> %107, %113 %116 = shufflevector <8 x double> %115, <8 x double> poison, <8 x i32> %117 = fmul <8 x double> %101, %116 %_4.i59.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %100, <8 x double> %115, <8 x double> %117, i32 noundef 4) #23 store <8 x double> %_4.i59.1, ptr %98, align 8, !alias.scope !2096, !noalias !2102 %118 = fsub <8 x double> %106, %108 %119 = shufflevector <8 x double> %118, <8 x double> poison, <8 x i32> %120 = fmul <8 x double> %103, %119 %_4.i58.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %102, <8 x double> %118, <8 x double> %120, i32 noundef 4) #23 store <8 x double> %_4.i58.1, ptr %97, align 8, !alias.scope !2096, !noalias !2102 %121 = fadd <8 x double> %107, %113 %122 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %123 = fmul <8 x double> %105, %122 %_4.i57.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %104, <8 x double> %121, <8 x double> %123, i32 noundef 4) #23 store <8 x double> %_4.i57.1, ptr %99, align 8, !alias.scope !2096, !noalias !2102 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 2 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 6 %data.i.i.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 10 %data.i.i.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 14 %data.i.i.i.i.i.i.us.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %124 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1 %w1.0617.us.i.2 = load <2 x float>, ptr %124, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %125 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 1, i32 1 %w1.1618.us.i.2 = load <2 x float>, ptr %125, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %126 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2 %w2.0619.us.i.2 = load <2 x float>, ptr %126, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %127 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 2, i32 1 %w2.1620.us.i.2 = load <2 x float>, ptr %127, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %128 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3 %w3.0621.us.i.2 = load <2 x float>, ptr %128, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %129 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 8, i64 3, i32 1 %w3.1622.us.i.2 = load <2 x float>, ptr %129, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w1.0617.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w1.1618.us.i.2, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.2, <4 x i32> %130 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w2.0619.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w2.1620.us.i.2, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.2, <4 x i32> %131 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.2 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.2 = shufflevector <2 x float> %w3.0621.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.2 = shufflevector <2 x float> %w3.1622.us.i.2, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.2 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.2, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.2, <4 x i32> %132 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.2 to <2 x double> %133 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %134 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %135 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %136 = shufflevector <2 x double> %130, <2 x double> poison, <8 x i32> zeroinitializer %137 = shufflevector <2 x double> %130, <2 x double> poison, <8 x i32> %138 = shufflevector <2 x double> %131, <2 x double> poison, <8 x i32> zeroinitializer %139 = shufflevector <2 x double> %131, <2 x double> poison, <8 x i32> %140 = shufflevector <2 x double> %132, <2 x double> poison, <8 x i32> zeroinitializer %141 = shufflevector <2 x double> %132, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !2093, !noalias !2101 %b.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !2093, !noalias !2101 %c.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !2093, !noalias !2101 %d.sroa.0.0.copyload.us.i.2 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !2093, !noalias !2101 %142 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.2, %c.sroa.0.0.copyload.us.i.2 %143 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.2, %c.sroa.0.0.copyload.us.i.2 %144 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.2, %d.sroa.0.0.copyload.us.i.2 %145 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.2, %d.sroa.0.0.copyload.us.i.2 %146 = bitcast <8 x double> %145 to <8 x i64> %147 = xor <8 x i64> %146, %148 = bitcast <8 x i64> %147 to <8 x double> %149 = shufflevector <8 x double> %148, <8 x double> poison, <8 x i32> %150 = fadd <8 x double> %142, %144 store <8 x double> %150, ptr %data.i.i.i.i.i.i.us.i.2, align 8, !alias.scope !2096, !noalias !2102 %151 = fsub <8 x double> %143, %149 %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fmul <8 x double> %137, %152 %_4.i59.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %136, <8 x double> %151, <8 x double> %153, i32 noundef 4) #23 store <8 x double> %_4.i59.2, ptr %134, align 8, !alias.scope !2096, !noalias !2102 %154 = fsub <8 x double> %142, %144 %155 = shufflevector <8 x double> %154, <8 x double> poison, <8 x i32> %156 = fmul <8 x double> %139, %155 %_4.i58.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %138, <8 x double> %154, <8 x double> %156, i32 noundef 4) #23 store <8 x double> %_4.i58.2, ptr %133, align 8, !alias.scope !2096, !noalias !2102 %157 = fadd <8 x double> %143, %149 %158 = shufflevector <8 x double> %157, <8 x double> poison, <8 x i32> %159 = fmul <8 x double> %141, %158 %_4.i57.2 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %140, <8 x double> %157, <8 x double> %159, i32 noundef 4) #23 store <8 x double> %_4.i57.2, ptr %135, align 8, !alias.scope !2096, !noalias !2102 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 3 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 7 %data.i.i.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 11 %data.i.i.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 15 %data.i.i.i.i.i.i.us.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %160 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1 %w1.0617.us.i.3 = load <2 x float>, ptr %160, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %161 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 1, i32 1 %w1.1618.us.i.3 = load <2 x float>, ptr %161, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %162 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2 %w2.0619.us.i.3 = load <2 x float>, ptr %162, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %163 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 2, i32 1 %w2.1620.us.i.3 = load <2 x float>, ptr %163, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %164 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3 %w3.0621.us.i.3 = load <2 x float>, ptr %164, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %165 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0.i, i64 12, i64 3, i32 1 %w3.1622.us.i.3 = load <2 x float>, ptr %165, align 8, !alias.scope !2098, !noalias !2100, !noundef !3 %value.i37.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w1.0617.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w1.1618.us.i.3, <2 x float> poison, <4 x i32> %value.i37.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i37.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i37.sroa.0.8.vec.expand.us.i.3, <4 x i32> %166 = bitcast <4 x float> %value.i37.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i33.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w2.0619.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w2.1620.us.i.3, <2 x float> poison, <4 x i32> %value.i33.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i33.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i33.sroa.0.8.vec.expand.us.i.3, <4 x i32> %167 = bitcast <4 x float> %value.i33.sroa.0.8.vecblend.us.i.3 to <2 x double> %value.i29.sroa.0.0.vec.expand.us.i.3 = shufflevector <2 x float> %w3.0621.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vec.expand.us.i.3 = shufflevector <2 x float> %w3.1622.us.i.3, <2 x float> poison, <4 x i32> %value.i29.sroa.0.8.vecblend.us.i.3 = shufflevector <4 x float> %value.i29.sroa.0.0.vec.expand.us.i.3, <4 x float> %value.i29.sroa.0.8.vec.expand.us.i.3, <4 x i32> %168 = bitcast <4 x float> %value.i29.sroa.0.8.vecblend.us.i.3 to <2 x double> %169 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %170 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %171 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %172 = shufflevector <2 x double> %166, <2 x double> poison, <8 x i32> zeroinitializer %173 = shufflevector <2 x double> %166, <2 x double> poison, <8 x i32> %174 = shufflevector <2 x double> %167, <2 x double> poison, <8 x i32> zeroinitializer %175 = shufflevector <2 x double> %167, <2 x double> poison, <8 x i32> %176 = shufflevector <2 x double> %168, <2 x double> poison, <8 x i32> zeroinitializer %177 = shufflevector <2 x double> %168, <2 x double> poison, <8 x i32> %a.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !2093, !noalias !2101 %b.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !2093, !noalias !2101 %c.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !2093, !noalias !2101 %d.sroa.0.0.copyload.us.i.3 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !2093, !noalias !2101 %178 = fadd <8 x double> %a.sroa.0.0.copyload.us.i.3, %c.sroa.0.0.copyload.us.i.3 %179 = fsub <8 x double> %a.sroa.0.0.copyload.us.i.3, %c.sroa.0.0.copyload.us.i.3 %180 = fadd <8 x double> %b.sroa.0.0.copyload.us.i.3, %d.sroa.0.0.copyload.us.i.3 %181 = fsub <8 x double> %b.sroa.0.0.copyload.us.i.3, %d.sroa.0.0.copyload.us.i.3 %182 = bitcast <8 x double> %181 to <8 x i64> %183 = xor <8 x i64> %182, %184 = bitcast <8 x i64> %183 to <8 x double> %185 = shufflevector <8 x double> %184, <8 x double> poison, <8 x i32> %186 = fadd <8 x double> %178, %180 store <8 x double> %186, ptr %data.i.i.i.i.i.i.us.i.3, align 8, !alias.scope !2096, !noalias !2102 %187 = fsub <8 x double> %179, %185 %188 = shufflevector <8 x double> %187, <8 x double> poison, <8 x i32> %189 = fmul <8 x double> %173, %188 %_4.i59.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %187, <8 x double> %189, i32 noundef 4) #23 store <8 x double> %_4.i59.3, ptr %170, align 8, !alias.scope !2096, !noalias !2102 %190 = fsub <8 x double> %178, %180 %191 = shufflevector <8 x double> %190, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %175, %191 %_4.i58.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %174, <8 x double> %190, <8 x double> %192, i32 noundef 4) #23 store <8 x double> %_4.i58.3, ptr %169, align 8, !alias.scope !2096, !noalias !2102 %193 = fadd <8 x double> %179, %185 %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = fmul <8 x double> %177, %194 %_4.i57.3 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %176, <8 x double> %193, <8 x double> %195, i32 noundef 4) #23 store <8 x double> %_4.i57.3, ptr %171, align 8, !alias.scope !2096, !noalias !2102 %_43.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !2080 %_44.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %8, align 8, !noalias !2080 %_45.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !2080 %_46.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %9, align 8, !noalias !2080 %196 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %197 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload, %_45.i.i.i.i.sroa.0.0.copyload %198 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %199 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload, %_46.i.i.i.i.sroa.0.0.copyload %200 = bitcast <8 x double> %199 to <8 x i64> %201 = xor <8 x i64> %200, %202 = bitcast <8 x i64> %201 to <8 x double> %203 = shufflevector <8 x double> %202, <8 x double> poison, <8 x i32> %204 = fadd <8 x double> %196, %198 %205 = fsub <8 x double> %197, %203 %206 = fsub <8 x double> %196, %198 %207 = fadd <8 x double> %197, %203 store <8 x double> %204, ptr %buf.0.i, align 8, !noalias !2080 store <8 x double> %205, ptr %8, align 8, !noalias !2080 store <8 x double> %206, ptr %7, align 8, !noalias !2080 store <8 x double> %207, ptr %9, align 8, !noalias !2080 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_43.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !2080 %_44.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !2080 %_45.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !2080 %_46.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !2080 %208 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.i.sroa.0.0.copyload.1 %209 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.1, %_45.i.i.i.i.sroa.0.0.copyload.1 %210 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.i.sroa.0.0.copyload.1 %211 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.1, %_46.i.i.i.i.sroa.0.0.copyload.1 %212 = bitcast <8 x double> %211 to <8 x i64> %213 = xor <8 x i64> %212, %214 = bitcast <8 x i64> %213 to <8 x double> %215 = shufflevector <8 x double> %214, <8 x double> poison, <8 x i32> %216 = fadd <8 x double> %208, %210 %217 = fsub <8 x double> %209, %215 %218 = fsub <8 x double> %208, %210 %219 = fadd <8 x double> %209, %215 store <8 x double> %216, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !2080 store <8 x double> %217, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !2080 store <8 x double> %218, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !2080 store <8 x double> %219, ptr %_3.i.i.i.i.1, align 8, !noalias !2080 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_43.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !2080 %_44.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !2080 %_45.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !2080 %_46.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !2080 %220 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.i.sroa.0.0.copyload.2 %221 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.2, %_45.i.i.i.i.sroa.0.0.copyload.2 %222 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.i.sroa.0.0.copyload.2 %223 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.2, %_46.i.i.i.i.sroa.0.0.copyload.2 %224 = bitcast <8 x double> %223 to <8 x i64> %225 = xor <8 x i64> %224, %226 = bitcast <8 x i64> %225 to <8 x double> %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fadd <8 x double> %220, %222 %229 = fsub <8 x double> %221, %227 %230 = fsub <8 x double> %220, %222 %231 = fadd <8 x double> %221, %227 store <8 x double> %228, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !2080 store <8 x double> %229, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !2080 store <8 x double> %230, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !2080 store <8 x double> %231, ptr %_3.i.i.i.i.2, align 8, !noalias !2080 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_43.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !2080 %_44.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !2080 %_45.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !2080 %_46.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !2080 %232 = fadd <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.i.sroa.0.0.copyload.3 %233 = fsub <8 x double> %_43.i.i.i.i.sroa.0.0.copyload.3, %_45.i.i.i.i.sroa.0.0.copyload.3 %234 = fadd <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.i.sroa.0.0.copyload.3 %235 = fsub <8 x double> %_44.i.i.i.i.sroa.0.0.copyload.3, %_46.i.i.i.i.sroa.0.0.copyload.3 %236 = bitcast <8 x double> %235 to <8 x i64> %237 = xor <8 x i64> %236, %238 = bitcast <8 x i64> %237 to <8 x double> %239 = shufflevector <8 x double> %238, <8 x double> poison, <8 x i32> %240 = fadd <8 x double> %232, %234 %241 = fsub <8 x double> %233, %239 %242 = fsub <8 x double> %232, %234 %243 = fadd <8 x double> %233, %239 store <8 x double> %240, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !2080 store <8 x double> %241, ptr %_3.i2.i.i.i.i.i.i.i.3, align 8, !noalias !2080 store <8 x double> %242, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !2080 store <8 x double> %243, ptr %_3.i.i.i.i.3, align 8, !noalias !2080 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2080 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hef381ddd18071fb6E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2103) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2103, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2103, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2103, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2103, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2103, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2103, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !2103, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !2103, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2103 store i64 128, ptr %n.i, align 8, !noalias !2103 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2103 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2103 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2103 store ptr null, ptr %_16.i, align 8, !noalias !2103 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2103 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2103 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2103 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2103 store ptr null, ptr %_24.i, align 8, !noalias !2103 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2103 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2103 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2103 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2103 store ptr null, ptr %_32.i, align 8, !noalias !2103 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2103 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2103 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2103 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfa604c8ac4ee2b7fE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2103 store ptr null, ptr %_40.i, align 8, !noalias !2103 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfa604c8ac4ee2b7fE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2103 tail call void @llvm.experimental.noalias.scope.decl(metadata !2106) tail call void @llvm.experimental.noalias.scope.decl(metadata !2109) tail call void @llvm.experimental.noalias.scope.decl(metadata !2111) %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 br label %bb23.i bb23.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfa604c8ac4ee2b7fE.exit", %bb23.i %iter.sroa.106.01522.i = phi i64 [ %21, %bb23.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfa604c8ac4ee2b7fE.exit" ] %21 = add nuw nsw i64 %iter.sroa.106.01522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01522.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2106, !noalias !2113 %22 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %23 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x4.sroa.0.0.copyload.i %24 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %25 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %x6.sroa.0.0.copyload.i %26 = bitcast <8 x double> %25 to <8 x i64> %27 = xor <8 x i64> %26, %28 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %29 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x5.sroa.0.0.copyload.i %30 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %31 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %x7.sroa.0.0.copyload.i %32 = bitcast <8 x double> %31 to <8 x i64> %33 = xor <8 x i64> %32, %34 = fadd <8 x double> %22, %24 %35 = bitcast <8 x i64> %27 to <8 x double> %36 = shufflevector <8 x double> %35, <8 x double> poison, <8 x i32> %37 = fsub <8 x double> %23, %36 %38 = fsub <8 x double> %22, %24 %39 = fadd <8 x double> %23, %36 %40 = fadd <8 x double> %28, %30 %41 = bitcast <8 x i64> %33 to <8 x double> %42 = shufflevector <8 x double> %41, <8 x double> poison, <8 x i32> %43 = fsub <8 x double> %29, %42 %44 = bitcast <8 x double> %43 to <8 x i64> %45 = xor <8 x i64> %44, %46 = bitcast <8 x i64> %45 to <8 x double> %47 = shufflevector <8 x double> %46, <8 x double> poison, <8 x i32> %48 = fadd <8 x double> %43, %47 %49 = fmul <8 x double> %48, %50 = fsub <8 x double> %28, %30 %51 = bitcast <8 x double> %50 to <8 x i64> %52 = xor <8 x i64> %51, %53 = fadd <8 x double> %29, %42 %54 = bitcast <8 x double> %53 to <8 x i64> %55 = xor <8 x i64> %54, %56 = bitcast <8 x i64> %55 to <8 x double> %57 = shufflevector <8 x double> %56, <8 x double> poison, <8 x i32> %58 = fadd <8 x double> %53, %57 %59 = fmul <8 x double> %58, %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2111, !noalias !2114 %60 = fadd <8 x double> %34, %40 %61 = fadd <8 x double> %37, %49 %62 = shufflevector <8 x double> %61, <8 x double> poison, <8 x i32> %63 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %64 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %64, %62 %_4.i75 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %63, <8 x double> %61, <8 x double> %65, i32 noundef 4) #23 %66 = bitcast <8 x i64> %52 to <8 x double> %67 = shufflevector <8 x double> %66, <8 x double> poison, <8 x i32> %68 = fsub <8 x double> %38, %67 %69 = shufflevector <8 x double> %68, <8 x double> poison, <8 x i32> %70 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %72 = fmul <8 x double> %71, %69 %_4.i74 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %70, <8 x double> %68, <8 x double> %72, i32 noundef 4) #23 %73 = fsub <8 x double> %39, %59 %74 = shufflevector <8 x double> %73, <8 x double> poison, <8 x i32> %75 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %76 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %76, %74 %_4.i73 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %75, <8 x double> %73, <8 x double> %77, i32 noundef 4) #23 %78 = fsub <8 x double> %34, %40 %79 = shufflevector <8 x double> %78, <8 x double> poison, <8 x i32> %80 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %81 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %82 = fmul <8 x double> %79, %81 %_4.i72 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %80, <8 x double> %78, <8 x double> %82, i32 noundef 4) #23 %83 = fsub <8 x double> %37, %49 %84 = shufflevector <8 x double> %83, <8 x double> poison, <8 x i32> %85 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %86 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %87 = fmul <8 x double> %86, %84 %_4.i71 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %85, <8 x double> %83, <8 x double> %87, i32 noundef 4) #23 %88 = fadd <8 x double> %38, %67 %89 = shufflevector <8 x double> %88, <8 x double> poison, <8 x i32> %90 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %91 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %92 = fmul <8 x double> %91, %89 %_4.i70 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %90, <8 x double> %88, <8 x double> %92, i32 noundef 4) #23 %93 = fadd <8 x double> %39, %59 %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %96 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %97 = fmul <8 x double> %96, %94 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %95, <8 x double> %93, <8 x double> %97, i32 noundef 4) #23 %98 = shufflevector <8 x double> %60, <8 x double> %_4.i75, <8 x i32> %99 = shufflevector <8 x double> %60, <8 x double> %_4.i75, <8 x i32> %100 = shufflevector <8 x double> %_4.i74, <8 x double> %_4.i73, <8 x i32> %101 = shufflevector <8 x double> %_4.i74, <8 x double> %_4.i73, <8 x i32> %102 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %103 = shufflevector <8 x double> %98, <8 x double> %100, <8 x i32> %104 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %105 = shufflevector <8 x double> %99, <8 x double> %101, <8 x i32> %106 = shufflevector <8 x double> %_4.i72, <8 x double> %_4.i71, <8 x i32> %107 = shufflevector <8 x double> %_4.i72, <8 x double> %_4.i71, <8 x i32> %108 = shufflevector <8 x double> %_4.i70, <8 x double> %_4.i, <8 x i32> %109 = shufflevector <8 x double> %_4.i70, <8 x double> %_4.i, <8 x i32> %110 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %111 = shufflevector <8 x double> %106, <8 x double> %108, <8 x i32> %112 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> %113 = shufflevector <8 x double> %107, <8 x double> %109, <8 x i32> store <8 x double> %102, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !2109, !noalias !2115 %114 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 1 store <8 x double> %110, ptr %114, align 8, !alias.scope !2109, !noalias !2115 %115 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 2 store <8 x double> %104, ptr %115, align 8, !alias.scope !2109, !noalias !2115 %116 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 3 store <8 x double> %112, ptr %116, align 8, !alias.scope !2109, !noalias !2115 %117 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 4 store <8 x double> %103, ptr %117, align 8, !alias.scope !2109, !noalias !2115 %118 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 5 store <8 x double> %111, ptr %118, align 8, !alias.scope !2109, !noalias !2115 %119 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 6 store <8 x double> %105, ptr %119, align 8, !alias.scope !2109, !noalias !2115 %120 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01522.i, i64 7 store <8 x double> %113, ptr %120, align 8, !alias.scope !2109, !noalias !2115 %exitcond.not.i = icmp eq i64 %21, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, label %bb23.i _ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit: ; preds = %bb23.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2116) tail call void @llvm.experimental.noalias.scope.decl(metadata !2119) tail call void @llvm.experimental.noalias.scope.decl(metadata !2121) %121 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %122 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %123 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %124 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %125 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 br label %bb30.i bb9.i.i.i.i.preheader: ; preds = %bb30.i %_33.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %buf.0.i, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %7, align 8, !noalias !2103 %128 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload %129 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload, %_34.i.i.i.i.sroa.0.0.copyload store <8 x double> %128, ptr %buf.0.i, align 8, !noalias !2103 store <8 x double> %129, ptr %7, align 8, !noalias !2103 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 1 %_3.i2.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 17 %_33.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i2.i.i.i.1, align 8, !noalias !2103 %130 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 %131 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.1, %_34.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %130, ptr %_3.i.i.i.i.1, align 8, !noalias !2103 store <8 x double> %131, ptr %_3.i2.i.i.i.1, align 8, !noalias !2103 %_3.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %_3.i2.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %_33.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.2 = load <8 x double>, ptr %_3.i2.i.i.i.2, align 8, !noalias !2103 %132 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.i.sroa.0.0.copyload.2 %133 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.2, %_34.i.i.i.i.sroa.0.0.copyload.2 store <8 x double> %132, ptr %_3.i.i.i.i.2, align 8, !noalias !2103 store <8 x double> %133, ptr %_3.i2.i.i.i.2, align 8, !noalias !2103 %_3.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 3 %_3.i2.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 19 %_33.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.3 = load <8 x double>, ptr %_3.i2.i.i.i.3, align 8, !noalias !2103 %134 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.i.sroa.0.0.copyload.3 %135 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.3, %_34.i.i.i.i.sroa.0.0.copyload.3 store <8 x double> %134, ptr %_3.i.i.i.i.3, align 8, !noalias !2103 store <8 x double> %135, ptr %_3.i2.i.i.i.3, align 8, !noalias !2103 %_3.i2.i.i.i.4 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %_33.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %9, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.4 = load <8 x double>, ptr %_3.i2.i.i.i.4, align 8, !noalias !2103 %136 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.i.sroa.0.0.copyload.4 %137 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.4, %_34.i.i.i.i.sroa.0.0.copyload.4 store <8 x double> %136, ptr %9, align 8, !noalias !2103 store <8 x double> %137, ptr %_3.i2.i.i.i.4, align 8, !noalias !2103 %_3.i.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 5 %_3.i2.i.i.i.5 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 21 %_33.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i.i.i.i.5, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.5 = load <8 x double>, ptr %_3.i2.i.i.i.5, align 8, !noalias !2103 %138 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.i.sroa.0.0.copyload.5 %139 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.5, %_34.i.i.i.i.sroa.0.0.copyload.5 store <8 x double> %138, ptr %_3.i.i.i.i.5, align 8, !noalias !2103 store <8 x double> %139, ptr %_3.i2.i.i.i.5, align 8, !noalias !2103 %_3.i.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %_3.i2.i.i.i.6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %_33.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i.i.i.i.6, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.6 = load <8 x double>, ptr %_3.i2.i.i.i.6, align 8, !noalias !2103 %140 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.i.sroa.0.0.copyload.6 %141 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.6, %_34.i.i.i.i.sroa.0.0.copyload.6 store <8 x double> %140, ptr %_3.i.i.i.i.6, align 8, !noalias !2103 store <8 x double> %141, ptr %_3.i2.i.i.i.6, align 8, !noalias !2103 %_3.i.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 7 %_3.i2.i.i.i.7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 23 %_33.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i.i.i.i.7, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.7 = load <8 x double>, ptr %_3.i2.i.i.i.7, align 8, !noalias !2103 %142 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.i.sroa.0.0.copyload.7 %143 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.7, %_34.i.i.i.i.sroa.0.0.copyload.7 store <8 x double> %142, ptr %_3.i.i.i.i.7, align 8, !noalias !2103 store <8 x double> %143, ptr %_3.i2.i.i.i.7, align 8, !noalias !2103 %_3.i2.i.i.i.8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %_33.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %8, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.8 = load <8 x double>, ptr %_3.i2.i.i.i.8, align 8, !noalias !2103 %144 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.i.sroa.0.0.copyload.8 %145 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.8, %_34.i.i.i.i.sroa.0.0.copyload.8 store <8 x double> %144, ptr %8, align 8, !noalias !2103 store <8 x double> %145, ptr %_3.i2.i.i.i.8, align 8, !noalias !2103 %_3.i.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 9 %_3.i2.i.i.i.9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 25 %_33.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i.i.i.i.9, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.9 = load <8 x double>, ptr %_3.i2.i.i.i.9, align 8, !noalias !2103 %146 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.i.sroa.0.0.copyload.9 %147 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.9, %_34.i.i.i.i.sroa.0.0.copyload.9 store <8 x double> %146, ptr %_3.i.i.i.i.9, align 8, !noalias !2103 store <8 x double> %147, ptr %_3.i2.i.i.i.9, align 8, !noalias !2103 %_3.i.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %_3.i2.i.i.i.10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %_33.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i.i.i.i.10, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.10 = load <8 x double>, ptr %_3.i2.i.i.i.10, align 8, !noalias !2103 %148 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.i.sroa.0.0.copyload.10 %149 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.10, %_34.i.i.i.i.sroa.0.0.copyload.10 store <8 x double> %148, ptr %_3.i.i.i.i.10, align 8, !noalias !2103 store <8 x double> %149, ptr %_3.i2.i.i.i.10, align 8, !noalias !2103 %_3.i.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 11 %_3.i2.i.i.i.11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 27 %_33.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i.i.i.i.11, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.11 = load <8 x double>, ptr %_3.i2.i.i.i.11, align 8, !noalias !2103 %150 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.i.sroa.0.0.copyload.11 %151 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.11, %_34.i.i.i.i.sroa.0.0.copyload.11 store <8 x double> %150, ptr %_3.i.i.i.i.11, align 8, !noalias !2103 store <8 x double> %151, ptr %_3.i2.i.i.i.11, align 8, !noalias !2103 %_3.i2.i.i.i.12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %_33.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %10, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.12 = load <8 x double>, ptr %_3.i2.i.i.i.12, align 8, !noalias !2103 %152 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.i.sroa.0.0.copyload.12 %153 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.12, %_34.i.i.i.i.sroa.0.0.copyload.12 store <8 x double> %152, ptr %10, align 8, !noalias !2103 store <8 x double> %153, ptr %_3.i2.i.i.i.12, align 8, !noalias !2103 %_3.i.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 13 %_3.i2.i.i.i.13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 29 %_33.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i.i.i.i.13, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.13 = load <8 x double>, ptr %_3.i2.i.i.i.13, align 8, !noalias !2103 %154 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.i.sroa.0.0.copyload.13 %155 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.13, %_34.i.i.i.i.sroa.0.0.copyload.13 store <8 x double> %154, ptr %_3.i.i.i.i.13, align 8, !noalias !2103 store <8 x double> %155, ptr %_3.i2.i.i.i.13, align 8, !noalias !2103 %_3.i.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %_3.i2.i.i.i.14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %_33.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i.i.i.i.14, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.14 = load <8 x double>, ptr %_3.i2.i.i.i.14, align 8, !noalias !2103 %156 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.i.sroa.0.0.copyload.14 %157 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.14, %_34.i.i.i.i.sroa.0.0.copyload.14 store <8 x double> %156, ptr %_3.i.i.i.i.14, align 8, !noalias !2103 store <8 x double> %157, ptr %_3.i2.i.i.i.14, align 8, !noalias !2103 %_3.i.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 15 %_3.i2.i.i.i.15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 31 %_33.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i.i.i.i.15, align 8, !noalias !2103 %_34.i.i.i.i.sroa.0.0.copyload.15 = load <8 x double>, ptr %_3.i2.i.i.i.15, align 8, !noalias !2103 %158 = fadd <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.i.sroa.0.0.copyload.15 %159 = fsub <8 x double> %_33.i.i.i.i.sroa.0.0.copyload.15, %_34.i.i.i.i.sroa.0.0.copyload.15 store <8 x double> %158, ptr %_3.i.i.i.i.15, align 8, !noalias !2103 store <8 x double> %159, ptr %_3.i2.i.i.i.15, align 8, !noalias !2103 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2103 ret void bb30.i: ; preds = %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit, %bb30.i %_2.i.i.i.i = phi i1 [ false, %bb30.i ], [ true, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %iter.sroa.104.01923.i = phi i64 [ 1, %bb30.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01923.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %123, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %122, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %124, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %125, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01923.i, 4 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01923.i, 3 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01808.i = load <2 x float>, ptr %160, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11809.i = load <2 x float>, ptr %161, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01810.i = load <2 x float>, ptr %162, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11811.i = load <2 x float>, ptr %163, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01812.i = load <2 x float>, ptr %164, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %165 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11813.i = load <2 x float>, ptr %165, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %166 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01814.i = load <2 x float>, ptr %166, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %167 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11815.i = load <2 x float>, ptr %167, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %168 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01816.i = load <2 x float>, ptr %168, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %169 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11817.i = load <2 x float>, ptr %169, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %170 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01818.i = load <2 x float>, ptr %170, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %171 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11819.i = load <2 x float>, ptr %171, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %172 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01820.i = load <2 x float>, ptr %172, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %173 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11821.i = load <2 x float>, ptr %173, align 8, !alias.scope !2121, !noalias !2123, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01808.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11809.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %174 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01810.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11811.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %175 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01812.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11813.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %176 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01814.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11815.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %177 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01816.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11817.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %178 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01818.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11819.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %179 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01820.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11821.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %180 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %181 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 8 %182 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 4 %183 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 2 %184 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 6 %185 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 12 %186 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 10 %187 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 14 %188 = shufflevector <2 x double> %174, <2 x double> poison, <8 x i32> zeroinitializer %189 = shufflevector <2 x double> %174, <2 x double> poison, <8 x i32> %190 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> zeroinitializer %191 = shufflevector <2 x double> %175, <2 x double> poison, <8 x i32> %192 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> zeroinitializer %193 = shufflevector <2 x double> %176, <2 x double> poison, <8 x i32> %194 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> zeroinitializer %195 = shufflevector <2 x double> %177, <2 x double> poison, <8 x i32> %196 = shufflevector <2 x double> %178, <2 x double> poison, <8 x i32> zeroinitializer %197 = shufflevector <2 x double> %178, <2 x double> poison, <8 x i32> %198 = shufflevector <2 x double> %179, <2 x double> poison, <8 x i32> zeroinitializer %199 = shufflevector <2 x double> %179, <2 x double> poison, <8 x i32> %200 = shufflevector <2 x double> %180, <2 x double> poison, <8 x i32> zeroinitializer %201 = shufflevector <2 x double> %180, <2 x double> poison, <8 x i32> %x0.sroa.0.0.copyload.i30 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x1.sroa.0.0.copyload.i31 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x2.sroa.0.0.copyload.i32 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x3.sroa.0.0.copyload.i33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x4.sroa.0.0.copyload.i34 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x5.sroa.0.0.copyload.i35 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x6.sroa.0.0.copyload.i36 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %x7.sroa.0.0.copyload.i37 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2116, !noalias !2124 %202 = fadd <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %203 = fsub <8 x double> %x0.sroa.0.0.copyload.i30, %x4.sroa.0.0.copyload.i34 %204 = fadd <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %205 = fsub <8 x double> %x2.sroa.0.0.copyload.i32, %x6.sroa.0.0.copyload.i36 %206 = bitcast <8 x double> %205 to <8 x i64> %207 = xor <8 x i64> %206, %208 = fadd <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %209 = fsub <8 x double> %x1.sroa.0.0.copyload.i31, %x5.sroa.0.0.copyload.i35 %210 = fadd <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %211 = fsub <8 x double> %x3.sroa.0.0.copyload.i33, %x7.sroa.0.0.copyload.i37 %212 = bitcast <8 x double> %211 to <8 x i64> %213 = xor <8 x i64> %212, %214 = fadd <8 x double> %202, %204 %215 = bitcast <8 x i64> %207 to <8 x double> %216 = shufflevector <8 x double> %215, <8 x double> poison, <8 x i32> %217 = fsub <8 x double> %203, %216 %218 = fsub <8 x double> %202, %204 %219 = fadd <8 x double> %203, %216 %220 = fadd <8 x double> %208, %210 %221 = bitcast <8 x i64> %213 to <8 x double> %222 = shufflevector <8 x double> %221, <8 x double> poison, <8 x i32> %223 = fsub <8 x double> %209, %222 %224 = bitcast <8 x double> %223 to <8 x i64> %225 = xor <8 x i64> %224, %226 = bitcast <8 x i64> %225 to <8 x double> %227 = shufflevector <8 x double> %226, <8 x double> poison, <8 x i32> %228 = fadd <8 x double> %223, %227 %229 = fmul <8 x double> %228, %230 = fsub <8 x double> %208, %210 %231 = bitcast <8 x double> %230 to <8 x i64> %232 = xor <8 x i64> %231, %233 = fadd <8 x double> %209, %222 %234 = bitcast <8 x double> %233 to <8 x i64> %235 = xor <8 x i64> %234, %236 = bitcast <8 x i64> %235 to <8 x double> %237 = shufflevector <8 x double> %236, <8 x double> poison, <8 x i32> %238 = fadd <8 x double> %233, %237 %239 = fmul <8 x double> %238, %240 = fadd <8 x double> %214, %220 store <8 x double> %240, ptr %data.i.i.i.i.i.i.i, align 8, !alias.scope !2119, !noalias !2125 %241 = fadd <8 x double> %217, %229 %242 = shufflevector <8 x double> %241, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %189, %242 %_4.i82 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %188, <8 x double> %241, <8 x double> %243, i32 noundef 4) #23 store <8 x double> %_4.i82, ptr %183, align 8, !alias.scope !2119, !noalias !2125 %244 = bitcast <8 x i64> %232 to <8 x double> %245 = shufflevector <8 x double> %244, <8 x double> poison, <8 x i32> %246 = fsub <8 x double> %218, %245 %247 = shufflevector <8 x double> %246, <8 x double> poison, <8 x i32> %248 = fmul <8 x double> %191, %247 %_4.i81 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %246, <8 x double> %248, i32 noundef 4) #23 store <8 x double> %_4.i81, ptr %182, align 8, !alias.scope !2119, !noalias !2125 %249 = fsub <8 x double> %219, %239 %250 = shufflevector <8 x double> %249, <8 x double> poison, <8 x i32> %251 = fmul <8 x double> %193, %250 %_4.i80 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %192, <8 x double> %249, <8 x double> %251, i32 noundef 4) #23 store <8 x double> %_4.i80, ptr %184, align 8, !alias.scope !2119, !noalias !2125 %252 = fsub <8 x double> %214, %220 %253 = shufflevector <8 x double> %252, <8 x double> poison, <8 x i32> %254 = fmul <8 x double> %195, %253 %_4.i79 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %252, <8 x double> %254, i32 noundef 4) #23 store <8 x double> %_4.i79, ptr %181, align 8, !alias.scope !2119, !noalias !2125 %255 = fsub <8 x double> %217, %229 %256 = shufflevector <8 x double> %255, <8 x double> poison, <8 x i32> %257 = fmul <8 x double> %197, %256 %_4.i78 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %255, <8 x double> %257, i32 noundef 4) #23 store <8 x double> %_4.i78, ptr %186, align 8, !alias.scope !2119, !noalias !2125 %258 = fadd <8 x double> %218, %245 %259 = shufflevector <8 x double> %258, <8 x double> poison, <8 x i32> %260 = fmul <8 x double> %199, %259 %_4.i77 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %198, <8 x double> %258, <8 x double> %260, i32 noundef 4) #23 store <8 x double> %_4.i77, ptr %185, align 8, !alias.scope !2119, !noalias !2125 %261 = fadd <8 x double> %219, %239 %262 = shufflevector <8 x double> %261, <8 x double> poison, <8 x i32> %263 = fmul <8 x double> %201, %262 %_4.i76 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %261, <8 x double> %263, i32 noundef 4) #23 store <8 x double> %_4.i76, ptr %187, align 8, !alias.scope !2119, !noalias !2125 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i28.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i29.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 13 %_3.i.i.i.i.i38.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 15 %x0.sroa.0.0.copyload.i30.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.1, align 8, !alias.scope !2116, !noalias !2124 %x1.sroa.0.0.copyload.i31.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !2116, !noalias !2124 %x2.sroa.0.0.copyload.i32.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.1, align 8, !alias.scope !2116, !noalias !2124 %x3.sroa.0.0.copyload.i33.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.1, align 8, !alias.scope !2116, !noalias !2124 %x4.sroa.0.0.copyload.i34.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.1, align 8, !alias.scope !2116, !noalias !2124 %x5.sroa.0.0.copyload.i35.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.1, align 8, !alias.scope !2116, !noalias !2124 %x6.sroa.0.0.copyload.i36.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.1, align 8, !alias.scope !2116, !noalias !2124 %x7.sroa.0.0.copyload.i37.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.1, align 8, !alias.scope !2116, !noalias !2124 %264 = fadd <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %265 = fsub <8 x double> %x0.sroa.0.0.copyload.i30.1, %x4.sroa.0.0.copyload.i34.1 %266 = fadd <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %267 = fsub <8 x double> %x2.sroa.0.0.copyload.i32.1, %x6.sroa.0.0.copyload.i36.1 %268 = bitcast <8 x double> %267 to <8 x i64> %269 = xor <8 x i64> %268, %270 = fadd <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %271 = fsub <8 x double> %x1.sroa.0.0.copyload.i31.1, %x5.sroa.0.0.copyload.i35.1 %272 = fadd <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %273 = fsub <8 x double> %x3.sroa.0.0.copyload.i33.1, %x7.sroa.0.0.copyload.i37.1 %274 = bitcast <8 x double> %273 to <8 x i64> %275 = xor <8 x i64> %274, %276 = fadd <8 x double> %264, %266 %277 = bitcast <8 x i64> %269 to <8 x double> %278 = shufflevector <8 x double> %277, <8 x double> poison, <8 x i32> %279 = fsub <8 x double> %265, %278 %280 = fsub <8 x double> %264, %266 %281 = fadd <8 x double> %265, %278 %282 = fadd <8 x double> %270, %272 %283 = bitcast <8 x i64> %275 to <8 x double> %284 = shufflevector <8 x double> %283, <8 x double> poison, <8 x i32> %285 = fsub <8 x double> %271, %284 %286 = bitcast <8 x double> %285 to <8 x i64> %287 = xor <8 x i64> %286, %288 = bitcast <8 x i64> %287 to <8 x double> %289 = shufflevector <8 x double> %288, <8 x double> poison, <8 x i32> %290 = fadd <8 x double> %285, %289 %291 = fmul <8 x double> %290, %292 = fsub <8 x double> %270, %272 %293 = bitcast <8 x double> %292 to <8 x i64> %294 = xor <8 x i64> %293, %295 = fadd <8 x double> %271, %284 %296 = bitcast <8 x double> %295 to <8 x i64> %297 = xor <8 x i64> %296, %298 = bitcast <8 x i64> %297 to <8 x double> %299 = shufflevector <8 x double> %298, <8 x double> poison, <8 x i32> %300 = fadd <8 x double> %295, %299 %301 = fmul <8 x double> %300, %302 = fadd <8 x double> %276, %282 store <8 x double> %302, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %303 = fadd <8 x double> %279, %291 %304 = shufflevector <8 x double> %303, <8 x double> poison, <8 x i32> %305 = fmul <8 x double> %189, %304 %_4.i82.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %188, <8 x double> %303, <8 x double> %305, i32 noundef 4) #23 store <8 x double> %_4.i82.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %306 = bitcast <8 x i64> %294 to <8 x double> %307 = shufflevector <8 x double> %306, <8 x double> poison, <8 x i32> %308 = fsub <8 x double> %280, %307 %309 = shufflevector <8 x double> %308, <8 x double> poison, <8 x i32> %310 = fmul <8 x double> %191, %309 %_4.i81.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %308, <8 x double> %310, i32 noundef 4) #23 store <8 x double> %_4.i81.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %311 = fsub <8 x double> %281, %301 %312 = shufflevector <8 x double> %311, <8 x double> poison, <8 x i32> %313 = fmul <8 x double> %193, %312 %_4.i80.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %192, <8 x double> %311, <8 x double> %313, i32 noundef 4) #23 store <8 x double> %_4.i80.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %314 = fsub <8 x double> %276, %282 %315 = shufflevector <8 x double> %314, <8 x double> poison, <8 x i32> %316 = fmul <8 x double> %195, %315 %_4.i79.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %194, <8 x double> %314, <8 x double> %316, i32 noundef 4) #23 store <8 x double> %_4.i79.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %317 = fsub <8 x double> %279, %291 %318 = shufflevector <8 x double> %317, <8 x double> poison, <8 x i32> %319 = fmul <8 x double> %197, %318 %_4.i78.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %196, <8 x double> %317, <8 x double> %319, i32 noundef 4) #23 store <8 x double> %_4.i78.1, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %320 = fadd <8 x double> %280, %307 %321 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %322 = fmul <8 x double> %199, %321 %_4.i77.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %198, <8 x double> %320, <8 x double> %322, i32 noundef 4) #23 store <8 x double> %_4.i77.1, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 %323 = fadd <8 x double> %281, %301 %324 = shufflevector <8 x double> %323, <8 x double> poison, <8 x i32> %325 = fmul <8 x double> %201, %324 %_4.i76.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %323, <8 x double> %325, i32 noundef 4) #23 store <8 x double> %_4.i76.1, ptr %_3.i.i.i.i.i38.i.i.i.i.1, align 8, !alias.scope !2119, !noalias !2125 br i1 %_2.i.i.i.i, label %bb30.i, label %bb9.i.i.i.i.preheader } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hfce84763a175d0dcE(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2126) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2126, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2126, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2126, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2126, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2126, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2126, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %5, align 8, !alias.scope !2126, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2126 store i64 128, ptr %n.i, align 8, !noalias !2126 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2126 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2126 %_12.i = icmp eq i64 %buf.1.i, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2126 store ptr null, ptr %_16.i, align 8, !noalias !2126 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2126 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2126 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2126 %_20.i = icmp eq i64 %scratch.1.i, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2126 store ptr null, ptr %_24.i, align 8, !noalias !2126 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2126 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2126 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2126 %_28.i = icmp eq i64 %w_init.1.i, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2126 store ptr null, ptr %_32.i, align 8, !noalias !2126 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2126 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2126 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2126 %_36.i = icmp eq i64 %w.1.i, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h27fd805b456bf019E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2126 store ptr null, ptr %_40.i, align 8, !noalias !2126 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h27fd805b456bf019E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2126 tail call void @llvm.experimental.noalias.scope.decl(metadata !2129) tail call void @llvm.experimental.noalias.scope.decl(metadata !2132) tail call void @llvm.experimental.noalias.scope.decl(metadata !2134) %6 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 16 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 8 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 4 %9 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 2 %10 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 6 %11 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 12 %12 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 10 %13 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 14 %14 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 24 %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 20 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 18 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 22 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 28 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 26 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 30 %21 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 16 %22 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 8 %23 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 4 %24 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 2 %25 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 6 %26 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 12 %27 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 10 %28 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 14 %29 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 24 %30 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 20 %31 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 18 %32 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 22 %33 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 28 %34 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 26 %35 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 30 br label %bb39.i bb39.i: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h27fd805b456bf019E.exit", %bb39.i %iter.sroa.218.04638.i = phi i64 [ %36, %bb39.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h27fd805b456bf019E.exit" ] %36 = add nuw nsw i64 %iter.sroa.218.04638.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %9, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %10, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %12, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %13, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %24, i64 %iter.sroa.218.04638.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %23, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %25, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %22, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %27, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %26, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %28, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %21, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %31, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %30, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %32, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %29, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %34, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %33, i64 %iter.sroa.218.04638.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %35, i64 %iter.sroa.218.04638.i %x0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %x9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %xa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %xb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %xc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %xd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %xe.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %xf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2129, !noalias !2136 %37 = fadd <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %38 = fsub <8 x double> %x0.sroa.0.0.copyload.i, %x8.sroa.0.0.copyload.i %39 = fadd <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %40 = fsub <8 x double> %x4.sroa.0.0.copyload.i, %xc.sroa.0.0.copyload.i %41 = fadd <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %42 = fsub <8 x double> %x2.sroa.0.0.copyload.i, %xa.sroa.0.0.copyload.i %43 = fadd <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %44 = fsub <8 x double> %x6.sroa.0.0.copyload.i, %xe.sroa.0.0.copyload.i %45 = fadd <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %46 = fsub <8 x double> %x1.sroa.0.0.copyload.i, %x9.sroa.0.0.copyload.i %47 = fadd <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %48 = fsub <8 x double> %x5.sroa.0.0.copyload.i, %xd.sroa.0.0.copyload.i %49 = fadd <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %50 = fsub <8 x double> %x3.sroa.0.0.copyload.i, %xb.sroa.0.0.copyload.i %51 = fadd <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %52 = fsub <8 x double> %x7.sroa.0.0.copyload.i, %xf.sroa.0.0.copyload.i %53 = bitcast <8 x double> %40 to <8 x i64> %54 = xor <8 x i64> %53, %55 = bitcast <8 x i64> %54 to <8 x double> %56 = shufflevector <8 x double> %55, <8 x double> poison, <8 x i32> %57 = bitcast <8 x double> %44 to <8 x i64> %58 = xor <8 x i64> %57, %59 = bitcast <8 x i64> %58 to <8 x double> %60 = shufflevector <8 x double> %59, <8 x double> poison, <8 x i32> %61 = bitcast <8 x double> %48 to <8 x i64> %62 = xor <8 x i64> %61, %63 = bitcast <8 x i64> %62 to <8 x double> %64 = shufflevector <8 x double> %63, <8 x double> poison, <8 x i32> %65 = bitcast <8 x double> %52 to <8 x i64> %66 = xor <8 x i64> %65, %67 = bitcast <8 x i64> %66 to <8 x double> %68 = shufflevector <8 x double> %67, <8 x double> poison, <8 x i32> %69 = fadd <8 x double> %37, %39 %70 = fsub <8 x double> %38, %56 %71 = fsub <8 x double> %37, %39 %72 = fadd <8 x double> %38, %56 %73 = fadd <8 x double> %41, %43 %74 = fsub <8 x double> %42, %60 %75 = fsub <8 x double> %41, %43 %76 = fadd <8 x double> %42, %60 %77 = fadd <8 x double> %45, %47 %78 = fsub <8 x double> %46, %64 %79 = fsub <8 x double> %45, %47 %80 = fadd <8 x double> %46, %64 %81 = fadd <8 x double> %49, %51 %82 = fsub <8 x double> %50, %68 %83 = fsub <8 x double> %49, %51 %84 = fadd <8 x double> %50, %68 %85 = bitcast <8 x double> %74 to <8 x i64> %86 = xor <8 x i64> %85, %87 = bitcast <8 x i64> %86 to <8 x double> %88 = shufflevector <8 x double> %87, <8 x double> poison, <8 x i32> %89 = fadd <8 x double> %74, %88 %90 = fmul <8 x double> %89, %91 = bitcast <8 x double> %75 to <8 x i64> %92 = xor <8 x i64> %91, %93 = bitcast <8 x i64> %92 to <8 x double> %94 = shufflevector <8 x double> %93, <8 x double> poison, <8 x i32> %95 = bitcast <8 x double> %76 to <8 x i64> %96 = xor <8 x i64> %95, %97 = bitcast <8 x i64> %96 to <8 x double> %98 = shufflevector <8 x double> %97, <8 x double> poison, <8 x i32> %99 = fadd <8 x double> %76, %98 %100 = fmul <8 x double> %99, %101 = fadd <8 x double> %69, %73 %102 = fadd <8 x double> %70, %90 %103 = fsub <8 x double> %71, %94 %104 = fsub <8 x double> %72, %100 %105 = fsub <8 x double> %69, %73 %106 = fsub <8 x double> %70, %90 %107 = fadd <8 x double> %71, %94 %108 = fadd <8 x double> %72, %100 %109 = bitcast <8 x double> %82 to <8 x i64> %110 = xor <8 x i64> %109, %111 = bitcast <8 x i64> %110 to <8 x double> %112 = shufflevector <8 x double> %111, <8 x double> poison, <8 x i32> %113 = fadd <8 x double> %82, %112 %114 = fmul <8 x double> %113, %115 = bitcast <8 x double> %83 to <8 x i64> %116 = xor <8 x i64> %115, %117 = bitcast <8 x i64> %116 to <8 x double> %118 = shufflevector <8 x double> %117, <8 x double> poison, <8 x i32> %119 = bitcast <8 x double> %84 to <8 x i64> %120 = xor <8 x i64> %119, %121 = bitcast <8 x i64> %120 to <8 x double> %122 = shufflevector <8 x double> %121, <8 x double> poison, <8 x i32> %123 = fadd <8 x double> %84, %122 %124 = fmul <8 x double> %123, %125 = fadd <8 x double> %77, %81 %126 = fadd <8 x double> %78, %114 %127 = fsub <8 x double> %79, %118 %128 = fsub <8 x double> %80, %124 %129 = fsub <8 x double> %77, %81 %130 = fsub <8 x double> %78, %114 %131 = fadd <8 x double> %79, %118 %132 = fadd <8 x double> %80, %124 %133 = fmul <8 x double> %126, %134 = shufflevector <8 x double> %133, <8 x double> poison, <8 x i32> %_4.i241 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %126, <8 x double> %134, i32 noundef 4) #23 %135 = bitcast <8 x double> %127 to <8 x i64> %136 = xor <8 x i64> %135, %137 = bitcast <8 x i64> %136 to <8 x double> %138 = shufflevector <8 x double> %137, <8 x double> poison, <8 x i32> %139 = fadd <8 x double> %127, %138 %140 = fmul <8 x double> %139, %141 = fmul <8 x double> %128, %142 = shufflevector <8 x double> %141, <8 x double> poison, <8 x i32> %_4.i240 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %128, <8 x double> %142, i32 noundef 4) #23 %143 = bitcast <8 x double> %129 to <8 x i64> %144 = xor <8 x i64> %143, %145 = bitcast <8 x i64> %144 to <8 x double> %146 = shufflevector <8 x double> %145, <8 x double> poison, <8 x i32> %147 = fmul <8 x double> %130, %148 = shufflevector <8 x double> %147, <8 x double> poison, <8 x i32> %_4.i239 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %130, <8 x double> %148, i32 noundef 4) #23 %149 = bitcast <8 x double> %131 to <8 x i64> %150 = xor <8 x i64> %149, %151 = bitcast <8 x i64> %150 to <8 x double> %152 = shufflevector <8 x double> %151, <8 x double> poison, <8 x i32> %153 = fadd <8 x double> %131, %152 %154 = fmul <8 x double> %153, %155 = fmul <8 x double> %132, %156 = shufflevector <8 x double> %155, <8 x double> poison, <8 x i32> %_4.i238 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> , <8 x double> %132, <8 x double> %156, i32 noundef 4) #23 %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w8.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %w9.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %wa.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %wb.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %wc.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %wd.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %we.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %wf.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2134, !noalias !2137 %157 = fadd <8 x double> %101, %125 %158 = fadd <8 x double> %_4.i241, %102 %159 = shufflevector <8 x double> %158, <8 x double> poison, <8 x i32> %160 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %161 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %162 = fmul <8 x double> %161, %159 %_4.i237 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %158, <8 x double> %162, i32 noundef 4) #23 %163 = fadd <8 x double> %103, %140 %164 = shufflevector <8 x double> %163, <8 x double> poison, <8 x i32> %165 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %166 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %167 = fmul <8 x double> %166, %164 %_4.i236 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %165, <8 x double> %163, <8 x double> %167, i32 noundef 4) #23 %168 = fadd <8 x double> %_4.i240, %104 %169 = shufflevector <8 x double> %168, <8 x double> poison, <8 x i32> %170 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %171 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %172 = fmul <8 x double> %171, %169 %_4.i235 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %168, <8 x double> %172, i32 noundef 4) #23 %173 = fsub <8 x double> %105, %146 %174 = shufflevector <8 x double> %173, <8 x double> poison, <8 x i32> %175 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %176 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %176, %174 %_4.i234 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %175, <8 x double> %173, <8 x double> %177, i32 noundef 4) #23 %178 = fsub <8 x double> %106, %_4.i239 %179 = shufflevector <8 x double> %178, <8 x double> poison, <8 x i32> %180 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %181 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %182 = fmul <8 x double> %181, %179 %_4.i233 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %180, <8 x double> %178, <8 x double> %182, i32 noundef 4) #23 %183 = fsub <8 x double> %107, %154 %184 = shufflevector <8 x double> %183, <8 x double> poison, <8 x i32> %185 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %186 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %186, %184 %_4.i232 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %185, <8 x double> %183, <8 x double> %187, i32 noundef 4) #23 %188 = fsub <8 x double> %108, %_4.i238 %189 = shufflevector <8 x double> %188, <8 x double> poison, <8 x i32> %190 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %191 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %192 = fmul <8 x double> %191, %189 %_4.i231 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %190, <8 x double> %188, <8 x double> %192, i32 noundef 4) #23 %193 = fsub <8 x double> %101, %125 %194 = shufflevector <8 x double> %193, <8 x double> poison, <8 x i32> %195 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %196 = shufflevector <8 x double> %w8.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %197 = fmul <8 x double> %194, %196 %_4.i230 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %195, <8 x double> %193, <8 x double> %197, i32 noundef 4) #23 %198 = fsub <8 x double> %102, %_4.i241 %199 = shufflevector <8 x double> %198, <8 x double> poison, <8 x i32> %200 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %201 = shufflevector <8 x double> %w9.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %202 = fmul <8 x double> %201, %199 %_4.i229 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %200, <8 x double> %198, <8 x double> %202, i32 noundef 4) #23 %203 = fsub <8 x double> %103, %140 %204 = shufflevector <8 x double> %203, <8 x double> poison, <8 x i32> %205 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %206 = shufflevector <8 x double> %wa.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %207 = fmul <8 x double> %206, %204 %_4.i228 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %205, <8 x double> %203, <8 x double> %207, i32 noundef 4) #23 %208 = fsub <8 x double> %104, %_4.i240 %209 = shufflevector <8 x double> %208, <8 x double> poison, <8 x i32> %210 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %211 = shufflevector <8 x double> %wb.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %212 = fmul <8 x double> %209, %211 %_4.i227 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %210, <8 x double> %208, <8 x double> %212, i32 noundef 4) #23 %213 = fadd <8 x double> %105, %146 %214 = shufflevector <8 x double> %213, <8 x double> poison, <8 x i32> %215 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %216 = shufflevector <8 x double> %wc.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %217 = fmul <8 x double> %214, %216 %_4.i226 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %215, <8 x double> %213, <8 x double> %217, i32 noundef 4) #23 %218 = fadd <8 x double> %_4.i239, %106 %219 = shufflevector <8 x double> %218, <8 x double> poison, <8 x i32> %220 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %221 = shufflevector <8 x double> %wd.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %222 = fmul <8 x double> %219, %221 %_4.i225 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %220, <8 x double> %218, <8 x double> %222, i32 noundef 4) #23 %223 = fadd <8 x double> %107, %154 %224 = shufflevector <8 x double> %223, <8 x double> poison, <8 x i32> %225 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %226 = shufflevector <8 x double> %we.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %227 = fmul <8 x double> %224, %226 %_4.i224 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %225, <8 x double> %223, <8 x double> %227, i32 noundef 4) #23 %228 = fadd <8 x double> %_4.i238, %108 %229 = shufflevector <8 x double> %228, <8 x double> poison, <8 x i32> %230 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %231 = shufflevector <8 x double> %wf.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %232 = fmul <8 x double> %229, %231 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %230, <8 x double> %228, <8 x double> %232, i32 noundef 4) #23 %233 = shufflevector <8 x double> %157, <8 x double> %_4.i237, <8 x i32> %234 = shufflevector <8 x double> %157, <8 x double> %_4.i237, <8 x i32> %235 = shufflevector <8 x double> %_4.i236, <8 x double> %_4.i235, <8 x i32> %236 = shufflevector <8 x double> %_4.i236, <8 x double> %_4.i235, <8 x i32> %237 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %238 = shufflevector <8 x double> %233, <8 x double> %235, <8 x i32> %239 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %240 = shufflevector <8 x double> %234, <8 x double> %236, <8 x i32> %241 = shufflevector <8 x double> %_4.i234, <8 x double> %_4.i233, <8 x i32> %242 = shufflevector <8 x double> %_4.i234, <8 x double> %_4.i233, <8 x i32> %243 = shufflevector <8 x double> %_4.i232, <8 x double> %_4.i231, <8 x i32> %244 = shufflevector <8 x double> %_4.i232, <8 x double> %_4.i231, <8 x i32> %245 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %246 = shufflevector <8 x double> %241, <8 x double> %243, <8 x i32> %247 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %248 = shufflevector <8 x double> %242, <8 x double> %244, <8 x i32> %249 = shufflevector <8 x double> %_4.i230, <8 x double> %_4.i229, <8 x i32> %250 = shufflevector <8 x double> %_4.i230, <8 x double> %_4.i229, <8 x i32> %251 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %252 = shufflevector <8 x double> %_4.i228, <8 x double> %_4.i227, <8 x i32> %253 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %254 = shufflevector <8 x double> %249, <8 x double> %251, <8 x i32> %255 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %256 = shufflevector <8 x double> %250, <8 x double> %252, <8 x i32> %257 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %258 = shufflevector <8 x double> %_4.i226, <8 x double> %_4.i225, <8 x i32> %259 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %260 = shufflevector <8 x double> %_4.i224, <8 x double> %_4.i, <8 x i32> %261 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %262 = shufflevector <8 x double> %257, <8 x double> %259, <8 x i32> %263 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> %264 = shufflevector <8 x double> %258, <8 x double> %260, <8 x i32> store <8 x double> %237, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !2132, !noalias !2138 %265 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 1 store <8 x double> %245, ptr %265, align 8, !alias.scope !2132, !noalias !2138 %266 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 2 store <8 x double> %253, ptr %266, align 8, !alias.scope !2132, !noalias !2138 %267 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 3 store <8 x double> %261, ptr %267, align 8, !alias.scope !2132, !noalias !2138 %268 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 4 store <8 x double> %239, ptr %268, align 8, !alias.scope !2132, !noalias !2138 %269 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 5 store <8 x double> %247, ptr %269, align 8, !alias.scope !2132, !noalias !2138 %270 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 6 store <8 x double> %255, ptr %270, align 8, !alias.scope !2132, !noalias !2138 %271 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 7 store <8 x double> %263, ptr %271, align 8, !alias.scope !2132, !noalias !2138 %272 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 8 store <8 x double> %238, ptr %272, align 8, !alias.scope !2132, !noalias !2138 %273 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 9 store <8 x double> %246, ptr %273, align 8, !alias.scope !2132, !noalias !2138 %274 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 10 store <8 x double> %254, ptr %274, align 8, !alias.scope !2132, !noalias !2138 %275 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 11 store <8 x double> %262, ptr %275, align 8, !alias.scope !2132, !noalias !2138 %276 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 12 store <8 x double> %240, ptr %276, align 8, !alias.scope !2132, !noalias !2138 %277 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 13 store <8 x double> %248, ptr %277, align 8, !alias.scope !2132, !noalias !2138 %278 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 14 store <8 x double> %256, ptr %278, align 8, !alias.scope !2132, !noalias !2138 %279 = getelementptr inbounds [16 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.218.04638.i, i64 15 store <8 x double> %264, ptr %279, align 8, !alias.scope !2132, !noalias !2138 %exitcond.not.i = icmp eq i64 %36, 2 br i1 %exitcond.not.i, label %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, label %bb39.i _ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit: ; preds = %bb39.i %280 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 16 %281 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 8 %282 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 4 %283 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 12 %284 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 24 %285 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 20 %286 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 28 br label %bb38.i.i.i bb38.i.i.i: ; preds = %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit, %bb38.i.i.i %iter14.i.i.i.sroa.106.01220 = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E.exit ], [ %287, %bb38.i.i.i ] %287 = add nuw nsw i64 %iter14.i.i.i.sroa.106.01220, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %282, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %281, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %283, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %280, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %285, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %284, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %286, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter14.i.i.i.sroa.106.01220 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %11, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %6, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i.i.i32.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i.i.i35.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %14, i64 %iter14.i.i.i.sroa.106.01220 %_3.i.i.i.i.i38.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter14.i.i.i.sroa.106.01220 %_120.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_121.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_122.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_123.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_124.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_125.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_126.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %_127.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !2126 %288 = fadd <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %289 = fsub <8 x double> %_120.i.i.i.sroa.0.0.copyload, %_124.i.i.i.sroa.0.0.copyload %290 = fadd <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %291 = fsub <8 x double> %_122.i.i.i.sroa.0.0.copyload, %_126.i.i.i.sroa.0.0.copyload %292 = bitcast <8 x double> %291 to <8 x i64> %293 = xor <8 x i64> %292, %294 = bitcast <8 x i64> %293 to <8 x double> %295 = shufflevector <8 x double> %294, <8 x double> poison, <8 x i32> %296 = fadd <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %297 = fsub <8 x double> %_121.i.i.i.sroa.0.0.copyload, %_125.i.i.i.sroa.0.0.copyload %298 = fadd <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %299 = fsub <8 x double> %_123.i.i.i.sroa.0.0.copyload, %_127.i.i.i.sroa.0.0.copyload %300 = bitcast <8 x double> %299 to <8 x i64> %301 = xor <8 x i64> %300, %302 = bitcast <8 x i64> %301 to <8 x double> %303 = shufflevector <8 x double> %302, <8 x double> poison, <8 x i32> %304 = fadd <8 x double> %288, %290 %305 = fsub <8 x double> %289, %295 %306 = fsub <8 x double> %288, %290 %307 = fadd <8 x double> %289, %295 %308 = fadd <8 x double> %296, %298 %309 = fsub <8 x double> %297, %303 %310 = bitcast <8 x double> %309 to <8 x i64> %311 = xor <8 x i64> %310, %312 = bitcast <8 x i64> %311 to <8 x double> %313 = shufflevector <8 x double> %312, <8 x double> poison, <8 x i32> %314 = fadd <8 x double> %309, %313 %315 = fmul <8 x double> %314, %316 = fsub <8 x double> %296, %298 %317 = bitcast <8 x double> %316 to <8 x i64> %318 = xor <8 x i64> %317, %319 = bitcast <8 x i64> %318 to <8 x double> %320 = shufflevector <8 x double> %319, <8 x double> poison, <8 x i32> %321 = fadd <8 x double> %297, %303 %322 = bitcast <8 x double> %321 to <8 x i64> %323 = xor <8 x i64> %322, %324 = bitcast <8 x i64> %323 to <8 x double> %325 = shufflevector <8 x double> %324, <8 x double> poison, <8 x i32> %326 = fadd <8 x double> %321, %325 %327 = fmul <8 x double> %326, %328 = fadd <8 x double> %304, %308 %329 = fadd <8 x double> %305, %315 %330 = fsub <8 x double> %306, %320 %331 = fsub <8 x double> %307, %327 %332 = fsub <8 x double> %304, %308 %333 = fsub <8 x double> %305, %315 %334 = fadd <8 x double> %306, %320 %335 = fadd <8 x double> %307, %327 store <8 x double> %328, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i, align 8, !noalias !2126 store <8 x double> %329, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i, align 8, !noalias !2126 store <8 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i, align 8, !noalias !2126 store <8 x double> %331, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i, align 8, !noalias !2126 store <8 x double> %332, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i, align 8, !noalias !2126 store <8 x double> %333, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i, align 8, !noalias !2126 store <8 x double> %334, ptr %_3.i.i.i.i.i.i.i35.i.i.i, align 8, !noalias !2126 store <8 x double> %335, ptr %_3.i.i.i.i.i38.i.i.i, align 8, !noalias !2126 %exitcond.not = icmp eq i64 %287, 4 br i1 %exitcond.not, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcdfdaf83fd617ab6E.exit", label %bb38.i.i.i "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcdfdaf83fd617ab6E.exit": ; preds = %bb38.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2126 ret void } ; pulp::x86::V4::vectorize::__impl ; Function Attrs: inlinehint nonlazybind uwtable define internal fastcc void @_ZN4pulp3x862V49vectorize6__impl17hff8c374f1522f3a7E(ptr noalias nocapture noundef readonly align 8 dereferenceable(64) %f) unnamed_addr #6 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2139) %buf.0.i = load ptr, ptr %f, align 8, !alias.scope !2139, !nonnull !3, !align !4, !noundef !3 %0 = getelementptr inbounds i8, ptr %f, i64 8 %buf.1.i = load i64, ptr %0, align 8, !alias.scope !2139, !noundef !3 %1 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1 %scratch.0.i = load ptr, ptr %1, align 8, !alias.scope !2139, !nonnull !3, !align !4, !noundef !3 %2 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 1, i32 1 %scratch.1.i = load i64, ptr %2, align 8, !alias.scope !2139, !noundef !3 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2 %w_init.0.i = load ptr, ptr %3, align 8, !alias.scope !2139, !nonnull !3, !align !4, !noundef !3 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 2, i32 1 %w_init.1.i = load i64, ptr %4, align 8, !alias.scope !2139, !noundef !3 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3 %w.0.i = load ptr, ptr %5, align 8, !alias.scope !2139, !nonnull !3, !align !4, !noundef !3 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %f, i64 0, i32 3, i32 1 %w.1.i = load i64, ptr %6, align 8, !alias.scope !2139, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2139 store i64 1024, ptr %n.i, align 8, !noalias !2139 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2139 store i64 %buf.1.i, ptr %_10.i, align 8, !noalias !2139 %_12.i = icmp eq i64 %buf.1.i, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2139 store ptr null, ptr %_16.i, align 8, !noalias !2139 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2139 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2139 store i64 %scratch.1.i, ptr %_18.i, align 8, !noalias !2139 %_20.i = icmp eq i64 %scratch.1.i, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2139 store ptr null, ptr %_24.i, align 8, !noalias !2139 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2139 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2139 store i64 %w_init.1.i, ptr %_26.i, align 8, !noalias !2139 %_28.i = icmp eq i64 %w_init.1.i, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2139 store ptr null, ptr %_32.i, align 8, !noalias !2139 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2139 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2139 store i64 %w.1.i, ptr %_34.i, align 8, !noalias !2139 %_36.i = icmp eq i64 %w.1.i, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc10ad160d6b2deb1E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2139 store ptr null, ptr %_40.i, align 8, !noalias !2139 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc10ad160d6b2deb1E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2139 %7 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 128 %8 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 128 br label %bb18.i.i.i.i bb18.i.i.i.i: ; preds = %bb18.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc10ad160d6b2deb1E.exit" %iter6.i.i.i.i.sroa.22.0980 = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc10ad160d6b2deb1E.exit" ], [ %12, %bb18.i.i.i.i ] %9 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0980, 1 %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %iter6.i.i.i.i.sroa.22.0980 %_3.i2.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %iter6.i.i.i.i.sroa.22.0980 %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter6.i.i.i.i.sroa.22.0980 %_3.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter6.i.i.i.i.sroa.22.0980 %_51.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i.i.i, align 8, !noalias !2142 %_52.i.i.i.i.sroa.0.0.copyload = load <8 x double>, ptr %_3.i.i.i.i, align 8, !noalias !2142 %10 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload %11 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload, %_52.i.i.i.i.sroa.0.0.copyload store <8 x double> %10, ptr %_3.i.i.i.i.i.i.i.i, align 8, !noalias !2142 store <8 x double> %11, ptr %_3.i2.i.i.i.i.i.i.i, align 8, !noalias !2142 %12 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0980, 2 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %9 %_3.i2.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %9 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %9 %_3.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %9 %_51.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !2142 %_52.i.i.i.i.sroa.0.0.copyload.1 = load <8 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !2142 %13 = fadd <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 %14 = fsub <8 x double> %_51.i.i.i.i.sroa.0.0.copyload.1, %_52.i.i.i.i.sroa.0.0.copyload.1 store <8 x double> %13, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !2142 store <8 x double> %14, ptr %_3.i2.i.i.i.i.i.i.i.1, align 8, !noalias !2142 %exitcond.not.1 = icmp eq i64 %12, 128 br i1 %exitcond.not.1, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit", label %bb18.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit": ; preds = %bb18.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2149) tail call void @llvm.experimental.noalias.scope.decl(metadata !2152) tail call void @llvm.experimental.noalias.scope.decl(metadata !2154) %15 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 64 %16 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 32 %17 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 96 %18 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 192 %19 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 160 %20 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 224 br label %bb30.i bb28.loopexit.i: ; preds = %bb58.i br i1 %_2.i.i.i.i, label %bb30.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit bb30.i: ; preds = %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit", %bb28.loopexit.i %_2.i.i.i.i = phi i1 [ false, %bb28.loopexit.i ], [ true, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit" ] %iter.sroa.104.01903.i = phi i64 [ 1, %bb28.loopexit.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E.exit" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 7 %data.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.01903.i, 6 %21 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1 %w1.01788.i = load <2 x float>, ptr %21, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %22 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 1, i32 1 %w1.11789.i = load <2 x float>, ptr %22, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %23 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2 %w2.01790.i = load <2 x float>, ptr %23, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 2, i32 1 %w2.11791.i = load <2 x float>, ptr %24, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3 %w3.01792.i = load <2 x float>, ptr %25, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 3, i32 1 %w3.11793.i = load <2 x float>, ptr %26, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4 %w4.01794.i = load <2 x float>, ptr %27, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 4, i32 1 %w4.11795.i = load <2 x float>, ptr %28, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5 %w5.01796.i = load <2 x float>, ptr %29, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 5, i32 1 %w5.11797.i = load <2 x float>, ptr %30, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6 %w6.01798.i = load <2 x float>, ptr %31, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 6, i32 1 %w6.11799.i = load <2 x float>, ptr %32, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7 %w7.01800.i = load <2 x float>, ptr %33, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i, i64 7, i32 1 %w7.11801.i = load <2 x float>, ptr %34, align 8, !alias.scope !2154, !noalias !2156, !noundef !3 %value.i138.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w1.01788.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w1.11789.i, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i, <4 x float> %value.i138.sroa.0.8.vec.expand.i, <4 x i32> %35 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i to <2 x double> %value.i134.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w2.01790.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w2.11791.i, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i, <4 x float> %value.i134.sroa.0.8.vec.expand.i, <4 x i32> %36 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i to <2 x double> %value.i130.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w3.01792.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w3.11793.i, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i, <4 x float> %value.i130.sroa.0.8.vec.expand.i, <4 x i32> %37 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i to <2 x double> %value.i126.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w4.01794.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w4.11795.i, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i, <4 x float> %value.i126.sroa.0.8.vec.expand.i, <4 x i32> %38 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i to <2 x double> %value.i122.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w5.01796.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w5.11797.i, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i, <4 x float> %value.i122.sroa.0.8.vec.expand.i, <4 x i32> %39 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i to <2 x double> %value.i118.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w6.01798.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w6.11799.i, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i, <4 x float> %value.i118.sroa.0.8.vec.expand.i, <4 x i32> %40 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i to <2 x double> %value.i114.sroa.0.0.vec.expand.i = shufflevector <2 x float> %w7.01800.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i = shufflevector <2 x float> %w7.11801.i, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i, <4 x float> %value.i114.sroa.0.8.vec.expand.i, <4 x i32> %41 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i to <2 x double> %42 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 64 %43 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 32 %44 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 16 %45 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 48 %46 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 96 %47 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 80 %48 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 112 %49 = shufflevector <2 x double> %35, <2 x double> poison, <8 x i32> zeroinitializer %50 = shufflevector <2 x double> %35, <2 x double> poison, <8 x i32> %51 = shufflevector <2 x double> %36, <2 x double> poison, <8 x i32> zeroinitializer %52 = shufflevector <2 x double> %36, <2 x double> poison, <8 x i32> %53 = shufflevector <2 x double> %37, <2 x double> poison, <8 x i32> zeroinitializer %54 = shufflevector <2 x double> %37, <2 x double> poison, <8 x i32> %55 = shufflevector <2 x double> %38, <2 x double> poison, <8 x i32> zeroinitializer %56 = shufflevector <2 x double> %38, <2 x double> poison, <8 x i32> %57 = shufflevector <2 x double> %39, <2 x double> poison, <8 x i32> zeroinitializer %58 = shufflevector <2 x double> %39, <2 x double> poison, <8 x i32> %59 = shufflevector <2 x double> %40, <2 x double> poison, <8 x i32> zeroinitializer %60 = shufflevector <2 x double> %40, <2 x double> poison, <8 x i32> %61 = shufflevector <2 x double> %41, <2 x double> poison, <8 x i32> zeroinitializer %62 = shufflevector <2 x double> %41, <2 x double> poison, <8 x i32> br label %bb58.i bb58.i: ; preds = %bb58.i, %bb30.i %iter8.sroa.106.01842.i = phi i64 [ %63, %bb58.i ], [ 0, %bb30.i ] %63 = add nuw nsw i64 %iter8.sroa.106.01842.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i, i64 %iter8.sroa.106.01842.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %44, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %43, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %45, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %42, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %47, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %46, i64 %iter8.sroa.106.01842.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %48, i64 %iter8.sroa.106.01842.i %y0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %_131.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %64 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %65 = fmul <8 x double> %50, %64 %_4.i206 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %49, <8 x double> %_131.sroa.0.0.copyload.i, <8 x double> %65, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %66 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %67 = fmul <8 x double> %52, %66 %_4.i205 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %51, <8 x double> %_133.sroa.0.0.copyload.i, <8 x double> %67, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %68 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %69 = fmul <8 x double> %54, %68 %_4.i204 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %53, <8 x double> %_135.sroa.0.0.copyload.i, <8 x double> %69, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %70 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %71 = fmul <8 x double> %56, %70 %_4.i203 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %55, <8 x double> %_137.sroa.0.0.copyload.i, <8 x double> %71, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %72 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %73 = fmul <8 x double> %58, %72 %_4.i202 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %57, <8 x double> %_139.sroa.0.0.copyload.i, <8 x double> %73, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %74 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %75 = fmul <8 x double> %60, %74 %_4.i201 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %59, <8 x double> %_141.sroa.0.0.copyload.i, <8 x double> %75, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !alias.scope !2152, !noalias !2157 %76 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %77 = fmul <8 x double> %62, %76 %_4.i = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %61, <8 x double> %_143.sroa.0.0.copyload.i, <8 x double> %77, i32 noundef 4) #23 %78 = fadd <8 x double> %y0.sroa.0.0.copyload.i, %_4.i203 %79 = fsub <8 x double> %y0.sroa.0.0.copyload.i, %_4.i203 %80 = fadd <8 x double> %_4.i205, %_4.i201 %81 = fsub <8 x double> %_4.i205, %_4.i201 %82 = bitcast <8 x double> %81 to <8 x i64> %83 = xor <8 x i64> %82, %84 = fadd <8 x double> %_4.i206, %_4.i202 %85 = fsub <8 x double> %_4.i206, %_4.i202 %86 = fadd <8 x double> %_4.i204, %_4.i %87 = fsub <8 x double> %_4.i204, %_4.i %88 = bitcast <8 x double> %87 to <8 x i64> %89 = xor <8 x i64> %88, %90 = fadd <8 x double> %78, %80 %91 = fadd <8 x double> %84, %86 %92 = fadd <8 x double> %90, %91 store <8 x double> %92, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %93 = fsub <8 x double> %90, %91 store <8 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %94 = bitcast <8 x i64> %83 to <8 x double> %95 = shufflevector <8 x double> %94, <8 x double> poison, <8 x i32> %96 = fsub <8 x double> %79, %95 %97 = bitcast <8 x i64> %89 to <8 x double> %98 = shufflevector <8 x double> %97, <8 x double> poison, <8 x i32> %99 = fsub <8 x double> %85, %98 %100 = bitcast <8 x double> %99 to <8 x i64> %101 = xor <8 x i64> %100, %102 = bitcast <8 x i64> %101 to <8 x double> %103 = shufflevector <8 x double> %102, <8 x double> poison, <8 x i32> %104 = fadd <8 x double> %99, %103 %105 = fmul <8 x double> %104, %106 = fadd <8 x double> %96, %105 store <8 x double> %106, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %107 = fsub <8 x double> %96, %105 store <8 x double> %107, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %108 = fsub <8 x double> %78, %80 %109 = fsub <8 x double> %84, %86 %110 = bitcast <8 x double> %109 to <8 x i64> %111 = xor <8 x i64> %110, %112 = bitcast <8 x i64> %111 to <8 x double> %113 = shufflevector <8 x double> %112, <8 x double> poison, <8 x i32> %114 = fsub <8 x double> %108, %113 store <8 x double> %114, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %115 = fadd <8 x double> %108, %113 store <8 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %116 = fadd <8 x double> %79, %95 %117 = fadd <8 x double> %85, %98 %118 = bitcast <8 x double> %117 to <8 x i64> %119 = xor <8 x i64> %118, %120 = bitcast <8 x i64> %119 to <8 x double> %121 = shufflevector <8 x double> %120, <8 x double> poison, <8 x i32> %122 = fadd <8 x double> %117, %121 %123 = fmul <8 x double> %122, %124 = fsub <8 x double> %116, %123 store <8 x double> %124, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %125 = fadd <8 x double> %116, %123 store <8 x double> %125, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2149, !noalias !2158 %exitcond.not.i = icmp eq i64 %63, 16 br i1 %exitcond.not.i, label %bb28.loopexit.i, label %bb58.i _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit: ; preds = %bb28.loopexit.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2159) tail call void @llvm.experimental.noalias.scope.decl(metadata !2162) tail call void @llvm.experimental.noalias.scope.decl(metadata !2164) %126 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 64 %127 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 32 %128 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 96 %129 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 192 %130 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 160 %131 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 224 br label %bb30.i62 bb30.i62: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit, %bb30.i62 %iter.sroa.104.01903.i63 = phi i64 [ %298, %bb30.i62 ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 = shl nuw i64 %iter.sroa.104.01903.i63, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65 = getelementptr inbounds %"fft_simd::c64x4", ptr %scratch.0.i, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %start1.i.i.i.i.i.i.i66 = shl i64 %iter.sroa.104.01903.i63, 4 %data.i.i.i.i.i.i.i67 = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %start1.i.i.i.i.i.i.i66 %data.i.i.i.i.i.i.i.i.i68 = getelementptr inbounds %"fft_simd::c64x4", ptr %131, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i69 = getelementptr inbounds %"fft_simd::c64x4", ptr %129, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i70 = getelementptr inbounds %"fft_simd::c64x4", ptr %130, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71 = getelementptr inbounds %"fft_simd::c64x4", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72 = getelementptr inbounds %"fft_simd::c64x4", ptr %128, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73 = getelementptr inbounds %"fft_simd::c64x4", ptr %126, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74 = getelementptr inbounds %"fft_simd::c64x4", ptr %127, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64 %start1.i.i.i.i.i75 = shl i64 %iter.sroa.104.01903.i63, 3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 1 %w1.01788.i76 = load <2 x float>, ptr %132, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 1, i32 1 %w1.11789.i77 = load <2 x float>, ptr %133, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 2 %w2.01790.i78 = load <2 x float>, ptr %134, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 2, i32 1 %w2.11791.i79 = load <2 x float>, ptr %135, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 3 %w3.01792.i80 = load <2 x float>, ptr %136, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 3, i32 1 %w3.11793.i81 = load <2 x float>, ptr %137, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 4 %w4.01794.i82 = load <2 x float>, ptr %138, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 4, i32 1 %w4.11795.i83 = load <2 x float>, ptr %139, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 5 %w5.01796.i84 = load <2 x float>, ptr %140, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 5, i32 1 %w5.11797.i85 = load <2 x float>, ptr %141, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 6 %w6.01798.i86 = load <2 x float>, ptr %142, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %143 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 6, i32 1 %w6.11799.i87 = load <2 x float>, ptr %143, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 7 %w7.01800.i88 = load <2 x float>, ptr %144, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0.i, i64 %start1.i.i.i.i.i75, i64 7, i32 1 %w7.11801.i89 = load <2 x float>, ptr %145, align 8, !alias.scope !2164, !noalias !2166, !noundef !3 %value.i138.sroa.0.0.vec.expand.i90 = shufflevector <2 x float> %w1.01788.i76, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vec.expand.i91 = shufflevector <2 x float> %w1.11789.i77, <2 x float> poison, <4 x i32> %value.i138.sroa.0.8.vecblend.i92 = shufflevector <4 x float> %value.i138.sroa.0.0.vec.expand.i90, <4 x float> %value.i138.sroa.0.8.vec.expand.i91, <4 x i32> %146 = bitcast <4 x float> %value.i138.sroa.0.8.vecblend.i92 to <2 x double> %value.i134.sroa.0.0.vec.expand.i94 = shufflevector <2 x float> %w2.01790.i78, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vec.expand.i95 = shufflevector <2 x float> %w2.11791.i79, <2 x float> poison, <4 x i32> %value.i134.sroa.0.8.vecblend.i96 = shufflevector <4 x float> %value.i134.sroa.0.0.vec.expand.i94, <4 x float> %value.i134.sroa.0.8.vec.expand.i95, <4 x i32> %147 = bitcast <4 x float> %value.i134.sroa.0.8.vecblend.i96 to <2 x double> %value.i130.sroa.0.0.vec.expand.i98 = shufflevector <2 x float> %w3.01792.i80, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vec.expand.i99 = shufflevector <2 x float> %w3.11793.i81, <2 x float> poison, <4 x i32> %value.i130.sroa.0.8.vecblend.i100 = shufflevector <4 x float> %value.i130.sroa.0.0.vec.expand.i98, <4 x float> %value.i130.sroa.0.8.vec.expand.i99, <4 x i32> %148 = bitcast <4 x float> %value.i130.sroa.0.8.vecblend.i100 to <2 x double> %value.i126.sroa.0.0.vec.expand.i102 = shufflevector <2 x float> %w4.01794.i82, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vec.expand.i103 = shufflevector <2 x float> %w4.11795.i83, <2 x float> poison, <4 x i32> %value.i126.sroa.0.8.vecblend.i104 = shufflevector <4 x float> %value.i126.sroa.0.0.vec.expand.i102, <4 x float> %value.i126.sroa.0.8.vec.expand.i103, <4 x i32> %149 = bitcast <4 x float> %value.i126.sroa.0.8.vecblend.i104 to <2 x double> %value.i122.sroa.0.0.vec.expand.i106 = shufflevector <2 x float> %w5.01796.i84, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vec.expand.i107 = shufflevector <2 x float> %w5.11797.i85, <2 x float> poison, <4 x i32> %value.i122.sroa.0.8.vecblend.i108 = shufflevector <4 x float> %value.i122.sroa.0.0.vec.expand.i106, <4 x float> %value.i122.sroa.0.8.vec.expand.i107, <4 x i32> %150 = bitcast <4 x float> %value.i122.sroa.0.8.vecblend.i108 to <2 x double> %value.i118.sroa.0.0.vec.expand.i110 = shufflevector <2 x float> %w6.01798.i86, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vec.expand.i111 = shufflevector <2 x float> %w6.11799.i87, <2 x float> poison, <4 x i32> %value.i118.sroa.0.8.vecblend.i112 = shufflevector <4 x float> %value.i118.sroa.0.0.vec.expand.i110, <4 x float> %value.i118.sroa.0.8.vec.expand.i111, <4 x i32> %151 = bitcast <4 x float> %value.i118.sroa.0.8.vecblend.i112 to <2 x double> %value.i114.sroa.0.0.vec.expand.i114 = shufflevector <2 x float> %w7.01800.i88, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vec.expand.i115 = shufflevector <2 x float> %w7.11801.i89, <2 x float> poison, <4 x i32> %value.i114.sroa.0.8.vecblend.i116 = shufflevector <4 x float> %value.i114.sroa.0.0.vec.expand.i114, <4 x float> %value.i114.sroa.0.8.vec.expand.i115, <4 x i32> %152 = bitcast <4 x float> %value.i114.sroa.0.8.vecblend.i116 to <2 x double> %153 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 8 %154 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 4 %155 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 2 %156 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 6 %157 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 12 %158 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 10 %159 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 14 %160 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> zeroinitializer %161 = shufflevector <2 x double> %146, <2 x double> poison, <8 x i32> %162 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> zeroinitializer %163 = shufflevector <2 x double> %147, <2 x double> poison, <8 x i32> %164 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> zeroinitializer %165 = shufflevector <2 x double> %148, <2 x double> poison, <8 x i32> %166 = shufflevector <2 x double> %149, <2 x double> poison, <8 x i32> zeroinitializer %167 = shufflevector <2 x double> %149, <2 x double> poison, <8 x i32> %168 = shufflevector <2 x double> %150, <2 x double> poison, <8 x i32> zeroinitializer %169 = shufflevector <2 x double> %150, <2 x double> poison, <8 x i32> %170 = shufflevector <2 x double> %151, <2 x double> poison, <8 x i32> zeroinitializer %171 = shufflevector <2 x double> %151, <2 x double> poison, <8 x i32> %172 = shufflevector <2 x double> %152, <2 x double> poison, <8 x i32> zeroinitializer %173 = shufflevector <2 x double> %152, <2 x double> poison, <8 x i32> %y0.sroa.0.0.copyload.i136 = load <8 x double>, ptr %data.i.i.i.i.i.i.i67, align 8, !alias.scope !2162, !noalias !2167 %_131.sroa.0.0.copyload.i137 = load <8 x double>, ptr %155, align 8, !alias.scope !2162, !noalias !2167 %174 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i137, <8 x double> poison, <8 x i32> %175 = fmul <8 x double> %161, %174 %_4.i213 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %_131.sroa.0.0.copyload.i137, <8 x double> %175, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i139 = load <8 x double>, ptr %154, align 8, !alias.scope !2162, !noalias !2167 %176 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i139, <8 x double> poison, <8 x i32> %177 = fmul <8 x double> %163, %176 %_4.i212 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %_133.sroa.0.0.copyload.i139, <8 x double> %177, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i141 = load <8 x double>, ptr %156, align 8, !alias.scope !2162, !noalias !2167 %178 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i141, <8 x double> poison, <8 x i32> %179 = fmul <8 x double> %165, %178 %_4.i211 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %_135.sroa.0.0.copyload.i141, <8 x double> %179, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i143 = load <8 x double>, ptr %153, align 8, !alias.scope !2162, !noalias !2167 %180 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i143, <8 x double> poison, <8 x i32> %181 = fmul <8 x double> %167, %180 %_4.i210 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %_137.sroa.0.0.copyload.i143, <8 x double> %181, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i145 = load <8 x double>, ptr %158, align 8, !alias.scope !2162, !noalias !2167 %182 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i145, <8 x double> poison, <8 x i32> %183 = fmul <8 x double> %169, %182 %_4.i209 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %_139.sroa.0.0.copyload.i145, <8 x double> %183, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i147 = load <8 x double>, ptr %157, align 8, !alias.scope !2162, !noalias !2167 %184 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i147, <8 x double> poison, <8 x i32> %185 = fmul <8 x double> %171, %184 %_4.i208 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %_141.sroa.0.0.copyload.i147, <8 x double> %185, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i149 = load <8 x double>, ptr %159, align 8, !alias.scope !2162, !noalias !2167 %186 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i149, <8 x double> poison, <8 x i32> %187 = fmul <8 x double> %173, %186 %_4.i207 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %_143.sroa.0.0.copyload.i149, <8 x double> %187, i32 noundef 4) #23 %188 = fadd <8 x double> %y0.sroa.0.0.copyload.i136, %_4.i210 %189 = fsub <8 x double> %y0.sroa.0.0.copyload.i136, %_4.i210 %190 = fadd <8 x double> %_4.i212, %_4.i208 %191 = fsub <8 x double> %_4.i212, %_4.i208 %192 = bitcast <8 x double> %191 to <8 x i64> %193 = xor <8 x i64> %192, %194 = fadd <8 x double> %_4.i213, %_4.i209 %195 = fsub <8 x double> %_4.i213, %_4.i209 %196 = fadd <8 x double> %_4.i211, %_4.i207 %197 = fsub <8 x double> %_4.i211, %_4.i207 %198 = bitcast <8 x double> %197 to <8 x i64> %199 = xor <8 x i64> %198, %200 = fadd <8 x double> %188, %190 %201 = fadd <8 x double> %194, %196 %202 = fadd <8 x double> %200, %201 store <8 x double> %202, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65, align 8, !alias.scope !2159, !noalias !2168 %203 = fsub <8 x double> %200, %201 store <8 x double> %203, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71, align 8, !alias.scope !2159, !noalias !2168 %204 = bitcast <8 x i64> %193 to <8 x double> %205 = shufflevector <8 x double> %204, <8 x double> poison, <8 x i32> %206 = fsub <8 x double> %189, %205 %207 = bitcast <8 x i64> %199 to <8 x double> %208 = shufflevector <8 x double> %207, <8 x double> poison, <8 x i32> %209 = fsub <8 x double> %195, %208 %210 = bitcast <8 x double> %209 to <8 x i64> %211 = xor <8 x i64> %210, %212 = bitcast <8 x i64> %211 to <8 x double> %213 = shufflevector <8 x double> %212, <8 x double> poison, <8 x i32> %214 = fadd <8 x double> %209, %213 %215 = fmul <8 x double> %214, %216 = fadd <8 x double> %206, %215 store <8 x double> %216, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74, align 8, !alias.scope !2159, !noalias !2168 %217 = fsub <8 x double> %206, %215 store <8 x double> %217, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i70, align 8, !alias.scope !2159, !noalias !2168 %218 = fsub <8 x double> %188, %190 %219 = fsub <8 x double> %194, %196 %220 = bitcast <8 x double> %219 to <8 x i64> %221 = xor <8 x i64> %220, %222 = bitcast <8 x i64> %221 to <8 x double> %223 = shufflevector <8 x double> %222, <8 x double> poison, <8 x i32> %224 = fsub <8 x double> %218, %223 store <8 x double> %224, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73, align 8, !alias.scope !2159, !noalias !2168 %225 = fadd <8 x double> %218, %223 store <8 x double> %225, ptr %data.i.i.i.i.i.i.i.i.i.i.i69, align 8, !alias.scope !2159, !noalias !2168 %226 = fadd <8 x double> %189, %205 %227 = fadd <8 x double> %195, %208 %228 = bitcast <8 x double> %227 to <8 x i64> %229 = xor <8 x i64> %228, %230 = bitcast <8 x i64> %229 to <8 x double> %231 = shufflevector <8 x double> %230, <8 x double> poison, <8 x i32> %232 = fadd <8 x double> %227, %231 %233 = fmul <8 x double> %232, %234 = fsub <8 x double> %226, %233 store <8 x double> %234, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72, align 8, !alias.scope !2159, !noalias !2168 %235 = fadd <8 x double> %226, %233 store <8 x double> %235, ptr %data.i.i.i.i.i.i.i.i.i68, align 8, !alias.scope !2159, !noalias !2168 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i120.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i121.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i122.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i123.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i124.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i125.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i70, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i126.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i.i.i69, i64 1 %_3.i.i.i.i.i.i.i.i.i127.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i.i.i68, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i128.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i129.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i130.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i131.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i132.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 9 %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i133.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 11 %_3.i.i.i.i.i.i.i35.i.i.i.i134.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 13 %_3.i.i.i.i.i38.i.i.i.i135.1 = getelementptr inbounds %"fft_simd::c64x4", ptr %data.i.i.i.i.i.i.i67, i64 15 %y0.sroa.0.0.copyload.i136.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i128.1, align 8, !alias.scope !2162, !noalias !2167 %_131.sroa.0.0.copyload.i137.1 = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i129.1, align 8, !alias.scope !2162, !noalias !2167 %236 = shufflevector <8 x double> %_131.sroa.0.0.copyload.i137.1, <8 x double> poison, <8 x i32> %237 = fmul <8 x double> %161, %236 %_4.i213.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %160, <8 x double> %_131.sroa.0.0.copyload.i137.1, <8 x double> %237, i32 noundef 4) #23 %_133.sroa.0.0.copyload.i139.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i130.1, align 8, !alias.scope !2162, !noalias !2167 %238 = shufflevector <8 x double> %_133.sroa.0.0.copyload.i139.1, <8 x double> poison, <8 x i32> %239 = fmul <8 x double> %163, %238 %_4.i212.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %162, <8 x double> %_133.sroa.0.0.copyload.i139.1, <8 x double> %239, i32 noundef 4) #23 %_135.sroa.0.0.copyload.i141.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i131.1, align 8, !alias.scope !2162, !noalias !2167 %240 = shufflevector <8 x double> %_135.sroa.0.0.copyload.i141.1, <8 x double> poison, <8 x i32> %241 = fmul <8 x double> %165, %240 %_4.i211.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %164, <8 x double> %_135.sroa.0.0.copyload.i141.1, <8 x double> %241, i32 noundef 4) #23 %_137.sroa.0.0.copyload.i143.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i132.1, align 8, !alias.scope !2162, !noalias !2167 %242 = shufflevector <8 x double> %_137.sroa.0.0.copyload.i143.1, <8 x double> poison, <8 x i32> %243 = fmul <8 x double> %167, %242 %_4.i210.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %166, <8 x double> %_137.sroa.0.0.copyload.i143.1, <8 x double> %243, i32 noundef 4) #23 %_139.sroa.0.0.copyload.i145.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i133.1, align 8, !alias.scope !2162, !noalias !2167 %244 = shufflevector <8 x double> %_139.sroa.0.0.copyload.i145.1, <8 x double> poison, <8 x i32> %245 = fmul <8 x double> %169, %244 %_4.i209.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %168, <8 x double> %_139.sroa.0.0.copyload.i145.1, <8 x double> %245, i32 noundef 4) #23 %_141.sroa.0.0.copyload.i147.1 = load <8 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i134.1, align 8, !alias.scope !2162, !noalias !2167 %246 = shufflevector <8 x double> %_141.sroa.0.0.copyload.i147.1, <8 x double> poison, <8 x i32> %247 = fmul <8 x double> %171, %246 %_4.i208.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %170, <8 x double> %_141.sroa.0.0.copyload.i147.1, <8 x double> %247, i32 noundef 4) #23 %_143.sroa.0.0.copyload.i149.1 = load <8 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i135.1, align 8, !alias.scope !2162, !noalias !2167 %248 = shufflevector <8 x double> %_143.sroa.0.0.copyload.i149.1, <8 x double> poison, <8 x i32> %249 = fmul <8 x double> %173, %248 %_4.i207.1 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %172, <8 x double> %_143.sroa.0.0.copyload.i149.1, <8 x double> %249, i32 noundef 4) #23 %250 = fadd <8 x double> %y0.sroa.0.0.copyload.i136.1, %_4.i210.1 %251 = fsub <8 x double> %y0.sroa.0.0.copyload.i136.1, %_4.i210.1 %252 = fadd <8 x double> %_4.i212.1, %_4.i208.1 %253 = fsub <8 x double> %_4.i212.1, %_4.i208.1 %254 = bitcast <8 x double> %253 to <8 x i64> %255 = xor <8 x i64> %254, %256 = fadd <8 x double> %_4.i213.1, %_4.i209.1 %257 = fsub <8 x double> %_4.i213.1, %_4.i209.1 %258 = fadd <8 x double> %_4.i211.1, %_4.i207.1 %259 = fsub <8 x double> %_4.i211.1, %_4.i207.1 %260 = bitcast <8 x double> %259 to <8 x i64> %261 = xor <8 x i64> %260, %262 = fadd <8 x double> %250, %252 %263 = fadd <8 x double> %256, %258 %264 = fadd <8 x double> %262, %263 store <8 x double> %264, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i120.1, align 8, !alias.scope !2159, !noalias !2168 %265 = fsub <8 x double> %262, %263 store <8 x double> %265, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i124.1, align 8, !alias.scope !2159, !noalias !2168 %266 = bitcast <8 x i64> %255 to <8 x double> %267 = shufflevector <8 x double> %266, <8 x double> poison, <8 x i32> %268 = fsub <8 x double> %251, %267 %269 = bitcast <8 x i64> %261 to <8 x double> %270 = shufflevector <8 x double> %269, <8 x double> poison, <8 x i32> %271 = fsub <8 x double> %257, %270 %272 = bitcast <8 x double> %271 to <8 x i64> %273 = xor <8 x i64> %272, %274 = bitcast <8 x i64> %273 to <8 x double> %275 = shufflevector <8 x double> %274, <8 x double> poison, <8 x i32> %276 = fadd <8 x double> %271, %275 %277 = fmul <8 x double> %276, %278 = fadd <8 x double> %268, %277 store <8 x double> %278, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i121.1, align 8, !alias.scope !2159, !noalias !2168 %279 = fsub <8 x double> %268, %277 store <8 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i125.1, align 8, !alias.scope !2159, !noalias !2168 %280 = fsub <8 x double> %250, %252 %281 = fsub <8 x double> %256, %258 %282 = bitcast <8 x double> %281 to <8 x i64> %283 = xor <8 x i64> %282, %284 = bitcast <8 x i64> %283 to <8 x double> %285 = shufflevector <8 x double> %284, <8 x double> poison, <8 x i32> %286 = fsub <8 x double> %280, %285 store <8 x double> %286, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i122.1, align 8, !alias.scope !2159, !noalias !2168 %287 = fadd <8 x double> %280, %285 store <8 x double> %287, ptr %_3.i.i.i.i.i.i.i.i.i.i.i126.1, align 8, !alias.scope !2159, !noalias !2168 %288 = fadd <8 x double> %251, %267 %289 = fadd <8 x double> %257, %270 %290 = bitcast <8 x double> %289 to <8 x i64> %291 = xor <8 x i64> %290, %292 = bitcast <8 x i64> %291 to <8 x double> %293 = shufflevector <8 x double> %292, <8 x double> poison, <8 x i32> %294 = fadd <8 x double> %289, %293 %295 = fmul <8 x double> %294, %296 = fsub <8 x double> %288, %295 store <8 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i123.1, align 8, !alias.scope !2159, !noalias !2168 %297 = fadd <8 x double> %288, %295 store <8 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i127.1, align 8, !alias.scope !2159, !noalias !2168 %298 = add nuw nsw i64 %iter.sroa.104.01903.i63, 1 %exitcond981.not = icmp eq i64 %298, 16 br i1 %exitcond981.not, label %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187, label %bb30.i62 _ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187: ; preds = %bb30.i62 tail call void @llvm.experimental.noalias.scope.decl(metadata !2169) tail call void @llvm.experimental.noalias.scope.decl(metadata !2172) tail call void @llvm.experimental.noalias.scope.decl(metadata !2174) %299 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 128 %300 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 64 %301 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 32 %302 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 96 %303 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 192 %304 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 160 %305 = getelementptr inbounds %"fft_simd::c64x4", ptr %w_init.0.i, i64 224 br label %bb23.i bb23.i: ; preds = %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187, %bb23.i %iter.sroa.106.01511.i = phi i64 [ %306, %bb23.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E.exit187 ] %306 = add nuw nsw i64 %iter.sroa.106.01511.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %buf.0.i, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %16, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i191 = getelementptr inbounds %"fft_simd::c64x4", ptr %15, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i192 = getelementptr inbounds %"fft_simd::c64x4", ptr %17, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i193 = getelementptr inbounds %"fft_simd::c64x4", ptr %8, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i194 = getelementptr inbounds %"fft_simd::c64x4", ptr %19, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i195 = getelementptr inbounds %"fft_simd::c64x4", ptr %18, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i196 = getelementptr inbounds %"fft_simd::c64x4", ptr %20, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %301, i64 %iter.sroa.106.01511.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %300, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %302, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %299, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %304, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x4", ptr %303, i64 %iter.sroa.106.01511.i %_3.i.i.i.i.i.i.i.i.i197 = getelementptr inbounds %"fft_simd::c64x4", ptr %305, i64 %iter.sroa.106.01511.i %w1.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i, align 8, !alias.scope !2174, !noalias !2176 %w2.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2174, !noalias !2176 %w3.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !alias.scope !2174, !noalias !2176 %w4.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !alias.scope !2174, !noalias !2176 %w5.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !alias.scope !2174, !noalias !2176 %w6.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i, align 8, !alias.scope !2174, !noalias !2176 %w7.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i.i.i197, align 8, !alias.scope !2174, !noalias !2176 %abcd_0.sroa.0.0.copyload.i = load <8 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !alias.scope !2172, !noalias !2177 %307 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 1 %efgh_0.sroa.0.0.copyload.i = load <8 x double>, ptr %307, align 8, !alias.scope !2172, !noalias !2177 %308 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 2 %abcd_1.sroa.0.0.copyload.i = load <8 x double>, ptr %308, align 8, !alias.scope !2172, !noalias !2177 %309 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 3 %efgh_1.sroa.0.0.copyload.i = load <8 x double>, ptr %309, align 8, !alias.scope !2172, !noalias !2177 %310 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 4 %abcd_2.sroa.0.0.copyload.i = load <8 x double>, ptr %310, align 8, !alias.scope !2172, !noalias !2177 %311 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 5 %efgh_2.sroa.0.0.copyload.i = load <8 x double>, ptr %311, align 8, !alias.scope !2172, !noalias !2177 %312 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 6 %abcd_3.sroa.0.0.copyload.i = load <8 x double>, ptr %312, align 8, !alias.scope !2172, !noalias !2177 %313 = getelementptr inbounds [8 x %"fft_simd::c64x4"], ptr %scratch.0.i, i64 %iter.sroa.106.01511.i, i64 7 %efgh_3.sroa.0.0.copyload.i = load <8 x double>, ptr %313, align 8, !alias.scope !2172, !noalias !2177 %314 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %315 = shufflevector <8 x double> %abcd_0.sroa.0.0.copyload.i, <8 x double> %abcd_1.sroa.0.0.copyload.i, <8 x i32> %316 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %317 = shufflevector <8 x double> %abcd_2.sroa.0.0.copyload.i, <8 x double> %abcd_3.sroa.0.0.copyload.i, <8 x i32> %318 = shufflevector <8 x double> %314, <8 x double> %316, <8 x i32> %319 = shufflevector <8 x double> %314, <8 x double> %316, <8 x i32> %320 = shufflevector <8 x double> %315, <8 x double> %317, <8 x i32> %321 = shufflevector <8 x double> %315, <8 x double> %317, <8 x i32> %322 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %323 = shufflevector <8 x double> %efgh_0.sroa.0.0.copyload.i, <8 x double> %efgh_1.sroa.0.0.copyload.i, <8 x i32> %324 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %325 = shufflevector <8 x double> %efgh_2.sroa.0.0.copyload.i, <8 x double> %efgh_3.sroa.0.0.copyload.i, <8 x i32> %326 = shufflevector <8 x double> %322, <8 x double> %324, <8 x i32> %327 = shufflevector <8 x double> %322, <8 x double> %324, <8 x i32> %328 = shufflevector <8 x double> %323, <8 x double> %325, <8 x i32> %329 = shufflevector <8 x double> %323, <8 x double> %325, <8 x i32> %330 = shufflevector <8 x double> %320, <8 x double> poison, <8 x i32> %331 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %332 = shufflevector <8 x double> %w1.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %333 = fmul <8 x double> %332, %330 %_4.i220 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %331, <8 x double> %320, <8 x double> %333, i32 noundef 4) #23 %334 = shufflevector <8 x double> %319, <8 x double> poison, <8 x i32> %335 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %336 = shufflevector <8 x double> %w2.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %337 = fmul <8 x double> %336, %334 %_4.i219 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %335, <8 x double> %319, <8 x double> %337, i32 noundef 4) #23 %338 = shufflevector <8 x double> %321, <8 x double> poison, <8 x i32> %339 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %340 = shufflevector <8 x double> %w3.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %341 = fmul <8 x double> %340, %338 %_4.i218 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %339, <8 x double> %321, <8 x double> %341, i32 noundef 4) #23 %342 = shufflevector <8 x double> %326, <8 x double> poison, <8 x i32> %343 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %344 = shufflevector <8 x double> %w4.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %345 = fmul <8 x double> %344, %342 %_4.i217 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %343, <8 x double> %326, <8 x double> %345, i32 noundef 4) #23 %346 = shufflevector <8 x double> %328, <8 x double> poison, <8 x i32> %347 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %348 = shufflevector <8 x double> %w5.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %349 = fmul <8 x double> %348, %346 %_4.i216 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %347, <8 x double> %328, <8 x double> %349, i32 noundef 4) #23 %350 = shufflevector <8 x double> %327, <8 x double> poison, <8 x i32> %351 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %352 = shufflevector <8 x double> %w6.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %353 = fmul <8 x double> %352, %350 %_4.i215 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %351, <8 x double> %327, <8 x double> %353, i32 noundef 4) #23 %354 = shufflevector <8 x double> %329, <8 x double> poison, <8 x i32> %355 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %356 = shufflevector <8 x double> %w7.sroa.0.0.copyload.i, <8 x double> poison, <8 x i32> %357 = fmul <8 x double> %356, %354 %_4.i214 = tail call <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double> %355, <8 x double> %329, <8 x double> %357, i32 noundef 4) #23 %358 = fadd <8 x double> %318, %_4.i217 %359 = fsub <8 x double> %318, %_4.i217 %360 = fadd <8 x double> %_4.i219, %_4.i215 %361 = fsub <8 x double> %_4.i219, %_4.i215 %362 = bitcast <8 x double> %361 to <8 x i64> %363 = xor <8 x i64> %362, %364 = fadd <8 x double> %_4.i220, %_4.i216 %365 = fsub <8 x double> %_4.i220, %_4.i216 %366 = fadd <8 x double> %_4.i218, %_4.i214 %367 = fsub <8 x double> %_4.i218, %_4.i214 %368 = bitcast <8 x double> %367 to <8 x i64> %369 = xor <8 x i64> %368, %370 = fadd <8 x double> %358, %360 %371 = fadd <8 x double> %364, %366 %372 = fadd <8 x double> %370, %371 store <8 x double> %372, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2169, !noalias !2178 %373 = fsub <8 x double> %370, %371 store <8 x double> %373, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i193, align 8, !alias.scope !2169, !noalias !2178 %374 = bitcast <8 x i64> %363 to <8 x double> %375 = shufflevector <8 x double> %374, <8 x double> poison, <8 x i32> %376 = fsub <8 x double> %359, %375 %377 = bitcast <8 x i64> %369 to <8 x double> %378 = shufflevector <8 x double> %377, <8 x double> poison, <8 x i32> %379 = fsub <8 x double> %365, %378 %380 = bitcast <8 x double> %379 to <8 x i64> %381 = xor <8 x i64> %380, %382 = bitcast <8 x i64> %381 to <8 x double> %383 = shufflevector <8 x double> %382, <8 x double> poison, <8 x i32> %384 = fadd <8 x double> %379, %383 %385 = fmul <8 x double> %384, %386 = fadd <8 x double> %376, %385 store <8 x double> %386, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2169, !noalias !2178 %387 = fsub <8 x double> %376, %385 store <8 x double> %387, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i194, align 8, !alias.scope !2169, !noalias !2178 %388 = fsub <8 x double> %358, %360 %389 = fsub <8 x double> %364, %366 %390 = bitcast <8 x double> %389 to <8 x i64> %391 = xor <8 x i64> %390, %392 = bitcast <8 x i64> %391 to <8 x double> %393 = shufflevector <8 x double> %392, <8 x double> poison, <8 x i32> %394 = fsub <8 x double> %388, %393 store <8 x double> %394, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i191, align 8, !alias.scope !2169, !noalias !2178 %395 = fadd <8 x double> %388, %393 store <8 x double> %395, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i195, align 8, !alias.scope !2169, !noalias !2178 %396 = fadd <8 x double> %359, %375 %397 = fadd <8 x double> %365, %378 %398 = bitcast <8 x double> %397 to <8 x i64> %399 = xor <8 x i64> %398, %400 = bitcast <8 x i64> %399 to <8 x double> %401 = shufflevector <8 x double> %400, <8 x double> poison, <8 x i32> %402 = fadd <8 x double> %397, %401 %403 = fmul <8 x double> %402, %404 = fsub <8 x double> %396, %403 store <8 x double> %404, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i192, align 8, !alias.scope !2169, !noalias !2178 %405 = fadd <8 x double> %396, %403 store <8 x double> %405, ptr %_3.i.i.i.i.i.i.i.i.i.i.i196, align 8, !alias.scope !2169, !noalias !2178 %exitcond.not.i200 = icmp eq i64 %306, 32 br i1 %exitcond.not.i200, label %_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit, label %bb23.i _ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE.exit: ; preds = %bb23.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2139 ret void } ; bytemuck::internal::something_went_wrong ; Function Attrs: cold noinline noreturn nonlazybind uwtable define internal fastcc void @_ZN8bytemuck8internal20something_went_wrong17h088492779cc28148E(ptr noalias noundef nonnull readonly align 1 %0, i64 noundef %1, i8 noundef %2) unnamed_addr #5 personality ptr @rust_eh_personality { start: %_8 = alloca [2 x %"core::fmt::rt::Argument<'_>"], align 8 %_4 = alloca %"core::fmt::Arguments<'_>", align 8 %_err = alloca i8, align 1 %_src = alloca { ptr, i64 }, align 8 store ptr %0, ptr %_src, align 8 %3 = getelementptr inbounds i8, ptr %_src, i64 8 store i64 %1, ptr %3, align 8 store i8 %2, ptr %_err, align 1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %_8) store ptr %_src, ptr %_8, align 8 %4 = getelementptr inbounds i8, ptr %_8, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %4, align 8 %5 = getelementptr inbounds [2 x %"core::fmt::rt::Argument<'_>"], ptr %_8, i64 0, i64 1 store ptr %_err, ptr %5, align 8 %6 = getelementptr inbounds [2 x %"core::fmt::rt::Argument<'_>"], ptr %_8, i64 0, i64 1, i32 1 store ptr @"_ZN61_$LT$bytemuck..PodCastError$u20$as$u20$core..fmt..Display$GT$3fmt17h2c201cc7938c20d4E", ptr %6, align 8 store ptr @alloc_cf29c7f9d2677151c3c3b4d187597802, ptr %_4, align 8 %7 = getelementptr inbounds i8, ptr %_4, i64 8 store i64 2, ptr %7, align 8 %8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4, i64 0, i32 2 store ptr null, ptr %8, align 8 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4, i64 0, i32 1 store ptr %_8, ptr %9, align 8 %10 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4, i64 0, i32 1, i32 1 store i64 2, ptr %10, align 8 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_18bad253193bf95ffbb763d7477c2a5c) #22 unreachable } ; concrete_fft::fft_simd::init_wt ; Function Attrs: nonlazybind uwtable define internal fastcc void @_ZN12concrete_fft8fft_simd7init_wt17ha286b79974ecae66E(i64 noundef %r, i64 noundef %n, ptr noalias noundef nonnull writeonly align 8 %w.0, i64 noundef %w.1, ptr noalias nocapture noundef nonnull writeonly align 8 %w_inv.0, i64 noundef %w_inv.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_5 = icmp ult i64 %n, %r br i1 %_5, label %bb17, label %bb3 bb3: ; preds = %start %nr = udiv i64 %n, %r %_9 = uitofp i64 %n to double %theta = fdiv double -2.000000e+00, %_9 %end_or_len = getelementptr inbounds %"num_complex::Complex", ptr %w.0, i64 %w.1 %0 = icmp eq i64 %w.1, 0 br i1 %0, label %bb18.lr.ph, label %bb6.preheader bb6.preheader: ; preds = %bb3 %1 = add i64 %w.1, 1152921504606846975 %2 = and i64 %1, 1152921504606846975 %3 = add nuw nsw i64 %2, 1 %min.iters.check = icmp ult i64 %2, 15 br i1 %min.iters.check, label %bb6.preheader67, label %vector.ph vector.ph: ; preds = %bb6.preheader %n.vec = and i64 %3, 2305843009213693936 %4 = shl i64 %n.vec, 4 %ind.end = getelementptr i8, ptr %w.0, i64 %4 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %5 = shl i64 %index, 4 %next.gep = getelementptr i8, ptr %w.0, i64 %5 %6 = shl i64 %index, 4 %7 = or disjoint i64 %6, 64 %next.gep57 = getelementptr i8, ptr %w.0, i64 %7 %8 = shl i64 %index, 4 %9 = or disjoint i64 %8, 128 %next.gep58 = getelementptr i8, ptr %w.0, i64 %9 %10 = shl i64 %index, 4 %11 = or disjoint i64 %10, 192 %next.gep59 = getelementptr i8, ptr %w.0, i64 %11 store <8 x double> , ptr %next.gep, align 8 store <8 x double> , ptr %next.gep57, align 8 store <8 x double> , ptr %next.gep58, align 8 store <8 x double> , ptr %next.gep59, align 8 %index.next = add nuw i64 %index, 16 %12 = icmp eq i64 %index.next, %n.vec br i1 %12, label %middle.block, label %vector.body, !llvm.loop !2179 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %3, %n.vec br i1 %cmp.n, label %bb18.lr.ph, label %bb6.preheader67 bb6.preheader67: ; preds = %bb6.preheader, %middle.block %iter.sroa.0.027.ph = phi ptr [ %w.0, %bb6.preheader ], [ %ind.end, %middle.block ] br label %bb6 bb18.lr.ph: ; preds = %bb6, %middle.block, %bb3 %_6728 = icmp ugt i64 %r, 1 br i1 %_6728, label %bb18.us, label %bb17 bb18.us: ; preds = %bb18.lr.ph, %bb9.bb8.loopexit_crit_edge.us %iter2.sroa.0.031.us = phi i64 [ %_0.i.us, %bb9.bb8.loopexit_crit_edge.us ], [ 0, %bb18.lr.ph ] %_0.i.us = add nuw i64 %iter2.sroa.0.031.us, 1 %_41.us = mul i64 %iter2.sroa.0.031.us, %r %_40.us = add i64 %_41.us, %n br label %bb21.us bb21.us: ; preds = %bb18.us, %bb16.us %iter4.sroa.0.029.us = phi i64 [ 1, %bb18.us ], [ %_0.i17.us, %bb16.us ] %_0.i17.us = add nuw i64 %iter4.sroa.0.029.us, 1 %_31.us = mul i64 %iter4.sroa.0.029.us, %iter2.sroa.0.031.us %_30.us = uitofp i64 %_31.us to double %_29.us = fmul double %theta, %_30.us %az.i.us = fmul double %_29.us, 0.000000e+00 %13 = tail call double @llvm.fabs.f64(double %_29.us) %_5.i.us = fcmp olt double %13, 0x4340000000000000 %.az.i.us = select i1 %_5.i.us, double %_29.us, double %az.i.us %self1.i18.us = fadd double %.az.i.us, %.az.i.us %14 = tail call double @llvm.round.f64(double %self1.i18.us) %i.i.us = tail call i64 @llvm.fptosi.sat.i64.f64(double %14) %15 = tail call double @llvm.fma.f64(double %14, double -5.000000e-01, double %.az.i.us) %s3.i.us = fmul double %15, %15 %16 = tail call double @llvm.fma.f64(double %s3.i.us, double 0xBF1B2F223DF6F197, double 0x3F5F9CE1F05EB467) %17 = tail call double @llvm.fma.f64(double %16, double %s3.i.us, double 0xBF9A6D1EEEE76526) %18 = tail call double @llvm.fma.f64(double %17, double %s3.i.us, double 0x3FCE1F506868296A) %19 = tail call double @llvm.fma.f64(double %18, double %s3.i.us, double 0xBFF55D3C7E3CB219) %20 = tail call double @llvm.fma.f64(double %19, double %s3.i.us, double 0x40103C1F081B5ABD) %21 = tail call double @llvm.fma.f64(double %20, double %s3.i.us, double 0xC013BD3CC9BE45DE) %22 = tail call double @llvm.fma.f64(double %21, double %s3.i.us, double 1.000000e+00) %23 = tail call double @llvm.fma.f64(double %s3.i.us, double 0x3F3E3EED5CE53E6A, double 0xBF7E30063A029A73) %24 = tail call double @llvm.fma.f64(double %23, double %s3.i.us, double 0x3FB50782FCA38B8E) %25 = tail call double @llvm.fma.f64(double %24, double %s3.i.us, double 0xBFE32D2CCE2D535E) %26 = tail call double @llvm.fma.f64(double %25, double %s3.i.us, double 0x400466BC67758706) %27 = tail call double @llvm.fma.f64(double %26, double %s3.i.us, double 0xC014ABBCE625BE3E) %s16.i.us = fmul double %15, %s3.i.us %28 = fmul double %s16.i.us, %27 %29 = tail call double @llvm.fma.f64(double %15, double 0x400921FB54442D18, double %28) %_45.i.us = and i64 %i.i.us, 2 %30 = icmp eq i64 %_45.i.us, 0 %31 = fsub double 0.000000e+00, %29 %32 = fsub double 0.000000e+00, %22 %c.0.i.us = select i1 %30, double %22, double %32 %s.0.i.us = select i1 %30, double %29, double %31 %_48.i.us = and i64 %i.i.us, 1 %33 = icmp eq i64 %_48.i.us, 0 %t18.i.us = fsub double 0.000000e+00, %s.0.i.us %c.1.i.us = select i1 %33, double %c.0.i.us, double %t18.i.us %s.1.i.us = select i1 %33, double %s.0.i.us, double %c.0.i.us %34 = tail call double @llvm.floor.f64(double %.az.i.us) %_52.i.us = fcmp oeq double %.az.i.us, %34 %s.2.i.us = select i1 %_52.i.us, double %az.i.us, double %s.1.i.us %_35.us = mul i64 %iter4.sroa.0.029.us, %nr %_34.us = add i64 %_35.us, %iter2.sroa.0.031.us %_37.us = icmp ult i64 %_34.us, %w.1 br i1 %_37.us, label %bb11.us, label %panic8, !prof !2180 bb11.us: ; preds = %bb21.us %35 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 %_34.us store double %c.1.i.us, ptr %35, align 8 %36 = getelementptr inbounds i8, ptr %35, i64 8 store double %s.2.i.us, ptr %36, align 8 %_39.us = add i64 %_40.us, %iter4.sroa.0.029.us %_43.us = icmp ult i64 %_39.us, %w.1 br i1 %_43.us, label %bb12.us, label %panic9, !prof !2180 bb12.us: ; preds = %bb11.us %37 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 %_39.us store double %c.1.i.us, ptr %37, align 8 %38 = getelementptr inbounds i8, ptr %37, i64 8 store double %s.2.i.us, ptr %38, align 8 %_0.i2.i.us = fneg double %s.2.i.us %_47.us = icmp ult i64 %_34.us, %w_inv.1 br i1 %_47.us, label %bb14.us, label %panic10, !prof !2180 bb14.us: ; preds = %bb12.us %39 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %w_inv.0, i64 0, i64 %_34.us store double %c.1.i.us, ptr %39, align 8 %40 = getelementptr inbounds i8, ptr %39, i64 8 store double %_0.i2.i.us, ptr %40, align 8 %_51.us = icmp ult i64 %_39.us, %w_inv.1 br i1 %_51.us, label %bb16.us, label %panic11, !prof !2180 bb16.us: ; preds = %bb14.us %41 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %w_inv.0, i64 0, i64 %_39.us store double %c.1.i.us, ptr %41, align 8 %42 = getelementptr inbounds i8, ptr %41, i64 8 store double %_0.i2.i.us, ptr %42, align 8 %exitcond.not = icmp eq i64 %_0.i17.us, %r br i1 %exitcond.not, label %bb9.bb8.loopexit_crit_edge.us, label %bb21.us bb9.bb8.loopexit_crit_edge.us: ; preds = %bb16.us %_60.us = icmp ult i64 %_0.i.us, %nr br i1 %_60.us, label %bb18.us, label %bb17 bb6: ; preds = %bb6.preheader67, %bb6 %iter.sroa.0.027 = phi ptr [ %_30.i, %bb6 ], [ %iter.sroa.0.027.ph, %bb6.preheader67 ] %_30.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.sroa.0.027, i64 1 store <2 x double> , ptr %iter.sroa.0.027, align 8 %43 = icmp eq ptr %_30.i, %end_or_len br i1 %43, label %bb18.lr.ph, label %bb6, !llvm.loop !2181 bb17: ; preds = %bb9.bb8.loopexit_crit_edge.us, %bb18.lr.ph, %start ret void panic8: ; preds = %bb21.us ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %_34.us, i64 noundef %w.1, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_ac6499bda0a6edeb36850752072117d5) #22 unreachable panic9: ; preds = %bb11.us ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %_39.us, i64 noundef %w.1, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9037f2f7beb4e9378318d7782c7cab43) #22 unreachable panic10: ; preds = %bb12.us ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %_34.us, i64 noundef %w_inv.1, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_69e2b79a2a1494ce77b87493ac41f924) #22 unreachable panic11: ; preds = %bb14.us ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %_39.us, i64 noundef %w_inv.1, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_a691f5a32a904158f67ac58a49ef8f4e) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h02163e5cfee57332E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2182 store i64 256, ptr %n.i, align 8, !noalias !2182 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2182 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2182 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2182 store ptr null, ptr %_16.i, align 8, !noalias !2182 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2182 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2182 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2182 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2182 store ptr null, ptr %_24.i, align 8, !noalias !2182 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2182 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2182 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2182 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2182 store ptr null, ptr %_32.i, align 8, !noalias !2182 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2182 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2182 store i64 %w.1, ptr %_34.i, align 8, !noalias !2182 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2182 store ptr null, ptr %_40.i, align 8, !noalias !2182 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2182 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !2185 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !2185 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !2185 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !2185 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !2185 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !2185 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !2185 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !2185 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !2185 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fsub <4 x double> %75, %80 %92 = fadd <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fadd <4 x double> %75, %80 %96 = fsub <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fsub <4 x double> %83, %88 %100 = fadd <4 x double> %84, %87 %101 = fsub <4 x double> %99, %100 %102 = fadd <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fadd <4 x double> %83, %88 %108 = fsub <4 x double> %84, %87 %109 = fadd <4 x double> %108, %107 %110 = fsub <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !2185 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !2185 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !2185 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !2185 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !2185 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !2185 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !2185 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !2185 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !2185 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !2185 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !2185 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !2185 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !2185 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !2185 %141 = fsub <4 x double> %93, %106 %142 = fadd <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !2185 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !2185 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !2185 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !2185 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !2185 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !2185 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !2185 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !2185 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !2185 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !2185 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !2185 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !2185 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !2185 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !2185 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !2185 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !2185 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !2185 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !2185 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !2185 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !2185 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !2185 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !2185 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !2185 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !2185 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !2185 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !2185 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !2185 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !2185 %205 = fadd <4 x double> %93, %106 %206 = fsub <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !2185 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !2185 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !2185 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !2185 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !2185 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !2185 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !2185 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !2185 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !2185 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !2185 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !2185 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !2185 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !2185 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !2185 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 32 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089, label %vector.body, !llvm.loop !2188 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 br label %bb32.i.i.i154 vector.body118: ; preds = %middle.block36, %vector.body118 %index119 = phi i64 [ %index.next136, %vector.body118 ], [ 0, %middle.block36 ] %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index119 %246 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index119 %247 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index119 %248 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index119 %wide.vec120 = load <8 x double>, ptr %245, align 8, !noalias !2182 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %246, align 8, !noalias !2182 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %wide.vec126 = load <8 x double>, ptr %247, align 8, !noalias !2182 %strided.vec127 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %strided.vec128 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %wide.vec129 = load <8 x double>, ptr %248, align 8, !noalias !2182 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %249 = fadd <4 x double> %strided.vec121, %strided.vec127 %250 = fadd <4 x double> %strided.vec122, %strided.vec128 %251 = fsub <4 x double> %strided.vec121, %strided.vec127 %252 = fsub <4 x double> %strided.vec122, %strided.vec128 %253 = fadd <4 x double> %strided.vec124, %strided.vec130 %254 = fadd <4 x double> %strided.vec125, %strided.vec131 %255 = fsub <4 x double> %strided.vec124, %strided.vec130 %256 = fsub <4 x double> %strided.vec125, %strided.vec131 %257 = fadd <4 x double> %249, %253 %258 = fadd <4 x double> %250, %254 %259 = fsub <4 x double> %251, %256 %260 = fadd <4 x double> %252, %255 %261 = fsub <4 x double> %249, %253 %262 = fsub <4 x double> %250, %254 %263 = fadd <4 x double> %251, %256 %264 = fsub <4 x double> %252, %255 %interleaved.vec132 = shufflevector <4 x double> %257, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec132, ptr %245, align 8, !noalias !2182 %interleaved.vec133 = shufflevector <4 x double> %259, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec133, ptr %246, align 8, !noalias !2182 %interleaved.vec134 = shufflevector <4 x double> %261, <4 x double> %262, <8 x i32> store <8 x double> %interleaved.vec134, ptr %247, align 8, !noalias !2182 %interleaved.vec135 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec135, ptr %248, align 8, !noalias !2182 %index.next136 = add nuw i64 %index119, 4 %265 = icmp eq i64 %index.next136, 64 br i1 %265, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h5abb7de73f460705E.exit", label %vector.body118, !llvm.loop !2189 bb32.i.i.i154: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089, %middle.block36 %iter.i.i.i56.sroa.104.0123 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089 ], [ %388, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0123, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1115 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1120 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1125 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1130 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1135 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i1140 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i1145 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i1150 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %start1.i.i.i.i.i.i1153 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0123, 6 %data.i.i.i.i.i.i1154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1153 %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 32 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 16 %268 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 8 %269 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 24 %270 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 48 %271 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 40 %272 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 56 %273 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 7, i32 1 %w7.1.i.i.i186 = load double, ptr %273, align 8, !noalias !2182, !noundef !3 %_6.i.i.i.i387 = fneg double %w7.1.i.i.i186 %274 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 6, i32 1 %w6.1.i.i.i184 = load double, ptr %274, align 8, !noalias !2182, !noundef !3 %_6.i166.i.i.i382 = fneg double %w6.1.i.i.i184 %275 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 5, i32 1 %w5.1.i.i.i182 = load double, ptr %275, align 8, !noalias !2182, !noundef !3 %_6.i169.i.i.i377 = fneg double %w5.1.i.i.i182 %276 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 4, i32 1 %w4.1.i.i.i180 = load double, ptr %276, align 8, !noalias !2182, !noundef !3 %_6.i172.i.i.i372 = fneg double %w4.1.i.i.i180 %277 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 3, i32 1 %w3.1.i.i.i178 = load double, ptr %277, align 8, !noalias !2182, !noundef !3 %_6.i175.i.i.i367 = fneg double %w3.1.i.i.i178 %278 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 2, i32 1 %w2.1.i.i.i176 = load double, ptr %278, align 8, !noalias !2182, !noundef !3 %_6.i178.i.i.i362 = fneg double %w2.1.i.i.i176 %279 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 1, i32 1 %w1.1.i.i.i174 = load double, ptr %279, align 8, !noalias !2182, !noundef !3 %_6.i181.i.i.i357 = fneg double %w1.1.i.i.i174 %280 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 7 %w7.0.i.i.i185 = load double, ptr %280, align 8, !noalias !2182, !noundef !3 %281 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 6 %w6.0.i.i.i183 = load double, ptr %281, align 8, !noalias !2182, !noundef !3 %282 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 5 %w5.0.i.i.i181 = load double, ptr %282, align 8, !noalias !2182, !noundef !3 %283 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 4 %w4.0.i.i.i179 = load double, ptr %283, align 8, !noalias !2182, !noundef !3 %284 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 3 %w3.0.i.i.i177 = load double, ptr %284, align 8, !noalias !2182, !noundef !3 %285 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 2 %w2.0.i.i.i175 = load double, ptr %285, align 8, !noalias !2182, !noundef !3 %286 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 1 %w1.0.i.i.i173 = load double, ptr %286, align 8, !noalias !2182, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i357, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i173, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i174, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i362, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i175, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i176, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i367, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i177, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i178, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i372, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i179, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i180, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i377, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i181, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i182, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i382, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i183, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i184, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i387, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i185, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i186, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i154 %index41 = phi i64 [ 0, %bb32.i.i.i154 ], [ %index.next113, %vector.body40 ] %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1115, i64 %index41 %288 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1120, i64 %index41 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1125, i64 %index41 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1130, i64 %index41 %291 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1135, i64 %index41 %292 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1140, i64 %index41 %293 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1145, i64 %index41 %294 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1150, i64 %index41 %wide.vec42 = load <8 x double>, ptr %287, align 8, !noalias !2182 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %288, align 8, !noalias !2182 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %289, align 8, !noalias !2182 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %290, align 8, !noalias !2182 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %291, align 8, !noalias !2182 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %292, align 8, !noalias !2182 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %293, align 8, !noalias !2182 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %294, align 8, !noalias !2182 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %295 = fadd <4 x double> %strided.vec43, %strided.vec55 %296 = fadd <4 x double> %strided.vec44, %strided.vec56 %297 = fsub <4 x double> %strided.vec43, %strided.vec55 %298 = fsub <4 x double> %strided.vec44, %strided.vec56 %299 = fadd <4 x double> %strided.vec49, %strided.vec61 %300 = fadd <4 x double> %strided.vec50, %strided.vec62 %301 = fsub <4 x double> %strided.vec49, %strided.vec61 %302 = fsub <4 x double> %strided.vec50, %strided.vec62 %303 = fadd <4 x double> %strided.vec46, %strided.vec58 %304 = fadd <4 x double> %strided.vec47, %strided.vec59 %305 = fsub <4 x double> %strided.vec46, %strided.vec58 %306 = fsub <4 x double> %strided.vec47, %strided.vec59 %307 = fadd <4 x double> %strided.vec52, %strided.vec64 %308 = fadd <4 x double> %strided.vec53, %strided.vec65 %309 = fsub <4 x double> %strided.vec52, %strided.vec64 %310 = fsub <4 x double> %strided.vec53, %strided.vec65 %311 = fadd <4 x double> %295, %299 %312 = fadd <4 x double> %296, %300 %313 = fsub <4 x double> %297, %302 %314 = fadd <4 x double> %298, %301 %315 = fsub <4 x double> %295, %299 %316 = fsub <4 x double> %296, %300 %317 = fadd <4 x double> %297, %302 %318 = fsub <4 x double> %298, %301 %319 = fadd <4 x double> %303, %307 %320 = fadd <4 x double> %304, %308 %321 = fsub <4 x double> %305, %310 %322 = fadd <4 x double> %306, %309 %323 = fsub <4 x double> %321, %322 %324 = fadd <4 x double> %322, %321 %325 = fmul <4 x double> %323, %326 = fmul <4 x double> %324, %327 = fsub <4 x double> %303, %307 %328 = fsub <4 x double> %304, %308 %329 = fadd <4 x double> %305, %310 %330 = fsub <4 x double> %306, %309 %331 = fadd <4 x double> %330, %329 %332 = fsub <4 x double> %330, %329 %333 = fmul <4 x double> %331, %334 = fmul <4 x double> %332, %335 = fadd <4 x double> %311, %319 %336 = fadd <4 x double> %312, %320 %337 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 %index41 %interleaved.vec = shufflevector <4 x double> %335, <4 x double> %336, <8 x i32> store <8 x double> %interleaved.vec, ptr %337, align 8, !noalias !2182 %338 = fadd <4 x double> %313, %325 %339 = fadd <4 x double> %314, %326 %340 = fmul <4 x double> %339, %broadcast.splat %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %338, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat69, %338 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %339, <4 x double> %342) %344 = getelementptr inbounds %"num_complex::Complex", ptr %268, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %341, <4 x double> %343, <8 x i32> store <8 x double> %interleaved.vec70, ptr %344, align 8, !noalias !2182 %345 = fsub <4 x double> %315, %328 %346 = fadd <4 x double> %316, %327 %347 = fmul <4 x double> %346, %broadcast.splat72 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %345, <4 x double> %347) %349 = fmul <4 x double> %broadcast.splat76, %345 %350 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %346, <4 x double> %349) %351 = getelementptr inbounds %"num_complex::Complex", ptr %267, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %348, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec77, ptr %351, align 8, !noalias !2182 %352 = fsub <4 x double> %317, %333 %353 = fsub <4 x double> %318, %334 %354 = fmul <4 x double> %353, %broadcast.splat79 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %352, <4 x double> %354) %356 = fmul <4 x double> %broadcast.splat83, %352 %357 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %353, <4 x double> %356) %358 = getelementptr inbounds %"num_complex::Complex", ptr %269, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %355, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec84, ptr %358, align 8, !noalias !2182 %359 = fsub <4 x double> %311, %319 %360 = fsub <4 x double> %312, %320 %361 = fmul <4 x double> %360, %broadcast.splat86 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %359, <4 x double> %361) %363 = fmul <4 x double> %broadcast.splat90, %359 %364 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %360, <4 x double> %363) %365 = getelementptr inbounds %"num_complex::Complex", ptr %266, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %362, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec91, ptr %365, align 8, !noalias !2182 %366 = fsub <4 x double> %313, %325 %367 = fsub <4 x double> %314, %326 %368 = fmul <4 x double> %367, %broadcast.splat93 %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %366, <4 x double> %368) %370 = fmul <4 x double> %broadcast.splat97, %366 %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %367, <4 x double> %370) %372 = getelementptr inbounds %"num_complex::Complex", ptr %271, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %369, <4 x double> %371, <8 x i32> store <8 x double> %interleaved.vec98, ptr %372, align 8, !noalias !2182 %373 = fadd <4 x double> %315, %328 %374 = fsub <4 x double> %316, %327 %375 = fmul <4 x double> %374, %broadcast.splat100 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %broadcast.splat104, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %374, <4 x double> %377) %379 = getelementptr inbounds %"num_complex::Complex", ptr %270, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %376, <4 x double> %378, <8 x i32> store <8 x double> %interleaved.vec105, ptr %379, align 8, !noalias !2182 %380 = fadd <4 x double> %317, %333 %381 = fadd <4 x double> %318, %334 %382 = fmul <4 x double> %381, %broadcast.splat107 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %380, <4 x double> %382) %384 = fmul <4 x double> %broadcast.splat111, %380 %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %381, <4 x double> %384) %386 = getelementptr inbounds %"num_complex::Complex", ptr %272, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %383, <4 x double> %385, <8 x i32> store <8 x double> %interleaved.vec112, ptr %386, align 8, !noalias !2182 %index.next113 = add nuw i64 %index41, 4 %387 = icmp eq i64 %index.next113, 8 br i1 %387, label %middle.block36, label %vector.body40, !llvm.loop !2190 middle.block36: ; preds = %vector.body40 %388 = add nuw nsw i64 %iter.i.i.i56.sroa.104.0123, 1 %exitcond127.not = icmp eq i64 %388, 4 br i1 %exitcond127.not, label %vector.body118, label %bb32.i.i.i154 "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h5abb7de73f460705E.exit": ; preds = %vector.body118 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2182 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0303cb4b9cd38ca7E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2191 store i64 8, ptr %n.i.i, align 8, !noalias !2191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2191 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2191 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2191 store ptr null, ptr %_16.i.i, align 8, !noalias !2191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2191 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2191 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2191 store ptr null, ptr %_24.i.i, align 8, !noalias !2191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2191 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2191 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2191 store ptr null, ptr %_32.i.i, align 8, !noalias !2191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2191 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2191 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2191 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h58419a5537a4f4b0E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2191 store ptr null, ptr %_40.i.i, align 8, !noalias !2191 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h58419a5537a4f4b0E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2191 tail call void @llvm.experimental.noalias.scope.decl(metadata !2196) tail call void @llvm.experimental.noalias.scope.decl(metadata !2199) tail call void @llvm.experimental.noalias.scope.decl(metadata !2201) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !2196, !noalias !2203 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !2196, !noalias !2203 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !2201, !noalias !2204 %4 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %5 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = shufflevector <4 x double> %5, <4 x double> poison, <4 x i32> %7 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = fmul <4 x double> %8, %6 %10 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %7, <4 x double> %5, <4 x double> %9) #23 %11 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> store <4 x double> %11, ptr %scratch.0, align 8, !alias.scope !2199, !noalias !2205 %12 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> %13 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %12, ptr %13, align 8, !alias.scope !2199, !noalias !2205 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2196, !noalias !2203 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2196, !noalias !2203 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !2201, !noalias !2204 %14 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %b.sroa.0.0.copyload.i.1.i %15 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %b.sroa.0.0.copyload.i.1.i %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %18 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %19 = fmul <4 x double> %18, %16 %20 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %17, <4 x double> %15, <4 x double> %19) #23 %21 = shufflevector <4 x double> %14, <4 x double> %20, <4 x i32> store <4 x double> %21, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2199, !noalias !2205 %22 = shufflevector <4 x double> %14, <4 x double> %20, <4 x i32> %23 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %22, ptr %23, align 8, !alias.scope !2199, !noalias !2205 %24 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %24, align 8, !alias.scope !2206, !noalias !2209, !noundef !3 %25 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %25, align 8, !alias.scope !2206, !noalias !2209, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %26 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %27 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %28 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> zeroinitializer %29 = fadd <4 x double> %11, %21 %30 = fsub <4 x double> %11, %21 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = fmul <4 x double> %31, %28 %33 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %27, <4 x double> %30, <4 x double> %32) #23 %34 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.us.i.1.i = load double, ptr %34, align 8, !alias.scope !2206, !noalias !2209, !noundef !3 %35 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %35, align 8, !alias.scope !2206, !noalias !2209, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %36 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %37 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %38 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> zeroinitializer %39 = fadd <4 x double> %12, %22 %40 = fsub <4 x double> %12, %22 %41 = shufflevector <4 x double> %40, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %41, %38 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %40, <4 x double> %42) #23 %44 = fadd <4 x double> %29, %39 %45 = fsub <4 x double> %29, %39 store <4 x double> %44, ptr %buf.0, align 8, !noalias !2191 store <4 x double> %45, ptr %2, align 8, !noalias !2191 %46 = fadd <4 x double> %33, %43 %47 = fsub <4 x double> %33, %43 store <4 x double> %46, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2191 store <4 x double> %47, ptr %_3.i2.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2191 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2191 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h03d9fb3a6be50066E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2212 store i64 32, ptr %n.i.i, align 8, !noalias !2212 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2212 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2212 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2212 store ptr null, ptr %_16.i.i, align 8, !noalias !2212 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2212 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2212 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2212 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2212 store ptr null, ptr %_24.i.i, align 8, !noalias !2212 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2212 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2212 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2212 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2212 store ptr null, ptr %_32.i.i, align 8, !noalias !2212 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2212 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2212 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2212 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h53d55315def54accE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2212 store ptr null, ptr %_40.i.i, align 8, !noalias !2212 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h53d55315def54accE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2212 tail call void @llvm.experimental.noalias.scope.decl(metadata !2217) tail call void @llvm.experimental.noalias.scope.decl(metadata !2220) tail call void @llvm.experimental.noalias.scope.decl(metadata !2222) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !2222, !noalias !2224 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !2222, !noalias !2224 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !2222, !noalias !2224 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !2217, !noalias !2225 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !2217, !noalias !2225 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !2217, !noalias !2225 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !2217, !noalias !2225 %8 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %9 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %11 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = fsub <4 x double> %8, %10 %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %23, <4 x double> %27) #23 %29 = fadd <4 x double> %9, %15 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %36 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> store <4 x double> %35, ptr %scratch.0, align 8, !alias.scope !2220, !noalias !2226 %37 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %36, ptr %37, align 8, !alias.scope !2220, !noalias !2226 %38 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %39 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> %40 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %38, ptr %40, align 8, !alias.scope !2220, !noalias !2226 %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %39, ptr %41, align 8, !alias.scope !2220, !noalias !2226 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2222, !noalias !2224 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2222, !noalias !2224 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !2222, !noalias !2224 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2217, !noalias !2225 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2217, !noalias !2225 %c.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2217, !noalias !2225 %d.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2217, !noalias !2225 %42 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %43 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %44 = fadd <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %45 = fsub <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %42, %44 %51 = fsub <4 x double> %43, %49 %52 = shufflevector <4 x double> %51, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %54 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %54, %52 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %53, <4 x double> %51, <4 x double> %55) #23 %57 = fsub <4 x double> %42, %44 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fadd <4 x double> %43, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %70 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> store <4 x double> %69, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2220, !noalias !2226 %71 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %70, ptr %71, align 8, !alias.scope !2220, !noalias !2226 %72 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %73 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> %74 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 2 store <4 x double> %72, ptr %74, align 8, !alias.scope !2220, !noalias !2226 %75 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 3 store <4 x double> %73, ptr %75, align 8, !alias.scope !2220, !noalias !2226 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2 %_3.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %_3.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2222, !noalias !2224 %w2.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2222, !noalias !2224 %w3.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !2222, !noalias !2224 %a.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2217, !noalias !2225 %b.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2217, !noalias !2225 %c.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2217, !noalias !2225 %d.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2217, !noalias !2225 %76 = fadd <4 x double> %a.sroa.0.0.copyload.i.2.i, %c.sroa.0.0.copyload.i.2.i %77 = fsub <4 x double> %a.sroa.0.0.copyload.i.2.i, %c.sroa.0.0.copyload.i.2.i %78 = fadd <4 x double> %b.sroa.0.0.copyload.i.2.i, %d.sroa.0.0.copyload.i.2.i %79 = fsub <4 x double> %b.sroa.0.0.copyload.i.2.i, %d.sroa.0.0.copyload.i.2.i %80 = bitcast <4 x double> %79 to <4 x i64> %81 = xor <4 x i64> %80, %82 = bitcast <4 x i64> %81 to <4 x double> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = fadd <4 x double> %76, %78 %85 = fsub <4 x double> %77, %83 %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %88 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %89 = fmul <4 x double> %88, %86 %90 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %85, <4 x double> %89) #23 %91 = fsub <4 x double> %76, %78 %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %94 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %95 = fmul <4 x double> %94, %92 %96 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %93, <4 x double> %91, <4 x double> %95) #23 %97 = fadd <4 x double> %77, %83 %98 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> %99 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %100 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %98 %102 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %97, <4 x double> %101) #23 %103 = shufflevector <4 x double> %84, <4 x double> %90, <4 x i32> %104 = shufflevector <4 x double> %96, <4 x double> %102, <4 x i32> store <4 x double> %103, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2220, !noalias !2226 %105 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 1 store <4 x double> %104, ptr %105, align 8, !alias.scope !2220, !noalias !2226 %106 = shufflevector <4 x double> %84, <4 x double> %90, <4 x i32> %107 = shufflevector <4 x double> %96, <4 x double> %102, <4 x i32> %108 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 2 store <4 x double> %106, ptr %108, align 8, !alias.scope !2220, !noalias !2226 %109 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 3 store <4 x double> %107, ptr %109, align 8, !alias.scope !2220, !noalias !2226 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2222, !noalias !2224 %w2.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2222, !noalias !2224 %w3.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !2222, !noalias !2224 %a.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2217, !noalias !2225 %b.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2217, !noalias !2225 %c.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2217, !noalias !2225 %d.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2217, !noalias !2225 %110 = fadd <4 x double> %a.sroa.0.0.copyload.i.3.i, %c.sroa.0.0.copyload.i.3.i %111 = fsub <4 x double> %a.sroa.0.0.copyload.i.3.i, %c.sroa.0.0.copyload.i.3.i %112 = fadd <4 x double> %b.sroa.0.0.copyload.i.3.i, %d.sroa.0.0.copyload.i.3.i %113 = fsub <4 x double> %b.sroa.0.0.copyload.i.3.i, %d.sroa.0.0.copyload.i.3.i %114 = bitcast <4 x double> %113 to <4 x i64> %115 = xor <4 x i64> %114, %116 = bitcast <4 x i64> %115 to <4 x double> %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fadd <4 x double> %110, %112 %119 = fsub <4 x double> %111, %117 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> %121 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %122 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %123 = fmul <4 x double> %122, %120 %124 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %119, <4 x double> %123) #23 %125 = fsub <4 x double> %110, %112 %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %128 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %128, %126 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %125, <4 x double> %129) #23 %131 = fadd <4 x double> %111, %117 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %134 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %134, %132 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %133, <4 x double> %131, <4 x double> %135) #23 %137 = shufflevector <4 x double> %118, <4 x double> %124, <4 x i32> %138 = shufflevector <4 x double> %130, <4 x double> %136, <4 x i32> store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2220, !noalias !2226 %139 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 1 store <4 x double> %138, ptr %139, align 8, !alias.scope !2220, !noalias !2226 %140 = shufflevector <4 x double> %118, <4 x double> %124, <4 x i32> %141 = shufflevector <4 x double> %130, <4 x double> %136, <4 x i32> %142 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 2 store <4 x double> %140, ptr %142, align 8, !alias.scope !2220, !noalias !2226 %143 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 3 store <4 x double> %141, ptr %143, align 8, !alias.scope !2220, !noalias !2226 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %144, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %145, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %146, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %147, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %148, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %149, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %150 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %151 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %152 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %153 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %151, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> zeroinitializer %159 = fadd <4 x double> %35, %103 %160 = fsub <4 x double> %35, %103 %161 = fadd <4 x double> %69, %137 %162 = fsub <4 x double> %69, %137 %163 = bitcast <4 x double> %162 to <4 x i64> %164 = xor <4 x i64> %163, %165 = bitcast <4 x i64> %164 to <4 x double> %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = fadd <4 x double> %159, %161 %168 = fsub <4 x double> %160, %166 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = fmul <4 x double> %169, %154 %171 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %168, <4 x double> %170) #23 %172 = fsub <4 x double> %159, %161 %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fmul <4 x double> %173, %156 %175 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %172, <4 x double> %174) #23 %176 = fadd <4 x double> %160, %166 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %177, %158 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %176, <4 x double> %178) #23 %180 = fadd <4 x double> %36, %104 %181 = fsub <4 x double> %36, %104 %182 = fadd <4 x double> %70, %138 %183 = fsub <4 x double> %70, %138 %184 = bitcast <4 x double> %183 to <4 x i64> %185 = xor <4 x i64> %184, %186 = bitcast <4 x i64> %185 to <4 x double> %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = fadd <4 x double> %180, %182 %189 = fsub <4 x double> %181, %187 %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %190, %154 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %189, <4 x double> %191) #23 %193 = fsub <4 x double> %180, %182 %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %156 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %193, <4 x double> %195) #23 %197 = fadd <4 x double> %181, %187 %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = fmul <4 x double> %198, %158 %200 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %197, <4 x double> %199) #23 %201 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.1.i = load double, ptr %201, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %202 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %202, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %203 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2 %w2.0.us.i.1.i = load double, ptr %203, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %204 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %204, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %205 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3 %w3.0.us.i.1.i = load double, ptr %205, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %206 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %206, align 8, !alias.scope !2227, !noalias !2230, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %207 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %208 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %209 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %210 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %211 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> zeroinitializer %212 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %213 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> zeroinitializer %214 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %215 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> zeroinitializer %216 = fadd <4 x double> %38, %106 %217 = fsub <4 x double> %38, %106 %218 = fadd <4 x double> %72, %140 %219 = fsub <4 x double> %72, %140 %220 = bitcast <4 x double> %219 to <4 x i64> %221 = xor <4 x i64> %220, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fadd <4 x double> %216, %218 %225 = fsub <4 x double> %217, %223 %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %226, %211 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %225, <4 x double> %227) #23 %229 = fsub <4 x double> %216, %218 %230 = shufflevector <4 x double> %229, <4 x double> poison, <4 x i32> %231 = fmul <4 x double> %230, %213 %232 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %229, <4 x double> %231) #23 %233 = fadd <4 x double> %217, %223 %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = fmul <4 x double> %234, %215 %236 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %214, <4 x double> %233, <4 x double> %235) #23 %237 = fadd <4 x double> %39, %107 %238 = fsub <4 x double> %39, %107 %239 = fadd <4 x double> %73, %141 %240 = fsub <4 x double> %73, %141 %241 = bitcast <4 x double> %240 to <4 x i64> %242 = xor <4 x i64> %241, %243 = bitcast <4 x i64> %242 to <4 x double> %244 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> %245 = fadd <4 x double> %237, %239 %246 = fsub <4 x double> %238, %244 %247 = shufflevector <4 x double> %246, <4 x double> poison, <4 x i32> %248 = fmul <4 x double> %247, %211 %249 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %246, <4 x double> %248) #23 %250 = fsub <4 x double> %237, %239 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fmul <4 x double> %251, %213 %253 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %250, <4 x double> %252) #23 %254 = fadd <4 x double> %238, %244 %255 = shufflevector <4 x double> %254, <4 x double> poison, <4 x i32> %256 = fmul <4 x double> %255, %215 %257 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %214, <4 x double> %254, <4 x double> %256) #23 %258 = fadd <4 x double> %167, %224 %259 = fsub <4 x double> %167, %224 store <4 x double> %258, ptr %buf.0, align 8, !noalias !2212 store <4 x double> %259, ptr %2, align 8, !noalias !2212 %260 = fadd <4 x double> %188, %245 %261 = fsub <4 x double> %188, %245 store <4 x double> %260, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2212 store <4 x double> %261, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2212 %262 = fadd <4 x double> %171, %228 %263 = fsub <4 x double> %171, %228 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2212 store <4 x double> %263, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2212 %264 = fadd <4 x double> %192, %249 %265 = fsub <4 x double> %192, %249 store <4 x double> %264, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2212 store <4 x double> %265, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2212 %266 = fadd <4 x double> %175, %232 %267 = fsub <4 x double> %175, %232 store <4 x double> %266, ptr %3, align 8, !noalias !2212 store <4 x double> %267, ptr %4, align 8, !noalias !2212 %268 = fadd <4 x double> %196, %253 %269 = fsub <4 x double> %196, %253 store <4 x double> %268, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2212 store <4 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2212 %270 = fadd <4 x double> %179, %236 %271 = fsub <4 x double> %179, %236 store <4 x double> %270, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2212 store <4 x double> %271, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2212 %272 = fadd <4 x double> %200, %257 %273 = fsub <4 x double> %200, %257 store <4 x double> %272, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2212 store <4 x double> %273, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2212 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2212 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h03f97eb99d26eb6eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h508d8ece8b956cf3E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0422ff1d6363fdb6E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2233 store i64 16, ptr %n.i.i, align 8, !noalias !2233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2233 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2233 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2233 store ptr null, ptr %_16.i.i, align 8, !noalias !2233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2233 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2233 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2233 store ptr null, ptr %_24.i.i, align 8, !noalias !2233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2233 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2233 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2233 store ptr null, ptr %_32.i.i, align 8, !noalias !2233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2233 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2233 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h23b92ccb63cfb253E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2233 store ptr null, ptr %_40.i.i, align 8, !noalias !2233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h23b92ccb63cfb253E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2233 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !2238 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %6, align 8, !noalias !2238 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %5, align 8, !noalias !2238 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %7, align 8, !noalias !2238 %8 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = fsub <4 x double> %8, %10 %19 = fadd <4 x double> %9, %15 store <4 x double> %16, ptr %scratch.0, align 8, !noalias !2238 store <4 x double> %17, ptr %3, align 8, !noalias !2238 store <4 x double> %18, ptr %2, align 8, !noalias !2238 store <4 x double> %19, ptr %4, align 8, !noalias !2238 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2238 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2238 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !2238 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !2238 %20 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %21 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %22 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %23 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = fsub <4 x double> %20, %22 %31 = fadd <4 x double> %21, %27 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2238 store <4 x double> %29, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2238 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2238 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2238 tail call void @llvm.experimental.noalias.scope.decl(metadata !2242) tail call void @llvm.experimental.noalias.scope.decl(metadata !2245) %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %33 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %33, align 8, !alias.scope !2245, !noalias !2247 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %32, align 8, !alias.scope !2245, !noalias !2247 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %34, align 8, !alias.scope !2245, !noalias !2247 %35 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %36 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %37 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %39 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %40 = fmul <4 x double> %37, %39 %41 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %36, <4 x double> %40) #23 %42 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %43 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> %44 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %45 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %46 = fmul <4 x double> %43, %45 %47 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %44, <4 x double> %42, <4 x double> %46) #23 %48 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %51 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %52 = fmul <4 x double> %49, %51 %53 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %48, <4 x double> %52) #23 %54 = fadd <4 x double> %35, %47 %55 = fsub <4 x double> %35, %47 %56 = fadd <4 x double> %41, %53 %57 = fsub <4 x double> %41, %53 %58 = bitcast <4 x double> %57 to <4 x i64> %59 = xor <4 x i64> %58, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = fadd <4 x double> %54, %56 store <4 x double> %62, ptr %buf.0, align 8, !alias.scope !2242, !noalias !2249 %63 = fsub <4 x double> %55, %61 store <4 x double> %63, ptr %6, align 8, !alias.scope !2242, !noalias !2249 %64 = fsub <4 x double> %54, %56 store <4 x double> %64, ptr %5, align 8, !alias.scope !2242, !noalias !2249 %65 = fadd <4 x double> %55, %61 store <4 x double> %65, ptr %7, align 8, !alias.scope !2242, !noalias !2249 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2245, !noalias !2247 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2245, !noalias !2247 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !2245, !noalias !2247 %66 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %67 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %68 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> %69 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %70 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %71 = fmul <4 x double> %68, %70 %72 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %69, <4 x double> %67, <4 x double> %71) #23 %73 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %76 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %74, %76 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %73, <4 x double> %77) #23 %79 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %80 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %81 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %82 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %80, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %81, <4 x double> %79, <4 x double> %83) #23 %85 = fadd <4 x double> %66, %78 %86 = fsub <4 x double> %66, %78 %87 = fadd <4 x double> %72, %84 %88 = fsub <4 x double> %72, %84 %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2242, !noalias !2249 %94 = fsub <4 x double> %86, %92 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2242, !noalias !2249 %95 = fsub <4 x double> %85, %87 store <4 x double> %95, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !2242, !noalias !2249 %96 = fadd <4 x double> %86, %92 store <4 x double> %96, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !2242, !noalias !2249 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2233 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h06ac1d28c16f6e5cE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2250 store i64 1024, ptr %n.i.i, align 8, !noalias !2250 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2250 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2250 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2250 store ptr null, ptr %_16.i.i, align 8, !noalias !2250 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2250 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2250 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2250 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2250 store ptr null, ptr %_24.i.i, align 8, !noalias !2250 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2250 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2250 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2250 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2250 store ptr null, ptr %_32.i.i, align 8, !noalias !2250 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2250 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2250 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2250 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0cd7597888ae7560E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2250 store ptr null, ptr %_40.i.i, align 8, !noalias !2250 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0cd7597888ae7560E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2250 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 br label %bb13.i.i.i.i bb13.i.i.i.i: ; preds = %bb13.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0cd7597888ae7560E.exit.i" %iter.i.i.i.sroa.22.0239.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0cd7597888ae7560E.exit.i" ], [ %5, %bb13.i.i.i.i ] %5 = add nuw nsw i64 %iter.i.i.i.sroa.22.0239.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0239.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0239.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0239.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.22.0239.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2255 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2255 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2255 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2255 %6 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %7 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %8 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %10 = bitcast <4 x double> %9 to <4 x i64> %11 = xor <4 x i64> %10, %12 = bitcast <4 x i64> %11 to <4 x double> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = fadd <4 x double> %6, %8 %15 = fsub <4 x double> %7, %13 %16 = fsub <4 x double> %6, %8 %17 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2255 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2255 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2255 store <4 x double> %17, ptr %_3.i.i.i.i.i, align 8, !noalias !2255 %exitcond.not.i = icmp eq i64 %5, 128 br i1 %exitcond.not.i, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i", label %bb13.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i": ; preds = %bb13.i.i.i.i %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 tail call void @llvm.experimental.noalias.scope.decl(metadata !2259) tail call void @llvm.experimental.noalias.scope.decl(metadata !2262) tail call void @llvm.experimental.noalias.scope.decl(metadata !2264) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %21, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %22, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %23, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %24, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %25, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %26, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %27 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %28 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %33 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %36 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> zeroinitializer %37 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %38 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" ], [ %39, %bb38.us.i.i ] %39 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2262, !noalias !2267 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2262, !noalias !2267 %40 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %34, %40 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %41) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2262, !noalias !2267 %43 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %36, %43 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %44) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !2262, !noalias !2267 %46 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %47 = fmul <4 x double> %38, %46 %48 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %47) #23 %49 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %50 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %51 = fadd <4 x double> %42, %48 %52 = fsub <4 x double> %42, %48 %53 = bitcast <4 x double> %52 to <4 x i64> %54 = xor <4 x i64> %53, %55 = bitcast <4 x i64> %54 to <4 x double> %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = fadd <4 x double> %49, %51 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2259, !noalias !2268 %58 = fsub <4 x double> %50, %56 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2259, !noalias !2268 %59 = fsub <4 x double> %49, %51 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2259, !noalias !2268 %60 = fadd <4 x double> %50, %56 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2259, !noalias !2268 %exitcond.not.i.i = icmp eq i64 %39, 32 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i.1.i = load double, ptr %61, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %62, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i.1.i = load double, ptr %63, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %64, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i.1.i = load double, ptr %65, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %66, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %67 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %68 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %69 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %73 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %74 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer %75 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %76 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> zeroinitializer %77 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %78 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %79, %bb38.us.i.1.i ] %79 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2262, !noalias !2267 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2262, !noalias !2267 %80 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %74, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %73, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %81) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2262, !noalias !2267 %83 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %76, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %84) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !2262, !noalias !2267 %86 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %78, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %87) #23 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %91 = fadd <4 x double> %82, %88 %92 = fsub <4 x double> %82, %88 %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %89, %91 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2259, !noalias !2268 %98 = fsub <4 x double> %90, %96 store <4 x double> %98, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2259, !noalias !2268 %99 = fsub <4 x double> %89, %91 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2259, !noalias !2268 %100 = fadd <4 x double> %90, %96 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2259, !noalias !2268 %exitcond.not.i.1.i = icmp eq i64 %79, 32 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %data.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i.2.i = load double, ptr %101, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i.2.i = load double, ptr %102, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2 %w2.0.us.i.2.i = load double, ptr %103, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2, i32 1 %w2.1.us.i.2.i = load double, ptr %104, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %105 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3 %w3.0.us.i.2.i = load double, ptr %105, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %106 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3, i32 1 %w3.1.us.i.2.i = load double, ptr %106, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w1.0.us.i.2.i, i64 0 %107 = insertelement <4 x double> poison, double %w1.1.us.i.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w2.0.us.i.2.i, i64 0 %108 = insertelement <4 x double> poison, double %w2.1.us.i.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w3.0.us.i.2.i, i64 0 %109 = insertelement <4 x double> poison, double %w3.1.us.i.2.i, i64 0 %110 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %111 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %112 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %113 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <4 x double> %108, <4 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.2.i bb38.us.i.2.i: ; preds = %bb38.us.i.2.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter5.sroa.50.0694.us.i.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ], [ %119, %bb38.us.i.2.i ] %119 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %111, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %110, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %112, i64 %iter5.sroa.50.0694.us.i.2.i %a.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2262, !noalias !2267 %_84.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2262, !noalias !2267 %120 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %114, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> %121) #23 %_86.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2262, !noalias !2267 %123 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %116, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %115, <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> %124) #23 %_88.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.2.i, align 8, !alias.scope !2262, !noalias !2267 %126 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %118, %126 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %117, <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> %127) #23 %129 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %130 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %131 = fadd <4 x double> %122, %128 %132 = fsub <4 x double> %122, %128 %133 = bitcast <4 x double> %132 to <4 x i64> %134 = xor <4 x i64> %133, %135 = bitcast <4 x i64> %134 to <4 x double> %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fadd <4 x double> %129, %131 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2259, !noalias !2268 %138 = fsub <4 x double> %130, %136 store <4 x double> %138, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2259, !noalias !2268 %139 = fsub <4 x double> %129, %131 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2259, !noalias !2268 %140 = fadd <4 x double> %130, %136 store <4 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2259, !noalias !2268 %exitcond.not.i.2.i = icmp eq i64 %119, 32 br i1 %exitcond.not.i.2.i, label %bb36.bb20.loopexit_crit_edge.us.i.2.i, label %bb38.us.i.2.i bb36.bb20.loopexit_crit_edge.us.i.2.i: ; preds = %bb38.us.i.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i.3.i = load double, ptr %141, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i.3.i = load double, ptr %142, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2 %w2.0.us.i.3.i = load double, ptr %143, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2, i32 1 %w2.1.us.i.3.i = load double, ptr %144, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3 %w3.0.us.i.3.i = load double, ptr %145, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3, i32 1 %w3.1.us.i.3.i = load double, ptr %146, align 8, !alias.scope !2264, !noalias !2266, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w1.0.us.i.3.i, i64 0 %147 = insertelement <4 x double> poison, double %w1.1.us.i.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w2.0.us.i.3.i, i64 0 %148 = insertelement <4 x double> poison, double %w2.1.us.i.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w3.0.us.i.3.i, i64 0 %149 = insertelement <4 x double> poison, double %w3.1.us.i.3.i, i64 0 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %151 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %152 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %153 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.3.i bb38.us.i.3.i: ; preds = %bb38.us.i.3.i, %bb36.bb20.loopexit_crit_edge.us.i.2.i %iter5.sroa.50.0694.us.i.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.2.i ], [ %159, %bb38.us.i.3.i ] %159 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %151, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %150, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %152, i64 %iter5.sroa.50.0694.us.i.3.i %a.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2262, !noalias !2267 %_84.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2262, !noalias !2267 %160 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> %161) #23 %_86.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2262, !noalias !2267 %163 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %156, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> %164) #23 %_88.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.3.i, align 8, !alias.scope !2262, !noalias !2267 %166 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %167 = fmul <4 x double> %158, %166 %168 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> %167) #23 %169 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %170 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %171 = fadd <4 x double> %162, %168 %172 = fsub <4 x double> %162, %168 %173 = bitcast <4 x double> %172 to <4 x i64> %174 = xor <4 x i64> %173, %175 = bitcast <4 x i64> %174 to <4 x double> %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fadd <4 x double> %169, %171 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2259, !noalias !2268 %178 = fsub <4 x double> %170, %176 store <4 x double> %178, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2259, !noalias !2268 %179 = fsub <4 x double> %169, %171 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2259, !noalias !2268 %180 = fadd <4 x double> %170, %176 store <4 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2259, !noalias !2268 %exitcond.not.i.3.i = icmp eq i64 %159, 32 br i1 %exitcond.not.i.3.i, label %bb36.bb20.loopexit_crit_edge.us.i.3.i, label %bb38.us.i.3.i bb36.bb20.loopexit_crit_edge.us.i.3.i: ; preds = %bb38.us.i.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2269) tail call void @llvm.experimental.noalias.scope.decl(metadata !2272) tail call void @llvm.experimental.noalias.scope.decl(metadata !2274) br label %bb22.us.i66.i bb22.us.i66.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i100.i, %bb36.bb20.loopexit_crit_edge.us.i.3.i %iter.sroa.60.0707.us.i67.i = phi i64 [ %221, %bb36.bb20.loopexit_crit_edge.us.i100.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.3.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.i = shl i64 %iter.sroa.60.0707.us.i67.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.i %start1.i.i.i.i.i.i.us.i70.i = shl i64 %iter.sroa.60.0707.us.i67.i, 5 %data.i.i.i.i.i.i.us.i71.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i70.i %data.i.i.i.i.i.i.i.i.us.i72.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.i %data.i.i.i.i.i.i.i.i.i.i.us.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i68.i %start1.i.i.i.i.us.i75.i = shl i64 %iter.sroa.60.0707.us.i67.i, 4 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i75.i, i64 1 %w1.0.us.i76.i = load double, ptr %181, align 8, !alias.scope !2274, !noalias !2276, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i75.i, i64 1, i32 1 %w1.1.us.i77.i = load double, ptr %182, align 8, !alias.scope !2274, !noalias !2276, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i75.i, i64 2 %w2.0.us.i78.i = load double, ptr %183, align 8, !alias.scope !2274, !noalias !2276, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i75.i, i64 2, i32 1 %w2.1.us.i79.i = load double, ptr %184, align 8, !alias.scope !2274, !noalias !2276, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i75.i, i64 3 %w3.0.us.i80.i = load double, ptr %185, align 8, !alias.scope !2274, !noalias !2276, !noundef !3 %186 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i75.i, i64 3, i32 1 %w3.1.us.i81.i = load double, ptr %186, align 8, !alias.scope !2274, !noalias !2276, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i82.i = insertelement <2 x double> poison, double %w1.0.us.i76.i, i64 0 %187 = insertelement <4 x double> poison, double %w1.1.us.i77.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i83.i = insertelement <2 x double> poison, double %w2.0.us.i78.i, i64 0 %188 = insertelement <4 x double> poison, double %w2.1.us.i79.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i84.i = insertelement <2 x double> poison, double %w3.0.us.i80.i, i64 0 %189 = insertelement <4 x double> poison, double %w3.1.us.i81.i, i64 0 %190 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 16 %191 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 8 %192 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 24 %193 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i82.i, <2 x double> poison, <4 x i32> zeroinitializer %194 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> zeroinitializer %195 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i83.i, <2 x double> poison, <4 x i32> zeroinitializer %196 = shufflevector <4 x double> %188, <4 x double> poison, <4 x i32> zeroinitializer %197 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i84.i, <2 x double> poison, <4 x i32> zeroinitializer %198 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i85.i bb38.us.i85.i: ; preds = %bb38.us.i85.i, %bb22.us.i66.i %iter5.sroa.50.0694.us.i86.i = phi i64 [ 0, %bb22.us.i66.i ], [ %199, %bb38.us.i85.i ] %199 = add nuw nsw i64 %iter5.sroa.50.0694.us.i86.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i87.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i, i64 %iter5.sroa.50.0694.us.i86.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i88.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i74.i, i64 %iter5.sroa.50.0694.us.i86.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i89.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i73.i, i64 %iter5.sroa.50.0694.us.i86.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i90.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i72.i, i64 %iter5.sroa.50.0694.us.i86.i %_3.i.i.i.i.i.i.i.i.i.i.us.i91.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 %iter5.sroa.50.0694.us.i86.i %_3.i.i.i.i.i.i.i.i.us.i92.i = getelementptr inbounds %"fft_simd::c64x2", ptr %191, i64 %iter5.sroa.50.0694.us.i86.i %_3.i.i.i.i.i.i.us.i93.i = getelementptr inbounds %"fft_simd::c64x2", ptr %190, i64 %iter5.sroa.50.0694.us.i86.i %_3.i.i.i.i.us.i94.i = getelementptr inbounds %"fft_simd::c64x2", ptr %192, i64 %iter5.sroa.50.0694.us.i86.i %a.sroa.0.0.copyload.us.i95.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i91.i, align 8, !alias.scope !2272, !noalias !2277 %_84.sroa.0.0.copyload.us.i96.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i92.i, align 8, !alias.scope !2272, !noalias !2277 %200 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i96.i, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %194, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %_84.sroa.0.0.copyload.us.i96.i, <4 x double> %201) #23 %_86.sroa.0.0.copyload.us.i97.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i93.i, align 8, !alias.scope !2272, !noalias !2277 %203 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i97.i, <4 x double> poison, <4 x i32> %204 = fmul <4 x double> %196, %203 %205 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %195, <4 x double> %_86.sroa.0.0.copyload.us.i97.i, <4 x double> %204) #23 %_88.sroa.0.0.copyload.us.i98.i = load <4 x double>, ptr %_3.i.i.i.i.us.i94.i, align 8, !alias.scope !2272, !noalias !2277 %206 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i98.i, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %198, %206 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_88.sroa.0.0.copyload.us.i98.i, <4 x double> %207) #23 %209 = fadd <4 x double> %a.sroa.0.0.copyload.us.i95.i, %205 %210 = fsub <4 x double> %a.sroa.0.0.copyload.us.i95.i, %205 %211 = fadd <4 x double> %202, %208 %212 = fsub <4 x double> %202, %208 %213 = bitcast <4 x double> %212 to <4 x i64> %214 = xor <4 x i64> %213, %215 = bitcast <4 x i64> %214 to <4 x double> %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fadd <4 x double> %209, %211 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i87.i, align 8, !alias.scope !2269, !noalias !2278 %218 = fsub <4 x double> %210, %216 store <4 x double> %218, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i88.i, align 8, !alias.scope !2269, !noalias !2278 %219 = fsub <4 x double> %209, %211 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i89.i, align 8, !alias.scope !2269, !noalias !2278 %220 = fadd <4 x double> %210, %216 store <4 x double> %220, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i90.i, align 8, !alias.scope !2269, !noalias !2278 %exitcond.not.i99.i = icmp eq i64 %199, 8 br i1 %exitcond.not.i99.i, label %bb36.bb20.loopexit_crit_edge.us.i100.i, label %bb38.us.i85.i bb36.bb20.loopexit_crit_edge.us.i100.i: ; preds = %bb38.us.i85.i %221 = add nuw nsw i64 %iter.sroa.60.0707.us.i67.i, 1 %exitcond241.not.i = icmp eq i64 %221, 16 br i1 %exitcond241.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit102.i, label %bb22.us.i66.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit102.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i100.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2279) tail call void @llvm.experimental.noalias.scope.decl(metadata !2282) tail call void @llvm.experimental.noalias.scope.decl(metadata !2284) br label %bb22.us.i122.i bb22.us.i122.i: ; preds = %bb22.us.i122.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit102.i %iter.sroa.60.0707.us.i123.i = phi i64 [ %282, %bb22.us.i122.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit102.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i124.i = shl nuw i64 %iter.sroa.60.0707.us.i123.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i124.i %start1.i.i.i.i.i.i.us.i126.i = shl i64 %iter.sroa.60.0707.us.i123.i, 3 %data.i.i.i.i.i.i.us.i127.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i126.i %data.i.i.i.i.i.i.i.i.us.i128.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i124.i %data.i.i.i.i.i.i.i.i.i.i.us.i129.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i124.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i130.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i124.i %start1.i.i.i.i.us.i131.i = shl i64 %iter.sroa.60.0707.us.i123.i, 2 %222 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i131.i, i64 1 %w1.0.us.i132.i = load double, ptr %222, align 8, !alias.scope !2284, !noalias !2286, !noundef !3 %223 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i131.i, i64 1, i32 1 %w1.1.us.i133.i = load double, ptr %223, align 8, !alias.scope !2284, !noalias !2286, !noundef !3 %224 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i131.i, i64 2 %w2.0.us.i134.i = load double, ptr %224, align 8, !alias.scope !2284, !noalias !2286, !noundef !3 %225 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i131.i, i64 2, i32 1 %w2.1.us.i135.i = load double, ptr %225, align 8, !alias.scope !2284, !noalias !2286, !noundef !3 %226 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i131.i, i64 3 %w3.0.us.i136.i = load double, ptr %226, align 8, !alias.scope !2284, !noalias !2286, !noundef !3 %227 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i131.i, i64 3, i32 1 %w3.1.us.i137.i = load double, ptr %227, align 8, !alias.scope !2284, !noalias !2286, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i138.i = insertelement <2 x double> poison, double %w1.0.us.i132.i, i64 0 %228 = insertelement <4 x double> poison, double %w1.1.us.i133.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i139.i = insertelement <2 x double> poison, double %w2.0.us.i134.i, i64 0 %229 = insertelement <4 x double> poison, double %w2.1.us.i135.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i140.i = insertelement <2 x double> poison, double %w3.0.us.i136.i, i64 0 %230 = insertelement <4 x double> poison, double %w3.1.us.i137.i, i64 0 %231 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 4 %232 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 2 %233 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 6 %234 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i138.i, <2 x double> poison, <4 x i32> zeroinitializer %235 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> zeroinitializer %236 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i139.i, <2 x double> poison, <4 x i32> zeroinitializer %237 = shufflevector <4 x double> %229, <4 x double> poison, <4 x i32> zeroinitializer %238 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i140.i, <2 x double> poison, <4 x i32> zeroinitializer %239 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i151.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i127.i, align 8, !alias.scope !2282, !noalias !2287 %_84.sroa.0.0.copyload.us.i152.i = load <4 x double>, ptr %232, align 8, !alias.scope !2282, !noalias !2287 %240 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i152.i, <4 x double> poison, <4 x i32> %241 = fmul <4 x double> %235, %240 %242 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %234, <4 x double> %_84.sroa.0.0.copyload.us.i152.i, <4 x double> %241) #23 %_86.sroa.0.0.copyload.us.i153.i = load <4 x double>, ptr %231, align 8, !alias.scope !2282, !noalias !2287 %243 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i153.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %237, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_86.sroa.0.0.copyload.us.i153.i, <4 x double> %244) #23 %_88.sroa.0.0.copyload.us.i154.i = load <4 x double>, ptr %233, align 8, !alias.scope !2282, !noalias !2287 %246 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i154.i, <4 x double> poison, <4 x i32> %247 = fmul <4 x double> %239, %246 %248 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %238, <4 x double> %_88.sroa.0.0.copyload.us.i154.i, <4 x double> %247) #23 %249 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.i, %245 %250 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.i, %245 %251 = fadd <4 x double> %242, %248 %252 = fsub <4 x double> %242, %248 %253 = bitcast <4 x double> %252 to <4 x i64> %254 = xor <4 x i64> %253, %255 = bitcast <4 x i64> %254 to <4 x double> %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fadd <4 x double> %249, %251 store <4 x double> %257, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i, align 8, !alias.scope !2279, !noalias !2288 %258 = fsub <4 x double> %250, %256 store <4 x double> %258, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i130.i, align 8, !alias.scope !2279, !noalias !2288 %259 = fsub <4 x double> %249, %251 store <4 x double> %259, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i129.i, align 8, !alias.scope !2279, !noalias !2288 %260 = fadd <4 x double> %250, %256 store <4 x double> %260, ptr %data.i.i.i.i.i.i.i.i.us.i128.i, align 8, !alias.scope !2279, !noalias !2288 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i143.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i144.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i130.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i145.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i129.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i146.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i128.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i147.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i148.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 3 %_3.i.i.i.i.i.i.us.i149.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 5 %_3.i.i.i.i.us.i150.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i127.i, i64 7 %a.sroa.0.0.copyload.us.i151.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i147.1.i, align 8, !alias.scope !2282, !noalias !2287 %_84.sroa.0.0.copyload.us.i152.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.1.i, align 8, !alias.scope !2282, !noalias !2287 %261 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i152.1.i, <4 x double> poison, <4 x i32> %262 = fmul <4 x double> %235, %261 %263 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %234, <4 x double> %_84.sroa.0.0.copyload.us.i152.1.i, <4 x double> %262) #23 %_86.sroa.0.0.copyload.us.i153.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i149.1.i, align 8, !alias.scope !2282, !noalias !2287 %264 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i153.1.i, <4 x double> poison, <4 x i32> %265 = fmul <4 x double> %237, %264 %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_86.sroa.0.0.copyload.us.i153.1.i, <4 x double> %265) #23 %_88.sroa.0.0.copyload.us.i154.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i150.1.i, align 8, !alias.scope !2282, !noalias !2287 %267 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i154.1.i, <4 x double> poison, <4 x i32> %268 = fmul <4 x double> %239, %267 %269 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %238, <4 x double> %_88.sroa.0.0.copyload.us.i154.1.i, <4 x double> %268) #23 %270 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.1.i, %266 %271 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.1.i, %266 %272 = fadd <4 x double> %263, %269 %273 = fsub <4 x double> %263, %269 %274 = bitcast <4 x double> %273 to <4 x i64> %275 = xor <4 x i64> %274, %276 = bitcast <4 x i64> %275 to <4 x double> %277 = shufflevector <4 x double> %276, <4 x double> poison, <4 x i32> %278 = fadd <4 x double> %270, %272 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i143.1.i, align 8, !alias.scope !2279, !noalias !2288 %279 = fsub <4 x double> %271, %277 store <4 x double> %279, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i144.1.i, align 8, !alias.scope !2279, !noalias !2288 %280 = fsub <4 x double> %270, %272 store <4 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i145.1.i, align 8, !alias.scope !2279, !noalias !2288 %281 = fadd <4 x double> %271, %277 store <4 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i146.1.i, align 8, !alias.scope !2279, !noalias !2288 %282 = add nuw nsw i64 %iter.sroa.60.0707.us.i123.i, 1 %exitcond242.not.i = icmp eq i64 %282, 64 br i1 %exitcond242.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit158.i, label %bb22.us.i122.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit158.i: ; preds = %bb22.us.i122.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2289) tail call void @llvm.experimental.noalias.scope.decl(metadata !2292) tail call void @llvm.experimental.noalias.scope.decl(metadata !2294) %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 br label %bb15.i161.i bb15.i161.i: ; preds = %bb15.i161.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit158.i %iter.sroa.50.0547.i.i = phi i64 [ %286, %bb15.i161.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit158.i ] %286 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2294, !noalias !2296 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2294, !noalias !2296 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !2294, !noalias !2296 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2292, !noalias !2297 %287 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %287, align 8, !alias.scope !2292, !noalias !2297 %288 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %288, align 8, !alias.scope !2292, !noalias !2297 %289 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %289, align 8, !alias.scope !2292, !noalias !2297 %290 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %291 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %294 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %295 = fmul <4 x double> %294, %292 %296 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %293, <4 x double> %291, <4 x double> %295) #23 %297 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %298 = shufflevector <4 x double> %297, <4 x double> poison, <4 x i32> %299 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %300 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %301 = fmul <4 x double> %300, %298 %302 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %299, <4 x double> %297, <4 x double> %301) #23 %303 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %304 = shufflevector <4 x double> %303, <4 x double> poison, <4 x i32> %305 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %306 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %307 = fmul <4 x double> %306, %304 %308 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %303, <4 x double> %307) #23 %309 = fadd <4 x double> %290, %302 %310 = fsub <4 x double> %290, %302 %311 = fadd <4 x double> %296, %308 %312 = fsub <4 x double> %296, %308 %313 = bitcast <4 x double> %312 to <4 x i64> %314 = xor <4 x i64> %313, %315 = bitcast <4 x i64> %314 to <4 x double> %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fadd <4 x double> %309, %311 store <4 x double> %317, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2289, !noalias !2298 %318 = fsub <4 x double> %310, %316 store <4 x double> %318, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2289, !noalias !2298 %319 = fsub <4 x double> %309, %311 store <4 x double> %319, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2289, !noalias !2298 %320 = fadd <4 x double> %310, %316 store <4 x double> %320, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2289, !noalias !2298 %exitcond.not.i162.i = icmp eq i64 %286, 128 br i1 %exitcond.not.i162.i, label %_ZN4pulp3x862V39vectorize6__impl17h87c4294fd5467f94E.exit, label %bb15.i161.i _ZN4pulp3x862V39vectorize6__impl17h87c4294fd5467f94E.exit: ; preds = %bb15.i161.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2250 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h06c29465d01e7a2bE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hda3cf76f07d05a4dE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h06ed2f17232d36fcE"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2299 store i64 2, ptr %n.i.i, align 8, !noalias !2299 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2299 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2299 %_12.i.i = icmp eq i64 %buf.1, 2 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2299 store ptr null, ptr %_16.i.i, align 8, !noalias !2299 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2299 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2299 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2299 %_20.i.i = icmp eq i64 %scratch.1, 2 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2299 store ptr null, ptr %_24.i.i, align 8, !noalias !2299 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2299 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2299 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2299 %_28.i.i = icmp eq i64 %w_init.1, 2 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2299 store ptr null, ptr %_32.i.i, align 8, !noalias !2299 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2299 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2299 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2299 %_36.i.i = icmp eq i64 %w.1, 2 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6b9fe3630ab0f66E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2299 store ptr null, ptr %_40.i.i, align 8, !noalias !2299 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6b9fe3630ab0f66E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2299 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !2304 store i64 1, ptr %_8.i.i.i, align 8, !noalias !2304 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !2304 store ptr null, ptr %_13.i.i.i, align 8, !noalias !2304 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_6ec67c04328476ddffba5779951f4c00) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0753d34320e3276fE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2311 store i64 256, ptr %n.i.i, align 8, !noalias !2311 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2311 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2311 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2311 store ptr null, ptr %_16.i.i, align 8, !noalias !2311 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2311 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2311 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2311 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2311 store ptr null, ptr %_24.i.i, align 8, !noalias !2311 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2311 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2311 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2311 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2311 store ptr null, ptr %_32.i.i, align 8, !noalias !2311 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2311 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2311 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2311 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdc633f326f052254E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2311 store ptr null, ptr %_40.i.i, align 8, !noalias !2311 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdc633f326f052254E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2311 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 br label %bb13.i.i.i.i bb13.i.i.i.i: ; preds = %bb13.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdc633f326f052254E.exit.i" %iter.i.i.i.sroa.22.0134.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdc633f326f052254E.exit.i" ], [ %5, %bb13.i.i.i.i ] %5 = add nuw nsw i64 %iter.i.i.i.sroa.22.0134.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0134.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0134.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0134.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.22.0134.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2316 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2316 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2316 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2316 %6 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %7 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %8 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %10 = bitcast <4 x double> %9 to <4 x i64> %11 = xor <4 x i64> %10, %12 = bitcast <4 x i64> %11 to <4 x double> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = fadd <4 x double> %6, %8 %15 = fsub <4 x double> %7, %13 %16 = fsub <4 x double> %6, %8 %17 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2316 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2316 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2316 store <4 x double> %17, ptr %_3.i.i.i.i.i, align 8, !noalias !2316 %exitcond.not.i = icmp eq i64 %5, 32 br i1 %exitcond.not.i, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i", label %bb13.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i": ; preds = %bb13.i.i.i.i %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 tail call void @llvm.experimental.noalias.scope.decl(metadata !2320) tail call void @llvm.experimental.noalias.scope.decl(metadata !2323) tail call void @llvm.experimental.noalias.scope.decl(metadata !2325) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %25 = add nuw nsw i64 %iter.sroa.104.02127.i.i, 1 %exitcond135.not.i = icmp eq i64 %25, 4 br i1 %exitcond135.not.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i" %iter.sroa.104.02127.i.i = phi i64 [ %25, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 3 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %33, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %34 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %35, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %36, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %37 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %38, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %39, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %40 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %41, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %42, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %43 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %44, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %45 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %45, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %46 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %47, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %48, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %49 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %50, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %51, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %52 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %53 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %53, align 8, !alias.scope !2325, !noalias !2327, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %54 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %55 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %57 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> zeroinitializer %58 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %40, <4 x double> poison, <4 x i32> zeroinitializer %64 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %65 = shufflevector <4 x double> %37, <4 x double> poison, <4 x i32> zeroinitializer %66 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %67 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %68, %bb58.i.i ] %68 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %69 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %70 = fmul <4 x double> %55, %69 %71 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %54, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %70) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %72 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %57, %72 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %73) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %75 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %76 = fmul <4 x double> %59, %75 %77 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %76) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %78 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %79) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %81 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %63, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %82) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %84 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %65, %84 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %64, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %85) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !2323, !noalias !2328 %87 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %88 = fmul <4 x double> %67, %87 %89 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %88) #23 %90 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %80 %91 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %80 %92 = fadd <4 x double> %74, %86 %93 = fsub <4 x double> %74, %86 %94 = bitcast <4 x double> %93 to <4 x i64> %95 = fsub <4 x double> %77, %89 %96 = bitcast <4 x double> %95 to <4 x i64> %97 = xor <4 x i64> %94, %98 = bitcast <4 x i64> %97 to <4 x double> %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = xor <4 x i64> %96, %101 = bitcast <4 x i64> %100 to <4 x double> %102 = shufflevector <4 x double> %101, <4 x double> poison, <4 x i32> %103 = fadd <4 x double> %71, %83 %104 = fsub <4 x double> %71, %83 %105 = fadd <4 x double> %77, %89 %106 = fadd <4 x double> %90, %92 %107 = fadd <4 x double> %103, %105 %108 = fadd <4 x double> %106, %107 store <4 x double> %108, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %109 = fsub <4 x double> %106, %107 store <4 x double> %109, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %110 = fsub <4 x double> %91, %99 %111 = fsub <4 x double> %104, %102 %112 = bitcast <4 x double> %111 to <4 x i64> %113 = xor <4 x i64> %112, %114 = bitcast <4 x i64> %113 to <4 x double> %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %116 = fadd <4 x double> %111, %115 %117 = fmul <4 x double> %116, %118 = fadd <4 x double> %110, %117 store <4 x double> %118, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %119 = fsub <4 x double> %110, %117 store <4 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %120 = fsub <4 x double> %90, %92 %121 = fsub <4 x double> %103, %105 %122 = bitcast <4 x double> %121 to <4 x i64> %123 = fadd <4 x double> %91, %99 %124 = fadd <4 x double> %104, %102 %125 = xor <4 x i64> %122, %126 = bitcast <4 x i64> %125 to <4 x double> %127 = shufflevector <4 x double> %126, <4 x double> poison, <4 x i32> %128 = fsub <4 x double> %120, %127 store <4 x double> %128, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %129 = fadd <4 x double> %120, %127 store <4 x double> %129, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %130 = bitcast <4 x double> %124 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %124, %133 %135 = fmul <4 x double> %134, %136 = fsub <4 x double> %123, %135 store <4 x double> %136, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %137 = fadd <4 x double> %123, %135 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2320, !noalias !2329 %exitcond.not.i.i = icmp eq i64 %68, 4 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2330) tail call void @llvm.experimental.noalias.scope.decl(metadata !2333) tail call void @llvm.experimental.noalias.scope.decl(metadata !2335) %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %140 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %141 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %142 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %143 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %144 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %146 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %147 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %148 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.106.01794.i.i = phi i64 [ %149, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %149 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %138, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i = getelementptr inbounds %"fft_simd::c64x2", ptr %140, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i55.i = getelementptr inbounds %"fft_simd::c64x2", ptr %141, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %144, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %143, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %145, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %142, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %147, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %146, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i56.i = getelementptr inbounds %"fft_simd::c64x2", ptr %148, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !2335, !noalias !2337 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2335, !noalias !2337 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2335, !noalias !2337 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2335, !noalias !2337 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2335, !noalias !2337 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2335, !noalias !2337 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i56.i, align 8, !alias.scope !2335, !noalias !2337 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2333, !noalias !2338 %150 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %150, align 8, !alias.scope !2333, !noalias !2338 %151 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %151, align 8, !alias.scope !2333, !noalias !2338 %152 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %152, align 8, !alias.scope !2333, !noalias !2338 %153 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %153, align 8, !alias.scope !2333, !noalias !2338 %154 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %154, align 8, !alias.scope !2333, !noalias !2338 %155 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %155, align 8, !alias.scope !2333, !noalias !2338 %156 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %156, align 8, !alias.scope !2333, !noalias !2338 %157 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %158 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %161 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %162 = fmul <4 x double> %161, %159 %163 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %160, <4 x double> %158, <4 x double> %162) #23 %164 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %167 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %168 = fmul <4 x double> %167, %165 %169 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %166, <4 x double> %164, <4 x double> %168) #23 %170 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %171 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %172 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %173 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %174 = fmul <4 x double> %173, %171 %175 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %172, <4 x double> %170, <4 x double> %174) #23 %176 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %179 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %180 = fmul <4 x double> %179, %177 %181 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %178, <4 x double> %176, <4 x double> %180) #23 %182 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %183 = shufflevector <4 x double> %182, <4 x double> poison, <4 x i32> %184 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %185, %183 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %182, <4 x double> %186) #23 %188 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %189 = shufflevector <4 x double> %188, <4 x double> poison, <4 x i32> %190 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %191 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %192 = fmul <4 x double> %191, %189 %193 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %190, <4 x double> %188, <4 x double> %192) #23 %194 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %197 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %198 = fmul <4 x double> %197, %195 %199 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %196, <4 x double> %194, <4 x double> %198) #23 %200 = fadd <4 x double> %157, %181 %201 = fsub <4 x double> %157, %181 %202 = fadd <4 x double> %169, %193 %203 = fsub <4 x double> %169, %193 %204 = bitcast <4 x double> %203 to <4 x i64> %205 = fsub <4 x double> %175, %199 %206 = bitcast <4 x double> %205 to <4 x i64> %207 = xor <4 x i64> %204, %208 = bitcast <4 x i64> %207 to <4 x double> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = xor <4 x i64> %206, %211 = bitcast <4 x i64> %210 to <4 x double> %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fadd <4 x double> %163, %187 %214 = fsub <4 x double> %163, %187 %215 = fadd <4 x double> %175, %199 %216 = fadd <4 x double> %200, %202 %217 = fadd <4 x double> %213, %215 %218 = fadd <4 x double> %216, %217 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2330, !noalias !2339 %219 = fsub <4 x double> %216, %217 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i, align 8, !alias.scope !2330, !noalias !2339 %220 = fsub <4 x double> %201, %209 %221 = fsub <4 x double> %214, %212 %222 = bitcast <4 x double> %221 to <4 x i64> %223 = xor <4 x i64> %222, %224 = bitcast <4 x i64> %223 to <4 x double> %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fadd <4 x double> %221, %225 %227 = fmul <4 x double> %226, %228 = fadd <4 x double> %220, %227 store <4 x double> %228, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2330, !noalias !2339 %229 = fsub <4 x double> %220, %227 store <4 x double> %229, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i, align 8, !alias.scope !2330, !noalias !2339 %230 = fsub <4 x double> %200, %202 %231 = fsub <4 x double> %213, %215 %232 = bitcast <4 x double> %231 to <4 x i64> %233 = fadd <4 x double> %201, %209 %234 = fadd <4 x double> %214, %212 %235 = xor <4 x i64> %232, %236 = bitcast <4 x i64> %235 to <4 x double> %237 = shufflevector <4 x double> %236, <4 x double> poison, <4 x i32> %238 = fsub <4 x double> %230, %237 store <4 x double> %238, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i50.i, align 8, !alias.scope !2330, !noalias !2339 %239 = fadd <4 x double> %230, %237 store <4 x double> %239, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i54.i, align 8, !alias.scope !2330, !noalias !2339 %240 = bitcast <4 x double> %234 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %234, %243 %245 = fmul <4 x double> %244, %246 = fsub <4 x double> %233, %245 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i, align 8, !alias.scope !2330, !noalias !2339 %247 = fadd <4 x double> %233, %245 store <4 x double> %247, ptr %_3.i.i.i.i.i.i.i.i.i.i.i55.i, align 8, !alias.scope !2330, !noalias !2339 %exitcond.not.i57.i = icmp eq i64 %149, 16 br i1 %exitcond.not.i57.i, label %_ZN4pulp3x862V39vectorize6__impl17ha66dd617e7afd1f5E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17ha66dd617e7afd1f5E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2311 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h077b4f4fa3869a39E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h02deb29d3a6b0eabE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h07f5ff009bc7a7cdE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2340 store i64 32, ptr %n.i, align 8, !noalias !2340 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2340 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2340 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2340 store ptr null, ptr %_16.i, align 8, !noalias !2340 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2340 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2340 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2340 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2340 store ptr null, ptr %_24.i, align 8, !noalias !2340 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2340 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2340 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2340 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2340 store ptr null, ptr %_32.i, align 8, !noalias !2340 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2340 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2340 store i64 %w.1, ptr %_34.i, align 8, !noalias !2340 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %bb9.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2340 store ptr null, ptr %_40.i, align 8, !noalias !2340 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2340 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !2340 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !2340 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %1 = fadd <4 x double> %strided.vec, %strided.vec3 %2 = fadd <4 x double> %strided.vec1, %strided.vec4 %3 = fsub <4 x double> %strided.vec, %strided.vec3 %4 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %1, <4 x double> %2, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !2340 %interleaved.vec5 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !2340 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %5, align 8, !noalias !2340 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %6, align 8, !noalias !2340 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %8 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %9 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %5, align 8, !noalias !2340 %interleaved.vec5.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %6, align 8, !noalias !2340 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %11, align 8, !noalias !2340 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %12, align 8, !noalias !2340 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %13 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %14 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %15 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %16 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %interleaved.vec.2 = shufflevector <4 x double> %13, <4 x double> %14, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %11, align 8, !noalias !2340 %interleaved.vec5.2 = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %12, align 8, !noalias !2340 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %17, align 8, !noalias !2340 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %18, align 8, !noalias !2340 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %19 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %20 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %21 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %22 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %interleaved.vec.3 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %17, align 8, !noalias !2340 %interleaved.vec5.3 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %18, align 8, !noalias !2340 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %24 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i = load double, ptr %24, align 8, !noalias !2340, !noundef !3 %25 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i = load double, ptr %25, align 8, !noalias !2340, !noundef !3 %26 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %_6.i.i.i58.i = fneg double %w1.1.i.i43.i %27 = load <4 x double>, ptr %buf.0, align 8, !noalias !2340 %28 = load <4 x double>, ptr %26, align 8, !noalias !2340 %29 = insertelement <4 x double> poison, double %_6.i.i.i58.i, i64 0 %30 = insertelement <4 x double> %29, double %w1.1.i.i43.i, i64 1 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = fmul <4 x double> %31, %28 %33 = shufflevector <4 x double> %32, <4 x double> poison, <4 x i32> %34 = insertelement <4 x double> poison, double %w1.0.i.i42.i, i64 0 %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> zeroinitializer %36 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %35, <4 x double> %28, <4 x double> %33) %37 = fadd <4 x double> %27, %36 store <4 x double> %37, ptr %scratch.0, align 8, !noalias !2340 %38 = fsub <4 x double> %27, %36 store <4 x double> %38, ptr %23, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i168.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %39 = load <4 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !2340 %40 = load <4 x double>, ptr %_3.i.i.i.i168.2, align 8, !noalias !2340 %41 = fmul <4 x double> %31, %40 %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %35, <4 x double> %40, <4 x double> %42) %44 = fadd <4 x double> %39, %43 store <4 x double> %44, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !2340 %45 = fsub <4 x double> %39, %43 store <4 x double> %45, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %_3.i.i.i.i.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %_3.i.i.i.i168.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %46 = load <4 x double>, ptr %_3.i.i.i.i.i.i.4, align 8, !noalias !2340 %47 = load <4 x double>, ptr %_3.i.i.i.i168.4, align 8, !noalias !2340 %48 = fmul <4 x double> %31, %47 %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %35, <4 x double> %47, <4 x double> %49) %51 = fadd <4 x double> %46, %50 store <4 x double> %51, ptr %_3.i.i.i.i.i.i.i.i.4, align 8, !noalias !2340 %52 = fsub <4 x double> %46, %50 store <4 x double> %52, ptr %_3.i2.i.i.i.i.i.i.i.4, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i168.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %53 = load <4 x double>, ptr %_3.i.i.i.i.i.i.6, align 8, !noalias !2340 %54 = load <4 x double>, ptr %_3.i.i.i.i168.6, align 8, !noalias !2340 %55 = fmul <4 x double> %31, %54 %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %35, <4 x double> %54, <4 x double> %56) %58 = fadd <4 x double> %53, %57 store <4 x double> %58, ptr %_3.i.i.i.i.i.i.i.i.6, align 8, !noalias !2340 %59 = fsub <4 x double> %53, %57 store <4 x double> %59, ptr %_3.i2.i.i.i.i.i.i.i.6, align 8, !noalias !2340 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %60 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.i.i42.i.1 = load double, ptr %60, align 8, !noalias !2340, !noundef !3 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.i.i43.i.1 = load double, ptr %61, align 8, !noalias !2340, !noundef !3 %62 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %_6.i.i.i58.i.1 = fneg double %w1.1.i.i43.i.1 %63 = load <4 x double>, ptr %0, align 8, !noalias !2340 %64 = load <4 x double>, ptr %62, align 8, !noalias !2340 %65 = insertelement <4 x double> poison, double %_6.i.i.i58.i.1, i64 0 %66 = insertelement <4 x double> %65, double %w1.1.i.i43.i.1, i64 1 %67 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %64 %69 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> %70 = insertelement <4 x double> poison, double %w1.0.i.i42.i.1, i64 0 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %72 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %71, <4 x double> %64, <4 x double> %69) %73 = fadd <4 x double> %63, %72 store <4 x double> %73, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2340 %74 = fsub <4 x double> %63, %72 store <4 x double> %74, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i2.i.i.i.i.i.i.i.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i.i.i.i.i.i.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i.i.i.i168.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %75 = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.1, align 8, !noalias !2340 %76 = load <4 x double>, ptr %_3.i.i.i.i168.2.1, align 8, !noalias !2340 %77 = fmul <4 x double> %67, %76 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %71, <4 x double> %76, <4 x double> %78) %80 = fadd <4 x double> %75, %79 store <4 x double> %80, ptr %_3.i.i.i.i.i.i.i.i.2.1, align 8, !noalias !2340 %81 = fsub <4 x double> %75, %79 store <4 x double> %81, ptr %_3.i2.i.i.i.i.i.i.i.2.1, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %_3.i2.i.i.i.i.i.i.i.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_3.i.i.i.i.i.i.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %_3.i.i.i.i168.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %82 = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.1, align 8, !noalias !2340 %83 = load <4 x double>, ptr %_3.i.i.i.i168.4.1, align 8, !noalias !2340 %84 = fmul <4 x double> %67, %83 %85 = shufflevector <4 x double> %84, <4 x double> poison, <4 x i32> %86 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %71, <4 x double> %83, <4 x double> %85) %87 = fadd <4 x double> %82, %86 store <4 x double> %87, ptr %_3.i.i.i.i.i.i.i.i.4.1, align 8, !noalias !2340 %88 = fsub <4 x double> %82, %86 store <4 x double> %88, ptr %_3.i2.i.i.i.i.i.i.i.4.1, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i2.i.i.i.i.i.i.i.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i168.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %89 = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.1, align 8, !noalias !2340 %90 = load <4 x double>, ptr %_3.i.i.i.i168.6.1, align 8, !noalias !2340 %91 = fmul <4 x double> %67, %90 %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %71, <4 x double> %90, <4 x double> %92) %94 = fadd <4 x double> %89, %93 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.6.1, align 8, !noalias !2340 %95 = fsub <4 x double> %89, %93 store <4 x double> %95, ptr %_3.i2.i.i.i.i.i.i.i.6.1, align 8, !noalias !2340 %w1.0.i.i.i = load double, ptr %24, align 8, !noalias !2340, !noundef !3 %w1.1.i.i.i = load double, ptr %25, align 8, !noalias !2340, !noundef !3 %_6.i.i.i.i = fneg double %w1.1.i.i.i %96 = load <4 x double>, ptr %scratch.0, align 8, !noalias !2340 %97 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4, align 8, !noalias !2340 %98 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %99 = insertelement <4 x double> %98, double %w1.1.i.i.i, i64 1 %100 = shufflevector <4 x double> %99, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %97 %102 = shufflevector <4 x double> %101, <4 x double> poison, <4 x i32> %103 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %104 = shufflevector <4 x double> %103, <4 x double> poison, <4 x i32> zeroinitializer %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %104, <4 x double> %97, <4 x double> %102) %106 = fadd <4 x double> %96, %105 store <4 x double> %106, ptr %buf.0, align 8, !noalias !2340 %107 = fsub <4 x double> %96, %105 store <4 x double> %107, ptr %0, align 8, !noalias !2340 %_3.i.i.i.i339.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %108 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !2340 %109 = load <4 x double>, ptr %_3.i.i.i.i339.2, align 8, !noalias !2340 %110 = fmul <4 x double> %100, %109 %111 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> %112 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %104, <4 x double> %109, <4 x double> %111) %113 = fadd <4 x double> %108, %112 store <4 x double> %113, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !2340 %114 = fsub <4 x double> %108, %112 store <4 x double> %114, ptr %_3.i.i.i.i.i.i.2.1, align 8, !noalias !2340 %115 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i.i.1 = load double, ptr %115, align 8, !noalias !2340, !noundef !3 %116 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %116, align 8, !noalias !2340, !noundef !3 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %117 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2340 %118 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.1, align 8, !noalias !2340 %119 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %120 = insertelement <4 x double> %119, double %w1.1.i.i.i.1, i64 1 %121 = shufflevector <4 x double> %120, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %121, %118 %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <4 x double> %124, <4 x double> poison, <4 x i32> zeroinitializer %126 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %125, <4 x double> %118, <4 x double> %123) %127 = fadd <4 x double> %117, %126 store <4 x double> %127, ptr %_3.i.i.i.i.i.i.4, align 8, !noalias !2340 %128 = fsub <4 x double> %117, %126 store <4 x double> %128, ptr %_3.i.i.i.i.i.i.4.1, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i330.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i333.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i339.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %129 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.1, align 8, !noalias !2340 %130 = load <4 x double>, ptr %_3.i.i.i.i339.2.1, align 8, !noalias !2340 %131 = fmul <4 x double> %121, %130 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %125, <4 x double> %130, <4 x double> %132) %134 = fadd <4 x double> %129, %133 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i330.2.1, align 8, !noalias !2340 %135 = fsub <4 x double> %129, %133 store <4 x double> %135, ptr %_3.i2.i.i.i.i.i.i.i333.2.1, align 8, !noalias !2340 %w1.0.i.i.i.2 = load double, ptr %60, align 8, !noalias !2340, !noundef !3 %w1.1.i.i.i.2 = load double, ptr %61, align 8, !noalias !2340, !noundef !3 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %136 = load <4 x double>, ptr %23, align 8, !noalias !2340 %137 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4, align 8, !noalias !2340 %138 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %139 = insertelement <4 x double> %138, double %w1.1.i.i.i.2, i64 1 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %140, %137 %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %144, <4 x double> %137, <4 x double> %142) %146 = fadd <4 x double> %136, %145 store <4 x double> %146, ptr %26, align 8, !noalias !2340 %147 = fsub <4 x double> %136, %145 store <4 x double> %147, ptr %62, align 8, !noalias !2340 %_3.i.i.i.i339.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %148 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2, align 8, !noalias !2340 %149 = load <4 x double>, ptr %_3.i.i.i.i339.2.2, align 8, !noalias !2340 %150 = fmul <4 x double> %140, %149 %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %144, <4 x double> %149, <4 x double> %151) %153 = fadd <4 x double> %148, %152 store <4 x double> %153, ptr %_3.i.i.i.i168.2, align 8, !noalias !2340 %154 = fsub <4 x double> %148, %152 store <4 x double> %154, ptr %_3.i.i.i.i168.2.1, align 8, !noalias !2340 %data.i.i.i.i.i.i.i.i271.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i.i.i.i.i.i281.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %data.i5.i.i.i.i.i.i.i285.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %155 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i.i.3 = load double, ptr %155, align 8, !noalias !2340, !noundef !3 %156 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %156, align 8, !noalias !2340, !noundef !3 %157 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %158 = load <4 x double>, ptr %data.i.i.i.i.i.i281.3, align 8, !noalias !2340 %159 = load <4 x double>, ptr %157, align 8, !noalias !2340 %160 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %161 = insertelement <4 x double> %160, double %w1.1.i.i.i.3, i64 1 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %162, %159 %164 = shufflevector <4 x double> %163, <4 x double> poison, <4 x i32> %165 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> zeroinitializer %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %166, <4 x double> %159, <4 x double> %164) %168 = fadd <4 x double> %158, %167 store <4 x double> %168, ptr %data.i.i.i.i.i.i.i.i271.3, align 8, !noalias !2340 %169 = fsub <4 x double> %158, %167 store <4 x double> %169, ptr %data.i5.i.i.i.i.i.i.i285.3, align 8, !noalias !2340 %_3.i.i.i.i.i.i.i.i330.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_3.i2.i.i.i.i.i.i.i333.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %_3.i.i.i.i.i.i336.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i.i.i.i339.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %170 = load <4 x double>, ptr %_3.i.i.i.i.i.i336.2.3, align 8, !noalias !2340 %171 = load <4 x double>, ptr %_3.i.i.i.i339.2.3, align 8, !noalias !2340 %172 = fmul <4 x double> %162, %171 %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %166, <4 x double> %171, <4 x double> %173) %175 = fadd <4 x double> %170, %174 store <4 x double> %175, ptr %_3.i.i.i.i.i.i.i.i330.2.3, align 8, !noalias !2340 %176 = fsub <4 x double> %170, %174 store <4 x double> %176, ptr %_3.i2.i.i.i.i.i.i.i333.2.3, align 8, !noalias !2340 %177 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %178 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %179 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %179, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %180 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %177, i64 2 %181 = fneg <4 x double> %wide.masked.gather12 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %182 = getelementptr inbounds i8, <4 x ptr> %177, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %182, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %180, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %183 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %177, i64 2, i32 1 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %184 = fmul <4 x double> %wide.masked.gather16, %181 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather15, <4 x double> %184) %186 = fmul <4 x double> %wide.masked.gather12, %wide.masked.gather15 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather16, <4 x double> %186) %188 = fadd <4 x double> %wide.masked.gather13, %185 %189 = fadd <4 x double> %wide.masked.gather14, %187 %190 = fsub <4 x double> %wide.masked.gather13, %185 %191 = fsub <4 x double> %wide.masked.gather14, %187 %192 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %177, i64 1 %193 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %177, i64 3 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %192, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %194 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %177, i64 1, i32 1 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %194, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %193, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %195 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %177, i64 3, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %195, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %196 = fmul <4 x double> %wide.masked.gather20, %181 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather19, <4 x double> %196) %198 = fmul <4 x double> %wide.masked.gather12, %wide.masked.gather19 %199 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather20, <4 x double> %198) %200 = fadd <4 x double> %wide.masked.gather17, %197 %201 = fadd <4 x double> %wide.masked.gather18, %199 %202 = shufflevector <4 x double> %188, <4 x double> %189, <8 x i32> %203 = shufflevector <4 x double> %200, <4 x double> %201, <8 x i32> %interleaved.vec21 = shufflevector <8 x double> %202, <8 x double> %203, <16 x i32> store <16 x double> %interleaved.vec21, ptr %scratch.0, align 8, !noalias !2340 %204 = fsub <4 x double> %wide.masked.gather17, %197 %205 = fsub <4 x double> %wide.masked.gather18, %199 %206 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %207 = shufflevector <4 x double> %204, <4 x double> %205, <8 x i32> %interleaved.vec22 = shufflevector <8 x double> %206, <8 x double> %207, <16 x i32> store <16 x double> %interleaved.vec22, ptr %23, align 8, !noalias !2340 %208 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %209 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %210 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %211 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %211, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %212 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %212, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %209, i64 2 %214 = fneg <4 x double> %wide.masked.gather12.1 %wide.masked.gather13.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %209, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %215 = getelementptr inbounds i8, <4 x ptr> %209, i64 8 %wide.masked.gather14.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %215, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %wide.masked.gather15.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %216 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %209, i64 2, i32 1 %wide.masked.gather16.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %216, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %217 = fmul <4 x double> %wide.masked.gather16.1, %214 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather15.1, <4 x double> %217) %219 = fmul <4 x double> %wide.masked.gather12.1, %wide.masked.gather15.1 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather16.1, <4 x double> %219) %221 = fadd <4 x double> %wide.masked.gather13.1, %218 %222 = fadd <4 x double> %wide.masked.gather14.1, %220 %223 = fsub <4 x double> %wide.masked.gather13.1, %218 %224 = fsub <4 x double> %wide.masked.gather14.1, %220 %225 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %209, i64 1 %226 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %209, i64 3 %wide.masked.gather17.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %225, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %227 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %209, i64 1, i32 1 %wide.masked.gather18.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %227, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %wide.masked.gather19.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %226, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %228 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %209, i64 3, i32 1 %wide.masked.gather20.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %228, i32 8, <4 x i1> , <4 x double> poison), !noalias !2340 %229 = fmul <4 x double> %wide.masked.gather20.1, %214 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather19.1, <4 x double> %229) %231 = fmul <4 x double> %wide.masked.gather12.1, %wide.masked.gather19.1 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather20.1, <4 x double> %231) %233 = fadd <4 x double> %wide.masked.gather17.1, %230 %234 = fadd <4 x double> %wide.masked.gather18.1, %232 %235 = shufflevector <4 x double> %221, <4 x double> %222, <8 x i32> %236 = shufflevector <4 x double> %233, <4 x double> %234, <8 x i32> %interleaved.vec21.1 = shufflevector <8 x double> %235, <8 x double> %236, <16 x i32> store <16 x double> %interleaved.vec21.1, ptr %208, align 8, !noalias !2340 %237 = fsub <4 x double> %wide.masked.gather17.1, %230 %238 = fsub <4 x double> %wide.masked.gather18.1, %232 %239 = shufflevector <4 x double> %223, <4 x double> %224, <8 x i32> %240 = shufflevector <4 x double> %237, <4 x double> %238, <8 x i32> %interleaved.vec22.1 = shufflevector <8 x double> %239, <8 x double> %240, <16 x i32> store <16 x double> %interleaved.vec22.1, ptr %210, align 8, !noalias !2340 %241 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %wide.vec30 = load <16 x double>, ptr %241, align 8, !noalias !2340 %strided.vec31 = shufflevector <16 x double> %wide.vec30, <16 x double> poison, <4 x i32> %strided.vec32 = shufflevector <16 x double> %wide.vec30, <16 x double> poison, <4 x i32> %242 = fneg <4 x double> %strided.vec32 %wide.vec33 = load <16 x double>, ptr %scratch.0, align 8, !noalias !2340 %strided.vec34 = shufflevector <16 x double> %wide.vec33, <16 x double> poison, <4 x i32> %strided.vec35 = shufflevector <16 x double> %wide.vec33, <16 x double> poison, <4 x i32> %strided.vec36 = shufflevector <16 x double> %wide.vec33, <16 x double> poison, <4 x i32> %strided.vec37 = shufflevector <16 x double> %wide.vec33, <16 x double> poison, <4 x i32> %243 = fmul <4 x double> %strided.vec37, %242 %244 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec31, <4 x double> %strided.vec36, <4 x double> %243) %245 = fmul <4 x double> %strided.vec32, %strided.vec36 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec31, <4 x double> %strided.vec37, <4 x double> %245) %247 = fadd <4 x double> %strided.vec34, %244 %248 = fadd <4 x double> %strided.vec35, %246 %interleaved.vec38 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec38, ptr %buf.0, align 8, !noalias !2340 %249 = fsub <4 x double> %strided.vec34, %244 %250 = fsub <4 x double> %strided.vec35, %246 %interleaved.vec39 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec39, ptr %0, align 8, !noalias !2340 %251 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %252 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %wide.vec30.1 = load <16 x double>, ptr %252, align 8, !noalias !2340 %strided.vec31.1 = shufflevector <16 x double> %wide.vec30.1, <16 x double> poison, <4 x i32> %strided.vec32.1 = shufflevector <16 x double> %wide.vec30.1, <16 x double> poison, <4 x i32> %253 = fneg <4 x double> %strided.vec32.1 %wide.vec33.1 = load <16 x double>, ptr %251, align 8, !noalias !2340 %strided.vec34.1 = shufflevector <16 x double> %wide.vec33.1, <16 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <16 x double> %wide.vec33.1, <16 x double> poison, <4 x i32> %strided.vec36.1 = shufflevector <16 x double> %wide.vec33.1, <16 x double> poison, <4 x i32> %strided.vec37.1 = shufflevector <16 x double> %wide.vec33.1, <16 x double> poison, <4 x i32> %254 = fmul <4 x double> %strided.vec37.1, %253 %255 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec31.1, <4 x double> %strided.vec36.1, <4 x double> %254) %256 = fmul <4 x double> %strided.vec32.1, %strided.vec36.1 %257 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec31.1, <4 x double> %strided.vec37.1, <4 x double> %256) %258 = fadd <4 x double> %strided.vec34.1, %255 %259 = fadd <4 x double> %strided.vec35.1, %257 %260 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec38.1 = shufflevector <4 x double> %258, <4 x double> %259, <8 x i32> store <8 x double> %interleaved.vec38.1, ptr %260, align 8, !noalias !2340 %261 = fsub <4 x double> %strided.vec34.1, %255 %262 = fsub <4 x double> %strided.vec35.1, %257 %263 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec39.1 = shufflevector <4 x double> %261, <4 x double> %262, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %263, align 8, !noalias !2340 %264 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %265 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %wide.vec30.2 = load <16 x double>, ptr %265, align 8, !noalias !2340 %strided.vec31.2 = shufflevector <16 x double> %wide.vec30.2, <16 x double> poison, <4 x i32> %strided.vec32.2 = shufflevector <16 x double> %wide.vec30.2, <16 x double> poison, <4 x i32> %266 = fneg <4 x double> %strided.vec32.2 %wide.vec33.2 = load <16 x double>, ptr %264, align 8, !noalias !2340 %strided.vec34.2 = shufflevector <16 x double> %wide.vec33.2, <16 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <16 x double> %wide.vec33.2, <16 x double> poison, <4 x i32> %strided.vec36.2 = shufflevector <16 x double> %wide.vec33.2, <16 x double> poison, <4 x i32> %strided.vec37.2 = shufflevector <16 x double> %wide.vec33.2, <16 x double> poison, <4 x i32> %267 = fmul <4 x double> %strided.vec37.2, %266 %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec31.2, <4 x double> %strided.vec36.2, <4 x double> %267) %269 = fmul <4 x double> %strided.vec32.2, %strided.vec36.2 %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec31.2, <4 x double> %strided.vec37.2, <4 x double> %269) %271 = fadd <4 x double> %strided.vec34.2, %268 %272 = fadd <4 x double> %strided.vec35.2, %270 %273 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec38.2 = shufflevector <4 x double> %271, <4 x double> %272, <8 x i32> store <8 x double> %interleaved.vec38.2, ptr %273, align 8, !noalias !2340 %274 = fsub <4 x double> %strided.vec34.2, %268 %275 = fsub <4 x double> %strided.vec35.2, %270 %276 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec39.2 = shufflevector <4 x double> %274, <4 x double> %275, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %276, align 8, !noalias !2340 %data.i.i.i.i.i.i.i.i609 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i.i.i.i.i.i619 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %data.i5.i.i.i.i.i.i.i623 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %277 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i = load double, ptr %277, align 8, !noalias !2340, !noundef !3 %278 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i = load double, ptr %278, align 8, !noalias !2340, !noundef !3 %279 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25 %_6.i.i.i = fneg double %w1.1.i.i %280 = load <2 x double>, ptr %data.i.i.i.i.i.i619, align 8, !noalias !2340 %281 = load <2 x double>, ptr %279, align 8, !noalias !2340 %282 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %283 = insertelement <2 x double> %282, double %_6.i.i.i, i64 1 %284 = fmul <2 x double> %281, %283 %285 = shufflevector <2 x double> %284, <2 x double> poison, <2 x i32> %286 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %287 = shufflevector <2 x double> %286, <2 x double> poison, <2 x i32> zeroinitializer %288 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %287, <2 x double> %281, <2 x double> %285) %289 = fadd <2 x double> %280, %288 store <2 x double> %289, ptr %data.i.i.i.i.i.i.i.i609, align 8, !noalias !2340 %290 = fsub <2 x double> %280, %288 store <2 x double> %290, ptr %data.i5.i.i.i.i.i.i.i623, align 8, !noalias !2340 %data.i.i.i.i.i.i.i.i609.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i619.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %data.i5.i.i.i.i.i.i.i623.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %291 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1 %w1.0.i.i.1 = load double, ptr %291, align 8, !noalias !2340, !noundef !3 %292 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %292, align 8, !noalias !2340, !noundef !3 %293 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %294 = load <2 x double>, ptr %data.i.i.i.i.i.i619.1, align 8, !noalias !2340 %295 = load <2 x double>, ptr %293, align 8, !noalias !2340 %296 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %297 = insertelement <2 x double> %296, double %_6.i.i.i.1, i64 1 %298 = fmul <2 x double> %295, %297 %299 = shufflevector <2 x double> %298, <2 x double> poison, <2 x i32> %300 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %301 = shufflevector <2 x double> %300, <2 x double> poison, <2 x i32> zeroinitializer %302 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %301, <2 x double> %295, <2 x double> %299) %303 = fadd <2 x double> %294, %302 store <2 x double> %303, ptr %data.i.i.i.i.i.i.i.i609.1, align 8, !noalias !2340 %304 = fsub <2 x double> %294, %302 store <2 x double> %304, ptr %data.i5.i.i.i.i.i.i.i623.1, align 8, !noalias !2340 %data.i.i.i.i.i.i.i.i609.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i.i.i.i.i.i619.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %data.i5.i.i.i.i.i.i.i623.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %305 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.i.i.2 = load double, ptr %305, align 8, !noalias !2340, !noundef !3 %306 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %306, align 8, !noalias !2340, !noundef !3 %307 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %308 = load <2 x double>, ptr %data.i.i.i.i.i.i619.2, align 8, !noalias !2340 %309 = load <2 x double>, ptr %307, align 8, !noalias !2340 %310 = insertelement <2 x double> poison, double %w1.1.i.i.2, i64 0 %311 = insertelement <2 x double> %310, double %_6.i.i.i.2, i64 1 %312 = fmul <2 x double> %309, %311 %313 = shufflevector <2 x double> %312, <2 x double> poison, <2 x i32> %314 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %315 = shufflevector <2 x double> %314, <2 x double> poison, <2 x i32> zeroinitializer %316 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %315, <2 x double> %309, <2 x double> %313) %317 = fadd <2 x double> %308, %316 store <2 x double> %317, ptr %data.i.i.i.i.i.i.i.i609.2, align 8, !noalias !2340 %318 = fsub <2 x double> %308, %316 store <2 x double> %318, ptr %data.i5.i.i.i.i.i.i.i623.2, align 8, !noalias !2340 %data.i.i.i.i.i.i.i.i609.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i619.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %data.i5.i.i.i.i.i.i.i623.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %319 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1 %w1.0.i.i.3 = load double, ptr %319, align 8, !noalias !2340, !noundef !3 %320 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %320, align 8, !noalias !2340, !noundef !3 %321 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %322 = load <2 x double>, ptr %data.i.i.i.i.i.i619.3, align 8, !noalias !2340 %323 = load <2 x double>, ptr %321, align 8, !noalias !2340 %324 = insertelement <2 x double> poison, double %w1.1.i.i.3, i64 0 %325 = insertelement <2 x double> %324, double %_6.i.i.i.3, i64 1 %326 = fmul <2 x double> %323, %325 %327 = shufflevector <2 x double> %326, <2 x double> poison, <2 x i32> %328 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %329 = shufflevector <2 x double> %328, <2 x double> poison, <2 x i32> zeroinitializer %330 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %329, <2 x double> %323, <2 x double> %327) %331 = fadd <2 x double> %322, %330 store <2 x double> %331, ptr %data.i.i.i.i.i.i.i.i609.3, align 8, !noalias !2340 %332 = fsub <2 x double> %322, %330 store <2 x double> %332, ptr %data.i5.i.i.i.i.i.i.i623.3, align 8, !noalias !2340 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2340 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08056610dc5f3270E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h070a47c4cc4f73a3E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08bb3619961b284bE"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2343 store i64 2, ptr %n.i.i, align 8, !noalias !2343 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2343 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2343 %_12.i.i = icmp eq i64 %buf.1, 2 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2343 store ptr null, ptr %_16.i.i, align 8, !noalias !2343 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2343 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2343 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2343 %_20.i.i = icmp eq i64 %scratch.1, 2 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2343 store ptr null, ptr %_24.i.i, align 8, !noalias !2343 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2343 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2343 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2343 %_28.i.i = icmp eq i64 %w_init.1, 2 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2343 store ptr null, ptr %_32.i.i, align 8, !noalias !2343 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2343 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2343 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2343 %_36.i.i = icmp eq i64 %w.1, 2 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7a15e402ab09b67E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2343 store ptr null, ptr %_40.i.i, align 8, !noalias !2343 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7a15e402ab09b67E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2343 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !2348 store i64 1, ptr %_8.i.i.i, align 8, !noalias !2348 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !2348 store ptr null, ptr %_13.i.i.i, align 8, !noalias !2348 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_8b30ecf10cfb39ba8782796f025cb964) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08d65cf4270dbd09E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h29fdbdfd90f6ec3bE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h08fdc495e9427437E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2355 store i64 512, ptr %n.i, align 8, !noalias !2355 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2355 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2355 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2355 store ptr null, ptr %_16.i, align 8, !noalias !2355 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2355 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2355 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2355 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2355 store ptr null, ptr %_24.i, align 8, !noalias !2355 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2355 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2355 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2355 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2355 store ptr null, ptr %_32.i, align 8, !noalias !2355 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2355 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2355 store i64 %w.1, ptr %_34.i, align 8, !noalias !2355 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2355 store ptr null, ptr %_40.i, align 8, !noalias !2355 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2355 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 288 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 352 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 416 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 480 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !2358 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !2358 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !2358 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !2358 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !2358 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !2358 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !2358 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !2358 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !2358 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !2358 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !2358 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !2358 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !2358 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !2358 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !2358 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !2358 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !2358 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fadd <4 x double> %147, %152 %180 = fsub <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fsub <4 x double> %147, %152 %184 = fadd <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fadd <4 x double> %155, %160 %188 = fsub <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fsub <4 x double> %155, %160 %192 = fadd <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fadd <4 x double> %163, %168 %196 = fsub <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fsub <4 x double> %163, %168 %200 = fadd <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fadd <4 x double> %171, %176 %204 = fsub <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fsub <4 x double> %171, %176 %208 = fadd <4 x double> %172, %175 %209 = fadd <4 x double> %188, %187 %210 = fsub <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fsub <4 x double> %191, %192 %214 = fadd <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fadd <4 x double> %181, %190 %222 = fsub <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fsub <4 x double> %181, %190 %230 = fadd <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fadd <4 x double> %204, %203 %234 = fsub <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fsub <4 x double> %207, %208 %238 = fadd <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fadd <4 x double> %197, %206 %246 = fsub <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fsub <4 x double> %197, %206 %254 = fadd <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fadd <4 x double> %246, %245 %262 = fsub <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fsub <4 x double> %253, %254 %274 = fadd <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !2358 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !2358 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !2358 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !2358 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !2358 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !2358 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !2358 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !2358 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !2358 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !2358 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !2358 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !2358 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !2358 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !2358 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !2358 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !2358 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !2358 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !2358 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !2358 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !2358 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !2358 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !2358 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !2358 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !2358 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !2358 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !2358 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !2358 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !2358 %341 = fadd <4 x double> %225, %250 %342 = fsub <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !2358 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !2358 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !2358 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !2358 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !2358 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !2358 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !2358 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !2358 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !2358 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !2358 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !2358 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !2358 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !2358 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !2358 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !2358 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !2358 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !2358 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !2358 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !2358 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !2358 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !2358 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !2358 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !2358 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !2358 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !2358 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !2358 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !2358 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !2358 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !2358 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !2358 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !2358 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !2358 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !2358 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !2358 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !2358 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !2358 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !2358 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !2358 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !2358 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !2358 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !2358 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !2358 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !2358 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !2358 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !2358 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !2358 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !2358 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !2358 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !2358 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !2358 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !2358 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !2358 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !2358 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !2358 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !2358 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !2358 %469 = fsub <4 x double> %225, %250 %470 = fadd <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !2358 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !2358 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !2358 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !2358 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !2358 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !2358 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !2358 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !2358 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !2358 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !2358 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !2358 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !2358 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !2358 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !2358 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !2358 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !2358 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !2358 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !2358 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !2358 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !2358 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !2358 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !2358 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !2358 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !2358 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !2358 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !2358 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !2358 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !2358 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 32 br i1 %533, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325, label %vector.body, !llvm.loop !2361 _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %542 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %543 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 288 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 352 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 416 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 480 br label %bb48.i.i.i339 vector.body238: ; preds = %middle.block76, %vector.body238 %index239 = phi i64 [ %index.next248.1, %vector.body238 ], [ 0, %middle.block76 ] %549 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index239 %550 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index239 %wide.vec240 = load <8 x double>, ptr %549, align 8, !noalias !2355 %strided.vec241 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %strided.vec242 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %wide.vec243 = load <8 x double>, ptr %550, align 8, !noalias !2355 %strided.vec244 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %strided.vec245 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %551 = fadd <4 x double> %strided.vec241, %strided.vec244 %552 = fadd <4 x double> %strided.vec242, %strided.vec245 %553 = fsub <4 x double> %strided.vec241, %strided.vec244 %554 = fsub <4 x double> %strided.vec242, %strided.vec245 %interleaved.vec246 = shufflevector <4 x double> %551, <4 x double> %552, <8 x i32> store <8 x double> %interleaved.vec246, ptr %549, align 8, !noalias !2355 %interleaved.vec247 = shufflevector <4 x double> %553, <4 x double> %554, <8 x i32> store <8 x double> %interleaved.vec247, ptr %550, align 8, !noalias !2355 %index.next248 = or disjoint i64 %index239, 4 %555 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next248 %556 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next248 %wide.vec240.1 = load <8 x double>, ptr %555, align 8, !noalias !2355 %strided.vec241.1 = shufflevector <8 x double> %wide.vec240.1, <8 x double> poison, <4 x i32> %strided.vec242.1 = shufflevector <8 x double> %wide.vec240.1, <8 x double> poison, <4 x i32> %wide.vec243.1 = load <8 x double>, ptr %556, align 8, !noalias !2355 %strided.vec244.1 = shufflevector <8 x double> %wide.vec243.1, <8 x double> poison, <4 x i32> %strided.vec245.1 = shufflevector <8 x double> %wide.vec243.1, <8 x double> poison, <4 x i32> %557 = fadd <4 x double> %strided.vec241.1, %strided.vec244.1 %558 = fadd <4 x double> %strided.vec242.1, %strided.vec245.1 %559 = fsub <4 x double> %strided.vec241.1, %strided.vec244.1 %560 = fsub <4 x double> %strided.vec242.1, %strided.vec245.1 %interleaved.vec246.1 = shufflevector <4 x double> %557, <4 x double> %558, <8 x i32> store <8 x double> %interleaved.vec246.1, ptr %555, align 8, !noalias !2355 %interleaved.vec247.1 = shufflevector <4 x double> %559, <4 x double> %560, <8 x i32> store <8 x double> %interleaved.vec247.1, ptr %556, align 8, !noalias !2355 %index.next248.1 = add nuw nsw i64 %index239, 8 %561 = icmp eq i64 %index.next248.1, 256 br i1 %561, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha7d50c0658794517E.exit", label %vector.body238, !llvm.loop !2362 bb48.i.i.i339: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325, %middle.block76 %_2.i.i.i2328 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325 ], [ false, %middle.block76 ] %iter.i.i.i120.sroa.192.0219 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325 ], [ 1, %middle.block76 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0219, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2376 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2381 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2386 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2391 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2396 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2401 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2406 = getelementptr inbounds %"num_complex::Complex", ptr %541, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2411 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2416 = getelementptr inbounds %"num_complex::Complex", ptr %544, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2421 = getelementptr inbounds %"num_complex::Complex", ptr %543, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2426 = getelementptr inbounds %"num_complex::Complex", ptr %545, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2431 = getelementptr inbounds %"num_complex::Complex", ptr %542, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2436 = getelementptr inbounds %"num_complex::Complex", ptr %547, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i2441 = getelementptr inbounds %"num_complex::Complex", ptr %546, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i2446 = getelementptr inbounds %"num_complex::Complex", ptr %548, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %start1.i.i.i.i.i.i2449 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0219, 8 %data.i.i.i.i.i.i2450 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i2449 %562 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 128 %563 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 64 %564 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 32 %565 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 16 %566 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 48 %567 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 96 %568 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 80 %569 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 112 %570 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 192 %571 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 160 %572 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 144 %573 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 176 %574 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 224 %575 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 208 %576 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 240 %577 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 15, i32 1 %wf.1.i.i.i403 = load double, ptr %577, align 8, !noalias !2355, !noundef !3 %_6.i483.i.i.i908 = fneg double %wf.1.i.i.i403 %578 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 14, i32 1 %we.1.i.i.i401 = load double, ptr %578, align 8, !noalias !2355, !noundef !3 %_6.i486.i.i.i903 = fneg double %we.1.i.i.i401 %579 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 13, i32 1 %wd.1.i.i.i399 = load double, ptr %579, align 8, !noalias !2355, !noundef !3 %_6.i489.i.i.i898 = fneg double %wd.1.i.i.i399 %580 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 12, i32 1 %wc.1.i.i.i397 = load double, ptr %580, align 8, !noalias !2355, !noundef !3 %_6.i492.i.i.i893 = fneg double %wc.1.i.i.i397 %581 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 11, i32 1 %wb.1.i.i.i395 = load double, ptr %581, align 8, !noalias !2355, !noundef !3 %_6.i495.i.i.i888 = fneg double %wb.1.i.i.i395 %582 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 10, i32 1 %wa.1.i.i.i393 = load double, ptr %582, align 8, !noalias !2355, !noundef !3 %_6.i498.i.i.i883 = fneg double %wa.1.i.i.i393 %583 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 9, i32 1 %w9.1.i.i.i391 = load double, ptr %583, align 8, !noalias !2355, !noundef !3 %_6.i501.i.i.i878 = fneg double %w9.1.i.i.i391 %584 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 8, i32 1 %w8.1.i.i.i389 = load double, ptr %584, align 8, !noalias !2355, !noundef !3 %_6.i504.i.i.i873 = fneg double %w8.1.i.i.i389 %585 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 7, i32 1 %w7.1.i.i.i387 = load double, ptr %585, align 8, !noalias !2355, !noundef !3 %_6.i507.i.i.i868 = fneg double %w7.1.i.i.i387 %586 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 6, i32 1 %w6.1.i.i.i385 = load double, ptr %586, align 8, !noalias !2355, !noundef !3 %_6.i510.i.i.i863 = fneg double %w6.1.i.i.i385 %587 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 5, i32 1 %w5.1.i.i.i383 = load double, ptr %587, align 8, !noalias !2355, !noundef !3 %_6.i513.i.i.i858 = fneg double %w5.1.i.i.i383 %588 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 4, i32 1 %w4.1.i.i.i381 = load double, ptr %588, align 8, !noalias !2355, !noundef !3 %_6.i516.i.i.i853 = fneg double %w4.1.i.i.i381 %589 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 3, i32 1 %w3.1.i.i.i379 = load double, ptr %589, align 8, !noalias !2355, !noundef !3 %_6.i519.i.i.i848 = fneg double %w3.1.i.i.i379 %590 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 2, i32 1 %w2.1.i.i.i377 = load double, ptr %590, align 8, !noalias !2355, !noundef !3 %_6.i522.i.i.i843 = fneg double %w2.1.i.i.i377 %591 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 1, i32 1 %w1.1.i.i.i375 = load double, ptr %591, align 8, !noalias !2355, !noundef !3 %_6.i525.i.i.i838 = fneg double %w1.1.i.i.i375 %592 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 15 %wf.0.i.i.i402 = load double, ptr %592, align 8, !noalias !2355, !noundef !3 %593 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 14 %we.0.i.i.i400 = load double, ptr %593, align 8, !noalias !2355, !noundef !3 %594 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 13 %wd.0.i.i.i398 = load double, ptr %594, align 8, !noalias !2355, !noundef !3 %595 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 12 %wc.0.i.i.i396 = load double, ptr %595, align 8, !noalias !2355, !noundef !3 %596 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 11 %wb.0.i.i.i394 = load double, ptr %596, align 8, !noalias !2355, !noundef !3 %597 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 10 %wa.0.i.i.i392 = load double, ptr %597, align 8, !noalias !2355, !noundef !3 %598 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 9 %w9.0.i.i.i390 = load double, ptr %598, align 8, !noalias !2355, !noundef !3 %599 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 8 %w8.0.i.i.i388 = load double, ptr %599, align 8, !noalias !2355, !noundef !3 %600 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 7 %w7.0.i.i.i386 = load double, ptr %600, align 8, !noalias !2355, !noundef !3 %601 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 6 %w6.0.i.i.i384 = load double, ptr %601, align 8, !noalias !2355, !noundef !3 %602 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 5 %w5.0.i.i.i382 = load double, ptr %602, align 8, !noalias !2355, !noundef !3 %603 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 4 %w4.0.i.i.i380 = load double, ptr %603, align 8, !noalias !2355, !noundef !3 %604 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 3 %w3.0.i.i.i378 = load double, ptr %604, align 8, !noalias !2355, !noundef !3 %605 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 2 %w2.0.i.i.i376 = load double, ptr %605, align 8, !noalias !2355, !noundef !3 %606 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 1 %w1.0.i.i.i374 = load double, ptr %606, align 8, !noalias !2355, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i838, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w1.0.i.i.i374, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w1.1.i.i.i375, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i522.i.i.i843, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w2.0.i.i.i376, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w2.1.i.i.i377, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i519.i.i.i848, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w3.0.i.i.i378, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w3.1.i.i.i379, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert149 = insertelement <4 x double> poison, double %_6.i516.i.i.i853, i64 0 %broadcast.splat150 = shufflevector <4 x double> %broadcast.splatinsert149, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert151 = insertelement <4 x double> poison, double %w4.0.i.i.i380, i64 0 %broadcast.splat152 = shufflevector <4 x double> %broadcast.splatinsert151, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert153 = insertelement <4 x double> poison, double %w4.1.i.i.i381, i64 0 %broadcast.splat154 = shufflevector <4 x double> %broadcast.splatinsert153, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert156 = insertelement <4 x double> poison, double %_6.i513.i.i.i858, i64 0 %broadcast.splat157 = shufflevector <4 x double> %broadcast.splatinsert156, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert158 = insertelement <4 x double> poison, double %w5.0.i.i.i382, i64 0 %broadcast.splat159 = shufflevector <4 x double> %broadcast.splatinsert158, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert160 = insertelement <4 x double> poison, double %w5.1.i.i.i383, i64 0 %broadcast.splat161 = shufflevector <4 x double> %broadcast.splatinsert160, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i510.i.i.i863, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w6.0.i.i.i384, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w6.1.i.i.i385, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert170 = insertelement <4 x double> poison, double %_6.i507.i.i.i868, i64 0 %broadcast.splat171 = shufflevector <4 x double> %broadcast.splatinsert170, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert172 = insertelement <4 x double> poison, double %w7.0.i.i.i386, i64 0 %broadcast.splat173 = shufflevector <4 x double> %broadcast.splatinsert172, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert174 = insertelement <4 x double> poison, double %w7.1.i.i.i387, i64 0 %broadcast.splat175 = shufflevector <4 x double> %broadcast.splatinsert174, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert177 = insertelement <4 x double> poison, double %_6.i504.i.i.i873, i64 0 %broadcast.splat178 = shufflevector <4 x double> %broadcast.splatinsert177, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert179 = insertelement <4 x double> poison, double %w8.0.i.i.i388, i64 0 %broadcast.splat180 = shufflevector <4 x double> %broadcast.splatinsert179, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert181 = insertelement <4 x double> poison, double %w8.1.i.i.i389, i64 0 %broadcast.splat182 = shufflevector <4 x double> %broadcast.splatinsert181, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i501.i.i.i878, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w9.0.i.i.i390, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w9.1.i.i.i391, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert191 = insertelement <4 x double> poison, double %_6.i498.i.i.i883, i64 0 %broadcast.splat192 = shufflevector <4 x double> %broadcast.splatinsert191, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert193 = insertelement <4 x double> poison, double %wa.0.i.i.i392, i64 0 %broadcast.splat194 = shufflevector <4 x double> %broadcast.splatinsert193, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert195 = insertelement <4 x double> poison, double %wa.1.i.i.i393, i64 0 %broadcast.splat196 = shufflevector <4 x double> %broadcast.splatinsert195, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert198 = insertelement <4 x double> poison, double %_6.i495.i.i.i888, i64 0 %broadcast.splat199 = shufflevector <4 x double> %broadcast.splatinsert198, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert200 = insertelement <4 x double> poison, double %wb.0.i.i.i394, i64 0 %broadcast.splat201 = shufflevector <4 x double> %broadcast.splatinsert200, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert202 = insertelement <4 x double> poison, double %wb.1.i.i.i395, i64 0 %broadcast.splat203 = shufflevector <4 x double> %broadcast.splatinsert202, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i492.i.i.i893, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert207 = insertelement <4 x double> poison, double %wc.0.i.i.i396, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert209 = insertelement <4 x double> poison, double %wc.1.i.i.i397, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert212 = insertelement <4 x double> poison, double %_6.i489.i.i.i898, i64 0 %broadcast.splat213 = shufflevector <4 x double> %broadcast.splatinsert212, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert214 = insertelement <4 x double> poison, double %wd.0.i.i.i398, i64 0 %broadcast.splat215 = shufflevector <4 x double> %broadcast.splatinsert214, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert216 = insertelement <4 x double> poison, double %wd.1.i.i.i399, i64 0 %broadcast.splat217 = shufflevector <4 x double> %broadcast.splatinsert216, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert219 = insertelement <4 x double> poison, double %_6.i486.i.i.i903, i64 0 %broadcast.splat220 = shufflevector <4 x double> %broadcast.splatinsert219, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert221 = insertelement <4 x double> poison, double %we.0.i.i.i400, i64 0 %broadcast.splat222 = shufflevector <4 x double> %broadcast.splatinsert221, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert223 = insertelement <4 x double> poison, double %we.1.i.i.i401, i64 0 %broadcast.splat224 = shufflevector <4 x double> %broadcast.splatinsert223, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i483.i.i.i908, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %wf.0.i.i.i402, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert230 = insertelement <4 x double> poison, double %wf.1.i.i.i403, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb48.i.i.i339 %index81 = phi i64 [ 0, %bb48.i.i.i339 ], [ %index.next233, %vector.body80 ] %607 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 %index81 %608 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2376, i64 %index81 %609 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2381, i64 %index81 %610 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2386, i64 %index81 %611 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2391, i64 %index81 %612 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2396, i64 %index81 %613 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2401, i64 %index81 %614 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2406, i64 %index81 %615 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2411, i64 %index81 %616 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2416, i64 %index81 %617 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2421, i64 %index81 %618 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2426, i64 %index81 %619 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2431, i64 %index81 %620 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2436, i64 %index81 %621 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i2441, i64 %index81 %622 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i2446, i64 %index81 %wide.vec82 = load <8 x double>, ptr %607, align 8, !noalias !2355 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %608, align 8, !noalias !2355 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %609, align 8, !noalias !2355 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %610, align 8, !noalias !2355 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %611, align 8, !noalias !2355 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %612, align 8, !noalias !2355 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %613, align 8, !noalias !2355 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %614, align 8, !noalias !2355 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %wide.vec106 = load <8 x double>, ptr %615, align 8, !noalias !2355 %strided.vec107 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %strided.vec108 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %wide.vec109 = load <8 x double>, ptr %616, align 8, !noalias !2355 %strided.vec110 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %strided.vec111 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %wide.vec112 = load <8 x double>, ptr %617, align 8, !noalias !2355 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %wide.vec115 = load <8 x double>, ptr %618, align 8, !noalias !2355 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %619, align 8, !noalias !2355 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %wide.vec121 = load <8 x double>, ptr %620, align 8, !noalias !2355 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %wide.vec124 = load <8 x double>, ptr %621, align 8, !noalias !2355 %strided.vec125 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %strided.vec126 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %wide.vec127 = load <8 x double>, ptr %622, align 8, !noalias !2355 %strided.vec128 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %strided.vec129 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %623 = fadd <4 x double> %strided.vec83, %strided.vec107 %624 = fadd <4 x double> %strided.vec84, %strided.vec108 %625 = fsub <4 x double> %strided.vec83, %strided.vec107 %626 = fsub <4 x double> %strided.vec84, %strided.vec108 %627 = fadd <4 x double> %strided.vec95, %strided.vec119 %628 = fadd <4 x double> %strided.vec96, %strided.vec120 %629 = fsub <4 x double> %strided.vec95, %strided.vec119 %630 = fsub <4 x double> %strided.vec96, %strided.vec120 %631 = fadd <4 x double> %strided.vec89, %strided.vec113 %632 = fadd <4 x double> %strided.vec90, %strided.vec114 %633 = fsub <4 x double> %strided.vec89, %strided.vec113 %634 = fsub <4 x double> %strided.vec90, %strided.vec114 %635 = fadd <4 x double> %strided.vec101, %strided.vec125 %636 = fadd <4 x double> %strided.vec102, %strided.vec126 %637 = fsub <4 x double> %strided.vec101, %strided.vec125 %638 = fsub <4 x double> %strided.vec102, %strided.vec126 %639 = fadd <4 x double> %strided.vec86, %strided.vec110 %640 = fadd <4 x double> %strided.vec87, %strided.vec111 %641 = fsub <4 x double> %strided.vec86, %strided.vec110 %642 = fsub <4 x double> %strided.vec87, %strided.vec111 %643 = fadd <4 x double> %strided.vec98, %strided.vec122 %644 = fadd <4 x double> %strided.vec99, %strided.vec123 %645 = fsub <4 x double> %strided.vec98, %strided.vec122 %646 = fsub <4 x double> %strided.vec99, %strided.vec123 %647 = fadd <4 x double> %strided.vec92, %strided.vec116 %648 = fadd <4 x double> %strided.vec93, %strided.vec117 %649 = fsub <4 x double> %strided.vec92, %strided.vec116 %650 = fsub <4 x double> %strided.vec93, %strided.vec117 %651 = fadd <4 x double> %strided.vec104, %strided.vec128 %652 = fadd <4 x double> %strided.vec105, %strided.vec129 %653 = fsub <4 x double> %strided.vec104, %strided.vec128 %654 = fsub <4 x double> %strided.vec105, %strided.vec129 %655 = fadd <4 x double> %623, %627 %656 = fadd <4 x double> %624, %628 %657 = fadd <4 x double> %625, %630 %658 = fsub <4 x double> %626, %629 %659 = fsub <4 x double> %623, %627 %660 = fsub <4 x double> %624, %628 %661 = fsub <4 x double> %625, %630 %662 = fadd <4 x double> %626, %629 %663 = fadd <4 x double> %631, %635 %664 = fadd <4 x double> %632, %636 %665 = fadd <4 x double> %633, %638 %666 = fsub <4 x double> %634, %637 %667 = fsub <4 x double> %631, %635 %668 = fsub <4 x double> %632, %636 %669 = fsub <4 x double> %633, %638 %670 = fadd <4 x double> %634, %637 %671 = fadd <4 x double> %639, %643 %672 = fadd <4 x double> %640, %644 %673 = fadd <4 x double> %641, %646 %674 = fsub <4 x double> %642, %645 %675 = fsub <4 x double> %639, %643 %676 = fsub <4 x double> %640, %644 %677 = fsub <4 x double> %641, %646 %678 = fadd <4 x double> %642, %645 %679 = fadd <4 x double> %647, %651 %680 = fadd <4 x double> %648, %652 %681 = fadd <4 x double> %649, %654 %682 = fsub <4 x double> %650, %653 %683 = fsub <4 x double> %647, %651 %684 = fsub <4 x double> %648, %652 %685 = fsub <4 x double> %649, %654 %686 = fadd <4 x double> %650, %653 %687 = fadd <4 x double> %666, %665 %688 = fsub <4 x double> %666, %665 %689 = fmul <4 x double> %687, %690 = fmul <4 x double> %688, %691 = fsub <4 x double> %669, %670 %692 = fadd <4 x double> %670, %669 %693 = fmul <4 x double> %691, %694 = fmul <4 x double> %692, %695 = fadd <4 x double> %655, %663 %696 = fadd <4 x double> %656, %664 %697 = fadd <4 x double> %657, %689 %698 = fadd <4 x double> %658, %690 %699 = fadd <4 x double> %659, %668 %700 = fsub <4 x double> %660, %667 %701 = fsub <4 x double> %661, %693 %702 = fsub <4 x double> %662, %694 %703 = fsub <4 x double> %655, %663 %704 = fsub <4 x double> %656, %664 %705 = fsub <4 x double> %657, %689 %706 = fsub <4 x double> %658, %690 %707 = fsub <4 x double> %659, %668 %708 = fadd <4 x double> %660, %667 %709 = fadd <4 x double> %661, %693 %710 = fadd <4 x double> %662, %694 %711 = fadd <4 x double> %682, %681 %712 = fsub <4 x double> %682, %681 %713 = fmul <4 x double> %711, %714 = fmul <4 x double> %712, %715 = fsub <4 x double> %685, %686 %716 = fadd <4 x double> %686, %685 %717 = fmul <4 x double> %715, %718 = fmul <4 x double> %716, %719 = fadd <4 x double> %671, %679 %720 = fadd <4 x double> %672, %680 %721 = fadd <4 x double> %673, %713 %722 = fadd <4 x double> %674, %714 %723 = fadd <4 x double> %675, %684 %724 = fsub <4 x double> %676, %683 %725 = fsub <4 x double> %677, %717 %726 = fsub <4 x double> %678, %718 %727 = fsub <4 x double> %671, %679 %728 = fsub <4 x double> %672, %680 %729 = fsub <4 x double> %673, %713 %730 = fsub <4 x double> %674, %714 %731 = fsub <4 x double> %675, %684 %732 = fadd <4 x double> %676, %683 %733 = fadd <4 x double> %677, %717 %734 = fadd <4 x double> %678, %718 %735 = fmul <4 x double> %722, %736 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %721, <4 x double> , <4 x double> %735) %737 = fmul <4 x double> %721, %738 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %722, <4 x double> , <4 x double> %737) %739 = fadd <4 x double> %724, %723 %740 = fsub <4 x double> %724, %723 %741 = fmul <4 x double> %739, %742 = fmul <4 x double> %740, %743 = fmul <4 x double> %726, %744 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %725, <4 x double> , <4 x double> %743) %745 = fmul <4 x double> %725, %746 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %726, <4 x double> , <4 x double> %745) %747 = fmul <4 x double> %730, %748 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %729, <4 x double> , <4 x double> %747) %749 = fmul <4 x double> %729, %750 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %730, <4 x double> , <4 x double> %749) %751 = fsub <4 x double> %731, %732 %752 = fadd <4 x double> %732, %731 %753 = fmul <4 x double> %751, %754 = fmul <4 x double> %752, %755 = fmul <4 x double> %734, %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %733, <4 x double> , <4 x double> %755) %757 = fmul <4 x double> %733, %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %734, <4 x double> , <4 x double> %757) %759 = fadd <4 x double> %695, %719 %760 = fadd <4 x double> %696, %720 %761 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 %index81 %interleaved.vec = shufflevector <4 x double> %759, <4 x double> %760, <8 x i32> store <8 x double> %interleaved.vec, ptr %761, align 8, !noalias !2355 %762 = fadd <4 x double> %697, %736 %763 = fadd <4 x double> %698, %738 %764 = fmul <4 x double> %763, %broadcast.splat %765 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %762, <4 x double> %764) %766 = fmul <4 x double> %broadcast.splat133, %762 %767 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %763, <4 x double> %766) %768 = getelementptr inbounds %"num_complex::Complex", ptr %565, i64 %index81 %interleaved.vec134 = shufflevector <4 x double> %765, <4 x double> %767, <8 x i32> store <8 x double> %interleaved.vec134, ptr %768, align 8, !noalias !2355 %769 = fadd <4 x double> %699, %741 %770 = fadd <4 x double> %700, %742 %771 = fmul <4 x double> %770, %broadcast.splat136 %772 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %769, <4 x double> %771) %773 = fmul <4 x double> %broadcast.splat140, %769 %774 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %770, <4 x double> %773) %775 = getelementptr inbounds %"num_complex::Complex", ptr %564, i64 %index81 %interleaved.vec141 = shufflevector <4 x double> %772, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec141, ptr %775, align 8, !noalias !2355 %776 = fadd <4 x double> %701, %744 %777 = fadd <4 x double> %702, %746 %778 = fmul <4 x double> %777, %broadcast.splat143 %779 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %776, <4 x double> %778) %780 = fmul <4 x double> %broadcast.splat147, %776 %781 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %777, <4 x double> %780) %782 = getelementptr inbounds %"num_complex::Complex", ptr %566, i64 %index81 %interleaved.vec148 = shufflevector <4 x double> %779, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec148, ptr %782, align 8, !noalias !2355 %783 = fadd <4 x double> %703, %728 %784 = fsub <4 x double> %704, %727 %785 = fmul <4 x double> %784, %broadcast.splat150 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %783, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat154, %783 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %784, <4 x double> %787) %789 = getelementptr inbounds %"num_complex::Complex", ptr %563, i64 %index81 %interleaved.vec155 = shufflevector <4 x double> %786, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec155, ptr %789, align 8, !noalias !2355 %790 = fsub <4 x double> %705, %748 %791 = fsub <4 x double> %706, %750 %792 = fmul <4 x double> %791, %broadcast.splat157 %793 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %790, <4 x double> %792) %794 = fmul <4 x double> %broadcast.splat161, %790 %795 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %791, <4 x double> %794) %796 = getelementptr inbounds %"num_complex::Complex", ptr %568, i64 %index81 %interleaved.vec162 = shufflevector <4 x double> %793, <4 x double> %795, <8 x i32> store <8 x double> %interleaved.vec162, ptr %796, align 8, !noalias !2355 %797 = fsub <4 x double> %707, %753 %798 = fsub <4 x double> %708, %754 %799 = fmul <4 x double> %798, %broadcast.splat164 %800 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %797, <4 x double> %799) %801 = fmul <4 x double> %broadcast.splat168, %797 %802 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %798, <4 x double> %801) %803 = getelementptr inbounds %"num_complex::Complex", ptr %567, i64 %index81 %interleaved.vec169 = shufflevector <4 x double> %800, <4 x double> %802, <8 x i32> store <8 x double> %interleaved.vec169, ptr %803, align 8, !noalias !2355 %804 = fsub <4 x double> %709, %756 %805 = fsub <4 x double> %710, %758 %806 = fmul <4 x double> %805, %broadcast.splat171 %807 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %804, <4 x double> %806) %808 = fmul <4 x double> %broadcast.splat175, %804 %809 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %805, <4 x double> %808) %810 = getelementptr inbounds %"num_complex::Complex", ptr %569, i64 %index81 %interleaved.vec176 = shufflevector <4 x double> %807, <4 x double> %809, <8 x i32> store <8 x double> %interleaved.vec176, ptr %810, align 8, !noalias !2355 %811 = fsub <4 x double> %695, %719 %812 = fsub <4 x double> %696, %720 %813 = fmul <4 x double> %812, %broadcast.splat178 %814 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %811, <4 x double> %813) %815 = fmul <4 x double> %broadcast.splat182, %811 %816 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %812, <4 x double> %815) %817 = getelementptr inbounds %"num_complex::Complex", ptr %562, i64 %index81 %interleaved.vec183 = shufflevector <4 x double> %814, <4 x double> %816, <8 x i32> store <8 x double> %interleaved.vec183, ptr %817, align 8, !noalias !2355 %818 = fsub <4 x double> %697, %736 %819 = fsub <4 x double> %698, %738 %820 = fmul <4 x double> %819, %broadcast.splat185 %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %818, <4 x double> %820) %822 = fmul <4 x double> %broadcast.splat189, %818 %823 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %819, <4 x double> %822) %824 = getelementptr inbounds %"num_complex::Complex", ptr %572, i64 %index81 %interleaved.vec190 = shufflevector <4 x double> %821, <4 x double> %823, <8 x i32> store <8 x double> %interleaved.vec190, ptr %824, align 8, !noalias !2355 %825 = fsub <4 x double> %699, %741 %826 = fsub <4 x double> %700, %742 %827 = fmul <4 x double> %826, %broadcast.splat192 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %825, <4 x double> %827) %829 = fmul <4 x double> %broadcast.splat196, %825 %830 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %826, <4 x double> %829) %831 = getelementptr inbounds %"num_complex::Complex", ptr %571, i64 %index81 %interleaved.vec197 = shufflevector <4 x double> %828, <4 x double> %830, <8 x i32> store <8 x double> %interleaved.vec197, ptr %831, align 8, !noalias !2355 %832 = fsub <4 x double> %701, %744 %833 = fsub <4 x double> %702, %746 %834 = fmul <4 x double> %833, %broadcast.splat199 %835 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %832, <4 x double> %834) %836 = fmul <4 x double> %broadcast.splat203, %832 %837 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %833, <4 x double> %836) %838 = getelementptr inbounds %"num_complex::Complex", ptr %573, i64 %index81 %interleaved.vec204 = shufflevector <4 x double> %835, <4 x double> %837, <8 x i32> store <8 x double> %interleaved.vec204, ptr %838, align 8, !noalias !2355 %839 = fsub <4 x double> %703, %728 %840 = fadd <4 x double> %704, %727 %841 = fmul <4 x double> %840, %broadcast.splat206 %842 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %839, <4 x double> %841) %843 = fmul <4 x double> %broadcast.splat210, %839 %844 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %840, <4 x double> %843) %845 = getelementptr inbounds %"num_complex::Complex", ptr %570, i64 %index81 %interleaved.vec211 = shufflevector <4 x double> %842, <4 x double> %844, <8 x i32> store <8 x double> %interleaved.vec211, ptr %845, align 8, !noalias !2355 %846 = fadd <4 x double> %705, %748 %847 = fadd <4 x double> %706, %750 %848 = fmul <4 x double> %847, %broadcast.splat213 %849 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %846, <4 x double> %848) %850 = fmul <4 x double> %broadcast.splat217, %846 %851 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %847, <4 x double> %850) %852 = getelementptr inbounds %"num_complex::Complex", ptr %575, i64 %index81 %interleaved.vec218 = shufflevector <4 x double> %849, <4 x double> %851, <8 x i32> store <8 x double> %interleaved.vec218, ptr %852, align 8, !noalias !2355 %853 = fadd <4 x double> %707, %753 %854 = fadd <4 x double> %708, %754 %855 = fmul <4 x double> %854, %broadcast.splat220 %856 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %853, <4 x double> %855) %857 = fmul <4 x double> %broadcast.splat224, %853 %858 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %854, <4 x double> %857) %859 = getelementptr inbounds %"num_complex::Complex", ptr %574, i64 %index81 %interleaved.vec225 = shufflevector <4 x double> %856, <4 x double> %858, <8 x i32> store <8 x double> %interleaved.vec225, ptr %859, align 8, !noalias !2355 %860 = fadd <4 x double> %709, %756 %861 = fadd <4 x double> %710, %758 %862 = fmul <4 x double> %861, %broadcast.splat227 %863 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %860, <4 x double> %862) %864 = fmul <4 x double> %broadcast.splat231, %860 %865 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %861, <4 x double> %864) %866 = getelementptr inbounds %"num_complex::Complex", ptr %576, i64 %index81 %interleaved.vec232 = shufflevector <4 x double> %863, <4 x double> %865, <8 x i32> store <8 x double> %interleaved.vec232, ptr %866, align 8, !noalias !2355 %index.next233 = add nuw i64 %index81, 4 %867 = icmp eq i64 %index.next233, 16 br i1 %867, label %middle.block76, label %vector.body80, !llvm.loop !2363 middle.block76: ; preds = %vector.body80 br i1 %_2.i.i.i2328, label %bb48.i.i.i339, label %vector.body238 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha7d50c0658794517E.exit": ; preds = %vector.body238 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2355 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h09a01f119f96a509E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h67ccc7e035e4b017E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0abd4df83fba86e1E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2364 store i64 1024, ptr %n.i, align 8, !noalias !2364 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2364 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2364 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2364 store ptr null, ptr %_16.i, align 8, !noalias !2364 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2364 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2364 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2364 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2364 store ptr null, ptr %_24.i, align 8, !noalias !2364 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2364 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2364 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2364 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2364 store ptr null, ptr %_32.i, align 8, !noalias !2364 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2364 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2364 store i64 %w.1, ptr %_34.i, align 8, !noalias !2364 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2364 store ptr null, ptr %_40.i, align 8, !noalias !2364 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2364 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !2364 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !2364 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !2364 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !2364 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !2364 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !2364 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !2364 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !2364 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !2364 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fadd <4 x double> %75, %80 %92 = fsub <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fsub <4 x double> %75, %80 %96 = fadd <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %88 %100 = fsub <4 x double> %84, %87 %101 = fadd <4 x double> %100, %99 %102 = fsub <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fsub <4 x double> %83, %88 %108 = fadd <4 x double> %84, %87 %109 = fsub <4 x double> %107, %108 %110 = fadd <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !2364 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !2364 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !2364 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !2364 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !2364 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !2364 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !2364 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !2364 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !2364 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !2364 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !2364 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !2364 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !2364 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !2364 %141 = fadd <4 x double> %93, %106 %142 = fsub <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !2364 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !2364 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !2364 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !2364 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !2364 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !2364 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !2364 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !2364 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !2364 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !2364 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !2364 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !2364 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !2364 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !2364 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !2364 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !2364 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !2364 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !2364 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !2364 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !2364 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !2364 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !2364 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !2364 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !2364 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !2364 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !2364 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !2364 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !2364 %205 = fsub <4 x double> %93, %106 %206 = fadd <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !2364 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !2364 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !2364 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !2364 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !2364 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !2364 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !2364 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !2364 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !2364 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !2364 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !2364 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !2364 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !2364 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !2364 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 128 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, label %vector.body, !llvm.loop !2367 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 br label %bb32.i.i.i.i bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, %middle.block36 %iter.i.i.i.i.sroa.104.0178 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703 ], [ %367, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i754 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i759 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i764 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %start1.i.i.i.i.i.i767 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 6 %data.i.i.i.i.i.i768 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i767 %245 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 32 %246 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 16 %247 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 8 %248 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 24 %249 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 48 %250 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 40 %251 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 56 %252 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %252, align 8, !noalias !2364, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %253 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %253, align 8, !noalias !2364, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %254 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %254, align 8, !noalias !2364, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %255 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %255, align 8, !noalias !2364, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %256 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %256, align 8, !noalias !2364, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %257 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %257, align 8, !noalias !2364, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %258 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %258, align 8, !noalias !2364, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %259 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7 %w7.0.i.i.i.i = load double, ptr %259, align 8, !noalias !2364, !noundef !3 %260 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6 %w6.0.i.i.i.i = load double, ptr %260, align 8, !noalias !2364, !noundef !3 %261 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5 %w5.0.i.i.i.i = load double, ptr %261, align 8, !noalias !2364, !noundef !3 %262 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4 %w4.0.i.i.i.i = load double, ptr %262, align 8, !noalias !2364, !noundef !3 %263 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3 %w3.0.i.i.i.i = load double, ptr %263, align 8, !noalias !2364, !noundef !3 %264 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2 %w2.0.i.i.i.i = load double, ptr %264, align 8, !noalias !2364, !noundef !3 %265 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1 %w1.0.i.i.i.i = load double, ptr %265, align 8, !noalias !2364, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i.i %index41 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next113, %vector.body40 ] %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729, i64 %index41 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734, i64 %index41 %268 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739, i64 %index41 %269 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744, i64 %index41 %270 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749, i64 %index41 %271 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i754, i64 %index41 %272 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i759, i64 %index41 %273 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i764, i64 %index41 %wide.vec42 = load <8 x double>, ptr %266, align 8, !noalias !2364 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %267, align 8, !noalias !2364 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %268, align 8, !noalias !2364 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %269, align 8, !noalias !2364 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %270, align 8, !noalias !2364 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %271, align 8, !noalias !2364 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %272, align 8, !noalias !2364 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %273, align 8, !noalias !2364 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %274 = fadd <4 x double> %strided.vec43, %strided.vec55 %275 = fadd <4 x double> %strided.vec44, %strided.vec56 %276 = fsub <4 x double> %strided.vec43, %strided.vec55 %277 = fsub <4 x double> %strided.vec44, %strided.vec56 %278 = fadd <4 x double> %strided.vec49, %strided.vec61 %279 = fadd <4 x double> %strided.vec50, %strided.vec62 %280 = fsub <4 x double> %strided.vec49, %strided.vec61 %281 = fsub <4 x double> %strided.vec50, %strided.vec62 %282 = fadd <4 x double> %strided.vec46, %strided.vec58 %283 = fadd <4 x double> %strided.vec47, %strided.vec59 %284 = fsub <4 x double> %strided.vec46, %strided.vec58 %285 = fsub <4 x double> %strided.vec47, %strided.vec59 %286 = fadd <4 x double> %strided.vec52, %strided.vec64 %287 = fadd <4 x double> %strided.vec53, %strided.vec65 %288 = fsub <4 x double> %strided.vec52, %strided.vec64 %289 = fsub <4 x double> %strided.vec53, %strided.vec65 %290 = fadd <4 x double> %274, %278 %291 = fadd <4 x double> %275, %279 %292 = fadd <4 x double> %276, %281 %293 = fsub <4 x double> %277, %280 %294 = fsub <4 x double> %274, %278 %295 = fsub <4 x double> %275, %279 %296 = fsub <4 x double> %276, %281 %297 = fadd <4 x double> %277, %280 %298 = fadd <4 x double> %282, %286 %299 = fadd <4 x double> %283, %287 %300 = fadd <4 x double> %284, %289 %301 = fsub <4 x double> %285, %288 %302 = fadd <4 x double> %301, %300 %303 = fsub <4 x double> %301, %300 %304 = fmul <4 x double> %302, %305 = fmul <4 x double> %303, %306 = fsub <4 x double> %282, %286 %307 = fsub <4 x double> %283, %287 %308 = fsub <4 x double> %284, %289 %309 = fadd <4 x double> %285, %288 %310 = fsub <4 x double> %308, %309 %311 = fadd <4 x double> %309, %308 %312 = fmul <4 x double> %310, %313 = fmul <4 x double> %311, %314 = fadd <4 x double> %290, %298 %315 = fadd <4 x double> %291, %299 %316 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 %index41 %interleaved.vec = shufflevector <4 x double> %314, <4 x double> %315, <8 x i32> store <8 x double> %interleaved.vec, ptr %316, align 8, !noalias !2364 %317 = fadd <4 x double> %292, %304 %318 = fadd <4 x double> %293, %305 %319 = fmul <4 x double> %318, %broadcast.splat %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %317, <4 x double> %319) %321 = fmul <4 x double> %broadcast.splat69, %317 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %318, <4 x double> %321) %323 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %320, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec70, ptr %323, align 8, !noalias !2364 %324 = fadd <4 x double> %294, %307 %325 = fsub <4 x double> %295, %306 %326 = fmul <4 x double> %325, %broadcast.splat72 %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %324, <4 x double> %326) %328 = fmul <4 x double> %broadcast.splat76, %324 %329 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %325, <4 x double> %328) %330 = getelementptr inbounds %"num_complex::Complex", ptr %246, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %327, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec77, ptr %330, align 8, !noalias !2364 %331 = fsub <4 x double> %296, %312 %332 = fsub <4 x double> %297, %313 %333 = fmul <4 x double> %332, %broadcast.splat79 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %331, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat83, %331 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %332, <4 x double> %335) %337 = getelementptr inbounds %"num_complex::Complex", ptr %248, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %334, <4 x double> %336, <8 x i32> store <8 x double> %interleaved.vec84, ptr %337, align 8, !noalias !2364 %338 = fsub <4 x double> %290, %298 %339 = fsub <4 x double> %291, %299 %340 = fmul <4 x double> %339, %broadcast.splat86 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %338, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat90, %338 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %339, <4 x double> %342) %344 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %341, <4 x double> %343, <8 x i32> store <8 x double> %interleaved.vec91, ptr %344, align 8, !noalias !2364 %345 = fsub <4 x double> %292, %304 %346 = fsub <4 x double> %293, %305 %347 = fmul <4 x double> %346, %broadcast.splat93 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %345, <4 x double> %347) %349 = fmul <4 x double> %broadcast.splat97, %345 %350 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %346, <4 x double> %349) %351 = getelementptr inbounds %"num_complex::Complex", ptr %250, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %348, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec98, ptr %351, align 8, !noalias !2364 %352 = fsub <4 x double> %294, %307 %353 = fadd <4 x double> %295, %306 %354 = fmul <4 x double> %353, %broadcast.splat100 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %352, <4 x double> %354) %356 = fmul <4 x double> %broadcast.splat104, %352 %357 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %353, <4 x double> %356) %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %355, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec105, ptr %358, align 8, !noalias !2364 %359 = fadd <4 x double> %296, %312 %360 = fadd <4 x double> %297, %313 %361 = fmul <4 x double> %360, %broadcast.splat107 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %359, <4 x double> %361) %363 = fmul <4 x double> %broadcast.splat111, %359 %364 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %360, <4 x double> %363) %365 = getelementptr inbounds %"num_complex::Complex", ptr %251, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %362, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec112, ptr %365, align 8, !noalias !2364 %index.next113 = add nuw i64 %index41, 4 %366 = icmp eq i64 %index.next113, 8 br i1 %366, label %middle.block36, label %vector.body40, !llvm.loop !2368 middle.block36: ; preds = %vector.body40 %367 = add nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 1 %exitcond184.not = icmp eq i64 %367, 16 br i1 %exitcond184.not, label %bb32.i.i.i.i.i, label %bb32.i.i.i.i vector.body199: ; preds = %middle.block114, %vector.body199 %index200 = phi i64 [ %index.next209.1, %vector.body199 ], [ 0, %middle.block114 ] %368 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index200 %369 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %index200 %wide.vec201 = load <8 x double>, ptr %368, align 8, !noalias !2364 %strided.vec202 = shufflevector <8 x double> %wide.vec201, <8 x double> poison, <4 x i32> %strided.vec203 = shufflevector <8 x double> %wide.vec201, <8 x double> poison, <4 x i32> %wide.vec204 = load <8 x double>, ptr %369, align 8, !noalias !2364 %strided.vec205 = shufflevector <8 x double> %wide.vec204, <8 x double> poison, <4 x i32> %strided.vec206 = shufflevector <8 x double> %wide.vec204, <8 x double> poison, <4 x i32> %370 = fadd <4 x double> %strided.vec202, %strided.vec205 %371 = fadd <4 x double> %strided.vec203, %strided.vec206 %372 = fsub <4 x double> %strided.vec202, %strided.vec205 %373 = fsub <4 x double> %strided.vec203, %strided.vec206 %374 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index200 %interleaved.vec207 = shufflevector <4 x double> %370, <4 x double> %371, <8 x i32> store <8 x double> %interleaved.vec207, ptr %374, align 8, !noalias !2364 %375 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index200 %interleaved.vec208 = shufflevector <4 x double> %372, <4 x double> %373, <8 x i32> store <8 x double> %interleaved.vec208, ptr %375, align 8, !noalias !2364 %index.next209 = or disjoint i64 %index200, 4 %376 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next209 %377 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %index.next209 %wide.vec201.1 = load <8 x double>, ptr %376, align 8, !noalias !2364 %strided.vec202.1 = shufflevector <8 x double> %wide.vec201.1, <8 x double> poison, <4 x i32> %strided.vec203.1 = shufflevector <8 x double> %wide.vec201.1, <8 x double> poison, <4 x i32> %wide.vec204.1 = load <8 x double>, ptr %377, align 8, !noalias !2364 %strided.vec205.1 = shufflevector <8 x double> %wide.vec204.1, <8 x double> poison, <4 x i32> %strided.vec206.1 = shufflevector <8 x double> %wide.vec204.1, <8 x double> poison, <4 x i32> %378 = fadd <4 x double> %strided.vec202.1, %strided.vec205.1 %379 = fadd <4 x double> %strided.vec203.1, %strided.vec206.1 %380 = fsub <4 x double> %strided.vec202.1, %strided.vec205.1 %381 = fsub <4 x double> %strided.vec203.1, %strided.vec206.1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next209 %interleaved.vec207.1 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec207.1, ptr %382, align 8, !noalias !2364 %383 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next209 %interleaved.vec208.1 = shufflevector <4 x double> %380, <4 x double> %381, <8 x i32> store <8 x double> %interleaved.vec208.1, ptr %383, align 8, !noalias !2364 %index.next209.1 = add nuw nsw i64 %index200, 8 %384 = icmp eq i64 %index.next209.1, 512 br i1 %384, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc53a39ddb8d22cd8E.exit", label %vector.body199, !llvm.loop !2369 bb32.i.i.i.i.i: ; preds = %middle.block36, %middle.block114 %_2.i.i.i1357 = phi i1 [ false, %middle.block114 ], [ true, %middle.block36 ] %iter.i.i.i.i.i.sroa.104.0180 = phi i64 [ 1, %middle.block114 ], [ 0, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.104.0180, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1380 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1385 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1390 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1395 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1400 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i1405 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i1410 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i1415 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %start1.i.i.i.i.i.i1418 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.104.0180, 9 %data.i.i.i.i.i.i1419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i1418 %385 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 256 %386 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 128 %387 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 64 %388 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 192 %389 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 384 %390 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 320 %391 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 448 %392 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 7, i32 1 %w7.1.i.i.i.i.i = load double, ptr %392, align 8, !noalias !2364, !noundef !3 %_6.i.i.i.i.i.i = fneg double %w7.1.i.i.i.i.i %393 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 6, i32 1 %w6.1.i.i.i.i.i = load double, ptr %393, align 8, !noalias !2364, !noundef !3 %_6.i166.i.i.i.i.i = fneg double %w6.1.i.i.i.i.i %394 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 5, i32 1 %w5.1.i.i.i.i.i = load double, ptr %394, align 8, !noalias !2364, !noundef !3 %_6.i169.i.i.i.i.i = fneg double %w5.1.i.i.i.i.i %395 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 4, i32 1 %w4.1.i.i.i.i.i = load double, ptr %395, align 8, !noalias !2364, !noundef !3 %_6.i172.i.i.i.i.i = fneg double %w4.1.i.i.i.i.i %396 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 3, i32 1 %w3.1.i.i.i.i.i = load double, ptr %396, align 8, !noalias !2364, !noundef !3 %_6.i175.i.i.i.i.i = fneg double %w3.1.i.i.i.i.i %397 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 2, i32 1 %w2.1.i.i.i.i.i = load double, ptr %397, align 8, !noalias !2364, !noundef !3 %_6.i178.i.i.i.i.i = fneg double %w2.1.i.i.i.i.i %398 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 1, i32 1 %w1.1.i.i.i.i.i = load double, ptr %398, align 8, !noalias !2364, !noundef !3 %_6.i181.i.i.i.i.i = fneg double %w1.1.i.i.i.i.i %399 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 7 %w7.0.i.i.i.i.i = load double, ptr %399, align 8, !noalias !2364, !noundef !3 %400 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 6 %w6.0.i.i.i.i.i = load double, ptr %400, align 8, !noalias !2364, !noundef !3 %401 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 5 %w5.0.i.i.i.i.i = load double, ptr %401, align 8, !noalias !2364, !noundef !3 %402 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 4 %w4.0.i.i.i.i.i = load double, ptr %402, align 8, !noalias !2364, !noundef !3 %403 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 3 %w3.0.i.i.i.i.i = load double, ptr %403, align 8, !noalias !2364, !noundef !3 %404 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 2 %w2.0.i.i.i.i.i = load double, ptr %404, align 8, !noalias !2364, !noundef !3 %405 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 1 %w1.0.i.i.i.i.i = load double, ptr %405, align 8, !noalias !2364, !noundef !3 %broadcast.splatinsert145 = insertelement <4 x double> poison, double %_6.i181.i.i.i.i.i, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert147 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.i, i64 0 %broadcast.splat148 = shufflevector <4 x double> %broadcast.splatinsert147, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert149 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.i, i64 0 %broadcast.splat150 = shufflevector <4 x double> %broadcast.splatinsert149, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert152 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i.i, i64 0 %broadcast.splat153 = shufflevector <4 x double> %broadcast.splatinsert152, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert154 = insertelement <4 x double> poison, double %w2.0.i.i.i.i.i, i64 0 %broadcast.splat155 = shufflevector <4 x double> %broadcast.splatinsert154, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert156 = insertelement <4 x double> poison, double %w2.1.i.i.i.i.i, i64 0 %broadcast.splat157 = shufflevector <4 x double> %broadcast.splatinsert156, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert159 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i.i, i64 0 %broadcast.splat160 = shufflevector <4 x double> %broadcast.splatinsert159, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert161 = insertelement <4 x double> poison, double %w3.0.i.i.i.i.i, i64 0 %broadcast.splat162 = shufflevector <4 x double> %broadcast.splatinsert161, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert163 = insertelement <4 x double> poison, double %w3.1.i.i.i.i.i, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert166 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i.i, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert168 = insertelement <4 x double> poison, double %w4.0.i.i.i.i.i, i64 0 %broadcast.splat169 = shufflevector <4 x double> %broadcast.splatinsert168, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert170 = insertelement <4 x double> poison, double %w4.1.i.i.i.i.i, i64 0 %broadcast.splat171 = shufflevector <4 x double> %broadcast.splatinsert170, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert173 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i.i, i64 0 %broadcast.splat174 = shufflevector <4 x double> %broadcast.splatinsert173, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert175 = insertelement <4 x double> poison, double %w5.0.i.i.i.i.i, i64 0 %broadcast.splat176 = shufflevector <4 x double> %broadcast.splatinsert175, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert177 = insertelement <4 x double> poison, double %w5.1.i.i.i.i.i, i64 0 %broadcast.splat178 = shufflevector <4 x double> %broadcast.splatinsert177, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert180 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i.i, i64 0 %broadcast.splat181 = shufflevector <4 x double> %broadcast.splatinsert180, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert182 = insertelement <4 x double> poison, double %w6.0.i.i.i.i.i, i64 0 %broadcast.splat183 = shufflevector <4 x double> %broadcast.splatinsert182, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %w6.1.i.i.i.i.i, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert187 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.i, i64 0 %broadcast.splat188 = shufflevector <4 x double> %broadcast.splatinsert187, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert189 = insertelement <4 x double> poison, double %w7.0.i.i.i.i.i, i64 0 %broadcast.splat190 = shufflevector <4 x double> %broadcast.splatinsert189, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert191 = insertelement <4 x double> poison, double %w7.1.i.i.i.i.i, i64 0 %broadcast.splat192 = shufflevector <4 x double> %broadcast.splatinsert191, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body118 vector.body118: ; preds = %vector.body118, %bb32.i.i.i.i.i %index119 = phi i64 [ 0, %bb32.i.i.i.i.i ], [ %index.next194, %vector.body118 ] %406 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1380, i64 %index119 %407 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1385, i64 %index119 %408 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1390, i64 %index119 %409 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1395, i64 %index119 %410 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1400, i64 %index119 %411 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1405, i64 %index119 %412 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1410, i64 %index119 %413 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1415, i64 %index119 %wide.vec120 = load <8 x double>, ptr %406, align 8, !noalias !2364 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %407, align 8, !noalias !2364 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %wide.vec126 = load <8 x double>, ptr %408, align 8, !noalias !2364 %strided.vec127 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %strided.vec128 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %wide.vec129 = load <8 x double>, ptr %409, align 8, !noalias !2364 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %wide.vec132 = load <8 x double>, ptr %410, align 8, !noalias !2364 %strided.vec133 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %strided.vec134 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %wide.vec135 = load <8 x double>, ptr %411, align 8, !noalias !2364 %strided.vec136 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %strided.vec137 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %wide.vec138 = load <8 x double>, ptr %412, align 8, !noalias !2364 %strided.vec139 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %strided.vec140 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %wide.vec141 = load <8 x double>, ptr %413, align 8, !noalias !2364 %strided.vec142 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %strided.vec143 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %414 = fadd <4 x double> %strided.vec121, %strided.vec133 %415 = fadd <4 x double> %strided.vec122, %strided.vec134 %416 = fsub <4 x double> %strided.vec121, %strided.vec133 %417 = fsub <4 x double> %strided.vec122, %strided.vec134 %418 = fadd <4 x double> %strided.vec127, %strided.vec139 %419 = fadd <4 x double> %strided.vec128, %strided.vec140 %420 = fsub <4 x double> %strided.vec127, %strided.vec139 %421 = fsub <4 x double> %strided.vec128, %strided.vec140 %422 = fadd <4 x double> %strided.vec124, %strided.vec136 %423 = fadd <4 x double> %strided.vec125, %strided.vec137 %424 = fsub <4 x double> %strided.vec124, %strided.vec136 %425 = fsub <4 x double> %strided.vec125, %strided.vec137 %426 = fadd <4 x double> %strided.vec130, %strided.vec142 %427 = fadd <4 x double> %strided.vec131, %strided.vec143 %428 = fsub <4 x double> %strided.vec130, %strided.vec142 %429 = fsub <4 x double> %strided.vec131, %strided.vec143 %430 = fadd <4 x double> %414, %418 %431 = fadd <4 x double> %415, %419 %432 = fadd <4 x double> %416, %421 %433 = fsub <4 x double> %417, %420 %434 = fsub <4 x double> %414, %418 %435 = fsub <4 x double> %415, %419 %436 = fsub <4 x double> %416, %421 %437 = fadd <4 x double> %417, %420 %438 = fadd <4 x double> %422, %426 %439 = fadd <4 x double> %423, %427 %440 = fadd <4 x double> %424, %429 %441 = fsub <4 x double> %425, %428 %442 = fadd <4 x double> %441, %440 %443 = fsub <4 x double> %441, %440 %444 = fmul <4 x double> %442, %445 = fmul <4 x double> %443, %446 = fsub <4 x double> %422, %426 %447 = fsub <4 x double> %423, %427 %448 = fsub <4 x double> %424, %429 %449 = fadd <4 x double> %425, %428 %450 = fsub <4 x double> %448, %449 %451 = fadd <4 x double> %449, %448 %452 = fmul <4 x double> %450, %453 = fmul <4 x double> %451, %454 = fadd <4 x double> %430, %438 %455 = fadd <4 x double> %431, %439 %456 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 %index119 %interleaved.vec144 = shufflevector <4 x double> %454, <4 x double> %455, <8 x i32> store <8 x double> %interleaved.vec144, ptr %456, align 8, !noalias !2364 %457 = fadd <4 x double> %432, %444 %458 = fadd <4 x double> %433, %445 %459 = fmul <4 x double> %458, %broadcast.splat146 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat148, <4 x double> %457, <4 x double> %459) %461 = fmul <4 x double> %broadcast.splat150, %457 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat148, <4 x double> %458, <4 x double> %461) %463 = getelementptr inbounds %"num_complex::Complex", ptr %387, i64 %index119 %interleaved.vec151 = shufflevector <4 x double> %460, <4 x double> %462, <8 x i32> store <8 x double> %interleaved.vec151, ptr %463, align 8, !noalias !2364 %464 = fadd <4 x double> %434, %447 %465 = fsub <4 x double> %435, %446 %466 = fmul <4 x double> %465, %broadcast.splat153 %467 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat155, <4 x double> %464, <4 x double> %466) %468 = fmul <4 x double> %broadcast.splat157, %464 %469 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat155, <4 x double> %465, <4 x double> %468) %470 = getelementptr inbounds %"num_complex::Complex", ptr %386, i64 %index119 %interleaved.vec158 = shufflevector <4 x double> %467, <4 x double> %469, <8 x i32> store <8 x double> %interleaved.vec158, ptr %470, align 8, !noalias !2364 %471 = fsub <4 x double> %436, %452 %472 = fsub <4 x double> %437, %453 %473 = fmul <4 x double> %472, %broadcast.splat160 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat162, <4 x double> %471, <4 x double> %473) %475 = fmul <4 x double> %broadcast.splat164, %471 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat162, <4 x double> %472, <4 x double> %475) %477 = getelementptr inbounds %"num_complex::Complex", ptr %388, i64 %index119 %interleaved.vec165 = shufflevector <4 x double> %474, <4 x double> %476, <8 x i32> store <8 x double> %interleaved.vec165, ptr %477, align 8, !noalias !2364 %478 = fsub <4 x double> %430, %438 %479 = fsub <4 x double> %431, %439 %480 = fmul <4 x double> %479, %broadcast.splat167 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat169, <4 x double> %478, <4 x double> %480) %482 = fmul <4 x double> %broadcast.splat171, %478 %483 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat169, <4 x double> %479, <4 x double> %482) %484 = getelementptr inbounds %"num_complex::Complex", ptr %385, i64 %index119 %interleaved.vec172 = shufflevector <4 x double> %481, <4 x double> %483, <8 x i32> store <8 x double> %interleaved.vec172, ptr %484, align 8, !noalias !2364 %485 = fsub <4 x double> %432, %444 %486 = fsub <4 x double> %433, %445 %487 = fmul <4 x double> %486, %broadcast.splat174 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat176, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %broadcast.splat178, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat176, <4 x double> %486, <4 x double> %489) %491 = getelementptr inbounds %"num_complex::Complex", ptr %390, i64 %index119 %interleaved.vec179 = shufflevector <4 x double> %488, <4 x double> %490, <8 x i32> store <8 x double> %interleaved.vec179, ptr %491, align 8, !noalias !2364 %492 = fsub <4 x double> %434, %447 %493 = fadd <4 x double> %435, %446 %494 = fmul <4 x double> %493, %broadcast.splat181 %495 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat183, <4 x double> %492, <4 x double> %494) %496 = fmul <4 x double> %broadcast.splat185, %492 %497 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat183, <4 x double> %493, <4 x double> %496) %498 = getelementptr inbounds %"num_complex::Complex", ptr %389, i64 %index119 %interleaved.vec186 = shufflevector <4 x double> %495, <4 x double> %497, <8 x i32> store <8 x double> %interleaved.vec186, ptr %498, align 8, !noalias !2364 %499 = fadd <4 x double> %436, %452 %500 = fadd <4 x double> %437, %453 %501 = fmul <4 x double> %500, %broadcast.splat188 %502 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat190, <4 x double> %499, <4 x double> %501) %503 = fmul <4 x double> %broadcast.splat192, %499 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat190, <4 x double> %500, <4 x double> %503) %505 = getelementptr inbounds %"num_complex::Complex", ptr %391, i64 %index119 %interleaved.vec193 = shufflevector <4 x double> %502, <4 x double> %504, <8 x i32> store <8 x double> %interleaved.vec193, ptr %505, align 8, !noalias !2364 %index.next194 = add nuw i64 %index119, 4 %506 = icmp eq i64 %index.next194, 64 br i1 %506, label %middle.block114, label %vector.body118, !llvm.loop !2370 middle.block114: ; preds = %vector.body118 br i1 %_2.i.i.i1357, label %bb32.i.i.i.i.i, label %vector.body199 "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc53a39ddb8d22cd8E.exit": ; preds = %vector.body199 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2364 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c1050123a78f200E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2371 store i64 256, ptr %n.i.i, align 8, !noalias !2371 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2371 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2371 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2371 store ptr null, ptr %_16.i.i, align 8, !noalias !2371 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2371 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2371 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2371 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2371 store ptr null, ptr %_24.i.i, align 8, !noalias !2371 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2371 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2371 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2371 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2371 store ptr null, ptr %_32.i.i, align 8, !noalias !2371 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2371 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2371 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2371 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8be9b6afa5325d5bE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2371 store ptr null, ptr %_40.i.i, align 8, !noalias !2371 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8be9b6afa5325d5bE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2371 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 br label %bb26.i.i.i.i bb26.i.i.i.i: ; preds = %bb26.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8be9b6afa5325d5bE.exit.i" %iter7.i.i.i.sroa.50.0231.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8be9b6afa5325d5bE.exit.i" ], [ %8, %bb26.i.i.i.i ] %8 = add nuw nsw i64 %iter7.i.i.i.sroa.50.0231.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter7.i.i.i.sroa.50.0231.i %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2376 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2376 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2376 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2376 %9 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %11 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = fsub <4 x double> %9, %11 %20 = fadd <4 x double> %10, %16 store <4 x double> %17, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2376 store <4 x double> %18, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2376 store <4 x double> %19, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2376 store <4 x double> %20, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2376 %exitcond.not.i = icmp eq i64 %8, 32 br i1 %exitcond.not.i, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i", label %bb26.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i": ; preds = %bb26.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2380) tail call void @llvm.experimental.noalias.scope.decl(metadata !2383) tail call void @llvm.experimental.noalias.scope.decl(metadata !2385) %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %21, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %22, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %23, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %24, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %25, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %26, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %27 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %28 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %33 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %36 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> zeroinitializer %37 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %38 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" ], [ %39, %bb38.us.i.i ] %39 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2383, !noalias !2388 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2383, !noalias !2388 %40 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %34, %40 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %41) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2383, !noalias !2388 %43 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %36, %43 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %44) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !2383, !noalias !2388 %46 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %47 = fmul <4 x double> %38, %46 %48 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %47) #23 %49 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %50 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %51 = fadd <4 x double> %42, %48 %52 = fsub <4 x double> %42, %48 %53 = bitcast <4 x double> %52 to <4 x i64> %54 = xor <4 x i64> %53, %55 = bitcast <4 x i64> %54 to <4 x double> %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = fadd <4 x double> %49, %51 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2380, !noalias !2389 %58 = fsub <4 x double> %50, %56 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2380, !noalias !2389 %59 = fsub <4 x double> %49, %51 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2380, !noalias !2389 %60 = fadd <4 x double> %50, %56 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2380, !noalias !2389 %exitcond.not.i.i = icmp eq i64 %39, 8 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i.1.i = load double, ptr %61, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %62, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i.1.i = load double, ptr %63, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %64, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i.1.i = load double, ptr %65, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %66, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %67 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %68 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %69 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %73 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %74 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer %75 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %76 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> zeroinitializer %77 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %78 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %79, %bb38.us.i.1.i ] %79 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2383, !noalias !2388 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2383, !noalias !2388 %80 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %74, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %73, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %81) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2383, !noalias !2388 %83 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %76, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %84) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !2383, !noalias !2388 %86 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %78, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %87) #23 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %91 = fadd <4 x double> %82, %88 %92 = fsub <4 x double> %82, %88 %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %89, %91 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2380, !noalias !2389 %98 = fsub <4 x double> %90, %96 store <4 x double> %98, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2380, !noalias !2389 %99 = fsub <4 x double> %89, %91 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2380, !noalias !2389 %100 = fadd <4 x double> %90, %96 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2380, !noalias !2389 %exitcond.not.i.1.i = icmp eq i64 %79, 8 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %data.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.us.i.2.i = load double, ptr %101, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.us.i.2.i = load double, ptr %102, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2 %w2.0.us.i.2.i = load double, ptr %103, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2, i32 1 %w2.1.us.i.2.i = load double, ptr %104, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %105 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3 %w3.0.us.i.2.i = load double, ptr %105, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %106 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3, i32 1 %w3.1.us.i.2.i = load double, ptr %106, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w1.0.us.i.2.i, i64 0 %107 = insertelement <4 x double> poison, double %w1.1.us.i.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w2.0.us.i.2.i, i64 0 %108 = insertelement <4 x double> poison, double %w2.1.us.i.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w3.0.us.i.2.i, i64 0 %109 = insertelement <4 x double> poison, double %w3.1.us.i.2.i, i64 0 %110 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %111 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %112 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %113 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <4 x double> %108, <4 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.2.i bb38.us.i.2.i: ; preds = %bb38.us.i.2.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter5.sroa.50.0694.us.i.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ], [ %119, %bb38.us.i.2.i ] %119 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %111, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %110, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %112, i64 %iter5.sroa.50.0694.us.i.2.i %a.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2383, !noalias !2388 %_84.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2383, !noalias !2388 %120 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %114, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> %121) #23 %_86.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2383, !noalias !2388 %123 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %116, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %115, <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> %124) #23 %_88.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.2.i, align 8, !alias.scope !2383, !noalias !2388 %126 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %118, %126 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %117, <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> %127) #23 %129 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %130 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %131 = fadd <4 x double> %122, %128 %132 = fsub <4 x double> %122, %128 %133 = bitcast <4 x double> %132 to <4 x i64> %134 = xor <4 x i64> %133, %135 = bitcast <4 x i64> %134 to <4 x double> %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fadd <4 x double> %129, %131 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2380, !noalias !2389 %138 = fsub <4 x double> %130, %136 store <4 x double> %138, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2380, !noalias !2389 %139 = fsub <4 x double> %129, %131 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2380, !noalias !2389 %140 = fadd <4 x double> %130, %136 store <4 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !2380, !noalias !2389 %exitcond.not.i.2.i = icmp eq i64 %119, 8 br i1 %exitcond.not.i.2.i, label %bb36.bb20.loopexit_crit_edge.us.i.2.i, label %bb38.us.i.2.i bb36.bb20.loopexit_crit_edge.us.i.2.i: ; preds = %bb38.us.i.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %data.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.us.i.3.i = load double, ptr %141, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.us.i.3.i = load double, ptr %142, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2 %w2.0.us.i.3.i = load double, ptr %143, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2, i32 1 %w2.1.us.i.3.i = load double, ptr %144, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3 %w3.0.us.i.3.i = load double, ptr %145, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3, i32 1 %w3.1.us.i.3.i = load double, ptr %146, align 8, !alias.scope !2385, !noalias !2387, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w1.0.us.i.3.i, i64 0 %147 = insertelement <4 x double> poison, double %w1.1.us.i.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w2.0.us.i.3.i, i64 0 %148 = insertelement <4 x double> poison, double %w2.1.us.i.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w3.0.us.i.3.i, i64 0 %149 = insertelement <4 x double> poison, double %w3.1.us.i.3.i, i64 0 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %151 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %152 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 %153 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.3.i bb38.us.i.3.i: ; preds = %bb38.us.i.3.i, %bb36.bb20.loopexit_crit_edge.us.i.2.i %iter5.sroa.50.0694.us.i.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.2.i ], [ %159, %bb38.us.i.3.i ] %159 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %151, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %150, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %152, i64 %iter5.sroa.50.0694.us.i.3.i %a.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2383, !noalias !2388 %_84.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2383, !noalias !2388 %160 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> %161) #23 %_86.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2383, !noalias !2388 %163 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %156, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> %164) #23 %_88.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.3.i, align 8, !alias.scope !2383, !noalias !2388 %166 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %167 = fmul <4 x double> %158, %166 %168 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> %167) #23 %169 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %170 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %171 = fadd <4 x double> %162, %168 %172 = fsub <4 x double> %162, %168 %173 = bitcast <4 x double> %172 to <4 x i64> %174 = xor <4 x i64> %173, %175 = bitcast <4 x i64> %174 to <4 x double> %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fadd <4 x double> %169, %171 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2380, !noalias !2389 %178 = fsub <4 x double> %170, %176 store <4 x double> %178, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2380, !noalias !2389 %179 = fsub <4 x double> %169, %171 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2380, !noalias !2389 %180 = fadd <4 x double> %170, %176 store <4 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !2380, !noalias !2389 %exitcond.not.i.3.i = icmp eq i64 %159, 8 br i1 %exitcond.not.i.3.i, label %bb36.bb20.loopexit_crit_edge.us.i.3.i, label %bb38.us.i.3.i bb36.bb20.loopexit_crit_edge.us.i.3.i: ; preds = %bb38.us.i.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2390) tail call void @llvm.experimental.noalias.scope.decl(metadata !2393) tail call void @llvm.experimental.noalias.scope.decl(metadata !2395) br label %bb22.us.i110.i bb22.us.i110.i: ; preds = %bb22.us.i110.i, %bb36.bb20.loopexit_crit_edge.us.i.3.i %iter.sroa.60.0707.us.i111.i = phi i64 [ %241, %bb22.us.i110.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.3.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i = shl nuw i64 %iter.sroa.60.0707.us.i111.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i113.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %start1.i.i.i.i.i.i.us.i114.i = shl i64 %iter.sroa.60.0707.us.i111.i, 3 %data.i.i.i.i.i.i.us.i115.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i114.i %data.i.i.i.i.i.i.i.i.us.i116.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %data.i.i.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %start1.i.i.i.i.us.i119.i = shl i64 %iter.sroa.60.0707.us.i111.i, 2 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 1 %w1.0.us.i120.i = load double, ptr %181, align 8, !alias.scope !2395, !noalias !2397, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 1, i32 1 %w1.1.us.i121.i = load double, ptr %182, align 8, !alias.scope !2395, !noalias !2397, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 2 %w2.0.us.i122.i = load double, ptr %183, align 8, !alias.scope !2395, !noalias !2397, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 2, i32 1 %w2.1.us.i123.i = load double, ptr %184, align 8, !alias.scope !2395, !noalias !2397, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 3 %w3.0.us.i124.i = load double, ptr %185, align 8, !alias.scope !2395, !noalias !2397, !noundef !3 %186 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 3, i32 1 %w3.1.us.i125.i = load double, ptr %186, align 8, !alias.scope !2395, !noalias !2397, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i126.i = insertelement <2 x double> poison, double %w1.0.us.i120.i, i64 0 %187 = insertelement <4 x double> poison, double %w1.1.us.i121.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i127.i = insertelement <2 x double> poison, double %w2.0.us.i122.i, i64 0 %188 = insertelement <4 x double> poison, double %w2.1.us.i123.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i128.i = insertelement <2 x double> poison, double %w3.0.us.i124.i, i64 0 %189 = insertelement <4 x double> poison, double %w3.1.us.i125.i, i64 0 %190 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 4 %191 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 2 %192 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 6 %193 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i126.i, <2 x double> poison, <4 x i32> zeroinitializer %194 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> zeroinitializer %195 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i127.i, <2 x double> poison, <4 x i32> zeroinitializer %196 = shufflevector <4 x double> %188, <4 x double> poison, <4 x i32> zeroinitializer %197 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i128.i, <2 x double> poison, <4 x i32> zeroinitializer %198 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i139.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i115.i, align 8, !alias.scope !2393, !noalias !2398 %_84.sroa.0.0.copyload.us.i140.i = load <4 x double>, ptr %191, align 8, !alias.scope !2393, !noalias !2398 %199 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i140.i, <4 x double> poison, <4 x i32> %200 = fmul <4 x double> %194, %199 %201 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %_84.sroa.0.0.copyload.us.i140.i, <4 x double> %200) #23 %_86.sroa.0.0.copyload.us.i141.i = load <4 x double>, ptr %190, align 8, !alias.scope !2393, !noalias !2398 %202 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i141.i, <4 x double> poison, <4 x i32> %203 = fmul <4 x double> %196, %202 %204 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %195, <4 x double> %_86.sroa.0.0.copyload.us.i141.i, <4 x double> %203) #23 %_88.sroa.0.0.copyload.us.i142.i = load <4 x double>, ptr %192, align 8, !alias.scope !2393, !noalias !2398 %205 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i142.i, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %198, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_88.sroa.0.0.copyload.us.i142.i, <4 x double> %206) #23 %208 = fadd <4 x double> %a.sroa.0.0.copyload.us.i139.i, %204 %209 = fsub <4 x double> %a.sroa.0.0.copyload.us.i139.i, %204 %210 = fadd <4 x double> %201, %207 %211 = fsub <4 x double> %201, %207 %212 = bitcast <4 x double> %211 to <4 x i64> %213 = xor <4 x i64> %212, %214 = bitcast <4 x i64> %213 to <4 x double> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fadd <4 x double> %208, %210 store <4 x double> %216, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i113.i, align 8, !alias.scope !2390, !noalias !2399 %217 = fsub <4 x double> %209, %215 store <4 x double> %217, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, align 8, !alias.scope !2390, !noalias !2399 %218 = fsub <4 x double> %208, %210 store <4 x double> %218, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !2390, !noalias !2399 %219 = fadd <4 x double> %209, %215 store <4 x double> %219, ptr %data.i.i.i.i.i.i.i.i.us.i116.i, align 8, !alias.scope !2390, !noalias !2399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i131.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i113.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i132.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i133.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i117.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i134.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i116.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i135.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i136.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 3 %_3.i.i.i.i.i.i.us.i137.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 5 %_3.i.i.i.i.us.i138.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 7 %a.sroa.0.0.copyload.us.i139.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i135.1.i, align 8, !alias.scope !2393, !noalias !2398 %_84.sroa.0.0.copyload.us.i140.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i136.1.i, align 8, !alias.scope !2393, !noalias !2398 %220 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i140.1.i, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %194, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %_84.sroa.0.0.copyload.us.i140.1.i, <4 x double> %221) #23 %_86.sroa.0.0.copyload.us.i141.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i137.1.i, align 8, !alias.scope !2393, !noalias !2398 %223 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i141.1.i, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %196, %223 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %195, <4 x double> %_86.sroa.0.0.copyload.us.i141.1.i, <4 x double> %224) #23 %_88.sroa.0.0.copyload.us.i142.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i138.1.i, align 8, !alias.scope !2393, !noalias !2398 %226 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i142.1.i, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %198, %226 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_88.sroa.0.0.copyload.us.i142.1.i, <4 x double> %227) #23 %229 = fadd <4 x double> %a.sroa.0.0.copyload.us.i139.1.i, %225 %230 = fsub <4 x double> %a.sroa.0.0.copyload.us.i139.1.i, %225 %231 = fadd <4 x double> %222, %228 %232 = fsub <4 x double> %222, %228 %233 = bitcast <4 x double> %232 to <4 x i64> %234 = xor <4 x i64> %233, %235 = bitcast <4 x i64> %234 to <4 x double> %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fadd <4 x double> %229, %231 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i131.1.i, align 8, !alias.scope !2390, !noalias !2399 %238 = fsub <4 x double> %230, %236 store <4 x double> %238, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i132.1.i, align 8, !alias.scope !2390, !noalias !2399 %239 = fsub <4 x double> %229, %231 store <4 x double> %239, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i133.1.i, align 8, !alias.scope !2390, !noalias !2399 %240 = fadd <4 x double> %230, %236 store <4 x double> %240, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i134.1.i, align 8, !alias.scope !2390, !noalias !2399 %241 = add nuw nsw i64 %iter.sroa.60.0707.us.i111.i, 1 %exitcond233.not.i = icmp eq i64 %241, 16 br i1 %exitcond233.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i, label %bb22.us.i110.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i: ; preds = %bb22.us.i110.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2400) tail call void @llvm.experimental.noalias.scope.decl(metadata !2403) tail call void @llvm.experimental.noalias.scope.decl(metadata !2405) %242 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %243 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %244 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 br label %bb15.i149.i bb15.i149.i: ; preds = %bb15.i149.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i %iter.sroa.50.0547.i.i = phi i64 [ %245, %bb15.i149.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i ] %245 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %243, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %242, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %244, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2405, !noalias !2407 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2405, !noalias !2407 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !2405, !noalias !2407 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2403, !noalias !2408 %246 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %246, align 8, !alias.scope !2403, !noalias !2408 %247 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %247, align 8, !alias.scope !2403, !noalias !2408 %248 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %248, align 8, !alias.scope !2403, !noalias !2408 %249 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %250 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %253 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %254 = fmul <4 x double> %253, %251 %255 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %252, <4 x double> %250, <4 x double> %254) #23 %256 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %259 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %260 = fmul <4 x double> %259, %257 %261 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %258, <4 x double> %256, <4 x double> %260) #23 %262 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %263 = shufflevector <4 x double> %262, <4 x double> poison, <4 x i32> %264 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %265 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %266 = fmul <4 x double> %265, %263 %267 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %264, <4 x double> %262, <4 x double> %266) #23 %268 = fadd <4 x double> %249, %261 %269 = fsub <4 x double> %249, %261 %270 = fadd <4 x double> %255, %267 %271 = fsub <4 x double> %255, %267 %272 = bitcast <4 x double> %271 to <4 x i64> %273 = xor <4 x i64> %272, %274 = bitcast <4 x i64> %273 to <4 x double> %275 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> %276 = fadd <4 x double> %268, %270 store <4 x double> %276, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2400, !noalias !2409 %277 = fsub <4 x double> %269, %275 store <4 x double> %277, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2400, !noalias !2409 %278 = fsub <4 x double> %268, %270 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2400, !noalias !2409 %279 = fadd <4 x double> %269, %275 store <4 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2400, !noalias !2409 %exitcond.not.i150.i = icmp eq i64 %245, 32 br i1 %exitcond.not.i150.i, label %_ZN4pulp3x862V39vectorize6__impl17h5a6e9729e79a172dE.exit, label %bb15.i149.i _ZN4pulp3x862V39vectorize6__impl17h5a6e9729e79a172dE.exit: ; preds = %bb15.i149.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2371 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c41d58dc55f606cE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2410 store i64 32, ptr %n.i.i, align 8, !noalias !2410 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2410 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2410 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2410 store ptr null, ptr %_16.i.i, align 8, !noalias !2410 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2410 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2410 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2410 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2410 store ptr null, ptr %_24.i.i, align 8, !noalias !2410 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2410 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2410 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2410 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2410 store ptr null, ptr %_32.i.i, align 8, !noalias !2410 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2410 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2410 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2410 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17haebbf119c62e509aE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2410 store ptr null, ptr %_40.i.i, align 8, !noalias !2410 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17haebbf119c62e509aE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2410 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !2415 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !2415 store <4 x double> %5, ptr %2, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !2415 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i store <4 x double> %6, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2415 store <4 x double> %7, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_51.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !2415 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2415 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_51.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !2415 %10 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i %11 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i store <4 x double> %10, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2415 store <4 x double> %11, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_51.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !2415 %12 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.4.i, %_52.i.i.i.sroa.0.0.copyload.4.i %13 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.4.i, %_52.i.i.i.sroa.0.0.copyload.4.i store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !2415 store <4 x double> %13, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_51.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !2415 %14 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.5.i, %_52.i.i.i.sroa.0.0.copyload.5.i %15 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.5.i, %_52.i.i.i.sroa.0.0.copyload.5.i store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !2415 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_51.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !2415 %16 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.6.i, %_52.i.i.i.sroa.0.0.copyload.6.i %17 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.6.i, %_52.i.i.i.sroa.0.0.copyload.6.i store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !2415 store <4 x double> %17, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !2415 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_51.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !2415 %_52.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !2415 %18 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.7.i, %_52.i.i.i.sroa.0.0.copyload.7.i %19 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.7.i, %_52.i.i.i.sroa.0.0.copyload.7.i store <4 x double> %18, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !2415 store <4 x double> %19, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !2415 tail call void @llvm.experimental.noalias.scope.decl(metadata !2419) tail call void @llvm.experimental.noalias.scope.decl(metadata !2422) %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %33 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %23, align 8, !alias.scope !2422, !noalias !2424 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %22, align 8, !alias.scope !2422, !noalias !2424 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %24, align 8, !alias.scope !2422, !noalias !2424 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %21, align 8, !alias.scope !2422, !noalias !2424 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %26, align 8, !alias.scope !2422, !noalias !2424 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %25, align 8, !alias.scope !2422, !noalias !2424 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %27, align 8, !alias.scope !2422, !noalias !2424 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %20, align 8, !alias.scope !2422, !noalias !2424 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %30, align 8, !alias.scope !2422, !noalias !2424 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %29, align 8, !alias.scope !2422, !noalias !2424 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %31, align 8, !alias.scope !2422, !noalias !2424 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !2422, !noalias !2424 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %33, align 8, !alias.scope !2422, !noalias !2424 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %32, align 8, !alias.scope !2422, !noalias !2424 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %34, align 8, !alias.scope !2422, !noalias !2424 %35 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %36 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %37 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %39 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %40 = fmul <4 x double> %37, %39 %41 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %36, <4 x double> %40) #23 %42 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %43 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> %44 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %45 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %46 = fmul <4 x double> %43, %45 %47 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %44, <4 x double> %42, <4 x double> %46) #23 %48 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %51 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %52 = fmul <4 x double> %49, %51 %53 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %48, <4 x double> %52) #23 %54 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %57 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %58 = fmul <4 x double> %55, %57 %59 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %54, <4 x double> %58) #23 %60 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %63 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %64 = fmul <4 x double> %61, %63 %65 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %60, <4 x double> %64) #23 %66 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %67 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> %68 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %69 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %70 = fmul <4 x double> %67, %69 %71 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %68, <4 x double> %66, <4 x double> %70) #23 %72 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %73 = shufflevector <4 x double> %72, <4 x double> poison, <4 x i32> %74 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %75 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %76 = fmul <4 x double> %73, %75 %77 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %74, <4 x double> %72, <4 x double> %76) #23 %78 = shufflevector <4 x double> %12, <4 x double> %13, <4 x i32> %79 = shufflevector <4 x double> %78, <4 x double> poison, <4 x i32> %80 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %81 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %79, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %80, <4 x double> %78, <4 x double> %82) #23 %84 = shufflevector <4 x double> %12, <4 x double> %13, <4 x i32> %85 = shufflevector <4 x double> %84, <4 x double> poison, <4 x i32> %86 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %87 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %88 = fmul <4 x double> %85, %87 %89 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %86, <4 x double> %84, <4 x double> %88) #23 %90 = shufflevector <4 x double> %14, <4 x double> %15, <4 x i32> %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %93 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %94 = fmul <4 x double> %91, %93 %95 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %90, <4 x double> %94) #23 %96 = shufflevector <4 x double> %14, <4 x double> %15, <4 x i32> %97 = shufflevector <4 x double> %96, <4 x double> poison, <4 x i32> %98 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %99 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %97, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %96, <4 x double> %100) #23 %102 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %105 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %106 = fmul <4 x double> %103, %105 %107 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %102, <4 x double> %106) #23 %108 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %109 = shufflevector <4 x double> %108, <4 x double> poison, <4 x i32> %110 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %111 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %112 = fmul <4 x double> %109, %111 %113 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %108, <4 x double> %112) #23 %114 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %116 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %117 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %115, %117 %119 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %114, <4 x double> %118) #23 %120 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %121 = shufflevector <4 x double> %120, <4 x double> poison, <4 x i32> %122 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %123 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %121, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %122, <4 x double> %120, <4 x double> %124) #23 %126 = fadd <4 x double> %35, %83 %127 = fsub <4 x double> %35, %83 %128 = fadd <4 x double> %59, %107 %129 = fsub <4 x double> %59, %107 %130 = fadd <4 x double> %47, %95 %131 = fsub <4 x double> %47, %95 %132 = fadd <4 x double> %71, %119 %133 = fsub <4 x double> %71, %119 %134 = fadd <4 x double> %41, %89 %135 = fsub <4 x double> %41, %89 %136 = fadd <4 x double> %65, %113 %137 = fsub <4 x double> %65, %113 %138 = fadd <4 x double> %53, %101 %139 = fsub <4 x double> %53, %101 %140 = fadd <4 x double> %77, %125 %141 = fsub <4 x double> %77, %125 %142 = bitcast <4 x double> %129 to <4 x i64> %143 = bitcast <4 x double> %133 to <4 x i64> %144 = bitcast <4 x double> %137 to <4 x i64> %145 = bitcast <4 x double> %141 to <4 x i64> %146 = xor <4 x i64> %142, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = xor <4 x i64> %143, %150 = bitcast <4 x i64> %149 to <4 x double> %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = xor <4 x i64> %144, %153 = bitcast <4 x i64> %152 to <4 x double> %154 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> %155 = xor <4 x i64> %145, %156 = bitcast <4 x i64> %155 to <4 x double> %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = fadd <4 x double> %126, %128 %159 = fsub <4 x double> %127, %148 %160 = fsub <4 x double> %126, %128 %161 = fadd <4 x double> %127, %148 %162 = fadd <4 x double> %130, %132 %163 = fsub <4 x double> %131, %151 %164 = fsub <4 x double> %130, %132 %165 = fadd <4 x double> %131, %151 %166 = fadd <4 x double> %134, %136 %167 = fsub <4 x double> %135, %154 %168 = fsub <4 x double> %134, %136 %169 = fadd <4 x double> %135, %154 %170 = fadd <4 x double> %138, %140 %171 = fsub <4 x double> %139, %157 %172 = fsub <4 x double> %138, %140 %173 = fadd <4 x double> %139, %157 %174 = bitcast <4 x double> %163 to <4 x i64> %175 = xor <4 x i64> %174, %176 = bitcast <4 x i64> %175 to <4 x double> %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fadd <4 x double> %163, %177 %179 = fmul <4 x double> %178, %180 = bitcast <4 x double> %164 to <4 x i64> %181 = xor <4 x i64> %180, %182 = bitcast <4 x i64> %181 to <4 x double> %183 = shufflevector <4 x double> %182, <4 x double> poison, <4 x i32> %184 = bitcast <4 x double> %165 to <4 x i64> %185 = xor <4 x i64> %184, %186 = bitcast <4 x i64> %185 to <4 x double> %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = fadd <4 x double> %165, %187 %189 = fmul <4 x double> %188, %190 = fadd <4 x double> %158, %162 %191 = fadd <4 x double> %159, %179 %192 = fsub <4 x double> %160, %183 %193 = fsub <4 x double> %161, %189 %194 = fsub <4 x double> %158, %162 %195 = fsub <4 x double> %159, %179 %196 = fadd <4 x double> %160, %183 %197 = fadd <4 x double> %161, %189 %198 = bitcast <4 x double> %171 to <4 x i64> %199 = xor <4 x i64> %198, %200 = bitcast <4 x i64> %199 to <4 x double> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = fadd <4 x double> %171, %201 %203 = fmul <4 x double> %202, %204 = bitcast <4 x double> %172 to <4 x i64> %205 = xor <4 x i64> %204, %206 = bitcast <4 x i64> %205 to <4 x double> %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = bitcast <4 x double> %173 to <4 x i64> %209 = xor <4 x i64> %208, %210 = bitcast <4 x i64> %209 to <4 x double> %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fadd <4 x double> %173, %211 %213 = fmul <4 x double> %212, %214 = fadd <4 x double> %166, %170 %215 = fadd <4 x double> %167, %203 %216 = fsub <4 x double> %168, %207 %217 = fsub <4 x double> %169, %213 %218 = fsub <4 x double> %166, %170 %219 = fsub <4 x double> %167, %203 %220 = fadd <4 x double> %168, %207 %221 = fadd <4 x double> %169, %213 %222 = fadd <4 x double> %190, %214 store <4 x double> %222, ptr %buf.0, align 8, !alias.scope !2419, !noalias !2426 %223 = fsub <4 x double> %190, %214 store <4 x double> %223, ptr %3, align 8, !alias.scope !2419, !noalias !2426 %224 = fmul <4 x double> %215, %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %215, <4 x double> %225) #23 %227 = fadd <4 x double> %226, %191 store <4 x double> %227, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !2419, !noalias !2426 %228 = fsub <4 x double> %191, %226 store <4 x double> %228, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !2419, !noalias !2426 %229 = bitcast <4 x double> %216 to <4 x i64> %230 = xor <4 x i64> %229, %231 = bitcast <4 x i64> %230 to <4 x double> %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fadd <4 x double> %216, %232 %234 = fmul <4 x double> %233, %235 = fadd <4 x double> %192, %234 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !2419, !noalias !2426 %236 = fsub <4 x double> %192, %234 store <4 x double> %236, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !2419, !noalias !2426 %237 = fmul <4 x double> %217, %238 = shufflevector <4 x double> %237, <4 x double> poison, <4 x i32> %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %217, <4 x double> %238) #23 %240 = bitcast <4 x double> %218 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %219, %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %219, <4 x double> %245) #23 %.sink.i31.i = fadd <4 x double> %194, %243 %.sink5280.i.i = fsub <4 x double> %194, %243 %.sink5281.i.i = fsub <4 x double> %193, %239 %.sink5282.i.i = fadd <4 x double> %239, %193 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !2419, !noalias !2426 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !2419, !noalias !2426 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.4.i, align 8, !alias.scope !2419, !noalias !2426 store <4 x double> %.sink.i31.i, ptr %_3.i.i.i.i.4.i, align 8, !alias.scope !2419, !noalias !2426 %247 = fsub <4 x double> %195, %246 store <4 x double> %247, ptr %_3.i.i.i.i.i.i.5.i, align 8, !alias.scope !2419, !noalias !2426 %248 = fadd <4 x double> %246, %195 store <4 x double> %248, ptr %_3.i.i.i.i.5.i, align 8, !alias.scope !2419, !noalias !2426 %249 = bitcast <4 x double> %220 to <4 x i64> %250 = xor <4 x i64> %249, %251 = bitcast <4 x i64> %250 to <4 x double> %252 = shufflevector <4 x double> %251, <4 x double> poison, <4 x i32> %253 = fmul <4 x double> %221, %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %221, <4 x double> %254) #23 %.pn5288.in.i.i = fadd <4 x double> %220, %252 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %196, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %196, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.6.i, align 8, !alias.scope !2419, !noalias !2426 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.6.i, align 8, !alias.scope !2419, !noalias !2426 %256 = fsub <4 x double> %197, %255 store <4 x double> %256, ptr %_3.i.i.i.i.i.i.7.i, align 8, !alias.scope !2419, !noalias !2426 %257 = fadd <4 x double> %197, %255 store <4 x double> %257, ptr %_3.i.i.i.i.7.i, align 8, !alias.scope !2419, !noalias !2426 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2410 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c534fcadd1c262bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2427 store i64 2, ptr %n.i, align 8, !noalias !2427 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2427 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2427 %_12.i = icmp eq i64 %buf.1, 2 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2427 store ptr null, ptr %_16.i, align 8, !noalias !2427 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2427 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2427 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2427 %_20.i = icmp eq i64 %scratch.1, 2 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2427 store ptr null, ptr %_24.i, align 8, !noalias !2427 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2427 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2427 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2427 %_28.i = icmp eq i64 %w_init.1, 2 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2427 store ptr null, ptr %_32.i, align 8, !noalias !2427 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2427 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2427 store i64 %w.1, ptr %_34.i, align 8, !noalias !2427 %_36.i = icmp eq i64 %w.1, 2 br i1 %_36.i, label %bb9.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2427 store ptr null, ptr %_40.i, align 8, !noalias !2427 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2427 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %1 = load <2 x double>, ptr %buf.0, align 8, !noalias !2427 %2 = shufflevector <2 x double> %1, <2 x double> poison, <4 x i32> %3 = load <2 x double>, ptr %0, align 8, !noalias !2427 %4 = shufflevector <2 x double> %3, <2 x double> poison, <4 x i32> %5 = fadd <4 x double> %2, %4 %6 = fsub <4 x double> %2, %4 %7 = shufflevector <4 x double> %5, <4 x double> %6, <4 x i32> store <4 x double> %7, ptr %buf.0, align 8, !noalias !2427 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2427 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0c72115b86d9a6dfE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h0dc022c6544adc6aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0cc4c62665da2b53E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2430 store i64 64, ptr %n.i.i, align 8, !noalias !2430 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2430 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2430 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2430 store ptr null, ptr %_16.i.i, align 8, !noalias !2430 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2430 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2430 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2430 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2430 store ptr null, ptr %_24.i.i, align 8, !noalias !2430 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2430 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2430 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2430 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2430 store ptr null, ptr %_32.i.i, align 8, !noalias !2430 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2430 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2430 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2430 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h647f2c0971b901baE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2430 store ptr null, ptr %_40.i.i, align 8, !noalias !2430 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h647f2c0971b901baE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2430 tail call void @llvm.experimental.noalias.scope.decl(metadata !2435) tail call void @llvm.experimental.noalias.scope.decl(metadata !2438) tail call void @llvm.experimental.noalias.scope.decl(metadata !2440) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h647f2c0971b901baE.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h647f2c0971b901baE.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2435, !noalias !2442 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2440, !noalias !2443 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2438, !noalias !2444 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !2438, !noalias !2444 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !2438, !noalias !2444 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !2438, !noalias !2444 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !2438, !noalias !2444 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !2438, !noalias !2444 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !2438, !noalias !2444 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !2438, !noalias !2444 %exitcond.not.i.i = icmp eq i64 %16, 4 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter14.i.i.i.sroa.106.0522.i = phi i64 [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ], [ %122, %bb38.i.i.i.i ] %122 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter14.i.i.i.sroa.106.0522.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2430 %123 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %124 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %125 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %126 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %127 = bitcast <4 x double> %126 to <4 x i64> %128 = xor <4 x i64> %127, %129 = bitcast <4 x i64> %128 to <4 x double> %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %132 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %133 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %134 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %135 = bitcast <4 x double> %134 to <4 x i64> %136 = xor <4 x i64> %135, %137 = bitcast <4 x i64> %136 to <4 x double> %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fadd <4 x double> %123, %125 %140 = fsub <4 x double> %124, %130 %141 = fsub <4 x double> %123, %125 %142 = fadd <4 x double> %124, %130 %143 = fadd <4 x double> %131, %133 %144 = fsub <4 x double> %132, %138 %145 = bitcast <4 x double> %144 to <4 x i64> %146 = xor <4 x i64> %145, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = fadd <4 x double> %144, %148 %150 = fmul <4 x double> %149, %151 = fsub <4 x double> %131, %133 %152 = bitcast <4 x double> %151 to <4 x i64> %153 = xor <4 x i64> %152, %154 = bitcast <4 x i64> %153 to <4 x double> %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fadd <4 x double> %132, %138 %157 = bitcast <4 x double> %156 to <4 x i64> %158 = xor <4 x i64> %157, %159 = bitcast <4 x i64> %158 to <4 x double> %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fadd <4 x double> %156, %160 %162 = fmul <4 x double> %161, %163 = fadd <4 x double> %139, %143 %164 = fadd <4 x double> %140, %150 %165 = fsub <4 x double> %141, %155 %166 = fsub <4 x double> %142, %162 %167 = fsub <4 x double> %139, %143 %168 = fsub <4 x double> %140, %150 %169 = fadd <4 x double> %141, %155 %170 = fadd <4 x double> %142, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !2430 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !2430 store <4 x double> %165, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !2430 store <4 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !2430 store <4 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !2430 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !2430 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !2430 store <4 x double> %170, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !2430 %exitcond.not.i = icmp eq i64 %122, 4 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h5cb523fb9dd0da84E.exit, label %bb38.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h5cb523fb9dd0da84E.exit: ; preds = %bb38.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2430 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0e62d4012cafc93aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2445 store i64 4, ptr %n.i, align 8, !noalias !2445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2445 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2445 %_12.i = icmp eq i64 %buf.1, 4 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2445 store ptr null, ptr %_16.i, align 8, !noalias !2445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2445 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2445 %_20.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2445 store ptr null, ptr %_24.i, align 8, !noalias !2445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2445 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2445 %_28.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2445 store ptr null, ptr %_32.i, align 8, !noalias !2445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2445 store i64 %w.1, ptr %_34.i, align 8, !noalias !2445 %_36.i = icmp eq i64 %w.1, 4 br i1 %_36.i, label %bb13.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2445 store ptr null, ptr %_40.i, align 8, !noalias !2445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb13.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2445 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %3 = load <2 x double>, ptr %buf.0, align 8, !noalias !2445 %4 = load <2 x double>, ptr %1, align 8, !noalias !2445 %5 = load <2 x double>, ptr %2, align 8, !noalias !2445 %6 = load <2 x double>, ptr %0, align 8, !noalias !2445 %7 = fadd <2 x double> %3, %5 %8 = fadd <2 x double> %4, %6 %9 = fadd <2 x double> %7, %8 store <2 x double> %9, ptr %buf.0, align 8, !noalias !2445 %10 = fsub <2 x double> %3, %5 %11 = fsub <2 x double> %4, %6 %12 = shufflevector <2 x double> %11, <2 x double> poison, <2 x i32> %13 = fsub <2 x double> %10, %12 %14 = fadd <2 x double> %10, %12 %15 = shufflevector <2 x double> %13, <2 x double> %14, <2 x i32> store <2 x double> %15, ptr %1, align 8, !noalias !2445 %16 = fsub <2 x double> %7, %8 store <2 x double> %16, ptr %2, align 8, !noalias !2445 %17 = shufflevector <2 x double> %14, <2 x double> %13, <2 x i32> store <2 x double> %17, ptr %0, align 8, !noalias !2445 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2445 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0e6ea17ba832356eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2448 store i64 512, ptr %n.i, align 8, !noalias !2448 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2448 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2448 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2448 store ptr null, ptr %_16.i, align 8, !noalias !2448 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2448 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2448 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2448 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2448 store ptr null, ptr %_24.i, align 8, !noalias !2448 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2448 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2448 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2448 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2448 store ptr null, ptr %_32.i, align 8, !noalias !2448 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2448 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2448 store i64 %w.1, ptr %_34.i, align 8, !noalias !2448 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %bb9.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2448 store ptr null, ptr %_40.i, align 8, !noalias !2448 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2448 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !2448 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !2448 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !2448 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !2448 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !2448 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !2448 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !2448 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !2448 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 256 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, label %vector.body, !llvm.loop !2451 _ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %18 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %22 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 288 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 352 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 416 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 480 br label %bb48.i.i.i.i bb48.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, %middle.block6 %_2.i.i.i402 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit ], [ false, %middle.block6 ] %iter.i.i.i.i.sroa.208.0218 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit ], [ 1, %middle.block6 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0218, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0218, 8 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %29 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %30 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %31 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %32 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %33 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %34 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 96 %35 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 80 %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 112 %37 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %38 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 160 %39 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 144 %40 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 176 %41 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 224 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 208 %43 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 240 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i.i.i = load double, ptr %44, align 8, !noalias !2448, !noundef !3 %_6.i483.i.i.i.i = fneg double %wf.1.i.i.i.i %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i.i.i = load double, ptr %45, align 8, !noalias !2448, !noundef !3 %_6.i486.i.i.i.i = fneg double %we.1.i.i.i.i %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i.i.i = load double, ptr %46, align 8, !noalias !2448, !noundef !3 %_6.i489.i.i.i.i = fneg double %wd.1.i.i.i.i %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i.i.i = load double, ptr %47, align 8, !noalias !2448, !noundef !3 %_6.i492.i.i.i.i = fneg double %wc.1.i.i.i.i %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i.i.i = load double, ptr %48, align 8, !noalias !2448, !noundef !3 %_6.i495.i.i.i.i = fneg double %wb.1.i.i.i.i %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i.i.i = load double, ptr %49, align 8, !noalias !2448, !noundef !3 %_6.i498.i.i.i.i = fneg double %wa.1.i.i.i.i %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i.i.i = load double, ptr %50, align 8, !noalias !2448, !noundef !3 %_6.i501.i.i.i.i = fneg double %w9.1.i.i.i.i %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i.i.i = load double, ptr %51, align 8, !noalias !2448, !noundef !3 %_6.i504.i.i.i.i = fneg double %w8.1.i.i.i.i %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %52, align 8, !noalias !2448, !noundef !3 %_6.i507.i.i.i.i = fneg double %w7.1.i.i.i.i %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %53, align 8, !noalias !2448, !noundef !3 %_6.i510.i.i.i.i = fneg double %w6.1.i.i.i.i %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %54, align 8, !noalias !2448, !noundef !3 %_6.i513.i.i.i.i = fneg double %w5.1.i.i.i.i %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %55, align 8, !noalias !2448, !noundef !3 %_6.i516.i.i.i.i = fneg double %w4.1.i.i.i.i %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %56, align 8, !noalias !2448, !noundef !3 %_6.i519.i.i.i.i = fneg double %w3.1.i.i.i.i %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %57, align 8, !noalias !2448, !noundef !3 %_6.i522.i.i.i.i = fneg double %w2.1.i.i.i.i %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %58, align 8, !noalias !2448, !noundef !3 %_6.i525.i.i.i.i = fneg double %w1.1.i.i.i.i %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15 %wf.0.i.i.i.i = load double, ptr %59, align 8, !noalias !2448, !noundef !3 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14 %we.0.i.i.i.i = load double, ptr %60, align 8, !noalias !2448, !noundef !3 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13 %wd.0.i.i.i.i = load double, ptr %61, align 8, !noalias !2448, !noundef !3 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12 %wc.0.i.i.i.i = load double, ptr %62, align 8, !noalias !2448, !noundef !3 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11 %wb.0.i.i.i.i = load double, ptr %63, align 8, !noalias !2448, !noundef !3 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10 %wa.0.i.i.i.i = load double, ptr %64, align 8, !noalias !2448, !noundef !3 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9 %w9.0.i.i.i.i = load double, ptr %65, align 8, !noalias !2448, !noundef !3 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %w8.0.i.i.i.i = load double, ptr %66, align 8, !noalias !2448, !noundef !3 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %67, align 8, !noalias !2448, !noundef !3 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %68, align 8, !noalias !2448, !noundef !3 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %69, align 8, !noalias !2448, !noundef !3 %70 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %70, align 8, !noalias !2448, !noundef !3 %71 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %71, align 8, !noalias !2448, !noundef !3 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %72, align 8, !noalias !2448, !noundef !3 %73 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %73, align 8, !noalias !2448, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i522.i.i.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i519.i.i.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert43 = insertelement <4 x double> poison, double %_6.i516.i.i.i.i, i64 0 %broadcast.splat44 = shufflevector <4 x double> %broadcast.splatinsert43, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert45 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat46 = shufflevector <4 x double> %broadcast.splatinsert45, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert47 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat48 = shufflevector <4 x double> %broadcast.splatinsert47, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert52 = insertelement <4 x double> poison, double %_6.i513.i.i.i.i, i64 0 %broadcast.splat53 = shufflevector <4 x double> %broadcast.splatinsert52, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert54 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat55 = shufflevector <4 x double> %broadcast.splatinsert54, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert56 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat57 = shufflevector <4 x double> %broadcast.splatinsert56, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %_6.i510.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert65 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %_6.i507.i.i.i.i, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert72 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat73 = shufflevector <4 x double> %broadcast.splatinsert72, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert74 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert79 = insertelement <4 x double> poison, double %_6.i504.i.i.i.i, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert81 = insertelement <4 x double> poison, double %w8.0.i.i.i.i, i64 0 %broadcast.splat82 = shufflevector <4 x double> %broadcast.splatinsert81, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert83 = insertelement <4 x double> poison, double %w8.1.i.i.i.i, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert88 = insertelement <4 x double> poison, double %_6.i501.i.i.i.i, i64 0 %broadcast.splat89 = shufflevector <4 x double> %broadcast.splatinsert88, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert90 = insertelement <4 x double> poison, double %w9.0.i.i.i.i, i64 0 %broadcast.splat91 = shufflevector <4 x double> %broadcast.splatinsert90, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %w9.1.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert97 = insertelement <4 x double> poison, double %_6.i498.i.i.i.i, i64 0 %broadcast.splat98 = shufflevector <4 x double> %broadcast.splatinsert97, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %wa.0.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %wa.1.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i495.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %wb.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %wb.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert115 = insertelement <4 x double> poison, double %_6.i492.i.i.i.i, i64 0 %broadcast.splat116 = shufflevector <4 x double> %broadcast.splatinsert115, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert117 = insertelement <4 x double> poison, double %wc.0.i.i.i.i, i64 0 %broadcast.splat118 = shufflevector <4 x double> %broadcast.splatinsert117, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert119 = insertelement <4 x double> poison, double %wc.1.i.i.i.i, i64 0 %broadcast.splat120 = shufflevector <4 x double> %broadcast.splatinsert119, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %_6.i489.i.i.i.i, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert126 = insertelement <4 x double> poison, double %wd.0.i.i.i.i, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %wd.1.i.i.i.i, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert133 = insertelement <4 x double> poison, double %_6.i486.i.i.i.i, i64 0 %broadcast.splat134 = shufflevector <4 x double> %broadcast.splatinsert133, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %we.0.i.i.i.i, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %we.1.i.i.i.i, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i483.i.i.i.i, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %wf.0.i.i.i.i, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %wf.1.i.i.i.i, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb48.i.i.i.i %index11 = phi i64 [ 0, %bb48.i.i.i.i ], [ %index.next164, %vector.body10 ] %74 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index11 %75 = getelementptr inbounds %"num_complex::Complex", ptr %32, i64 %index11 %76 = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %index11 %77 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %index11 %78 = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %index11 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 %index11 %80 = getelementptr inbounds %"num_complex::Complex", ptr %34, i64 %index11 %81 = getelementptr inbounds %"num_complex::Complex", ptr %36, i64 %index11 %82 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index11 %83 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 %index11 %84 = getelementptr inbounds %"num_complex::Complex", ptr %38, i64 %index11 %85 = getelementptr inbounds %"num_complex::Complex", ptr %40, i64 %index11 %86 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index11 %87 = getelementptr inbounds %"num_complex::Complex", ptr %42, i64 %index11 %88 = getelementptr inbounds %"num_complex::Complex", ptr %41, i64 %index11 %89 = getelementptr inbounds %"num_complex::Complex", ptr %43, i64 %index11 %wide.vec12 = load <8 x double>, ptr %74, align 8, !noalias !2448 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %75, align 8, !noalias !2448 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %90 = fmul <4 x double> %strided.vec17, %broadcast.splat %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %90) %92 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %93 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %92) %wide.vec22 = load <8 x double>, ptr %76, align 8, !noalias !2448 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %94 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %94) %96 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %96) %wide.vec31 = load <8 x double>, ptr %77, align 8, !noalias !2448 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %98 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %98) %100 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %100) %wide.vec40 = load <8 x double>, ptr %78, align 8, !noalias !2448 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %102 = fmul <4 x double> %strided.vec42, %broadcast.splat44 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec41, <4 x double> %102) %104 = fmul <4 x double> %broadcast.splat48, %strided.vec41 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec42, <4 x double> %104) %wide.vec49 = load <8 x double>, ptr %79, align 8, !noalias !2448 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %106 = fmul <4 x double> %strided.vec51, %broadcast.splat53 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec50, <4 x double> %106) %108 = fmul <4 x double> %broadcast.splat57, %strided.vec50 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec51, <4 x double> %108) %wide.vec58 = load <8 x double>, ptr %80, align 8, !noalias !2448 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %110 = fmul <4 x double> %strided.vec60, %broadcast.splat62 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec59, <4 x double> %110) %112 = fmul <4 x double> %broadcast.splat66, %strided.vec59 %113 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec60, <4 x double> %112) %wide.vec67 = load <8 x double>, ptr %81, align 8, !noalias !2448 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %114 = fmul <4 x double> %strided.vec69, %broadcast.splat71 %115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec68, <4 x double> %114) %116 = fmul <4 x double> %broadcast.splat75, %strided.vec68 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec69, <4 x double> %116) %wide.vec76 = load <8 x double>, ptr %82, align 8, !noalias !2448 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %118 = fmul <4 x double> %strided.vec78, %broadcast.splat80 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77, <4 x double> %118) %120 = fmul <4 x double> %broadcast.splat84, %strided.vec77 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78, <4 x double> %120) %wide.vec85 = load <8 x double>, ptr %83, align 8, !noalias !2448 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %122 = fmul <4 x double> %strided.vec87, %broadcast.splat89 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat91, <4 x double> %strided.vec86, <4 x double> %122) %124 = fmul <4 x double> %broadcast.splat93, %strided.vec86 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat91, <4 x double> %strided.vec87, <4 x double> %124) %wide.vec94 = load <8 x double>, ptr %84, align 8, !noalias !2448 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %126 = fmul <4 x double> %strided.vec96, %broadcast.splat98 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec95, <4 x double> %126) %128 = fmul <4 x double> %broadcast.splat102, %strided.vec95 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec96, <4 x double> %128) %wide.vec103 = load <8 x double>, ptr %85, align 8, !noalias !2448 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %130 = fmul <4 x double> %strided.vec105, %broadcast.splat107 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec104, <4 x double> %130) %132 = fmul <4 x double> %broadcast.splat111, %strided.vec104 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec105, <4 x double> %132) %wide.vec112 = load <8 x double>, ptr %86, align 8, !noalias !2448 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %134 = fmul <4 x double> %strided.vec114, %broadcast.splat116 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec113, <4 x double> %134) %136 = fmul <4 x double> %broadcast.splat120, %strided.vec113 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec114, <4 x double> %136) %wide.vec121 = load <8 x double>, ptr %87, align 8, !noalias !2448 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %138 = fmul <4 x double> %strided.vec123, %broadcast.splat125 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec122, <4 x double> %138) %140 = fmul <4 x double> %broadcast.splat129, %strided.vec122 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec123, <4 x double> %140) %wide.vec130 = load <8 x double>, ptr %88, align 8, !noalias !2448 %strided.vec131 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %strided.vec132 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %142 = fmul <4 x double> %strided.vec132, %broadcast.splat134 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec131, <4 x double> %142) %144 = fmul <4 x double> %broadcast.splat138, %strided.vec131 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec132, <4 x double> %144) %wide.vec139 = load <8 x double>, ptr %89, align 8, !noalias !2448 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %146 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %146) %148 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %149 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %148) %150 = fadd <4 x double> %strided.vec13, %119 %151 = fadd <4 x double> %strided.vec14, %121 %152 = fsub <4 x double> %strided.vec13, %119 %153 = fsub <4 x double> %strided.vec14, %121 %154 = fadd <4 x double> %103, %135 %155 = fadd <4 x double> %105, %137 %156 = fsub <4 x double> %103, %135 %157 = fsub <4 x double> %105, %137 %158 = fadd <4 x double> %95, %127 %159 = fadd <4 x double> %97, %129 %160 = fsub <4 x double> %95, %127 %161 = fsub <4 x double> %97, %129 %162 = fadd <4 x double> %111, %143 %163 = fadd <4 x double> %113, %145 %164 = fsub <4 x double> %111, %143 %165 = fsub <4 x double> %113, %145 %166 = fadd <4 x double> %91, %123 %167 = fadd <4 x double> %93, %125 %168 = fsub <4 x double> %91, %123 %169 = fsub <4 x double> %93, %125 %170 = fadd <4 x double> %107, %139 %171 = fadd <4 x double> %109, %141 %172 = fsub <4 x double> %107, %139 %173 = fsub <4 x double> %109, %141 %174 = fadd <4 x double> %99, %131 %175 = fadd <4 x double> %101, %133 %176 = fsub <4 x double> %99, %131 %177 = fsub <4 x double> %101, %133 %178 = fadd <4 x double> %115, %147 %179 = fadd <4 x double> %117, %149 %180 = fsub <4 x double> %115, %147 %181 = fsub <4 x double> %117, %149 %182 = fadd <4 x double> %150, %154 %183 = fadd <4 x double> %151, %155 %184 = fsub <4 x double> %152, %157 %185 = fadd <4 x double> %153, %156 %186 = fsub <4 x double> %150, %154 %187 = fsub <4 x double> %151, %155 %188 = fadd <4 x double> %152, %157 %189 = fsub <4 x double> %153, %156 %190 = fadd <4 x double> %158, %162 %191 = fadd <4 x double> %159, %163 %192 = fsub <4 x double> %160, %165 %193 = fadd <4 x double> %161, %164 %194 = fsub <4 x double> %158, %162 %195 = fsub <4 x double> %159, %163 %196 = fadd <4 x double> %160, %165 %197 = fsub <4 x double> %161, %164 %198 = fadd <4 x double> %166, %170 %199 = fadd <4 x double> %167, %171 %200 = fsub <4 x double> %168, %173 %201 = fadd <4 x double> %169, %172 %202 = fsub <4 x double> %166, %170 %203 = fsub <4 x double> %167, %171 %204 = fadd <4 x double> %168, %173 %205 = fsub <4 x double> %169, %172 %206 = fadd <4 x double> %174, %178 %207 = fadd <4 x double> %175, %179 %208 = fsub <4 x double> %176, %181 %209 = fadd <4 x double> %177, %180 %210 = fsub <4 x double> %174, %178 %211 = fsub <4 x double> %175, %179 %212 = fadd <4 x double> %176, %181 %213 = fsub <4 x double> %177, %180 %214 = fsub <4 x double> %192, %193 %215 = fadd <4 x double> %192, %193 %216 = fmul <4 x double> %214, %217 = fmul <4 x double> %215, %218 = fadd <4 x double> %196, %197 %219 = fsub <4 x double> %197, %196 %220 = fmul <4 x double> %218, %221 = fmul <4 x double> %219, %222 = fadd <4 x double> %182, %190 %223 = fadd <4 x double> %183, %191 %224 = fadd <4 x double> %184, %216 %225 = fadd <4 x double> %185, %217 %226 = fsub <4 x double> %186, %195 %227 = fadd <4 x double> %187, %194 %228 = fsub <4 x double> %188, %220 %229 = fsub <4 x double> %189, %221 %230 = fsub <4 x double> %182, %190 %231 = fsub <4 x double> %183, %191 %232 = fsub <4 x double> %184, %216 %233 = fsub <4 x double> %185, %217 %234 = fadd <4 x double> %186, %195 %235 = fsub <4 x double> %187, %194 %236 = fadd <4 x double> %188, %220 %237 = fadd <4 x double> %189, %221 %238 = fsub <4 x double> %208, %209 %239 = fadd <4 x double> %208, %209 %240 = fmul <4 x double> %238, %241 = fmul <4 x double> %239, %242 = fadd <4 x double> %212, %213 %243 = fsub <4 x double> %213, %212 %244 = fmul <4 x double> %242, %245 = fmul <4 x double> %243, %246 = fadd <4 x double> %198, %206 %247 = fadd <4 x double> %199, %207 %248 = fadd <4 x double> %200, %240 %249 = fadd <4 x double> %201, %241 %250 = fsub <4 x double> %202, %211 %251 = fadd <4 x double> %203, %210 %252 = fsub <4 x double> %204, %244 %253 = fsub <4 x double> %205, %245 %254 = fsub <4 x double> %198, %206 %255 = fsub <4 x double> %199, %207 %256 = fsub <4 x double> %200, %240 %257 = fsub <4 x double> %201, %241 %258 = fadd <4 x double> %202, %211 %259 = fsub <4 x double> %203, %210 %260 = fadd <4 x double> %204, %244 %261 = fadd <4 x double> %205, %245 %262 = fadd <4 x double> %222, %246 %263 = fadd <4 x double> %223, %247 %264 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec148 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> store <8 x double> %interleaved.vec148, ptr %264, align 8, !noalias !2448 %265 = fsub <4 x double> %222, %246 %266 = fsub <4 x double> %223, %247 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec149 = shufflevector <4 x double> %265, <4 x double> %266, <8 x i32> store <8 x double> %interleaved.vec149, ptr %267, align 8, !noalias !2448 %268 = fmul <4 x double> %249, %269 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %268) %270 = fmul <4 x double> %248, %271 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %249, <4 x double> , <4 x double> %270) %272 = fadd <4 x double> %224, %269 %273 = fadd <4 x double> %225, %271 %274 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec150 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec150, ptr %274, align 8, !noalias !2448 %275 = fsub <4 x double> %224, %269 %276 = fsub <4 x double> %225, %271 %277 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec151 = shufflevector <4 x double> %275, <4 x double> %276, <8 x i32> store <8 x double> %interleaved.vec151, ptr %277, align 8, !noalias !2448 %278 = fsub <4 x double> %250, %251 %279 = fadd <4 x double> %250, %251 %280 = fmul <4 x double> %278, %281 = fmul <4 x double> %279, %282 = fadd <4 x double> %226, %280 %283 = fadd <4 x double> %227, %281 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec152 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec152, ptr %284, align 8, !noalias !2448 %285 = fsub <4 x double> %226, %280 %286 = fsub <4 x double> %227, %281 %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec153 = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec153, ptr %287, align 8, !noalias !2448 %288 = fmul <4 x double> %253, %289 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %288) %290 = fmul <4 x double> %252, %291 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %253, <4 x double> , <4 x double> %290) %292 = fadd <4 x double> %228, %289 %293 = fadd <4 x double> %229, %291 %294 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec154 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec154, ptr %294, align 8, !noalias !2448 %295 = fsub <4 x double> %228, %289 %296 = fsub <4 x double> %229, %291 %297 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec155 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec155, ptr %297, align 8, !noalias !2448 %298 = fsub <4 x double> %230, %255 %299 = fadd <4 x double> %231, %254 %300 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec156 = shufflevector <4 x double> %298, <4 x double> %299, <8 x i32> store <8 x double> %interleaved.vec156, ptr %300, align 8, !noalias !2448 %301 = fadd <4 x double> %230, %255 %302 = fsub <4 x double> %231, %254 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec157 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec157, ptr %303, align 8, !noalias !2448 %304 = fmul <4 x double> %257, %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %304) %306 = fmul <4 x double> %256, %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %257, <4 x double> , <4 x double> %306) %308 = fsub <4 x double> %232, %305 %309 = fsub <4 x double> %233, %307 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec158 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec158, ptr %310, align 8, !noalias !2448 %311 = fadd <4 x double> %232, %305 %312 = fadd <4 x double> %233, %307 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec159 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec159, ptr %313, align 8, !noalias !2448 %314 = fadd <4 x double> %258, %259 %315 = fsub <4 x double> %259, %258 %316 = fmul <4 x double> %314, %317 = fmul <4 x double> %315, %318 = fsub <4 x double> %234, %316 %319 = fsub <4 x double> %235, %317 %320 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec160 = shufflevector <4 x double> %318, <4 x double> %319, <8 x i32> store <8 x double> %interleaved.vec160, ptr %320, align 8, !noalias !2448 %321 = fadd <4 x double> %234, %316 %322 = fadd <4 x double> %235, %317 %323 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec161 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec161, ptr %323, align 8, !noalias !2448 %324 = fmul <4 x double> %261, %325 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %260, <4 x double> , <4 x double> %324) %326 = fmul <4 x double> %260, %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %261, <4 x double> , <4 x double> %326) %328 = fsub <4 x double> %236, %325 %329 = fsub <4 x double> %237, %327 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec162 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec162, ptr %330, align 8, !noalias !2448 %331 = fadd <4 x double> %236, %325 %332 = fadd <4 x double> %237, %327 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec163 = shufflevector <4 x double> %331, <4 x double> %332, <8 x i32> store <8 x double> %interleaved.vec163, ptr %333, align 8, !noalias !2448 %index.next164 = add nuw i64 %index11, 4 %334 = icmp eq i64 %index.next164, 16 br i1 %334, label %middle.block6, label %vector.body10, !llvm.loop !2452 middle.block6: ; preds = %vector.body10 br i1 %_2.i.i.i402, label %bb48.i.i.i.i, label %bb48.i.i.i.preheader bb48.i.i.i.preheader: ; preds = %middle.block6 %335 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %336 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %337 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %338 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %340 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %341 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %342 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %344 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 288 %345 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 352 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 416 %348 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 480 br label %vector.body169 vector.body169: ; preds = %vector.body169, %bb48.i.i.i.preheader %index170 = phi i64 [ 0, %bb48.i.i.i.preheader ], [ %index.next248, %vector.body169 ] %vec.ind = phi <4 x i64> [ , %bb48.i.i.i.preheader ], [ %vec.ind.next, %vector.body169 ] %349 = shl <4 x i64> %vec.ind, %350 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %349 %351 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %351, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %352 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather171 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %352, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %353 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather172 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %353, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %354 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather173 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %355 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather174 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %355, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %356 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather175 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %356, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %357 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather176 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %357, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %358 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather177 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %358, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %359 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather178 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %360 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather179 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %360, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %361 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather180 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %361, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %362 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather181 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %362, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %363 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather182 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %364 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %365 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %366 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %367 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %368 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %369 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %370 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %371 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %372 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %373 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %373, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %374 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %374, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %375 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %375, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %376 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %376, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %377 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %378 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather197 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %378, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %379 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather198 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %379, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %380 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather199 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %380, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %381 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 8 %382 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 4 %383 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 2 %384 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 1 %385 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 3 %386 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 6 %387 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 5 %388 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 7 %389 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 12 %390 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 10 %391 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 9 %392 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 11 %393 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 14 %394 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 13 %395 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 15 %396 = fneg <4 x double> %wide.masked.gather171 %397 = fneg <4 x double> %wide.masked.gather173 %398 = fneg <4 x double> %wide.masked.gather175 %399 = fneg <4 x double> %wide.masked.gather177 %400 = fneg <4 x double> %wide.masked.gather179 %401 = fneg <4 x double> %wide.masked.gather181 %402 = fneg <4 x double> %wide.masked.gather183 %403 = fneg <4 x double> %wide.masked.gather185 %404 = fneg <4 x double> %wide.masked.gather187 %405 = fneg <4 x double> %wide.masked.gather189 %406 = fneg <4 x double> %wide.masked.gather191 %407 = fneg <4 x double> %wide.masked.gather193 %408 = fneg <4 x double> %wide.masked.gather195 %409 = fneg <4 x double> %wide.masked.gather197 %410 = fneg <4 x double> %wide.masked.gather199 %wide.masked.gather200 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %350, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %411 = getelementptr inbounds i8, <4 x ptr> %350, i64 8 %wide.masked.gather201 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %411, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %wide.masked.gather202 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %384, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %412 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 1, i32 1 %wide.masked.gather203 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %412, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %413 = fmul <4 x double> %wide.masked.gather203, %396 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather202, <4 x double> %413) %415 = fmul <4 x double> %wide.masked.gather171, %wide.masked.gather202 %416 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather203, <4 x double> %415) %wide.masked.gather204 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %383, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %417 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 2, i32 1 %wide.masked.gather205 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %417, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %418 = fmul <4 x double> %wide.masked.gather205, %397 %419 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather172, <4 x double> %wide.masked.gather204, <4 x double> %418) %420 = fmul <4 x double> %wide.masked.gather173, %wide.masked.gather204 %421 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather172, <4 x double> %wide.masked.gather205, <4 x double> %420) %wide.masked.gather206 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %385, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %422 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 3, i32 1 %wide.masked.gather207 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %422, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %423 = fmul <4 x double> %wide.masked.gather207, %398 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather174, <4 x double> %wide.masked.gather206, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather175, %wide.masked.gather206 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather174, <4 x double> %wide.masked.gather207, <4 x double> %425) %wide.masked.gather208 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %427 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 4, i32 1 %wide.masked.gather209 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %427, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %428 = fmul <4 x double> %wide.masked.gather209, %399 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather176, <4 x double> %wide.masked.gather208, <4 x double> %428) %430 = fmul <4 x double> %wide.masked.gather177, %wide.masked.gather208 %431 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather176, <4 x double> %wide.masked.gather209, <4 x double> %430) %wide.masked.gather210 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %387, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %432 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 5, i32 1 %wide.masked.gather211 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %432, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %433 = fmul <4 x double> %wide.masked.gather211, %400 %434 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather178, <4 x double> %wide.masked.gather210, <4 x double> %433) %435 = fmul <4 x double> %wide.masked.gather179, %wide.masked.gather210 %436 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather178, <4 x double> %wide.masked.gather211, <4 x double> %435) %wide.masked.gather212 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %386, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 6, i32 1 %wide.masked.gather213 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %438 = fmul <4 x double> %wide.masked.gather213, %401 %439 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather212, <4 x double> %438) %440 = fmul <4 x double> %wide.masked.gather181, %wide.masked.gather212 %441 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather213, <4 x double> %440) %wide.masked.gather214 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %388, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %442 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 7, i32 1 %wide.masked.gather215 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %442, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %443 = fmul <4 x double> %wide.masked.gather215, %402 %444 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather214, <4 x double> %443) %445 = fmul <4 x double> %wide.masked.gather183, %wide.masked.gather214 %446 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather215, <4 x double> %445) %wide.masked.gather216 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %381, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %447 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 8, i32 1 %wide.masked.gather217 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %448 = fmul <4 x double> %wide.masked.gather217, %403 %449 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather216, <4 x double> %448) %450 = fmul <4 x double> %wide.masked.gather185, %wide.masked.gather216 %451 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather217, <4 x double> %450) %wide.masked.gather218 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %391, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %452 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 9, i32 1 %wide.masked.gather219 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %452, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %453 = fmul <4 x double> %wide.masked.gather219, %404 %454 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather218, <4 x double> %453) %455 = fmul <4 x double> %wide.masked.gather187, %wide.masked.gather218 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather219, <4 x double> %455) %wide.masked.gather220 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %390, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 10, i32 1 %wide.masked.gather221 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %458 = fmul <4 x double> %wide.masked.gather221, %405 %459 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather220, <4 x double> %458) %460 = fmul <4 x double> %wide.masked.gather189, %wide.masked.gather220 %461 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather221, <4 x double> %460) %wide.masked.gather222 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %392, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %462 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 11, i32 1 %wide.masked.gather223 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %462, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %463 = fmul <4 x double> %wide.masked.gather223, %406 %464 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather222, <4 x double> %463) %465 = fmul <4 x double> %wide.masked.gather191, %wide.masked.gather222 %466 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather223, <4 x double> %465) %wide.masked.gather224 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %389, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %467 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 12, i32 1 %wide.masked.gather225 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %467, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %468 = fmul <4 x double> %wide.masked.gather225, %407 %469 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather224, <4 x double> %468) %470 = fmul <4 x double> %wide.masked.gather193, %wide.masked.gather224 %471 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather225, <4 x double> %470) %wide.masked.gather226 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %394, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %472 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 13, i32 1 %wide.masked.gather227 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %472, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %473 = fmul <4 x double> %wide.masked.gather227, %408 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather226, <4 x double> %473) %475 = fmul <4 x double> %wide.masked.gather195, %wide.masked.gather226 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather227, <4 x double> %475) %wide.masked.gather228 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %393, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %477 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 14, i32 1 %wide.masked.gather229 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %477, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %478 = fmul <4 x double> %wide.masked.gather229, %409 %479 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather228, <4 x double> %478) %480 = fmul <4 x double> %wide.masked.gather197, %wide.masked.gather228 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather229, <4 x double> %480) %wide.masked.gather230 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %395, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %482 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 15, i32 1 %wide.masked.gather231 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %482, i32 8, <4 x i1> , <4 x double> poison), !noalias !2448 %483 = fmul <4 x double> %wide.masked.gather231, %410 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather230, <4 x double> %483) %485 = fmul <4 x double> %wide.masked.gather199, %wide.masked.gather230 %486 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather231, <4 x double> %485) %487 = fadd <4 x double> %wide.masked.gather200, %449 %488 = fadd <4 x double> %wide.masked.gather201, %451 %489 = fsub <4 x double> %wide.masked.gather200, %449 %490 = fsub <4 x double> %wide.masked.gather201, %451 %491 = fadd <4 x double> %429, %469 %492 = fadd <4 x double> %431, %471 %493 = fsub <4 x double> %429, %469 %494 = fsub <4 x double> %431, %471 %495 = fadd <4 x double> %419, %459 %496 = fadd <4 x double> %421, %461 %497 = fsub <4 x double> %419, %459 %498 = fsub <4 x double> %421, %461 %499 = fadd <4 x double> %439, %479 %500 = fadd <4 x double> %441, %481 %501 = fsub <4 x double> %439, %479 %502 = fsub <4 x double> %441, %481 %503 = fadd <4 x double> %414, %454 %504 = fadd <4 x double> %416, %456 %505 = fsub <4 x double> %414, %454 %506 = fsub <4 x double> %416, %456 %507 = fadd <4 x double> %434, %474 %508 = fadd <4 x double> %436, %476 %509 = fsub <4 x double> %434, %474 %510 = fsub <4 x double> %436, %476 %511 = fadd <4 x double> %424, %464 %512 = fadd <4 x double> %426, %466 %513 = fsub <4 x double> %424, %464 %514 = fsub <4 x double> %426, %466 %515 = fadd <4 x double> %444, %484 %516 = fadd <4 x double> %446, %486 %517 = fsub <4 x double> %444, %484 %518 = fsub <4 x double> %446, %486 %519 = fadd <4 x double> %487, %491 %520 = fadd <4 x double> %488, %492 %521 = fsub <4 x double> %489, %494 %522 = fadd <4 x double> %490, %493 %523 = fsub <4 x double> %487, %491 %524 = fsub <4 x double> %488, %492 %525 = fadd <4 x double> %489, %494 %526 = fsub <4 x double> %490, %493 %527 = fadd <4 x double> %495, %499 %528 = fadd <4 x double> %496, %500 %529 = fsub <4 x double> %497, %502 %530 = fadd <4 x double> %498, %501 %531 = fsub <4 x double> %495, %499 %532 = fsub <4 x double> %496, %500 %533 = fadd <4 x double> %497, %502 %534 = fsub <4 x double> %498, %501 %535 = fadd <4 x double> %503, %507 %536 = fadd <4 x double> %504, %508 %537 = fsub <4 x double> %505, %510 %538 = fadd <4 x double> %506, %509 %539 = fsub <4 x double> %503, %507 %540 = fsub <4 x double> %504, %508 %541 = fadd <4 x double> %505, %510 %542 = fsub <4 x double> %506, %509 %543 = fadd <4 x double> %511, %515 %544 = fadd <4 x double> %512, %516 %545 = fsub <4 x double> %513, %518 %546 = fadd <4 x double> %514, %517 %547 = fsub <4 x double> %511, %515 %548 = fsub <4 x double> %512, %516 %549 = fadd <4 x double> %513, %518 %550 = fsub <4 x double> %514, %517 %551 = fsub <4 x double> %529, %530 %552 = fadd <4 x double> %529, %530 %553 = fmul <4 x double> %551, %554 = fmul <4 x double> %552, %555 = fadd <4 x double> %533, %534 %556 = fsub <4 x double> %534, %533 %557 = fmul <4 x double> %555, %558 = fmul <4 x double> %556, %559 = fadd <4 x double> %519, %527 %560 = fadd <4 x double> %520, %528 %561 = fadd <4 x double> %521, %553 %562 = fadd <4 x double> %522, %554 %563 = fsub <4 x double> %523, %532 %564 = fadd <4 x double> %524, %531 %565 = fsub <4 x double> %525, %557 %566 = fsub <4 x double> %526, %558 %567 = fsub <4 x double> %519, %527 %568 = fsub <4 x double> %520, %528 %569 = fsub <4 x double> %521, %553 %570 = fsub <4 x double> %522, %554 %571 = fadd <4 x double> %523, %532 %572 = fsub <4 x double> %524, %531 %573 = fadd <4 x double> %525, %557 %574 = fadd <4 x double> %526, %558 %575 = fsub <4 x double> %545, %546 %576 = fadd <4 x double> %545, %546 %577 = fmul <4 x double> %575, %578 = fmul <4 x double> %576, %579 = fadd <4 x double> %549, %550 %580 = fsub <4 x double> %550, %549 %581 = fmul <4 x double> %579, %582 = fmul <4 x double> %580, %583 = fadd <4 x double> %535, %543 %584 = fadd <4 x double> %536, %544 %585 = fadd <4 x double> %537, %577 %586 = fadd <4 x double> %538, %578 %587 = fsub <4 x double> %539, %548 %588 = fadd <4 x double> %540, %547 %589 = fsub <4 x double> %541, %581 %590 = fsub <4 x double> %542, %582 %591 = fsub <4 x double> %535, %543 %592 = fsub <4 x double> %536, %544 %593 = fsub <4 x double> %537, %577 %594 = fsub <4 x double> %538, %578 %595 = fadd <4 x double> %539, %548 %596 = fsub <4 x double> %540, %547 %597 = fadd <4 x double> %541, %581 %598 = fadd <4 x double> %542, %582 %599 = fadd <4 x double> %559, %583 %600 = fadd <4 x double> %560, %584 %601 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index170 %interleaved.vec232 = shufflevector <4 x double> %599, <4 x double> %600, <8 x i32> store <8 x double> %interleaved.vec232, ptr %601, align 8, !noalias !2448 %602 = fsub <4 x double> %559, %583 %603 = fsub <4 x double> %560, %584 %604 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index170 %interleaved.vec233 = shufflevector <4 x double> %602, <4 x double> %603, <8 x i32> store <8 x double> %interleaved.vec233, ptr %604, align 8, !noalias !2448 %605 = fmul <4 x double> %586, %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %585, <4 x double> , <4 x double> %605) %607 = fmul <4 x double> %585, %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %586, <4 x double> , <4 x double> %607) %609 = fadd <4 x double> %561, %606 %610 = fadd <4 x double> %562, %608 %611 = getelementptr inbounds %"num_complex::Complex", ptr %337, i64 %index170 %interleaved.vec234 = shufflevector <4 x double> %609, <4 x double> %610, <8 x i32> store <8 x double> %interleaved.vec234, ptr %611, align 8, !noalias !2448 %612 = fsub <4 x double> %561, %606 %613 = fsub <4 x double> %562, %608 %614 = getelementptr inbounds %"num_complex::Complex", ptr %344, i64 %index170 %interleaved.vec235 = shufflevector <4 x double> %612, <4 x double> %613, <8 x i32> store <8 x double> %interleaved.vec235, ptr %614, align 8, !noalias !2448 %615 = fsub <4 x double> %587, %588 %616 = fadd <4 x double> %587, %588 %617 = fmul <4 x double> %615, %618 = fmul <4 x double> %616, %619 = fadd <4 x double> %563, %617 %620 = fadd <4 x double> %564, %618 %621 = getelementptr inbounds %"num_complex::Complex", ptr %336, i64 %index170 %interleaved.vec236 = shufflevector <4 x double> %619, <4 x double> %620, <8 x i32> store <8 x double> %interleaved.vec236, ptr %621, align 8, !noalias !2448 %622 = fsub <4 x double> %563, %617 %623 = fsub <4 x double> %564, %618 %624 = getelementptr inbounds %"num_complex::Complex", ptr %343, i64 %index170 %interleaved.vec237 = shufflevector <4 x double> %622, <4 x double> %623, <8 x i32> store <8 x double> %interleaved.vec237, ptr %624, align 8, !noalias !2448 %625 = fmul <4 x double> %590, %626 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %589, <4 x double> , <4 x double> %625) %627 = fmul <4 x double> %589, %628 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %590, <4 x double> , <4 x double> %627) %629 = fadd <4 x double> %565, %626 %630 = fadd <4 x double> %566, %628 %631 = getelementptr inbounds %"num_complex::Complex", ptr %338, i64 %index170 %interleaved.vec238 = shufflevector <4 x double> %629, <4 x double> %630, <8 x i32> store <8 x double> %interleaved.vec238, ptr %631, align 8, !noalias !2448 %632 = fsub <4 x double> %565, %626 %633 = fsub <4 x double> %566, %628 %634 = getelementptr inbounds %"num_complex::Complex", ptr %345, i64 %index170 %interleaved.vec239 = shufflevector <4 x double> %632, <4 x double> %633, <8 x i32> store <8 x double> %interleaved.vec239, ptr %634, align 8, !noalias !2448 %635 = fsub <4 x double> %567, %592 %636 = fadd <4 x double> %568, %591 %637 = getelementptr inbounds %"num_complex::Complex", ptr %335, i64 %index170 %interleaved.vec240 = shufflevector <4 x double> %635, <4 x double> %636, <8 x i32> store <8 x double> %interleaved.vec240, ptr %637, align 8, !noalias !2448 %638 = fadd <4 x double> %567, %592 %639 = fsub <4 x double> %568, %591 %640 = getelementptr inbounds %"num_complex::Complex", ptr %342, i64 %index170 %interleaved.vec241 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec241, ptr %640, align 8, !noalias !2448 %641 = fmul <4 x double> %594, %642 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %593, <4 x double> , <4 x double> %641) %643 = fmul <4 x double> %593, %644 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %594, <4 x double> , <4 x double> %643) %645 = fsub <4 x double> %569, %642 %646 = fsub <4 x double> %570, %644 %647 = getelementptr inbounds %"num_complex::Complex", ptr %340, i64 %index170 %interleaved.vec242 = shufflevector <4 x double> %645, <4 x double> %646, <8 x i32> store <8 x double> %interleaved.vec242, ptr %647, align 8, !noalias !2448 %648 = fadd <4 x double> %569, %642 %649 = fadd <4 x double> %570, %644 %650 = getelementptr inbounds %"num_complex::Complex", ptr %347, i64 %index170 %interleaved.vec243 = shufflevector <4 x double> %648, <4 x double> %649, <8 x i32> store <8 x double> %interleaved.vec243, ptr %650, align 8, !noalias !2448 %651 = fadd <4 x double> %595, %596 %652 = fsub <4 x double> %596, %595 %653 = fmul <4 x double> %651, %654 = fmul <4 x double> %652, %655 = fsub <4 x double> %571, %653 %656 = fsub <4 x double> %572, %654 %657 = getelementptr inbounds %"num_complex::Complex", ptr %339, i64 %index170 %interleaved.vec244 = shufflevector <4 x double> %655, <4 x double> %656, <8 x i32> store <8 x double> %interleaved.vec244, ptr %657, align 8, !noalias !2448 %658 = fadd <4 x double> %571, %653 %659 = fadd <4 x double> %572, %654 %660 = getelementptr inbounds %"num_complex::Complex", ptr %346, i64 %index170 %interleaved.vec245 = shufflevector <4 x double> %658, <4 x double> %659, <8 x i32> store <8 x double> %interleaved.vec245, ptr %660, align 8, !noalias !2448 %661 = fmul <4 x double> %598, %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %597, <4 x double> , <4 x double> %661) %663 = fmul <4 x double> %597, %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> , <4 x double> %663) %665 = fsub <4 x double> %573, %662 %666 = fsub <4 x double> %574, %664 %667 = getelementptr inbounds %"num_complex::Complex", ptr %341, i64 %index170 %interleaved.vec246 = shufflevector <4 x double> %665, <4 x double> %666, <8 x i32> store <8 x double> %interleaved.vec246, ptr %667, align 8, !noalias !2448 %668 = fadd <4 x double> %573, %662 %669 = fadd <4 x double> %574, %664 %670 = getelementptr inbounds %"num_complex::Complex", ptr %348, i64 %index170 %interleaved.vec247 = shufflevector <4 x double> %668, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec247, ptr %670, align 8, !noalias !2448 %index.next248 = add nuw i64 %index170, 4 %vec.ind.next = add <4 x i64> %vec.ind, %671 = icmp eq i64 %index.next248, 32 br i1 %671, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7000cbbab852428eE.exit", label %vector.body169, !llvm.loop !2453 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7000cbbab852428eE.exit": ; preds = %vector.body169 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2448 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0eac7b5dcb8b7592E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2454 store i64 512, ptr %n.i, align 8, !noalias !2454 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2454 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2454 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2454 store ptr null, ptr %_16.i, align 8, !noalias !2454 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2454 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2454 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2454 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2454 store ptr null, ptr %_24.i, align 8, !noalias !2454 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2454 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2454 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2454 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2454 store ptr null, ptr %_32.i, align 8, !noalias !2454 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2454 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2454 store i64 %w.1, ptr %_34.i, align 8, !noalias !2454 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %bb9.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2454 store ptr null, ptr %_40.i, align 8, !noalias !2454 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2454 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !2454 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !2454 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !2454 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !2454 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !2454 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !2454 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !2454 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !2454 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 256 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, label %vector.body, !llvm.loop !2457 _ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %18 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %22 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 288 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 352 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 416 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 480 br label %bb48.i.i.i.i bb48.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, %middle.block6 %_2.i.i.i402 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit ], [ false, %middle.block6 ] %iter.i.i.i.i.sroa.208.0218 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit ], [ 1, %middle.block6 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0218, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0218, 8 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %29 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %30 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %31 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %32 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %33 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %34 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 96 %35 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 80 %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 112 %37 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %38 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 160 %39 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 144 %40 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 176 %41 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 224 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 208 %43 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 240 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i.i.i = load double, ptr %44, align 8, !noalias !2454, !noundef !3 %_6.i483.i.i.i.i = fneg double %wf.1.i.i.i.i %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i.i.i = load double, ptr %45, align 8, !noalias !2454, !noundef !3 %_6.i486.i.i.i.i = fneg double %we.1.i.i.i.i %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i.i.i = load double, ptr %46, align 8, !noalias !2454, !noundef !3 %_6.i489.i.i.i.i = fneg double %wd.1.i.i.i.i %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i.i.i = load double, ptr %47, align 8, !noalias !2454, !noundef !3 %_6.i492.i.i.i.i = fneg double %wc.1.i.i.i.i %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i.i.i = load double, ptr %48, align 8, !noalias !2454, !noundef !3 %_6.i495.i.i.i.i = fneg double %wb.1.i.i.i.i %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i.i.i = load double, ptr %49, align 8, !noalias !2454, !noundef !3 %_6.i498.i.i.i.i = fneg double %wa.1.i.i.i.i %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i.i.i = load double, ptr %50, align 8, !noalias !2454, !noundef !3 %_6.i501.i.i.i.i = fneg double %w9.1.i.i.i.i %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i.i.i = load double, ptr %51, align 8, !noalias !2454, !noundef !3 %_6.i504.i.i.i.i = fneg double %w8.1.i.i.i.i %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %52, align 8, !noalias !2454, !noundef !3 %_6.i507.i.i.i.i = fneg double %w7.1.i.i.i.i %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %53, align 8, !noalias !2454, !noundef !3 %_6.i510.i.i.i.i = fneg double %w6.1.i.i.i.i %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %54, align 8, !noalias !2454, !noundef !3 %_6.i513.i.i.i.i = fneg double %w5.1.i.i.i.i %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %55, align 8, !noalias !2454, !noundef !3 %_6.i516.i.i.i.i = fneg double %w4.1.i.i.i.i %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %56, align 8, !noalias !2454, !noundef !3 %_6.i519.i.i.i.i = fneg double %w3.1.i.i.i.i %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %57, align 8, !noalias !2454, !noundef !3 %_6.i522.i.i.i.i = fneg double %w2.1.i.i.i.i %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %58, align 8, !noalias !2454, !noundef !3 %_6.i525.i.i.i.i = fneg double %w1.1.i.i.i.i %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15 %wf.0.i.i.i.i = load double, ptr %59, align 8, !noalias !2454, !noundef !3 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14 %we.0.i.i.i.i = load double, ptr %60, align 8, !noalias !2454, !noundef !3 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13 %wd.0.i.i.i.i = load double, ptr %61, align 8, !noalias !2454, !noundef !3 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12 %wc.0.i.i.i.i = load double, ptr %62, align 8, !noalias !2454, !noundef !3 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11 %wb.0.i.i.i.i = load double, ptr %63, align 8, !noalias !2454, !noundef !3 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10 %wa.0.i.i.i.i = load double, ptr %64, align 8, !noalias !2454, !noundef !3 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9 %w9.0.i.i.i.i = load double, ptr %65, align 8, !noalias !2454, !noundef !3 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %w8.0.i.i.i.i = load double, ptr %66, align 8, !noalias !2454, !noundef !3 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %67, align 8, !noalias !2454, !noundef !3 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %68, align 8, !noalias !2454, !noundef !3 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %69, align 8, !noalias !2454, !noundef !3 %70 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %70, align 8, !noalias !2454, !noundef !3 %71 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %71, align 8, !noalias !2454, !noundef !3 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %72, align 8, !noalias !2454, !noundef !3 %73 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %73, align 8, !noalias !2454, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i522.i.i.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i519.i.i.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert43 = insertelement <4 x double> poison, double %_6.i516.i.i.i.i, i64 0 %broadcast.splat44 = shufflevector <4 x double> %broadcast.splatinsert43, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert45 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat46 = shufflevector <4 x double> %broadcast.splatinsert45, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert47 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat48 = shufflevector <4 x double> %broadcast.splatinsert47, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert52 = insertelement <4 x double> poison, double %_6.i513.i.i.i.i, i64 0 %broadcast.splat53 = shufflevector <4 x double> %broadcast.splatinsert52, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert54 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat55 = shufflevector <4 x double> %broadcast.splatinsert54, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert56 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat57 = shufflevector <4 x double> %broadcast.splatinsert56, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %_6.i510.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert65 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %_6.i507.i.i.i.i, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert72 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat73 = shufflevector <4 x double> %broadcast.splatinsert72, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert74 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert79 = insertelement <4 x double> poison, double %_6.i504.i.i.i.i, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert81 = insertelement <4 x double> poison, double %w8.0.i.i.i.i, i64 0 %broadcast.splat82 = shufflevector <4 x double> %broadcast.splatinsert81, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert83 = insertelement <4 x double> poison, double %w8.1.i.i.i.i, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert88 = insertelement <4 x double> poison, double %_6.i501.i.i.i.i, i64 0 %broadcast.splat89 = shufflevector <4 x double> %broadcast.splatinsert88, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert90 = insertelement <4 x double> poison, double %w9.0.i.i.i.i, i64 0 %broadcast.splat91 = shufflevector <4 x double> %broadcast.splatinsert90, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %w9.1.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert97 = insertelement <4 x double> poison, double %_6.i498.i.i.i.i, i64 0 %broadcast.splat98 = shufflevector <4 x double> %broadcast.splatinsert97, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %wa.0.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %wa.1.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i495.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %wb.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %wb.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert115 = insertelement <4 x double> poison, double %_6.i492.i.i.i.i, i64 0 %broadcast.splat116 = shufflevector <4 x double> %broadcast.splatinsert115, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert117 = insertelement <4 x double> poison, double %wc.0.i.i.i.i, i64 0 %broadcast.splat118 = shufflevector <4 x double> %broadcast.splatinsert117, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert119 = insertelement <4 x double> poison, double %wc.1.i.i.i.i, i64 0 %broadcast.splat120 = shufflevector <4 x double> %broadcast.splatinsert119, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %_6.i489.i.i.i.i, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert126 = insertelement <4 x double> poison, double %wd.0.i.i.i.i, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %wd.1.i.i.i.i, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert133 = insertelement <4 x double> poison, double %_6.i486.i.i.i.i, i64 0 %broadcast.splat134 = shufflevector <4 x double> %broadcast.splatinsert133, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %we.0.i.i.i.i, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %we.1.i.i.i.i, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i483.i.i.i.i, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %wf.0.i.i.i.i, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %wf.1.i.i.i.i, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb48.i.i.i.i %index11 = phi i64 [ 0, %bb48.i.i.i.i ], [ %index.next164, %vector.body10 ] %74 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index11 %75 = getelementptr inbounds %"num_complex::Complex", ptr %32, i64 %index11 %76 = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %index11 %77 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %index11 %78 = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %index11 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 %index11 %80 = getelementptr inbounds %"num_complex::Complex", ptr %34, i64 %index11 %81 = getelementptr inbounds %"num_complex::Complex", ptr %36, i64 %index11 %82 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index11 %83 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 %index11 %84 = getelementptr inbounds %"num_complex::Complex", ptr %38, i64 %index11 %85 = getelementptr inbounds %"num_complex::Complex", ptr %40, i64 %index11 %86 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index11 %87 = getelementptr inbounds %"num_complex::Complex", ptr %42, i64 %index11 %88 = getelementptr inbounds %"num_complex::Complex", ptr %41, i64 %index11 %89 = getelementptr inbounds %"num_complex::Complex", ptr %43, i64 %index11 %wide.vec12 = load <8 x double>, ptr %74, align 8, !noalias !2454 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %75, align 8, !noalias !2454 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %90 = fmul <4 x double> %strided.vec17, %broadcast.splat %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %90) %92 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %93 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %92) %wide.vec22 = load <8 x double>, ptr %76, align 8, !noalias !2454 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %94 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %94) %96 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %96) %wide.vec31 = load <8 x double>, ptr %77, align 8, !noalias !2454 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %98 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %98) %100 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %100) %wide.vec40 = load <8 x double>, ptr %78, align 8, !noalias !2454 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %102 = fmul <4 x double> %strided.vec42, %broadcast.splat44 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec41, <4 x double> %102) %104 = fmul <4 x double> %broadcast.splat48, %strided.vec41 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec42, <4 x double> %104) %wide.vec49 = load <8 x double>, ptr %79, align 8, !noalias !2454 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %106 = fmul <4 x double> %strided.vec51, %broadcast.splat53 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec50, <4 x double> %106) %108 = fmul <4 x double> %broadcast.splat57, %strided.vec50 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec51, <4 x double> %108) %wide.vec58 = load <8 x double>, ptr %80, align 8, !noalias !2454 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %110 = fmul <4 x double> %strided.vec60, %broadcast.splat62 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec59, <4 x double> %110) %112 = fmul <4 x double> %broadcast.splat66, %strided.vec59 %113 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec60, <4 x double> %112) %wide.vec67 = load <8 x double>, ptr %81, align 8, !noalias !2454 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %114 = fmul <4 x double> %strided.vec69, %broadcast.splat71 %115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec68, <4 x double> %114) %116 = fmul <4 x double> %broadcast.splat75, %strided.vec68 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec69, <4 x double> %116) %wide.vec76 = load <8 x double>, ptr %82, align 8, !noalias !2454 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %118 = fmul <4 x double> %strided.vec78, %broadcast.splat80 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77, <4 x double> %118) %120 = fmul <4 x double> %broadcast.splat84, %strided.vec77 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78, <4 x double> %120) %wide.vec85 = load <8 x double>, ptr %83, align 8, !noalias !2454 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %122 = fmul <4 x double> %strided.vec87, %broadcast.splat89 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat91, <4 x double> %strided.vec86, <4 x double> %122) %124 = fmul <4 x double> %broadcast.splat93, %strided.vec86 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat91, <4 x double> %strided.vec87, <4 x double> %124) %wide.vec94 = load <8 x double>, ptr %84, align 8, !noalias !2454 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %126 = fmul <4 x double> %strided.vec96, %broadcast.splat98 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec95, <4 x double> %126) %128 = fmul <4 x double> %broadcast.splat102, %strided.vec95 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec96, <4 x double> %128) %wide.vec103 = load <8 x double>, ptr %85, align 8, !noalias !2454 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %130 = fmul <4 x double> %strided.vec105, %broadcast.splat107 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec104, <4 x double> %130) %132 = fmul <4 x double> %broadcast.splat111, %strided.vec104 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec105, <4 x double> %132) %wide.vec112 = load <8 x double>, ptr %86, align 8, !noalias !2454 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %134 = fmul <4 x double> %strided.vec114, %broadcast.splat116 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec113, <4 x double> %134) %136 = fmul <4 x double> %broadcast.splat120, %strided.vec113 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec114, <4 x double> %136) %wide.vec121 = load <8 x double>, ptr %87, align 8, !noalias !2454 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %138 = fmul <4 x double> %strided.vec123, %broadcast.splat125 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec122, <4 x double> %138) %140 = fmul <4 x double> %broadcast.splat129, %strided.vec122 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec123, <4 x double> %140) %wide.vec130 = load <8 x double>, ptr %88, align 8, !noalias !2454 %strided.vec131 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %strided.vec132 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %142 = fmul <4 x double> %strided.vec132, %broadcast.splat134 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec131, <4 x double> %142) %144 = fmul <4 x double> %broadcast.splat138, %strided.vec131 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec132, <4 x double> %144) %wide.vec139 = load <8 x double>, ptr %89, align 8, !noalias !2454 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %146 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %146) %148 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %149 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %148) %150 = fadd <4 x double> %strided.vec13, %119 %151 = fadd <4 x double> %strided.vec14, %121 %152 = fsub <4 x double> %strided.vec13, %119 %153 = fsub <4 x double> %strided.vec14, %121 %154 = fadd <4 x double> %103, %135 %155 = fadd <4 x double> %105, %137 %156 = fsub <4 x double> %103, %135 %157 = fsub <4 x double> %105, %137 %158 = fadd <4 x double> %95, %127 %159 = fadd <4 x double> %97, %129 %160 = fsub <4 x double> %95, %127 %161 = fsub <4 x double> %97, %129 %162 = fadd <4 x double> %111, %143 %163 = fadd <4 x double> %113, %145 %164 = fsub <4 x double> %111, %143 %165 = fsub <4 x double> %113, %145 %166 = fadd <4 x double> %91, %123 %167 = fadd <4 x double> %93, %125 %168 = fsub <4 x double> %91, %123 %169 = fsub <4 x double> %93, %125 %170 = fadd <4 x double> %107, %139 %171 = fadd <4 x double> %109, %141 %172 = fsub <4 x double> %107, %139 %173 = fsub <4 x double> %109, %141 %174 = fadd <4 x double> %99, %131 %175 = fadd <4 x double> %101, %133 %176 = fsub <4 x double> %99, %131 %177 = fsub <4 x double> %101, %133 %178 = fadd <4 x double> %115, %147 %179 = fadd <4 x double> %117, %149 %180 = fsub <4 x double> %115, %147 %181 = fsub <4 x double> %117, %149 %182 = fadd <4 x double> %150, %154 %183 = fadd <4 x double> %151, %155 %184 = fadd <4 x double> %152, %157 %185 = fsub <4 x double> %153, %156 %186 = fsub <4 x double> %150, %154 %187 = fsub <4 x double> %151, %155 %188 = fsub <4 x double> %152, %157 %189 = fadd <4 x double> %153, %156 %190 = fadd <4 x double> %158, %162 %191 = fadd <4 x double> %159, %163 %192 = fadd <4 x double> %160, %165 %193 = fsub <4 x double> %161, %164 %194 = fsub <4 x double> %158, %162 %195 = fsub <4 x double> %159, %163 %196 = fsub <4 x double> %160, %165 %197 = fadd <4 x double> %161, %164 %198 = fadd <4 x double> %166, %170 %199 = fadd <4 x double> %167, %171 %200 = fadd <4 x double> %168, %173 %201 = fsub <4 x double> %169, %172 %202 = fsub <4 x double> %166, %170 %203 = fsub <4 x double> %167, %171 %204 = fsub <4 x double> %168, %173 %205 = fadd <4 x double> %169, %172 %206 = fadd <4 x double> %174, %178 %207 = fadd <4 x double> %175, %179 %208 = fadd <4 x double> %176, %181 %209 = fsub <4 x double> %177, %180 %210 = fsub <4 x double> %174, %178 %211 = fsub <4 x double> %175, %179 %212 = fsub <4 x double> %176, %181 %213 = fadd <4 x double> %177, %180 %214 = fadd <4 x double> %192, %193 %215 = fsub <4 x double> %193, %192 %216 = fmul <4 x double> %214, %217 = fmul <4 x double> %215, %218 = fsub <4 x double> %196, %197 %219 = fadd <4 x double> %196, %197 %220 = fmul <4 x double> %218, %221 = fmul <4 x double> %219, %222 = fadd <4 x double> %182, %190 %223 = fadd <4 x double> %183, %191 %224 = fadd <4 x double> %184, %216 %225 = fadd <4 x double> %185, %217 %226 = fadd <4 x double> %186, %195 %227 = fsub <4 x double> %187, %194 %228 = fsub <4 x double> %188, %220 %229 = fsub <4 x double> %189, %221 %230 = fsub <4 x double> %182, %190 %231 = fsub <4 x double> %183, %191 %232 = fsub <4 x double> %184, %216 %233 = fsub <4 x double> %185, %217 %234 = fsub <4 x double> %186, %195 %235 = fadd <4 x double> %187, %194 %236 = fadd <4 x double> %188, %220 %237 = fadd <4 x double> %189, %221 %238 = fadd <4 x double> %208, %209 %239 = fsub <4 x double> %209, %208 %240 = fmul <4 x double> %238, %241 = fmul <4 x double> %239, %242 = fsub <4 x double> %212, %213 %243 = fadd <4 x double> %212, %213 %244 = fmul <4 x double> %242, %245 = fmul <4 x double> %243, %246 = fadd <4 x double> %198, %206 %247 = fadd <4 x double> %199, %207 %248 = fadd <4 x double> %200, %240 %249 = fadd <4 x double> %201, %241 %250 = fadd <4 x double> %202, %211 %251 = fsub <4 x double> %203, %210 %252 = fsub <4 x double> %204, %244 %253 = fsub <4 x double> %205, %245 %254 = fsub <4 x double> %198, %206 %255 = fsub <4 x double> %199, %207 %256 = fsub <4 x double> %200, %240 %257 = fsub <4 x double> %201, %241 %258 = fsub <4 x double> %202, %211 %259 = fadd <4 x double> %203, %210 %260 = fadd <4 x double> %204, %244 %261 = fadd <4 x double> %205, %245 %262 = fadd <4 x double> %222, %246 %263 = fadd <4 x double> %223, %247 %264 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec148 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> store <8 x double> %interleaved.vec148, ptr %264, align 8, !noalias !2454 %265 = fsub <4 x double> %222, %246 %266 = fsub <4 x double> %223, %247 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec149 = shufflevector <4 x double> %265, <4 x double> %266, <8 x i32> store <8 x double> %interleaved.vec149, ptr %267, align 8, !noalias !2454 %268 = fmul <4 x double> %249, %269 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %268) %270 = fmul <4 x double> %248, %271 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %249, <4 x double> , <4 x double> %270) %272 = fadd <4 x double> %224, %269 %273 = fadd <4 x double> %225, %271 %274 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec150 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec150, ptr %274, align 8, !noalias !2454 %275 = fsub <4 x double> %224, %269 %276 = fsub <4 x double> %225, %271 %277 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec151 = shufflevector <4 x double> %275, <4 x double> %276, <8 x i32> store <8 x double> %interleaved.vec151, ptr %277, align 8, !noalias !2454 %278 = fadd <4 x double> %250, %251 %279 = fsub <4 x double> %251, %250 %280 = fmul <4 x double> %278, %281 = fmul <4 x double> %279, %282 = fadd <4 x double> %226, %280 %283 = fadd <4 x double> %227, %281 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec152 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec152, ptr %284, align 8, !noalias !2454 %285 = fsub <4 x double> %226, %280 %286 = fsub <4 x double> %227, %281 %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec153 = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec153, ptr %287, align 8, !noalias !2454 %288 = fmul <4 x double> %253, %289 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %288) %290 = fmul <4 x double> %252, %291 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %253, <4 x double> , <4 x double> %290) %292 = fadd <4 x double> %228, %289 %293 = fadd <4 x double> %229, %291 %294 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec154 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec154, ptr %294, align 8, !noalias !2454 %295 = fsub <4 x double> %228, %289 %296 = fsub <4 x double> %229, %291 %297 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec155 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec155, ptr %297, align 8, !noalias !2454 %298 = fadd <4 x double> %230, %255 %299 = fsub <4 x double> %231, %254 %300 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec156 = shufflevector <4 x double> %298, <4 x double> %299, <8 x i32> store <8 x double> %interleaved.vec156, ptr %300, align 8, !noalias !2454 %301 = fsub <4 x double> %230, %255 %302 = fadd <4 x double> %231, %254 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec157 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec157, ptr %303, align 8, !noalias !2454 %304 = fmul <4 x double> %257, %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %304) %306 = fmul <4 x double> %256, %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %257, <4 x double> , <4 x double> %306) %308 = fsub <4 x double> %232, %305 %309 = fsub <4 x double> %233, %307 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec158 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec158, ptr %310, align 8, !noalias !2454 %311 = fadd <4 x double> %232, %305 %312 = fadd <4 x double> %233, %307 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec159 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec159, ptr %313, align 8, !noalias !2454 %314 = fsub <4 x double> %258, %259 %315 = fadd <4 x double> %258, %259 %316 = fmul <4 x double> %314, %317 = fmul <4 x double> %315, %318 = fsub <4 x double> %234, %316 %319 = fsub <4 x double> %235, %317 %320 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec160 = shufflevector <4 x double> %318, <4 x double> %319, <8 x i32> store <8 x double> %interleaved.vec160, ptr %320, align 8, !noalias !2454 %321 = fadd <4 x double> %234, %316 %322 = fadd <4 x double> %235, %317 %323 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec161 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec161, ptr %323, align 8, !noalias !2454 %324 = fmul <4 x double> %261, %325 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %260, <4 x double> , <4 x double> %324) %326 = fmul <4 x double> %260, %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %261, <4 x double> , <4 x double> %326) %328 = fsub <4 x double> %236, %325 %329 = fsub <4 x double> %237, %327 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec162 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec162, ptr %330, align 8, !noalias !2454 %331 = fadd <4 x double> %236, %325 %332 = fadd <4 x double> %237, %327 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec163 = shufflevector <4 x double> %331, <4 x double> %332, <8 x i32> store <8 x double> %interleaved.vec163, ptr %333, align 8, !noalias !2454 %index.next164 = add nuw i64 %index11, 4 %334 = icmp eq i64 %index.next164, 16 br i1 %334, label %middle.block6, label %vector.body10, !llvm.loop !2458 middle.block6: ; preds = %vector.body10 br i1 %_2.i.i.i402, label %bb48.i.i.i.i, label %bb48.i.i.i.preheader bb48.i.i.i.preheader: ; preds = %middle.block6 %335 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %336 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %337 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %338 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %340 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %341 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %342 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %344 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 288 %345 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 352 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 416 %348 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 480 br label %vector.body169 vector.body169: ; preds = %vector.body169, %bb48.i.i.i.preheader %index170 = phi i64 [ 0, %bb48.i.i.i.preheader ], [ %index.next248, %vector.body169 ] %vec.ind = phi <4 x i64> [ , %bb48.i.i.i.preheader ], [ %vec.ind.next, %vector.body169 ] %349 = shl <4 x i64> %vec.ind, %350 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %349 %351 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %351, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %352 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather171 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %352, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %353 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather172 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %353, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %354 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather173 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %355 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather174 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %355, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %356 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather175 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %356, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %357 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather176 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %357, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %358 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather177 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %358, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %359 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather178 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %360 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather179 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %360, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %361 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather180 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %361, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %362 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather181 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %362, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %363 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather182 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %364 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %365 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %366 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %367 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %368 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %369 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %370 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %371 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %372 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %373 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %373, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %374 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %374, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %375 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %375, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %376 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %376, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %377 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %378 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather197 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %378, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %379 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather198 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %379, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %380 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather199 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %380, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %381 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 8 %382 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 4 %383 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 2 %384 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 1 %385 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 3 %386 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 6 %387 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 5 %388 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 7 %389 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 12 %390 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 10 %391 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 9 %392 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 11 %393 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 14 %394 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 13 %395 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 15 %396 = fneg <4 x double> %wide.masked.gather171 %397 = fneg <4 x double> %wide.masked.gather173 %398 = fneg <4 x double> %wide.masked.gather175 %399 = fneg <4 x double> %wide.masked.gather177 %400 = fneg <4 x double> %wide.masked.gather179 %401 = fneg <4 x double> %wide.masked.gather181 %402 = fneg <4 x double> %wide.masked.gather183 %403 = fneg <4 x double> %wide.masked.gather185 %404 = fneg <4 x double> %wide.masked.gather187 %405 = fneg <4 x double> %wide.masked.gather189 %406 = fneg <4 x double> %wide.masked.gather191 %407 = fneg <4 x double> %wide.masked.gather193 %408 = fneg <4 x double> %wide.masked.gather195 %409 = fneg <4 x double> %wide.masked.gather197 %410 = fneg <4 x double> %wide.masked.gather199 %wide.masked.gather200 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %350, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %411 = getelementptr inbounds i8, <4 x ptr> %350, i64 8 %wide.masked.gather201 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %411, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %wide.masked.gather202 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %384, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %412 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 1, i32 1 %wide.masked.gather203 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %412, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %413 = fmul <4 x double> %wide.masked.gather203, %396 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather202, <4 x double> %413) %415 = fmul <4 x double> %wide.masked.gather171, %wide.masked.gather202 %416 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather203, <4 x double> %415) %wide.masked.gather204 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %383, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %417 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 2, i32 1 %wide.masked.gather205 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %417, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %418 = fmul <4 x double> %wide.masked.gather205, %397 %419 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather172, <4 x double> %wide.masked.gather204, <4 x double> %418) %420 = fmul <4 x double> %wide.masked.gather173, %wide.masked.gather204 %421 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather172, <4 x double> %wide.masked.gather205, <4 x double> %420) %wide.masked.gather206 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %385, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %422 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 3, i32 1 %wide.masked.gather207 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %422, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %423 = fmul <4 x double> %wide.masked.gather207, %398 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather174, <4 x double> %wide.masked.gather206, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather175, %wide.masked.gather206 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather174, <4 x double> %wide.masked.gather207, <4 x double> %425) %wide.masked.gather208 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %427 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 4, i32 1 %wide.masked.gather209 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %427, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %428 = fmul <4 x double> %wide.masked.gather209, %399 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather176, <4 x double> %wide.masked.gather208, <4 x double> %428) %430 = fmul <4 x double> %wide.masked.gather177, %wide.masked.gather208 %431 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather176, <4 x double> %wide.masked.gather209, <4 x double> %430) %wide.masked.gather210 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %387, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %432 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 5, i32 1 %wide.masked.gather211 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %432, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %433 = fmul <4 x double> %wide.masked.gather211, %400 %434 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather178, <4 x double> %wide.masked.gather210, <4 x double> %433) %435 = fmul <4 x double> %wide.masked.gather179, %wide.masked.gather210 %436 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather178, <4 x double> %wide.masked.gather211, <4 x double> %435) %wide.masked.gather212 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %386, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 6, i32 1 %wide.masked.gather213 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %438 = fmul <4 x double> %wide.masked.gather213, %401 %439 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather212, <4 x double> %438) %440 = fmul <4 x double> %wide.masked.gather181, %wide.masked.gather212 %441 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather213, <4 x double> %440) %wide.masked.gather214 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %388, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %442 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 7, i32 1 %wide.masked.gather215 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %442, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %443 = fmul <4 x double> %wide.masked.gather215, %402 %444 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather214, <4 x double> %443) %445 = fmul <4 x double> %wide.masked.gather183, %wide.masked.gather214 %446 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather215, <4 x double> %445) %wide.masked.gather216 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %381, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %447 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 8, i32 1 %wide.masked.gather217 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %448 = fmul <4 x double> %wide.masked.gather217, %403 %449 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather216, <4 x double> %448) %450 = fmul <4 x double> %wide.masked.gather185, %wide.masked.gather216 %451 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather217, <4 x double> %450) %wide.masked.gather218 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %391, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %452 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 9, i32 1 %wide.masked.gather219 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %452, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %453 = fmul <4 x double> %wide.masked.gather219, %404 %454 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather218, <4 x double> %453) %455 = fmul <4 x double> %wide.masked.gather187, %wide.masked.gather218 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather219, <4 x double> %455) %wide.masked.gather220 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %390, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 10, i32 1 %wide.masked.gather221 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %458 = fmul <4 x double> %wide.masked.gather221, %405 %459 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather220, <4 x double> %458) %460 = fmul <4 x double> %wide.masked.gather189, %wide.masked.gather220 %461 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather221, <4 x double> %460) %wide.masked.gather222 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %392, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %462 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 11, i32 1 %wide.masked.gather223 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %462, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %463 = fmul <4 x double> %wide.masked.gather223, %406 %464 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather222, <4 x double> %463) %465 = fmul <4 x double> %wide.masked.gather191, %wide.masked.gather222 %466 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather223, <4 x double> %465) %wide.masked.gather224 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %389, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %467 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 12, i32 1 %wide.masked.gather225 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %467, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %468 = fmul <4 x double> %wide.masked.gather225, %407 %469 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather224, <4 x double> %468) %470 = fmul <4 x double> %wide.masked.gather193, %wide.masked.gather224 %471 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather225, <4 x double> %470) %wide.masked.gather226 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %394, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %472 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 13, i32 1 %wide.masked.gather227 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %472, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %473 = fmul <4 x double> %wide.masked.gather227, %408 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather226, <4 x double> %473) %475 = fmul <4 x double> %wide.masked.gather195, %wide.masked.gather226 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather227, <4 x double> %475) %wide.masked.gather228 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %393, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %477 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 14, i32 1 %wide.masked.gather229 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %477, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %478 = fmul <4 x double> %wide.masked.gather229, %409 %479 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather228, <4 x double> %478) %480 = fmul <4 x double> %wide.masked.gather197, %wide.masked.gather228 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather229, <4 x double> %480) %wide.masked.gather230 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %395, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %482 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %350, i64 15, i32 1 %wide.masked.gather231 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %482, i32 8, <4 x i1> , <4 x double> poison), !noalias !2454 %483 = fmul <4 x double> %wide.masked.gather231, %410 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather230, <4 x double> %483) %485 = fmul <4 x double> %wide.masked.gather199, %wide.masked.gather230 %486 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather231, <4 x double> %485) %487 = fadd <4 x double> %wide.masked.gather200, %449 %488 = fadd <4 x double> %wide.masked.gather201, %451 %489 = fsub <4 x double> %wide.masked.gather200, %449 %490 = fsub <4 x double> %wide.masked.gather201, %451 %491 = fadd <4 x double> %429, %469 %492 = fadd <4 x double> %431, %471 %493 = fsub <4 x double> %429, %469 %494 = fsub <4 x double> %431, %471 %495 = fadd <4 x double> %419, %459 %496 = fadd <4 x double> %421, %461 %497 = fsub <4 x double> %419, %459 %498 = fsub <4 x double> %421, %461 %499 = fadd <4 x double> %439, %479 %500 = fadd <4 x double> %441, %481 %501 = fsub <4 x double> %439, %479 %502 = fsub <4 x double> %441, %481 %503 = fadd <4 x double> %414, %454 %504 = fadd <4 x double> %416, %456 %505 = fsub <4 x double> %414, %454 %506 = fsub <4 x double> %416, %456 %507 = fadd <4 x double> %434, %474 %508 = fadd <4 x double> %436, %476 %509 = fsub <4 x double> %434, %474 %510 = fsub <4 x double> %436, %476 %511 = fadd <4 x double> %424, %464 %512 = fadd <4 x double> %426, %466 %513 = fsub <4 x double> %424, %464 %514 = fsub <4 x double> %426, %466 %515 = fadd <4 x double> %444, %484 %516 = fadd <4 x double> %446, %486 %517 = fsub <4 x double> %444, %484 %518 = fsub <4 x double> %446, %486 %519 = fadd <4 x double> %487, %491 %520 = fadd <4 x double> %488, %492 %521 = fadd <4 x double> %489, %494 %522 = fsub <4 x double> %490, %493 %523 = fsub <4 x double> %487, %491 %524 = fsub <4 x double> %488, %492 %525 = fsub <4 x double> %489, %494 %526 = fadd <4 x double> %490, %493 %527 = fadd <4 x double> %495, %499 %528 = fadd <4 x double> %496, %500 %529 = fadd <4 x double> %497, %502 %530 = fsub <4 x double> %498, %501 %531 = fsub <4 x double> %495, %499 %532 = fsub <4 x double> %496, %500 %533 = fsub <4 x double> %497, %502 %534 = fadd <4 x double> %498, %501 %535 = fadd <4 x double> %503, %507 %536 = fadd <4 x double> %504, %508 %537 = fadd <4 x double> %505, %510 %538 = fsub <4 x double> %506, %509 %539 = fsub <4 x double> %503, %507 %540 = fsub <4 x double> %504, %508 %541 = fsub <4 x double> %505, %510 %542 = fadd <4 x double> %506, %509 %543 = fadd <4 x double> %511, %515 %544 = fadd <4 x double> %512, %516 %545 = fadd <4 x double> %513, %518 %546 = fsub <4 x double> %514, %517 %547 = fsub <4 x double> %511, %515 %548 = fsub <4 x double> %512, %516 %549 = fsub <4 x double> %513, %518 %550 = fadd <4 x double> %514, %517 %551 = fadd <4 x double> %529, %530 %552 = fsub <4 x double> %530, %529 %553 = fmul <4 x double> %551, %554 = fmul <4 x double> %552, %555 = fsub <4 x double> %533, %534 %556 = fadd <4 x double> %533, %534 %557 = fmul <4 x double> %555, %558 = fmul <4 x double> %556, %559 = fadd <4 x double> %519, %527 %560 = fadd <4 x double> %520, %528 %561 = fadd <4 x double> %521, %553 %562 = fadd <4 x double> %522, %554 %563 = fadd <4 x double> %523, %532 %564 = fsub <4 x double> %524, %531 %565 = fsub <4 x double> %525, %557 %566 = fsub <4 x double> %526, %558 %567 = fsub <4 x double> %519, %527 %568 = fsub <4 x double> %520, %528 %569 = fsub <4 x double> %521, %553 %570 = fsub <4 x double> %522, %554 %571 = fsub <4 x double> %523, %532 %572 = fadd <4 x double> %524, %531 %573 = fadd <4 x double> %525, %557 %574 = fadd <4 x double> %526, %558 %575 = fadd <4 x double> %545, %546 %576 = fsub <4 x double> %546, %545 %577 = fmul <4 x double> %575, %578 = fmul <4 x double> %576, %579 = fsub <4 x double> %549, %550 %580 = fadd <4 x double> %549, %550 %581 = fmul <4 x double> %579, %582 = fmul <4 x double> %580, %583 = fadd <4 x double> %535, %543 %584 = fadd <4 x double> %536, %544 %585 = fadd <4 x double> %537, %577 %586 = fadd <4 x double> %538, %578 %587 = fadd <4 x double> %539, %548 %588 = fsub <4 x double> %540, %547 %589 = fsub <4 x double> %541, %581 %590 = fsub <4 x double> %542, %582 %591 = fsub <4 x double> %535, %543 %592 = fsub <4 x double> %536, %544 %593 = fsub <4 x double> %537, %577 %594 = fsub <4 x double> %538, %578 %595 = fsub <4 x double> %539, %548 %596 = fadd <4 x double> %540, %547 %597 = fadd <4 x double> %541, %581 %598 = fadd <4 x double> %542, %582 %599 = fadd <4 x double> %559, %583 %600 = fadd <4 x double> %560, %584 %601 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index170 %interleaved.vec232 = shufflevector <4 x double> %599, <4 x double> %600, <8 x i32> store <8 x double> %interleaved.vec232, ptr %601, align 8, !noalias !2454 %602 = fsub <4 x double> %559, %583 %603 = fsub <4 x double> %560, %584 %604 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index170 %interleaved.vec233 = shufflevector <4 x double> %602, <4 x double> %603, <8 x i32> store <8 x double> %interleaved.vec233, ptr %604, align 8, !noalias !2454 %605 = fmul <4 x double> %586, %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %585, <4 x double> , <4 x double> %605) %607 = fmul <4 x double> %585, %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %586, <4 x double> , <4 x double> %607) %609 = fadd <4 x double> %561, %606 %610 = fadd <4 x double> %562, %608 %611 = getelementptr inbounds %"num_complex::Complex", ptr %337, i64 %index170 %interleaved.vec234 = shufflevector <4 x double> %609, <4 x double> %610, <8 x i32> store <8 x double> %interleaved.vec234, ptr %611, align 8, !noalias !2454 %612 = fsub <4 x double> %561, %606 %613 = fsub <4 x double> %562, %608 %614 = getelementptr inbounds %"num_complex::Complex", ptr %344, i64 %index170 %interleaved.vec235 = shufflevector <4 x double> %612, <4 x double> %613, <8 x i32> store <8 x double> %interleaved.vec235, ptr %614, align 8, !noalias !2454 %615 = fadd <4 x double> %587, %588 %616 = fsub <4 x double> %588, %587 %617 = fmul <4 x double> %615, %618 = fmul <4 x double> %616, %619 = fadd <4 x double> %563, %617 %620 = fadd <4 x double> %564, %618 %621 = getelementptr inbounds %"num_complex::Complex", ptr %336, i64 %index170 %interleaved.vec236 = shufflevector <4 x double> %619, <4 x double> %620, <8 x i32> store <8 x double> %interleaved.vec236, ptr %621, align 8, !noalias !2454 %622 = fsub <4 x double> %563, %617 %623 = fsub <4 x double> %564, %618 %624 = getelementptr inbounds %"num_complex::Complex", ptr %343, i64 %index170 %interleaved.vec237 = shufflevector <4 x double> %622, <4 x double> %623, <8 x i32> store <8 x double> %interleaved.vec237, ptr %624, align 8, !noalias !2454 %625 = fmul <4 x double> %590, %626 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %589, <4 x double> , <4 x double> %625) %627 = fmul <4 x double> %589, %628 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %590, <4 x double> , <4 x double> %627) %629 = fadd <4 x double> %565, %626 %630 = fadd <4 x double> %566, %628 %631 = getelementptr inbounds %"num_complex::Complex", ptr %338, i64 %index170 %interleaved.vec238 = shufflevector <4 x double> %629, <4 x double> %630, <8 x i32> store <8 x double> %interleaved.vec238, ptr %631, align 8, !noalias !2454 %632 = fsub <4 x double> %565, %626 %633 = fsub <4 x double> %566, %628 %634 = getelementptr inbounds %"num_complex::Complex", ptr %345, i64 %index170 %interleaved.vec239 = shufflevector <4 x double> %632, <4 x double> %633, <8 x i32> store <8 x double> %interleaved.vec239, ptr %634, align 8, !noalias !2454 %635 = fadd <4 x double> %567, %592 %636 = fsub <4 x double> %568, %591 %637 = getelementptr inbounds %"num_complex::Complex", ptr %335, i64 %index170 %interleaved.vec240 = shufflevector <4 x double> %635, <4 x double> %636, <8 x i32> store <8 x double> %interleaved.vec240, ptr %637, align 8, !noalias !2454 %638 = fsub <4 x double> %567, %592 %639 = fadd <4 x double> %568, %591 %640 = getelementptr inbounds %"num_complex::Complex", ptr %342, i64 %index170 %interleaved.vec241 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec241, ptr %640, align 8, !noalias !2454 %641 = fmul <4 x double> %594, %642 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %593, <4 x double> , <4 x double> %641) %643 = fmul <4 x double> %593, %644 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %594, <4 x double> , <4 x double> %643) %645 = fsub <4 x double> %569, %642 %646 = fsub <4 x double> %570, %644 %647 = getelementptr inbounds %"num_complex::Complex", ptr %340, i64 %index170 %interleaved.vec242 = shufflevector <4 x double> %645, <4 x double> %646, <8 x i32> store <8 x double> %interleaved.vec242, ptr %647, align 8, !noalias !2454 %648 = fadd <4 x double> %569, %642 %649 = fadd <4 x double> %570, %644 %650 = getelementptr inbounds %"num_complex::Complex", ptr %347, i64 %index170 %interleaved.vec243 = shufflevector <4 x double> %648, <4 x double> %649, <8 x i32> store <8 x double> %interleaved.vec243, ptr %650, align 8, !noalias !2454 %651 = fsub <4 x double> %595, %596 %652 = fadd <4 x double> %595, %596 %653 = fmul <4 x double> %651, %654 = fmul <4 x double> %652, %655 = fsub <4 x double> %571, %653 %656 = fsub <4 x double> %572, %654 %657 = getelementptr inbounds %"num_complex::Complex", ptr %339, i64 %index170 %interleaved.vec244 = shufflevector <4 x double> %655, <4 x double> %656, <8 x i32> store <8 x double> %interleaved.vec244, ptr %657, align 8, !noalias !2454 %658 = fadd <4 x double> %571, %653 %659 = fadd <4 x double> %572, %654 %660 = getelementptr inbounds %"num_complex::Complex", ptr %346, i64 %index170 %interleaved.vec245 = shufflevector <4 x double> %658, <4 x double> %659, <8 x i32> store <8 x double> %interleaved.vec245, ptr %660, align 8, !noalias !2454 %661 = fmul <4 x double> %598, %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %597, <4 x double> , <4 x double> %661) %663 = fmul <4 x double> %597, %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> , <4 x double> %663) %665 = fsub <4 x double> %573, %662 %666 = fsub <4 x double> %574, %664 %667 = getelementptr inbounds %"num_complex::Complex", ptr %341, i64 %index170 %interleaved.vec246 = shufflevector <4 x double> %665, <4 x double> %666, <8 x i32> store <8 x double> %interleaved.vec246, ptr %667, align 8, !noalias !2454 %668 = fadd <4 x double> %573, %662 %669 = fadd <4 x double> %574, %664 %670 = getelementptr inbounds %"num_complex::Complex", ptr %348, i64 %index170 %interleaved.vec247 = shufflevector <4 x double> %668, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec247, ptr %670, align 8, !noalias !2454 %index.next248 = add nuw i64 %index170, 4 %vec.ind.next = add <4 x i64> %vec.ind, %671 = icmp eq i64 %index.next248, 32 br i1 %671, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7000cbbab852428eE.exit", label %vector.body169, !llvm.loop !2459 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7000cbbab852428eE.exit": ; preds = %vector.body169 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2454 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h0ee49f115961f9bbE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h44c5a4bb2251d118E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h10d70efcf19df9b2E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2460 store i64 128, ptr %n.i.i, align 8, !noalias !2460 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2460 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2460 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2460 store ptr null, ptr %_16.i.i, align 8, !noalias !2460 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2460 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2460 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2460 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2460 store ptr null, ptr %_24.i.i, align 8, !noalias !2460 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2460 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2460 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2460 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2460 store ptr null, ptr %_32.i.i, align 8, !noalias !2460 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2460 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2460 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2460 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3cdc09e94d6a78E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2460 store ptr null, ptr %_40.i.i, align 8, !noalias !2460 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3cdc09e94d6a78E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2460 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 br label %bb18.i.i.i.i.i.i bb18.i.i.i.i.i.i: ; preds = %bb18.i.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3cdc09e94d6a78E.exit.i" %iter6.i.i.i.i.i.sroa.22.0112.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3cdc09e94d6a78E.exit.i" ], [ %7, %bb18.i.i.i.i.i.i ] %4 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.0112.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_51.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2465 %_52.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2465 %5 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %5, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2465 store <4 x double> %6, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2465 %7 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.0112.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %_51.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !2465 %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2465 %8 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 %9 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2465 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !2465 %exitcond.not.i.1 = icmp eq i64 %7, 32 br i1 %exitcond.not.i.1, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i", label %bb18.i.i.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i": ; preds = %bb18.i.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2475) tail call void @llvm.experimental.noalias.scope.decl(metadata !2478) tail call void @llvm.experimental.noalias.scope.decl(metadata !2480) %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %12, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %13, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %14, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %15 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %15, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %16 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %16, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %17 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %17, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %18 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %19 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %20 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %24 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %25 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> zeroinitializer %26 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %27 = shufflevector <4 x double> %19, <4 x double> poison, <4 x i32> zeroinitializer %28 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %29 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" ], [ %30, %bb38.us.i.i ] %30 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2478, !noalias !2483 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2478, !noalias !2483 %31 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %32 = fmul <4 x double> %25, %31 %33 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %24, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %32) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2478, !noalias !2483 %34 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %35 = fmul <4 x double> %27, %34 %36 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %35) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !2478, !noalias !2483 %37 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %29, %37 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %28, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %38) #23 %40 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %36 %41 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %36 %42 = fadd <4 x double> %33, %39 %43 = fsub <4 x double> %33, %39 %44 = bitcast <4 x double> %43 to <4 x i64> %45 = xor <4 x i64> %44, %46 = bitcast <4 x i64> %45 to <4 x double> %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fadd <4 x double> %40, %42 store <4 x double> %48, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2475, !noalias !2484 %49 = fsub <4 x double> %41, %47 store <4 x double> %49, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2475, !noalias !2484 %50 = fsub <4 x double> %40, %42 store <4 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2475, !noalias !2484 %51 = fadd <4 x double> %41, %47 store <4 x double> %51, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2475, !noalias !2484 %exitcond.not.i.i = icmp eq i64 %30, 8 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i.1.i = load double, ptr %52, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %53, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i.1.i = load double, ptr %54, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %55, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i.1.i = load double, ptr %56, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %57, align 8, !alias.scope !2480, !noalias !2482, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %58 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %59 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %60 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %61 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %63 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %64 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %65 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> zeroinitializer %66 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %67 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> zeroinitializer %68 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %69 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %70, %bb38.us.i.1.i ] %70 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %61, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %63, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2478, !noalias !2483 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2478, !noalias !2483 %71 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %65, %71 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %64, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %72) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2478, !noalias !2483 %74 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %67, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %75) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !2478, !noalias !2483 %77 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %69, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %68, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %78) #23 %80 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %76 %81 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %76 %82 = fadd <4 x double> %73, %79 %83 = fsub <4 x double> %73, %79 %84 = bitcast <4 x double> %83 to <4 x i64> %85 = xor <4 x i64> %84, %86 = bitcast <4 x i64> %85 to <4 x double> %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fadd <4 x double> %80, %82 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2475, !noalias !2484 %89 = fsub <4 x double> %81, %87 store <4 x double> %89, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2475, !noalias !2484 %90 = fsub <4 x double> %80, %82 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2475, !noalias !2484 %91 = fadd <4 x double> %81, %87 store <4 x double> %91, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2475, !noalias !2484 %exitcond.not.i.1.i = icmp eq i64 %70, 8 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2485) tail call void @llvm.experimental.noalias.scope.decl(metadata !2488) tail call void @llvm.experimental.noalias.scope.decl(metadata !2490) br label %bb22.us.i51.i bb22.us.i51.i: ; preds = %bb22.us.i51.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter.sroa.60.0707.us.i52.i = phi i64 [ %152, %bb22.us.i51.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i = shl nuw i64 %iter.sroa.60.0707.us.i52.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %start1.i.i.i.i.i.i.us.i55.i = shl i64 %iter.sroa.60.0707.us.i52.i, 3 %data.i.i.i.i.i.i.us.i56.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i55.i %data.i.i.i.i.i.i.i.i.us.i57.i = getelementptr inbounds %"fft_simd::c64x2", ptr %61, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %data.i.i.i.i.i.i.i.i.i.i.us.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %start1.i.i.i.i.us.i60.i = shl i64 %iter.sroa.60.0707.us.i52.i, 2 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 1 %w1.0.us.i61.i = load double, ptr %92, align 8, !alias.scope !2490, !noalias !2492, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 1, i32 1 %w1.1.us.i62.i = load double, ptr %93, align 8, !alias.scope !2490, !noalias !2492, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 2 %w2.0.us.i63.i = load double, ptr %94, align 8, !alias.scope !2490, !noalias !2492, !noundef !3 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 2, i32 1 %w2.1.us.i64.i = load double, ptr %95, align 8, !alias.scope !2490, !noalias !2492, !noundef !3 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 3 %w3.0.us.i65.i = load double, ptr %96, align 8, !alias.scope !2490, !noalias !2492, !noundef !3 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 3, i32 1 %w3.1.us.i66.i = load double, ptr %97, align 8, !alias.scope !2490, !noalias !2492, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i67.i = insertelement <2 x double> poison, double %w1.0.us.i61.i, i64 0 %98 = insertelement <4 x double> poison, double %w1.1.us.i62.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i68.i = insertelement <2 x double> poison, double %w2.0.us.i63.i, i64 0 %99 = insertelement <4 x double> poison, double %w2.1.us.i64.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i69.i = insertelement <2 x double> poison, double %w3.0.us.i65.i, i64 0 %100 = insertelement <4 x double> poison, double %w3.1.us.i66.i, i64 0 %101 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 4 %102 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 2 %103 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 6 %104 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i67.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i68.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %99, <4 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i69.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %100, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i80.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i56.i, align 8, !alias.scope !2488, !noalias !2493 %_84.sroa.0.0.copyload.us.i81.i = load <4 x double>, ptr %102, align 8, !alias.scope !2488, !noalias !2493 %110 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i81.i, <4 x double> poison, <4 x i32> %111 = fmul <4 x double> %105, %110 %112 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_84.sroa.0.0.copyload.us.i81.i, <4 x double> %111) #23 %_86.sroa.0.0.copyload.us.i82.i = load <4 x double>, ptr %101, align 8, !alias.scope !2488, !noalias !2493 %113 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i82.i, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %107, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_86.sroa.0.0.copyload.us.i82.i, <4 x double> %114) #23 %_88.sroa.0.0.copyload.us.i83.i = load <4 x double>, ptr %103, align 8, !alias.scope !2488, !noalias !2493 %116 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i83.i, <4 x double> poison, <4 x i32> %117 = fmul <4 x double> %109, %116 %118 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_88.sroa.0.0.copyload.us.i83.i, <4 x double> %117) #23 %119 = fadd <4 x double> %a.sroa.0.0.copyload.us.i80.i, %115 %120 = fsub <4 x double> %a.sroa.0.0.copyload.us.i80.i, %115 %121 = fadd <4 x double> %112, %118 %122 = fsub <4 x double> %112, %118 %123 = bitcast <4 x double> %122 to <4 x i64> %124 = xor <4 x i64> %123, %125 = bitcast <4 x i64> %124 to <4 x double> %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = fadd <4 x double> %119, %121 store <4 x double> %127, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i54.i, align 8, !alias.scope !2485, !noalias !2494 %128 = fsub <4 x double> %120, %126 store <4 x double> %128, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i59.i, align 8, !alias.scope !2485, !noalias !2494 %129 = fsub <4 x double> %119, %121 store <4 x double> %129, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i58.i, align 8, !alias.scope !2485, !noalias !2494 %130 = fadd <4 x double> %120, %126 store <4 x double> %130, ptr %data.i.i.i.i.i.i.i.i.us.i57.i, align 8, !alias.scope !2485, !noalias !2494 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i72.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i54.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i73.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i59.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i74.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i58.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i75.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i57.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i76.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i77.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 3 %_3.i.i.i.i.i.i.us.i78.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 5 %_3.i.i.i.i.us.i79.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 7 %a.sroa.0.0.copyload.us.i80.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i76.1.i, align 8, !alias.scope !2488, !noalias !2493 %_84.sroa.0.0.copyload.us.i81.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.1.i, align 8, !alias.scope !2488, !noalias !2493 %131 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i81.1.i, <4 x double> poison, <4 x i32> %132 = fmul <4 x double> %105, %131 %133 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_84.sroa.0.0.copyload.us.i81.1.i, <4 x double> %132) #23 %_86.sroa.0.0.copyload.us.i82.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i78.1.i, align 8, !alias.scope !2488, !noalias !2493 %134 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i82.1.i, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %107, %134 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_86.sroa.0.0.copyload.us.i82.1.i, <4 x double> %135) #23 %_88.sroa.0.0.copyload.us.i83.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i79.1.i, align 8, !alias.scope !2488, !noalias !2493 %137 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i83.1.i, <4 x double> poison, <4 x i32> %138 = fmul <4 x double> %109, %137 %139 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_88.sroa.0.0.copyload.us.i83.1.i, <4 x double> %138) #23 %140 = fadd <4 x double> %a.sroa.0.0.copyload.us.i80.1.i, %136 %141 = fsub <4 x double> %a.sroa.0.0.copyload.us.i80.1.i, %136 %142 = fadd <4 x double> %133, %139 %143 = fsub <4 x double> %133, %139 %144 = bitcast <4 x double> %143 to <4 x i64> %145 = xor <4 x i64> %144, %146 = bitcast <4 x i64> %145 to <4 x double> %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = fadd <4 x double> %140, %142 store <4 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i72.1.i, align 8, !alias.scope !2485, !noalias !2494 %149 = fsub <4 x double> %141, %147 store <4 x double> %149, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i73.1.i, align 8, !alias.scope !2485, !noalias !2494 %150 = fsub <4 x double> %140, %142 store <4 x double> %150, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i74.1.i, align 8, !alias.scope !2485, !noalias !2494 %151 = fadd <4 x double> %141, %147 store <4 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i75.1.i, align 8, !alias.scope !2485, !noalias !2494 %152 = add nuw nsw i64 %iter.sroa.60.0707.us.i52.i, 1 %exitcond113.not.i = icmp eq i64 %152, 8 br i1 %exitcond113.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i, label %bb22.us.i51.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i: ; preds = %bb22.us.i51.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2495) tail call void @llvm.experimental.noalias.scope.decl(metadata !2498) tail call void @llvm.experimental.noalias.scope.decl(metadata !2500) %153 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %154 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %155 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 br label %bb15.i90.i bb15.i90.i: ; preds = %bb15.i90.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i %iter.sroa.50.0547.i.i = phi i64 [ %156, %bb15.i90.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i ] %156 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %154, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %153, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %155, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2500, !noalias !2502 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2500, !noalias !2502 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !2500, !noalias !2502 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2498, !noalias !2503 %157 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %157, align 8, !alias.scope !2498, !noalias !2503 %158 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %158, align 8, !alias.scope !2498, !noalias !2503 %159 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %159, align 8, !alias.scope !2498, !noalias !2503 %160 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %161 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %164, %162 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %170, %168 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %176, %174 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = fadd <4 x double> %160, %172 %180 = fsub <4 x double> %160, %172 %181 = fadd <4 x double> %166, %178 %182 = fsub <4 x double> %166, %178 %183 = bitcast <4 x double> %182 to <4 x i64> %184 = xor <4 x i64> %183, %185 = bitcast <4 x i64> %184 to <4 x double> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fadd <4 x double> %179, %181 store <4 x double> %187, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2495, !noalias !2504 %188 = fsub <4 x double> %180, %186 store <4 x double> %188, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2495, !noalias !2504 %189 = fsub <4 x double> %179, %181 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2495, !noalias !2504 %190 = fadd <4 x double> %180, %186 store <4 x double> %190, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2495, !noalias !2504 %exitcond.not.i91.i = icmp eq i64 %156, 16 br i1 %exitcond.not.i91.i, label %_ZN4pulp3x862V39vectorize6__impl17h63f28bd9fa0d8c87E.exit, label %bb15.i90.i _ZN4pulp3x862V39vectorize6__impl17h63f28bd9fa0d8c87E.exit: ; preds = %bb15.i90.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2460 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h11d367b73a175ed7E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2505 store i64 512, ptr %n.i, align 8, !noalias !2505 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2505 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2505 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2505 store ptr null, ptr %_16.i, align 8, !noalias !2505 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2505 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2505 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2505 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2505 store ptr null, ptr %_24.i, align 8, !noalias !2505 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2505 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2505 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2505 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2505 store ptr null, ptr %_32.i, align 8, !noalias !2505 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2505 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2505 store i64 %w.1, ptr %_34.i, align 8, !noalias !2505 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2505 store ptr null, ptr %_40.i, align 8, !noalias !2505 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2505 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit ], [ %index.next, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %3 = shl nuw nsw i64 %index, 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %3 %5 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index, i64 1 %wide.vec = load <16 x double>, ptr %5, align 8, !noalias !2508 %strided.vec = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %strided.vec1 = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %6 = fneg <4 x double> %strided.vec1 %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !2508 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !2508 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec3, %strided.vec6 %8 = fadd <4 x double> %strided.vec4, %strided.vec7 %9 = fsub <4 x double> %strided.vec3, %strided.vec6 %10 = fsub <4 x double> %strided.vec4, %strided.vec7 %11 = fmul <4 x double> %10, %6 %12 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %9, <4 x double> %11) %13 = fmul <4 x double> %strided.vec1, %9 %14 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %10, <4 x double> %13) %15 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> %16 = shufflevector <4 x double> %12, <4 x double> %14, <8 x i32> %interleaved.vec = shufflevector <8 x double> %15, <8 x double> %16, <16 x i32> store <16 x double> %interleaved.vec, ptr %4, align 8, !noalias !2508 %index.next = add nuw i64 %index, 4 %17 = icmp eq i64 %index.next, 252 br i1 %17, label %bb19.i.i, label %vector.body, !llvm.loop !2511 bb19.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i5.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %18 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i = load double, ptr %18, align 8, !noalias !2508, !noundef !3 %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i = load double, ptr %19, align 8, !noalias !2508, !noundef !3 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505 %_6.i.i.i = fneg double %w1.1.i.i %21 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !2508 %22 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i, align 8, !noalias !2508 %23 = fadd <2 x double> %21, %22 store <2 x double> %23, ptr %data.i.i.i.i.i.i, align 8, !noalias !2508 %24 = fsub <2 x double> %21, %22 %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %20, align 8, !noalias !2508 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %32 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1 %w1.0.i.i.1 = load double, ptr %32, align 8, !noalias !2508, !noundef !3 %33 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %33, align 8, !noalias !2508, !noundef !3 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %35 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2508 %36 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !2508 %37 = fadd <2 x double> %35, %36 store <2 x double> %37, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !2508 %38 = fsub <2 x double> %35, %36 %39 = shufflevector <2 x double> %38, <2 x double> poison, <2 x i32> %40 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %41 = insertelement <2 x double> %40, double %w1.1.i.i.1, i64 1 %42 = fmul <2 x double> %39, %41 %43 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %44 = shufflevector <2 x double> %43, <2 x double> poison, <2 x i32> zeroinitializer %45 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %44, <2 x double> %38, <2 x double> %42) store <2 x double> %45, ptr %34, align 8, !noalias !2508 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.2 = load double, ptr %46, align 8, !noalias !2508, !noundef !3 %47 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %47, align 8, !noalias !2508, !noundef !3 %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %49 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !2508 %50 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !2508 %51 = fadd <2 x double> %49, %50 store <2 x double> %51, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !2508 %52 = fsub <2 x double> %49, %50 %53 = shufflevector <2 x double> %52, <2 x double> poison, <2 x i32> %54 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %55 = insertelement <2 x double> %54, double %w1.1.i.i.2, i64 1 %56 = fmul <2 x double> %53, %55 %57 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %58 = shufflevector <2 x double> %57, <2 x double> poison, <2 x i32> zeroinitializer %59 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %58, <2 x double> %52, <2 x double> %56) store <2 x double> %59, ptr %48, align 8, !noalias !2508 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %60 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1 %w1.0.i.i.3 = load double, ptr %60, align 8, !noalias !2508, !noundef !3 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %61, align 8, !noalias !2508, !noundef !3 %62 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %63 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !2508 %64 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !2508 %65 = fadd <2 x double> %63, %64 store <2 x double> %65, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !2508 %66 = fsub <2 x double> %63, %64 %67 = shufflevector <2 x double> %66, <2 x double> poison, <2 x i32> %68 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %69 = insertelement <2 x double> %68, double %w1.1.i.i.3, i64 1 %70 = fmul <2 x double> %67, %69 %71 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %72 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> zeroinitializer %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %72, <2 x double> %66, <2 x double> %70) store <2 x double> %73, ptr %62, align 8, !noalias !2508 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 br label %vector.body12 vector.body12: ; preds = %vector.body12, %bb19.i.i %index13 = phi i64 [ 0, %bb19.i.i ], [ %index.next26, %vector.body12 ] %vec.ind = phi <4 x i64> [ , %bb19.i.i ], [ %vec.ind.next, %vector.body12 ] %75 = shl nuw nsw <4 x i64> %vec.ind, %76 = extractelement <4 x i64> %75, i64 0 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %76 %78 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %76 %79 = shl nuw nsw i64 %index13, 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %79 %81 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !2512 %82 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !2512 %83 = fneg <4 x double> %wide.masked.gather14 %wide.vec15 = load <16 x double>, ptr %77, align 8, !noalias !2512 %strided.vec16 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec18 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %wide.vec20 = load <16 x double>, ptr %78, align 8, !noalias !2512 %strided.vec21 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %84 = fadd <4 x double> %strided.vec16, %strided.vec21 %85 = fadd <4 x double> %strided.vec17, %strided.vec22 %86 = fsub <4 x double> %strided.vec16, %strided.vec21 %87 = fsub <4 x double> %strided.vec17, %strided.vec22 %88 = fmul <4 x double> %87, %83 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %86, <4 x double> %88) %90 = fmul <4 x double> %wide.masked.gather14, %86 %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %87, <4 x double> %90) %92 = fadd <4 x double> %strided.vec18, %strided.vec23 %93 = fadd <4 x double> %strided.vec19, %strided.vec24 %94 = fsub <4 x double> %strided.vec18, %strided.vec23 %95 = fsub <4 x double> %strided.vec19, %strided.vec24 %96 = fmul <4 x double> %95, %83 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %94, <4 x double> %96) %98 = fmul <4 x double> %wide.masked.gather14, %94 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %95, <4 x double> %98) %100 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> %101 = shufflevector <4 x double> %92, <4 x double> %93, <8 x i32> %102 = shufflevector <4 x double> %89, <4 x double> %91, <8 x i32> %103 = shufflevector <4 x double> %97, <4 x double> %99, <8 x i32> %104 = shufflevector <8 x double> %100, <8 x double> %101, <16 x i32> %105 = shufflevector <8 x double> %102, <8 x double> %103, <16 x i32> %interleaved.vec25 = shufflevector <16 x double> %104, <16 x double> %105, <32 x i32> store <32 x double> %interleaved.vec25, ptr %80, align 8, !noalias !2512 %index.next26 = add nuw i64 %index13, 4 %vec.ind.next = add <4 x i64> %vec.ind, %106 = icmp eq i64 %index.next26, 124 br i1 %106, label %bb19.i.i41, label %vector.body12, !llvm.loop !2515 bb19.i.i41: ; preds = %vector.body12 %data.i.i.i.i.i.i.i.i330 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %data.i5.i.i.i.i.i.i.i335 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %data.i.i.i.i.i.i339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 496 %107 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 248, i64 1 %w1.0.i.i43 = load double, ptr %107, align 8, !noalias !2512, !noundef !3 %108 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 248, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %108, align 8, !noalias !2512, !noundef !3 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 498 %_6.i.i.i64 = fneg double %w1.1.i.i44 %110 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i330, align 8, !noalias !2512 %111 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i335, align 8, !noalias !2512 %112 = fadd <4 x double> %110, %111 store <4 x double> %112, ptr %data.i.i.i.i.i.i339, align 8, !noalias !2512 %113 = fsub <4 x double> %110, %111 %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = insertelement <4 x double> poison, double %_6.i.i.i64, i64 0 %116 = insertelement <4 x double> %115, double %w1.1.i.i44, i64 1 %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %114, %117 %119 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> zeroinitializer %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %120, <4 x double> %113, <4 x double> %118) store <4 x double> %121, ptr %109, align 8, !noalias !2512 %data.i.i.i.i.i.i.i.i330.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %data.i5.i.i.i.i.i.i.i335.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %data.i.i.i.i.i.i339.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 500 %122 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 250, i64 1 %w1.0.i.i43.1 = load double, ptr %122, align 8, !noalias !2512, !noundef !3 %123 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 250, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %123, align 8, !noalias !2512, !noundef !3 %124 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 502 %_6.i.i.i64.1 = fneg double %w1.1.i.i44.1 %125 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i330.1, align 8, !noalias !2512 %126 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i335.1, align 8, !noalias !2512 %127 = fadd <4 x double> %125, %126 store <4 x double> %127, ptr %data.i.i.i.i.i.i339.1, align 8, !noalias !2512 %128 = fsub <4 x double> %125, %126 %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = insertelement <4 x double> poison, double %_6.i.i.i64.1, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i44.1, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %129, %132 %134 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %128, <4 x double> %133) store <4 x double> %136, ptr %124, align 8, !noalias !2512 %data.i.i.i.i.i.i.i.i330.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %data.i5.i.i.i.i.i.i.i335.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %data.i.i.i.i.i.i339.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 504 %137 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i43.2 = load double, ptr %137, align 8, !noalias !2512, !noundef !3 %138 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i44.2 = load double, ptr %138, align 8, !noalias !2512, !noundef !3 %139 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 506 %_6.i.i.i64.2 = fneg double %w1.1.i.i44.2 %140 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i330.2, align 8, !noalias !2512 %141 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i335.2, align 8, !noalias !2512 %142 = fadd <4 x double> %140, %141 store <4 x double> %142, ptr %data.i.i.i.i.i.i339.2, align 8, !noalias !2512 %143 = fsub <4 x double> %140, %141 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = insertelement <4 x double> poison, double %_6.i.i.i64.2, i64 0 %146 = insertelement <4 x double> %145, double %w1.1.i.i44.2, i64 1 %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = fmul <4 x double> %144, %147 %149 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %151 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %150, <4 x double> %143, <4 x double> %148) store <4 x double> %151, ptr %139, align 8, !noalias !2512 %data.i.i.i.i.i.i.i.i330.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %data.i5.i.i.i.i.i.i.i335.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %data.i.i.i.i.i.i339.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %152 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i43.3 = load double, ptr %152, align 8, !noalias !2512, !noundef !3 %153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i44.3 = load double, ptr %153, align 8, !noalias !2512, !noundef !3 %154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %_6.i.i.i64.3 = fneg double %w1.1.i.i44.3 %155 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i330.3, align 8, !noalias !2512 %156 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i335.3, align 8, !noalias !2512 %157 = fadd <4 x double> %155, %156 store <4 x double> %157, ptr %data.i.i.i.i.i.i339.3, align 8, !noalias !2512 %158 = fsub <4 x double> %155, %156 %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = insertelement <4 x double> poison, double %_6.i.i.i64.3, i64 0 %161 = insertelement <4 x double> %160, double %w1.1.i.i44.3, i64 1 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %159, %162 %164 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> zeroinitializer %166 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %165, <4 x double> %158, <4 x double> %163) store <4 x double> %166, ptr %154, align 8, !noalias !2512 br label %bb19.i.i.i bb19.i.i.i: ; preds = %bb19.i.i41, %bb19.i.i.i %iter.i.i.i.sroa.38.0163 = phi i64 [ %189, %bb19.i.i.i ], [ 0, %bb19.i.i41 ] %start1.i.i.i.i.i.i.i.i502 = shl nuw nsw i64 %iter.i.i.i.sroa.38.0163, 2 %data.i.i.i.i.i.i.i.i503 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i502 %data.i5.i.i.i.i.i.i.i508 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i502 %start1.i.i.i.i.i.i511 = shl nuw nsw i64 %iter.i.i.i.sroa.38.0163, 3 %data.i.i.i.i.i.i512 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i511 %167 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i502, i64 1 %w1.0.i.i.i = load double, ptr %167, align 8, !noalias !2516, !noundef !3 %168 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i502, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %168, align 8, !noalias !2516, !noundef !3 %169 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i512, i64 4 %_6.i.i.i.i = fneg double %w1.1.i.i.i %170 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i503, align 8, !noalias !2516 %171 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i508, align 8, !noalias !2516 %172 = fadd <4 x double> %170, %171 store <4 x double> %172, ptr %data.i.i.i.i.i.i512, align 8, !noalias !2516 %173 = fsub <4 x double> %170, %171 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %176 = insertelement <4 x double> %175, double %w1.1.i.i.i, i64 1 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %174, %177 %179 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> zeroinitializer %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %173, <4 x double> %178) store <4 x double> %181, ptr %169, align 8, !noalias !2516 %_3.i.i.i.i.i.i.i.i561.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i503, i64 2 %_3.i2.i.i.i.i.i.i.i564.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i508, i64 2 %_3.i.i.i.i.i.i567.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i512, i64 2 %_3.i.i.i.i570.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i512, i64 6 %182 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i561.2, align 8, !noalias !2516 %183 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i564.2, align 8, !noalias !2516 %184 = fadd <4 x double> %182, %183 store <4 x double> %184, ptr %_3.i.i.i.i.i.i567.2, align 8, !noalias !2516 %185 = fsub <4 x double> %182, %183 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %177 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %185, <4 x double> %187) store <4 x double> %188, ptr %_3.i.i.i.i570.2, align 8, !noalias !2516 %189 = add nuw nsw i64 %iter.i.i.i.sroa.38.0163, 1 %exitcond178.not = icmp eq i64 %189, 64 br i1 %exitcond178.not, label %bb19.i.i39.i, label %bb19.i.i.i bb19.i.i39.i: ; preds = %bb19.i.i.i, %bb19.i.i39.i %iter.i.i9.i.sroa.38.0165 = phi i64 [ %226, %bb19.i.i39.i ], [ 0, %bb19.i.i.i ] %start1.i.i.i.i.i.i.i.i675 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0165, 3 %data.i.i.i.i.i.i.i.i676 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i675 %data.i5.i.i.i.i.i.i.i681 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i675 %start1.i.i.i.i.i.i684 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0165, 4 %data.i.i.i.i.i.i685 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i684 %190 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i675, i64 1 %w1.0.i.i41.i = load double, ptr %190, align 8, !noalias !2519, !noundef !3 %191 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i675, i64 1, i32 1 %w1.1.i.i42.i = load double, ptr %191, align 8, !noalias !2519, !noundef !3 %192 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 8 %_6.i.i.i62.i = fneg double %w1.1.i.i42.i %193 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i676, align 8, !noalias !2519 %194 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i681, align 8, !noalias !2519 %195 = fadd <4 x double> %193, %194 store <4 x double> %195, ptr %data.i.i.i.i.i.i685, align 8, !noalias !2519 %196 = fsub <4 x double> %193, %194 %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = insertelement <4 x double> poison, double %_6.i.i.i62.i, i64 0 %199 = insertelement <4 x double> %198, double %w1.1.i.i42.i, i64 1 %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %197, %200 %202 = insertelement <4 x double> poison, double %w1.0.i.i41.i, i64 0 %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> zeroinitializer %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %196, <4 x double> %201) store <4 x double> %204, ptr %192, align 8, !noalias !2519 %_3.i.i.i.i.i.i.i.i734.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i676, i64 2 %_3.i2.i.i.i.i.i.i.i737.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i681, i64 2 %_3.i.i.i.i.i.i740.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 2 %_3.i.i.i.i743.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 10 %205 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i734.2, align 8, !noalias !2519 %206 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i737.2, align 8, !noalias !2519 %207 = fadd <4 x double> %205, %206 store <4 x double> %207, ptr %_3.i.i.i.i.i.i740.2, align 8, !noalias !2519 %208 = fsub <4 x double> %205, %206 %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = fmul <4 x double> %209, %200 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %208, <4 x double> %210) store <4 x double> %211, ptr %_3.i.i.i.i743.2, align 8, !noalias !2519 %_3.i.i.i.i.i.i.i.i734.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i676, i64 4 %_3.i2.i.i.i.i.i.i.i737.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i681, i64 4 %_3.i.i.i.i.i.i740.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 4 %_3.i.i.i.i743.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 12 %212 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i734.4, align 8, !noalias !2519 %213 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i737.4, align 8, !noalias !2519 %214 = fadd <4 x double> %212, %213 store <4 x double> %214, ptr %_3.i.i.i.i.i.i740.4, align 8, !noalias !2519 %215 = fsub <4 x double> %212, %213 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %216, %200 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %215, <4 x double> %217) store <4 x double> %218, ptr %_3.i.i.i.i743.4, align 8, !noalias !2519 %_3.i.i.i.i.i.i.i.i734.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i676, i64 6 %_3.i2.i.i.i.i.i.i.i737.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i681, i64 6 %_3.i.i.i.i.i.i740.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 6 %_3.i.i.i.i743.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i685, i64 14 %219 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i734.6, align 8, !noalias !2519 %220 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i737.6, align 8, !noalias !2519 %221 = fadd <4 x double> %219, %220 store <4 x double> %221, ptr %_3.i.i.i.i.i.i740.6, align 8, !noalias !2519 %222 = fsub <4 x double> %219, %220 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %223, %200 %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %222, <4 x double> %224) store <4 x double> %225, ptr %_3.i.i.i.i743.6, align 8, !noalias !2519 %226 = add nuw nsw i64 %iter.i.i9.i.sroa.38.0165, 1 %exitcond180.not = icmp eq i64 %226, 32 br i1 %exitcond180.not, label %bb19.i.i106.i, label %bb19.i.i39.i bb19.i.i.i.i.preheader: ; preds = %bb19.i.i106.i %227 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i.i = load double, ptr %227, align 8, !noalias !2505, !noundef !3 %228 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %228, align 8, !noalias !2505, !noundef !3 %_6.i.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert59 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %229 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %wide.vec52 = load <8 x double>, ptr %scratch.0, align 8, !noalias !2522 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %74, align 8, !noalias !2522 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %230 = fadd <4 x double> %strided.vec53, %strided.vec56 %231 = fadd <4 x double> %strided.vec54, %strided.vec57 %interleaved.vec58 = shufflevector <4 x double> %230, <4 x double> %231, <8 x i32> store <8 x double> %interleaved.vec58, ptr %buf.0, align 8, !noalias !2522 %232 = fsub <4 x double> %strided.vec53, %strided.vec56 %233 = fsub <4 x double> %strided.vec54, %strided.vec57 %234 = fmul <4 x double> %233, %broadcast.splat60 %235 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %232, <4 x double> %234) %236 = fmul <4 x double> %broadcast.splat64, %232 %237 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %233, <4 x double> %236) %interleaved.vec65 = shufflevector <4 x double> %235, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec65, ptr %229, align 8, !noalias !2522 %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 260 %wide.vec52.1 = load <8 x double>, ptr %238, align 8, !noalias !2522 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %239, align 8, !noalias !2522 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %240 = fadd <4 x double> %strided.vec53.1, %strided.vec56.1 %241 = fadd <4 x double> %strided.vec54.1, %strided.vec57.1 %242 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec58.1 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec58.1, ptr %242, align 8, !noalias !2522 %243 = fsub <4 x double> %strided.vec53.1, %strided.vec56.1 %244 = fsub <4 x double> %strided.vec54.1, %strided.vec57.1 %245 = fmul <4 x double> %244, %broadcast.splat60 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %243, <4 x double> %245) %247 = fmul <4 x double> %broadcast.splat64, %243 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %244, <4 x double> %247) %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec65.1 = shufflevector <4 x double> %246, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %249, align 8, !noalias !2522 %250 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %251 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 264 %wide.vec52.2 = load <8 x double>, ptr %250, align 8, !noalias !2522 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %251, align 8, !noalias !2522 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %252 = fadd <4 x double> %strided.vec53.2, %strided.vec56.2 %253 = fadd <4 x double> %strided.vec54.2, %strided.vec57.2 %254 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec58.2 = shufflevector <4 x double> %252, <4 x double> %253, <8 x i32> store <8 x double> %interleaved.vec58.2, ptr %254, align 8, !noalias !2522 %255 = fsub <4 x double> %strided.vec53.2, %strided.vec56.2 %256 = fsub <4 x double> %strided.vec54.2, %strided.vec57.2 %257 = fmul <4 x double> %256, %broadcast.splat60 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %255, <4 x double> %257) %259 = fmul <4 x double> %broadcast.splat64, %255 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %256, <4 x double> %259) %261 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec65.2 = shufflevector <4 x double> %258, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %261, align 8, !noalias !2522 %262 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %263 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 268 %wide.vec52.3 = load <8 x double>, ptr %262, align 8, !noalias !2522 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %263, align 8, !noalias !2522 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %264 = fadd <4 x double> %strided.vec53.3, %strided.vec56.3 %265 = fadd <4 x double> %strided.vec54.3, %strided.vec57.3 %266 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec58.3 = shufflevector <4 x double> %264, <4 x double> %265, <8 x i32> store <8 x double> %interleaved.vec58.3, ptr %266, align 8, !noalias !2522 %267 = fsub <4 x double> %strided.vec53.3, %strided.vec56.3 %268 = fsub <4 x double> %strided.vec54.3, %strided.vec57.3 %269 = fmul <4 x double> %268, %broadcast.splat60 %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %267, <4 x double> %269) %271 = fmul <4 x double> %broadcast.splat64, %267 %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %268, <4 x double> %271) %273 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec65.3 = shufflevector <4 x double> %270, <4 x double> %272, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %273, align 8, !noalias !2522 %274 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %275 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 272 %wide.vec52.4 = load <8 x double>, ptr %274, align 8, !noalias !2522 %strided.vec53.4 = shufflevector <8 x double> %wide.vec52.4, <8 x double> poison, <4 x i32> %strided.vec54.4 = shufflevector <8 x double> %wide.vec52.4, <8 x double> poison, <4 x i32> %wide.vec55.4 = load <8 x double>, ptr %275, align 8, !noalias !2522 %strided.vec56.4 = shufflevector <8 x double> %wide.vec55.4, <8 x double> poison, <4 x i32> %strided.vec57.4 = shufflevector <8 x double> %wide.vec55.4, <8 x double> poison, <4 x i32> %276 = fadd <4 x double> %strided.vec53.4, %strided.vec56.4 %277 = fadd <4 x double> %strided.vec54.4, %strided.vec57.4 %278 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec58.4 = shufflevector <4 x double> %276, <4 x double> %277, <8 x i32> store <8 x double> %interleaved.vec58.4, ptr %278, align 8, !noalias !2522 %279 = fsub <4 x double> %strided.vec53.4, %strided.vec56.4 %280 = fsub <4 x double> %strided.vec54.4, %strided.vec57.4 %281 = fmul <4 x double> %280, %broadcast.splat60 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %279, <4 x double> %281) %283 = fmul <4 x double> %broadcast.splat64, %279 %284 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %280, <4 x double> %283) %285 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec65.4 = shufflevector <4 x double> %282, <4 x double> %284, <8 x i32> store <8 x double> %interleaved.vec65.4, ptr %285, align 8, !noalias !2522 %286 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %287 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 276 %wide.vec52.5 = load <8 x double>, ptr %286, align 8, !noalias !2522 %strided.vec53.5 = shufflevector <8 x double> %wide.vec52.5, <8 x double> poison, <4 x i32> %strided.vec54.5 = shufflevector <8 x double> %wide.vec52.5, <8 x double> poison, <4 x i32> %wide.vec55.5 = load <8 x double>, ptr %287, align 8, !noalias !2522 %strided.vec56.5 = shufflevector <8 x double> %wide.vec55.5, <8 x double> poison, <4 x i32> %strided.vec57.5 = shufflevector <8 x double> %wide.vec55.5, <8 x double> poison, <4 x i32> %288 = fadd <4 x double> %strided.vec53.5, %strided.vec56.5 %289 = fadd <4 x double> %strided.vec54.5, %strided.vec57.5 %290 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec58.5 = shufflevector <4 x double> %288, <4 x double> %289, <8 x i32> store <8 x double> %interleaved.vec58.5, ptr %290, align 8, !noalias !2522 %291 = fsub <4 x double> %strided.vec53.5, %strided.vec56.5 %292 = fsub <4 x double> %strided.vec54.5, %strided.vec57.5 %293 = fmul <4 x double> %292, %broadcast.splat60 %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %291, <4 x double> %293) %295 = fmul <4 x double> %broadcast.splat64, %291 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %292, <4 x double> %295) %297 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec65.5 = shufflevector <4 x double> %294, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec65.5, ptr %297, align 8, !noalias !2522 %298 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %299 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 280 %wide.vec52.6 = load <8 x double>, ptr %298, align 8, !noalias !2522 %strided.vec53.6 = shufflevector <8 x double> %wide.vec52.6, <8 x double> poison, <4 x i32> %strided.vec54.6 = shufflevector <8 x double> %wide.vec52.6, <8 x double> poison, <4 x i32> %wide.vec55.6 = load <8 x double>, ptr %299, align 8, !noalias !2522 %strided.vec56.6 = shufflevector <8 x double> %wide.vec55.6, <8 x double> poison, <4 x i32> %strided.vec57.6 = shufflevector <8 x double> %wide.vec55.6, <8 x double> poison, <4 x i32> %300 = fadd <4 x double> %strided.vec53.6, %strided.vec56.6 %301 = fadd <4 x double> %strided.vec54.6, %strided.vec57.6 %302 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec58.6 = shufflevector <4 x double> %300, <4 x double> %301, <8 x i32> store <8 x double> %interleaved.vec58.6, ptr %302, align 8, !noalias !2522 %303 = fsub <4 x double> %strided.vec53.6, %strided.vec56.6 %304 = fsub <4 x double> %strided.vec54.6, %strided.vec57.6 %305 = fmul <4 x double> %304, %broadcast.splat60 %306 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %303, <4 x double> %305) %307 = fmul <4 x double> %broadcast.splat64, %303 %308 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %304, <4 x double> %307) %309 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec65.6 = shufflevector <4 x double> %306, <4 x double> %308, <8 x i32> store <8 x double> %interleaved.vec65.6, ptr %309, align 8, !noalias !2522 %310 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %311 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 284 %wide.vec52.7 = load <8 x double>, ptr %310, align 8, !noalias !2522 %strided.vec53.7 = shufflevector <8 x double> %wide.vec52.7, <8 x double> poison, <4 x i32> %strided.vec54.7 = shufflevector <8 x double> %wide.vec52.7, <8 x double> poison, <4 x i32> %wide.vec55.7 = load <8 x double>, ptr %311, align 8, !noalias !2522 %strided.vec56.7 = shufflevector <8 x double> %wide.vec55.7, <8 x double> poison, <4 x i32> %strided.vec57.7 = shufflevector <8 x double> %wide.vec55.7, <8 x double> poison, <4 x i32> %312 = fadd <4 x double> %strided.vec53.7, %strided.vec56.7 %313 = fadd <4 x double> %strided.vec54.7, %strided.vec57.7 %314 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec58.7 = shufflevector <4 x double> %312, <4 x double> %313, <8 x i32> store <8 x double> %interleaved.vec58.7, ptr %314, align 8, !noalias !2522 %315 = fsub <4 x double> %strided.vec53.7, %strided.vec56.7 %316 = fsub <4 x double> %strided.vec54.7, %strided.vec57.7 %317 = fmul <4 x double> %316, %broadcast.splat60 %318 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %315, <4 x double> %317) %319 = fmul <4 x double> %broadcast.splat64, %315 %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %316, <4 x double> %319) %321 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec65.7 = shufflevector <4 x double> %318, <4 x double> %320, <8 x i32> store <8 x double> %interleaved.vec65.7, ptr %321, align 8, !noalias !2522 %data.i.i.i.i.i.i1031.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %322 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.i.i.i.i.1 = load double, ptr %322, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.1, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %323 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.i.i.i.i.1 = load double, ptr %323, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.1, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.1 = fneg double %w1.1.i.i.i.i.1 %broadcast.splatinsert80 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.1, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %324 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i1027.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 288 %data.i.i.i.i.i.i.i.i1022.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec73 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.1, align 8, !noalias !2522 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.1, align 8, !noalias !2522 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %325 = fadd <4 x double> %strided.vec74, %strided.vec77 %326 = fadd <4 x double> %strided.vec75, %strided.vec78 %interleaved.vec79 = shufflevector <4 x double> %325, <4 x double> %326, <8 x i32> store <8 x double> %interleaved.vec79, ptr %data.i.i.i.i.i.i1031.1, align 8, !noalias !2522 %327 = fsub <4 x double> %strided.vec74, %strided.vec77 %328 = fsub <4 x double> %strided.vec75, %strided.vec78 %329 = fmul <4 x double> %328, %broadcast.splat81 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %broadcast.splat85, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %328, <4 x double> %331) %interleaved.vec86 = shufflevector <4 x double> %330, <4 x double> %332, <8 x i32> store <8 x double> %interleaved.vec86, ptr %324, align 8, !noalias !2522 %333 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %334 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 292 %wide.vec73.1 = load <8 x double>, ptr %333, align 8, !noalias !2522 %strided.vec74.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %strided.vec75.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %wide.vec76.1 = load <8 x double>, ptr %334, align 8, !noalias !2522 %strided.vec77.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %strided.vec78.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %335 = fadd <4 x double> %strided.vec74.1, %strided.vec77.1 %336 = fadd <4 x double> %strided.vec75.1, %strided.vec78.1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec79.1 = shufflevector <4 x double> %335, <4 x double> %336, <8 x i32> store <8 x double> %interleaved.vec79.1, ptr %337, align 8, !noalias !2522 %338 = fsub <4 x double> %strided.vec74.1, %strided.vec77.1 %339 = fsub <4 x double> %strided.vec75.1, %strided.vec78.1 %340 = fmul <4 x double> %339, %broadcast.splat81 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %338, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat85, %338 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %339, <4 x double> %342) %344 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec86.1 = shufflevector <4 x double> %341, <4 x double> %343, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %344, align 8, !noalias !2522 %345 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %346 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 296 %wide.vec73.2 = load <8 x double>, ptr %345, align 8, !noalias !2522 %strided.vec74.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %strided.vec75.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %wide.vec76.2 = load <8 x double>, ptr %346, align 8, !noalias !2522 %strided.vec77.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %strided.vec78.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %347 = fadd <4 x double> %strided.vec74.2, %strided.vec77.2 %348 = fadd <4 x double> %strided.vec75.2, %strided.vec78.2 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec79.2 = shufflevector <4 x double> %347, <4 x double> %348, <8 x i32> store <8 x double> %interleaved.vec79.2, ptr %349, align 8, !noalias !2522 %350 = fsub <4 x double> %strided.vec74.2, %strided.vec77.2 %351 = fsub <4 x double> %strided.vec75.2, %strided.vec78.2 %352 = fmul <4 x double> %351, %broadcast.splat81 %353 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %350, <4 x double> %352) %354 = fmul <4 x double> %broadcast.splat85, %350 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %351, <4 x double> %354) %356 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec86.2 = shufflevector <4 x double> %353, <4 x double> %355, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %356, align 8, !noalias !2522 %357 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %358 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 300 %wide.vec73.3 = load <8 x double>, ptr %357, align 8, !noalias !2522 %strided.vec74.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %strided.vec75.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %wide.vec76.3 = load <8 x double>, ptr %358, align 8, !noalias !2522 %strided.vec77.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %strided.vec78.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %359 = fadd <4 x double> %strided.vec74.3, %strided.vec77.3 %360 = fadd <4 x double> %strided.vec75.3, %strided.vec78.3 %361 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec79.3 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec79.3, ptr %361, align 8, !noalias !2522 %362 = fsub <4 x double> %strided.vec74.3, %strided.vec77.3 %363 = fsub <4 x double> %strided.vec75.3, %strided.vec78.3 %364 = fmul <4 x double> %363, %broadcast.splat81 %365 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %362, <4 x double> %364) %366 = fmul <4 x double> %broadcast.splat85, %362 %367 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %363, <4 x double> %366) %368 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec86.3 = shufflevector <4 x double> %365, <4 x double> %367, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %368, align 8, !noalias !2522 %369 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 304 %wide.vec73.4 = load <8 x double>, ptr %369, align 8, !noalias !2522 %strided.vec74.4 = shufflevector <8 x double> %wide.vec73.4, <8 x double> poison, <4 x i32> %strided.vec75.4 = shufflevector <8 x double> %wide.vec73.4, <8 x double> poison, <4 x i32> %wide.vec76.4 = load <8 x double>, ptr %370, align 8, !noalias !2522 %strided.vec77.4 = shufflevector <8 x double> %wide.vec76.4, <8 x double> poison, <4 x i32> %strided.vec78.4 = shufflevector <8 x double> %wide.vec76.4, <8 x double> poison, <4 x i32> %371 = fadd <4 x double> %strided.vec74.4, %strided.vec77.4 %372 = fadd <4 x double> %strided.vec75.4, %strided.vec78.4 %373 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %interleaved.vec79.4 = shufflevector <4 x double> %371, <4 x double> %372, <8 x i32> store <8 x double> %interleaved.vec79.4, ptr %373, align 8, !noalias !2522 %374 = fsub <4 x double> %strided.vec74.4, %strided.vec77.4 %375 = fsub <4 x double> %strided.vec75.4, %strided.vec78.4 %376 = fmul <4 x double> %375, %broadcast.splat81 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %374, <4 x double> %376) %378 = fmul <4 x double> %broadcast.splat85, %374 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %375, <4 x double> %378) %380 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %interleaved.vec86.4 = shufflevector <4 x double> %377, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec86.4, ptr %380, align 8, !noalias !2522 %381 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %382 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 308 %wide.vec73.5 = load <8 x double>, ptr %381, align 8, !noalias !2522 %strided.vec74.5 = shufflevector <8 x double> %wide.vec73.5, <8 x double> poison, <4 x i32> %strided.vec75.5 = shufflevector <8 x double> %wide.vec73.5, <8 x double> poison, <4 x i32> %wide.vec76.5 = load <8 x double>, ptr %382, align 8, !noalias !2522 %strided.vec77.5 = shufflevector <8 x double> %wide.vec76.5, <8 x double> poison, <4 x i32> %strided.vec78.5 = shufflevector <8 x double> %wide.vec76.5, <8 x double> poison, <4 x i32> %383 = fadd <4 x double> %strided.vec74.5, %strided.vec77.5 %384 = fadd <4 x double> %strided.vec75.5, %strided.vec78.5 %385 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec79.5 = shufflevector <4 x double> %383, <4 x double> %384, <8 x i32> store <8 x double> %interleaved.vec79.5, ptr %385, align 8, !noalias !2522 %386 = fsub <4 x double> %strided.vec74.5, %strided.vec77.5 %387 = fsub <4 x double> %strided.vec75.5, %strided.vec78.5 %388 = fmul <4 x double> %387, %broadcast.splat81 %389 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %386, <4 x double> %388) %390 = fmul <4 x double> %broadcast.splat85, %386 %391 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %387, <4 x double> %390) %392 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec86.5 = shufflevector <4 x double> %389, <4 x double> %391, <8 x i32> store <8 x double> %interleaved.vec86.5, ptr %392, align 8, !noalias !2522 %393 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %394 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 312 %wide.vec73.6 = load <8 x double>, ptr %393, align 8, !noalias !2522 %strided.vec74.6 = shufflevector <8 x double> %wide.vec73.6, <8 x double> poison, <4 x i32> %strided.vec75.6 = shufflevector <8 x double> %wide.vec73.6, <8 x double> poison, <4 x i32> %wide.vec76.6 = load <8 x double>, ptr %394, align 8, !noalias !2522 %strided.vec77.6 = shufflevector <8 x double> %wide.vec76.6, <8 x double> poison, <4 x i32> %strided.vec78.6 = shufflevector <8 x double> %wide.vec76.6, <8 x double> poison, <4 x i32> %395 = fadd <4 x double> %strided.vec74.6, %strided.vec77.6 %396 = fadd <4 x double> %strided.vec75.6, %strided.vec78.6 %397 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec79.6 = shufflevector <4 x double> %395, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec79.6, ptr %397, align 8, !noalias !2522 %398 = fsub <4 x double> %strided.vec74.6, %strided.vec77.6 %399 = fsub <4 x double> %strided.vec75.6, %strided.vec78.6 %400 = fmul <4 x double> %399, %broadcast.splat81 %401 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %398, <4 x double> %400) %402 = fmul <4 x double> %broadcast.splat85, %398 %403 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %399, <4 x double> %402) %404 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec86.6 = shufflevector <4 x double> %401, <4 x double> %403, <8 x i32> store <8 x double> %interleaved.vec86.6, ptr %404, align 8, !noalias !2522 %405 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %406 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 316 %wide.vec73.7 = load <8 x double>, ptr %405, align 8, !noalias !2522 %strided.vec74.7 = shufflevector <8 x double> %wide.vec73.7, <8 x double> poison, <4 x i32> %strided.vec75.7 = shufflevector <8 x double> %wide.vec73.7, <8 x double> poison, <4 x i32> %wide.vec76.7 = load <8 x double>, ptr %406, align 8, !noalias !2522 %strided.vec77.7 = shufflevector <8 x double> %wide.vec76.7, <8 x double> poison, <4 x i32> %strided.vec78.7 = shufflevector <8 x double> %wide.vec76.7, <8 x double> poison, <4 x i32> %407 = fadd <4 x double> %strided.vec74.7, %strided.vec77.7 %408 = fadd <4 x double> %strided.vec75.7, %strided.vec78.7 %409 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec79.7 = shufflevector <4 x double> %407, <4 x double> %408, <8 x i32> store <8 x double> %interleaved.vec79.7, ptr %409, align 8, !noalias !2522 %410 = fsub <4 x double> %strided.vec74.7, %strided.vec77.7 %411 = fsub <4 x double> %strided.vec75.7, %strided.vec78.7 %412 = fmul <4 x double> %411, %broadcast.splat81 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %410, <4 x double> %412) %414 = fmul <4 x double> %broadcast.splat85, %410 %415 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %411, <4 x double> %414) %416 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec86.7 = shufflevector <4 x double> %413, <4 x double> %415, <8 x i32> store <8 x double> %interleaved.vec86.7, ptr %416, align 8, !noalias !2522 %data.i.i.i.i.i.i.i.i1022.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i1027.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %data.i.i.i.i.i.i1031.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %417 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i.i.2 = load double, ptr %417, align 8, !noalias !2512, !noundef !3 %418 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i.i.2 = load double, ptr %418, align 8, !noalias !2512, !noundef !3 %_6.i.i.i.i.i.2 = fneg double %w1.1.i.i.i.i.2 %broadcast.splatinsert105 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.2, i64 0 %broadcast.splat106 = shufflevector <4 x double> %broadcast.splatinsert105, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.2, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.2, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %419 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %wide.vec94 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.2, align 8, !noalias !2522 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.2, align 8, !noalias !2522 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %420 = fadd <4 x double> %strided.vec95, %strided.vec98 %421 = fadd <4 x double> %strided.vec96, %strided.vec99 %interleaved.vec100 = shufflevector <4 x double> %420, <4 x double> %421, <8 x i32> store <8 x double> %interleaved.vec100, ptr %data.i.i.i.i.i.i1031.2, align 8, !noalias !2522 %422 = fsub <4 x double> %strided.vec95, %strided.vec98 %423 = fsub <4 x double> %strided.vec96, %strided.vec99 %424 = fmul <4 x double> %423, %broadcast.splat102 %425 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %422, <4 x double> %424) %426 = fmul <4 x double> %broadcast.splat106, %422 %427 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %423, <4 x double> %426) %interleaved.vec107 = shufflevector <4 x double> %425, <4 x double> %427, <8 x i32> store <8 x double> %interleaved.vec107, ptr %419, align 8, !noalias !2522 %428 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %429 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 324 %wide.vec94.1 = load <8 x double>, ptr %428, align 8, !noalias !2522 %strided.vec95.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %strided.vec96.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %wide.vec97.1 = load <8 x double>, ptr %429, align 8, !noalias !2522 %strided.vec98.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %strided.vec99.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %430 = fadd <4 x double> %strided.vec95.1, %strided.vec98.1 %431 = fadd <4 x double> %strided.vec96.1, %strided.vec99.1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 132 %interleaved.vec100.1 = shufflevector <4 x double> %430, <4 x double> %431, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %432, align 8, !noalias !2522 %433 = fsub <4 x double> %strided.vec95.1, %strided.vec98.1 %434 = fsub <4 x double> %strided.vec96.1, %strided.vec99.1 %435 = fmul <4 x double> %434, %broadcast.splat102 %436 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %433, <4 x double> %435) %437 = fmul <4 x double> %broadcast.splat106, %433 %438 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %434, <4 x double> %437) %439 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 164 %interleaved.vec107.1 = shufflevector <4 x double> %436, <4 x double> %438, <8 x i32> store <8 x double> %interleaved.vec107.1, ptr %439, align 8, !noalias !2522 %440 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %441 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 328 %wide.vec94.2 = load <8 x double>, ptr %440, align 8, !noalias !2522 %strided.vec95.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %strided.vec96.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %wide.vec97.2 = load <8 x double>, ptr %441, align 8, !noalias !2522 %strided.vec98.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %strided.vec99.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %442 = fadd <4 x double> %strided.vec95.2, %strided.vec98.2 %443 = fadd <4 x double> %strided.vec96.2, %strided.vec99.2 %444 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 136 %interleaved.vec100.2 = shufflevector <4 x double> %442, <4 x double> %443, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %444, align 8, !noalias !2522 %445 = fsub <4 x double> %strided.vec95.2, %strided.vec98.2 %446 = fsub <4 x double> %strided.vec96.2, %strided.vec99.2 %447 = fmul <4 x double> %446, %broadcast.splat102 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %445, <4 x double> %447) %449 = fmul <4 x double> %broadcast.splat106, %445 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %446, <4 x double> %449) %451 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 168 %interleaved.vec107.2 = shufflevector <4 x double> %448, <4 x double> %450, <8 x i32> store <8 x double> %interleaved.vec107.2, ptr %451, align 8, !noalias !2522 %452 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %453 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 332 %wide.vec94.3 = load <8 x double>, ptr %452, align 8, !noalias !2522 %strided.vec95.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %strided.vec96.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %wide.vec97.3 = load <8 x double>, ptr %453, align 8, !noalias !2522 %strided.vec98.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %strided.vec99.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %454 = fadd <4 x double> %strided.vec95.3, %strided.vec98.3 %455 = fadd <4 x double> %strided.vec96.3, %strided.vec99.3 %456 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 140 %interleaved.vec100.3 = shufflevector <4 x double> %454, <4 x double> %455, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %456, align 8, !noalias !2522 %457 = fsub <4 x double> %strided.vec95.3, %strided.vec98.3 %458 = fsub <4 x double> %strided.vec96.3, %strided.vec99.3 %459 = fmul <4 x double> %458, %broadcast.splat102 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %457, <4 x double> %459) %461 = fmul <4 x double> %broadcast.splat106, %457 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %458, <4 x double> %461) %463 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 172 %interleaved.vec107.3 = shufflevector <4 x double> %460, <4 x double> %462, <8 x i32> store <8 x double> %interleaved.vec107.3, ptr %463, align 8, !noalias !2522 %464 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %465 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 336 %wide.vec94.4 = load <8 x double>, ptr %464, align 8, !noalias !2522 %strided.vec95.4 = shufflevector <8 x double> %wide.vec94.4, <8 x double> poison, <4 x i32> %strided.vec96.4 = shufflevector <8 x double> %wide.vec94.4, <8 x double> poison, <4 x i32> %wide.vec97.4 = load <8 x double>, ptr %465, align 8, !noalias !2522 %strided.vec98.4 = shufflevector <8 x double> %wide.vec97.4, <8 x double> poison, <4 x i32> %strided.vec99.4 = shufflevector <8 x double> %wide.vec97.4, <8 x double> poison, <4 x i32> %466 = fadd <4 x double> %strided.vec95.4, %strided.vec98.4 %467 = fadd <4 x double> %strided.vec96.4, %strided.vec99.4 %468 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %interleaved.vec100.4 = shufflevector <4 x double> %466, <4 x double> %467, <8 x i32> store <8 x double> %interleaved.vec100.4, ptr %468, align 8, !noalias !2522 %469 = fsub <4 x double> %strided.vec95.4, %strided.vec98.4 %470 = fsub <4 x double> %strided.vec96.4, %strided.vec99.4 %471 = fmul <4 x double> %470, %broadcast.splat102 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %broadcast.splat106, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %470, <4 x double> %473) %475 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %interleaved.vec107.4 = shufflevector <4 x double> %472, <4 x double> %474, <8 x i32> store <8 x double> %interleaved.vec107.4, ptr %475, align 8, !noalias !2522 %476 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %477 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 340 %wide.vec94.5 = load <8 x double>, ptr %476, align 8, !noalias !2522 %strided.vec95.5 = shufflevector <8 x double> %wide.vec94.5, <8 x double> poison, <4 x i32> %strided.vec96.5 = shufflevector <8 x double> %wide.vec94.5, <8 x double> poison, <4 x i32> %wide.vec97.5 = load <8 x double>, ptr %477, align 8, !noalias !2522 %strided.vec98.5 = shufflevector <8 x double> %wide.vec97.5, <8 x double> poison, <4 x i32> %strided.vec99.5 = shufflevector <8 x double> %wide.vec97.5, <8 x double> poison, <4 x i32> %478 = fadd <4 x double> %strided.vec95.5, %strided.vec98.5 %479 = fadd <4 x double> %strided.vec96.5, %strided.vec99.5 %480 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 148 %interleaved.vec100.5 = shufflevector <4 x double> %478, <4 x double> %479, <8 x i32> store <8 x double> %interleaved.vec100.5, ptr %480, align 8, !noalias !2522 %481 = fsub <4 x double> %strided.vec95.5, %strided.vec98.5 %482 = fsub <4 x double> %strided.vec96.5, %strided.vec99.5 %483 = fmul <4 x double> %482, %broadcast.splat102 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %481, <4 x double> %483) %485 = fmul <4 x double> %broadcast.splat106, %481 %486 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %482, <4 x double> %485) %487 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 180 %interleaved.vec107.5 = shufflevector <4 x double> %484, <4 x double> %486, <8 x i32> store <8 x double> %interleaved.vec107.5, ptr %487, align 8, !noalias !2522 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 344 %wide.vec94.6 = load <8 x double>, ptr %488, align 8, !noalias !2522 %strided.vec95.6 = shufflevector <8 x double> %wide.vec94.6, <8 x double> poison, <4 x i32> %strided.vec96.6 = shufflevector <8 x double> %wide.vec94.6, <8 x double> poison, <4 x i32> %wide.vec97.6 = load <8 x double>, ptr %489, align 8, !noalias !2522 %strided.vec98.6 = shufflevector <8 x double> %wide.vec97.6, <8 x double> poison, <4 x i32> %strided.vec99.6 = shufflevector <8 x double> %wide.vec97.6, <8 x double> poison, <4 x i32> %490 = fadd <4 x double> %strided.vec95.6, %strided.vec98.6 %491 = fadd <4 x double> %strided.vec96.6, %strided.vec99.6 %492 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 152 %interleaved.vec100.6 = shufflevector <4 x double> %490, <4 x double> %491, <8 x i32> store <8 x double> %interleaved.vec100.6, ptr %492, align 8, !noalias !2522 %493 = fsub <4 x double> %strided.vec95.6, %strided.vec98.6 %494 = fsub <4 x double> %strided.vec96.6, %strided.vec99.6 %495 = fmul <4 x double> %494, %broadcast.splat102 %496 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %493, <4 x double> %495) %497 = fmul <4 x double> %broadcast.splat106, %493 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %494, <4 x double> %497) %499 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 184 %interleaved.vec107.6 = shufflevector <4 x double> %496, <4 x double> %498, <8 x i32> store <8 x double> %interleaved.vec107.6, ptr %499, align 8, !noalias !2522 %500 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %501 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 348 %wide.vec94.7 = load <8 x double>, ptr %500, align 8, !noalias !2522 %strided.vec95.7 = shufflevector <8 x double> %wide.vec94.7, <8 x double> poison, <4 x i32> %strided.vec96.7 = shufflevector <8 x double> %wide.vec94.7, <8 x double> poison, <4 x i32> %wide.vec97.7 = load <8 x double>, ptr %501, align 8, !noalias !2522 %strided.vec98.7 = shufflevector <8 x double> %wide.vec97.7, <8 x double> poison, <4 x i32> %strided.vec99.7 = shufflevector <8 x double> %wide.vec97.7, <8 x double> poison, <4 x i32> %502 = fadd <4 x double> %strided.vec95.7, %strided.vec98.7 %503 = fadd <4 x double> %strided.vec96.7, %strided.vec99.7 %504 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 156 %interleaved.vec100.7 = shufflevector <4 x double> %502, <4 x double> %503, <8 x i32> store <8 x double> %interleaved.vec100.7, ptr %504, align 8, !noalias !2522 %505 = fsub <4 x double> %strided.vec95.7, %strided.vec98.7 %506 = fsub <4 x double> %strided.vec96.7, %strided.vec99.7 %507 = fmul <4 x double> %506, %broadcast.splat102 %508 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %505, <4 x double> %507) %509 = fmul <4 x double> %broadcast.splat106, %505 %510 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %506, <4 x double> %509) %511 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %interleaved.vec107.7 = shufflevector <4 x double> %508, <4 x double> %510, <8 x i32> store <8 x double> %interleaved.vec107.7, ptr %511, align 8, !noalias !2522 %data.i.i.i.i.i.i1031.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %512 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1, i32 1 %w1.1.i.i.i.i.3 = load double, ptr %512, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert126 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.3, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %513 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1 %w1.0.i.i.i.i.3 = load double, ptr %513, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert124 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.3, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.3 = fneg double %w1.1.i.i.i.i.3 %broadcast.splatinsert122 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.3, i64 0 %broadcast.splat123 = shufflevector <4 x double> %broadcast.splatinsert122, <4 x double> poison, <4 x i32> zeroinitializer %514 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %data.i5.i.i.i.i.i.i.i1027.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 352 %data.i.i.i.i.i.i.i.i1022.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %wide.vec115 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.3, align 8, !noalias !2522 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.3, align 8, !noalias !2522 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %515 = fadd <4 x double> %strided.vec116, %strided.vec119 %516 = fadd <4 x double> %strided.vec117, %strided.vec120 %interleaved.vec121 = shufflevector <4 x double> %515, <4 x double> %516, <8 x i32> store <8 x double> %interleaved.vec121, ptr %data.i.i.i.i.i.i1031.3, align 8, !noalias !2522 %517 = fsub <4 x double> %strided.vec116, %strided.vec119 %518 = fsub <4 x double> %strided.vec117, %strided.vec120 %519 = fmul <4 x double> %518, %broadcast.splat123 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %broadcast.splat127, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %518, <4 x double> %521) %interleaved.vec128 = shufflevector <4 x double> %520, <4 x double> %522, <8 x i32> store <8 x double> %interleaved.vec128, ptr %514, align 8, !noalias !2522 %523 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %524 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 356 %wide.vec115.1 = load <8 x double>, ptr %523, align 8, !noalias !2522 %strided.vec116.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %strided.vec117.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %wide.vec118.1 = load <8 x double>, ptr %524, align 8, !noalias !2522 %strided.vec119.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %strided.vec120.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %525 = fadd <4 x double> %strided.vec116.1, %strided.vec119.1 %526 = fadd <4 x double> %strided.vec117.1, %strided.vec120.1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 196 %interleaved.vec121.1 = shufflevector <4 x double> %525, <4 x double> %526, <8 x i32> store <8 x double> %interleaved.vec121.1, ptr %527, align 8, !noalias !2522 %528 = fsub <4 x double> %strided.vec116.1, %strided.vec119.1 %529 = fsub <4 x double> %strided.vec117.1, %strided.vec120.1 %530 = fmul <4 x double> %529, %broadcast.splat123 %531 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %528, <4 x double> %530) %532 = fmul <4 x double> %broadcast.splat127, %528 %533 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %529, <4 x double> %532) %534 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 228 %interleaved.vec128.1 = shufflevector <4 x double> %531, <4 x double> %533, <8 x i32> store <8 x double> %interleaved.vec128.1, ptr %534, align 8, !noalias !2522 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 360 %wide.vec115.2 = load <8 x double>, ptr %535, align 8, !noalias !2522 %strided.vec116.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %strided.vec117.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %wide.vec118.2 = load <8 x double>, ptr %536, align 8, !noalias !2522 %strided.vec119.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %strided.vec120.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %537 = fadd <4 x double> %strided.vec116.2, %strided.vec119.2 %538 = fadd <4 x double> %strided.vec117.2, %strided.vec120.2 %539 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 200 %interleaved.vec121.2 = shufflevector <4 x double> %537, <4 x double> %538, <8 x i32> store <8 x double> %interleaved.vec121.2, ptr %539, align 8, !noalias !2522 %540 = fsub <4 x double> %strided.vec116.2, %strided.vec119.2 %541 = fsub <4 x double> %strided.vec117.2, %strided.vec120.2 %542 = fmul <4 x double> %541, %broadcast.splat123 %543 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %540, <4 x double> %542) %544 = fmul <4 x double> %broadcast.splat127, %540 %545 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %541, <4 x double> %544) %546 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 232 %interleaved.vec128.2 = shufflevector <4 x double> %543, <4 x double> %545, <8 x i32> store <8 x double> %interleaved.vec128.2, ptr %546, align 8, !noalias !2522 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 364 %wide.vec115.3 = load <8 x double>, ptr %547, align 8, !noalias !2522 %strided.vec116.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %strided.vec117.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %wide.vec118.3 = load <8 x double>, ptr %548, align 8, !noalias !2522 %strided.vec119.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %strided.vec120.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %549 = fadd <4 x double> %strided.vec116.3, %strided.vec119.3 %550 = fadd <4 x double> %strided.vec117.3, %strided.vec120.3 %551 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 204 %interleaved.vec121.3 = shufflevector <4 x double> %549, <4 x double> %550, <8 x i32> store <8 x double> %interleaved.vec121.3, ptr %551, align 8, !noalias !2522 %552 = fsub <4 x double> %strided.vec116.3, %strided.vec119.3 %553 = fsub <4 x double> %strided.vec117.3, %strided.vec120.3 %554 = fmul <4 x double> %553, %broadcast.splat123 %555 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %552, <4 x double> %554) %556 = fmul <4 x double> %broadcast.splat127, %552 %557 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %553, <4 x double> %556) %558 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 236 %interleaved.vec128.3 = shufflevector <4 x double> %555, <4 x double> %557, <8 x i32> store <8 x double> %interleaved.vec128.3, ptr %558, align 8, !noalias !2522 %559 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %560 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 368 %wide.vec115.4 = load <8 x double>, ptr %559, align 8, !noalias !2522 %strided.vec116.4 = shufflevector <8 x double> %wide.vec115.4, <8 x double> poison, <4 x i32> %strided.vec117.4 = shufflevector <8 x double> %wide.vec115.4, <8 x double> poison, <4 x i32> %wide.vec118.4 = load <8 x double>, ptr %560, align 8, !noalias !2522 %strided.vec119.4 = shufflevector <8 x double> %wide.vec118.4, <8 x double> poison, <4 x i32> %strided.vec120.4 = shufflevector <8 x double> %wide.vec118.4, <8 x double> poison, <4 x i32> %561 = fadd <4 x double> %strided.vec116.4, %strided.vec119.4 %562 = fadd <4 x double> %strided.vec117.4, %strided.vec120.4 %563 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %interleaved.vec121.4 = shufflevector <4 x double> %561, <4 x double> %562, <8 x i32> store <8 x double> %interleaved.vec121.4, ptr %563, align 8, !noalias !2522 %564 = fsub <4 x double> %strided.vec116.4, %strided.vec119.4 %565 = fsub <4 x double> %strided.vec117.4, %strided.vec120.4 %566 = fmul <4 x double> %565, %broadcast.splat123 %567 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %564, <4 x double> %566) %568 = fmul <4 x double> %broadcast.splat127, %564 %569 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %565, <4 x double> %568) %570 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %interleaved.vec128.4 = shufflevector <4 x double> %567, <4 x double> %569, <8 x i32> store <8 x double> %interleaved.vec128.4, ptr %570, align 8, !noalias !2522 %571 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %572 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 372 %wide.vec115.5 = load <8 x double>, ptr %571, align 8, !noalias !2522 %strided.vec116.5 = shufflevector <8 x double> %wide.vec115.5, <8 x double> poison, <4 x i32> %strided.vec117.5 = shufflevector <8 x double> %wide.vec115.5, <8 x double> poison, <4 x i32> %wide.vec118.5 = load <8 x double>, ptr %572, align 8, !noalias !2522 %strided.vec119.5 = shufflevector <8 x double> %wide.vec118.5, <8 x double> poison, <4 x i32> %strided.vec120.5 = shufflevector <8 x double> %wide.vec118.5, <8 x double> poison, <4 x i32> %573 = fadd <4 x double> %strided.vec116.5, %strided.vec119.5 %574 = fadd <4 x double> %strided.vec117.5, %strided.vec120.5 %575 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 212 %interleaved.vec121.5 = shufflevector <4 x double> %573, <4 x double> %574, <8 x i32> store <8 x double> %interleaved.vec121.5, ptr %575, align 8, !noalias !2522 %576 = fsub <4 x double> %strided.vec116.5, %strided.vec119.5 %577 = fsub <4 x double> %strided.vec117.5, %strided.vec120.5 %578 = fmul <4 x double> %577, %broadcast.splat123 %579 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %576, <4 x double> %578) %580 = fmul <4 x double> %broadcast.splat127, %576 %581 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %577, <4 x double> %580) %582 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %interleaved.vec128.5 = shufflevector <4 x double> %579, <4 x double> %581, <8 x i32> store <8 x double> %interleaved.vec128.5, ptr %582, align 8, !noalias !2522 %583 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %584 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 376 %wide.vec115.6 = load <8 x double>, ptr %583, align 8, !noalias !2522 %strided.vec116.6 = shufflevector <8 x double> %wide.vec115.6, <8 x double> poison, <4 x i32> %strided.vec117.6 = shufflevector <8 x double> %wide.vec115.6, <8 x double> poison, <4 x i32> %wide.vec118.6 = load <8 x double>, ptr %584, align 8, !noalias !2522 %strided.vec119.6 = shufflevector <8 x double> %wide.vec118.6, <8 x double> poison, <4 x i32> %strided.vec120.6 = shufflevector <8 x double> %wide.vec118.6, <8 x double> poison, <4 x i32> %585 = fadd <4 x double> %strided.vec116.6, %strided.vec119.6 %586 = fadd <4 x double> %strided.vec117.6, %strided.vec120.6 %587 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 216 %interleaved.vec121.6 = shufflevector <4 x double> %585, <4 x double> %586, <8 x i32> store <8 x double> %interleaved.vec121.6, ptr %587, align 8, !noalias !2522 %588 = fsub <4 x double> %strided.vec116.6, %strided.vec119.6 %589 = fsub <4 x double> %strided.vec117.6, %strided.vec120.6 %590 = fmul <4 x double> %589, %broadcast.splat123 %591 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %588, <4 x double> %590) %592 = fmul <4 x double> %broadcast.splat127, %588 %593 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %589, <4 x double> %592) %594 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %interleaved.vec128.6 = shufflevector <4 x double> %591, <4 x double> %593, <8 x i32> store <8 x double> %interleaved.vec128.6, ptr %594, align 8, !noalias !2522 %595 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %596 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 380 %wide.vec115.7 = load <8 x double>, ptr %595, align 8, !noalias !2522 %strided.vec116.7 = shufflevector <8 x double> %wide.vec115.7, <8 x double> poison, <4 x i32> %strided.vec117.7 = shufflevector <8 x double> %wide.vec115.7, <8 x double> poison, <4 x i32> %wide.vec118.7 = load <8 x double>, ptr %596, align 8, !noalias !2522 %strided.vec119.7 = shufflevector <8 x double> %wide.vec118.7, <8 x double> poison, <4 x i32> %strided.vec120.7 = shufflevector <8 x double> %wide.vec118.7, <8 x double> poison, <4 x i32> %597 = fadd <4 x double> %strided.vec116.7, %strided.vec119.7 %598 = fadd <4 x double> %strided.vec117.7, %strided.vec120.7 %599 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 220 %interleaved.vec121.7 = shufflevector <4 x double> %597, <4 x double> %598, <8 x i32> store <8 x double> %interleaved.vec121.7, ptr %599, align 8, !noalias !2522 %600 = fsub <4 x double> %strided.vec116.7, %strided.vec119.7 %601 = fsub <4 x double> %strided.vec117.7, %strided.vec120.7 %602 = fmul <4 x double> %601, %broadcast.splat123 %603 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %600, <4 x double> %602) %604 = fmul <4 x double> %broadcast.splat127, %600 %605 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %601, <4 x double> %604) %606 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %interleaved.vec128.7 = shufflevector <4 x double> %603, <4 x double> %605, <8 x i32> store <8 x double> %interleaved.vec128.7, ptr %606, align 8, !noalias !2522 %data.i.i.i.i.i.i.i.i1022.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %data.i5.i.i.i.i.i.i.i1027.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %607 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.i.i.i.i.4 = load double, ptr %607, align 8, !noalias !2505, !noundef !3 %608 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.i.i.i.i.4 = load double, ptr %608, align 8, !noalias !2505, !noundef !3 %_6.i.i.i.i.i.4 = fneg double %w1.1.i.i.i.i.4 %broadcast.splatinsert147 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat148 = shufflevector <4 x double> %broadcast.splatinsert147, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert145 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert143 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat144 = shufflevector <4 x double> %broadcast.splatinsert143, <4 x double> poison, <4 x i32> zeroinitializer %609 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 288 %wide.vec136 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.4, align 8, !noalias !2522 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.4, align 8, !noalias !2522 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %610 = fadd <4 x double> %strided.vec137, %strided.vec140 %611 = fadd <4 x double> %strided.vec138, %strided.vec141 %interleaved.vec142 = shufflevector <4 x double> %610, <4 x double> %611, <8 x i32> store <8 x double> %interleaved.vec142, ptr %0, align 8, !noalias !2522 %612 = fsub <4 x double> %strided.vec137, %strided.vec140 %613 = fsub <4 x double> %strided.vec138, %strided.vec141 %614 = fmul <4 x double> %613, %broadcast.splat144 %615 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %612, <4 x double> %614) %616 = fmul <4 x double> %broadcast.splat148, %612 %617 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %613, <4 x double> %616) %interleaved.vec149 = shufflevector <4 x double> %615, <4 x double> %617, <8 x i32> store <8 x double> %interleaved.vec149, ptr %609, align 8, !noalias !2522 %618 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 132 %619 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 388 %wide.vec136.1 = load <8 x double>, ptr %618, align 8, !noalias !2522 %strided.vec137.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %strided.vec138.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %wide.vec139.1 = load <8 x double>, ptr %619, align 8, !noalias !2522 %strided.vec140.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %strided.vec141.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %620 = fadd <4 x double> %strided.vec137.1, %strided.vec140.1 %621 = fadd <4 x double> %strided.vec138.1, %strided.vec141.1 %622 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 260 %interleaved.vec142.1 = shufflevector <4 x double> %620, <4 x double> %621, <8 x i32> store <8 x double> %interleaved.vec142.1, ptr %622, align 8, !noalias !2522 %623 = fsub <4 x double> %strided.vec137.1, %strided.vec140.1 %624 = fsub <4 x double> %strided.vec138.1, %strided.vec141.1 %625 = fmul <4 x double> %624, %broadcast.splat144 %626 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %623, <4 x double> %625) %627 = fmul <4 x double> %broadcast.splat148, %623 %628 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %624, <4 x double> %627) %629 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 292 %interleaved.vec149.1 = shufflevector <4 x double> %626, <4 x double> %628, <8 x i32> store <8 x double> %interleaved.vec149.1, ptr %629, align 8, !noalias !2522 %630 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 136 %631 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 392 %wide.vec136.2 = load <8 x double>, ptr %630, align 8, !noalias !2522 %strided.vec137.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %strided.vec138.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %wide.vec139.2 = load <8 x double>, ptr %631, align 8, !noalias !2522 %strided.vec140.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %strided.vec141.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %632 = fadd <4 x double> %strided.vec137.2, %strided.vec140.2 %633 = fadd <4 x double> %strided.vec138.2, %strided.vec141.2 %634 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 264 %interleaved.vec142.2 = shufflevector <4 x double> %632, <4 x double> %633, <8 x i32> store <8 x double> %interleaved.vec142.2, ptr %634, align 8, !noalias !2522 %635 = fsub <4 x double> %strided.vec137.2, %strided.vec140.2 %636 = fsub <4 x double> %strided.vec138.2, %strided.vec141.2 %637 = fmul <4 x double> %636, %broadcast.splat144 %638 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %635, <4 x double> %637) %639 = fmul <4 x double> %broadcast.splat148, %635 %640 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %636, <4 x double> %639) %641 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 296 %interleaved.vec149.2 = shufflevector <4 x double> %638, <4 x double> %640, <8 x i32> store <8 x double> %interleaved.vec149.2, ptr %641, align 8, !noalias !2522 %642 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 140 %643 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 396 %wide.vec136.3 = load <8 x double>, ptr %642, align 8, !noalias !2522 %strided.vec137.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %strided.vec138.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %wide.vec139.3 = load <8 x double>, ptr %643, align 8, !noalias !2522 %strided.vec140.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %strided.vec141.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %644 = fadd <4 x double> %strided.vec137.3, %strided.vec140.3 %645 = fadd <4 x double> %strided.vec138.3, %strided.vec141.3 %646 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 268 %interleaved.vec142.3 = shufflevector <4 x double> %644, <4 x double> %645, <8 x i32> store <8 x double> %interleaved.vec142.3, ptr %646, align 8, !noalias !2522 %647 = fsub <4 x double> %strided.vec137.3, %strided.vec140.3 %648 = fsub <4 x double> %strided.vec138.3, %strided.vec141.3 %649 = fmul <4 x double> %648, %broadcast.splat144 %650 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %647, <4 x double> %649) %651 = fmul <4 x double> %broadcast.splat148, %647 %652 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %648, <4 x double> %651) %653 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 300 %interleaved.vec149.3 = shufflevector <4 x double> %650, <4 x double> %652, <8 x i32> store <8 x double> %interleaved.vec149.3, ptr %653, align 8, !noalias !2522 %654 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %655 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 400 %wide.vec136.4 = load <8 x double>, ptr %654, align 8, !noalias !2522 %strided.vec137.4 = shufflevector <8 x double> %wide.vec136.4, <8 x double> poison, <4 x i32> %strided.vec138.4 = shufflevector <8 x double> %wide.vec136.4, <8 x double> poison, <4 x i32> %wide.vec139.4 = load <8 x double>, ptr %655, align 8, !noalias !2522 %strided.vec140.4 = shufflevector <8 x double> %wide.vec139.4, <8 x double> poison, <4 x i32> %strided.vec141.4 = shufflevector <8 x double> %wide.vec139.4, <8 x double> poison, <4 x i32> %656 = fadd <4 x double> %strided.vec137.4, %strided.vec140.4 %657 = fadd <4 x double> %strided.vec138.4, %strided.vec141.4 %658 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 272 %interleaved.vec142.4 = shufflevector <4 x double> %656, <4 x double> %657, <8 x i32> store <8 x double> %interleaved.vec142.4, ptr %658, align 8, !noalias !2522 %659 = fsub <4 x double> %strided.vec137.4, %strided.vec140.4 %660 = fsub <4 x double> %strided.vec138.4, %strided.vec141.4 %661 = fmul <4 x double> %660, %broadcast.splat144 %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %659, <4 x double> %661) %663 = fmul <4 x double> %broadcast.splat148, %659 %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %660, <4 x double> %663) %665 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 304 %interleaved.vec149.4 = shufflevector <4 x double> %662, <4 x double> %664, <8 x i32> store <8 x double> %interleaved.vec149.4, ptr %665, align 8, !noalias !2522 %666 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 148 %667 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 404 %wide.vec136.5 = load <8 x double>, ptr %666, align 8, !noalias !2522 %strided.vec137.5 = shufflevector <8 x double> %wide.vec136.5, <8 x double> poison, <4 x i32> %strided.vec138.5 = shufflevector <8 x double> %wide.vec136.5, <8 x double> poison, <4 x i32> %wide.vec139.5 = load <8 x double>, ptr %667, align 8, !noalias !2522 %strided.vec140.5 = shufflevector <8 x double> %wide.vec139.5, <8 x double> poison, <4 x i32> %strided.vec141.5 = shufflevector <8 x double> %wide.vec139.5, <8 x double> poison, <4 x i32> %668 = fadd <4 x double> %strided.vec137.5, %strided.vec140.5 %669 = fadd <4 x double> %strided.vec138.5, %strided.vec141.5 %670 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 276 %interleaved.vec142.5 = shufflevector <4 x double> %668, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec142.5, ptr %670, align 8, !noalias !2522 %671 = fsub <4 x double> %strided.vec137.5, %strided.vec140.5 %672 = fsub <4 x double> %strided.vec138.5, %strided.vec141.5 %673 = fmul <4 x double> %672, %broadcast.splat144 %674 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %671, <4 x double> %673) %675 = fmul <4 x double> %broadcast.splat148, %671 %676 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %672, <4 x double> %675) %677 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 308 %interleaved.vec149.5 = shufflevector <4 x double> %674, <4 x double> %676, <8 x i32> store <8 x double> %interleaved.vec149.5, ptr %677, align 8, !noalias !2522 %678 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 152 %679 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 408 %wide.vec136.6 = load <8 x double>, ptr %678, align 8, !noalias !2522 %strided.vec137.6 = shufflevector <8 x double> %wide.vec136.6, <8 x double> poison, <4 x i32> %strided.vec138.6 = shufflevector <8 x double> %wide.vec136.6, <8 x double> poison, <4 x i32> %wide.vec139.6 = load <8 x double>, ptr %679, align 8, !noalias !2522 %strided.vec140.6 = shufflevector <8 x double> %wide.vec139.6, <8 x double> poison, <4 x i32> %strided.vec141.6 = shufflevector <8 x double> %wide.vec139.6, <8 x double> poison, <4 x i32> %680 = fadd <4 x double> %strided.vec137.6, %strided.vec140.6 %681 = fadd <4 x double> %strided.vec138.6, %strided.vec141.6 %682 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 280 %interleaved.vec142.6 = shufflevector <4 x double> %680, <4 x double> %681, <8 x i32> store <8 x double> %interleaved.vec142.6, ptr %682, align 8, !noalias !2522 %683 = fsub <4 x double> %strided.vec137.6, %strided.vec140.6 %684 = fsub <4 x double> %strided.vec138.6, %strided.vec141.6 %685 = fmul <4 x double> %684, %broadcast.splat144 %686 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %683, <4 x double> %685) %687 = fmul <4 x double> %broadcast.splat148, %683 %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %684, <4 x double> %687) %689 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 312 %interleaved.vec149.6 = shufflevector <4 x double> %686, <4 x double> %688, <8 x i32> store <8 x double> %interleaved.vec149.6, ptr %689, align 8, !noalias !2522 %690 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 156 %691 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 412 %wide.vec136.7 = load <8 x double>, ptr %690, align 8, !noalias !2522 %strided.vec137.7 = shufflevector <8 x double> %wide.vec136.7, <8 x double> poison, <4 x i32> %strided.vec138.7 = shufflevector <8 x double> %wide.vec136.7, <8 x double> poison, <4 x i32> %wide.vec139.7 = load <8 x double>, ptr %691, align 8, !noalias !2522 %strided.vec140.7 = shufflevector <8 x double> %wide.vec139.7, <8 x double> poison, <4 x i32> %strided.vec141.7 = shufflevector <8 x double> %wide.vec139.7, <8 x double> poison, <4 x i32> %692 = fadd <4 x double> %strided.vec137.7, %strided.vec140.7 %693 = fadd <4 x double> %strided.vec138.7, %strided.vec141.7 %694 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 284 %interleaved.vec142.7 = shufflevector <4 x double> %692, <4 x double> %693, <8 x i32> store <8 x double> %interleaved.vec142.7, ptr %694, align 8, !noalias !2522 %695 = fsub <4 x double> %strided.vec137.7, %strided.vec140.7 %696 = fsub <4 x double> %strided.vec138.7, %strided.vec141.7 %697 = fmul <4 x double> %696, %broadcast.splat144 %698 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %695, <4 x double> %697) %699 = fmul <4 x double> %broadcast.splat148, %695 %700 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %696, <4 x double> %699) %701 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 316 %interleaved.vec149.7 = shufflevector <4 x double> %698, <4 x double> %700, <8 x i32> store <8 x double> %interleaved.vec149.7, ptr %701, align 8, !noalias !2522 %702 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 160, i64 1, i32 1 %w1.1.i.i.i.i.5 = load double, ptr %702, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert168 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.5, i64 0 %broadcast.splat169 = shufflevector <4 x double> %broadcast.splatinsert168, <4 x double> poison, <4 x i32> zeroinitializer %703 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 160, i64 1 %w1.0.i.i.i.i.5 = load double, ptr %703, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert166 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.5, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.5 = fneg double %w1.1.i.i.i.i.5 %broadcast.splatinsert164 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.5, i64 0 %broadcast.splat165 = shufflevector <4 x double> %broadcast.splatinsert164, <4 x double> poison, <4 x i32> zeroinitializer %704 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 352 %data.i.i.i.i.i.i1031.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %data.i5.i.i.i.i.i.i.i1027.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 416 %data.i.i.i.i.i.i.i.i1022.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %wide.vec157 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.5, align 8, !noalias !2522 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.5, align 8, !noalias !2522 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %705 = fadd <4 x double> %strided.vec158, %strided.vec161 %706 = fadd <4 x double> %strided.vec159, %strided.vec162 %interleaved.vec163 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec163, ptr %data.i.i.i.i.i.i1031.5, align 8, !noalias !2522 %707 = fsub <4 x double> %strided.vec158, %strided.vec161 %708 = fsub <4 x double> %strided.vec159, %strided.vec162 %709 = fmul <4 x double> %708, %broadcast.splat165 %710 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %707, <4 x double> %709) %711 = fmul <4 x double> %broadcast.splat169, %707 %712 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %708, <4 x double> %711) %interleaved.vec170 = shufflevector <4 x double> %710, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec170, ptr %704, align 8, !noalias !2522 %713 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 164 %714 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 420 %wide.vec157.1 = load <8 x double>, ptr %713, align 8, !noalias !2522 %strided.vec158.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %strided.vec159.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %wide.vec160.1 = load <8 x double>, ptr %714, align 8, !noalias !2522 %strided.vec161.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %strided.vec162.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %715 = fadd <4 x double> %strided.vec158.1, %strided.vec161.1 %716 = fadd <4 x double> %strided.vec159.1, %strided.vec162.1 %717 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 324 %interleaved.vec163.1 = shufflevector <4 x double> %715, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec163.1, ptr %717, align 8, !noalias !2522 %718 = fsub <4 x double> %strided.vec158.1, %strided.vec161.1 %719 = fsub <4 x double> %strided.vec159.1, %strided.vec162.1 %720 = fmul <4 x double> %719, %broadcast.splat165 %721 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %718, <4 x double> %720) %722 = fmul <4 x double> %broadcast.splat169, %718 %723 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %719, <4 x double> %722) %724 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 356 %interleaved.vec170.1 = shufflevector <4 x double> %721, <4 x double> %723, <8 x i32> store <8 x double> %interleaved.vec170.1, ptr %724, align 8, !noalias !2522 %725 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 168 %726 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 424 %wide.vec157.2 = load <8 x double>, ptr %725, align 8, !noalias !2522 %strided.vec158.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %strided.vec159.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %wide.vec160.2 = load <8 x double>, ptr %726, align 8, !noalias !2522 %strided.vec161.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %strided.vec162.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %727 = fadd <4 x double> %strided.vec158.2, %strided.vec161.2 %728 = fadd <4 x double> %strided.vec159.2, %strided.vec162.2 %729 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 328 %interleaved.vec163.2 = shufflevector <4 x double> %727, <4 x double> %728, <8 x i32> store <8 x double> %interleaved.vec163.2, ptr %729, align 8, !noalias !2522 %730 = fsub <4 x double> %strided.vec158.2, %strided.vec161.2 %731 = fsub <4 x double> %strided.vec159.2, %strided.vec162.2 %732 = fmul <4 x double> %731, %broadcast.splat165 %733 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %730, <4 x double> %732) %734 = fmul <4 x double> %broadcast.splat169, %730 %735 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %731, <4 x double> %734) %736 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 360 %interleaved.vec170.2 = shufflevector <4 x double> %733, <4 x double> %735, <8 x i32> store <8 x double> %interleaved.vec170.2, ptr %736, align 8, !noalias !2522 %737 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 172 %738 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 428 %wide.vec157.3 = load <8 x double>, ptr %737, align 8, !noalias !2522 %strided.vec158.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %strided.vec159.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %wide.vec160.3 = load <8 x double>, ptr %738, align 8, !noalias !2522 %strided.vec161.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %strided.vec162.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %739 = fadd <4 x double> %strided.vec158.3, %strided.vec161.3 %740 = fadd <4 x double> %strided.vec159.3, %strided.vec162.3 %741 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 332 %interleaved.vec163.3 = shufflevector <4 x double> %739, <4 x double> %740, <8 x i32> store <8 x double> %interleaved.vec163.3, ptr %741, align 8, !noalias !2522 %742 = fsub <4 x double> %strided.vec158.3, %strided.vec161.3 %743 = fsub <4 x double> %strided.vec159.3, %strided.vec162.3 %744 = fmul <4 x double> %743, %broadcast.splat165 %745 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %742, <4 x double> %744) %746 = fmul <4 x double> %broadcast.splat169, %742 %747 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %743, <4 x double> %746) %748 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 364 %interleaved.vec170.3 = shufflevector <4 x double> %745, <4 x double> %747, <8 x i32> store <8 x double> %interleaved.vec170.3, ptr %748, align 8, !noalias !2522 %749 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %750 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 432 %wide.vec157.4 = load <8 x double>, ptr %749, align 8, !noalias !2522 %strided.vec158.4 = shufflevector <8 x double> %wide.vec157.4, <8 x double> poison, <4 x i32> %strided.vec159.4 = shufflevector <8 x double> %wide.vec157.4, <8 x double> poison, <4 x i32> %wide.vec160.4 = load <8 x double>, ptr %750, align 8, !noalias !2522 %strided.vec161.4 = shufflevector <8 x double> %wide.vec160.4, <8 x double> poison, <4 x i32> %strided.vec162.4 = shufflevector <8 x double> %wide.vec160.4, <8 x double> poison, <4 x i32> %751 = fadd <4 x double> %strided.vec158.4, %strided.vec161.4 %752 = fadd <4 x double> %strided.vec159.4, %strided.vec162.4 %753 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 336 %interleaved.vec163.4 = shufflevector <4 x double> %751, <4 x double> %752, <8 x i32> store <8 x double> %interleaved.vec163.4, ptr %753, align 8, !noalias !2522 %754 = fsub <4 x double> %strided.vec158.4, %strided.vec161.4 %755 = fsub <4 x double> %strided.vec159.4, %strided.vec162.4 %756 = fmul <4 x double> %755, %broadcast.splat165 %757 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %754, <4 x double> %756) %758 = fmul <4 x double> %broadcast.splat169, %754 %759 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %755, <4 x double> %758) %760 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 368 %interleaved.vec170.4 = shufflevector <4 x double> %757, <4 x double> %759, <8 x i32> store <8 x double> %interleaved.vec170.4, ptr %760, align 8, !noalias !2522 %761 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 180 %762 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 436 %wide.vec157.5 = load <8 x double>, ptr %761, align 8, !noalias !2522 %strided.vec158.5 = shufflevector <8 x double> %wide.vec157.5, <8 x double> poison, <4 x i32> %strided.vec159.5 = shufflevector <8 x double> %wide.vec157.5, <8 x double> poison, <4 x i32> %wide.vec160.5 = load <8 x double>, ptr %762, align 8, !noalias !2522 %strided.vec161.5 = shufflevector <8 x double> %wide.vec160.5, <8 x double> poison, <4 x i32> %strided.vec162.5 = shufflevector <8 x double> %wide.vec160.5, <8 x double> poison, <4 x i32> %763 = fadd <4 x double> %strided.vec158.5, %strided.vec161.5 %764 = fadd <4 x double> %strided.vec159.5, %strided.vec162.5 %765 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 340 %interleaved.vec163.5 = shufflevector <4 x double> %763, <4 x double> %764, <8 x i32> store <8 x double> %interleaved.vec163.5, ptr %765, align 8, !noalias !2522 %766 = fsub <4 x double> %strided.vec158.5, %strided.vec161.5 %767 = fsub <4 x double> %strided.vec159.5, %strided.vec162.5 %768 = fmul <4 x double> %767, %broadcast.splat165 %769 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %766, <4 x double> %768) %770 = fmul <4 x double> %broadcast.splat169, %766 %771 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %767, <4 x double> %770) %772 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 372 %interleaved.vec170.5 = shufflevector <4 x double> %769, <4 x double> %771, <8 x i32> store <8 x double> %interleaved.vec170.5, ptr %772, align 8, !noalias !2522 %773 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 184 %774 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 440 %wide.vec157.6 = load <8 x double>, ptr %773, align 8, !noalias !2522 %strided.vec158.6 = shufflevector <8 x double> %wide.vec157.6, <8 x double> poison, <4 x i32> %strided.vec159.6 = shufflevector <8 x double> %wide.vec157.6, <8 x double> poison, <4 x i32> %wide.vec160.6 = load <8 x double>, ptr %774, align 8, !noalias !2522 %strided.vec161.6 = shufflevector <8 x double> %wide.vec160.6, <8 x double> poison, <4 x i32> %strided.vec162.6 = shufflevector <8 x double> %wide.vec160.6, <8 x double> poison, <4 x i32> %775 = fadd <4 x double> %strided.vec158.6, %strided.vec161.6 %776 = fadd <4 x double> %strided.vec159.6, %strided.vec162.6 %777 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 344 %interleaved.vec163.6 = shufflevector <4 x double> %775, <4 x double> %776, <8 x i32> store <8 x double> %interleaved.vec163.6, ptr %777, align 8, !noalias !2522 %778 = fsub <4 x double> %strided.vec158.6, %strided.vec161.6 %779 = fsub <4 x double> %strided.vec159.6, %strided.vec162.6 %780 = fmul <4 x double> %779, %broadcast.splat165 %781 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %778, <4 x double> %780) %782 = fmul <4 x double> %broadcast.splat169, %778 %783 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %779, <4 x double> %782) %784 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 376 %interleaved.vec170.6 = shufflevector <4 x double> %781, <4 x double> %783, <8 x i32> store <8 x double> %interleaved.vec170.6, ptr %784, align 8, !noalias !2522 %785 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 188 %786 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 444 %wide.vec157.7 = load <8 x double>, ptr %785, align 8, !noalias !2522 %strided.vec158.7 = shufflevector <8 x double> %wide.vec157.7, <8 x double> poison, <4 x i32> %strided.vec159.7 = shufflevector <8 x double> %wide.vec157.7, <8 x double> poison, <4 x i32> %wide.vec160.7 = load <8 x double>, ptr %786, align 8, !noalias !2522 %strided.vec161.7 = shufflevector <8 x double> %wide.vec160.7, <8 x double> poison, <4 x i32> %strided.vec162.7 = shufflevector <8 x double> %wide.vec160.7, <8 x double> poison, <4 x i32> %787 = fadd <4 x double> %strided.vec158.7, %strided.vec161.7 %788 = fadd <4 x double> %strided.vec159.7, %strided.vec162.7 %789 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 348 %interleaved.vec163.7 = shufflevector <4 x double> %787, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec163.7, ptr %789, align 8, !noalias !2522 %790 = fsub <4 x double> %strided.vec158.7, %strided.vec161.7 %791 = fsub <4 x double> %strided.vec159.7, %strided.vec162.7 %792 = fmul <4 x double> %791, %broadcast.splat165 %793 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %790, <4 x double> %792) %794 = fmul <4 x double> %broadcast.splat169, %790 %795 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %791, <4 x double> %794) %796 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380 %interleaved.vec170.7 = shufflevector <4 x double> %793, <4 x double> %795, <8 x i32> store <8 x double> %interleaved.vec170.7, ptr %796, align 8, !noalias !2522 %797 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.i.i.i.i.6 = load double, ptr %797, align 8, !noalias !2512, !noundef !3 %798 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.i.i.i.i.6 = load double, ptr %798, align 8, !noalias !2512, !noundef !3 %_6.i.i.i.i.i.6 = fneg double %w1.1.i.i.i.i.6 %broadcast.splatinsert189 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.6, i64 0 %broadcast.splat190 = shufflevector <4 x double> %broadcast.splatinsert189, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert187 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.6, i64 0 %broadcast.splat188 = shufflevector <4 x double> %broadcast.splatinsert187, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert185 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.6, i64 0 %broadcast.splat186 = shufflevector <4 x double> %broadcast.splatinsert185, <4 x double> poison, <4 x i32> zeroinitializer %799 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 416 %data.i.i.i.i.i.i1031.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %data.i5.i.i.i.i.i.i.i1027.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %data.i.i.i.i.i.i.i.i1022.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %wide.vec178 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.6, align 8, !noalias !2522 %strided.vec179 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %strided.vec180 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %wide.vec181 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.6, align 8, !noalias !2522 %strided.vec182 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %strided.vec183 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %800 = fadd <4 x double> %strided.vec179, %strided.vec182 %801 = fadd <4 x double> %strided.vec180, %strided.vec183 %interleaved.vec184 = shufflevector <4 x double> %800, <4 x double> %801, <8 x i32> store <8 x double> %interleaved.vec184, ptr %data.i.i.i.i.i.i1031.6, align 8, !noalias !2522 %802 = fsub <4 x double> %strided.vec179, %strided.vec182 %803 = fsub <4 x double> %strided.vec180, %strided.vec183 %804 = fmul <4 x double> %803, %broadcast.splat186 %805 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %802, <4 x double> %804) %806 = fmul <4 x double> %broadcast.splat190, %802 %807 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %803, <4 x double> %806) %interleaved.vec191 = shufflevector <4 x double> %805, <4 x double> %807, <8 x i32> store <8 x double> %interleaved.vec191, ptr %799, align 8, !noalias !2522 %808 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 196 %809 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 452 %wide.vec178.1 = load <8 x double>, ptr %808, align 8, !noalias !2522 %strided.vec179.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %strided.vec180.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %wide.vec181.1 = load <8 x double>, ptr %809, align 8, !noalias !2522 %strided.vec182.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %strided.vec183.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %810 = fadd <4 x double> %strided.vec179.1, %strided.vec182.1 %811 = fadd <4 x double> %strided.vec180.1, %strided.vec183.1 %812 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 388 %interleaved.vec184.1 = shufflevector <4 x double> %810, <4 x double> %811, <8 x i32> store <8 x double> %interleaved.vec184.1, ptr %812, align 8, !noalias !2522 %813 = fsub <4 x double> %strided.vec179.1, %strided.vec182.1 %814 = fsub <4 x double> %strided.vec180.1, %strided.vec183.1 %815 = fmul <4 x double> %814, %broadcast.splat186 %816 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %813, <4 x double> %815) %817 = fmul <4 x double> %broadcast.splat190, %813 %818 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %814, <4 x double> %817) %819 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 420 %interleaved.vec191.1 = shufflevector <4 x double> %816, <4 x double> %818, <8 x i32> store <8 x double> %interleaved.vec191.1, ptr %819, align 8, !noalias !2522 %820 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 200 %821 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 456 %wide.vec178.2 = load <8 x double>, ptr %820, align 8, !noalias !2522 %strided.vec179.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %strided.vec180.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %wide.vec181.2 = load <8 x double>, ptr %821, align 8, !noalias !2522 %strided.vec182.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %strided.vec183.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %822 = fadd <4 x double> %strided.vec179.2, %strided.vec182.2 %823 = fadd <4 x double> %strided.vec180.2, %strided.vec183.2 %824 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 392 %interleaved.vec184.2 = shufflevector <4 x double> %822, <4 x double> %823, <8 x i32> store <8 x double> %interleaved.vec184.2, ptr %824, align 8, !noalias !2522 %825 = fsub <4 x double> %strided.vec179.2, %strided.vec182.2 %826 = fsub <4 x double> %strided.vec180.2, %strided.vec183.2 %827 = fmul <4 x double> %826, %broadcast.splat186 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %825, <4 x double> %827) %829 = fmul <4 x double> %broadcast.splat190, %825 %830 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %826, <4 x double> %829) %831 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 424 %interleaved.vec191.2 = shufflevector <4 x double> %828, <4 x double> %830, <8 x i32> store <8 x double> %interleaved.vec191.2, ptr %831, align 8, !noalias !2522 %832 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 204 %833 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 460 %wide.vec178.3 = load <8 x double>, ptr %832, align 8, !noalias !2522 %strided.vec179.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %strided.vec180.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %wide.vec181.3 = load <8 x double>, ptr %833, align 8, !noalias !2522 %strided.vec182.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %strided.vec183.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %834 = fadd <4 x double> %strided.vec179.3, %strided.vec182.3 %835 = fadd <4 x double> %strided.vec180.3, %strided.vec183.3 %836 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 396 %interleaved.vec184.3 = shufflevector <4 x double> %834, <4 x double> %835, <8 x i32> store <8 x double> %interleaved.vec184.3, ptr %836, align 8, !noalias !2522 %837 = fsub <4 x double> %strided.vec179.3, %strided.vec182.3 %838 = fsub <4 x double> %strided.vec180.3, %strided.vec183.3 %839 = fmul <4 x double> %838, %broadcast.splat186 %840 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %837, <4 x double> %839) %841 = fmul <4 x double> %broadcast.splat190, %837 %842 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %838, <4 x double> %841) %843 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 428 %interleaved.vec191.3 = shufflevector <4 x double> %840, <4 x double> %842, <8 x i32> store <8 x double> %interleaved.vec191.3, ptr %843, align 8, !noalias !2522 %844 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %845 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 464 %wide.vec178.4 = load <8 x double>, ptr %844, align 8, !noalias !2522 %strided.vec179.4 = shufflevector <8 x double> %wide.vec178.4, <8 x double> poison, <4 x i32> %strided.vec180.4 = shufflevector <8 x double> %wide.vec178.4, <8 x double> poison, <4 x i32> %wide.vec181.4 = load <8 x double>, ptr %845, align 8, !noalias !2522 %strided.vec182.4 = shufflevector <8 x double> %wide.vec181.4, <8 x double> poison, <4 x i32> %strided.vec183.4 = shufflevector <8 x double> %wide.vec181.4, <8 x double> poison, <4 x i32> %846 = fadd <4 x double> %strided.vec179.4, %strided.vec182.4 %847 = fadd <4 x double> %strided.vec180.4, %strided.vec183.4 %848 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 400 %interleaved.vec184.4 = shufflevector <4 x double> %846, <4 x double> %847, <8 x i32> store <8 x double> %interleaved.vec184.4, ptr %848, align 8, !noalias !2522 %849 = fsub <4 x double> %strided.vec179.4, %strided.vec182.4 %850 = fsub <4 x double> %strided.vec180.4, %strided.vec183.4 %851 = fmul <4 x double> %850, %broadcast.splat186 %852 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %849, <4 x double> %851) %853 = fmul <4 x double> %broadcast.splat190, %849 %854 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %850, <4 x double> %853) %855 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 432 %interleaved.vec191.4 = shufflevector <4 x double> %852, <4 x double> %854, <8 x i32> store <8 x double> %interleaved.vec191.4, ptr %855, align 8, !noalias !2522 %856 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 212 %857 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 468 %wide.vec178.5 = load <8 x double>, ptr %856, align 8, !noalias !2522 %strided.vec179.5 = shufflevector <8 x double> %wide.vec178.5, <8 x double> poison, <4 x i32> %strided.vec180.5 = shufflevector <8 x double> %wide.vec178.5, <8 x double> poison, <4 x i32> %wide.vec181.5 = load <8 x double>, ptr %857, align 8, !noalias !2522 %strided.vec182.5 = shufflevector <8 x double> %wide.vec181.5, <8 x double> poison, <4 x i32> %strided.vec183.5 = shufflevector <8 x double> %wide.vec181.5, <8 x double> poison, <4 x i32> %858 = fadd <4 x double> %strided.vec179.5, %strided.vec182.5 %859 = fadd <4 x double> %strided.vec180.5, %strided.vec183.5 %860 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 404 %interleaved.vec184.5 = shufflevector <4 x double> %858, <4 x double> %859, <8 x i32> store <8 x double> %interleaved.vec184.5, ptr %860, align 8, !noalias !2522 %861 = fsub <4 x double> %strided.vec179.5, %strided.vec182.5 %862 = fsub <4 x double> %strided.vec180.5, %strided.vec183.5 %863 = fmul <4 x double> %862, %broadcast.splat186 %864 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %861, <4 x double> %863) %865 = fmul <4 x double> %broadcast.splat190, %861 %866 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %862, <4 x double> %865) %867 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 436 %interleaved.vec191.5 = shufflevector <4 x double> %864, <4 x double> %866, <8 x i32> store <8 x double> %interleaved.vec191.5, ptr %867, align 8, !noalias !2522 %868 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 216 %869 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 472 %wide.vec178.6 = load <8 x double>, ptr %868, align 8, !noalias !2522 %strided.vec179.6 = shufflevector <8 x double> %wide.vec178.6, <8 x double> poison, <4 x i32> %strided.vec180.6 = shufflevector <8 x double> %wide.vec178.6, <8 x double> poison, <4 x i32> %wide.vec181.6 = load <8 x double>, ptr %869, align 8, !noalias !2522 %strided.vec182.6 = shufflevector <8 x double> %wide.vec181.6, <8 x double> poison, <4 x i32> %strided.vec183.6 = shufflevector <8 x double> %wide.vec181.6, <8 x double> poison, <4 x i32> %870 = fadd <4 x double> %strided.vec179.6, %strided.vec182.6 %871 = fadd <4 x double> %strided.vec180.6, %strided.vec183.6 %872 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 408 %interleaved.vec184.6 = shufflevector <4 x double> %870, <4 x double> %871, <8 x i32> store <8 x double> %interleaved.vec184.6, ptr %872, align 8, !noalias !2522 %873 = fsub <4 x double> %strided.vec179.6, %strided.vec182.6 %874 = fsub <4 x double> %strided.vec180.6, %strided.vec183.6 %875 = fmul <4 x double> %874, %broadcast.splat186 %876 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %873, <4 x double> %875) %877 = fmul <4 x double> %broadcast.splat190, %873 %878 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %874, <4 x double> %877) %879 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 440 %interleaved.vec191.6 = shufflevector <4 x double> %876, <4 x double> %878, <8 x i32> store <8 x double> %interleaved.vec191.6, ptr %879, align 8, !noalias !2522 %880 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 220 %881 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 476 %wide.vec178.7 = load <8 x double>, ptr %880, align 8, !noalias !2522 %strided.vec179.7 = shufflevector <8 x double> %wide.vec178.7, <8 x double> poison, <4 x i32> %strided.vec180.7 = shufflevector <8 x double> %wide.vec178.7, <8 x double> poison, <4 x i32> %wide.vec181.7 = load <8 x double>, ptr %881, align 8, !noalias !2522 %strided.vec182.7 = shufflevector <8 x double> %wide.vec181.7, <8 x double> poison, <4 x i32> %strided.vec183.7 = shufflevector <8 x double> %wide.vec181.7, <8 x double> poison, <4 x i32> %882 = fadd <4 x double> %strided.vec179.7, %strided.vec182.7 %883 = fadd <4 x double> %strided.vec180.7, %strided.vec183.7 %884 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 412 %interleaved.vec184.7 = shufflevector <4 x double> %882, <4 x double> %883, <8 x i32> store <8 x double> %interleaved.vec184.7, ptr %884, align 8, !noalias !2522 %885 = fsub <4 x double> %strided.vec179.7, %strided.vec182.7 %886 = fsub <4 x double> %strided.vec180.7, %strided.vec183.7 %887 = fmul <4 x double> %886, %broadcast.splat186 %888 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %885, <4 x double> %887) %889 = fmul <4 x double> %broadcast.splat190, %885 %890 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %886, <4 x double> %889) %891 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 444 %interleaved.vec191.7 = shufflevector <4 x double> %888, <4 x double> %890, <8 x i32> store <8 x double> %interleaved.vec191.7, ptr %891, align 8, !noalias !2522 %892 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 224, i64 1, i32 1 %w1.1.i.i.i.i.7 = load double, ptr %892, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert210 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.7, i64 0 %broadcast.splat211 = shufflevector <4 x double> %broadcast.splatinsert210, <4 x double> poison, <4 x i32> zeroinitializer %893 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 224, i64 1 %w1.0.i.i.i.i.7 = load double, ptr %893, align 8, !noalias !2522, !noundef !3 %broadcast.splatinsert208 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.7, i64 0 %broadcast.splat209 = shufflevector <4 x double> %broadcast.splatinsert208, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.7 = fneg double %w1.1.i.i.i.i.7 %broadcast.splatinsert206 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.7, i64 0 %broadcast.splat207 = shufflevector <4 x double> %broadcast.splatinsert206, <4 x double> poison, <4 x i32> zeroinitializer %894 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 480 %data.i.i.i.i.i.i1031.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %data.i5.i.i.i.i.i.i.i1027.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 480 %data.i.i.i.i.i.i.i.i1022.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %wide.vec199 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1022.7, align 8, !noalias !2522 %strided.vec200 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %strided.vec201 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %wide.vec202 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1027.7, align 8, !noalias !2522 %strided.vec203 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %strided.vec204 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %895 = fadd <4 x double> %strided.vec200, %strided.vec203 %896 = fadd <4 x double> %strided.vec201, %strided.vec204 %interleaved.vec205 = shufflevector <4 x double> %895, <4 x double> %896, <8 x i32> store <8 x double> %interleaved.vec205, ptr %data.i.i.i.i.i.i1031.7, align 8, !noalias !2522 %897 = fsub <4 x double> %strided.vec200, %strided.vec203 %898 = fsub <4 x double> %strided.vec201, %strided.vec204 %899 = fmul <4 x double> %898, %broadcast.splat207 %900 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %897, <4 x double> %899) %901 = fmul <4 x double> %broadcast.splat211, %897 %902 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %898, <4 x double> %901) %interleaved.vec212 = shufflevector <4 x double> %900, <4 x double> %902, <8 x i32> store <8 x double> %interleaved.vec212, ptr %894, align 8, !noalias !2522 %903 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 228 %904 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 484 %wide.vec199.1 = load <8 x double>, ptr %903, align 8, !noalias !2522 %strided.vec200.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %strided.vec201.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %wide.vec202.1 = load <8 x double>, ptr %904, align 8, !noalias !2522 %strided.vec203.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %strided.vec204.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %905 = fadd <4 x double> %strided.vec200.1, %strided.vec203.1 %906 = fadd <4 x double> %strided.vec201.1, %strided.vec204.1 %907 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 452 %interleaved.vec205.1 = shufflevector <4 x double> %905, <4 x double> %906, <8 x i32> store <8 x double> %interleaved.vec205.1, ptr %907, align 8, !noalias !2522 %908 = fsub <4 x double> %strided.vec200.1, %strided.vec203.1 %909 = fsub <4 x double> %strided.vec201.1, %strided.vec204.1 %910 = fmul <4 x double> %909, %broadcast.splat207 %911 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %908, <4 x double> %910) %912 = fmul <4 x double> %broadcast.splat211, %908 %913 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %909, <4 x double> %912) %914 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 484 %interleaved.vec212.1 = shufflevector <4 x double> %911, <4 x double> %913, <8 x i32> store <8 x double> %interleaved.vec212.1, ptr %914, align 8, !noalias !2522 %915 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 232 %916 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 488 %wide.vec199.2 = load <8 x double>, ptr %915, align 8, !noalias !2522 %strided.vec200.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %strided.vec201.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %wide.vec202.2 = load <8 x double>, ptr %916, align 8, !noalias !2522 %strided.vec203.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %strided.vec204.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %917 = fadd <4 x double> %strided.vec200.2, %strided.vec203.2 %918 = fadd <4 x double> %strided.vec201.2, %strided.vec204.2 %919 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 456 %interleaved.vec205.2 = shufflevector <4 x double> %917, <4 x double> %918, <8 x i32> store <8 x double> %interleaved.vec205.2, ptr %919, align 8, !noalias !2522 %920 = fsub <4 x double> %strided.vec200.2, %strided.vec203.2 %921 = fsub <4 x double> %strided.vec201.2, %strided.vec204.2 %922 = fmul <4 x double> %921, %broadcast.splat207 %923 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %920, <4 x double> %922) %924 = fmul <4 x double> %broadcast.splat211, %920 %925 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %921, <4 x double> %924) %926 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 488 %interleaved.vec212.2 = shufflevector <4 x double> %923, <4 x double> %925, <8 x i32> store <8 x double> %interleaved.vec212.2, ptr %926, align 8, !noalias !2522 %927 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 236 %928 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 492 %wide.vec199.3 = load <8 x double>, ptr %927, align 8, !noalias !2522 %strided.vec200.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %strided.vec201.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %wide.vec202.3 = load <8 x double>, ptr %928, align 8, !noalias !2522 %strided.vec203.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %strided.vec204.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %929 = fadd <4 x double> %strided.vec200.3, %strided.vec203.3 %930 = fadd <4 x double> %strided.vec201.3, %strided.vec204.3 %931 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 460 %interleaved.vec205.3 = shufflevector <4 x double> %929, <4 x double> %930, <8 x i32> store <8 x double> %interleaved.vec205.3, ptr %931, align 8, !noalias !2522 %932 = fsub <4 x double> %strided.vec200.3, %strided.vec203.3 %933 = fsub <4 x double> %strided.vec201.3, %strided.vec204.3 %934 = fmul <4 x double> %933, %broadcast.splat207 %935 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %932, <4 x double> %934) %936 = fmul <4 x double> %broadcast.splat211, %932 %937 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %933, <4 x double> %936) %938 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 492 %interleaved.vec212.3 = shufflevector <4 x double> %935, <4 x double> %937, <8 x i32> store <8 x double> %interleaved.vec212.3, ptr %938, align 8, !noalias !2522 %939 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %940 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496 %wide.vec199.4 = load <8 x double>, ptr %939, align 8, !noalias !2522 %strided.vec200.4 = shufflevector <8 x double> %wide.vec199.4, <8 x double> poison, <4 x i32> %strided.vec201.4 = shufflevector <8 x double> %wide.vec199.4, <8 x double> poison, <4 x i32> %wide.vec202.4 = load <8 x double>, ptr %940, align 8, !noalias !2522 %strided.vec203.4 = shufflevector <8 x double> %wide.vec202.4, <8 x double> poison, <4 x i32> %strided.vec204.4 = shufflevector <8 x double> %wide.vec202.4, <8 x double> poison, <4 x i32> %941 = fadd <4 x double> %strided.vec200.4, %strided.vec203.4 %942 = fadd <4 x double> %strided.vec201.4, %strided.vec204.4 %943 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 464 %interleaved.vec205.4 = shufflevector <4 x double> %941, <4 x double> %942, <8 x i32> store <8 x double> %interleaved.vec205.4, ptr %943, align 8, !noalias !2522 %944 = fsub <4 x double> %strided.vec200.4, %strided.vec203.4 %945 = fsub <4 x double> %strided.vec201.4, %strided.vec204.4 %946 = fmul <4 x double> %945, %broadcast.splat207 %947 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %944, <4 x double> %946) %948 = fmul <4 x double> %broadcast.splat211, %944 %949 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %945, <4 x double> %948) %950 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 496 %interleaved.vec212.4 = shufflevector <4 x double> %947, <4 x double> %949, <8 x i32> store <8 x double> %interleaved.vec212.4, ptr %950, align 8, !noalias !2522 %951 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %952 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500 %wide.vec199.5 = load <8 x double>, ptr %951, align 8, !noalias !2522 %strided.vec200.5 = shufflevector <8 x double> %wide.vec199.5, <8 x double> poison, <4 x i32> %strided.vec201.5 = shufflevector <8 x double> %wide.vec199.5, <8 x double> poison, <4 x i32> %wide.vec202.5 = load <8 x double>, ptr %952, align 8, !noalias !2522 %strided.vec203.5 = shufflevector <8 x double> %wide.vec202.5, <8 x double> poison, <4 x i32> %strided.vec204.5 = shufflevector <8 x double> %wide.vec202.5, <8 x double> poison, <4 x i32> %953 = fadd <4 x double> %strided.vec200.5, %strided.vec203.5 %954 = fadd <4 x double> %strided.vec201.5, %strided.vec204.5 %955 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 468 %interleaved.vec205.5 = shufflevector <4 x double> %953, <4 x double> %954, <8 x i32> store <8 x double> %interleaved.vec205.5, ptr %955, align 8, !noalias !2522 %956 = fsub <4 x double> %strided.vec200.5, %strided.vec203.5 %957 = fsub <4 x double> %strided.vec201.5, %strided.vec204.5 %958 = fmul <4 x double> %957, %broadcast.splat207 %959 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %956, <4 x double> %958) %960 = fmul <4 x double> %broadcast.splat211, %956 %961 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %957, <4 x double> %960) %962 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 500 %interleaved.vec212.5 = shufflevector <4 x double> %959, <4 x double> %961, <8 x i32> store <8 x double> %interleaved.vec212.5, ptr %962, align 8, !noalias !2522 %963 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %964 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %wide.vec199.6 = load <8 x double>, ptr %963, align 8, !noalias !2522 %strided.vec200.6 = shufflevector <8 x double> %wide.vec199.6, <8 x double> poison, <4 x i32> %strided.vec201.6 = shufflevector <8 x double> %wide.vec199.6, <8 x double> poison, <4 x i32> %wide.vec202.6 = load <8 x double>, ptr %964, align 8, !noalias !2522 %strided.vec203.6 = shufflevector <8 x double> %wide.vec202.6, <8 x double> poison, <4 x i32> %strided.vec204.6 = shufflevector <8 x double> %wide.vec202.6, <8 x double> poison, <4 x i32> %965 = fadd <4 x double> %strided.vec200.6, %strided.vec203.6 %966 = fadd <4 x double> %strided.vec201.6, %strided.vec204.6 %967 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 472 %interleaved.vec205.6 = shufflevector <4 x double> %965, <4 x double> %966, <8 x i32> store <8 x double> %interleaved.vec205.6, ptr %967, align 8, !noalias !2522 %968 = fsub <4 x double> %strided.vec200.6, %strided.vec203.6 %969 = fsub <4 x double> %strided.vec201.6, %strided.vec204.6 %970 = fmul <4 x double> %969, %broadcast.splat207 %971 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %968, <4 x double> %970) %972 = fmul <4 x double> %broadcast.splat211, %968 %973 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %969, <4 x double> %972) %974 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 504 %interleaved.vec212.6 = shufflevector <4 x double> %971, <4 x double> %973, <8 x i32> store <8 x double> %interleaved.vec212.6, ptr %974, align 8, !noalias !2522 %975 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %976 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %wide.vec199.7 = load <8 x double>, ptr %975, align 8, !noalias !2522 %strided.vec200.7 = shufflevector <8 x double> %wide.vec199.7, <8 x double> poison, <4 x i32> %strided.vec201.7 = shufflevector <8 x double> %wide.vec199.7, <8 x double> poison, <4 x i32> %wide.vec202.7 = load <8 x double>, ptr %976, align 8, !noalias !2522 %strided.vec203.7 = shufflevector <8 x double> %wide.vec202.7, <8 x double> poison, <4 x i32> %strided.vec204.7 = shufflevector <8 x double> %wide.vec202.7, <8 x double> poison, <4 x i32> %977 = fadd <4 x double> %strided.vec200.7, %strided.vec203.7 %978 = fadd <4 x double> %strided.vec201.7, %strided.vec204.7 %979 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 476 %interleaved.vec205.7 = shufflevector <4 x double> %977, <4 x double> %978, <8 x i32> store <8 x double> %interleaved.vec205.7, ptr %979, align 8, !noalias !2522 %980 = fsub <4 x double> %strided.vec200.7, %strided.vec203.7 %981 = fsub <4 x double> %strided.vec201.7, %strided.vec204.7 %982 = fmul <4 x double> %981, %broadcast.splat207 %983 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %980, <4 x double> %982) %984 = fmul <4 x double> %broadcast.splat211, %980 %985 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %981, <4 x double> %984) %986 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %interleaved.vec212.7 = shufflevector <4 x double> %983, <4 x double> %985, <8 x i32> store <8 x double> %interleaved.vec212.7, ptr %986, align 8, !noalias !2522 %broadcast.splatinsert227 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat228 = shufflevector <4 x double> %broadcast.splatinsert227, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert229 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat230 = shufflevector <4 x double> %broadcast.splatinsert229, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert231 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat232 = shufflevector <4 x double> %broadcast.splatinsert231, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body218 bb19.i.i106.i: ; preds = %bb19.i.i39.i, %bb19.i.i106.i %iter.i.i76.i.sroa.38.0167 = phi i64 [ %1034, %bb19.i.i106.i ], [ 0, %bb19.i.i39.i ] %start1.i.i.i.i.i.i.i.i848 = shl nuw nsw i64 %iter.i.i76.i.sroa.38.0167, 4 %987 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i848, i64 1, i32 1 %w1.1.i.i109.i = load double, ptr %987, align 8, !noalias !2527, !noundef !3 %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.1.i.i109.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %988 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i848, i64 1 %w1.0.i.i108.i = load double, ptr %988, align 8, !noalias !2527, !noundef !3 %broadcast.splatinsert40 = insertelement <4 x double> poison, double %w1.0.i.i108.i, i64 0 %broadcast.splat41 = shufflevector <4 x double> %broadcast.splatinsert40, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i129.i = fneg double %w1.1.i.i109.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i129.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i857 = shl nuw nsw i64 %iter.i.i76.i.sroa.38.0167, 5 %data.i.i.i.i.i.i858 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i857 %989 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 16 %data.i5.i.i.i.i.i.i.i854 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i848 %data.i.i.i.i.i.i.i.i849 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i848 %wide.vec33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i849, align 8, !noalias !2527 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %wide.vec36 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i854, align 8, !noalias !2527 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %990 = fadd <4 x double> %strided.vec34, %strided.vec37 %991 = fadd <4 x double> %strided.vec35, %strided.vec38 %interleaved.vec39 = shufflevector <4 x double> %990, <4 x double> %991, <8 x i32> store <8 x double> %interleaved.vec39, ptr %data.i.i.i.i.i.i858, align 8, !noalias !2527 %992 = fsub <4 x double> %strided.vec34, %strided.vec37 %993 = fsub <4 x double> %strided.vec35, %strided.vec38 %994 = fmul <4 x double> %993, %broadcast.splat %995 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %992, <4 x double> %994) %996 = fmul <4 x double> %broadcast.splat43, %992 %997 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %993, <4 x double> %996) %interleaved.vec44 = shufflevector <4 x double> %995, <4 x double> %997, <8 x i32> store <8 x double> %interleaved.vec44, ptr %989, align 8, !noalias !2527 %998 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i849, i64 4 %999 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i854, i64 4 %wide.vec33.1 = load <8 x double>, ptr %998, align 8, !noalias !2527 %strided.vec34.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %wide.vec36.1 = load <8 x double>, ptr %999, align 8, !noalias !2527 %strided.vec37.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %strided.vec38.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %1000 = fadd <4 x double> %strided.vec34.1, %strided.vec37.1 %1001 = fadd <4 x double> %strided.vec35.1, %strided.vec38.1 %1002 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 4 %interleaved.vec39.1 = shufflevector <4 x double> %1000, <4 x double> %1001, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %1002, align 8, !noalias !2527 %1003 = fsub <4 x double> %strided.vec34.1, %strided.vec37.1 %1004 = fsub <4 x double> %strided.vec35.1, %strided.vec38.1 %1005 = fmul <4 x double> %1004, %broadcast.splat %1006 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %1003, <4 x double> %1005) %1007 = fmul <4 x double> %broadcast.splat43, %1003 %1008 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %1004, <4 x double> %1007) %1009 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 20 %interleaved.vec44.1 = shufflevector <4 x double> %1006, <4 x double> %1008, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %1009, align 8, !noalias !2527 %1010 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i849, i64 8 %1011 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i854, i64 8 %wide.vec33.2 = load <8 x double>, ptr %1010, align 8, !noalias !2527 %strided.vec34.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %wide.vec36.2 = load <8 x double>, ptr %1011, align 8, !noalias !2527 %strided.vec37.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %strided.vec38.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %1012 = fadd <4 x double> %strided.vec34.2, %strided.vec37.2 %1013 = fadd <4 x double> %strided.vec35.2, %strided.vec38.2 %1014 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 8 %interleaved.vec39.2 = shufflevector <4 x double> %1012, <4 x double> %1013, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %1014, align 8, !noalias !2527 %1015 = fsub <4 x double> %strided.vec34.2, %strided.vec37.2 %1016 = fsub <4 x double> %strided.vec35.2, %strided.vec38.2 %1017 = fmul <4 x double> %1016, %broadcast.splat %1018 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %1015, <4 x double> %1017) %1019 = fmul <4 x double> %broadcast.splat43, %1015 %1020 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %1016, <4 x double> %1019) %1021 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 24 %interleaved.vec44.2 = shufflevector <4 x double> %1018, <4 x double> %1020, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %1021, align 8, !noalias !2527 %1022 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i849, i64 12 %1023 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i854, i64 12 %wide.vec33.3 = load <8 x double>, ptr %1022, align 8, !noalias !2527 %strided.vec34.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %strided.vec35.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %wide.vec36.3 = load <8 x double>, ptr %1023, align 8, !noalias !2527 %strided.vec37.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %strided.vec38.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %1024 = fadd <4 x double> %strided.vec34.3, %strided.vec37.3 %1025 = fadd <4 x double> %strided.vec35.3, %strided.vec38.3 %1026 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 12 %interleaved.vec39.3 = shufflevector <4 x double> %1024, <4 x double> %1025, <8 x i32> store <8 x double> %interleaved.vec39.3, ptr %1026, align 8, !noalias !2527 %1027 = fsub <4 x double> %strided.vec34.3, %strided.vec37.3 %1028 = fsub <4 x double> %strided.vec35.3, %strided.vec38.3 %1029 = fmul <4 x double> %1028, %broadcast.splat %1030 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %1027, <4 x double> %1029) %1031 = fmul <4 x double> %broadcast.splat43, %1027 %1032 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %1028, <4 x double> %1031) %1033 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i858, i64 28 %interleaved.vec44.3 = shufflevector <4 x double> %1030, <4 x double> %1032, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %1033, align 8, !noalias !2527 %1034 = add nuw nsw i64 %iter.i.i76.i.sroa.38.0167, 1 %exitcond182.not = icmp eq i64 %1034, 16 br i1 %exitcond182.not, label %bb19.i.i.i.i.preheader, label %bb19.i.i106.i vector.body218: ; preds = %vector.body218, %bb19.i.i.i.i.preheader %index219 = phi i64 [ 0, %bb19.i.i.i.i.preheader ], [ %index.next234, %vector.body218 ] %1035 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index219 %1036 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index219 %wide.vec220 = load <8 x double>, ptr %1035, align 8, !noalias !2528 %strided.vec221 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %strided.vec222 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %wide.vec223 = load <8 x double>, ptr %1036, align 8, !noalias !2528 %strided.vec224 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %strided.vec225 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %1037 = fadd <4 x double> %strided.vec221, %strided.vec224 %1038 = fadd <4 x double> %strided.vec222, %strided.vec225 %1039 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index219 %interleaved.vec226 = shufflevector <4 x double> %1037, <4 x double> %1038, <8 x i32> store <8 x double> %interleaved.vec226, ptr %1039, align 8, !noalias !2528 %1040 = fsub <4 x double> %strided.vec221, %strided.vec224 %1041 = fsub <4 x double> %strided.vec222, %strided.vec225 %1042 = fmul <4 x double> %1041, %broadcast.splat228 %1043 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %1040, <4 x double> %1042) %1044 = fmul <4 x double> %broadcast.splat232, %1040 %1045 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %1041, <4 x double> %1044) %1046 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1022.2, i64 %index219 %interleaved.vec233 = shufflevector <4 x double> %1043, <4 x double> %1045, <8 x i32> store <8 x double> %interleaved.vec233, ptr %1046, align 8, !noalias !2528 %index.next234 = add nuw i64 %index219, 4 %1047 = icmp eq i64 %index.next234, 64 br i1 %1047, label %bb15.i.i164.i.loopexit, label %vector.body218, !llvm.loop !2531 bb15.i.i164.i.loopexit: ; preds = %vector.body218 %data.i5.i.i.i.i.i.i.i1200.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %1048 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %broadcast.splatinsert248 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.2, i64 0 %broadcast.splat249 = shufflevector <4 x double> %broadcast.splatinsert248, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert250 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.2, i64 0 %broadcast.splat251 = shufflevector <4 x double> %broadcast.splatinsert250, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert252 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.2, i64 0 %broadcast.splat253 = shufflevector <4 x double> %broadcast.splatinsert252, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body239 vector.body239: ; preds = %vector.body239, %bb15.i.i164.i.loopexit %index240 = phi i64 [ 0, %bb15.i.i164.i.loopexit ], [ %index.next255, %vector.body239 ] %1049 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1031.1, i64 %index240 %1050 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1200.1, i64 %index240 %wide.vec241 = load <8 x double>, ptr %1049, align 8, !noalias !2528 %strided.vec242 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %strided.vec243 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %wide.vec244 = load <8 x double>, ptr %1050, align 8, !noalias !2528 %strided.vec245 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %strided.vec246 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %1051 = fadd <4 x double> %strided.vec242, %strided.vec245 %1052 = fadd <4 x double> %strided.vec243, %strided.vec246 %1053 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1022.4, i64 %index240 %interleaved.vec247 = shufflevector <4 x double> %1051, <4 x double> %1052, <8 x i32> store <8 x double> %interleaved.vec247, ptr %1053, align 8, !noalias !2528 %1054 = fsub <4 x double> %strided.vec242, %strided.vec245 %1055 = fsub <4 x double> %strided.vec243, %strided.vec246 %1056 = fmul <4 x double> %1055, %broadcast.splat249 %1057 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %1054, <4 x double> %1056) %1058 = fmul <4 x double> %broadcast.splat253, %1054 %1059 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %1055, <4 x double> %1058) %1060 = getelementptr inbounds %"num_complex::Complex", ptr %1048, i64 %index240 %interleaved.vec254 = shufflevector <4 x double> %1057, <4 x double> %1059, <8 x i32> store <8 x double> %interleaved.vec254, ptr %1060, align 8, !noalias !2528 %index.next255 = add nuw i64 %index240, 4 %1061 = icmp eq i64 %index.next255, 64 br i1 %1061, label %bb15.i.i164.i.loopexit.1, label %vector.body239, !llvm.loop !2532 bb15.i.i164.i.loopexit.1: ; preds = %vector.body239 %data.i5.i.i.i.i.i.i.i1200.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %broadcast.splatinsert269 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat270 = shufflevector <4 x double> %broadcast.splatinsert269, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert271 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat272 = shufflevector <4 x double> %broadcast.splatinsert271, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert273 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat274 = shufflevector <4 x double> %broadcast.splatinsert273, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body260 vector.body260: ; preds = %vector.body260, %bb15.i.i164.i.loopexit.1 %index261 = phi i64 [ 0, %bb15.i.i164.i.loopexit.1 ], [ %index.next276, %vector.body260 ] %1062 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1031.2, i64 %index261 %1063 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1200.2, i64 %index261 %wide.vec262 = load <8 x double>, ptr %1062, align 8, !noalias !2528 %strided.vec263 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %strided.vec264 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %wide.vec265 = load <8 x double>, ptr %1063, align 8, !noalias !2528 %strided.vec266 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %strided.vec267 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %1064 = fadd <4 x double> %strided.vec263, %strided.vec266 %1065 = fadd <4 x double> %strided.vec264, %strided.vec267 %1066 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index261 %interleaved.vec268 = shufflevector <4 x double> %1064, <4 x double> %1065, <8 x i32> store <8 x double> %interleaved.vec268, ptr %1066, align 8, !noalias !2528 %1067 = fsub <4 x double> %strided.vec263, %strided.vec266 %1068 = fsub <4 x double> %strided.vec264, %strided.vec267 %1069 = fmul <4 x double> %1068, %broadcast.splat270 %1070 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %1067, <4 x double> %1069) %1071 = fmul <4 x double> %broadcast.splat274, %1067 %1072 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %1068, <4 x double> %1071) %1073 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1027.2, i64 %index261 %interleaved.vec275 = shufflevector <4 x double> %1070, <4 x double> %1072, <8 x i32> store <8 x double> %interleaved.vec275, ptr %1073, align 8, !noalias !2528 %index.next276 = add nuw i64 %index261, 4 %1074 = icmp eq i64 %index.next276, 64 br i1 %1074, label %bb15.i.i164.i.loopexit.2, label %vector.body260, !llvm.loop !2533 bb15.i.i164.i.loopexit.2: ; preds = %vector.body260 %data.i5.i.i.i.i.i.i.i1200.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %data.i.i.i.i.i.i1204.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %1075 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %broadcast.splatinsert290 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.6, i64 0 %broadcast.splat291 = shufflevector <4 x double> %broadcast.splatinsert290, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert292 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.6, i64 0 %broadcast.splat293 = shufflevector <4 x double> %broadcast.splatinsert292, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert294 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.6, i64 0 %broadcast.splat295 = shufflevector <4 x double> %broadcast.splatinsert294, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body281 vector.body281: ; preds = %vector.body281, %bb15.i.i164.i.loopexit.2 %index282 = phi i64 [ 0, %bb15.i.i164.i.loopexit.2 ], [ %index.next297, %vector.body281 ] %1076 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1031.3, i64 %index282 %1077 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1200.3, i64 %index282 %wide.vec283 = load <8 x double>, ptr %1076, align 8, !noalias !2528 %strided.vec284 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %strided.vec285 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %wide.vec286 = load <8 x double>, ptr %1077, align 8, !noalias !2528 %strided.vec287 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %strided.vec288 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %1078 = fadd <4 x double> %strided.vec284, %strided.vec287 %1079 = fadd <4 x double> %strided.vec285, %strided.vec288 %1080 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1204.3, i64 %index282 %interleaved.vec289 = shufflevector <4 x double> %1078, <4 x double> %1079, <8 x i32> store <8 x double> %interleaved.vec289, ptr %1080, align 8, !noalias !2528 %1081 = fsub <4 x double> %strided.vec284, %strided.vec287 %1082 = fsub <4 x double> %strided.vec285, %strided.vec288 %1083 = fmul <4 x double> %1082, %broadcast.splat291 %1084 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat293, <4 x double> %1081, <4 x double> %1083) %1085 = fmul <4 x double> %broadcast.splat295, %1081 %1086 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat293, <4 x double> %1082, <4 x double> %1085) %1087 = getelementptr inbounds %"num_complex::Complex", ptr %1075, i64 %index282 %interleaved.vec296 = shufflevector <4 x double> %1084, <4 x double> %1086, <8 x i32> store <8 x double> %interleaved.vec296, ptr %1087, align 8, !noalias !2528 %index.next297 = add nuw i64 %index282, 4 %1088 = icmp eq i64 %index.next297, 64 br i1 %1088, label %vector.ph300, label %vector.body281, !llvm.loop !2534 vector.ph300: ; preds = %vector.body281 %broadcast.splatinsert311 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat312 = shufflevector <4 x double> %broadcast.splatinsert311, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert313 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat314 = shufflevector <4 x double> %broadcast.splatinsert313, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert315 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat316 = shufflevector <4 x double> %broadcast.splatinsert315, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body302 vector.body302: ; preds = %vector.body302, %vector.ph300 %index303 = phi i64 [ 0, %vector.ph300 ], [ %index.next318, %vector.body302 ] %1089 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index303 %1090 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index303 %wide.vec304 = load <8 x double>, ptr %1089, align 8, !noalias !2505 %strided.vec305 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %strided.vec306 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %wide.vec307 = load <8 x double>, ptr %1090, align 8, !noalias !2505 %strided.vec308 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %strided.vec309 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %1091 = fadd <4 x double> %strided.vec305, %strided.vec308 %1092 = fadd <4 x double> %strided.vec306, %strided.vec309 %1093 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index303 %interleaved.vec310 = shufflevector <4 x double> %1091, <4 x double> %1092, <8 x i32> store <8 x double> %interleaved.vec310, ptr %1093, align 8, !noalias !2505 %1094 = fsub <4 x double> %strided.vec305, %strided.vec308 %1095 = fsub <4 x double> %strided.vec306, %strided.vec309 %1096 = fmul <4 x double> %1095, %broadcast.splat312 %1097 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat314, <4 x double> %1094, <4 x double> %1096) %1098 = fmul <4 x double> %broadcast.splat316, %1094 %1099 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat314, <4 x double> %1095, <4 x double> %1098) %1100 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1031.2, i64 %index303 %interleaved.vec317 = shufflevector <4 x double> %1097, <4 x double> %1099, <8 x i32> store <8 x double> %interleaved.vec317, ptr %1100, align 8, !noalias !2505 %index.next318 = add nuw i64 %index303, 4 %1101 = icmp eq i64 %index.next318, 128 br i1 %1101, label %vector.ph321, label %vector.body302, !llvm.loop !2535 vector.body344: ; preds = %vector.body323, %vector.body344 %index345 = phi i64 [ %index.next354.1, %vector.body344 ], [ 0, %vector.body323 ] %1102 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index345 %1103 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index345 %wide.vec346 = load <8 x double>, ptr %1102, align 8, !noalias !2505 %strided.vec347 = shufflevector <8 x double> %wide.vec346, <8 x double> poison, <4 x i32> %strided.vec348 = shufflevector <8 x double> %wide.vec346, <8 x double> poison, <4 x i32> %wide.vec349 = load <8 x double>, ptr %1103, align 8, !noalias !2505 %strided.vec350 = shufflevector <8 x double> %wide.vec349, <8 x double> poison, <4 x i32> %strided.vec351 = shufflevector <8 x double> %wide.vec349, <8 x double> poison, <4 x i32> %1104 = fadd <4 x double> %strided.vec347, %strided.vec350 %1105 = fadd <4 x double> %strided.vec348, %strided.vec351 %1106 = fsub <4 x double> %strided.vec347, %strided.vec350 %1107 = fsub <4 x double> %strided.vec348, %strided.vec351 %interleaved.vec352 = shufflevector <4 x double> %1104, <4 x double> %1105, <8 x i32> store <8 x double> %interleaved.vec352, ptr %1102, align 8, !noalias !2505 %interleaved.vec353 = shufflevector <4 x double> %1106, <4 x double> %1107, <8 x i32> store <8 x double> %interleaved.vec353, ptr %1103, align 8, !noalias !2505 %index.next354 = or disjoint i64 %index345, 4 %1108 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next354 %1109 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next354 %wide.vec346.1 = load <8 x double>, ptr %1108, align 8, !noalias !2505 %strided.vec347.1 = shufflevector <8 x double> %wide.vec346.1, <8 x double> poison, <4 x i32> %strided.vec348.1 = shufflevector <8 x double> %wide.vec346.1, <8 x double> poison, <4 x i32> %wide.vec349.1 = load <8 x double>, ptr %1109, align 8, !noalias !2505 %strided.vec350.1 = shufflevector <8 x double> %wide.vec349.1, <8 x double> poison, <4 x i32> %strided.vec351.1 = shufflevector <8 x double> %wide.vec349.1, <8 x double> poison, <4 x i32> %1110 = fadd <4 x double> %strided.vec347.1, %strided.vec350.1 %1111 = fadd <4 x double> %strided.vec348.1, %strided.vec351.1 %1112 = fsub <4 x double> %strided.vec347.1, %strided.vec350.1 %1113 = fsub <4 x double> %strided.vec348.1, %strided.vec351.1 %interleaved.vec352.1 = shufflevector <4 x double> %1110, <4 x double> %1111, <8 x i32> store <8 x double> %interleaved.vec352.1, ptr %1108, align 8, !noalias !2505 %interleaved.vec353.1 = shufflevector <4 x double> %1112, <4 x double> %1113, <8 x i32> store <8 x double> %interleaved.vec353.1, ptr %1109, align 8, !noalias !2505 %index.next354.1 = add nuw nsw i64 %index345, 8 %1114 = icmp eq i64 %index.next354.1, 256 br i1 %1114, label %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit", label %vector.body344, !llvm.loop !2536 vector.ph321: ; preds = %vector.body302 %broadcast.splatinsert332 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat333 = shufflevector <4 x double> %broadcast.splatinsert332, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert334 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat335 = shufflevector <4 x double> %broadcast.splatinsert334, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert336 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat337 = shufflevector <4 x double> %broadcast.splatinsert336, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body323 vector.body323: ; preds = %vector.body323, %vector.ph321 %index324 = phi i64 [ 0, %vector.ph321 ], [ %index.next339, %vector.body323 ] %1115 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1022.4, i64 %index324 %1116 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1027.4, i64 %index324 %wide.vec325 = load <8 x double>, ptr %1115, align 8, !noalias !2505 %strided.vec326 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %strided.vec327 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %wide.vec328 = load <8 x double>, ptr %1116, align 8, !noalias !2505 %strided.vec329 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %strided.vec330 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %1117 = fadd <4 x double> %strided.vec326, %strided.vec329 %1118 = fadd <4 x double> %strided.vec327, %strided.vec330 %1119 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index324 %interleaved.vec331 = shufflevector <4 x double> %1117, <4 x double> %1118, <8 x i32> store <8 x double> %interleaved.vec331, ptr %1119, align 8, !noalias !2505 %1120 = fsub <4 x double> %strided.vec326, %strided.vec329 %1121 = fsub <4 x double> %strided.vec327, %strided.vec330 %1122 = fmul <4 x double> %1121, %broadcast.splat333 %1123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat335, <4 x double> %1120, <4 x double> %1122) %1124 = fmul <4 x double> %broadcast.splat337, %1120 %1125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat335, <4 x double> %1121, <4 x double> %1124) %1126 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1200.2, i64 %index324 %interleaved.vec338 = shufflevector <4 x double> %1123, <4 x double> %1125, <8 x i32> store <8 x double> %interleaved.vec338, ptr %1126, align 8, !noalias !2505 %index.next339 = add nuw i64 %index324, 4 %1127 = icmp eq i64 %index.next339, 128 br i1 %1127, label %vector.body344, label %vector.body323, !llvm.loop !2537 "_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit": ; preds = %vector.body344 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2505 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h120700363758ff43E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2538 store i64 16, ptr %n.i, align 8, !noalias !2538 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2538 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2538 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2538 store ptr null, ptr %_16.i, align 8, !noalias !2538 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2538 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2538 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2538 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2538 store ptr null, ptr %_24.i, align 8, !noalias !2538 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2538 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2538 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2538 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2538 store ptr null, ptr %_32.i, align 8, !noalias !2538 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2538 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2538 store i64 %w.1, ptr %_34.i, align 8, !noalias !2538 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6534ec5e17f35000E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2538 store ptr null, ptr %_40.i, align 8, !noalias !2538 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6534ec5e17f35000E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2538 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3, i32 1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6, i32 1 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7, i32 1 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11, i32 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14, i32 1 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15, i32 1 %21 = load <2 x double>, ptr %buf.0, align 8, !noalias !2538 %22 = load <2 x double>, ptr %3, align 8, !noalias !2538 %23 = load <2 x double>, ptr %2, align 8, !noalias !2538 %24 = load <2 x double>, ptr %4, align 8, !noalias !2538 %25 = load <2 x double>, ptr %1, align 8, !noalias !2538 %26 = load <2 x double>, ptr %6, align 8, !noalias !2538 %27 = load <2 x double>, ptr %5, align 8, !noalias !2538 %28 = load <2 x double>, ptr %7, align 8, !noalias !2538 %29 = load <2 x double>, ptr %0, align 8, !noalias !2538 %30 = load <2 x double>, ptr %10, align 8, !noalias !2538 %31 = load <2 x double>, ptr %9, align 8, !noalias !2538 %32 = load <2 x double>, ptr %11, align 8, !noalias !2538 %33 = load <2 x double>, ptr %8, align 8, !noalias !2538 %34 = load <2 x double>, ptr %13, align 8, !noalias !2538 %35 = load <2 x double>, ptr %12, align 8, !noalias !2538 %36 = load <2 x double>, ptr %14, align 8, !noalias !2538 %37 = fadd <2 x double> %21, %29 %38 = fadd <2 x double> %25, %33 %39 = fadd <2 x double> %23, %31 %40 = fsub <2 x double> %23, %31 %_0.i.i168 = extractelement <2 x double> %40, i64 0 %41 = fsub <2 x double> %23, %31 %_0.i3.i169 = extractelement <2 x double> %41, i64 1 %42 = fadd <2 x double> %27, %35 %43 = fsub <2 x double> %27, %35 %_0.i.i172 = extractelement <2 x double> %43, i64 0 %44 = fsub <2 x double> %27, %35 %_0.i3.i173 = extractelement <2 x double> %44, i64 1 %45 = fadd <2 x double> %22, %30 %46 = fadd <2 x double> %26, %34 %47 = fadd <2 x double> %24, %32 %48 = fsub <2 x double> %24, %32 %_0.i.i184 = extractelement <2 x double> %48, i64 0 %49 = fsub <2 x double> %24, %32 %_0.i3.i185 = extractelement <2 x double> %49, i64 1 %50 = fadd <2 x double> %28, %36 %51 = fsub <2 x double> %28, %36 %_0.i.i188 = extractelement <2 x double> %51, i64 0 %52 = fsub <2 x double> %28, %36 %_0.i3.i189 = extractelement <2 x double> %52, i64 1 %53 = fadd <2 x double> %37, %38 %54 = fadd <2 x double> %39, %42 %_0.i.i200 = fsub double %_0.i.i168, %_0.i3.i173 %_0.i3.i201 = fadd double %_0.i3.i169, %_0.i.i172 %_0.i.i204 = fadd double %_0.i.i168, %_0.i3.i173 %_0.i3.i205 = fsub double %_0.i3.i169, %_0.i.i172 %55 = fadd <2 x double> %45, %46 %56 = fsub <2 x double> %45, %46 %_0.i.i210 = extractelement <2 x double> %56, i64 0 %57 = fsub <2 x double> %45, %46 %_0.i3.i211 = extractelement <2 x double> %57, i64 1 %58 = fadd <2 x double> %47, %50 %_0.i.i216 = fsub double %_0.i.i184, %_0.i3.i189 %_0.i3.i217 = fadd double %_0.i3.i185, %_0.i.i188 %59 = fsub <2 x double> %47, %50 %_0.i.i218 = extractelement <2 x double> %59, i64 0 %60 = fsub <2 x double> %47, %50 %_0.i3.i219 = extractelement <2 x double> %60, i64 1 %_0.i.i220 = fadd double %_0.i.i184, %_0.i3.i189 %_0.i3.i221 = fsub double %_0.i3.i185, %_0.i.i188 %_0.i.i224 = fadd double %_0.i3.i205, %_0.i.i204 %_0.i3.i225 = fsub double %_0.i3.i205, %_0.i.i204 %_4.i335.i.i.i = fmul double %_0.i.i224, 0x3FE6A09E667F3BCD %_7.i336.i.i.i = fmul double %_0.i3.i225, 0x3FE6A09E667F3BCD %61 = fadd <2 x double> %53, %54 %_0.i.i244 = fadd double %_0.i3.i221, %_0.i.i220 %_0.i3.i245 = fsub double %_0.i3.i221, %_0.i.i220 %_4.i339.i.i.i = fmul double %_0.i.i244, 0x3FE6A09E667F3BCD %_7.i340.i.i.i = fmul double %_0.i3.i245, 0x3FE6A09E667F3BCD %62 = fadd <2 x double> %55, %58 %_0.i.i250 = fsub double %_0.i.i210, %_0.i3.i219 %_0.i3.i251 = fadd double %_0.i3.i211, %_0.i.i218 %_0.i.i258 = fadd double %_0.i.i210, %_0.i3.i219 %_0.i3.i259 = fsub double %_0.i3.i211, %_0.i.i218 %_0.i.i264 = fadd double %_0.i3.i259, %_0.i.i258 %_0.i3.i265 = fsub double %_0.i3.i259, %_0.i.i258 %_4.i343.i.i.i = fmul double %_0.i.i264, 0x3FE6A09E667F3BCD %_7.i344.i.i.i = fmul double %_0.i3.i265, 0x3FE6A09E667F3BCD %63 = fadd <2 x double> %61, %62 store <2 x double> %63, ptr %buf.0, align 8, !noalias !2538 %64 = fsub <2 x double> %21, %29 %65 = fsub <2 x double> %25, %33 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> %67 = fsub <2 x double> %22, %30 %68 = fsub <2 x double> %26, %34 %69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> %70 = fsub <2 x double> %64, %66 %71 = fadd <2 x double> %64, %66 %72 = shufflevector <2 x double> %70, <2 x double> %71, <2 x i32> %73 = fadd <2 x double> %64, %66 %_0.i.i196 = extractelement <2 x double> %73, i64 0 %74 = fsub <2 x double> %64, %66 %_0.i3.i197 = extractelement <2 x double> %74, i64 1 %75 = fsub <2 x double> %67, %69 %76 = fadd <2 x double> %67, %69 %77 = shufflevector <2 x double> %75, <2 x double> %76, <2 x i32> %78 = fadd <2 x double> %67, %69 %_0.i.i212 = extractelement <2 x double> %78, i64 0 %79 = fsub <2 x double> %67, %69 %_0.i3.i213 = extractelement <2 x double> %79, i64 1 %80 = insertelement <2 x double> poison, double %_0.i.i200, i64 0 %81 = insertelement <2 x double> poison, double %_0.i.i200, i64 0 %82 = insertelement <2 x double> poison, double %_0.i3.i201, i64 0 %83 = insertelement <2 x double> poison, double %_0.i3.i201, i64 0 %84 = fsub <2 x double> %81, %83 %85 = fadd <2 x double> %80, %82 %86 = shufflevector <2 x double> %84, <2 x double> %85, <2 x i32> %87 = fmul <2 x double> %86, %88 = fadd <2 x double> %72, %87 %_0.i.i232 = fsub double %_0.i.i196, %_4.i335.i.i.i %_0.i3.i233 = fsub double %_0.i3.i197, %_7.i336.i.i.i %_0.i.i240 = fadd double %_0.i.i196, %_4.i335.i.i.i %_0.i3.i241 = fadd double %_0.i3.i197, %_7.i336.i.i.i %89 = insertelement <2 x double> poison, double %_0.i.i216, i64 0 %90 = insertelement <2 x double> poison, double %_0.i.i216, i64 0 %91 = insertelement <2 x double> poison, double %_0.i3.i217, i64 0 %92 = insertelement <2 x double> poison, double %_0.i3.i217, i64 0 %93 = fsub <2 x double> %90, %92 %94 = fadd <2 x double> %89, %91 %95 = shufflevector <2 x double> %93, <2 x double> %94, <2 x i32> %96 = fmul <2 x double> %95, %97 = fadd <2 x double> %77, %96 %_0.i.i252 = fsub double %_0.i.i212, %_4.i339.i.i.i %_0.i3.i253 = fsub double %_0.i3.i213, %_7.i340.i.i.i %_0.i.i260 = fadd double %_0.i.i212, %_4.i339.i.i.i %_0.i3.i261 = fadd double %_0.i3.i213, %_7.i340.i.i.i %98 = fmul <2 x double> %97, %99 = shufflevector <2 x double> %98, <2 x double> poison, <2 x i32> %100 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %97, <2 x double> , <2 x double> %99) %b.i347.i.i.i = fmul double %_0.i3.i253, 0xBFED906BCF328D46 %101 = tail call double @llvm.fma.f64(double %_0.i.i252, double 0x3FD87DE2A6AEA964, double %b.i347.i.i.i) %b1.i348.i.i.i = fmul double %_0.i.i252, 0x3FED906BCF328D46 %102 = tail call double @llvm.fma.f64(double %_0.i3.i253, double 0x3FD87DE2A6AEA964, double %b1.i348.i.i.i) %b.i362.i.i.i = fmul double %_0.i3.i261, 0x3FD87DE2A6AEA964 %103 = tail call double @llvm.fma.f64(double %_0.i.i260, double 0x3FED906BCF328D46, double %b.i362.i.i.i) %b1.i363.i.i.i = fmul double %_0.i.i260, 0xBFD87DE2A6AEA964 %104 = tail call double @llvm.fma.f64(double %_0.i3.i261, double 0x3FED906BCF328D46, double %b1.i363.i.i.i) %105 = fadd <2 x double> %88, %100 %_0.i.i272 = fadd double %_0.i.i232, %101 %_0.i3.i273 = fadd double %_0.i3.i233, %102 %_0.i.i280 = fsub double %_0.i.i240, %103 %_0.i3.i281 = fsub double %_0.i3.i241, %104 %_0.i.i288 = fsub double %_0.i.i232, %101 %_0.i3.i289 = fsub double %_0.i3.i233, %102 %_0.i.i296 = fadd double %_0.i.i240, %103 %_0.i3.i297 = fadd double %_0.i3.i241, %104 store <2 x double> %105, ptr %3, align 8, !noalias !2538 %106 = fsub <2 x double> %37, %38 %107 = fsub <2 x double> %39, %42 %108 = shufflevector <2 x double> %107, <2 x double> poison, <2 x i32> %109 = fsub <2 x double> %106, %108 %110 = fadd <2 x double> %106, %108 %111 = shufflevector <2 x double> %109, <2 x double> %110, <2 x i32> %112 = fadd <2 x double> %106, %108 %_0.i.i238 = extractelement <2 x double> %112, i64 0 %113 = fsub <2 x double> %106, %108 %_0.i3.i239 = extractelement <2 x double> %113, i64 1 %114 = insertelement <2 x double> poison, double %_0.i.i250, i64 0 %115 = insertelement <2 x double> poison, double %_0.i.i250, i64 0 %116 = insertelement <2 x double> poison, double %_0.i3.i251, i64 0 %117 = insertelement <2 x double> poison, double %_0.i3.i251, i64 0 %118 = fsub <2 x double> %115, %117 %119 = fadd <2 x double> %114, %116 %120 = shufflevector <2 x double> %118, <2 x double> %119, <2 x i32> %121 = fmul <2 x double> %120, %122 = fadd <2 x double> %111, %121 %_0.i.i278 = fsub double %_0.i.i238, %_4.i343.i.i.i %_0.i3.i279 = fsub double %_0.i3.i239, %_7.i344.i.i.i %_0.i.i294 = fadd double %_0.i.i238, %_4.i343.i.i.i %_0.i3.i295 = fadd double %_0.i3.i239, %_7.i344.i.i.i store <2 x double> %122, ptr %2, align 8, !noalias !2538 store double %_0.i.i272, ptr %4, align 8, !noalias !2538 store double %_0.i3.i273, ptr %15, align 8, !noalias !2538 %123 = fsub <2 x double> %53, %54 %124 = fsub <2 x double> %55, %58 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> %126 = fsub <2 x double> %123, %125 %127 = fadd <2 x double> %123, %125 %128 = shufflevector <2 x double> %126, <2 x double> %127, <2 x i32> store <2 x double> %128, ptr %1, align 8, !noalias !2538 %129 = fsub <2 x double> %72, %87 %130 = fsub <2 x double> %77, %96 %131 = fmul <2 x double> %130, %132 = shufflevector <2 x double> %131, <2 x double> poison, <2 x i32> %133 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %130, <2 x double> , <2 x double> %132) %134 = fsub <2 x double> %129, %133 store <2 x double> %134, ptr %6, align 8, !noalias !2538 store double %_0.i.i278, ptr %5, align 8, !noalias !2538 store double %_0.i3.i279, ptr %16, align 8, !noalias !2538 store double %_0.i.i280, ptr %7, align 8, !noalias !2538 store double %_0.i3.i281, ptr %17, align 8, !noalias !2538 %135 = fsub <2 x double> %61, %62 store <2 x double> %135, ptr %0, align 8, !noalias !2538 %136 = fsub <2 x double> %88, %100 store <2 x double> %136, ptr %10, align 8, !noalias !2538 %137 = fsub <2 x double> %111, %121 store <2 x double> %137, ptr %9, align 8, !noalias !2538 store double %_0.i.i288, ptr %11, align 8, !noalias !2538 store double %_0.i3.i289, ptr %18, align 8, !noalias !2538 %138 = shufflevector <2 x double> %127, <2 x double> %126, <2 x i32> store <2 x double> %138, ptr %8, align 8, !noalias !2538 %139 = fadd <2 x double> %129, %133 store <2 x double> %139, ptr %13, align 8, !noalias !2538 store double %_0.i.i294, ptr %12, align 8, !noalias !2538 store double %_0.i3.i295, ptr %19, align 8, !noalias !2538 store double %_0.i.i296, ptr %14, align 8, !noalias !2538 store double %_0.i3.i297, ptr %20, align 8, !noalias !2538 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2538 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h12b5594aa9f7fe50E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2541 store i64 1024, ptr %n.i, align 8, !noalias !2541 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2541 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2541 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2541 store ptr null, ptr %_16.i, align 8, !noalias !2541 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2541 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2541 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2541 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2541 store ptr null, ptr %_24.i, align 8, !noalias !2541 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2541 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2541 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2541 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2541 store ptr null, ptr %_32.i, align 8, !noalias !2541 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2541 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2541 store i64 %w.1, ptr %_34.i, align 8, !noalias !2541 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9af7cb8eda23c51bE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2541 store ptr null, ptr %_40.i, align 8, !noalias !2541 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9af7cb8eda23c51bE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2541 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9af7cb8eda23c51bE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9af7cb8eda23c51bE.exit" ], [ %index.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !2544 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %4, align 8, !noalias !2544 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %5, align 8, !noalias !2544 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %6, align 8, !noalias !2544 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec, %strided.vec6 %8 = fadd <4 x double> %strided.vec1, %strided.vec7 %9 = fsub <4 x double> %strided.vec, %strided.vec6 %10 = fsub <4 x double> %strided.vec1, %strided.vec7 %11 = fadd <4 x double> %strided.vec3, %strided.vec9 %12 = fadd <4 x double> %strided.vec4, %strided.vec10 %13 = fsub <4 x double> %strided.vec3, %strided.vec9 %14 = fsub <4 x double> %strided.vec4, %strided.vec10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %12 %17 = fsub <4 x double> %9, %14 %18 = fadd <4 x double> %10, %13 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %12 %21 = fadd <4 x double> %9, %14 %22 = fsub <4 x double> %10, %13 %interleaved.vec = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec, ptr %3, align 8, !noalias !2544 %interleaved.vec11 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !2544 %interleaved.vec12 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !2544 %interleaved.vec13 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec13, ptr %6, align 8, !noalias !2544 %index.next = add nuw i64 %index, 4 %23 = icmp eq i64 %index.next, 256 br i1 %23, label %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, label %vector.body, !llvm.loop !2549 _ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit: ; preds = %vector.body %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 br label %bb24.i.i.i.i104 bb24.i.i.i.i104: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, %middle.block14 %iter.i.i.i.i22.sroa.60.0133 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %73, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i22.sroa.60.0133, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i22.sroa.60.0133, 8 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %27 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %28 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %29 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i120 = load double, ptr %30, align 8, !noalias !2541, !noundef !3 %_6.i.i.i.i.i167 = fneg double %w3.1.i.i.i.i120 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i118 = load double, ptr %31, align 8, !noalias !2541, !noundef !3 %_6.i36.i.i.i.i162 = fneg double %w2.1.i.i.i.i118 %32 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i116 = load double, ptr %32, align 8, !noalias !2541, !noundef !3 %_6.i39.i.i.i.i157 = fneg double %w1.1.i.i.i.i116 %33 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i119 = load double, ptr %33, align 8, !noalias !2541, !noundef !3 %34 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i117 = load double, ptr %34, align 8, !noalias !2541, !noundef !3 %35 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i115 = load double, ptr %35, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i157, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i.i115, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i.i116, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i162, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i.i117, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i.i118, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i.i.i.i.i167, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i.i119, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i.i120, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body18 vector.body18: ; preds = %vector.body18, %bb24.i.i.i.i104 %index19 = phi i64 [ 0, %bb24.i.i.i.i104 ], [ %index.next52, %vector.body18 ] %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index19 %37 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index19 %38 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index19 %39 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index19 %wide.vec20 = load <8 x double>, ptr %36, align 8, !noalias !2541 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %37, align 8, !noalias !2541 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %40 = fmul <4 x double> %strided.vec25, %broadcast.splat %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %40) %42 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %42) %wide.vec30 = load <8 x double>, ptr %38, align 8, !noalias !2541 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %44 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %44) %46 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %47 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %46) %wide.vec39 = load <8 x double>, ptr %39, align 8, !noalias !2541 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %48 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %49 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %48) %50 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %51 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %50) %52 = fadd <4 x double> %strided.vec21, %45 %53 = fadd <4 x double> %strided.vec22, %47 %54 = fsub <4 x double> %strided.vec21, %45 %55 = fsub <4 x double> %strided.vec22, %47 %56 = fadd <4 x double> %41, %49 %57 = fadd <4 x double> %43, %51 %58 = fsub <4 x double> %41, %49 %59 = fsub <4 x double> %43, %51 %60 = fadd <4 x double> %52, %56 %61 = fadd <4 x double> %53, %57 %62 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec48 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec48, ptr %62, align 8, !noalias !2541 %63 = fsub <4 x double> %54, %59 %64 = fadd <4 x double> %55, %58 %65 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec49 = shufflevector <4 x double> %63, <4 x double> %64, <8 x i32> store <8 x double> %interleaved.vec49, ptr %65, align 8, !noalias !2541 %66 = fsub <4 x double> %52, %56 %67 = fsub <4 x double> %53, %57 %68 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec50 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec50, ptr %68, align 8, !noalias !2541 %69 = fadd <4 x double> %54, %59 %70 = fsub <4 x double> %55, %58 %71 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec51 = shufflevector <4 x double> %69, <4 x double> %70, <8 x i32> store <8 x double> %interleaved.vec51, ptr %71, align 8, !noalias !2541 %index.next52 = add nuw i64 %index19, 4 %72 = icmp eq i64 %index.next52, 64 br i1 %72, label %middle.block14, label %vector.body18, !llvm.loop !2550 middle.block14: ; preds = %vector.body18 %73 = add nuw nsw i64 %iter.i.i.i.i22.sroa.60.0133, 1 %exitcond142.not = icmp eq i64 %73, 4 br i1 %exitcond142.not, label %bb24.i.i.i224, label %bb24.i.i.i.i104 vector.body98: ; preds = %bb24.i.i.i224, %vector.body98 %index99 = phi i64 [ %index.next141, %vector.body98 ], [ 0, %bb24.i.i.i224 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body98 ], [ , %bb24.i.i.i224 ] %74 = shl nuw nsw <4 x i64> %vec.ind, %75 = extractelement <4 x i64> %74, i64 0 %76 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %75 %77 = shl nuw nsw <4 x i64> %vec.ind, %78 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %77 %79 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %75 %80 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %75 %81 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %75 %82 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 1, i32 1 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 2 %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %85 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 2, i32 1 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %86 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 3 %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %87 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 3, i32 1 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %88 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 8 %89 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 4 %90 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 12 %91 = fneg <4 x double> %wide.masked.gather100 %92 = fneg <4 x double> %wide.masked.gather102 %93 = fneg <4 x double> %wide.masked.gather104 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %78, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %94 = getelementptr inbounds i8, <4 x ptr> %78, i64 8 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %89, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %95 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 4, i32 1 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %96 = fmul <4 x double> %wide.masked.gather108, %91 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather107, <4 x double> %96) %98 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather107 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather108, <4 x double> %98) %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %100 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 8, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %101 = fmul <4 x double> %wide.masked.gather110, %92 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather109, <4 x double> %101) %103 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather109 %104 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather110, <4 x double> %103) %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %90, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %105 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 12, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %105, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %106 = fmul <4 x double> %wide.masked.gather112, %93 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather111, <4 x double> %106) %108 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather111 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather112, <4 x double> %108) %110 = fadd <4 x double> %wide.masked.gather105, %102 %111 = fadd <4 x double> %wide.masked.gather106, %104 %112 = fsub <4 x double> %wide.masked.gather105, %102 %113 = fsub <4 x double> %wide.masked.gather106, %104 %114 = fadd <4 x double> %97, %107 %115 = fadd <4 x double> %99, %109 %116 = fsub <4 x double> %97, %107 %117 = fsub <4 x double> %99, %109 %118 = fadd <4 x double> %110, %114 %119 = fadd <4 x double> %111, %115 %120 = fsub <4 x double> %112, %117 %121 = fadd <4 x double> %113, %116 %122 = fsub <4 x double> %110, %114 %123 = fsub <4 x double> %111, %115 %124 = fadd <4 x double> %112, %117 %125 = fsub <4 x double> %113, %116 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 1 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 5 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 9 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 13 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 1, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 5, i32 1 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %132 = fmul <4 x double> %wide.masked.gather116, %91 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather115, <4 x double> %132) %134 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather115 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather116, <4 x double> %134) %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 9, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %137 = fmul <4 x double> %wide.masked.gather118, %92 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather117, <4 x double> %137) %139 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather117 %140 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather118, <4 x double> %139) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %141 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 13, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %142 = fmul <4 x double> %wide.masked.gather120, %93 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather119, <4 x double> %142) %144 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather119 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather120, <4 x double> %144) %146 = fadd <4 x double> %wide.masked.gather113, %138 %147 = fadd <4 x double> %wide.masked.gather114, %140 %148 = fsub <4 x double> %wide.masked.gather113, %138 %149 = fsub <4 x double> %wide.masked.gather114, %140 %150 = fadd <4 x double> %133, %143 %151 = fadd <4 x double> %135, %145 %152 = fsub <4 x double> %133, %143 %153 = fsub <4 x double> %135, %145 %154 = fadd <4 x double> %146, %150 %155 = fadd <4 x double> %147, %151 %156 = fsub <4 x double> %148, %153 %157 = fadd <4 x double> %149, %152 %158 = fsub <4 x double> %146, %150 %159 = fsub <4 x double> %147, %151 %160 = fadd <4 x double> %148, %153 %161 = fsub <4 x double> %149, %152 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 2 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 6 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 10 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 14 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 2, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %167 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 6, i32 1 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %168 = fmul <4 x double> %wide.masked.gather124, %91 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather123, <4 x double> %168) %170 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather123 %171 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather124, <4 x double> %170) %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %172 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 10, i32 1 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %173 = fmul <4 x double> %wide.masked.gather126, %92 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather125, <4 x double> %173) %175 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather125 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather126, <4 x double> %175) %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %177 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 14, i32 1 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %178 = fmul <4 x double> %wide.masked.gather128, %93 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather127, <4 x double> %178) %180 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather127 %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather128, <4 x double> %180) %182 = fadd <4 x double> %wide.masked.gather121, %174 %183 = fadd <4 x double> %wide.masked.gather122, %176 %184 = fsub <4 x double> %wide.masked.gather121, %174 %185 = fsub <4 x double> %wide.masked.gather122, %176 %186 = fadd <4 x double> %169, %179 %187 = fadd <4 x double> %171, %181 %188 = fsub <4 x double> %169, %179 %189 = fsub <4 x double> %171, %181 %190 = fadd <4 x double> %182, %186 %191 = fadd <4 x double> %183, %187 %192 = fsub <4 x double> %184, %189 %193 = fadd <4 x double> %185, %188 %194 = fsub <4 x double> %182, %186 %195 = fsub <4 x double> %183, %187 %196 = fadd <4 x double> %184, %189 %197 = fsub <4 x double> %185, %188 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 3 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 7 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 11 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 15 %wide.masked.gather129 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %202 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 3, i32 1 %wide.masked.gather130 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %202, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %wide.masked.gather131 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 7, i32 1 %wide.masked.gather132 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %204 = fmul <4 x double> %wide.masked.gather132, %91 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather131, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather131 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather132, <4 x double> %206) %wide.masked.gather133 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %208 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 11, i32 1 %wide.masked.gather134 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %208, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %209 = fmul <4 x double> %wide.masked.gather134, %92 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather133, <4 x double> %209) %211 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather133 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather134, <4 x double> %211) %wide.masked.gather135 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 15, i32 1 %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %214 = fmul <4 x double> %wide.masked.gather136, %93 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather135, <4 x double> %214) %216 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather135 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather136, <4 x double> %216) %218 = fadd <4 x double> %wide.masked.gather129, %210 %219 = fadd <4 x double> %wide.masked.gather130, %212 %220 = fsub <4 x double> %wide.masked.gather129, %210 %221 = fsub <4 x double> %wide.masked.gather130, %212 %222 = fadd <4 x double> %205, %215 %223 = fadd <4 x double> %207, %217 %224 = fsub <4 x double> %205, %215 %225 = fsub <4 x double> %207, %217 %226 = fadd <4 x double> %218, %222 %227 = fadd <4 x double> %219, %223 %228 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> %229 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> %230 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %231 = shufflevector <4 x double> %226, <4 x double> %227, <8 x i32> %232 = shufflevector <8 x double> %228, <8 x double> %229, <16 x i32> %233 = shufflevector <8 x double> %230, <8 x double> %231, <16 x i32> %interleaved.vec137 = shufflevector <16 x double> %232, <16 x double> %233, <32 x i32> store <32 x double> %interleaved.vec137, ptr %76, align 8, !noalias !2541 %234 = fsub <4 x double> %220, %225 %235 = fadd <4 x double> %221, %224 %236 = shufflevector <4 x double> %120, <4 x double> %121, <8 x i32> %237 = shufflevector <4 x double> %156, <4 x double> %157, <8 x i32> %238 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> %239 = shufflevector <4 x double> %234, <4 x double> %235, <8 x i32> %240 = shufflevector <8 x double> %236, <8 x double> %237, <16 x i32> %241 = shufflevector <8 x double> %238, <8 x double> %239, <16 x i32> %interleaved.vec138 = shufflevector <16 x double> %240, <16 x double> %241, <32 x i32> store <32 x double> %interleaved.vec138, ptr %81, align 8, !noalias !2541 %242 = fsub <4 x double> %218, %222 %243 = fsub <4 x double> %219, %223 %244 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> %245 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> %246 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> %247 = shufflevector <4 x double> %242, <4 x double> %243, <8 x i32> %248 = shufflevector <8 x double> %244, <8 x double> %245, <16 x i32> %249 = shufflevector <8 x double> %246, <8 x double> %247, <16 x i32> %interleaved.vec139 = shufflevector <16 x double> %248, <16 x double> %249, <32 x i32> store <32 x double> %interleaved.vec139, ptr %80, align 8, !noalias !2541 %250 = fadd <4 x double> %220, %225 %251 = fsub <4 x double> %221, %224 %252 = shufflevector <4 x double> %124, <4 x double> %125, <8 x i32> %253 = shufflevector <4 x double> %160, <4 x double> %161, <8 x i32> %254 = shufflevector <4 x double> %196, <4 x double> %197, <8 x i32> %255 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> %256 = shufflevector <8 x double> %252, <8 x double> %253, <16 x i32> %257 = shufflevector <8 x double> %254, <8 x double> %255, <16 x i32> %interleaved.vec140 = shufflevector <16 x double> %256, <16 x double> %257, <32 x i32> store <32 x double> %interleaved.vec140, ptr %79, align 8, !noalias !2541 %index.next141 = add nuw i64 %index99, 4 %vec.ind.next = add <4 x i64> %vec.ind, %258 = icmp eq i64 %index.next141, 64 br i1 %258, label %vector.body146, label %vector.body98, !llvm.loop !2551 bb24.i.i.i224: ; preds = %middle.block14, %bb24.i.i.i224 %iter.i.i.i58.sroa.60.0135 = phi i64 [ %404, %bb24.i.i.i224 ], [ 0, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i733 = shl nuw nsw i64 %iter.i.i.i58.sroa.60.0135, 4 %259 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 3, i32 1 %w3.1.i.i.i240 = load double, ptr %259, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w3.1.i.i.i240, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %260 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 3 %w3.0.i.i.i239 = load double, ptr %260, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert85 = insertelement <4 x double> poison, double %w3.0.i.i.i239, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i287 = fneg double %w3.1.i.i.i240 %broadcast.splatinsert83 = insertelement <4 x double> poison, double %_6.i.i.i.i287, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer %261 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 2, i32 1 %w2.1.i.i.i238 = load double, ptr %261, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert78 = insertelement <4 x double> poison, double %w2.1.i.i.i238, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %262 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 2 %w2.0.i.i.i237 = load double, ptr %262, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert76 = insertelement <4 x double> poison, double %w2.0.i.i.i237, i64 0 %broadcast.splat77 = shufflevector <4 x double> %broadcast.splatinsert76, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i282 = fneg double %w2.1.i.i.i238 %broadcast.splatinsert74 = insertelement <4 x double> poison, double %_6.i36.i.i.i282, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer %263 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 1, i32 1 %w1.1.i.i.i236 = load double, ptr %263, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert69 = insertelement <4 x double> poison, double %w1.1.i.i.i236, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %264 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 1 %w1.0.i.i.i235 = load double, ptr %264, align 8, !noalias !2541, !noundef !3 %broadcast.splatinsert67 = insertelement <4 x double> poison, double %w1.0.i.i.i235, i64 0 %broadcast.splat68 = shufflevector <4 x double> %broadcast.splatinsert67, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i277 = fneg double %w1.1.i.i.i236 %broadcast.splatinsert65 = insertelement <4 x double> poison, double %_6.i39.i.i.i277, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i743 = shl nuw nsw i64 %iter.i.i.i58.sroa.60.0135, 6 %data.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i743 %265 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 48 %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 16 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i756 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %data.i.i.i.i.i.i.i.i.i.i752 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %data.i.i.i.i.i.i.i.i748 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %data.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %wide.vec59 = load <8 x double>, ptr %data.i.i.i.i.i.i744, align 8, !noalias !2541 %strided.vec60 = shufflevector <8 x double> %wide.vec59, <8 x double> poison, <4 x i32> %strided.vec61 = shufflevector <8 x double> %wide.vec59, <8 x double> poison, <4 x i32> %wide.vec62 = load <8 x double>, ptr %266, align 8, !noalias !2541 %strided.vec63 = shufflevector <8 x double> %wide.vec62, <8 x double> poison, <4 x i32> %strided.vec64 = shufflevector <8 x double> %wide.vec62, <8 x double> poison, <4 x i32> %268 = fmul <4 x double> %strided.vec64, %broadcast.splat66 %269 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63, <4 x double> %268) %270 = fmul <4 x double> %broadcast.splat70, %strided.vec63 %271 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64, <4 x double> %270) %wide.vec71 = load <8 x double>, ptr %267, align 8, !noalias !2541 %strided.vec72 = shufflevector <8 x double> %wide.vec71, <8 x double> poison, <4 x i32> %strided.vec73 = shufflevector <8 x double> %wide.vec71, <8 x double> poison, <4 x i32> %272 = fmul <4 x double> %strided.vec73, %broadcast.splat75 %273 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72, <4 x double> %272) %274 = fmul <4 x double> %broadcast.splat79, %strided.vec72 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73, <4 x double> %274) %wide.vec80 = load <8 x double>, ptr %265, align 8, !noalias !2541 %strided.vec81 = shufflevector <8 x double> %wide.vec80, <8 x double> poison, <4 x i32> %strided.vec82 = shufflevector <8 x double> %wide.vec80, <8 x double> poison, <4 x i32> %276 = fmul <4 x double> %strided.vec82, %broadcast.splat84 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81, <4 x double> %276) %278 = fmul <4 x double> %broadcast.splat88, %strided.vec81 %279 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82, <4 x double> %278) %280 = fadd <4 x double> %strided.vec60, %273 %281 = fadd <4 x double> %strided.vec61, %275 %282 = fsub <4 x double> %strided.vec60, %273 %283 = fsub <4 x double> %strided.vec61, %275 %284 = fadd <4 x double> %269, %277 %285 = fadd <4 x double> %271, %279 %286 = fsub <4 x double> %269, %277 %287 = fsub <4 x double> %271, %279 %288 = fadd <4 x double> %280, %284 %289 = fadd <4 x double> %281, %285 %interleaved.vec89 = shufflevector <4 x double> %288, <4 x double> %289, <8 x i32> store <8 x double> %interleaved.vec89, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, align 8, !noalias !2541 %290 = fsub <4 x double> %282, %287 %291 = fadd <4 x double> %283, %286 %interleaved.vec90 = shufflevector <4 x double> %290, <4 x double> %291, <8 x i32> store <8 x double> %interleaved.vec90, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, align 8, !noalias !2541 %292 = fsub <4 x double> %280, %284 %293 = fsub <4 x double> %281, %285 %interleaved.vec91 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec91, ptr %data.i.i.i.i.i.i.i.i.i.i752, align 8, !noalias !2541 %294 = fadd <4 x double> %282, %287 %295 = fsub <4 x double> %283, %286 %interleaved.vec92 = shufflevector <4 x double> %294, <4 x double> %295, <8 x i32> store <8 x double> %interleaved.vec92, ptr %data.i.i.i.i.i.i.i.i748, align 8, !noalias !2541 %296 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 4 %297 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 20 %298 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 36 %299 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 52 %wide.vec59.1 = load <8 x double>, ptr %296, align 8, !noalias !2541 %strided.vec60.1 = shufflevector <8 x double> %wide.vec59.1, <8 x double> poison, <4 x i32> %strided.vec61.1 = shufflevector <8 x double> %wide.vec59.1, <8 x double> poison, <4 x i32> %wide.vec62.1 = load <8 x double>, ptr %297, align 8, !noalias !2541 %strided.vec63.1 = shufflevector <8 x double> %wide.vec62.1, <8 x double> poison, <4 x i32> %strided.vec64.1 = shufflevector <8 x double> %wide.vec62.1, <8 x double> poison, <4 x i32> %300 = fmul <4 x double> %strided.vec64.1, %broadcast.splat66 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63.1, <4 x double> %300) %302 = fmul <4 x double> %broadcast.splat70, %strided.vec63.1 %303 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64.1, <4 x double> %302) %wide.vec71.1 = load <8 x double>, ptr %298, align 8, !noalias !2541 %strided.vec72.1 = shufflevector <8 x double> %wide.vec71.1, <8 x double> poison, <4 x i32> %strided.vec73.1 = shufflevector <8 x double> %wide.vec71.1, <8 x double> poison, <4 x i32> %304 = fmul <4 x double> %strided.vec73.1, %broadcast.splat75 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72.1, <4 x double> %304) %306 = fmul <4 x double> %broadcast.splat79, %strided.vec72.1 %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73.1, <4 x double> %306) %wide.vec80.1 = load <8 x double>, ptr %299, align 8, !noalias !2541 %strided.vec81.1 = shufflevector <8 x double> %wide.vec80.1, <8 x double> poison, <4 x i32> %strided.vec82.1 = shufflevector <8 x double> %wide.vec80.1, <8 x double> poison, <4 x i32> %308 = fmul <4 x double> %strided.vec82.1, %broadcast.splat84 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81.1, <4 x double> %308) %310 = fmul <4 x double> %broadcast.splat88, %strided.vec81.1 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82.1, <4 x double> %310) %312 = fadd <4 x double> %strided.vec60.1, %305 %313 = fadd <4 x double> %strided.vec61.1, %307 %314 = fsub <4 x double> %strided.vec60.1, %305 %315 = fsub <4 x double> %strided.vec61.1, %307 %316 = fadd <4 x double> %301, %309 %317 = fadd <4 x double> %303, %311 %318 = fsub <4 x double> %301, %309 %319 = fsub <4 x double> %303, %311 %320 = fadd <4 x double> %312, %316 %321 = fadd <4 x double> %313, %317 %322 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, i64 4 %interleaved.vec89.1 = shufflevector <4 x double> %320, <4 x double> %321, <8 x i32> store <8 x double> %interleaved.vec89.1, ptr %322, align 8, !noalias !2541 %323 = fsub <4 x double> %314, %319 %324 = fadd <4 x double> %315, %318 %325 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, i64 4 %interleaved.vec90.1 = shufflevector <4 x double> %323, <4 x double> %324, <8 x i32> store <8 x double> %interleaved.vec90.1, ptr %325, align 8, !noalias !2541 %326 = fsub <4 x double> %312, %316 %327 = fsub <4 x double> %313, %317 %328 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i752, i64 4 %interleaved.vec91.1 = shufflevector <4 x double> %326, <4 x double> %327, <8 x i32> store <8 x double> %interleaved.vec91.1, ptr %328, align 8, !noalias !2541 %329 = fadd <4 x double> %314, %319 %330 = fsub <4 x double> %315, %318 %331 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i748, i64 4 %interleaved.vec92.1 = shufflevector <4 x double> %329, <4 x double> %330, <8 x i32> store <8 x double> %interleaved.vec92.1, ptr %331, align 8, !noalias !2541 %332 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 8 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 24 %334 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 40 %335 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 56 %wide.vec59.2 = load <8 x double>, ptr %332, align 8, !noalias !2541 %strided.vec60.2 = shufflevector <8 x double> %wide.vec59.2, <8 x double> poison, <4 x i32> %strided.vec61.2 = shufflevector <8 x double> %wide.vec59.2, <8 x double> poison, <4 x i32> %wide.vec62.2 = load <8 x double>, ptr %333, align 8, !noalias !2541 %strided.vec63.2 = shufflevector <8 x double> %wide.vec62.2, <8 x double> poison, <4 x i32> %strided.vec64.2 = shufflevector <8 x double> %wide.vec62.2, <8 x double> poison, <4 x i32> %336 = fmul <4 x double> %strided.vec64.2, %broadcast.splat66 %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63.2, <4 x double> %336) %338 = fmul <4 x double> %broadcast.splat70, %strided.vec63.2 %339 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64.2, <4 x double> %338) %wide.vec71.2 = load <8 x double>, ptr %334, align 8, !noalias !2541 %strided.vec72.2 = shufflevector <8 x double> %wide.vec71.2, <8 x double> poison, <4 x i32> %strided.vec73.2 = shufflevector <8 x double> %wide.vec71.2, <8 x double> poison, <4 x i32> %340 = fmul <4 x double> %strided.vec73.2, %broadcast.splat75 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72.2, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat79, %strided.vec72.2 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73.2, <4 x double> %342) %wide.vec80.2 = load <8 x double>, ptr %335, align 8, !noalias !2541 %strided.vec81.2 = shufflevector <8 x double> %wide.vec80.2, <8 x double> poison, <4 x i32> %strided.vec82.2 = shufflevector <8 x double> %wide.vec80.2, <8 x double> poison, <4 x i32> %344 = fmul <4 x double> %strided.vec82.2, %broadcast.splat84 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81.2, <4 x double> %344) %346 = fmul <4 x double> %broadcast.splat88, %strided.vec81.2 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82.2, <4 x double> %346) %348 = fadd <4 x double> %strided.vec60.2, %341 %349 = fadd <4 x double> %strided.vec61.2, %343 %350 = fsub <4 x double> %strided.vec60.2, %341 %351 = fsub <4 x double> %strided.vec61.2, %343 %352 = fadd <4 x double> %337, %345 %353 = fadd <4 x double> %339, %347 %354 = fsub <4 x double> %337, %345 %355 = fsub <4 x double> %339, %347 %356 = fadd <4 x double> %348, %352 %357 = fadd <4 x double> %349, %353 %358 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, i64 8 %interleaved.vec89.2 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec89.2, ptr %358, align 8, !noalias !2541 %359 = fsub <4 x double> %350, %355 %360 = fadd <4 x double> %351, %354 %361 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, i64 8 %interleaved.vec90.2 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec90.2, ptr %361, align 8, !noalias !2541 %362 = fsub <4 x double> %348, %352 %363 = fsub <4 x double> %349, %353 %364 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i752, i64 8 %interleaved.vec91.2 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec91.2, ptr %364, align 8, !noalias !2541 %365 = fadd <4 x double> %350, %355 %366 = fsub <4 x double> %351, %354 %367 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i748, i64 8 %interleaved.vec92.2 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec92.2, ptr %367, align 8, !noalias !2541 %368 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 12 %369 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 28 %370 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 44 %371 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 60 %wide.vec59.3 = load <8 x double>, ptr %368, align 8, !noalias !2541 %strided.vec60.3 = shufflevector <8 x double> %wide.vec59.3, <8 x double> poison, <4 x i32> %strided.vec61.3 = shufflevector <8 x double> %wide.vec59.3, <8 x double> poison, <4 x i32> %wide.vec62.3 = load <8 x double>, ptr %369, align 8, !noalias !2541 %strided.vec63.3 = shufflevector <8 x double> %wide.vec62.3, <8 x double> poison, <4 x i32> %strided.vec64.3 = shufflevector <8 x double> %wide.vec62.3, <8 x double> poison, <4 x i32> %372 = fmul <4 x double> %strided.vec64.3, %broadcast.splat66 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63.3, <4 x double> %372) %374 = fmul <4 x double> %broadcast.splat70, %strided.vec63.3 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64.3, <4 x double> %374) %wide.vec71.3 = load <8 x double>, ptr %370, align 8, !noalias !2541 %strided.vec72.3 = shufflevector <8 x double> %wide.vec71.3, <8 x double> poison, <4 x i32> %strided.vec73.3 = shufflevector <8 x double> %wide.vec71.3, <8 x double> poison, <4 x i32> %376 = fmul <4 x double> %strided.vec73.3, %broadcast.splat75 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72.3, <4 x double> %376) %378 = fmul <4 x double> %broadcast.splat79, %strided.vec72.3 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73.3, <4 x double> %378) %wide.vec80.3 = load <8 x double>, ptr %371, align 8, !noalias !2541 %strided.vec81.3 = shufflevector <8 x double> %wide.vec80.3, <8 x double> poison, <4 x i32> %strided.vec82.3 = shufflevector <8 x double> %wide.vec80.3, <8 x double> poison, <4 x i32> %380 = fmul <4 x double> %strided.vec82.3, %broadcast.splat84 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81.3, <4 x double> %380) %382 = fmul <4 x double> %broadcast.splat88, %strided.vec81.3 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82.3, <4 x double> %382) %384 = fadd <4 x double> %strided.vec60.3, %377 %385 = fadd <4 x double> %strided.vec61.3, %379 %386 = fsub <4 x double> %strided.vec60.3, %377 %387 = fsub <4 x double> %strided.vec61.3, %379 %388 = fadd <4 x double> %373, %381 %389 = fadd <4 x double> %375, %383 %390 = fsub <4 x double> %373, %381 %391 = fsub <4 x double> %375, %383 %392 = fadd <4 x double> %384, %388 %393 = fadd <4 x double> %385, %389 %394 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, i64 12 %interleaved.vec89.3 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> store <8 x double> %interleaved.vec89.3, ptr %394, align 8, !noalias !2541 %395 = fsub <4 x double> %386, %391 %396 = fadd <4 x double> %387, %390 %397 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, i64 12 %interleaved.vec90.3 = shufflevector <4 x double> %395, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec90.3, ptr %397, align 8, !noalias !2541 %398 = fsub <4 x double> %384, %388 %399 = fsub <4 x double> %385, %389 %400 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i752, i64 12 %interleaved.vec91.3 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec91.3, ptr %400, align 8, !noalias !2541 %401 = fadd <4 x double> %386, %391 %402 = fsub <4 x double> %387, %390 %403 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i748, i64 12 %interleaved.vec92.3 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec92.3, ptr %403, align 8, !noalias !2541 %404 = add nuw nsw i64 %iter.i.i.i58.sroa.60.0135, 1 %exitcond144.not = icmp eq i64 %404, 16 br i1 %exitcond144.not, label %vector.body98, label %bb24.i.i.i224 vector.body146: ; preds = %vector.body98, %vector.body146 %index147 = phi i64 [ %index.next168, %vector.body146 ], [ 0, %vector.body98 ] %vec.ind148 = phi <4 x i64> [ %vec.ind.next149, %vector.body146 ], [ , %vector.body98 ] %405 = shl <4 x i64> %vec.ind148, %406 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %405 %407 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 1 %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %407, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %408 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 1, i32 1 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %408, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %409 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 2 %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %409, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %410 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 2, i32 1 %wide.masked.gather153 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %410, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %411 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 3 %wide.masked.gather154 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %411, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %412 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 3, i32 1 %wide.masked.gather155 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %412, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %413 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 2 %414 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 1 %415 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 3 %416 = fneg <4 x double> %wide.masked.gather151 %417 = fneg <4 x double> %wide.masked.gather153 %418 = fneg <4 x double> %wide.masked.gather155 %wide.masked.gather156 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %406, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %419 = getelementptr inbounds i8, <4 x ptr> %406, i64 8 %wide.masked.gather157 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %419, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %wide.masked.gather158 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %414, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %420 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 1, i32 1 %wide.masked.gather159 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %420, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %421 = fmul <4 x double> %wide.masked.gather159, %416 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather150, <4 x double> %wide.masked.gather158, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather151, %wide.masked.gather158 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather150, <4 x double> %wide.masked.gather159, <4 x double> %423) %wide.masked.gather160 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %413, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %425 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 2, i32 1 %wide.masked.gather161 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %425, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %426 = fmul <4 x double> %wide.masked.gather161, %417 %427 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather152, <4 x double> %wide.masked.gather160, <4 x double> %426) %428 = fmul <4 x double> %wide.masked.gather153, %wide.masked.gather160 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather152, <4 x double> %wide.masked.gather161, <4 x double> %428) %wide.masked.gather162 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %415, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %430 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 3, i32 1 %wide.masked.gather163 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %430, i32 8, <4 x i1> , <4 x double> poison), !noalias !2541 %431 = fmul <4 x double> %wide.masked.gather163, %418 %432 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather154, <4 x double> %wide.masked.gather162, <4 x double> %431) %433 = fmul <4 x double> %wide.masked.gather155, %wide.masked.gather162 %434 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather154, <4 x double> %wide.masked.gather163, <4 x double> %433) %435 = fadd <4 x double> %wide.masked.gather156, %427 %436 = fadd <4 x double> %wide.masked.gather157, %429 %437 = fsub <4 x double> %wide.masked.gather156, %427 %438 = fsub <4 x double> %wide.masked.gather157, %429 %439 = fadd <4 x double> %422, %432 %440 = fadd <4 x double> %424, %434 %441 = fsub <4 x double> %422, %432 %442 = fsub <4 x double> %424, %434 %443 = fadd <4 x double> %435, %439 %444 = fadd <4 x double> %436, %440 %445 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index147 %interleaved.vec164 = shufflevector <4 x double> %443, <4 x double> %444, <8 x i32> store <8 x double> %interleaved.vec164, ptr %445, align 8, !noalias !2541 %446 = fsub <4 x double> %437, %442 %447 = fadd <4 x double> %438, %441 %448 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index147 %interleaved.vec165 = shufflevector <4 x double> %446, <4 x double> %447, <8 x i32> store <8 x double> %interleaved.vec165, ptr %448, align 8, !noalias !2541 %449 = fsub <4 x double> %435, %439 %450 = fsub <4 x double> %436, %440 %451 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index147 %interleaved.vec166 = shufflevector <4 x double> %449, <4 x double> %450, <8 x i32> store <8 x double> %interleaved.vec166, ptr %451, align 8, !noalias !2541 %452 = fadd <4 x double> %437, %442 %453 = fsub <4 x double> %438, %441 %454 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index147 %interleaved.vec167 = shufflevector <4 x double> %452, <4 x double> %453, <8 x i32> store <8 x double> %interleaved.vec167, ptr %454, align 8, !noalias !2541 %index.next168 = add nuw i64 %index147, 4 %vec.ind.next149 = add <4 x i64> %vec.ind148, %455 = icmp eq i64 %index.next168, 252 br i1 %455, label %bb24.i.i.i, label %vector.body146, !llvm.loop !2552 bb24.i.i.i: ; preds = %vector.body146 %data.i.i.i.i.i.i.i.i.i.i.i.i1360 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i1370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1008 %data.i.i.i.i.i.i.i.i1374 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %data.i.i.i.i.i.i.i.i.i.i1378 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 764 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %456 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i.i = load double, ptr %456, align 8, !noalias !2541, !noundef !3 %457 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %457, align 8, !noalias !2541, !noundef !3 %458 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2 %w2.0.i.i.i = load double, ptr %458, align 8, !noalias !2541, !noundef !3 %459 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %459, align 8, !noalias !2541, !noundef !3 %460 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3 %w3.0.i.i.i = load double, ptr %460, align 8, !noalias !2541, !noundef !3 %461 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %461, align 8, !noalias !2541, !noundef !3 %462 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1010 %463 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1009 %464 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1011 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i1370, align 8, !noalias !2541, !noundef !3 %465 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1008, i32 1 %a.1.i.i.i = load double, ptr %465, align 8, !noalias !2541, !noundef !3 %_84.0.i.i.i = load double, ptr %463, align 8, !noalias !2541, !noundef !3 %466 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1009, i32 1 %_84.1.i.i.i = load double, ptr %466, align 8, !noalias !2541, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %467 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %468 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %462, align 8, !noalias !2541, !noundef !3 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1010, i32 1 %_86.1.i.i.i = load double, ptr %469, align 8, !noalias !2541, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %470 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %471 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %464, align 8, !noalias !2541, !noundef !3 %472 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1011, i32 1 %_88.1.i.i.i = load double, ptr %472, align 8, !noalias !2541, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %473 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %474 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i1515 = fadd double %a.0.i.i.i, %470 %_0.i3.i1516 = fadd double %a.1.i.i.i, %471 %_0.i.i1517 = fsub double %a.0.i.i.i, %470 %_0.i3.i1518 = fsub double %a.1.i.i.i, %471 %_0.i.i1519 = fadd double %467, %473 %_0.i3.i1520 = fadd double %468, %474 %_0.i.i1521 = fsub double %467, %473 %_0.i3.i1522 = fsub double %468, %474 %_0.i.i1523 = fadd double %_0.i.i1515, %_0.i.i1519 %_0.i3.i1524 = fadd double %_0.i3.i1516, %_0.i3.i1520 store double %_0.i.i1523, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360, align 8, !noalias !2541 %475 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252, i32 1 store double %_0.i3.i1524, ptr %475, align 8, !noalias !2541 %_0.i.i1525 = fsub double %_0.i.i1517, %_0.i3.i1522 %_0.i3.i1526 = fadd double %_0.i3.i1518, %_0.i.i1521 store double %_0.i.i1525, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382, align 8, !noalias !2541 %476 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508, i32 1 store double %_0.i3.i1526, ptr %476, align 8, !noalias !2541 %_0.i.i1527 = fsub double %_0.i.i1515, %_0.i.i1519 %_0.i3.i1528 = fsub double %_0.i3.i1516, %_0.i3.i1520 store double %_0.i.i1527, ptr %data.i.i.i.i.i.i.i.i.i.i1378, align 8, !noalias !2541 %477 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 764, i32 1 store double %_0.i3.i1528, ptr %477, align 8, !noalias !2541 %_0.i.i1529 = fadd double %_0.i.i1517, %_0.i3.i1522 %_0.i3.i1530 = fsub double %_0.i3.i1518, %_0.i.i1521 store double %_0.i.i1529, ptr %data.i.i.i.i.i.i.i.i1374, align 8, !noalias !2541 %478 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020, i32 1 store double %_0.i3.i1530, ptr %478, align 8, !noalias !2541 %data.i.i.i.i.i.i.i.i.i.i.i.i1360.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i1370.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1012 %data.i.i.i.i.i.i.i.i1374.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021 %data.i.i.i.i.i.i.i.i.i.i1378.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 765 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %479 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1 %w1.0.i.i.i.1 = load double, ptr %479, align 8, !noalias !2541, !noundef !3 %480 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %480, align 8, !noalias !2541, !noundef !3 %481 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2 %w2.0.i.i.i.1 = load double, ptr %481, align 8, !noalias !2541, !noundef !3 %482 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %482, align 8, !noalias !2541, !noundef !3 %483 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3 %w3.0.i.i.i.1 = load double, ptr %483, align 8, !noalias !2541, !noundef !3 %484 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %484, align 8, !noalias !2541, !noundef !3 %485 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1014 %486 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1013 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1015 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i1370.1, align 8, !noalias !2541, !noundef !3 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1012, i32 1 %a.1.i.i.i.1 = load double, ptr %488, align 8, !noalias !2541, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %486, align 8, !noalias !2541, !noundef !3 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1013, i32 1 %_84.1.i.i.i.1 = load double, ptr %489, align 8, !noalias !2541, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %490 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %491 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %485, align 8, !noalias !2541, !noundef !3 %492 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1014, i32 1 %_86.1.i.i.i.1 = load double, ptr %492, align 8, !noalias !2541, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %493 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %494 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %487, align 8, !noalias !2541, !noundef !3 %495 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1015, i32 1 %_88.1.i.i.i.1 = load double, ptr %495, align 8, !noalias !2541, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %496 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %497 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i1515.1 = fadd double %a.0.i.i.i.1, %493 %_0.i3.i1516.1 = fadd double %a.1.i.i.i.1, %494 %_0.i.i1517.1 = fsub double %a.0.i.i.i.1, %493 %_0.i3.i1518.1 = fsub double %a.1.i.i.i.1, %494 %_0.i.i1519.1 = fadd double %490, %496 %_0.i3.i1520.1 = fadd double %491, %497 %_0.i.i1521.1 = fsub double %490, %496 %_0.i3.i1522.1 = fsub double %491, %497 %_0.i.i1523.1 = fadd double %_0.i.i1515.1, %_0.i.i1519.1 %_0.i3.i1524.1 = fadd double %_0.i3.i1516.1, %_0.i3.i1520.1 store double %_0.i.i1523.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360.1, align 8, !noalias !2541 %498 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253, i32 1 store double %_0.i3.i1524.1, ptr %498, align 8, !noalias !2541 %_0.i.i1525.1 = fsub double %_0.i.i1517.1, %_0.i3.i1522.1 %_0.i3.i1526.1 = fadd double %_0.i3.i1518.1, %_0.i.i1521.1 store double %_0.i.i1525.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.1, align 8, !noalias !2541 %499 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509, i32 1 store double %_0.i3.i1526.1, ptr %499, align 8, !noalias !2541 %_0.i.i1527.1 = fsub double %_0.i.i1515.1, %_0.i.i1519.1 %_0.i3.i1528.1 = fsub double %_0.i3.i1516.1, %_0.i3.i1520.1 store double %_0.i.i1527.1, ptr %data.i.i.i.i.i.i.i.i.i.i1378.1, align 8, !noalias !2541 %500 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 765, i32 1 store double %_0.i3.i1528.1, ptr %500, align 8, !noalias !2541 %_0.i.i1529.1 = fadd double %_0.i.i1517.1, %_0.i3.i1522.1 %_0.i3.i1530.1 = fsub double %_0.i3.i1518.1, %_0.i.i1521.1 store double %_0.i.i1529.1, ptr %data.i.i.i.i.i.i.i.i1374.1, align 8, !noalias !2541 %501 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021, i32 1 store double %_0.i3.i1530.1, ptr %501, align 8, !noalias !2541 %data.i.i.i.i.i.i.i.i.i.i.i.i1360.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i1370.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %data.i.i.i.i.i.i.i.i1374.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %data.i.i.i.i.i.i.i.i.i.i1378.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 766 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %502 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.i.2 = load double, ptr %502, align 8, !noalias !2541, !noundef !3 %503 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %503, align 8, !noalias !2541, !noundef !3 %504 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2 %w2.0.i.i.i.2 = load double, ptr %504, align 8, !noalias !2541, !noundef !3 %505 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %505, align 8, !noalias !2541, !noundef !3 %506 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3 %w3.0.i.i.i.2 = load double, ptr %506, align 8, !noalias !2541, !noundef !3 %507 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %507, align 8, !noalias !2541, !noundef !3 %508 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %509 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017 %510 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i1370.2, align 8, !noalias !2541, !noundef !3 %511 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016, i32 1 %a.1.i.i.i.2 = load double, ptr %511, align 8, !noalias !2541, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %509, align 8, !noalias !2541, !noundef !3 %512 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017, i32 1 %_84.1.i.i.i.2 = load double, ptr %512, align 8, !noalias !2541, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %513 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %514 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %508, align 8, !noalias !2541, !noundef !3 %515 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018, i32 1 %_86.1.i.i.i.2 = load double, ptr %515, align 8, !noalias !2541, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %516 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %517 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %510, align 8, !noalias !2541, !noundef !3 %518 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019, i32 1 %_88.1.i.i.i.2 = load double, ptr %518, align 8, !noalias !2541, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %519 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %520 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i1515.2 = fadd double %a.0.i.i.i.2, %516 %_0.i3.i1516.2 = fadd double %a.1.i.i.i.2, %517 %_0.i.i1517.2 = fsub double %a.0.i.i.i.2, %516 %_0.i3.i1518.2 = fsub double %a.1.i.i.i.2, %517 %_0.i.i1519.2 = fadd double %513, %519 %_0.i3.i1520.2 = fadd double %514, %520 %_0.i.i1521.2 = fsub double %513, %519 %_0.i3.i1522.2 = fsub double %514, %520 %_0.i.i1523.2 = fadd double %_0.i.i1515.2, %_0.i.i1519.2 %_0.i3.i1524.2 = fadd double %_0.i3.i1516.2, %_0.i3.i1520.2 store double %_0.i.i1523.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360.2, align 8, !noalias !2541 %521 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254, i32 1 store double %_0.i3.i1524.2, ptr %521, align 8, !noalias !2541 %_0.i.i1525.2 = fsub double %_0.i.i1517.2, %_0.i3.i1522.2 %_0.i3.i1526.2 = fadd double %_0.i3.i1518.2, %_0.i.i1521.2 store double %_0.i.i1525.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.2, align 8, !noalias !2541 %522 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510, i32 1 store double %_0.i3.i1526.2, ptr %522, align 8, !noalias !2541 %_0.i.i1527.2 = fsub double %_0.i.i1515.2, %_0.i.i1519.2 %_0.i3.i1528.2 = fsub double %_0.i3.i1516.2, %_0.i3.i1520.2 store double %_0.i.i1527.2, ptr %data.i.i.i.i.i.i.i.i.i.i1378.2, align 8, !noalias !2541 %523 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 766, i32 1 store double %_0.i3.i1528.2, ptr %523, align 8, !noalias !2541 %_0.i.i1529.2 = fadd double %_0.i.i1517.2, %_0.i3.i1522.2 %_0.i3.i1530.2 = fsub double %_0.i3.i1518.2, %_0.i.i1521.2 store double %_0.i.i1529.2, ptr %data.i.i.i.i.i.i.i.i1374.2, align 8, !noalias !2541 %524 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022, i32 1 store double %_0.i3.i1530.2, ptr %524, align 8, !noalias !2541 %data.i.i.i.i.i.i.i.i.i.i.i.i1360.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i1370.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %data.i.i.i.i.i.i.i.i1374.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023 %data.i.i.i.i.i.i.i.i.i.i1378.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 767 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %525 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1 %w1.0.i.i.i.3 = load double, ptr %525, align 8, !noalias !2541, !noundef !3 %526 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %526, align 8, !noalias !2541, !noundef !3 %527 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2 %w2.0.i.i.i.3 = load double, ptr %527, align 8, !noalias !2541, !noundef !3 %528 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %528, align 8, !noalias !2541, !noundef !3 %529 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3 %w3.0.i.i.i.3 = load double, ptr %529, align 8, !noalias !2541, !noundef !3 %530 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %530, align 8, !noalias !2541, !noundef !3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %532 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021 %533 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i1370.3, align 8, !noalias !2541, !noundef !3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020, i32 1 %a.1.i.i.i.3 = load double, ptr %534, align 8, !noalias !2541, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %532, align 8, !noalias !2541, !noundef !3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021, i32 1 %_84.1.i.i.i.3 = load double, ptr %535, align 8, !noalias !2541, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %536 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %537 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %531, align 8, !noalias !2541, !noundef !3 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022, i32 1 %_86.1.i.i.i.3 = load double, ptr %538, align 8, !noalias !2541, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %539 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %540 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %533, align 8, !noalias !2541, !noundef !3 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023, i32 1 %_88.1.i.i.i.3 = load double, ptr %541, align 8, !noalias !2541, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %542 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %543 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i1515.3 = fadd double %a.0.i.i.i.3, %539 %_0.i3.i1516.3 = fadd double %a.1.i.i.i.3, %540 %_0.i.i1517.3 = fsub double %a.0.i.i.i.3, %539 %_0.i3.i1518.3 = fsub double %a.1.i.i.i.3, %540 %_0.i.i1519.3 = fadd double %536, %542 %_0.i3.i1520.3 = fadd double %537, %543 %_0.i.i1521.3 = fsub double %536, %542 %_0.i3.i1522.3 = fsub double %537, %543 %_0.i.i1523.3 = fadd double %_0.i.i1515.3, %_0.i.i1519.3 %_0.i3.i1524.3 = fadd double %_0.i3.i1516.3, %_0.i3.i1520.3 store double %_0.i.i1523.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360.3, align 8, !noalias !2541 %544 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255, i32 1 store double %_0.i3.i1524.3, ptr %544, align 8, !noalias !2541 %_0.i.i1525.3 = fsub double %_0.i.i1517.3, %_0.i3.i1522.3 %_0.i3.i1526.3 = fadd double %_0.i3.i1518.3, %_0.i.i1521.3 store double %_0.i.i1525.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.3, align 8, !noalias !2541 %545 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511, i32 1 store double %_0.i3.i1526.3, ptr %545, align 8, !noalias !2541 %_0.i.i1527.3 = fsub double %_0.i.i1515.3, %_0.i.i1519.3 %_0.i3.i1528.3 = fsub double %_0.i3.i1516.3, %_0.i3.i1520.3 store double %_0.i.i1527.3, ptr %data.i.i.i.i.i.i.i.i.i.i1378.3, align 8, !noalias !2541 %546 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 767, i32 1 store double %_0.i3.i1528.3, ptr %546, align 8, !noalias !2541 %_0.i.i1529.3 = fadd double %_0.i.i1517.3, %_0.i3.i1522.3 %_0.i3.i1530.3 = fsub double %_0.i3.i1518.3, %_0.i.i1521.3 store double %_0.i.i1529.3, ptr %data.i.i.i.i.i.i.i.i1374.3, align 8, !noalias !2541 %547 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023, i32 1 store double %_0.i3.i1530.3, ptr %547, align 8, !noalias !2541 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2541 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h12c9472e43001bbaE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2553 store i64 512, ptr %n.i.i, align 8, !noalias !2553 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2553 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2553 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2553 store ptr null, ptr %_16.i.i, align 8, !noalias !2553 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2553 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2553 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2553 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2553 store ptr null, ptr %_24.i.i, align 8, !noalias !2553 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2553 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2553 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2553 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2553 store ptr null, ptr %_32.i.i, align 8, !noalias !2553 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2553 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2553 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2553 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h57e69618e9e632f2E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2553 store ptr null, ptr %_40.i.i, align 8, !noalias !2553 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h57e69618e9e632f2E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2553 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 br label %bb9.i.i.i.i.i.i bb9.i.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h57e69618e9e632f2E.exit.i" %iter.i.i.i.i.i.sroa.8.0152.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h57e69618e9e632f2E.exit.i" ], [ %12, %bb9.i.i.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0152.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0152.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0152.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2553 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !2553 %4 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !2553 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !2553 %6 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0152.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2553 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !2553 %7 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2553 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !2553 %9 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0152.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !2553 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !2553 %10 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !2553 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !2553 %12 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0152.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !2553 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !2553 %13 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !2553 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !2553 %exitcond.not.i.3 = icmp eq i64 %12, 128 br i1 %exitcond.not.i.3, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i", label %bb9.i.i.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i": ; preds = %bb9.i.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2558) tail call void @llvm.experimental.noalias.scope.decl(metadata !2561) tail call void @llvm.experimental.noalias.scope.decl(metadata !2563) %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %18 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %18, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %19 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %19, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %20, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %21, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %22, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %23, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %24 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %25 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %26 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %30 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %31 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %33 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" ], [ %36, %bb38.us.i.i ] %36 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2561, !noalias !2566 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2561, !noalias !2566 %37 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %31, %37 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %30, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %38) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2561, !noalias !2566 %40 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %33, %40 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %41) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !2561, !noalias !2566 %43 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %35, %43 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %34, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %44) #23 %46 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %42 %47 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %42 %48 = fadd <4 x double> %39, %45 %49 = fsub <4 x double> %39, %45 %50 = bitcast <4 x double> %49 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %46, %48 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2558, !noalias !2567 %55 = fsub <4 x double> %47, %53 store <4 x double> %55, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2558, !noalias !2567 %56 = fsub <4 x double> %46, %48 store <4 x double> %56, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2558, !noalias !2567 %57 = fadd <4 x double> %47, %53 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2558, !noalias !2567 %exitcond.not.i.i = icmp eq i64 %36, 32 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i.1.i = load double, ptr %58, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %59 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %59, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %60 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i.1.i = load double, ptr %60, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %61, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i.1.i = load double, ptr %62, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %63, align 8, !alias.scope !2563, !noalias !2565, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %64 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %65 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %66 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %70 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %71 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> zeroinitializer %72 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %73 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> zeroinitializer %74 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %75 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %76, %bb38.us.i.1.i ] %76 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2561, !noalias !2566 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2561, !noalias !2566 %77 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %71, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %70, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %78) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2561, !noalias !2566 %80 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %73, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %81) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !2561, !noalias !2566 %83 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %75, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %74, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %84) #23 %86 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %82 %87 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %82 %88 = fadd <4 x double> %79, %85 %89 = fsub <4 x double> %79, %85 %90 = bitcast <4 x double> %89 to <4 x i64> %91 = xor <4 x i64> %90, %92 = bitcast <4 x i64> %91 to <4 x double> %93 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> %94 = fadd <4 x double> %86, %88 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2558, !noalias !2567 %95 = fsub <4 x double> %87, %93 store <4 x double> %95, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2558, !noalias !2567 %96 = fsub <4 x double> %86, %88 store <4 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2558, !noalias !2567 %97 = fadd <4 x double> %87, %93 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2558, !noalias !2567 %exitcond.not.i.1.i = icmp eq i64 %76, 32 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2568) tail call void @llvm.experimental.noalias.scope.decl(metadata !2571) tail call void @llvm.experimental.noalias.scope.decl(metadata !2573) br label %bb22.us.i37.i bb22.us.i37.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i71.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter.sroa.60.0707.us.i38.i = phi i64 [ %138, %bb36.bb20.loopexit_crit_edge.us.i71.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i = shl i64 %iter.sroa.60.0707.us.i38.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %start1.i.i.i.i.i.i.us.i41.i = shl i64 %iter.sroa.60.0707.us.i38.i, 5 %data.i.i.i.i.i.i.us.i42.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i41.i %data.i.i.i.i.i.i.i.i.us.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %data.i.i.i.i.i.i.i.i.i.i.us.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %start1.i.i.i.i.us.i46.i = shl i64 %iter.sroa.60.0707.us.i38.i, 4 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 1 %w1.0.us.i47.i = load double, ptr %98, align 8, !alias.scope !2573, !noalias !2575, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 1, i32 1 %w1.1.us.i48.i = load double, ptr %99, align 8, !alias.scope !2573, !noalias !2575, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 2 %w2.0.us.i49.i = load double, ptr %100, align 8, !alias.scope !2573, !noalias !2575, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 2, i32 1 %w2.1.us.i50.i = load double, ptr %101, align 8, !alias.scope !2573, !noalias !2575, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 3 %w3.0.us.i51.i = load double, ptr %102, align 8, !alias.scope !2573, !noalias !2575, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 3, i32 1 %w3.1.us.i52.i = load double, ptr %103, align 8, !alias.scope !2573, !noalias !2575, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i53.i = insertelement <2 x double> poison, double %w1.0.us.i47.i, i64 0 %104 = insertelement <4 x double> poison, double %w1.1.us.i48.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i54.i = insertelement <2 x double> poison, double %w2.0.us.i49.i, i64 0 %105 = insertelement <4 x double> poison, double %w2.1.us.i50.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i55.i = insertelement <2 x double> poison, double %w3.0.us.i51.i, i64 0 %106 = insertelement <4 x double> poison, double %w3.1.us.i52.i, i64 0 %107 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 16 %108 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 8 %109 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 24 %110 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i53.i, <2 x double> poison, <4 x i32> zeroinitializer %111 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> zeroinitializer %112 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i54.i, <2 x double> poison, <4 x i32> zeroinitializer %113 = shufflevector <4 x double> %105, <4 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i55.i, <2 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <4 x double> %106, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i56.i bb38.us.i56.i: ; preds = %bb38.us.i56.i, %bb22.us.i37.i %iter5.sroa.50.0694.us.i57.i = phi i64 [ 0, %bb22.us.i37.i ], [ %116, %bb38.us.i56.i ] %116 = add nuw nsw i64 %iter5.sroa.50.0694.us.i57.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i60.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i43.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %108, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %107, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %109, i64 %iter5.sroa.50.0694.us.i57.i %a.sroa.0.0.copyload.us.i66.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !2571, !noalias !2576 %_84.sroa.0.0.copyload.us.i67.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !2571, !noalias !2576 %117 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i67.i, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %111, %117 %119 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %_84.sroa.0.0.copyload.us.i67.i, <4 x double> %118) #23 %_86.sroa.0.0.copyload.us.i68.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !2571, !noalias !2576 %120 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i68.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %113, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %112, <4 x double> %_86.sroa.0.0.copyload.us.i68.i, <4 x double> %121) #23 %_88.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.us.i65.i, align 8, !alias.scope !2571, !noalias !2576 %123 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i69.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %115, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %114, <4 x double> %_88.sroa.0.0.copyload.us.i69.i, <4 x double> %124) #23 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i66.i, %122 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i66.i, %122 %128 = fadd <4 x double> %119, %125 %129 = fsub <4 x double> %119, %125 %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i58.i, align 8, !alias.scope !2568, !noalias !2577 %135 = fsub <4 x double> %127, %133 store <4 x double> %135, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i59.i, align 8, !alias.scope !2568, !noalias !2577 %136 = fsub <4 x double> %126, %128 store <4 x double> %136, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i60.i, align 8, !alias.scope !2568, !noalias !2577 %137 = fadd <4 x double> %127, %133 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !2568, !noalias !2577 %exitcond.not.i70.i = icmp eq i64 %116, 8 br i1 %exitcond.not.i70.i, label %bb36.bb20.loopexit_crit_edge.us.i71.i, label %bb38.us.i56.i bb36.bb20.loopexit_crit_edge.us.i71.i: ; preds = %bb38.us.i56.i %138 = add nuw nsw i64 %iter.sroa.60.0707.us.i38.i, 1 %exitcond153.not.i = icmp eq i64 %138, 8 br i1 %exitcond153.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i, label %bb22.us.i37.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i71.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2578) tail call void @llvm.experimental.noalias.scope.decl(metadata !2581) tail call void @llvm.experimental.noalias.scope.decl(metadata !2583) br label %bb22.us.i93.i bb22.us.i93.i: ; preds = %bb22.us.i93.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i %iter.sroa.60.0707.us.i94.i = phi i64 [ %199, %bb22.us.i93.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i = shl nuw i64 %iter.sroa.60.0707.us.i94.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %start1.i.i.i.i.i.i.us.i97.i = shl i64 %iter.sroa.60.0707.us.i94.i, 3 %data.i.i.i.i.i.i.us.i98.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i97.i %data.i.i.i.i.i.i.i.i.us.i99.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %data.i.i.i.i.i.i.i.i.i.i.us.i100.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i101.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %start1.i.i.i.i.us.i102.i = shl i64 %iter.sroa.60.0707.us.i94.i, 2 %139 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 1 %w1.0.us.i103.i = load double, ptr %139, align 8, !alias.scope !2583, !noalias !2585, !noundef !3 %140 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 1, i32 1 %w1.1.us.i104.i = load double, ptr %140, align 8, !alias.scope !2583, !noalias !2585, !noundef !3 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 2 %w2.0.us.i105.i = load double, ptr %141, align 8, !alias.scope !2583, !noalias !2585, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 2, i32 1 %w2.1.us.i106.i = load double, ptr %142, align 8, !alias.scope !2583, !noalias !2585, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 3 %w3.0.us.i107.i = load double, ptr %143, align 8, !alias.scope !2583, !noalias !2585, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 3, i32 1 %w3.1.us.i108.i = load double, ptr %144, align 8, !alias.scope !2583, !noalias !2585, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i109.i = insertelement <2 x double> poison, double %w1.0.us.i103.i, i64 0 %145 = insertelement <4 x double> poison, double %w1.1.us.i104.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i110.i = insertelement <2 x double> poison, double %w2.0.us.i105.i, i64 0 %146 = insertelement <4 x double> poison, double %w2.1.us.i106.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i111.i = insertelement <2 x double> poison, double %w3.0.us.i107.i, i64 0 %147 = insertelement <4 x double> poison, double %w3.1.us.i108.i, i64 0 %148 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 4 %149 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 2 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 6 %151 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i109.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i110.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i111.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i122.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i98.i, align 8, !alias.scope !2581, !noalias !2586 %_84.sroa.0.0.copyload.us.i123.i = load <4 x double>, ptr %149, align 8, !alias.scope !2581, !noalias !2586 %157 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i123.i, <4 x double> poison, <4 x i32> %158 = fmul <4 x double> %152, %157 %159 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %_84.sroa.0.0.copyload.us.i123.i, <4 x double> %158) #23 %_86.sroa.0.0.copyload.us.i124.i = load <4 x double>, ptr %148, align 8, !alias.scope !2581, !noalias !2586 %160 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i124.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_86.sroa.0.0.copyload.us.i124.i, <4 x double> %161) #23 %_88.sroa.0.0.copyload.us.i125.i = load <4 x double>, ptr %150, align 8, !alias.scope !2581, !noalias !2586 %163 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i125.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %156, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_88.sroa.0.0.copyload.us.i125.i, <4 x double> %164) #23 %166 = fadd <4 x double> %a.sroa.0.0.copyload.us.i122.i, %162 %167 = fsub <4 x double> %a.sroa.0.0.copyload.us.i122.i, %162 %168 = fadd <4 x double> %159, %165 %169 = fsub <4 x double> %159, %165 %170 = bitcast <4 x double> %169 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %166, %168 store <4 x double> %174, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.i, align 8, !alias.scope !2578, !noalias !2587 %175 = fsub <4 x double> %167, %173 store <4 x double> %175, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i101.i, align 8, !alias.scope !2578, !noalias !2587 %176 = fsub <4 x double> %166, %168 store <4 x double> %176, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i100.i, align 8, !alias.scope !2578, !noalias !2587 %177 = fadd <4 x double> %167, %173 store <4 x double> %177, ptr %data.i.i.i.i.i.i.i.i.us.i99.i, align 8, !alias.scope !2578, !noalias !2587 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i115.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i101.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i116.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i100.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i99.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 3 %_3.i.i.i.i.i.i.us.i120.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 5 %_3.i.i.i.i.us.i121.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 7 %a.sroa.0.0.copyload.us.i122.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !2581, !noalias !2586 %_84.sroa.0.0.copyload.us.i123.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i119.1.i, align 8, !alias.scope !2581, !noalias !2586 %178 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i123.1.i, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %152, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %_84.sroa.0.0.copyload.us.i123.1.i, <4 x double> %179) #23 %_86.sroa.0.0.copyload.us.i124.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i120.1.i, align 8, !alias.scope !2581, !noalias !2586 %181 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i124.1.i, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %154, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_86.sroa.0.0.copyload.us.i124.1.i, <4 x double> %182) #23 %_88.sroa.0.0.copyload.us.i125.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i121.1.i, align 8, !alias.scope !2581, !noalias !2586 %184 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i125.1.i, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %156, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_88.sroa.0.0.copyload.us.i125.1.i, <4 x double> %185) #23 %187 = fadd <4 x double> %a.sroa.0.0.copyload.us.i122.1.i, %183 %188 = fsub <4 x double> %a.sroa.0.0.copyload.us.i122.1.i, %183 %189 = fadd <4 x double> %180, %186 %190 = fsub <4 x double> %180, %186 %191 = bitcast <4 x double> %190 to <4 x i64> %192 = xor <4 x i64> %191, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %189 store <4 x double> %195, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1.i, align 8, !alias.scope !2578, !noalias !2587 %196 = fsub <4 x double> %188, %194 store <4 x double> %196, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i115.1.i, align 8, !alias.scope !2578, !noalias !2587 %197 = fsub <4 x double> %187, %189 store <4 x double> %197, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i116.1.i, align 8, !alias.scope !2578, !noalias !2587 %198 = fadd <4 x double> %188, %194 store <4 x double> %198, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !2578, !noalias !2587 %199 = add nuw nsw i64 %iter.sroa.60.0707.us.i94.i, 1 %exitcond154.not.i = icmp eq i64 %199, 32 br i1 %exitcond154.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i, label %bb22.us.i93.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i: ; preds = %bb22.us.i93.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2588) tail call void @llvm.experimental.noalias.scope.decl(metadata !2591) tail call void @llvm.experimental.noalias.scope.decl(metadata !2593) %200 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %201 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %202 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 br label %bb15.i132.i bb15.i132.i: ; preds = %bb15.i132.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i %iter.sroa.50.0547.i.i = phi i64 [ %203, %bb15.i132.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i ] %203 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %201, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %200, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %202, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2593, !noalias !2595 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2593, !noalias !2595 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !2593, !noalias !2595 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2591, !noalias !2596 %204 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %204, align 8, !alias.scope !2591, !noalias !2596 %205 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %205, align 8, !alias.scope !2591, !noalias !2596 %206 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %206, align 8, !alias.scope !2591, !noalias !2596 %207 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %208 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %211, %209 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %208, <4 x double> %212) #23 %214 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %217, %215 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %216, <4 x double> %214, <4 x double> %218) #23 %220 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %223, %221 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %222, <4 x double> %220, <4 x double> %224) #23 %226 = fadd <4 x double> %207, %219 %227 = fsub <4 x double> %207, %219 %228 = fadd <4 x double> %213, %225 %229 = fsub <4 x double> %213, %225 %230 = bitcast <4 x double> %229 to <4 x i64> %231 = xor <4 x i64> %230, %232 = bitcast <4 x i64> %231 to <4 x double> %233 = shufflevector <4 x double> %232, <4 x double> poison, <4 x i32> %234 = fadd <4 x double> %226, %228 store <4 x double> %234, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2588, !noalias !2597 %235 = fsub <4 x double> %227, %233 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2588, !noalias !2597 %236 = fsub <4 x double> %226, %228 store <4 x double> %236, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2588, !noalias !2597 %237 = fadd <4 x double> %227, %233 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2588, !noalias !2597 %exitcond.not.i133.i = icmp eq i64 %203, 64 br i1 %exitcond.not.i133.i, label %_ZN4pulp3x862V39vectorize6__impl17h4acd6677bd91742fE.exit, label %bb15.i132.i _ZN4pulp3x862V39vectorize6__impl17h4acd6677bd91742fE.exit: ; preds = %bb15.i132.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2553 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h132cc96881bae056E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h599c4ff98b02a33cE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1630d306646eec02E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17ha83c19226a513fbfE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h184f5cf369fc44eeE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2598 store i64 64, ptr %n.i, align 8, !noalias !2598 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2598 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2598 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2598 store ptr null, ptr %_16.i, align 8, !noalias !2598 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2598 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2598 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2598 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2598 store ptr null, ptr %_24.i, align 8, !noalias !2598 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2598 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2598 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2598 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2598 store ptr null, ptr %_32.i, align 8, !noalias !2598 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2598 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2598 store i64 %w.1, ptr %_34.i, align 8, !noalias !2598 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2598 store ptr null, ptr %_40.i, align 8, !noalias !2598 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2598 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %3, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %4, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %5, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %6, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %7, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %8, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %9 = fneg <4 x double> %wide.masked.gather1 %10 = fneg <4 x double> %wide.masked.gather3 %11 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !2601 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %1, align 8, !noalias !2601 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %0, align 8, !noalias !2601 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %2, align 8, !noalias !2601 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec, %strided.vec11 %13 = fadd <4 x double> %strided.vec6, %strided.vec12 %14 = fsub <4 x double> %strided.vec, %strided.vec11 %15 = fsub <4 x double> %strided.vec6, %strided.vec12 %16 = fadd <4 x double> %strided.vec8, %strided.vec14 %17 = fadd <4 x double> %strided.vec9, %strided.vec15 %18 = fsub <4 x double> %strided.vec8, %strided.vec14 %19 = fsub <4 x double> %strided.vec9, %strided.vec15 %20 = fadd <4 x double> %12, %16 %21 = fadd <4 x double> %13, %17 %22 = fsub <4 x double> %14, %19 %23 = fadd <4 x double> %15, %18 %24 = fmul <4 x double> %23, %9 %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %22, <4 x double> %24) %26 = fmul <4 x double> %wide.masked.gather1, %22 %27 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %23, <4 x double> %26) %28 = fsub <4 x double> %12, %16 %29 = fsub <4 x double> %13, %17 %30 = fmul <4 x double> %29, %10 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather3, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %29, <4 x double> %32) %34 = fadd <4 x double> %14, %19 %35 = fsub <4 x double> %15, %18 %36 = fmul <4 x double> %35, %11 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather5, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %35, <4 x double> %38) %40 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> %41 = shufflevector <4 x double> %25, <4 x double> %27, <8 x i32> %42 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %43 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %44 = shufflevector <8 x double> %40, <8 x double> %41, <16 x i32> %45 = shufflevector <8 x double> %42, <8 x double> %43, <16 x i32> %interleaved.vec = shufflevector <16 x double> %44, <16 x double> %45, <32 x i32> store <32 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !2601 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %49 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %50 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %57 = fneg <4 x double> %wide.masked.gather1.1 %58 = fneg <4 x double> %wide.masked.gather3.1 %59 = fneg <4 x double> %wide.masked.gather5.1 %wide.vec.1 = load <8 x double>, ptr %46, align 8, !noalias !2601 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec6.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec7.1 = load <8 x double>, ptr %47, align 8, !noalias !2601 %strided.vec8.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %strided.vec9.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %wide.vec10.1 = load <8 x double>, ptr %48, align 8, !noalias !2601 %strided.vec11.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %strided.vec12.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %wide.vec13.1 = load <8 x double>, ptr %49, align 8, !noalias !2601 %strided.vec14.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %strided.vec15.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %60 = fadd <4 x double> %strided.vec.1, %strided.vec11.1 %61 = fadd <4 x double> %strided.vec6.1, %strided.vec12.1 %62 = fsub <4 x double> %strided.vec.1, %strided.vec11.1 %63 = fsub <4 x double> %strided.vec6.1, %strided.vec12.1 %64 = fadd <4 x double> %strided.vec8.1, %strided.vec14.1 %65 = fadd <4 x double> %strided.vec9.1, %strided.vec15.1 %66 = fsub <4 x double> %strided.vec8.1, %strided.vec14.1 %67 = fsub <4 x double> %strided.vec9.1, %strided.vec15.1 %68 = fadd <4 x double> %60, %64 %69 = fadd <4 x double> %61, %65 %70 = fsub <4 x double> %62, %67 %71 = fadd <4 x double> %63, %66 %72 = fmul <4 x double> %71, %57 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %70, <4 x double> %72) %74 = fmul <4 x double> %wide.masked.gather1.1, %70 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %71, <4 x double> %74) %76 = fsub <4 x double> %60, %64 %77 = fsub <4 x double> %61, %65 %78 = fmul <4 x double> %77, %58 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %76, <4 x double> %78) %80 = fmul <4 x double> %wide.masked.gather3.1, %76 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %77, <4 x double> %80) %82 = fadd <4 x double> %62, %67 %83 = fsub <4 x double> %63, %66 %84 = fmul <4 x double> %83, %59 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %82, <4 x double> %84) %86 = fmul <4 x double> %wide.masked.gather5.1, %82 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %83, <4 x double> %86) %88 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> %89 = shufflevector <4 x double> %73, <4 x double> %75, <8 x i32> %90 = shufflevector <4 x double> %79, <4 x double> %81, <8 x i32> %91 = shufflevector <4 x double> %85, <4 x double> %87, <8 x i32> %92 = shufflevector <8 x double> %88, <8 x double> %89, <16 x i32> %93 = shufflevector <8 x double> %90, <8 x double> %91, <16 x i32> %interleaved.vec.1 = shufflevector <16 x double> %92, <16 x double> %93, <32 x i32> store <32 x double> %interleaved.vec.1, ptr %50, align 8, !noalias !2601 %94 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %95 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %96 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %97 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %98 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %104, i32 8, <4 x i1> , <4 x double> poison), !noalias !2601 %105 = fneg <4 x double> %wide.masked.gather1.2 %106 = fneg <4 x double> %wide.masked.gather3.2 %107 = fneg <4 x double> %wide.masked.gather5.2 %wide.vec.2 = load <8 x double>, ptr %94, align 8, !noalias !2601 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec6.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec7.2 = load <8 x double>, ptr %95, align 8, !noalias !2601 %strided.vec8.2 = shufflevector <8 x double> %wide.vec7.2, <8 x double> poison, <4 x i32> %strided.vec9.2 = shufflevector <8 x double> %wide.vec7.2, <8 x double> poison, <4 x i32> %wide.vec10.2 = load <8 x double>, ptr %96, align 8, !noalias !2601 %strided.vec11.2 = shufflevector <8 x double> %wide.vec10.2, <8 x double> poison, <4 x i32> %strided.vec12.2 = shufflevector <8 x double> %wide.vec10.2, <8 x double> poison, <4 x i32> %wide.vec13.2 = load <8 x double>, ptr %97, align 8, !noalias !2601 %strided.vec14.2 = shufflevector <8 x double> %wide.vec13.2, <8 x double> poison, <4 x i32> %strided.vec15.2 = shufflevector <8 x double> %wide.vec13.2, <8 x double> poison, <4 x i32> %108 = fadd <4 x double> %strided.vec.2, %strided.vec11.2 %109 = fadd <4 x double> %strided.vec6.2, %strided.vec12.2 %110 = fsub <4 x double> %strided.vec.2, %strided.vec11.2 %111 = fsub <4 x double> %strided.vec6.2, %strided.vec12.2 %112 = fadd <4 x double> %strided.vec8.2, %strided.vec14.2 %113 = fadd <4 x double> %strided.vec9.2, %strided.vec15.2 %114 = fsub <4 x double> %strided.vec8.2, %strided.vec14.2 %115 = fsub <4 x double> %strided.vec9.2, %strided.vec15.2 %116 = fadd <4 x double> %108, %112 %117 = fadd <4 x double> %109, %113 %118 = fsub <4 x double> %110, %115 %119 = fadd <4 x double> %111, %114 %120 = fmul <4 x double> %119, %105 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %118, <4 x double> %120) %122 = fmul <4 x double> %wide.masked.gather1.2, %118 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %119, <4 x double> %122) %124 = fsub <4 x double> %108, %112 %125 = fsub <4 x double> %109, %113 %126 = fmul <4 x double> %125, %106 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.2, <4 x double> %124, <4 x double> %126) %128 = fmul <4 x double> %wide.masked.gather3.2, %124 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.2, <4 x double> %125, <4 x double> %128) %130 = fadd <4 x double> %110, %115 %131 = fsub <4 x double> %111, %114 %132 = fmul <4 x double> %131, %107 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.2, <4 x double> %130, <4 x double> %132) %134 = fmul <4 x double> %wide.masked.gather5.2, %130 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.2, <4 x double> %131, <4 x double> %134) %136 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> %137 = shufflevector <4 x double> %121, <4 x double> %123, <8 x i32> %138 = shufflevector <4 x double> %127, <4 x double> %129, <8 x i32> %139 = shufflevector <4 x double> %133, <4 x double> %135, <8 x i32> %140 = shufflevector <8 x double> %136, <8 x double> %137, <16 x i32> %141 = shufflevector <8 x double> %138, <8 x double> %139, <16 x i32> %interleaved.vec.2 = shufflevector <16 x double> %140, <16 x double> %141, <32 x i32> store <32 x double> %interleaved.vec.2, ptr %98, align 8, !noalias !2601 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i.i = load double, ptr %142, align 8, !noalias !2601, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %143, align 8, !noalias !2601, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2 %w2.0.i.i.i = load double, ptr %144, align 8, !noalias !2601, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %145, align 8, !noalias !2601, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3 %w3.0.i.i.i = load double, ptr %146, align 8, !noalias !2601, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %147, align 8, !noalias !2601, !noundef !3 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %151 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2601 %152 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2601 %153 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2601 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !2601 %155 = fadd <2 x double> %151, %153 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %155, %156 store <2 x double> %157, ptr %data.i.i.i.i.i.i, align 8, !noalias !2601 %158 = fsub <2 x double> %151, %153 %159 = fsub <2 x double> %152, %154 %160 = shufflevector <2 x double> %159, <2 x double> poison, <2 x i32> %161 = fsub <2 x double> %158, %160 %162 = fadd <2 x double> %158, %160 %163 = shufflevector <2 x double> %161, <2 x double> %162, <2 x i32> %164 = shufflevector <2 x double> %163, <2 x double> poison, <2 x i32> %165 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %166 = insertelement <2 x double> %165, double %w1.1.i.i.i, i64 1 %167 = fmul <2 x double> %164, %166 %168 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %169 = shufflevector <2 x double> %168, <2 x double> poison, <2 x i32> zeroinitializer %170 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %169, <2 x double> %163, <2 x double> %167) store <2 x double> %170, ptr %149, align 8, !noalias !2601 %171 = fsub <2 x double> %155, %156 %172 = shufflevector <2 x double> %171, <2 x double> poison, <2 x i32> %173 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %174 = insertelement <2 x double> %173, double %w2.1.i.i.i, i64 1 %175 = fmul <2 x double> %172, %174 %176 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %177 = shufflevector <2 x double> %176, <2 x double> poison, <2 x i32> zeroinitializer %178 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %177, <2 x double> %171, <2 x double> %175) store <2 x double> %178, ptr %148, align 8, !noalias !2601 %179 = shufflevector <2 x double> %162, <2 x double> %161, <2 x i32> %180 = shufflevector <2 x double> %179, <2 x double> poison, <2 x i32> %181 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %182 = insertelement <2 x double> %181, double %w3.1.i.i.i, i64 1 %183 = fmul <2 x double> %180, %182 %184 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %185 = shufflevector <2 x double> %184, <2 x double> poison, <2 x i32> zeroinitializer %186 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %185, <2 x double> %179, <2 x double> %183) store <2 x double> %186, ptr %150, align 8, !noalias !2601 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1 %w1.0.i.i.i.1 = load double, ptr %187, align 8, !noalias !2601, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %188, align 8, !noalias !2601, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2 %w2.0.i.i.i.1 = load double, ptr %189, align 8, !noalias !2601, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %190, align 8, !noalias !2601, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3 %w3.0.i.i.i.1 = load double, ptr %191, align 8, !noalias !2601, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %192, align 8, !noalias !2601, !noundef !3 %193 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %196 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2601 %197 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2601 %198 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2601 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2601 %200 = fadd <2 x double> %196, %198 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %200, %201 store <2 x double> %202, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !2601 %203 = fsub <2 x double> %196, %198 %204 = fsub <2 x double> %197, %199 %205 = shufflevector <2 x double> %204, <2 x double> poison, <2 x i32> %206 = fsub <2 x double> %203, %205 %207 = fadd <2 x double> %203, %205 %208 = shufflevector <2 x double> %206, <2 x double> %207, <2 x i32> %209 = shufflevector <2 x double> %208, <2 x double> poison, <2 x i32> %210 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %211 = insertelement <2 x double> %210, double %w1.1.i.i.i.1, i64 1 %212 = fmul <2 x double> %209, %211 %213 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %214 = shufflevector <2 x double> %213, <2 x double> poison, <2 x i32> zeroinitializer %215 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %214, <2 x double> %208, <2 x double> %212) store <2 x double> %215, ptr %194, align 8, !noalias !2601 %216 = fsub <2 x double> %200, %201 %217 = shufflevector <2 x double> %216, <2 x double> poison, <2 x i32> %218 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %219 = insertelement <2 x double> %218, double %w2.1.i.i.i.1, i64 1 %220 = fmul <2 x double> %217, %219 %221 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %222 = shufflevector <2 x double> %221, <2 x double> poison, <2 x i32> zeroinitializer %223 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %222, <2 x double> %216, <2 x double> %220) store <2 x double> %223, ptr %193, align 8, !noalias !2601 %224 = shufflevector <2 x double> %207, <2 x double> %206, <2 x i32> %225 = shufflevector <2 x double> %224, <2 x double> poison, <2 x i32> %226 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %227 = insertelement <2 x double> %226, double %w3.1.i.i.i.1, i64 1 %228 = fmul <2 x double> %225, %227 %229 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> zeroinitializer %231 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %230, <2 x double> %224, <2 x double> %228) store <2 x double> %231, ptr %195, align 8, !noalias !2601 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %232 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.i.i.i.2 = load double, ptr %232, align 8, !noalias !2601, !noundef !3 %233 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %233, align 8, !noalias !2601, !noundef !3 %234 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2 %w2.0.i.i.i.2 = load double, ptr %234, align 8, !noalias !2601, !noundef !3 %235 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %235, align 8, !noalias !2601, !noundef !3 %236 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3 %w3.0.i.i.i.2 = load double, ptr %236, align 8, !noalias !2601, !noundef !3 %237 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %237, align 8, !noalias !2601, !noundef !3 %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %241 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2601 %242 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2601 %243 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2601 %244 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !2601 %245 = fadd <2 x double> %241, %243 %246 = fadd <2 x double> %242, %244 %247 = fadd <2 x double> %245, %246 store <2 x double> %247, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !2601 %248 = fsub <2 x double> %241, %243 %249 = fsub <2 x double> %242, %244 %250 = shufflevector <2 x double> %249, <2 x double> poison, <2 x i32> %251 = fsub <2 x double> %248, %250 %252 = fadd <2 x double> %248, %250 %253 = shufflevector <2 x double> %251, <2 x double> %252, <2 x i32> %254 = shufflevector <2 x double> %253, <2 x double> poison, <2 x i32> %255 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %256 = insertelement <2 x double> %255, double %w1.1.i.i.i.2, i64 1 %257 = fmul <2 x double> %254, %256 %258 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %259 = shufflevector <2 x double> %258, <2 x double> poison, <2 x i32> zeroinitializer %260 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %259, <2 x double> %253, <2 x double> %257) store <2 x double> %260, ptr %239, align 8, !noalias !2601 %261 = fsub <2 x double> %245, %246 %262 = shufflevector <2 x double> %261, <2 x double> poison, <2 x i32> %263 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %264 = insertelement <2 x double> %263, double %w2.1.i.i.i.2, i64 1 %265 = fmul <2 x double> %262, %264 %266 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %267 = shufflevector <2 x double> %266, <2 x double> poison, <2 x i32> zeroinitializer %268 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %267, <2 x double> %261, <2 x double> %265) store <2 x double> %268, ptr %238, align 8, !noalias !2601 %269 = shufflevector <2 x double> %252, <2 x double> %251, <2 x i32> %270 = shufflevector <2 x double> %269, <2 x double> poison, <2 x i32> %271 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %272 = insertelement <2 x double> %271, double %w3.1.i.i.i.2, i64 1 %273 = fmul <2 x double> %270, %272 %274 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %275 = shufflevector <2 x double> %274, <2 x double> poison, <2 x i32> zeroinitializer %276 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %275, <2 x double> %269, <2 x double> %273) store <2 x double> %276, ptr %240, align 8, !noalias !2601 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %277 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1 %w1.0.i.i.i.3 = load double, ptr %277, align 8, !noalias !2601, !noundef !3 %278 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %278, align 8, !noalias !2601, !noundef !3 %279 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2 %w2.0.i.i.i.3 = load double, ptr %279, align 8, !noalias !2601, !noundef !3 %280 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %280, align 8, !noalias !2601, !noundef !3 %281 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3 %w3.0.i.i.i.3 = load double, ptr %281, align 8, !noalias !2601, !noundef !3 %282 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %282, align 8, !noalias !2601, !noundef !3 %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %284 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61 %285 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %286 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2601 %287 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2601 %288 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2601 %289 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !2601 %290 = fadd <2 x double> %286, %288 %291 = fadd <2 x double> %287, %289 %292 = fadd <2 x double> %290, %291 store <2 x double> %292, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !2601 %293 = fsub <2 x double> %286, %288 %294 = fsub <2 x double> %287, %289 %295 = shufflevector <2 x double> %294, <2 x double> poison, <2 x i32> %296 = fsub <2 x double> %293, %295 %297 = fadd <2 x double> %293, %295 %298 = shufflevector <2 x double> %296, <2 x double> %297, <2 x i32> %299 = shufflevector <2 x double> %298, <2 x double> poison, <2 x i32> %300 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %301 = insertelement <2 x double> %300, double %w1.1.i.i.i.3, i64 1 %302 = fmul <2 x double> %299, %301 %303 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %304 = shufflevector <2 x double> %303, <2 x double> poison, <2 x i32> zeroinitializer %305 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %304, <2 x double> %298, <2 x double> %302) store <2 x double> %305, ptr %284, align 8, !noalias !2601 %306 = fsub <2 x double> %290, %291 %307 = shufflevector <2 x double> %306, <2 x double> poison, <2 x i32> %308 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %309 = insertelement <2 x double> %308, double %w2.1.i.i.i.3, i64 1 %310 = fmul <2 x double> %307, %309 %311 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %312 = shufflevector <2 x double> %311, <2 x double> poison, <2 x i32> zeroinitializer %313 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %312, <2 x double> %306, <2 x double> %310) store <2 x double> %313, ptr %283, align 8, !noalias !2601 %314 = shufflevector <2 x double> %297, <2 x double> %296, <2 x i32> %315 = shufflevector <2 x double> %314, <2 x double> poison, <2 x i32> %316 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %317 = insertelement <2 x double> %316, double %w3.1.i.i.i.3, i64 1 %318 = fmul <2 x double> %315, %317 %319 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %320 = shufflevector <2 x double> %319, <2 x double> poison, <2 x i32> zeroinitializer %321 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %320, <2 x double> %314, <2 x double> %318) store <2 x double> %321, ptr %285, align 8, !noalias !2601 %322 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %323 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %324 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %325 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %326 = getelementptr inbounds %"num_complex::Complex", ptr %323, <4 x i64> %327 = getelementptr inbounds %"num_complex::Complex", ptr %322, <4 x i64> %328 = getelementptr inbounds %"num_complex::Complex", ptr %324, <4 x i64> %329 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %330 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %331 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %332 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %332, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %333 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %333, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %334 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %334, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %335 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %335, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %336 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %336, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %337 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %337, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %338 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %340 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %341 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %342 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %344 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %345 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %348 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %350 = fneg <4 x double> %wide.masked.gather25 %351 = fneg <4 x double> %wide.masked.gather27 %352 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %325, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %353 = getelementptr inbounds i8, <4 x ptr> %325, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %353, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %326, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %354 = getelementptr inbounds i8, <4 x ptr> %326, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %327, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %355 = getelementptr inbounds i8, <4 x ptr> %327, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %355, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %356 = getelementptr inbounds i8, <4 x ptr> %328, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %356, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %357 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %358 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %359 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %360 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %361 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %362 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %363 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %364 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %365 = fadd <4 x double> %357, %361 %366 = fadd <4 x double> %358, %362 %367 = extractelement <4 x double> %365, i64 0 store double %367, ptr %buf.0, align 8, !noalias !2598 %368 = extractelement <4 x double> %365, i64 1 store double %368, ptr %329, align 8, !noalias !2598 %369 = extractelement <4 x double> %365, i64 2 store double %369, ptr %330, align 8, !noalias !2598 %370 = getelementptr inbounds i8, ptr %buf.0, i64 8 %371 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16, i32 1 %372 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32, i32 1 %373 = extractelement <4 x double> %366, i64 0 store double %373, ptr %370, align 8, !noalias !2598 %374 = extractelement <4 x double> %366, i64 1 store double %374, ptr %371, align 8, !noalias !2598 %375 = extractelement <4 x double> %366, i64 2 store double %375, ptr %372, align 8, !noalias !2598 %376 = shufflevector <4 x double> %365, <4 x double> %366, <2 x i32> store <2 x double> %376, ptr %331, align 8, !noalias !2598 %377 = fsub <4 x double> %359, %364 %378 = fadd <4 x double> %360, %363 %379 = fmul <4 x double> %378, %350 %380 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %377, <4 x double> %379) %381 = fmul <4 x double> %wide.masked.gather25, %377 %382 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %378, <4 x double> %381) %383 = extractelement <4 x double> %380, i64 0 store double %383, ptr %342, align 8, !noalias !2598 %384 = extractelement <4 x double> %380, i64 1 store double %384, ptr %343, align 8, !noalias !2598 %385 = extractelement <4 x double> %380, i64 2 store double %385, ptr %344, align 8, !noalias !2598 %386 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4, i32 1 %387 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20, i32 1 %388 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36, i32 1 %389 = extractelement <4 x double> %382, i64 0 store double %389, ptr %386, align 8, !noalias !2598 %390 = extractelement <4 x double> %382, i64 1 store double %390, ptr %387, align 8, !noalias !2598 %391 = extractelement <4 x double> %382, i64 2 store double %391, ptr %388, align 8, !noalias !2598 %392 = shufflevector <4 x double> %380, <4 x double> %382, <2 x i32> store <2 x double> %392, ptr %345, align 8, !noalias !2598 %393 = fsub <4 x double> %357, %361 %394 = fsub <4 x double> %358, %362 %395 = fmul <4 x double> %394, %351 %396 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %393, <4 x double> %395) %397 = fmul <4 x double> %wide.masked.gather27, %393 %398 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %394, <4 x double> %397) %399 = extractelement <4 x double> %396, i64 0 store double %399, ptr %338, align 8, !noalias !2598 %400 = extractelement <4 x double> %396, i64 1 store double %400, ptr %339, align 8, !noalias !2598 %401 = extractelement <4 x double> %396, i64 2 store double %401, ptr %340, align 8, !noalias !2598 %402 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8, i32 1 %403 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24, i32 1 %404 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40, i32 1 %405 = extractelement <4 x double> %398, i64 0 store double %405, ptr %402, align 8, !noalias !2598 %406 = extractelement <4 x double> %398, i64 1 store double %406, ptr %403, align 8, !noalias !2598 %407 = extractelement <4 x double> %398, i64 2 store double %407, ptr %404, align 8, !noalias !2598 %408 = shufflevector <4 x double> %396, <4 x double> %398, <2 x i32> store <2 x double> %408, ptr %341, align 8, !noalias !2598 %409 = fadd <4 x double> %359, %364 %410 = fsub <4 x double> %360, %363 %411 = fmul <4 x double> %410, %352 %412 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %409, <4 x double> %411) %413 = fmul <4 x double> %wide.masked.gather29, %409 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %410, <4 x double> %413) %415 = extractelement <4 x double> %412, i64 0 store double %415, ptr %346, align 8, !noalias !2598 %416 = extractelement <4 x double> %412, i64 1 store double %416, ptr %347, align 8, !noalias !2598 %417 = extractelement <4 x double> %412, i64 2 store double %417, ptr %348, align 8, !noalias !2598 %418 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12, i32 1 %419 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28, i32 1 %420 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44, i32 1 %421 = extractelement <4 x double> %414, i64 0 store double %421, ptr %418, align 8, !noalias !2598 %422 = extractelement <4 x double> %414, i64 1 store double %422, ptr %419, align 8, !noalias !2598 %423 = extractelement <4 x double> %414, i64 2 store double %423, ptr %420, align 8, !noalias !2598 %424 = shufflevector <4 x double> %412, <4 x double> %414, <2 x i32> store <2 x double> %424, ptr %349, align 8, !noalias !2598 %425 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 1 %426 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 1 %427 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 1 %428 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 17 %431 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 33 %432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 49 %433 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %434 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 21 %435 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 37 %436 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 53 %437 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %438 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 25 %439 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 41 %440 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 57 %441 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %442 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %443 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45 %444 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %425, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %445 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %445, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %426, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %427, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %447 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %428, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %448 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %448, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %449 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %450 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %451 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %452 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %453 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %454 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %455 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %456 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %457 = fadd <4 x double> %449, %453 %458 = fadd <4 x double> %450, %454 %459 = extractelement <4 x double> %457, i64 0 store double %459, ptr %429, align 8, !noalias !2598 %460 = extractelement <4 x double> %457, i64 1 store double %460, ptr %430, align 8, !noalias !2598 %461 = extractelement <4 x double> %457, i64 2 store double %461, ptr %431, align 8, !noalias !2598 %462 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 17, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 33, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !2598 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !2598 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !2598 %468 = shufflevector <4 x double> %457, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %432, align 8, !noalias !2598 %469 = fsub <4 x double> %451, %456 %470 = fadd <4 x double> %452, %455 %471 = fmul <4 x double> %470, %350 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather25, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %433, align 8, !noalias !2598 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %434, align 8, !noalias !2598 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %435, align 8, !noalias !2598 %478 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 21, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 37, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !2598 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !2598 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !2598 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %436, align 8, !noalias !2598 %485 = fsub <4 x double> %449, %453 %486 = fsub <4 x double> %450, %454 %487 = fmul <4 x double> %486, %351 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather27, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %437, align 8, !noalias !2598 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %438, align 8, !noalias !2598 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %439, align 8, !noalias !2598 %494 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 25, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 41, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !2598 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !2598 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !2598 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %440, align 8, !noalias !2598 %501 = fadd <4 x double> %451, %456 %502 = fsub <4 x double> %452, %455 %503 = fmul <4 x double> %502, %352 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather29, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %441, align 8, !noalias !2598 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %442, align 8, !noalias !2598 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %443, align 8, !noalias !2598 %510 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !2598 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !2598 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !2598 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %444, align 8, !noalias !2598 %517 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 2 %518 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 2 %519 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 2 %520 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 2 %521 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %522 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %523 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34 %524 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %525 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %526 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %527 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38 %528 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %529 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %530 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %531 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42 %532 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %533 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %534 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %535 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %536 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %517, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %537 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %537, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %518, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %538 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %538, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %519, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %539 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %539, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %520, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %540 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %540, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %541 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %542 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %543 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %544 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %545 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %546 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %547 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %548 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %549 = fadd <4 x double> %541, %545 %550 = fadd <4 x double> %542, %546 %551 = extractelement <4 x double> %549, i64 0 store double %551, ptr %521, align 8, !noalias !2598 %552 = extractelement <4 x double> %549, i64 1 store double %552, ptr %522, align 8, !noalias !2598 %553 = extractelement <4 x double> %549, i64 2 store double %553, ptr %523, align 8, !noalias !2598 %554 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2, i32 1 %555 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18, i32 1 %556 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34, i32 1 %557 = extractelement <4 x double> %550, i64 0 store double %557, ptr %554, align 8, !noalias !2598 %558 = extractelement <4 x double> %550, i64 1 store double %558, ptr %555, align 8, !noalias !2598 %559 = extractelement <4 x double> %550, i64 2 store double %559, ptr %556, align 8, !noalias !2598 %560 = shufflevector <4 x double> %549, <4 x double> %550, <2 x i32> store <2 x double> %560, ptr %524, align 8, !noalias !2598 %561 = fsub <4 x double> %543, %548 %562 = fadd <4 x double> %544, %547 %563 = fmul <4 x double> %562, %350 %564 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %561, <4 x double> %563) %565 = fmul <4 x double> %wide.masked.gather25, %561 %566 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %562, <4 x double> %565) %567 = extractelement <4 x double> %564, i64 0 store double %567, ptr %525, align 8, !noalias !2598 %568 = extractelement <4 x double> %564, i64 1 store double %568, ptr %526, align 8, !noalias !2598 %569 = extractelement <4 x double> %564, i64 2 store double %569, ptr %527, align 8, !noalias !2598 %570 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6, i32 1 %571 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22, i32 1 %572 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38, i32 1 %573 = extractelement <4 x double> %566, i64 0 store double %573, ptr %570, align 8, !noalias !2598 %574 = extractelement <4 x double> %566, i64 1 store double %574, ptr %571, align 8, !noalias !2598 %575 = extractelement <4 x double> %566, i64 2 store double %575, ptr %572, align 8, !noalias !2598 %576 = shufflevector <4 x double> %564, <4 x double> %566, <2 x i32> store <2 x double> %576, ptr %528, align 8, !noalias !2598 %577 = fsub <4 x double> %541, %545 %578 = fsub <4 x double> %542, %546 %579 = fmul <4 x double> %578, %351 %580 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %577, <4 x double> %579) %581 = fmul <4 x double> %wide.masked.gather27, %577 %582 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %578, <4 x double> %581) %583 = extractelement <4 x double> %580, i64 0 store double %583, ptr %529, align 8, !noalias !2598 %584 = extractelement <4 x double> %580, i64 1 store double %584, ptr %530, align 8, !noalias !2598 %585 = extractelement <4 x double> %580, i64 2 store double %585, ptr %531, align 8, !noalias !2598 %586 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10, i32 1 %587 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26, i32 1 %588 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42, i32 1 %589 = extractelement <4 x double> %582, i64 0 store double %589, ptr %586, align 8, !noalias !2598 %590 = extractelement <4 x double> %582, i64 1 store double %590, ptr %587, align 8, !noalias !2598 %591 = extractelement <4 x double> %582, i64 2 store double %591, ptr %588, align 8, !noalias !2598 %592 = shufflevector <4 x double> %580, <4 x double> %582, <2 x i32> store <2 x double> %592, ptr %532, align 8, !noalias !2598 %593 = fadd <4 x double> %543, %548 %594 = fsub <4 x double> %544, %547 %595 = fmul <4 x double> %594, %352 %596 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %593, <4 x double> %595) %597 = fmul <4 x double> %wide.masked.gather29, %593 %598 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %594, <4 x double> %597) %599 = extractelement <4 x double> %596, i64 0 store double %599, ptr %533, align 8, !noalias !2598 %600 = extractelement <4 x double> %596, i64 1 store double %600, ptr %534, align 8, !noalias !2598 %601 = extractelement <4 x double> %596, i64 2 store double %601, ptr %535, align 8, !noalias !2598 %602 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14, i32 1 %603 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30, i32 1 %604 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46, i32 1 %605 = extractelement <4 x double> %598, i64 0 store double %605, ptr %602, align 8, !noalias !2598 %606 = extractelement <4 x double> %598, i64 1 store double %606, ptr %603, align 8, !noalias !2598 %607 = extractelement <4 x double> %598, i64 2 store double %607, ptr %604, align 8, !noalias !2598 %608 = shufflevector <4 x double> %596, <4 x double> %598, <2 x i32> store <2 x double> %608, ptr %536, align 8, !noalias !2598 %609 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 3 %610 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 3 %611 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 3 %612 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 3 %613 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %614 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 19 %615 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 35 %616 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 51 %617 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %618 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 23 %619 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 39 %620 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 55 %621 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %622 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 27 %623 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 43 %624 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 59 %625 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %626 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %627 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47 %628 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %609, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %629 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %629, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %610, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %630 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %630, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %611, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %631 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %631, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %612, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %632 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %632, i32 8, <4 x i1> , <4 x double> poison), !noalias !2598 %633 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %634 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %635 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %636 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %637 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %638 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %639 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %640 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %641 = fadd <4 x double> %633, %637 %642 = fadd <4 x double> %634, %638 %643 = extractelement <4 x double> %641, i64 0 store double %643, ptr %613, align 8, !noalias !2598 %644 = extractelement <4 x double> %641, i64 1 store double %644, ptr %614, align 8, !noalias !2598 %645 = extractelement <4 x double> %641, i64 2 store double %645, ptr %615, align 8, !noalias !2598 %646 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3, i32 1 %647 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 19, i32 1 %648 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 35, i32 1 %649 = extractelement <4 x double> %642, i64 0 store double %649, ptr %646, align 8, !noalias !2598 %650 = extractelement <4 x double> %642, i64 1 store double %650, ptr %647, align 8, !noalias !2598 %651 = extractelement <4 x double> %642, i64 2 store double %651, ptr %648, align 8, !noalias !2598 %652 = shufflevector <4 x double> %641, <4 x double> %642, <2 x i32> store <2 x double> %652, ptr %616, align 8, !noalias !2598 %653 = fsub <4 x double> %635, %640 %654 = fadd <4 x double> %636, %639 %655 = fmul <4 x double> %654, %350 %656 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %653, <4 x double> %655) %657 = fmul <4 x double> %wide.masked.gather25, %653 %658 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %654, <4 x double> %657) %659 = extractelement <4 x double> %656, i64 0 store double %659, ptr %617, align 8, !noalias !2598 %660 = extractelement <4 x double> %656, i64 1 store double %660, ptr %618, align 8, !noalias !2598 %661 = extractelement <4 x double> %656, i64 2 store double %661, ptr %619, align 8, !noalias !2598 %662 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7, i32 1 %663 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 23, i32 1 %664 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 39, i32 1 %665 = extractelement <4 x double> %658, i64 0 store double %665, ptr %662, align 8, !noalias !2598 %666 = extractelement <4 x double> %658, i64 1 store double %666, ptr %663, align 8, !noalias !2598 %667 = extractelement <4 x double> %658, i64 2 store double %667, ptr %664, align 8, !noalias !2598 %668 = shufflevector <4 x double> %656, <4 x double> %658, <2 x i32> store <2 x double> %668, ptr %620, align 8, !noalias !2598 %669 = fsub <4 x double> %633, %637 %670 = fsub <4 x double> %634, %638 %671 = fmul <4 x double> %670, %351 %672 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %669, <4 x double> %671) %673 = fmul <4 x double> %wide.masked.gather27, %669 %674 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %670, <4 x double> %673) %675 = extractelement <4 x double> %672, i64 0 store double %675, ptr %621, align 8, !noalias !2598 %676 = extractelement <4 x double> %672, i64 1 store double %676, ptr %622, align 8, !noalias !2598 %677 = extractelement <4 x double> %672, i64 2 store double %677, ptr %623, align 8, !noalias !2598 %678 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11, i32 1 %679 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 27, i32 1 %680 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 43, i32 1 %681 = extractelement <4 x double> %674, i64 0 store double %681, ptr %678, align 8, !noalias !2598 %682 = extractelement <4 x double> %674, i64 1 store double %682, ptr %679, align 8, !noalias !2598 %683 = extractelement <4 x double> %674, i64 2 store double %683, ptr %680, align 8, !noalias !2598 %684 = shufflevector <4 x double> %672, <4 x double> %674, <2 x i32> store <2 x double> %684, ptr %624, align 8, !noalias !2598 %685 = fadd <4 x double> %635, %640 %686 = fsub <4 x double> %636, %639 %687 = fmul <4 x double> %686, %352 %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %685, <4 x double> %687) %689 = fmul <4 x double> %wide.masked.gather29, %685 %690 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %686, <4 x double> %689) %691 = extractelement <4 x double> %688, i64 0 store double %691, ptr %625, align 8, !noalias !2598 %692 = extractelement <4 x double> %688, i64 1 store double %692, ptr %626, align 8, !noalias !2598 %693 = extractelement <4 x double> %688, i64 2 store double %693, ptr %627, align 8, !noalias !2598 %694 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15, i32 1 %695 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31, i32 1 %696 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47, i32 1 %697 = extractelement <4 x double> %690, i64 0 store double %697, ptr %694, align 8, !noalias !2598 %698 = extractelement <4 x double> %690, i64 1 store double %698, ptr %695, align 8, !noalias !2598 %699 = extractelement <4 x double> %690, i64 2 store double %699, ptr %696, align 8, !noalias !2598 %700 = shufflevector <4 x double> %688, <4 x double> %690, <2 x i32> store <2 x double> %700, ptr %628, align 8, !noalias !2598 %wide.vec69 = load <8 x double>, ptr %buf.0, align 8, !noalias !2598 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %1, align 8, !noalias !2598 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %0, align 8, !noalias !2598 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %2, align 8, !noalias !2598 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %701 = fadd <4 x double> %strided.vec70, %strided.vec76 %702 = fadd <4 x double> %strided.vec71, %strided.vec77 %703 = fsub <4 x double> %strided.vec70, %strided.vec76 %704 = fsub <4 x double> %strided.vec71, %strided.vec77 %705 = fadd <4 x double> %strided.vec73, %strided.vec79 %706 = fadd <4 x double> %strided.vec74, %strided.vec80 %707 = fsub <4 x double> %strided.vec73, %strided.vec79 %708 = fsub <4 x double> %strided.vec74, %strided.vec80 %709 = fadd <4 x double> %701, %705 %710 = fadd <4 x double> %702, %706 %711 = fsub <4 x double> %703, %708 %712 = fadd <4 x double> %704, %707 %713 = fsub <4 x double> %701, %705 %714 = fsub <4 x double> %702, %706 %715 = fadd <4 x double> %703, %708 %716 = fsub <4 x double> %704, %707 %interleaved.vec81 = shufflevector <4 x double> %709, <4 x double> %710, <8 x i32> store <8 x double> %interleaved.vec81, ptr %buf.0, align 8, !noalias !2598 %interleaved.vec82 = shufflevector <4 x double> %711, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec82, ptr %1, align 8, !noalias !2598 %interleaved.vec83 = shufflevector <4 x double> %713, <4 x double> %714, <8 x i32> store <8 x double> %interleaved.vec83, ptr %0, align 8, !noalias !2598 %interleaved.vec84 = shufflevector <4 x double> %715, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec84, ptr %2, align 8, !noalias !2598 %717 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %718 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %719 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %720 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec69.1 = load <8 x double>, ptr %717, align 8, !noalias !2598 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %718, align 8, !noalias !2598 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %719, align 8, !noalias !2598 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %720, align 8, !noalias !2598 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %721 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %722 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %723 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %724 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %725 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %726 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %727 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %728 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %729 = fadd <4 x double> %721, %725 %730 = fadd <4 x double> %722, %726 %731 = fsub <4 x double> %723, %728 %732 = fadd <4 x double> %724, %727 %733 = fsub <4 x double> %721, %725 %734 = fsub <4 x double> %722, %726 %735 = fadd <4 x double> %723, %728 %736 = fsub <4 x double> %724, %727 %interleaved.vec81.1 = shufflevector <4 x double> %729, <4 x double> %730, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %717, align 8, !noalias !2598 %interleaved.vec82.1 = shufflevector <4 x double> %731, <4 x double> %732, <8 x i32> store <8 x double> %interleaved.vec82.1, ptr %718, align 8, !noalias !2598 %interleaved.vec83.1 = shufflevector <4 x double> %733, <4 x double> %734, <8 x i32> store <8 x double> %interleaved.vec83.1, ptr %719, align 8, !noalias !2598 %interleaved.vec84.1 = shufflevector <4 x double> %735, <4 x double> %736, <8 x i32> store <8 x double> %interleaved.vec84.1, ptr %720, align 8, !noalias !2598 %737 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %738 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %739 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %740 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec69.2 = load <8 x double>, ptr %737, align 8, !noalias !2598 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %738, align 8, !noalias !2598 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %739, align 8, !noalias !2598 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %740, align 8, !noalias !2598 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %741 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %742 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %743 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %744 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %745 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %746 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %747 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %748 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %749 = fadd <4 x double> %741, %745 %750 = fadd <4 x double> %742, %746 %751 = fsub <4 x double> %743, %748 %752 = fadd <4 x double> %744, %747 %753 = fsub <4 x double> %741, %745 %754 = fsub <4 x double> %742, %746 %755 = fadd <4 x double> %743, %748 %756 = fsub <4 x double> %744, %747 %interleaved.vec81.2 = shufflevector <4 x double> %749, <4 x double> %750, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %737, align 8, !noalias !2598 %interleaved.vec82.2 = shufflevector <4 x double> %751, <4 x double> %752, <8 x i32> store <8 x double> %interleaved.vec82.2, ptr %738, align 8, !noalias !2598 %interleaved.vec83.2 = shufflevector <4 x double> %753, <4 x double> %754, <8 x i32> store <8 x double> %interleaved.vec83.2, ptr %739, align 8, !noalias !2598 %interleaved.vec84.2 = shufflevector <4 x double> %755, <4 x double> %756, <8 x i32> store <8 x double> %interleaved.vec84.2, ptr %740, align 8, !noalias !2598 %757 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %758 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %759 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %760 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec69.3 = load <8 x double>, ptr %757, align 8, !noalias !2598 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %758, align 8, !noalias !2598 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %759, align 8, !noalias !2598 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %760, align 8, !noalias !2598 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %761 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %762 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %763 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %764 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %765 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %766 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %767 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %768 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %769 = fadd <4 x double> %761, %765 %770 = fadd <4 x double> %762, %766 %771 = fsub <4 x double> %763, %768 %772 = fadd <4 x double> %764, %767 %773 = fsub <4 x double> %761, %765 %774 = fsub <4 x double> %762, %766 %775 = fadd <4 x double> %763, %768 %776 = fsub <4 x double> %764, %767 %interleaved.vec81.3 = shufflevector <4 x double> %769, <4 x double> %770, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %757, align 8, !noalias !2598 %interleaved.vec82.3 = shufflevector <4 x double> %771, <4 x double> %772, <8 x i32> store <8 x double> %interleaved.vec82.3, ptr %758, align 8, !noalias !2598 %interleaved.vec83.3 = shufflevector <4 x double> %773, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec83.3, ptr %759, align 8, !noalias !2598 %interleaved.vec84.3 = shufflevector <4 x double> %775, <4 x double> %776, <8 x i32> store <8 x double> %interleaved.vec84.3, ptr %760, align 8, !noalias !2598 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2598 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1873e18099d9befaE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2604 store i64 1024, ptr %n.i.i, align 8, !noalias !2604 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2604 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2604 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2604 store ptr null, ptr %_16.i.i, align 8, !noalias !2604 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2604 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2604 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2604 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2604 store ptr null, ptr %_24.i.i, align 8, !noalias !2604 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2604 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2604 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2604 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2604 store ptr null, ptr %_32.i.i, align 8, !noalias !2604 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2604 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2604 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2604 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf597784d77bc048eE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2604 store ptr null, ptr %_40.i.i, align 8, !noalias !2604 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf597784d77bc048eE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2604 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 br label %bb18.i.i.i.i bb18.i.i.i.i: ; preds = %bb18.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf597784d77bc048eE.exit.i" %iter6.i.i.i.sroa.22.0158.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf597784d77bc048eE.exit.i" ], [ %7, %bb18.i.i.i.i ] %4 = or disjoint i64 %iter6.i.i.i.sroa.22.0158.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.sroa.22.0158.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.sroa.22.0158.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.sroa.22.0158.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.i.i.i.sroa.22.0158.i %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2609 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2609 %5 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %5, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2609 store <4 x double> %6, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2609 %7 = add nuw nsw i64 %iter6.i.i.i.sroa.22.0158.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %_51.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !2609 %_52.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2609 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.sroa.0.0.copyload.i.1 %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2609 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !2609 %exitcond.not.i.1 = icmp eq i64 %7, 256 br i1 %exitcond.not.i.1, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i", label %bb18.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i": ; preds = %bb18.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2613) tail call void @llvm.experimental.noalias.scope.decl(metadata !2616) tail call void @llvm.experimental.noalias.scope.decl(metadata !2618) %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i br i1 %_2.i.i.i.i.i, label %bb30.i.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" %_2.i.i.i.i.i = phi i1 [ false, %bb28.loopexit.i.i ], [ true, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %iter.sroa.104.02127.i.i = phi i64 [ 1, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 8 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 128 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 192 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 160 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 224 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 6 %23 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %23, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %24 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %25, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %26, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %27 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %28, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %29, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %30 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %31, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %32, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %33 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %34, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %35, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %36 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %37, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %38, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %39 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %40, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %41, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %42 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %43, align 8, !alias.scope !2618, !noalias !2620, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %44 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %45 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> zeroinitializer %46 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %47 = shufflevector <4 x double> %39, <4 x double> poison, <4 x i32> zeroinitializer %48 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %49 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> zeroinitializer %50 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %51 = shufflevector <4 x double> %33, <4 x double> poison, <4 x i32> zeroinitializer %52 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %53 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer %54 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %55 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %57 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %58, %bb58.i.i ] %58 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %59 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %45, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %44, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %60) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %62 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %63 = fmul <4 x double> %47, %62 %64 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %46, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %63) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %65 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = fmul <4 x double> %49, %65 %67 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %66) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %68 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %69 = fmul <4 x double> %51, %68 %70 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %69) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %71 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %53, %71 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %52, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %72) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %74 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %55, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %54, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %75) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !2616, !noalias !2621 %77 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %57, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %78) #23 %80 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %70 %81 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %70 %82 = fadd <4 x double> %64, %76 %83 = fsub <4 x double> %64, %76 %84 = bitcast <4 x double> %83 to <4 x i64> %85 = fsub <4 x double> %67, %79 %86 = bitcast <4 x double> %85 to <4 x i64> %87 = xor <4 x i64> %84, %88 = bitcast <4 x i64> %87 to <4 x double> %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = xor <4 x i64> %86, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %61, %73 %94 = fsub <4 x double> %61, %73 %95 = fadd <4 x double> %67, %79 %96 = fadd <4 x double> %80, %82 %97 = fadd <4 x double> %93, %95 %98 = fadd <4 x double> %96, %97 store <4 x double> %98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %99 = fsub <4 x double> %96, %97 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %100 = fsub <4 x double> %81, %89 %101 = fsub <4 x double> %94, %92 %102 = bitcast <4 x double> %101 to <4 x i64> %103 = xor <4 x i64> %102, %104 = bitcast <4 x i64> %103 to <4 x double> %105 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> %106 = fadd <4 x double> %101, %105 %107 = fmul <4 x double> %106, %108 = fadd <4 x double> %100, %107 store <4 x double> %108, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %109 = fsub <4 x double> %100, %107 store <4 x double> %109, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %110 = fsub <4 x double> %80, %82 %111 = fsub <4 x double> %93, %95 %112 = bitcast <4 x double> %111 to <4 x i64> %113 = fadd <4 x double> %81, %89 %114 = fadd <4 x double> %94, %92 %115 = xor <4 x i64> %112, %116 = bitcast <4 x i64> %115 to <4 x double> %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fsub <4 x double> %110, %117 store <4 x double> %118, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %119 = fadd <4 x double> %110, %117 store <4 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %120 = bitcast <4 x double> %114 to <4 x i64> %121 = xor <4 x i64> %120, %122 = bitcast <4 x i64> %121 to <4 x double> %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fadd <4 x double> %114, %123 %125 = fmul <4 x double> %124, %126 = fsub <4 x double> %113, %125 store <4 x double> %126, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %127 = fadd <4 x double> %113, %125 store <4 x double> %127, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2613, !noalias !2622 %exitcond.not.i.i = icmp eq i64 %58, 32 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2623) tail call void @llvm.experimental.noalias.scope.decl(metadata !2626) tail call void @llvm.experimental.noalias.scope.decl(metadata !2628) %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %130 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %131 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %132 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %133 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 br label %bb30.i62.i bb28.loopexit.i124.i: ; preds = %bb58.i97.i %134 = add nuw nsw i64 %iter.sroa.104.02127.i63.i, 1 %exitcond159.not.i = icmp eq i64 %134, 16 br i1 %exitcond159.not.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i, label %bb30.i62.i bb30.i62.i: ; preds = %bb28.loopexit.i124.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.104.02127.i63.i = phi i64 [ %134, %bb28.loopexit.i124.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i = shl i64 %iter.sroa.104.02127.i63.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %start1.i.i.i.i.i.i.i66.i = shl i64 %iter.sroa.104.02127.i63.i, 5 %data.i.i.i.i.i.i.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i66.i %data.i.i.i.i.i.i.i.i.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %133, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i69.i = getelementptr inbounds %"fft_simd::c64x2", ptr %131, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i70.i = getelementptr inbounds %"fft_simd::c64x2", ptr %132, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i = getelementptr inbounds %"fft_simd::c64x2", ptr %130, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %135 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 16 %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 8 %137 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 4 %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 12 %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 24 %140 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 20 %141 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 28 %start1.i.i.i.i.i75.i = shl i64 %iter.sroa.104.02127.i63.i, 3 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 7, i32 1 %w7.1.i76.i = load double, ptr %142, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %143 = insertelement <4 x double> poison, double %w7.1.i76.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 7 %w7.0.i77.i = load double, ptr %144, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i114.sroa.0.0.vec.insert.i78.i = insertelement <2 x double> poison, double %w7.0.i77.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 6, i32 1 %w6.1.i79.i = load double, ptr %145, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %146 = insertelement <4 x double> poison, double %w6.1.i79.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 6 %w6.0.i80.i = load double, ptr %147, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i118.sroa.0.0.vec.insert.i81.i = insertelement <2 x double> poison, double %w6.0.i80.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 5, i32 1 %w5.1.i82.i = load double, ptr %148, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %149 = insertelement <4 x double> poison, double %w5.1.i82.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 5 %w5.0.i83.i = load double, ptr %150, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i122.sroa.0.0.vec.insert.i84.i = insertelement <2 x double> poison, double %w5.0.i83.i, i64 0 %151 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 4, i32 1 %w4.1.i85.i = load double, ptr %151, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %152 = insertelement <4 x double> poison, double %w4.1.i85.i, i64 0 %153 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 4 %w4.0.i86.i = load double, ptr %153, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i126.sroa.0.0.vec.insert.i87.i = insertelement <2 x double> poison, double %w4.0.i86.i, i64 0 %154 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 3, i32 1 %w3.1.i88.i = load double, ptr %154, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %155 = insertelement <4 x double> poison, double %w3.1.i88.i, i64 0 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 3 %w3.0.i89.i = load double, ptr %156, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i130.sroa.0.0.vec.insert.i90.i = insertelement <2 x double> poison, double %w3.0.i89.i, i64 0 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 2, i32 1 %w2.1.i91.i = load double, ptr %157, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %158 = insertelement <4 x double> poison, double %w2.1.i91.i, i64 0 %159 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 2 %w2.0.i92.i = load double, ptr %159, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i134.sroa.0.0.vec.insert.i93.i = insertelement <2 x double> poison, double %w2.0.i92.i, i64 0 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 1, i32 1 %w1.1.i94.i = load double, ptr %160, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %161 = insertelement <4 x double> poison, double %w1.1.i94.i, i64 0 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 1 %w1.0.i95.i = load double, ptr %162, align 8, !alias.scope !2628, !noalias !2630, !noundef !3 %value.i138.sroa.0.0.vec.insert.i96.i = insertelement <2 x double> poison, double %w1.0.i95.i, i64 0 %163 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i96.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> zeroinitializer %165 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i93.i, <2 x double> poison, <4 x i32> zeroinitializer %166 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> zeroinitializer %167 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i90.i, <2 x double> poison, <4 x i32> zeroinitializer %168 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer %169 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i87.i, <2 x double> poison, <4 x i32> zeroinitializer %170 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> zeroinitializer %171 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i84.i, <2 x double> poison, <4 x i32> zeroinitializer %172 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %173 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i81.i, <2 x double> poison, <4 x i32> zeroinitializer %174 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %175 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i78.i, <2 x double> poison, <4 x i32> zeroinitializer %176 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i97.i bb58.i97.i: ; preds = %bb58.i97.i, %bb30.i62.i %iter8.sroa.106.02066.i98.i = phi i64 [ 0, %bb30.i62.i ], [ %177, %bb58.i97.i ] %177 = add nuw nsw i64 %iter8.sroa.106.02066.i98.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65.i, i64 %iter8.sroa.106.02066.i98.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i102.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i103.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i104.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i70.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i105.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i69.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i106.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i68.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i107.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 %iter8.sroa.106.02066.i98.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i108.i = getelementptr inbounds %"fft_simd::c64x2", ptr %137, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i109.i = getelementptr inbounds %"fft_simd::c64x2", ptr %136, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i110.i = getelementptr inbounds %"fft_simd::c64x2", ptr %138, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i111.i = getelementptr inbounds %"fft_simd::c64x2", ptr %135, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i112.i = getelementptr inbounds %"fft_simd::c64x2", ptr %140, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i35.i.i.i.i113.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i38.i.i.i.i114.i = getelementptr inbounds %"fft_simd::c64x2", ptr %141, i64 %iter8.sroa.106.02066.i98.i %y0.sroa.0.0.copyload.i115.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i107.i, align 8, !alias.scope !2626, !noalias !2631 %_131.sroa.0.0.copyload.i116.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i108.i, align 8, !alias.scope !2626, !noalias !2631 %178 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i116.i, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %164, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %_131.sroa.0.0.copyload.i116.i, <4 x double> %179) #23 %_133.sroa.0.0.copyload.i117.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i109.i, align 8, !alias.scope !2626, !noalias !2631 %181 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i117.i, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %166, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %165, <4 x double> %_133.sroa.0.0.copyload.i117.i, <4 x double> %182) #23 %_135.sroa.0.0.copyload.i118.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i110.i, align 8, !alias.scope !2626, !noalias !2631 %184 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i118.i, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %168, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %167, <4 x double> %_135.sroa.0.0.copyload.i118.i, <4 x double> %185) #23 %_137.sroa.0.0.copyload.i119.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i111.i, align 8, !alias.scope !2626, !noalias !2631 %187 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i119.i, <4 x double> poison, <4 x i32> %188 = fmul <4 x double> %170, %187 %189 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %_137.sroa.0.0.copyload.i119.i, <4 x double> %188) #23 %_139.sroa.0.0.copyload.i120.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i112.i, align 8, !alias.scope !2626, !noalias !2631 %190 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i120.i, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %172, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %171, <4 x double> %_139.sroa.0.0.copyload.i120.i, <4 x double> %191) #23 %_141.sroa.0.0.copyload.i121.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i113.i, align 8, !alias.scope !2626, !noalias !2631 %193 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i121.i, <4 x double> poison, <4 x i32> %194 = fmul <4 x double> %174, %193 %195 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %_141.sroa.0.0.copyload.i121.i, <4 x double> %194) #23 %_143.sroa.0.0.copyload.i122.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i114.i, align 8, !alias.scope !2626, !noalias !2631 %196 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i122.i, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %176, %196 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %_143.sroa.0.0.copyload.i122.i, <4 x double> %197) #23 %199 = fadd <4 x double> %y0.sroa.0.0.copyload.i115.i, %189 %200 = fsub <4 x double> %y0.sroa.0.0.copyload.i115.i, %189 %201 = fadd <4 x double> %183, %195 %202 = fsub <4 x double> %183, %195 %203 = bitcast <4 x double> %202 to <4 x i64> %204 = fsub <4 x double> %186, %198 %205 = bitcast <4 x double> %204 to <4 x i64> %206 = xor <4 x i64> %203, %207 = bitcast <4 x i64> %206 to <4 x double> %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = xor <4 x i64> %205, %210 = bitcast <4 x i64> %209 to <4 x double> %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fadd <4 x double> %180, %192 %213 = fsub <4 x double> %180, %192 %214 = fadd <4 x double> %186, %198 %215 = fadd <4 x double> %199, %201 %216 = fadd <4 x double> %212, %214 %217 = fadd <4 x double> %215, %216 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99.i, align 8, !alias.scope !2623, !noalias !2632 %218 = fsub <4 x double> %215, %216 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i103.i, align 8, !alias.scope !2623, !noalias !2632 %219 = fsub <4 x double> %200, %208 %220 = fsub <4 x double> %213, %211 %221 = bitcast <4 x double> %220 to <4 x i64> %222 = xor <4 x i64> %221, %223 = bitcast <4 x i64> %222 to <4 x double> %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fadd <4 x double> %220, %224 %226 = fmul <4 x double> %225, %227 = fadd <4 x double> %219, %226 store <4 x double> %227, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100.i, align 8, !alias.scope !2623, !noalias !2632 %228 = fsub <4 x double> %219, %226 store <4 x double> %228, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i104.i, align 8, !alias.scope !2623, !noalias !2632 %229 = fsub <4 x double> %199, %201 %230 = fsub <4 x double> %212, %214 %231 = bitcast <4 x double> %230 to <4 x i64> %232 = fadd <4 x double> %200, %208 %233 = fadd <4 x double> %213, %211 %234 = xor <4 x i64> %231, %235 = bitcast <4 x i64> %234 to <4 x double> %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fsub <4 x double> %229, %236 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101.i, align 8, !alias.scope !2623, !noalias !2632 %238 = fadd <4 x double> %229, %236 store <4 x double> %238, ptr %_3.i.i.i.i.i.i.i.i.i.i.i105.i, align 8, !alias.scope !2623, !noalias !2632 %239 = bitcast <4 x double> %233 to <4 x i64> %240 = xor <4 x i64> %239, %241 = bitcast <4 x i64> %240 to <4 x double> %242 = shufflevector <4 x double> %241, <4 x double> poison, <4 x i32> %243 = fadd <4 x double> %233, %242 %244 = fmul <4 x double> %243, %245 = fsub <4 x double> %232, %244 store <4 x double> %245, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i102.i, align 8, !alias.scope !2623, !noalias !2632 %246 = fadd <4 x double> %232, %244 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i106.i, align 8, !alias.scope !2623, !noalias !2632 %exitcond.not.i123.i = icmp eq i64 %177, 4 br i1 %exitcond.not.i123.i, label %bb28.loopexit.i124.i, label %bb58.i97.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i: ; preds = %bb28.loopexit.i124.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2633) tail call void @llvm.experimental.noalias.scope.decl(metadata !2636) tail call void @llvm.experimental.noalias.scope.decl(metadata !2638) %247 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %248 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %249 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %250 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %251 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %252 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %253 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i %iter.sroa.106.01794.i.i = phi i64 [ %254, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i ] %254 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i130.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i131.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i132.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i133.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i134.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i135.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %249, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %248, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %247, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %252, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %251, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i136.i = getelementptr inbounds %"fft_simd::c64x2", ptr %253, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !2638, !noalias !2640 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2638, !noalias !2640 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2638, !noalias !2640 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2638, !noalias !2640 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2638, !noalias !2640 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2638, !noalias !2640 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i136.i, align 8, !alias.scope !2638, !noalias !2640 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2636, !noalias !2641 %255 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %255, align 8, !alias.scope !2636, !noalias !2641 %256 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %256, align 8, !alias.scope !2636, !noalias !2641 %257 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %257, align 8, !alias.scope !2636, !noalias !2641 %258 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %258, align 8, !alias.scope !2636, !noalias !2641 %259 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %259, align 8, !alias.scope !2636, !noalias !2641 %260 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %260, align 8, !alias.scope !2636, !noalias !2641 %261 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %261, align 8, !alias.scope !2636, !noalias !2641 %262 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %263 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %264 = shufflevector <4 x double> %263, <4 x double> poison, <4 x i32> %265 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %266 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %267 = fmul <4 x double> %266, %264 %268 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %265, <4 x double> %263, <4 x double> %267) #23 %269 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %270 = shufflevector <4 x double> %269, <4 x double> poison, <4 x i32> %271 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %272 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %273 = fmul <4 x double> %272, %270 %274 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %271, <4 x double> %269, <4 x double> %273) #23 %275 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %278 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %279 = fmul <4 x double> %278, %276 %280 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %277, <4 x double> %275, <4 x double> %279) #23 %281 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %282 = shufflevector <4 x double> %281, <4 x double> poison, <4 x i32> %283 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %284 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %285 = fmul <4 x double> %284, %282 %286 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %283, <4 x double> %281, <4 x double> %285) #23 %287 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %288 = shufflevector <4 x double> %287, <4 x double> poison, <4 x i32> %289 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %290 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %291 = fmul <4 x double> %290, %288 %292 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %289, <4 x double> %287, <4 x double> %291) #23 %293 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %296 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %296, %294 %298 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %295, <4 x double> %293, <4 x double> %297) #23 %299 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %300 = shufflevector <4 x double> %299, <4 x double> poison, <4 x i32> %301 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %302 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %303 = fmul <4 x double> %302, %300 %304 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %301, <4 x double> %299, <4 x double> %303) #23 %305 = fadd <4 x double> %262, %286 %306 = fsub <4 x double> %262, %286 %307 = fadd <4 x double> %274, %298 %308 = fsub <4 x double> %274, %298 %309 = bitcast <4 x double> %308 to <4 x i64> %310 = fsub <4 x double> %280, %304 %311 = bitcast <4 x double> %310 to <4 x i64> %312 = xor <4 x i64> %309, %313 = bitcast <4 x i64> %312 to <4 x double> %314 = shufflevector <4 x double> %313, <4 x double> poison, <4 x i32> %315 = xor <4 x i64> %311, %316 = bitcast <4 x i64> %315 to <4 x double> %317 = shufflevector <4 x double> %316, <4 x double> poison, <4 x i32> %318 = fadd <4 x double> %268, %292 %319 = fsub <4 x double> %268, %292 %320 = fadd <4 x double> %280, %304 %321 = fadd <4 x double> %305, %307 %322 = fadd <4 x double> %318, %320 %323 = fadd <4 x double> %321, %322 store <4 x double> %323, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2633, !noalias !2642 %324 = fsub <4 x double> %321, %322 store <4 x double> %324, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i132.i, align 8, !alias.scope !2633, !noalias !2642 %325 = fsub <4 x double> %306, %314 %326 = fsub <4 x double> %319, %317 %327 = bitcast <4 x double> %326 to <4 x i64> %328 = xor <4 x i64> %327, %329 = bitcast <4 x i64> %328 to <4 x double> %330 = shufflevector <4 x double> %329, <4 x double> poison, <4 x i32> %331 = fadd <4 x double> %326, %330 %332 = fmul <4 x double> %331, %333 = fadd <4 x double> %325, %332 store <4 x double> %333, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2633, !noalias !2642 %334 = fsub <4 x double> %325, %332 store <4 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i133.i, align 8, !alias.scope !2633, !noalias !2642 %335 = fsub <4 x double> %305, %307 %336 = fsub <4 x double> %318, %320 %337 = bitcast <4 x double> %336 to <4 x i64> %338 = fadd <4 x double> %306, %314 %339 = fadd <4 x double> %319, %317 %340 = xor <4 x i64> %337, %341 = bitcast <4 x i64> %340 to <4 x double> %342 = shufflevector <4 x double> %341, <4 x double> poison, <4 x i32> %343 = fsub <4 x double> %335, %342 store <4 x double> %343, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i130.i, align 8, !alias.scope !2633, !noalias !2642 %344 = fadd <4 x double> %335, %342 store <4 x double> %344, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i134.i, align 8, !alias.scope !2633, !noalias !2642 %345 = bitcast <4 x double> %339 to <4 x i64> %346 = xor <4 x i64> %345, %347 = bitcast <4 x i64> %346 to <4 x double> %348 = shufflevector <4 x double> %347, <4 x double> poison, <4 x i32> %349 = fadd <4 x double> %339, %348 %350 = fmul <4 x double> %349, %351 = fsub <4 x double> %338, %350 store <4 x double> %351, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i131.i, align 8, !alias.scope !2633, !noalias !2642 %352 = fadd <4 x double> %338, %350 store <4 x double> %352, ptr %_3.i.i.i.i.i.i.i.i.i.i.i135.i, align 8, !alias.scope !2633, !noalias !2642 %exitcond.not.i137.i = icmp eq i64 %254, 64 br i1 %exitcond.not.i137.i, label %_ZN4pulp3x862V39vectorize6__impl17h04d867cd13f19071E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17h04d867cd13f19071E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2604 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h188d59fb75825670E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2643 store i64 512, ptr %n.i, align 8, !noalias !2643 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2643 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2643 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2643 store ptr null, ptr %_16.i, align 8, !noalias !2643 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2643 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2643 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2643 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2643 store ptr null, ptr %_24.i, align 8, !noalias !2643 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2643 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2643 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2643 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2643 store ptr null, ptr %_32.i, align 8, !noalias !2643 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2643 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2643 store i64 %w.1, ptr %_34.i, align 8, !noalias !2643 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2643 store ptr null, ptr %_40.i, align 8, !noalias !2643 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2643 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 288 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 352 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 416 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 480 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !2646 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !2646 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !2646 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !2646 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !2646 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !2646 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !2646 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !2646 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !2646 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !2646 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !2646 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !2646 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !2646 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !2646 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !2646 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !2646 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !2646 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fsub <4 x double> %147, %152 %180 = fadd <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fadd <4 x double> %147, %152 %184 = fsub <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fsub <4 x double> %155, %160 %188 = fadd <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fadd <4 x double> %155, %160 %192 = fsub <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fsub <4 x double> %163, %168 %196 = fadd <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fadd <4 x double> %163, %168 %200 = fsub <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fsub <4 x double> %171, %176 %204 = fadd <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fadd <4 x double> %171, %176 %208 = fsub <4 x double> %172, %175 %209 = fsub <4 x double> %187, %188 %210 = fadd <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fadd <4 x double> %192, %191 %214 = fsub <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fsub <4 x double> %181, %190 %222 = fadd <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fadd <4 x double> %181, %190 %230 = fsub <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fsub <4 x double> %203, %204 %234 = fadd <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fadd <4 x double> %208, %207 %238 = fsub <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fsub <4 x double> %197, %206 %246 = fadd <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fadd <4 x double> %197, %206 %254 = fsub <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fsub <4 x double> %245, %246 %262 = fadd <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fadd <4 x double> %254, %253 %274 = fsub <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !2646 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !2646 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !2646 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !2646 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !2646 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !2646 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !2646 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !2646 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !2646 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !2646 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !2646 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !2646 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !2646 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !2646 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !2646 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !2646 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !2646 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !2646 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !2646 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !2646 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !2646 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !2646 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !2646 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !2646 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !2646 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !2646 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !2646 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !2646 %341 = fsub <4 x double> %225, %250 %342 = fadd <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !2646 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !2646 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !2646 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !2646 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !2646 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !2646 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !2646 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !2646 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !2646 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !2646 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !2646 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !2646 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !2646 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !2646 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !2646 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !2646 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !2646 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !2646 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !2646 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !2646 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !2646 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !2646 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !2646 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !2646 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !2646 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !2646 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !2646 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !2646 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !2646 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !2646 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !2646 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !2646 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !2646 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !2646 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !2646 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !2646 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !2646 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !2646 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !2646 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !2646 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !2646 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !2646 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !2646 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !2646 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !2646 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !2646 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !2646 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !2646 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !2646 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !2646 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !2646 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !2646 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !2646 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !2646 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !2646 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !2646 %469 = fadd <4 x double> %225, %250 %470 = fsub <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !2646 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !2646 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !2646 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !2646 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !2646 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !2646 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !2646 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !2646 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !2646 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !2646 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !2646 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !2646 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !2646 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !2646 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !2646 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !2646 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !2646 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !2646 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !2646 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !2646 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !2646 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !2646 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !2646 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !2646 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !2646 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !2646 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !2646 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !2646 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 32 br i1 %533, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325, label %vector.body, !llvm.loop !2649 _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %542 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %543 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 288 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 352 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 416 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 480 br label %bb48.i.i.i339 vector.body238: ; preds = %middle.block76, %vector.body238 %index239 = phi i64 [ %index.next248.1, %vector.body238 ], [ 0, %middle.block76 ] %549 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index239 %550 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index239 %wide.vec240 = load <8 x double>, ptr %549, align 8, !noalias !2643 %strided.vec241 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %strided.vec242 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %wide.vec243 = load <8 x double>, ptr %550, align 8, !noalias !2643 %strided.vec244 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %strided.vec245 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %551 = fadd <4 x double> %strided.vec241, %strided.vec244 %552 = fadd <4 x double> %strided.vec242, %strided.vec245 %553 = fsub <4 x double> %strided.vec241, %strided.vec244 %554 = fsub <4 x double> %strided.vec242, %strided.vec245 %interleaved.vec246 = shufflevector <4 x double> %551, <4 x double> %552, <8 x i32> store <8 x double> %interleaved.vec246, ptr %549, align 8, !noalias !2643 %interleaved.vec247 = shufflevector <4 x double> %553, <4 x double> %554, <8 x i32> store <8 x double> %interleaved.vec247, ptr %550, align 8, !noalias !2643 %index.next248 = or disjoint i64 %index239, 4 %555 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next248 %556 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next248 %wide.vec240.1 = load <8 x double>, ptr %555, align 8, !noalias !2643 %strided.vec241.1 = shufflevector <8 x double> %wide.vec240.1, <8 x double> poison, <4 x i32> %strided.vec242.1 = shufflevector <8 x double> %wide.vec240.1, <8 x double> poison, <4 x i32> %wide.vec243.1 = load <8 x double>, ptr %556, align 8, !noalias !2643 %strided.vec244.1 = shufflevector <8 x double> %wide.vec243.1, <8 x double> poison, <4 x i32> %strided.vec245.1 = shufflevector <8 x double> %wide.vec243.1, <8 x double> poison, <4 x i32> %557 = fadd <4 x double> %strided.vec241.1, %strided.vec244.1 %558 = fadd <4 x double> %strided.vec242.1, %strided.vec245.1 %559 = fsub <4 x double> %strided.vec241.1, %strided.vec244.1 %560 = fsub <4 x double> %strided.vec242.1, %strided.vec245.1 %interleaved.vec246.1 = shufflevector <4 x double> %557, <4 x double> %558, <8 x i32> store <8 x double> %interleaved.vec246.1, ptr %555, align 8, !noalias !2643 %interleaved.vec247.1 = shufflevector <4 x double> %559, <4 x double> %560, <8 x i32> store <8 x double> %interleaved.vec247.1, ptr %556, align 8, !noalias !2643 %index.next248.1 = add nuw nsw i64 %index239, 8 %561 = icmp eq i64 %index.next248.1, 256 br i1 %561, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha7d50c0658794517E.exit", label %vector.body238, !llvm.loop !2650 bb48.i.i.i339: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325, %middle.block76 %_2.i.i.i2328 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325 ], [ false, %middle.block76 ] %iter.i.i.i120.sroa.192.0219 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2325 ], [ 1, %middle.block76 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0219, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2376 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2381 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2386 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2391 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2396 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2401 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2406 = getelementptr inbounds %"num_complex::Complex", ptr %541, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2411 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2416 = getelementptr inbounds %"num_complex::Complex", ptr %544, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2421 = getelementptr inbounds %"num_complex::Complex", ptr %543, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2426 = getelementptr inbounds %"num_complex::Complex", ptr %545, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2431 = getelementptr inbounds %"num_complex::Complex", ptr %542, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2436 = getelementptr inbounds %"num_complex::Complex", ptr %547, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i.i.i2441 = getelementptr inbounds %"num_complex::Complex", ptr %546, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %data.i.i.i.i.i.i.i.i.i.i2446 = getelementptr inbounds %"num_complex::Complex", ptr %548, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370 %start1.i.i.i.i.i.i2449 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0219, 8 %data.i.i.i.i.i.i2450 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i2449 %562 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 128 %563 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 64 %564 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 32 %565 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 16 %566 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 48 %567 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 96 %568 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 80 %569 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 112 %570 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 192 %571 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 160 %572 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 144 %573 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 176 %574 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 224 %575 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 208 %576 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 240 %577 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 15, i32 1 %wf.1.i.i.i403 = load double, ptr %577, align 8, !noalias !2643, !noundef !3 %_6.i483.i.i.i908 = fneg double %wf.1.i.i.i403 %578 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 14, i32 1 %we.1.i.i.i401 = load double, ptr %578, align 8, !noalias !2643, !noundef !3 %_6.i486.i.i.i903 = fneg double %we.1.i.i.i401 %579 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 13, i32 1 %wd.1.i.i.i399 = load double, ptr %579, align 8, !noalias !2643, !noundef !3 %_6.i489.i.i.i898 = fneg double %wd.1.i.i.i399 %580 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 12, i32 1 %wc.1.i.i.i397 = load double, ptr %580, align 8, !noalias !2643, !noundef !3 %_6.i492.i.i.i893 = fneg double %wc.1.i.i.i397 %581 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 11, i32 1 %wb.1.i.i.i395 = load double, ptr %581, align 8, !noalias !2643, !noundef !3 %_6.i495.i.i.i888 = fneg double %wb.1.i.i.i395 %582 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 10, i32 1 %wa.1.i.i.i393 = load double, ptr %582, align 8, !noalias !2643, !noundef !3 %_6.i498.i.i.i883 = fneg double %wa.1.i.i.i393 %583 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 9, i32 1 %w9.1.i.i.i391 = load double, ptr %583, align 8, !noalias !2643, !noundef !3 %_6.i501.i.i.i878 = fneg double %w9.1.i.i.i391 %584 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 8, i32 1 %w8.1.i.i.i389 = load double, ptr %584, align 8, !noalias !2643, !noundef !3 %_6.i504.i.i.i873 = fneg double %w8.1.i.i.i389 %585 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 7, i32 1 %w7.1.i.i.i387 = load double, ptr %585, align 8, !noalias !2643, !noundef !3 %_6.i507.i.i.i868 = fneg double %w7.1.i.i.i387 %586 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 6, i32 1 %w6.1.i.i.i385 = load double, ptr %586, align 8, !noalias !2643, !noundef !3 %_6.i510.i.i.i863 = fneg double %w6.1.i.i.i385 %587 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 5, i32 1 %w5.1.i.i.i383 = load double, ptr %587, align 8, !noalias !2643, !noundef !3 %_6.i513.i.i.i858 = fneg double %w5.1.i.i.i383 %588 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 4, i32 1 %w4.1.i.i.i381 = load double, ptr %588, align 8, !noalias !2643, !noundef !3 %_6.i516.i.i.i853 = fneg double %w4.1.i.i.i381 %589 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 3, i32 1 %w3.1.i.i.i379 = load double, ptr %589, align 8, !noalias !2643, !noundef !3 %_6.i519.i.i.i848 = fneg double %w3.1.i.i.i379 %590 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 2, i32 1 %w2.1.i.i.i377 = load double, ptr %590, align 8, !noalias !2643, !noundef !3 %_6.i522.i.i.i843 = fneg double %w2.1.i.i.i377 %591 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 1, i32 1 %w1.1.i.i.i375 = load double, ptr %591, align 8, !noalias !2643, !noundef !3 %_6.i525.i.i.i838 = fneg double %w1.1.i.i.i375 %592 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 15 %wf.0.i.i.i402 = load double, ptr %592, align 8, !noalias !2643, !noundef !3 %593 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 14 %we.0.i.i.i400 = load double, ptr %593, align 8, !noalias !2643, !noundef !3 %594 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 13 %wd.0.i.i.i398 = load double, ptr %594, align 8, !noalias !2643, !noundef !3 %595 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 12 %wc.0.i.i.i396 = load double, ptr %595, align 8, !noalias !2643, !noundef !3 %596 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 11 %wb.0.i.i.i394 = load double, ptr %596, align 8, !noalias !2643, !noundef !3 %597 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 10 %wa.0.i.i.i392 = load double, ptr %597, align 8, !noalias !2643, !noundef !3 %598 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 9 %w9.0.i.i.i390 = load double, ptr %598, align 8, !noalias !2643, !noundef !3 %599 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 8 %w8.0.i.i.i388 = load double, ptr %599, align 8, !noalias !2643, !noundef !3 %600 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 7 %w7.0.i.i.i386 = load double, ptr %600, align 8, !noalias !2643, !noundef !3 %601 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 6 %w6.0.i.i.i384 = load double, ptr %601, align 8, !noalias !2643, !noundef !3 %602 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 5 %w5.0.i.i.i382 = load double, ptr %602, align 8, !noalias !2643, !noundef !3 %603 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 4 %w4.0.i.i.i380 = load double, ptr %603, align 8, !noalias !2643, !noundef !3 %604 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 3 %w3.0.i.i.i378 = load double, ptr %604, align 8, !noalias !2643, !noundef !3 %605 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 2 %w2.0.i.i.i376 = load double, ptr %605, align 8, !noalias !2643, !noundef !3 %606 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2370, i64 1 %w1.0.i.i.i374 = load double, ptr %606, align 8, !noalias !2643, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i838, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w1.0.i.i.i374, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w1.1.i.i.i375, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i522.i.i.i843, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w2.0.i.i.i376, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w2.1.i.i.i377, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i519.i.i.i848, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w3.0.i.i.i378, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w3.1.i.i.i379, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert149 = insertelement <4 x double> poison, double %_6.i516.i.i.i853, i64 0 %broadcast.splat150 = shufflevector <4 x double> %broadcast.splatinsert149, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert151 = insertelement <4 x double> poison, double %w4.0.i.i.i380, i64 0 %broadcast.splat152 = shufflevector <4 x double> %broadcast.splatinsert151, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert153 = insertelement <4 x double> poison, double %w4.1.i.i.i381, i64 0 %broadcast.splat154 = shufflevector <4 x double> %broadcast.splatinsert153, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert156 = insertelement <4 x double> poison, double %_6.i513.i.i.i858, i64 0 %broadcast.splat157 = shufflevector <4 x double> %broadcast.splatinsert156, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert158 = insertelement <4 x double> poison, double %w5.0.i.i.i382, i64 0 %broadcast.splat159 = shufflevector <4 x double> %broadcast.splatinsert158, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert160 = insertelement <4 x double> poison, double %w5.1.i.i.i383, i64 0 %broadcast.splat161 = shufflevector <4 x double> %broadcast.splatinsert160, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i510.i.i.i863, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w6.0.i.i.i384, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w6.1.i.i.i385, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert170 = insertelement <4 x double> poison, double %_6.i507.i.i.i868, i64 0 %broadcast.splat171 = shufflevector <4 x double> %broadcast.splatinsert170, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert172 = insertelement <4 x double> poison, double %w7.0.i.i.i386, i64 0 %broadcast.splat173 = shufflevector <4 x double> %broadcast.splatinsert172, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert174 = insertelement <4 x double> poison, double %w7.1.i.i.i387, i64 0 %broadcast.splat175 = shufflevector <4 x double> %broadcast.splatinsert174, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert177 = insertelement <4 x double> poison, double %_6.i504.i.i.i873, i64 0 %broadcast.splat178 = shufflevector <4 x double> %broadcast.splatinsert177, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert179 = insertelement <4 x double> poison, double %w8.0.i.i.i388, i64 0 %broadcast.splat180 = shufflevector <4 x double> %broadcast.splatinsert179, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert181 = insertelement <4 x double> poison, double %w8.1.i.i.i389, i64 0 %broadcast.splat182 = shufflevector <4 x double> %broadcast.splatinsert181, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i501.i.i.i878, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w9.0.i.i.i390, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w9.1.i.i.i391, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert191 = insertelement <4 x double> poison, double %_6.i498.i.i.i883, i64 0 %broadcast.splat192 = shufflevector <4 x double> %broadcast.splatinsert191, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert193 = insertelement <4 x double> poison, double %wa.0.i.i.i392, i64 0 %broadcast.splat194 = shufflevector <4 x double> %broadcast.splatinsert193, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert195 = insertelement <4 x double> poison, double %wa.1.i.i.i393, i64 0 %broadcast.splat196 = shufflevector <4 x double> %broadcast.splatinsert195, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert198 = insertelement <4 x double> poison, double %_6.i495.i.i.i888, i64 0 %broadcast.splat199 = shufflevector <4 x double> %broadcast.splatinsert198, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert200 = insertelement <4 x double> poison, double %wb.0.i.i.i394, i64 0 %broadcast.splat201 = shufflevector <4 x double> %broadcast.splatinsert200, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert202 = insertelement <4 x double> poison, double %wb.1.i.i.i395, i64 0 %broadcast.splat203 = shufflevector <4 x double> %broadcast.splatinsert202, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i492.i.i.i893, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert207 = insertelement <4 x double> poison, double %wc.0.i.i.i396, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert209 = insertelement <4 x double> poison, double %wc.1.i.i.i397, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert212 = insertelement <4 x double> poison, double %_6.i489.i.i.i898, i64 0 %broadcast.splat213 = shufflevector <4 x double> %broadcast.splatinsert212, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert214 = insertelement <4 x double> poison, double %wd.0.i.i.i398, i64 0 %broadcast.splat215 = shufflevector <4 x double> %broadcast.splatinsert214, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert216 = insertelement <4 x double> poison, double %wd.1.i.i.i399, i64 0 %broadcast.splat217 = shufflevector <4 x double> %broadcast.splatinsert216, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert219 = insertelement <4 x double> poison, double %_6.i486.i.i.i903, i64 0 %broadcast.splat220 = shufflevector <4 x double> %broadcast.splatinsert219, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert221 = insertelement <4 x double> poison, double %we.0.i.i.i400, i64 0 %broadcast.splat222 = shufflevector <4 x double> %broadcast.splatinsert221, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert223 = insertelement <4 x double> poison, double %we.1.i.i.i401, i64 0 %broadcast.splat224 = shufflevector <4 x double> %broadcast.splatinsert223, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i483.i.i.i908, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %wf.0.i.i.i402, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert230 = insertelement <4 x double> poison, double %wf.1.i.i.i403, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb48.i.i.i339 %index81 = phi i64 [ 0, %bb48.i.i.i339 ], [ %index.next233, %vector.body80 ] %607 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 %index81 %608 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2376, i64 %index81 %609 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2381, i64 %index81 %610 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2386, i64 %index81 %611 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2391, i64 %index81 %612 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2396, i64 %index81 %613 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2401, i64 %index81 %614 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2406, i64 %index81 %615 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2411, i64 %index81 %616 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2416, i64 %index81 %617 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2421, i64 %index81 %618 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2426, i64 %index81 %619 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2431, i64 %index81 %620 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2436, i64 %index81 %621 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i2441, i64 %index81 %622 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i2446, i64 %index81 %wide.vec82 = load <8 x double>, ptr %607, align 8, !noalias !2643 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %608, align 8, !noalias !2643 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %609, align 8, !noalias !2643 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %610, align 8, !noalias !2643 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %611, align 8, !noalias !2643 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %612, align 8, !noalias !2643 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %613, align 8, !noalias !2643 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %614, align 8, !noalias !2643 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %wide.vec106 = load <8 x double>, ptr %615, align 8, !noalias !2643 %strided.vec107 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %strided.vec108 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %wide.vec109 = load <8 x double>, ptr %616, align 8, !noalias !2643 %strided.vec110 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %strided.vec111 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %wide.vec112 = load <8 x double>, ptr %617, align 8, !noalias !2643 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %wide.vec115 = load <8 x double>, ptr %618, align 8, !noalias !2643 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %619, align 8, !noalias !2643 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %wide.vec121 = load <8 x double>, ptr %620, align 8, !noalias !2643 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %wide.vec124 = load <8 x double>, ptr %621, align 8, !noalias !2643 %strided.vec125 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %strided.vec126 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %wide.vec127 = load <8 x double>, ptr %622, align 8, !noalias !2643 %strided.vec128 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %strided.vec129 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %623 = fadd <4 x double> %strided.vec83, %strided.vec107 %624 = fadd <4 x double> %strided.vec84, %strided.vec108 %625 = fsub <4 x double> %strided.vec83, %strided.vec107 %626 = fsub <4 x double> %strided.vec84, %strided.vec108 %627 = fadd <4 x double> %strided.vec95, %strided.vec119 %628 = fadd <4 x double> %strided.vec96, %strided.vec120 %629 = fsub <4 x double> %strided.vec95, %strided.vec119 %630 = fsub <4 x double> %strided.vec96, %strided.vec120 %631 = fadd <4 x double> %strided.vec89, %strided.vec113 %632 = fadd <4 x double> %strided.vec90, %strided.vec114 %633 = fsub <4 x double> %strided.vec89, %strided.vec113 %634 = fsub <4 x double> %strided.vec90, %strided.vec114 %635 = fadd <4 x double> %strided.vec101, %strided.vec125 %636 = fadd <4 x double> %strided.vec102, %strided.vec126 %637 = fsub <4 x double> %strided.vec101, %strided.vec125 %638 = fsub <4 x double> %strided.vec102, %strided.vec126 %639 = fadd <4 x double> %strided.vec86, %strided.vec110 %640 = fadd <4 x double> %strided.vec87, %strided.vec111 %641 = fsub <4 x double> %strided.vec86, %strided.vec110 %642 = fsub <4 x double> %strided.vec87, %strided.vec111 %643 = fadd <4 x double> %strided.vec98, %strided.vec122 %644 = fadd <4 x double> %strided.vec99, %strided.vec123 %645 = fsub <4 x double> %strided.vec98, %strided.vec122 %646 = fsub <4 x double> %strided.vec99, %strided.vec123 %647 = fadd <4 x double> %strided.vec92, %strided.vec116 %648 = fadd <4 x double> %strided.vec93, %strided.vec117 %649 = fsub <4 x double> %strided.vec92, %strided.vec116 %650 = fsub <4 x double> %strided.vec93, %strided.vec117 %651 = fadd <4 x double> %strided.vec104, %strided.vec128 %652 = fadd <4 x double> %strided.vec105, %strided.vec129 %653 = fsub <4 x double> %strided.vec104, %strided.vec128 %654 = fsub <4 x double> %strided.vec105, %strided.vec129 %655 = fadd <4 x double> %623, %627 %656 = fadd <4 x double> %624, %628 %657 = fsub <4 x double> %625, %630 %658 = fadd <4 x double> %626, %629 %659 = fsub <4 x double> %623, %627 %660 = fsub <4 x double> %624, %628 %661 = fadd <4 x double> %625, %630 %662 = fsub <4 x double> %626, %629 %663 = fadd <4 x double> %631, %635 %664 = fadd <4 x double> %632, %636 %665 = fsub <4 x double> %633, %638 %666 = fadd <4 x double> %634, %637 %667 = fsub <4 x double> %631, %635 %668 = fsub <4 x double> %632, %636 %669 = fadd <4 x double> %633, %638 %670 = fsub <4 x double> %634, %637 %671 = fadd <4 x double> %639, %643 %672 = fadd <4 x double> %640, %644 %673 = fsub <4 x double> %641, %646 %674 = fadd <4 x double> %642, %645 %675 = fsub <4 x double> %639, %643 %676 = fsub <4 x double> %640, %644 %677 = fadd <4 x double> %641, %646 %678 = fsub <4 x double> %642, %645 %679 = fadd <4 x double> %647, %651 %680 = fadd <4 x double> %648, %652 %681 = fsub <4 x double> %649, %654 %682 = fadd <4 x double> %650, %653 %683 = fsub <4 x double> %647, %651 %684 = fsub <4 x double> %648, %652 %685 = fadd <4 x double> %649, %654 %686 = fsub <4 x double> %650, %653 %687 = fsub <4 x double> %665, %666 %688 = fadd <4 x double> %666, %665 %689 = fmul <4 x double> %687, %690 = fmul <4 x double> %688, %691 = fadd <4 x double> %670, %669 %692 = fsub <4 x double> %670, %669 %693 = fmul <4 x double> %691, %694 = fmul <4 x double> %692, %695 = fadd <4 x double> %655, %663 %696 = fadd <4 x double> %656, %664 %697 = fadd <4 x double> %657, %689 %698 = fadd <4 x double> %658, %690 %699 = fsub <4 x double> %659, %668 %700 = fadd <4 x double> %660, %667 %701 = fsub <4 x double> %661, %693 %702 = fsub <4 x double> %662, %694 %703 = fsub <4 x double> %655, %663 %704 = fsub <4 x double> %656, %664 %705 = fsub <4 x double> %657, %689 %706 = fsub <4 x double> %658, %690 %707 = fadd <4 x double> %659, %668 %708 = fsub <4 x double> %660, %667 %709 = fadd <4 x double> %661, %693 %710 = fadd <4 x double> %662, %694 %711 = fsub <4 x double> %681, %682 %712 = fadd <4 x double> %682, %681 %713 = fmul <4 x double> %711, %714 = fmul <4 x double> %712, %715 = fadd <4 x double> %686, %685 %716 = fsub <4 x double> %686, %685 %717 = fmul <4 x double> %715, %718 = fmul <4 x double> %716, %719 = fadd <4 x double> %671, %679 %720 = fadd <4 x double> %672, %680 %721 = fadd <4 x double> %673, %713 %722 = fadd <4 x double> %674, %714 %723 = fsub <4 x double> %675, %684 %724 = fadd <4 x double> %676, %683 %725 = fsub <4 x double> %677, %717 %726 = fsub <4 x double> %678, %718 %727 = fsub <4 x double> %671, %679 %728 = fsub <4 x double> %672, %680 %729 = fsub <4 x double> %673, %713 %730 = fsub <4 x double> %674, %714 %731 = fadd <4 x double> %675, %684 %732 = fsub <4 x double> %676, %683 %733 = fadd <4 x double> %677, %717 %734 = fadd <4 x double> %678, %718 %735 = fmul <4 x double> %722, %736 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %721, <4 x double> , <4 x double> %735) %737 = fmul <4 x double> %721, %738 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %722, <4 x double> , <4 x double> %737) %739 = fsub <4 x double> %723, %724 %740 = fadd <4 x double> %724, %723 %741 = fmul <4 x double> %739, %742 = fmul <4 x double> %740, %743 = fmul <4 x double> %726, %744 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %725, <4 x double> , <4 x double> %743) %745 = fmul <4 x double> %725, %746 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %726, <4 x double> , <4 x double> %745) %747 = fmul <4 x double> %730, %748 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %729, <4 x double> , <4 x double> %747) %749 = fmul <4 x double> %729, %750 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %730, <4 x double> , <4 x double> %749) %751 = fadd <4 x double> %732, %731 %752 = fsub <4 x double> %732, %731 %753 = fmul <4 x double> %751, %754 = fmul <4 x double> %752, %755 = fmul <4 x double> %734, %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %733, <4 x double> , <4 x double> %755) %757 = fmul <4 x double> %733, %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %734, <4 x double> , <4 x double> %757) %759 = fadd <4 x double> %695, %719 %760 = fadd <4 x double> %696, %720 %761 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2450, i64 %index81 %interleaved.vec = shufflevector <4 x double> %759, <4 x double> %760, <8 x i32> store <8 x double> %interleaved.vec, ptr %761, align 8, !noalias !2643 %762 = fadd <4 x double> %697, %736 %763 = fadd <4 x double> %698, %738 %764 = fmul <4 x double> %763, %broadcast.splat %765 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %762, <4 x double> %764) %766 = fmul <4 x double> %broadcast.splat133, %762 %767 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %763, <4 x double> %766) %768 = getelementptr inbounds %"num_complex::Complex", ptr %565, i64 %index81 %interleaved.vec134 = shufflevector <4 x double> %765, <4 x double> %767, <8 x i32> store <8 x double> %interleaved.vec134, ptr %768, align 8, !noalias !2643 %769 = fadd <4 x double> %699, %741 %770 = fadd <4 x double> %700, %742 %771 = fmul <4 x double> %770, %broadcast.splat136 %772 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %769, <4 x double> %771) %773 = fmul <4 x double> %broadcast.splat140, %769 %774 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %770, <4 x double> %773) %775 = getelementptr inbounds %"num_complex::Complex", ptr %564, i64 %index81 %interleaved.vec141 = shufflevector <4 x double> %772, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec141, ptr %775, align 8, !noalias !2643 %776 = fadd <4 x double> %701, %744 %777 = fadd <4 x double> %702, %746 %778 = fmul <4 x double> %777, %broadcast.splat143 %779 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %776, <4 x double> %778) %780 = fmul <4 x double> %broadcast.splat147, %776 %781 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %777, <4 x double> %780) %782 = getelementptr inbounds %"num_complex::Complex", ptr %566, i64 %index81 %interleaved.vec148 = shufflevector <4 x double> %779, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec148, ptr %782, align 8, !noalias !2643 %783 = fsub <4 x double> %703, %728 %784 = fadd <4 x double> %704, %727 %785 = fmul <4 x double> %784, %broadcast.splat150 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %783, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat154, %783 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %784, <4 x double> %787) %789 = getelementptr inbounds %"num_complex::Complex", ptr %563, i64 %index81 %interleaved.vec155 = shufflevector <4 x double> %786, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec155, ptr %789, align 8, !noalias !2643 %790 = fsub <4 x double> %705, %748 %791 = fsub <4 x double> %706, %750 %792 = fmul <4 x double> %791, %broadcast.splat157 %793 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %790, <4 x double> %792) %794 = fmul <4 x double> %broadcast.splat161, %790 %795 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %791, <4 x double> %794) %796 = getelementptr inbounds %"num_complex::Complex", ptr %568, i64 %index81 %interleaved.vec162 = shufflevector <4 x double> %793, <4 x double> %795, <8 x i32> store <8 x double> %interleaved.vec162, ptr %796, align 8, !noalias !2643 %797 = fsub <4 x double> %707, %753 %798 = fsub <4 x double> %708, %754 %799 = fmul <4 x double> %798, %broadcast.splat164 %800 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %797, <4 x double> %799) %801 = fmul <4 x double> %broadcast.splat168, %797 %802 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %798, <4 x double> %801) %803 = getelementptr inbounds %"num_complex::Complex", ptr %567, i64 %index81 %interleaved.vec169 = shufflevector <4 x double> %800, <4 x double> %802, <8 x i32> store <8 x double> %interleaved.vec169, ptr %803, align 8, !noalias !2643 %804 = fsub <4 x double> %709, %756 %805 = fsub <4 x double> %710, %758 %806 = fmul <4 x double> %805, %broadcast.splat171 %807 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %804, <4 x double> %806) %808 = fmul <4 x double> %broadcast.splat175, %804 %809 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %805, <4 x double> %808) %810 = getelementptr inbounds %"num_complex::Complex", ptr %569, i64 %index81 %interleaved.vec176 = shufflevector <4 x double> %807, <4 x double> %809, <8 x i32> store <8 x double> %interleaved.vec176, ptr %810, align 8, !noalias !2643 %811 = fsub <4 x double> %695, %719 %812 = fsub <4 x double> %696, %720 %813 = fmul <4 x double> %812, %broadcast.splat178 %814 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %811, <4 x double> %813) %815 = fmul <4 x double> %broadcast.splat182, %811 %816 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %812, <4 x double> %815) %817 = getelementptr inbounds %"num_complex::Complex", ptr %562, i64 %index81 %interleaved.vec183 = shufflevector <4 x double> %814, <4 x double> %816, <8 x i32> store <8 x double> %interleaved.vec183, ptr %817, align 8, !noalias !2643 %818 = fsub <4 x double> %697, %736 %819 = fsub <4 x double> %698, %738 %820 = fmul <4 x double> %819, %broadcast.splat185 %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %818, <4 x double> %820) %822 = fmul <4 x double> %broadcast.splat189, %818 %823 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %819, <4 x double> %822) %824 = getelementptr inbounds %"num_complex::Complex", ptr %572, i64 %index81 %interleaved.vec190 = shufflevector <4 x double> %821, <4 x double> %823, <8 x i32> store <8 x double> %interleaved.vec190, ptr %824, align 8, !noalias !2643 %825 = fsub <4 x double> %699, %741 %826 = fsub <4 x double> %700, %742 %827 = fmul <4 x double> %826, %broadcast.splat192 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %825, <4 x double> %827) %829 = fmul <4 x double> %broadcast.splat196, %825 %830 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %826, <4 x double> %829) %831 = getelementptr inbounds %"num_complex::Complex", ptr %571, i64 %index81 %interleaved.vec197 = shufflevector <4 x double> %828, <4 x double> %830, <8 x i32> store <8 x double> %interleaved.vec197, ptr %831, align 8, !noalias !2643 %832 = fsub <4 x double> %701, %744 %833 = fsub <4 x double> %702, %746 %834 = fmul <4 x double> %833, %broadcast.splat199 %835 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %832, <4 x double> %834) %836 = fmul <4 x double> %broadcast.splat203, %832 %837 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %833, <4 x double> %836) %838 = getelementptr inbounds %"num_complex::Complex", ptr %573, i64 %index81 %interleaved.vec204 = shufflevector <4 x double> %835, <4 x double> %837, <8 x i32> store <8 x double> %interleaved.vec204, ptr %838, align 8, !noalias !2643 %839 = fadd <4 x double> %703, %728 %840 = fsub <4 x double> %704, %727 %841 = fmul <4 x double> %840, %broadcast.splat206 %842 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %839, <4 x double> %841) %843 = fmul <4 x double> %broadcast.splat210, %839 %844 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %840, <4 x double> %843) %845 = getelementptr inbounds %"num_complex::Complex", ptr %570, i64 %index81 %interleaved.vec211 = shufflevector <4 x double> %842, <4 x double> %844, <8 x i32> store <8 x double> %interleaved.vec211, ptr %845, align 8, !noalias !2643 %846 = fadd <4 x double> %705, %748 %847 = fadd <4 x double> %706, %750 %848 = fmul <4 x double> %847, %broadcast.splat213 %849 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %846, <4 x double> %848) %850 = fmul <4 x double> %broadcast.splat217, %846 %851 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %847, <4 x double> %850) %852 = getelementptr inbounds %"num_complex::Complex", ptr %575, i64 %index81 %interleaved.vec218 = shufflevector <4 x double> %849, <4 x double> %851, <8 x i32> store <8 x double> %interleaved.vec218, ptr %852, align 8, !noalias !2643 %853 = fadd <4 x double> %707, %753 %854 = fadd <4 x double> %708, %754 %855 = fmul <4 x double> %854, %broadcast.splat220 %856 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %853, <4 x double> %855) %857 = fmul <4 x double> %broadcast.splat224, %853 %858 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %854, <4 x double> %857) %859 = getelementptr inbounds %"num_complex::Complex", ptr %574, i64 %index81 %interleaved.vec225 = shufflevector <4 x double> %856, <4 x double> %858, <8 x i32> store <8 x double> %interleaved.vec225, ptr %859, align 8, !noalias !2643 %860 = fadd <4 x double> %709, %756 %861 = fadd <4 x double> %710, %758 %862 = fmul <4 x double> %861, %broadcast.splat227 %863 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %860, <4 x double> %862) %864 = fmul <4 x double> %broadcast.splat231, %860 %865 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %861, <4 x double> %864) %866 = getelementptr inbounds %"num_complex::Complex", ptr %576, i64 %index81 %interleaved.vec232 = shufflevector <4 x double> %863, <4 x double> %865, <8 x i32> store <8 x double> %interleaved.vec232, ptr %866, align 8, !noalias !2643 %index.next233 = add nuw i64 %index81, 4 %867 = icmp eq i64 %index.next233, 16 br i1 %867, label %middle.block76, label %vector.body80, !llvm.loop !2651 middle.block76: ; preds = %vector.body80 br i1 %_2.i.i.i2328, label %bb48.i.i.i339, label %vector.body238 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha7d50c0658794517E.exit": ; preds = %vector.body238 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2643 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h19f2ca99f1d8bfdaE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2652 store i64 64, ptr %n.i, align 8, !noalias !2652 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2652 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2652 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2652 store ptr null, ptr %_16.i, align 8, !noalias !2652 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2652 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2652 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2652 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2652 store ptr null, ptr %_24.i, align 8, !noalias !2652 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2652 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2652 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2652 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2652 store ptr null, ptr %_32.i, align 8, !noalias !2652 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2652 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2652 store i64 %w.1, ptr %_34.i, align 8, !noalias !2652 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2652 store ptr null, ptr %_40.i, align 8, !noalias !2652 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2652 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %wide.vec = load <16 x double>, ptr %1, align 8, !noalias !2655 %strided.vec = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %strided.vec1 = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %2 = fneg <4 x double> %strided.vec1 %wide.vec2 = load <8 x double>, ptr %buf.0, align 8, !noalias !2655 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %0, align 8, !noalias !2655 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec3, %strided.vec6 %4 = fadd <4 x double> %strided.vec4, %strided.vec7 %5 = fsub <4 x double> %strided.vec3, %strided.vec6 %6 = fsub <4 x double> %strided.vec4, %strided.vec7 %7 = fmul <4 x double> %6, %2 %8 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %5, <4 x double> %7) %9 = fmul <4 x double> %strided.vec1, %5 %10 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %6, <4 x double> %9) %11 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> %12 = shufflevector <4 x double> %8, <4 x double> %10, <8 x i32> %interleaved.vec = shufflevector <8 x double> %11, <8 x double> %12, <16 x i32> store <16 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !2655 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %wide.vec.1 = load <16 x double>, ptr %16, align 8, !noalias !2655 %strided.vec.1 = shufflevector <16 x double> %wide.vec.1, <16 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <16 x double> %wide.vec.1, <16 x double> poison, <4 x i32> %17 = fneg <4 x double> %strided.vec1.1 %wide.vec2.1 = load <8 x double>, ptr %13, align 8, !noalias !2655 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %14, align 8, !noalias !2655 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec3.1, %strided.vec6.1 %19 = fadd <4 x double> %strided.vec4.1, %strided.vec7.1 %20 = fsub <4 x double> %strided.vec3.1, %strided.vec6.1 %21 = fsub <4 x double> %strided.vec4.1, %strided.vec7.1 %22 = fmul <4 x double> %21, %17 %23 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.1, <4 x double> %20, <4 x double> %22) %24 = fmul <4 x double> %strided.vec1.1, %20 %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.1, <4 x double> %21, <4 x double> %24) %26 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> %27 = shufflevector <4 x double> %23, <4 x double> %25, <8 x i32> %interleaved.vec.1 = shufflevector <8 x double> %26, <8 x double> %27, <16 x i32> store <16 x double> %interleaved.vec.1, ptr %15, align 8, !noalias !2655 %28 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %29 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %31 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %wide.vec.2 = load <16 x double>, ptr %31, align 8, !noalias !2655 %strided.vec.2 = shufflevector <16 x double> %wide.vec.2, <16 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <16 x double> %wide.vec.2, <16 x double> poison, <4 x i32> %32 = fneg <4 x double> %strided.vec1.2 %wide.vec2.2 = load <8 x double>, ptr %28, align 8, !noalias !2655 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %wide.vec5.2 = load <8 x double>, ptr %29, align 8, !noalias !2655 %strided.vec6.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %strided.vec7.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %33 = fadd <4 x double> %strided.vec3.2, %strided.vec6.2 %34 = fadd <4 x double> %strided.vec4.2, %strided.vec7.2 %35 = fsub <4 x double> %strided.vec3.2, %strided.vec6.2 %36 = fsub <4 x double> %strided.vec4.2, %strided.vec7.2 %37 = fmul <4 x double> %36, %32 %38 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.2, <4 x double> %35, <4 x double> %37) %39 = fmul <4 x double> %strided.vec1.2, %35 %40 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.2, <4 x double> %36, <4 x double> %39) %41 = shufflevector <4 x double> %33, <4 x double> %34, <8 x i32> %42 = shufflevector <4 x double> %38, <4 x double> %40, <8 x i32> %interleaved.vec.2 = shufflevector <8 x double> %41, <8 x double> %42, <16 x i32> store <16 x double> %interleaved.vec.2, ptr %30, align 8, !noalias !2655 %43 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %44 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %wide.vec.3 = load <16 x double>, ptr %46, align 8, !noalias !2655 %strided.vec.3 = shufflevector <16 x double> %wide.vec.3, <16 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <16 x double> %wide.vec.3, <16 x double> poison, <4 x i32> %47 = fneg <4 x double> %strided.vec1.3 %wide.vec2.3 = load <8 x double>, ptr %43, align 8, !noalias !2655 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %wide.vec5.3 = load <8 x double>, ptr %44, align 8, !noalias !2655 %strided.vec6.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %strided.vec7.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %48 = fadd <4 x double> %strided.vec3.3, %strided.vec6.3 %49 = fadd <4 x double> %strided.vec4.3, %strided.vec7.3 %50 = fsub <4 x double> %strided.vec3.3, %strided.vec6.3 %51 = fsub <4 x double> %strided.vec4.3, %strided.vec7.3 %52 = fmul <4 x double> %51, %47 %53 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.3, <4 x double> %50, <4 x double> %52) %54 = fmul <4 x double> %strided.vec1.3, %50 %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.3, <4 x double> %51, <4 x double> %54) %56 = shufflevector <4 x double> %48, <4 x double> %49, <8 x i32> %57 = shufflevector <4 x double> %53, <4 x double> %55, <8 x i32> %interleaved.vec.3 = shufflevector <8 x double> %56, <8 x double> %57, <16 x i32> store <16 x double> %interleaved.vec.3, ptr %45, align 8, !noalias !2655 %58 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %59 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %wide.vec.4 = load <16 x double>, ptr %61, align 8, !noalias !2655 %strided.vec.4 = shufflevector <16 x double> %wide.vec.4, <16 x double> poison, <4 x i32> %strided.vec1.4 = shufflevector <16 x double> %wide.vec.4, <16 x double> poison, <4 x i32> %62 = fneg <4 x double> %strided.vec1.4 %wide.vec2.4 = load <8 x double>, ptr %58, align 8, !noalias !2655 %strided.vec3.4 = shufflevector <8 x double> %wide.vec2.4, <8 x double> poison, <4 x i32> %strided.vec4.4 = shufflevector <8 x double> %wide.vec2.4, <8 x double> poison, <4 x i32> %wide.vec5.4 = load <8 x double>, ptr %59, align 8, !noalias !2655 %strided.vec6.4 = shufflevector <8 x double> %wide.vec5.4, <8 x double> poison, <4 x i32> %strided.vec7.4 = shufflevector <8 x double> %wide.vec5.4, <8 x double> poison, <4 x i32> %63 = fadd <4 x double> %strided.vec3.4, %strided.vec6.4 %64 = fadd <4 x double> %strided.vec4.4, %strided.vec7.4 %65 = fsub <4 x double> %strided.vec3.4, %strided.vec6.4 %66 = fsub <4 x double> %strided.vec4.4, %strided.vec7.4 %67 = fmul <4 x double> %66, %62 %68 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.4, <4 x double> %65, <4 x double> %67) %69 = fmul <4 x double> %strided.vec1.4, %65 %70 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.4, <4 x double> %66, <4 x double> %69) %71 = shufflevector <4 x double> %63, <4 x double> %64, <8 x i32> %72 = shufflevector <4 x double> %68, <4 x double> %70, <8 x i32> %interleaved.vec.4 = shufflevector <8 x double> %71, <8 x double> %72, <16 x i32> store <16 x double> %interleaved.vec.4, ptr %60, align 8, !noalias !2655 %73 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %74 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %75 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %76 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1 %wide.vec.5 = load <16 x double>, ptr %76, align 8, !noalias !2655 %strided.vec.5 = shufflevector <16 x double> %wide.vec.5, <16 x double> poison, <4 x i32> %strided.vec1.5 = shufflevector <16 x double> %wide.vec.5, <16 x double> poison, <4 x i32> %77 = fneg <4 x double> %strided.vec1.5 %wide.vec2.5 = load <8 x double>, ptr %73, align 8, !noalias !2655 %strided.vec3.5 = shufflevector <8 x double> %wide.vec2.5, <8 x double> poison, <4 x i32> %strided.vec4.5 = shufflevector <8 x double> %wide.vec2.5, <8 x double> poison, <4 x i32> %wide.vec5.5 = load <8 x double>, ptr %74, align 8, !noalias !2655 %strided.vec6.5 = shufflevector <8 x double> %wide.vec5.5, <8 x double> poison, <4 x i32> %strided.vec7.5 = shufflevector <8 x double> %wide.vec5.5, <8 x double> poison, <4 x i32> %78 = fadd <4 x double> %strided.vec3.5, %strided.vec6.5 %79 = fadd <4 x double> %strided.vec4.5, %strided.vec7.5 %80 = fsub <4 x double> %strided.vec3.5, %strided.vec6.5 %81 = fsub <4 x double> %strided.vec4.5, %strided.vec7.5 %82 = fmul <4 x double> %81, %77 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.5, <4 x double> %80, <4 x double> %82) %84 = fmul <4 x double> %strided.vec1.5, %80 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.5, <4 x double> %81, <4 x double> %84) %86 = shufflevector <4 x double> %78, <4 x double> %79, <8 x i32> %87 = shufflevector <4 x double> %83, <4 x double> %85, <8 x i32> %interleaved.vec.5 = shufflevector <8 x double> %86, <8 x double> %87, <16 x i32> store <16 x double> %interleaved.vec.5, ptr %75, align 8, !noalias !2655 %88 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %89 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %90 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %91 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %wide.vec.6 = load <16 x double>, ptr %91, align 8, !noalias !2655 %strided.vec.6 = shufflevector <16 x double> %wide.vec.6, <16 x double> poison, <4 x i32> %strided.vec1.6 = shufflevector <16 x double> %wide.vec.6, <16 x double> poison, <4 x i32> %92 = fneg <4 x double> %strided.vec1.6 %wide.vec2.6 = load <8 x double>, ptr %88, align 8, !noalias !2655 %strided.vec3.6 = shufflevector <8 x double> %wide.vec2.6, <8 x double> poison, <4 x i32> %strided.vec4.6 = shufflevector <8 x double> %wide.vec2.6, <8 x double> poison, <4 x i32> %wide.vec5.6 = load <8 x double>, ptr %89, align 8, !noalias !2655 %strided.vec6.6 = shufflevector <8 x double> %wide.vec5.6, <8 x double> poison, <4 x i32> %strided.vec7.6 = shufflevector <8 x double> %wide.vec5.6, <8 x double> poison, <4 x i32> %93 = fadd <4 x double> %strided.vec3.6, %strided.vec6.6 %94 = fadd <4 x double> %strided.vec4.6, %strided.vec7.6 %95 = fsub <4 x double> %strided.vec3.6, %strided.vec6.6 %96 = fsub <4 x double> %strided.vec4.6, %strided.vec7.6 %97 = fmul <4 x double> %96, %92 %98 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.6, <4 x double> %95, <4 x double> %97) %99 = fmul <4 x double> %strided.vec1.6, %95 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.6, <4 x double> %96, <4 x double> %99) %101 = shufflevector <4 x double> %93, <4 x double> %94, <8 x i32> %102 = shufflevector <4 x double> %98, <4 x double> %100, <8 x i32> %interleaved.vec.6 = shufflevector <8 x double> %101, <8 x double> %102, <16 x i32> store <16 x double> %interleaved.vec.6, ptr %90, align 8, !noalias !2655 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i5.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %103 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i = load double, ptr %103, align 8, !noalias !2655, !noundef !3 %104 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i = load double, ptr %104, align 8, !noalias !2655, !noundef !3 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57 %_6.i.i.i = fneg double %w1.1.i.i %106 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !2655 %107 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i, align 8, !noalias !2655 %108 = fadd <2 x double> %106, %107 store <2 x double> %108, ptr %data.i.i.i.i.i.i, align 8, !noalias !2655 %109 = fsub <2 x double> %106, %107 %110 = shufflevector <2 x double> %109, <2 x double> poison, <2 x i32> %111 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %112 = insertelement <2 x double> %111, double %w1.1.i.i, i64 1 %113 = fmul <2 x double> %110, %112 %114 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %115 = shufflevector <2 x double> %114, <2 x double> poison, <2 x i32> zeroinitializer %116 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %115, <2 x double> %109, <2 x double> %113) store <2 x double> %116, ptr %105, align 8, !noalias !2655 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %117 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1 %w1.0.i.i.1 = load double, ptr %117, align 8, !noalias !2655, !noundef !3 %118 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %118, align 8, !noalias !2655, !noundef !3 %119 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %120 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2655 %121 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !2655 %122 = fadd <2 x double> %120, %121 store <2 x double> %122, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !2655 %123 = fsub <2 x double> %120, %121 %124 = shufflevector <2 x double> %123, <2 x double> poison, <2 x i32> %125 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %126 = insertelement <2 x double> %125, double %w1.1.i.i.1, i64 1 %127 = fmul <2 x double> %124, %126 %128 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %129 = shufflevector <2 x double> %128, <2 x double> poison, <2 x i32> zeroinitializer %130 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %129, <2 x double> %123, <2 x double> %127) store <2 x double> %130, ptr %119, align 8, !noalias !2655 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %131 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i.2 = load double, ptr %131, align 8, !noalias !2655, !noundef !3 %132 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %132, align 8, !noalias !2655, !noundef !3 %133 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %134 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !2655 %135 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !2655 %136 = fadd <2 x double> %134, %135 store <2 x double> %136, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !2655 %137 = fsub <2 x double> %134, %135 %138 = shufflevector <2 x double> %137, <2 x double> poison, <2 x i32> %139 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %140 = insertelement <2 x double> %139, double %w1.1.i.i.2, i64 1 %141 = fmul <2 x double> %138, %140 %142 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %143 = shufflevector <2 x double> %142, <2 x double> poison, <2 x i32> zeroinitializer %144 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %143, <2 x double> %137, <2 x double> %141) store <2 x double> %144, ptr %133, align 8, !noalias !2655 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %145 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1 %w1.0.i.i.3 = load double, ptr %145, align 8, !noalias !2655, !noundef !3 %146 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %146, align 8, !noalias !2655, !noundef !3 %147 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %148 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !2655 %149 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !2655 %150 = fadd <2 x double> %148, %149 store <2 x double> %150, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !2655 %151 = fsub <2 x double> %148, %149 %152 = shufflevector <2 x double> %151, <2 x double> poison, <2 x i32> %153 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %154 = insertelement <2 x double> %153, double %w1.1.i.i.3, i64 1 %155 = fmul <2 x double> %152, %154 %156 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %157 = shufflevector <2 x double> %156, <2 x double> poison, <2 x i32> zeroinitializer %158 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %157, <2 x double> %151, <2 x double> %155) store <2 x double> %158, ptr %147, align 8, !noalias !2655 %159 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %160 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !2658 %161 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !2658 %162 = fneg <4 x double> %wide.masked.gather14 %wide.vec15 = load <16 x double>, ptr %scratch.0, align 8, !noalias !2658 %strided.vec16 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec18 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %wide.vec20 = load <16 x double>, ptr %159, align 8, !noalias !2658 %strided.vec21 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %163 = fadd <4 x double> %strided.vec16, %strided.vec21 %164 = fadd <4 x double> %strided.vec17, %strided.vec22 %165 = fsub <4 x double> %strided.vec16, %strided.vec21 %166 = fsub <4 x double> %strided.vec17, %strided.vec22 %167 = fmul <4 x double> %166, %162 %168 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %165, <4 x double> %167) %169 = fmul <4 x double> %wide.masked.gather14, %165 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %166, <4 x double> %169) %171 = fadd <4 x double> %strided.vec18, %strided.vec23 %172 = fadd <4 x double> %strided.vec19, %strided.vec24 %173 = fsub <4 x double> %strided.vec18, %strided.vec23 %174 = fsub <4 x double> %strided.vec19, %strided.vec24 %175 = fmul <4 x double> %174, %162 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather14, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %174, <4 x double> %177) %179 = shufflevector <4 x double> %163, <4 x double> %164, <8 x i32> %180 = shufflevector <4 x double> %171, <4 x double> %172, <8 x i32> %181 = shufflevector <4 x double> %168, <4 x double> %170, <8 x i32> %182 = shufflevector <4 x double> %176, <4 x double> %178, <8 x i32> %183 = shufflevector <8 x double> %179, <8 x double> %180, <16 x i32> %184 = shufflevector <8 x double> %181, <8 x double> %182, <16 x i32> %interleaved.vec25 = shufflevector <16 x double> %183, <16 x double> %184, <32 x i32> store <32 x double> %interleaved.vec25, ptr %buf.0, align 8, !noalias !2658 %185 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %186 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %187 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %188 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !2658 %189 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather14.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %189, i32 8, <4 x i1> , <4 x double> poison), !noalias !2658 %190 = fneg <4 x double> %wide.masked.gather14.1 %wide.vec15.1 = load <16 x double>, ptr %185, align 8, !noalias !2658 %strided.vec16.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %strided.vec18.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %strided.vec19.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %wide.vec20.1 = load <16 x double>, ptr %186, align 8, !noalias !2658 %strided.vec21.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %strided.vec22.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %strided.vec23.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %strided.vec24.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %191 = fadd <4 x double> %strided.vec16.1, %strided.vec21.1 %192 = fadd <4 x double> %strided.vec17.1, %strided.vec22.1 %193 = fsub <4 x double> %strided.vec16.1, %strided.vec21.1 %194 = fsub <4 x double> %strided.vec17.1, %strided.vec22.1 %195 = fmul <4 x double> %194, %190 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %193, <4 x double> %195) %197 = fmul <4 x double> %wide.masked.gather14.1, %193 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %194, <4 x double> %197) %199 = fadd <4 x double> %strided.vec18.1, %strided.vec23.1 %200 = fadd <4 x double> %strided.vec19.1, %strided.vec24.1 %201 = fsub <4 x double> %strided.vec18.1, %strided.vec23.1 %202 = fsub <4 x double> %strided.vec19.1, %strided.vec24.1 %203 = fmul <4 x double> %202, %190 %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %201, <4 x double> %203) %205 = fmul <4 x double> %wide.masked.gather14.1, %201 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %202, <4 x double> %205) %207 = shufflevector <4 x double> %191, <4 x double> %192, <8 x i32> %208 = shufflevector <4 x double> %199, <4 x double> %200, <8 x i32> %209 = shufflevector <4 x double> %196, <4 x double> %198, <8 x i32> %210 = shufflevector <4 x double> %204, <4 x double> %206, <8 x i32> %211 = shufflevector <8 x double> %207, <8 x double> %208, <16 x i32> %212 = shufflevector <8 x double> %209, <8 x double> %210, <16 x i32> %interleaved.vec25.1 = shufflevector <16 x double> %211, <16 x double> %212, <32 x i32> store <32 x double> %interleaved.vec25.1, ptr %187, align 8, !noalias !2658 %213 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %214 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %215 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %216 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %216, i32 8, <4 x i1> , <4 x double> poison), !noalias !2658 %217 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather14.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %217, i32 8, <4 x i1> , <4 x double> poison), !noalias !2658 %218 = fneg <4 x double> %wide.masked.gather14.2 %wide.vec15.2 = load <16 x double>, ptr %213, align 8, !noalias !2658 %strided.vec16.2 = shufflevector <16 x double> %wide.vec15.2, <16 x double> poison, <4 x i32> %strided.vec17.2 = shufflevector <16 x double> %wide.vec15.2, <16 x double> poison, <4 x i32> %strided.vec18.2 = shufflevector <16 x double> %wide.vec15.2, <16 x double> poison, <4 x i32> %strided.vec19.2 = shufflevector <16 x double> %wide.vec15.2, <16 x double> poison, <4 x i32> %wide.vec20.2 = load <16 x double>, ptr %214, align 8, !noalias !2658 %strided.vec21.2 = shufflevector <16 x double> %wide.vec20.2, <16 x double> poison, <4 x i32> %strided.vec22.2 = shufflevector <16 x double> %wide.vec20.2, <16 x double> poison, <4 x i32> %strided.vec23.2 = shufflevector <16 x double> %wide.vec20.2, <16 x double> poison, <4 x i32> %strided.vec24.2 = shufflevector <16 x double> %wide.vec20.2, <16 x double> poison, <4 x i32> %219 = fadd <4 x double> %strided.vec16.2, %strided.vec21.2 %220 = fadd <4 x double> %strided.vec17.2, %strided.vec22.2 %221 = fsub <4 x double> %strided.vec16.2, %strided.vec21.2 %222 = fsub <4 x double> %strided.vec17.2, %strided.vec22.2 %223 = fmul <4 x double> %222, %218 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather14.2, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %222, <4 x double> %225) %227 = fadd <4 x double> %strided.vec18.2, %strided.vec23.2 %228 = fadd <4 x double> %strided.vec19.2, %strided.vec24.2 %229 = fsub <4 x double> %strided.vec18.2, %strided.vec23.2 %230 = fsub <4 x double> %strided.vec19.2, %strided.vec24.2 %231 = fmul <4 x double> %230, %218 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %229, <4 x double> %231) %233 = fmul <4 x double> %wide.masked.gather14.2, %229 %234 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %230, <4 x double> %233) %235 = shufflevector <4 x double> %219, <4 x double> %220, <8 x i32> %236 = shufflevector <4 x double> %227, <4 x double> %228, <8 x i32> %237 = shufflevector <4 x double> %224, <4 x double> %226, <8 x i32> %238 = shufflevector <4 x double> %232, <4 x double> %234, <8 x i32> %239 = shufflevector <8 x double> %235, <8 x double> %236, <16 x i32> %240 = shufflevector <8 x double> %237, <8 x double> %238, <16 x i32> %interleaved.vec25.2 = shufflevector <16 x double> %239, <16 x double> %240, <32 x i32> store <32 x double> %interleaved.vec25.2, ptr %215, align 8, !noalias !2658 %data.i.i.i.i.i.i.i.i401 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %data.i5.i.i.i.i.i.i.i406 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i.i.i.i.i.i410 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %241 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.i.i43 = load double, ptr %241, align 8, !noalias !2658, !noundef !3 %242 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %242, align 8, !noalias !2658, !noundef !3 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %_6.i.i.i64 = fneg double %w1.1.i.i44 %244 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i401, align 8, !noalias !2658 %245 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i406, align 8, !noalias !2658 %246 = fadd <4 x double> %244, %245 store <4 x double> %246, ptr %data.i.i.i.i.i.i410, align 8, !noalias !2658 %247 = fsub <4 x double> %244, %245 %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = insertelement <4 x double> poison, double %_6.i.i.i64, i64 0 %250 = insertelement <4 x double> %249, double %w1.1.i.i44, i64 1 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fmul <4 x double> %248, %251 %253 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> zeroinitializer %255 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %254, <4 x double> %247, <4 x double> %252) store <4 x double> %255, ptr %243, align 8, !noalias !2658 %data.i.i.i.i.i.i.i.i401.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %data.i5.i.i.i.i.i.i.i406.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %data.i.i.i.i.i.i410.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %256 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 26, i64 1 %w1.0.i.i43.1 = load double, ptr %256, align 8, !noalias !2658, !noundef !3 %257 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 26, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %257, align 8, !noalias !2658, !noundef !3 %258 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %_6.i.i.i64.1 = fneg double %w1.1.i.i44.1 %259 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i401.1, align 8, !noalias !2658 %260 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i406.1, align 8, !noalias !2658 %261 = fadd <4 x double> %259, %260 store <4 x double> %261, ptr %data.i.i.i.i.i.i410.1, align 8, !noalias !2658 %262 = fsub <4 x double> %259, %260 %263 = shufflevector <4 x double> %262, <4 x double> poison, <4 x i32> %264 = insertelement <4 x double> poison, double %_6.i.i.i64.1, i64 0 %265 = insertelement <4 x double> %264, double %w1.1.i.i44.1, i64 1 %266 = shufflevector <4 x double> %265, <4 x double> poison, <4 x i32> %267 = fmul <4 x double> %263, %266 %268 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %269 = shufflevector <4 x double> %268, <4 x double> poison, <4 x i32> zeroinitializer %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %269, <4 x double> %262, <4 x double> %267) store <4 x double> %270, ptr %258, align 8, !noalias !2658 %data.i.i.i.i.i.i.i.i401.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %data.i5.i.i.i.i.i.i.i406.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %data.i.i.i.i.i.i410.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %271 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i43.2 = load double, ptr %271, align 8, !noalias !2658, !noundef !3 %272 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i44.2 = load double, ptr %272, align 8, !noalias !2658, !noundef !3 %273 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %_6.i.i.i64.2 = fneg double %w1.1.i.i44.2 %274 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i401.2, align 8, !noalias !2658 %275 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i406.2, align 8, !noalias !2658 %276 = fadd <4 x double> %274, %275 store <4 x double> %276, ptr %data.i.i.i.i.i.i410.2, align 8, !noalias !2658 %277 = fsub <4 x double> %274, %275 %278 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> %279 = insertelement <4 x double> poison, double %_6.i.i.i64.2, i64 0 %280 = insertelement <4 x double> %279, double %w1.1.i.i44.2, i64 1 %281 = shufflevector <4 x double> %280, <4 x double> poison, <4 x i32> %282 = fmul <4 x double> %278, %281 %283 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %284 = shufflevector <4 x double> %283, <4 x double> poison, <4 x i32> zeroinitializer %285 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %284, <4 x double> %277, <4 x double> %282) store <4 x double> %285, ptr %273, align 8, !noalias !2658 %data.i.i.i.i.i.i.i.i401.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %data.i5.i.i.i.i.i.i.i406.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %data.i.i.i.i.i.i410.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %286 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i43.3 = load double, ptr %286, align 8, !noalias !2658, !noundef !3 %287 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i44.3 = load double, ptr %287, align 8, !noalias !2658, !noundef !3 %288 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %_6.i.i.i64.3 = fneg double %w1.1.i.i44.3 %289 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i401.3, align 8, !noalias !2658 %290 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i406.3, align 8, !noalias !2658 %291 = fadd <4 x double> %289, %290 store <4 x double> %291, ptr %data.i.i.i.i.i.i410.3, align 8, !noalias !2658 %292 = fsub <4 x double> %289, %290 %293 = shufflevector <4 x double> %292, <4 x double> poison, <4 x i32> %294 = insertelement <4 x double> poison, double %_6.i.i.i64.3, i64 0 %295 = insertelement <4 x double> %294, double %w1.1.i.i44.3, i64 1 %296 = shufflevector <4 x double> %295, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %293, %296 %298 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %299 = shufflevector <4 x double> %298, <4 x double> poison, <4 x i32> zeroinitializer %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %299, <4 x double> %292, <4 x double> %297) store <4 x double> %300, ptr %288, align 8, !noalias !2658 %301 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %301, align 8, !noalias !2661, !noundef !3 %302 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %302, align 8, !noalias !2661, !noundef !3 %303 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %_6.i.i.i.i = fneg double %w1.1.i.i.i %304 = load <4 x double>, ptr %buf.0, align 8, !noalias !2661 %305 = load <4 x double>, ptr %0, align 8, !noalias !2661 %306 = fadd <4 x double> %304, %305 store <4 x double> %306, ptr %scratch.0, align 8, !noalias !2661 %307 = fsub <4 x double> %304, %305 %308 = shufflevector <4 x double> %307, <4 x double> poison, <4 x i32> %309 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %310 = insertelement <4 x double> %309, double %w1.1.i.i.i, i64 1 %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = fmul <4 x double> %308, %311 %313 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %314 = shufflevector <4 x double> %313, <4 x double> poison, <4 x i32> zeroinitializer %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %314, <4 x double> %307, <4 x double> %312) store <4 x double> %315, ptr %303, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i635.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34 %_3.i.i.i.i.i.i638.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i.i.i.i641.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %316 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2, align 8, !noalias !2661 %317 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2, align 8, !noalias !2661 %318 = fadd <4 x double> %316, %317 store <4 x double> %318, ptr %_3.i.i.i.i.i.i638.2, align 8, !noalias !2661 %319 = fsub <4 x double> %316, %317 %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = fmul <4 x double> %320, %311 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %314, <4 x double> %319, <4 x double> %321) store <4 x double> %322, ptr %_3.i.i.i.i641.2, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %data.i5.i.i.i.i.i.i.i579.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %data.i.i.i.i.i.i583.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %323 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i.i.1 = load double, ptr %323, align 8, !noalias !2661, !noundef !3 %324 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %324, align 8, !noalias !2661, !noundef !3 %325 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %326 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.1, align 8, !noalias !2661 %327 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.1, align 8, !noalias !2661 %328 = fadd <4 x double> %326, %327 store <4 x double> %328, ptr %data.i.i.i.i.i.i583.1, align 8, !noalias !2661 %329 = fsub <4 x double> %326, %327 %330 = shufflevector <4 x double> %329, <4 x double> poison, <4 x i32> %331 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %332 = insertelement <4 x double> %331, double %w1.1.i.i.i.1, i64 1 %333 = shufflevector <4 x double> %332, <4 x double> poison, <4 x i32> %334 = fmul <4 x double> %330, %333 %335 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %336 = shufflevector <4 x double> %335, <4 x double> poison, <4 x i32> zeroinitializer %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %336, <4 x double> %329, <4 x double> %334) store <4 x double> %337, ptr %325, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i635.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38 %_3.i.i.i.i.i.i638.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i641.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %338 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.1, align 8, !noalias !2661 %339 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.1, align 8, !noalias !2661 %340 = fadd <4 x double> %338, %339 store <4 x double> %340, ptr %_3.i.i.i.i.i.i638.2.1, align 8, !noalias !2661 %341 = fsub <4 x double> %338, %339 %342 = shufflevector <4 x double> %341, <4 x double> poison, <4 x i32> %343 = fmul <4 x double> %342, %333 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %336, <4 x double> %341, <4 x double> %343) store <4 x double> %344, ptr %_3.i.i.i.i641.2.1, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i579.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %data.i.i.i.i.i.i583.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %345 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.i.i.i.2 = load double, ptr %345, align 8, !noalias !2661, !noundef !3 %346 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %346, align 8, !noalias !2661, !noundef !3 %347 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %348 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.2, align 8, !noalias !2661 %349 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.2, align 8, !noalias !2661 %350 = fadd <4 x double> %348, %349 store <4 x double> %350, ptr %data.i.i.i.i.i.i583.2, align 8, !noalias !2661 %351 = fsub <4 x double> %348, %349 %352 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> %353 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %354 = insertelement <4 x double> %353, double %w1.1.i.i.i.2, i64 1 %355 = shufflevector <4 x double> %354, <4 x double> poison, <4 x i32> %356 = fmul <4 x double> %352, %355 %357 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %358 = shufflevector <4 x double> %357, <4 x double> poison, <4 x i32> zeroinitializer %359 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %358, <4 x double> %351, <4 x double> %356) store <4 x double> %359, ptr %347, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i2.i.i.i.i.i.i.i635.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42 %_3.i.i.i.i.i.i638.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i.i.i.i641.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %360 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.2, align 8, !noalias !2661 %361 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.2, align 8, !noalias !2661 %362 = fadd <4 x double> %360, %361 store <4 x double> %362, ptr %_3.i.i.i.i.i.i638.2.2, align 8, !noalias !2661 %363 = fsub <4 x double> %360, %361 %364 = shufflevector <4 x double> %363, <4 x double> poison, <4 x i32> %365 = fmul <4 x double> %364, %355 %366 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %358, <4 x double> %363, <4 x double> %365) store <4 x double> %366, ptr %_3.i.i.i.i641.2.2, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i5.i.i.i.i.i.i.i579.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %data.i.i.i.i.i.i583.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %367 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i.i.3 = load double, ptr %367, align 8, !noalias !2661, !noundef !3 %368 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %368, align 8, !noalias !2661, !noundef !3 %369 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %370 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.3, align 8, !noalias !2661 %371 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.3, align 8, !noalias !2661 %372 = fadd <4 x double> %370, %371 store <4 x double> %372, ptr %data.i.i.i.i.i.i583.3, align 8, !noalias !2661 %373 = fsub <4 x double> %370, %371 %374 = shufflevector <4 x double> %373, <4 x double> poison, <4 x i32> %375 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %376 = insertelement <4 x double> %375, double %w1.1.i.i.i.3, i64 1 %377 = shufflevector <4 x double> %376, <4 x double> poison, <4 x i32> %378 = fmul <4 x double> %374, %377 %379 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %380 = shufflevector <4 x double> %379, <4 x double> poison, <4 x i32> zeroinitializer %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %380, <4 x double> %373, <4 x double> %378) store <4 x double> %381, ptr %369, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_3.i2.i.i.i.i.i.i.i635.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %_3.i.i.i.i.i.i638.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i.i.i.i641.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %382 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.3, align 8, !noalias !2661 %383 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.3, align 8, !noalias !2661 %384 = fadd <4 x double> %382, %383 store <4 x double> %384, ptr %_3.i.i.i.i.i.i638.2.3, align 8, !noalias !2661 %385 = fsub <4 x double> %382, %383 %386 = shufflevector <4 x double> %385, <4 x double> poison, <4 x i32> %387 = fmul <4 x double> %386, %377 %388 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %380, <4 x double> %385, <4 x double> %387) store <4 x double> %388, ptr %_3.i.i.i.i641.2.3, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %data.i5.i.i.i.i.i.i.i579.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i583.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %389 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i.4 = load double, ptr %389, align 8, !noalias !2661, !noundef !3 %390 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i.4 = load double, ptr %390, align 8, !noalias !2661, !noundef !3 %391 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %_6.i.i.i.i.4 = fneg double %w1.1.i.i.i.4 %392 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.4, align 8, !noalias !2661 %393 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.4, align 8, !noalias !2661 %394 = fadd <4 x double> %392, %393 store <4 x double> %394, ptr %data.i.i.i.i.i.i583.4, align 8, !noalias !2661 %395 = fsub <4 x double> %392, %393 %396 = shufflevector <4 x double> %395, <4 x double> poison, <4 x i32> %397 = insertelement <4 x double> poison, double %_6.i.i.i.i.4, i64 0 %398 = insertelement <4 x double> %397, double %w1.1.i.i.i.4, i64 1 %399 = shufflevector <4 x double> %398, <4 x double> poison, <4 x i32> %400 = fmul <4 x double> %396, %399 %401 = insertelement <4 x double> poison, double %w1.0.i.i.i.4, i64 0 %402 = shufflevector <4 x double> %401, <4 x double> poison, <4 x i32> zeroinitializer %403 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %402, <4 x double> %395, <4 x double> %400) store <4 x double> %403, ptr %391, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i2.i.i.i.i.i.i.i635.2.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %_3.i.i.i.i.i.i638.2.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34 %_3.i.i.i.i641.2.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38 %404 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.4, align 8, !noalias !2661 %405 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.4, align 8, !noalias !2661 %406 = fadd <4 x double> %404, %405 store <4 x double> %406, ptr %_3.i.i.i.i.i.i638.2.4, align 8, !noalias !2661 %407 = fsub <4 x double> %404, %405 %408 = shufflevector <4 x double> %407, <4 x double> poison, <4 x i32> %409 = fmul <4 x double> %408, %399 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %402, <4 x double> %407, <4 x double> %409) store <4 x double> %410, ptr %_3.i.i.i.i641.2.4, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %data.i5.i.i.i.i.i.i.i579.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %data.i.i.i.i.i.i583.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %411 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1 %w1.0.i.i.i.5 = load double, ptr %411, align 8, !noalias !2661, !noundef !3 %412 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1, i32 1 %w1.1.i.i.i.5 = load double, ptr %412, align 8, !noalias !2661, !noundef !3 %413 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %_6.i.i.i.i.5 = fneg double %w1.1.i.i.i.5 %414 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.5, align 8, !noalias !2661 %415 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.5, align 8, !noalias !2661 %416 = fadd <4 x double> %414, %415 store <4 x double> %416, ptr %data.i.i.i.i.i.i583.5, align 8, !noalias !2661 %417 = fsub <4 x double> %414, %415 %418 = shufflevector <4 x double> %417, <4 x double> poison, <4 x i32> %419 = insertelement <4 x double> poison, double %_6.i.i.i.i.5, i64 0 %420 = insertelement <4 x double> %419, double %w1.1.i.i.i.5, i64 1 %421 = shufflevector <4 x double> %420, <4 x double> poison, <4 x i32> %422 = fmul <4 x double> %418, %421 %423 = insertelement <4 x double> poison, double %w1.0.i.i.i.5, i64 0 %424 = shufflevector <4 x double> %423, <4 x double> poison, <4 x i32> zeroinitializer %425 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %424, <4 x double> %417, <4 x double> %422) store <4 x double> %425, ptr %413, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i2.i.i.i.i.i.i.i635.2.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %_3.i.i.i.i.i.i638.2.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42 %_3.i.i.i.i641.2.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46 %426 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.5, align 8, !noalias !2661 %427 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.5, align 8, !noalias !2661 %428 = fadd <4 x double> %426, %427 store <4 x double> %428, ptr %_3.i.i.i.i.i.i638.2.5, align 8, !noalias !2661 %429 = fsub <4 x double> %426, %427 %430 = shufflevector <4 x double> %429, <4 x double> poison, <4 x i32> %431 = fmul <4 x double> %430, %421 %432 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %424, <4 x double> %429, <4 x double> %431) store <4 x double> %432, ptr %_3.i.i.i.i641.2.5, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %data.i5.i.i.i.i.i.i.i579.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %data.i.i.i.i.i.i583.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %433 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.i.i.i.6 = load double, ptr %433, align 8, !noalias !2661, !noundef !3 %434 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.i.i.i.6 = load double, ptr %434, align 8, !noalias !2661, !noundef !3 %435 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %_6.i.i.i.i.6 = fneg double %w1.1.i.i.i.6 %436 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.6, align 8, !noalias !2661 %437 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.6, align 8, !noalias !2661 %438 = fadd <4 x double> %436, %437 store <4 x double> %438, ptr %data.i.i.i.i.i.i583.6, align 8, !noalias !2661 %439 = fsub <4 x double> %436, %437 %440 = shufflevector <4 x double> %439, <4 x double> poison, <4 x i32> %441 = insertelement <4 x double> poison, double %_6.i.i.i.i.6, i64 0 %442 = insertelement <4 x double> %441, double %w1.1.i.i.i.6, i64 1 %443 = shufflevector <4 x double> %442, <4 x double> poison, <4 x i32> %444 = fmul <4 x double> %440, %443 %445 = insertelement <4 x double> poison, double %w1.0.i.i.i.6, i64 0 %446 = shufflevector <4 x double> %445, <4 x double> poison, <4 x i32> zeroinitializer %447 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %446, <4 x double> %439, <4 x double> %444) store <4 x double> %447, ptr %435, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %_3.i2.i.i.i.i.i.i.i635.2.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %_3.i.i.i.i.i.i638.2.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %_3.i.i.i.i641.2.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %448 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.6, align 8, !noalias !2661 %449 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.6, align 8, !noalias !2661 %450 = fadd <4 x double> %448, %449 store <4 x double> %450, ptr %_3.i.i.i.i.i.i638.2.6, align 8, !noalias !2661 %451 = fsub <4 x double> %448, %449 %452 = shufflevector <4 x double> %451, <4 x double> poison, <4 x i32> %453 = fmul <4 x double> %452, %443 %454 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %446, <4 x double> %451, <4 x double> %453) store <4 x double> %454, ptr %_3.i.i.i.i641.2.6, align 8, !noalias !2661 %data.i.i.i.i.i.i.i.i574.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i5.i.i.i.i.i.i.i579.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i583.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %455 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i.i.7 = load double, ptr %455, align 8, !noalias !2661, !noundef !3 %456 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i.i.7 = load double, ptr %456, align 8, !noalias !2661, !noundef !3 %457 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %_6.i.i.i.i.7 = fneg double %w1.1.i.i.i.7 %458 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i574.7, align 8, !noalias !2661 %459 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i579.7, align 8, !noalias !2661 %460 = fadd <4 x double> %458, %459 store <4 x double> %460, ptr %data.i.i.i.i.i.i583.7, align 8, !noalias !2661 %461 = fsub <4 x double> %458, %459 %462 = shufflevector <4 x double> %461, <4 x double> poison, <4 x i32> %463 = insertelement <4 x double> poison, double %_6.i.i.i.i.7, i64 0 %464 = insertelement <4 x double> %463, double %w1.1.i.i.i.7, i64 1 %465 = shufflevector <4 x double> %464, <4 x double> poison, <4 x i32> %466 = fmul <4 x double> %462, %465 %467 = insertelement <4 x double> poison, double %w1.0.i.i.i.7, i64 0 %468 = shufflevector <4 x double> %467, <4 x double> poison, <4 x i32> zeroinitializer %469 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %468, <4 x double> %461, <4 x double> %466) store <4 x double> %469, ptr %457, align 8, !noalias !2661 %_3.i.i.i.i.i.i.i.i632.2.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %_3.i2.i.i.i.i.i.i.i635.2.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %_3.i.i.i.i.i.i638.2.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %_3.i.i.i.i641.2.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %470 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i632.2.7, align 8, !noalias !2661 %471 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i635.2.7, align 8, !noalias !2661 %472 = fadd <4 x double> %470, %471 store <4 x double> %472, ptr %_3.i.i.i.i.i.i638.2.7, align 8, !noalias !2661 %473 = fsub <4 x double> %470, %471 %474 = shufflevector <4 x double> %473, <4 x double> poison, <4 x i32> %475 = fmul <4 x double> %474, %465 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %468, <4 x double> %473, <4 x double> %475) store <4 x double> %476, ptr %_3.i.i.i.i641.2.7, align 8, !noalias !2661 %477 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i109 = load double, ptr %477, align 8, !noalias !2664, !noundef !3 %478 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i110 = load double, ptr %478, align 8, !noalias !2664, !noundef !3 %479 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %_6.i.i.i130 = fneg double %w1.1.i.i110 %480 = load <4 x double>, ptr %scratch.0, align 8, !noalias !2664 %481 = load <4 x double>, ptr %159, align 8, !noalias !2664 %482 = fadd <4 x double> %480, %481 store <4 x double> %482, ptr %buf.0, align 8, !noalias !2664 %483 = fsub <4 x double> %480, %481 %484 = shufflevector <4 x double> %483, <4 x double> poison, <4 x i32> %485 = insertelement <4 x double> poison, double %_6.i.i.i130, i64 0 %486 = insertelement <4 x double> %485, double %w1.1.i.i110, i64 1 %487 = shufflevector <4 x double> %486, <4 x double> poison, <4 x i32> %488 = fmul <4 x double> %484, %487 %489 = insertelement <4 x double> poison, double %w1.0.i.i109, i64 0 %490 = shufflevector <4 x double> %489, <4 x double> poison, <4 x i32> zeroinitializer %491 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %490, <4 x double> %483, <4 x double> %488) store <4 x double> %491, ptr %479, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i808.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34 %_3.i.i.i.i.i.i811.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i814.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %492 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.2, align 8, !noalias !2664 %493 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.2, align 8, !noalias !2664 %494 = fadd <4 x double> %492, %493 store <4 x double> %494, ptr %_3.i.i.i.i.i.i811.2, align 8, !noalias !2664 %495 = fsub <4 x double> %492, %493 %496 = shufflevector <4 x double> %495, <4 x double> poison, <4 x i32> %497 = fmul <4 x double> %496, %487 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %490, <4 x double> %495, <4 x double> %497) store <4 x double> %498, ptr %_3.i.i.i.i814.2, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i808.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %_3.i.i.i.i.i.i811.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %_3.i.i.i.i814.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %499 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.4, align 8, !noalias !2664 %500 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.4, align 8, !noalias !2664 %501 = fadd <4 x double> %499, %500 store <4 x double> %501, ptr %_3.i.i.i.i.i.i811.4, align 8, !noalias !2664 %502 = fsub <4 x double> %499, %500 %503 = shufflevector <4 x double> %502, <4 x double> poison, <4 x i32> %504 = fmul <4 x double> %503, %487 %505 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %490, <4 x double> %502, <4 x double> %504) store <4 x double> %505, ptr %_3.i.i.i.i814.4, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i808.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38 %_3.i.i.i.i.i.i811.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i814.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %506 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.6, align 8, !noalias !2664 %507 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.6, align 8, !noalias !2664 %508 = fadd <4 x double> %506, %507 store <4 x double> %508, ptr %_3.i.i.i.i.i.i811.6, align 8, !noalias !2664 %509 = fsub <4 x double> %506, %507 %510 = shufflevector <4 x double> %509, <4 x double> poison, <4 x i32> %511 = fmul <4 x double> %510, %487 %512 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %490, <4 x double> %509, <4 x double> %511) store <4 x double> %512, ptr %_3.i.i.i.i814.6, align 8, !noalias !2664 %data.i.i.i.i.i.i.i.i747.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %data.i5.i.i.i.i.i.i.i752.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %data.i.i.i.i.i.i756.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %513 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.i.i109.1 = load double, ptr %513, align 8, !noalias !2664, !noundef !3 %514 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.i.i110.1 = load double, ptr %514, align 8, !noalias !2664, !noundef !3 %515 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %_6.i.i.i130.1 = fneg double %w1.1.i.i110.1 %516 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i747.1, align 8, !noalias !2664 %517 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i752.1, align 8, !noalias !2664 %518 = fadd <4 x double> %516, %517 store <4 x double> %518, ptr %data.i.i.i.i.i.i756.1, align 8, !noalias !2664 %519 = fsub <4 x double> %516, %517 %520 = shufflevector <4 x double> %519, <4 x double> poison, <4 x i32> %521 = insertelement <4 x double> poison, double %_6.i.i.i130.1, i64 0 %522 = insertelement <4 x double> %521, double %w1.1.i.i110.1, i64 1 %523 = shufflevector <4 x double> %522, <4 x double> poison, <4 x i32> %524 = fmul <4 x double> %520, %523 %525 = insertelement <4 x double> poison, double %w1.0.i.i109.1, i64 0 %526 = shufflevector <4 x double> %525, <4 x double> poison, <4 x i32> zeroinitializer %527 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %526, <4 x double> %519, <4 x double> %524) store <4 x double> %527, ptr %515, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i2.i.i.i.i.i.i.i808.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42 %_3.i.i.i.i.i.i811.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i.i.i.i814.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %528 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.2.1, align 8, !noalias !2664 %529 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.2.1, align 8, !noalias !2664 %530 = fadd <4 x double> %528, %529 store <4 x double> %530, ptr %_3.i.i.i.i.i.i811.2.1, align 8, !noalias !2664 %531 = fsub <4 x double> %528, %529 %532 = shufflevector <4 x double> %531, <4 x double> poison, <4 x i32> %533 = fmul <4 x double> %532, %523 %534 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %526, <4 x double> %531, <4 x double> %533) store <4 x double> %534, ptr %_3.i.i.i.i814.2.1, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %_3.i2.i.i.i.i.i.i.i808.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %_3.i.i.i.i.i.i811.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %_3.i.i.i.i814.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %535 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.4.1, align 8, !noalias !2664 %536 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.4.1, align 8, !noalias !2664 %537 = fadd <4 x double> %535, %536 store <4 x double> %537, ptr %_3.i.i.i.i.i.i811.4.1, align 8, !noalias !2664 %538 = fsub <4 x double> %535, %536 %539 = shufflevector <4 x double> %538, <4 x double> poison, <4 x i32> %540 = fmul <4 x double> %539, %523 %541 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %526, <4 x double> %538, <4 x double> %540) store <4 x double> %541, ptr %_3.i.i.i.i814.4.1, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i2.i.i.i.i.i.i.i808.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46 %_3.i.i.i.i.i.i811.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i814.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %542 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.6.1, align 8, !noalias !2664 %543 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.6.1, align 8, !noalias !2664 %544 = fadd <4 x double> %542, %543 store <4 x double> %544, ptr %_3.i.i.i.i.i.i811.6.1, align 8, !noalias !2664 %545 = fsub <4 x double> %542, %543 %546 = shufflevector <4 x double> %545, <4 x double> poison, <4 x i32> %547 = fmul <4 x double> %546, %523 %548 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %526, <4 x double> %545, <4 x double> %547) store <4 x double> %548, ptr %_3.i.i.i.i814.6.1, align 8, !noalias !2664 %data.i.i.i.i.i.i.i.i747.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %data.i5.i.i.i.i.i.i.i752.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i.i.i.i.i.i756.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %549 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i109.2 = load double, ptr %549, align 8, !noalias !2664, !noundef !3 %550 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i110.2 = load double, ptr %550, align 8, !noalias !2664, !noundef !3 %551 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %_6.i.i.i130.2 = fneg double %w1.1.i.i110.2 %552 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i747.2, align 8, !noalias !2664 %553 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i752.2, align 8, !noalias !2664 %554 = fadd <4 x double> %552, %553 store <4 x double> %554, ptr %data.i.i.i.i.i.i756.2, align 8, !noalias !2664 %555 = fsub <4 x double> %552, %553 %556 = shufflevector <4 x double> %555, <4 x double> poison, <4 x i32> %557 = insertelement <4 x double> poison, double %_6.i.i.i130.2, i64 0 %558 = insertelement <4 x double> %557, double %w1.1.i.i110.2, i64 1 %559 = shufflevector <4 x double> %558, <4 x double> poison, <4 x i32> %560 = fmul <4 x double> %556, %559 %561 = insertelement <4 x double> poison, double %w1.0.i.i109.2, i64 0 %562 = shufflevector <4 x double> %561, <4 x double> poison, <4 x i32> zeroinitializer %563 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %562, <4 x double> %555, <4 x double> %560) store <4 x double> %563, ptr %551, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i2.i.i.i.i.i.i.i808.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %_3.i.i.i.i.i.i811.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34 %_3.i.i.i.i814.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42 %564 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.2.2, align 8, !noalias !2664 %565 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.2.2, align 8, !noalias !2664 %566 = fadd <4 x double> %564, %565 store <4 x double> %566, ptr %_3.i.i.i.i.i.i811.2.2, align 8, !noalias !2664 %567 = fsub <4 x double> %564, %565 %568 = shufflevector <4 x double> %567, <4 x double> poison, <4 x i32> %569 = fmul <4 x double> %568, %559 %570 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %562, <4 x double> %567, <4 x double> %569) store <4 x double> %570, ptr %_3.i.i.i.i814.2.2, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %_3.i2.i.i.i.i.i.i.i808.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %_3.i.i.i.i.i.i811.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %_3.i.i.i.i814.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %571 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.4.2, align 8, !noalias !2664 %572 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.4.2, align 8, !noalias !2664 %573 = fadd <4 x double> %571, %572 store <4 x double> %573, ptr %_3.i.i.i.i.i.i811.4.2, align 8, !noalias !2664 %574 = fsub <4 x double> %571, %572 %575 = shufflevector <4 x double> %574, <4 x double> poison, <4 x i32> %576 = fmul <4 x double> %575, %559 %577 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %562, <4 x double> %574, <4 x double> %576) store <4 x double> %577, ptr %_3.i.i.i.i814.4.2, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %_3.i2.i.i.i.i.i.i.i808.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %_3.i.i.i.i.i.i811.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38 %_3.i.i.i.i814.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %578 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.6.2, align 8, !noalias !2664 %579 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.6.2, align 8, !noalias !2664 %580 = fadd <4 x double> %578, %579 store <4 x double> %580, ptr %_3.i.i.i.i.i.i811.6.2, align 8, !noalias !2664 %581 = fsub <4 x double> %578, %579 %582 = shufflevector <4 x double> %581, <4 x double> poison, <4 x i32> %583 = fmul <4 x double> %582, %559 %584 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %562, <4 x double> %581, <4 x double> %583) store <4 x double> %584, ptr %_3.i.i.i.i814.6.2, align 8, !noalias !2664 %data.i.i.i.i.i.i.i.i747.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %data.i5.i.i.i.i.i.i.i752.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i.i.i.i.i.i756.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %585 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.i.i109.3 = load double, ptr %585, align 8, !noalias !2664, !noundef !3 %586 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.i.i110.3 = load double, ptr %586, align 8, !noalias !2664, !noundef !3 %587 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %_6.i.i.i130.3 = fneg double %w1.1.i.i110.3 %588 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i747.3, align 8, !noalias !2664 %589 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i752.3, align 8, !noalias !2664 %590 = fadd <4 x double> %588, %589 store <4 x double> %590, ptr %data.i.i.i.i.i.i756.3, align 8, !noalias !2664 %591 = fsub <4 x double> %588, %589 %592 = shufflevector <4 x double> %591, <4 x double> poison, <4 x i32> %593 = insertelement <4 x double> poison, double %_6.i.i.i130.3, i64 0 %594 = insertelement <4 x double> %593, double %w1.1.i.i110.3, i64 1 %595 = shufflevector <4 x double> %594, <4 x double> poison, <4 x i32> %596 = fmul <4 x double> %592, %595 %597 = insertelement <4 x double> poison, double %w1.0.i.i109.3, i64 0 %598 = shufflevector <4 x double> %597, <4 x double> poison, <4 x i32> zeroinitializer %599 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> %591, <4 x double> %596) store <4 x double> %599, ptr %587, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i2.i.i.i.i.i.i.i808.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %_3.i.i.i.i.i.i811.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %_3.i.i.i.i814.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %600 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.2.3, align 8, !noalias !2664 %601 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.2.3, align 8, !noalias !2664 %602 = fadd <4 x double> %600, %601 store <4 x double> %602, ptr %_3.i.i.i.i.i.i811.2.3, align 8, !noalias !2664 %603 = fsub <4 x double> %600, %601 %604 = shufflevector <4 x double> %603, <4 x double> poison, <4 x i32> %605 = fmul <4 x double> %604, %595 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> %603, <4 x double> %605) store <4 x double> %606, ptr %_3.i.i.i.i814.2.3, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_3.i2.i.i.i.i.i.i.i808.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %_3.i.i.i.i.i.i811.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %_3.i.i.i.i814.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %607 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.4.3, align 8, !noalias !2664 %608 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.4.3, align 8, !noalias !2664 %609 = fadd <4 x double> %607, %608 store <4 x double> %609, ptr %_3.i.i.i.i.i.i811.4.3, align 8, !noalias !2664 %610 = fsub <4 x double> %607, %608 %611 = shufflevector <4 x double> %610, <4 x double> poison, <4 x i32> %612 = fmul <4 x double> %611, %595 %613 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> %610, <4 x double> %612) store <4 x double> %613, ptr %_3.i.i.i.i814.4.3, align 8, !noalias !2664 %_3.i.i.i.i.i.i.i.i805.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %_3.i2.i.i.i.i.i.i.i808.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %_3.i.i.i.i.i.i811.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %_3.i.i.i.i814.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %614 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i805.6.3, align 8, !noalias !2664 %615 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i808.6.3, align 8, !noalias !2664 %616 = fadd <4 x double> %614, %615 store <4 x double> %616, ptr %_3.i.i.i.i.i.i811.6.3, align 8, !noalias !2664 %617 = fsub <4 x double> %614, %615 %618 = shufflevector <4 x double> %617, <4 x double> poison, <4 x i32> %619 = fmul <4 x double> %618, %595 %620 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> %617, <4 x double> %619) store <4 x double> %620, ptr %_3.i.i.i.i814.6.3, align 8, !noalias !2664 %621 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i182 = load double, ptr %621, align 8, !noalias !2652, !noundef !3 %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.1.i.i182, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %622 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i181 = load double, ptr %622, align 8, !noalias !2652, !noundef !3 %broadcast.splatinsert40 = insertelement <4 x double> poison, double %w1.0.i.i181, i64 0 %broadcast.splat41 = shufflevector <4 x double> %broadcast.splatinsert40, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i202 = fneg double %w1.1.i.i182 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i202, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %623 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec33 = load <8 x double>, ptr %buf.0, align 8, !noalias !2652 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %wide.vec36 = load <8 x double>, ptr %0, align 8, !noalias !2652 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %624 = fadd <4 x double> %strided.vec34, %strided.vec37 %625 = fadd <4 x double> %strided.vec35, %strided.vec38 %interleaved.vec39 = shufflevector <4 x double> %624, <4 x double> %625, <8 x i32> store <8 x double> %interleaved.vec39, ptr %scratch.0, align 8, !noalias !2652 %626 = fsub <4 x double> %strided.vec34, %strided.vec37 %627 = fsub <4 x double> %strided.vec35, %strided.vec38 %628 = fmul <4 x double> %627, %broadcast.splat %629 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %626, <4 x double> %628) %630 = fmul <4 x double> %broadcast.splat43, %626 %631 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %627, <4 x double> %630) %interleaved.vec44 = shufflevector <4 x double> %629, <4 x double> %631, <8 x i32> store <8 x double> %interleaved.vec44, ptr %623, align 8, !noalias !2652 %632 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %633 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %wide.vec33.1 = load <8 x double>, ptr %632, align 8, !noalias !2652 %strided.vec34.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %wide.vec36.1 = load <8 x double>, ptr %633, align 8, !noalias !2652 %strided.vec37.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %strided.vec38.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %634 = fadd <4 x double> %strided.vec34.1, %strided.vec37.1 %635 = fadd <4 x double> %strided.vec35.1, %strided.vec38.1 %636 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec39.1 = shufflevector <4 x double> %634, <4 x double> %635, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %636, align 8, !noalias !2652 %637 = fsub <4 x double> %strided.vec34.1, %strided.vec37.1 %638 = fsub <4 x double> %strided.vec35.1, %strided.vec38.1 %639 = fmul <4 x double> %638, %broadcast.splat %640 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %637, <4 x double> %639) %641 = fmul <4 x double> %broadcast.splat43, %637 %642 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %638, <4 x double> %641) %643 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec44.1 = shufflevector <4 x double> %640, <4 x double> %642, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %643, align 8, !noalias !2652 %644 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %645 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %wide.vec33.2 = load <8 x double>, ptr %644, align 8, !noalias !2652 %strided.vec34.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %wide.vec36.2 = load <8 x double>, ptr %645, align 8, !noalias !2652 %strided.vec37.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %strided.vec38.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %646 = fadd <4 x double> %strided.vec34.2, %strided.vec37.2 %647 = fadd <4 x double> %strided.vec35.2, %strided.vec38.2 %648 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec39.2 = shufflevector <4 x double> %646, <4 x double> %647, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %648, align 8, !noalias !2652 %649 = fsub <4 x double> %strided.vec34.2, %strided.vec37.2 %650 = fsub <4 x double> %strided.vec35.2, %strided.vec38.2 %651 = fmul <4 x double> %650, %broadcast.splat %652 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %649, <4 x double> %651) %653 = fmul <4 x double> %broadcast.splat43, %649 %654 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %650, <4 x double> %653) %655 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec44.2 = shufflevector <4 x double> %652, <4 x double> %654, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %655, align 8, !noalias !2652 %656 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %657 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %wide.vec33.3 = load <8 x double>, ptr %656, align 8, !noalias !2652 %strided.vec34.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %strided.vec35.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %wide.vec36.3 = load <8 x double>, ptr %657, align 8, !noalias !2652 %strided.vec37.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %strided.vec38.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %658 = fadd <4 x double> %strided.vec34.3, %strided.vec37.3 %659 = fadd <4 x double> %strided.vec35.3, %strided.vec38.3 %660 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec39.3 = shufflevector <4 x double> %658, <4 x double> %659, <8 x i32> store <8 x double> %interleaved.vec39.3, ptr %660, align 8, !noalias !2652 %661 = fsub <4 x double> %strided.vec34.3, %strided.vec37.3 %662 = fsub <4 x double> %strided.vec35.3, %strided.vec38.3 %663 = fmul <4 x double> %662, %broadcast.splat %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %661, <4 x double> %663) %665 = fmul <4 x double> %broadcast.splat43, %661 %666 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %662, <4 x double> %665) %667 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec44.3 = shufflevector <4 x double> %664, <4 x double> %666, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %667, align 8, !noalias !2652 %668 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i182.1 = load double, ptr %668, align 8, !noalias !2652, !noundef !3 %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w1.1.i.i182.1, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %669 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i181.1 = load double, ptr %669, align 8, !noalias !2652, !noundef !3 %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.0.i.i181.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i202.1 = fneg double %w1.1.i.i182.1 %broadcast.splatinsert59 = insertelement <4 x double> poison, double %_6.i.i.i202.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %670 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i5.i.i.i.i.i.i.i925.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i920.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec52 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i920.1, align 8, !noalias !2652 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i925.1, align 8, !noalias !2652 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %671 = fadd <4 x double> %strided.vec53, %strided.vec56 %672 = fadd <4 x double> %strided.vec54, %strided.vec57 %interleaved.vec58 = shufflevector <4 x double> %671, <4 x double> %672, <8 x i32> store <8 x double> %interleaved.vec58, ptr %159, align 8, !noalias !2652 %673 = fsub <4 x double> %strided.vec53, %strided.vec56 %674 = fsub <4 x double> %strided.vec54, %strided.vec57 %675 = fmul <4 x double> %674, %broadcast.splat60 %676 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %673, <4 x double> %675) %677 = fmul <4 x double> %broadcast.splat64, %673 %678 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %674, <4 x double> %677) %interleaved.vec65 = shufflevector <4 x double> %676, <4 x double> %678, <8 x i32> store <8 x double> %interleaved.vec65, ptr %670, align 8, !noalias !2652 %679 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %680 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec52.1 = load <8 x double>, ptr %679, align 8, !noalias !2652 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %680, align 8, !noalias !2652 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %681 = fadd <4 x double> %strided.vec53.1, %strided.vec56.1 %682 = fadd <4 x double> %strided.vec54.1, %strided.vec57.1 %683 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec58.1 = shufflevector <4 x double> %681, <4 x double> %682, <8 x i32> store <8 x double> %interleaved.vec58.1, ptr %683, align 8, !noalias !2652 %684 = fsub <4 x double> %strided.vec53.1, %strided.vec56.1 %685 = fsub <4 x double> %strided.vec54.1, %strided.vec57.1 %686 = fmul <4 x double> %685, %broadcast.splat60 %687 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %684, <4 x double> %686) %688 = fmul <4 x double> %broadcast.splat64, %684 %689 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %685, <4 x double> %688) %690 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec65.1 = shufflevector <4 x double> %687, <4 x double> %689, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %690, align 8, !noalias !2652 %691 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %692 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec52.2 = load <8 x double>, ptr %691, align 8, !noalias !2652 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %692, align 8, !noalias !2652 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %693 = fadd <4 x double> %strided.vec53.2, %strided.vec56.2 %694 = fadd <4 x double> %strided.vec54.2, %strided.vec57.2 %695 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec58.2 = shufflevector <4 x double> %693, <4 x double> %694, <8 x i32> store <8 x double> %interleaved.vec58.2, ptr %695, align 8, !noalias !2652 %696 = fsub <4 x double> %strided.vec53.2, %strided.vec56.2 %697 = fsub <4 x double> %strided.vec54.2, %strided.vec57.2 %698 = fmul <4 x double> %697, %broadcast.splat60 %699 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %696, <4 x double> %698) %700 = fmul <4 x double> %broadcast.splat64, %696 %701 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %697, <4 x double> %700) %702 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec65.2 = shufflevector <4 x double> %699, <4 x double> %701, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %702, align 8, !noalias !2652 %703 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %704 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec52.3 = load <8 x double>, ptr %703, align 8, !noalias !2652 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %704, align 8, !noalias !2652 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %705 = fadd <4 x double> %strided.vec53.3, %strided.vec56.3 %706 = fadd <4 x double> %strided.vec54.3, %strided.vec57.3 %707 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec58.3 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec58.3, ptr %707, align 8, !noalias !2652 %708 = fsub <4 x double> %strided.vec53.3, %strided.vec56.3 %709 = fsub <4 x double> %strided.vec54.3, %strided.vec57.3 %710 = fmul <4 x double> %709, %broadcast.splat60 %711 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %708, <4 x double> %710) %712 = fmul <4 x double> %broadcast.splat64, %708 %713 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %709, <4 x double> %712) %714 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec65.3 = shufflevector <4 x double> %711, <4 x double> %713, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %714, align 8, !noalias !2652 %wide.vec73 = load <8 x double>, ptr %scratch.0, align 8, !noalias !2652 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %159, align 8, !noalias !2652 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %715 = fadd <4 x double> %strided.vec74, %strided.vec77 %716 = fadd <4 x double> %strided.vec75, %strided.vec78 %717 = fsub <4 x double> %strided.vec74, %strided.vec77 %718 = fsub <4 x double> %strided.vec75, %strided.vec78 %interleaved.vec79 = shufflevector <4 x double> %715, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec79, ptr %buf.0, align 8, !noalias !2652 %interleaved.vec80 = shufflevector <4 x double> %717, <4 x double> %718, <8 x i32> store <8 x double> %interleaved.vec80, ptr %0, align 8, !noalias !2652 %719 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %720 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %wide.vec73.1 = load <8 x double>, ptr %719, align 8, !noalias !2652 %strided.vec74.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %strided.vec75.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %wide.vec76.1 = load <8 x double>, ptr %720, align 8, !noalias !2652 %strided.vec77.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %strided.vec78.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %721 = fadd <4 x double> %strided.vec74.1, %strided.vec77.1 %722 = fadd <4 x double> %strided.vec75.1, %strided.vec78.1 %723 = fsub <4 x double> %strided.vec74.1, %strided.vec77.1 %724 = fsub <4 x double> %strided.vec75.1, %strided.vec78.1 %725 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec79.1 = shufflevector <4 x double> %721, <4 x double> %722, <8 x i32> store <8 x double> %interleaved.vec79.1, ptr %725, align 8, !noalias !2652 %726 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec80.1 = shufflevector <4 x double> %723, <4 x double> %724, <8 x i32> store <8 x double> %interleaved.vec80.1, ptr %726, align 8, !noalias !2652 %727 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %728 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %wide.vec73.2 = load <8 x double>, ptr %727, align 8, !noalias !2652 %strided.vec74.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %strided.vec75.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %wide.vec76.2 = load <8 x double>, ptr %728, align 8, !noalias !2652 %strided.vec77.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %strided.vec78.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %729 = fadd <4 x double> %strided.vec74.2, %strided.vec77.2 %730 = fadd <4 x double> %strided.vec75.2, %strided.vec78.2 %731 = fsub <4 x double> %strided.vec74.2, %strided.vec77.2 %732 = fsub <4 x double> %strided.vec75.2, %strided.vec78.2 %733 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec79.2 = shufflevector <4 x double> %729, <4 x double> %730, <8 x i32> store <8 x double> %interleaved.vec79.2, ptr %733, align 8, !noalias !2652 %734 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec80.2 = shufflevector <4 x double> %731, <4 x double> %732, <8 x i32> store <8 x double> %interleaved.vec80.2, ptr %734, align 8, !noalias !2652 %735 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %736 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %wide.vec73.3 = load <8 x double>, ptr %735, align 8, !noalias !2652 %strided.vec74.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %strided.vec75.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %wide.vec76.3 = load <8 x double>, ptr %736, align 8, !noalias !2652 %strided.vec77.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %strided.vec78.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %737 = fadd <4 x double> %strided.vec74.3, %strided.vec77.3 %738 = fadd <4 x double> %strided.vec75.3, %strided.vec78.3 %739 = fsub <4 x double> %strided.vec74.3, %strided.vec77.3 %740 = fsub <4 x double> %strided.vec75.3, %strided.vec78.3 %741 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec79.3 = shufflevector <4 x double> %737, <4 x double> %738, <8 x i32> store <8 x double> %interleaved.vec79.3, ptr %741, align 8, !noalias !2652 %742 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec80.3 = shufflevector <4 x double> %739, <4 x double> %740, <8 x i32> store <8 x double> %interleaved.vec80.3, ptr %742, align 8, !noalias !2652 %743 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %744 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %wide.vec73.4 = load <8 x double>, ptr %743, align 8, !noalias !2652 %strided.vec74.4 = shufflevector <8 x double> %wide.vec73.4, <8 x double> poison, <4 x i32> %strided.vec75.4 = shufflevector <8 x double> %wide.vec73.4, <8 x double> poison, <4 x i32> %wide.vec76.4 = load <8 x double>, ptr %744, align 8, !noalias !2652 %strided.vec77.4 = shufflevector <8 x double> %wide.vec76.4, <8 x double> poison, <4 x i32> %strided.vec78.4 = shufflevector <8 x double> %wide.vec76.4, <8 x double> poison, <4 x i32> %745 = fadd <4 x double> %strided.vec74.4, %strided.vec77.4 %746 = fadd <4 x double> %strided.vec75.4, %strided.vec78.4 %747 = fsub <4 x double> %strided.vec74.4, %strided.vec77.4 %748 = fsub <4 x double> %strided.vec75.4, %strided.vec78.4 %749 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec79.4 = shufflevector <4 x double> %745, <4 x double> %746, <8 x i32> store <8 x double> %interleaved.vec79.4, ptr %749, align 8, !noalias !2652 %750 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec80.4 = shufflevector <4 x double> %747, <4 x double> %748, <8 x i32> store <8 x double> %interleaved.vec80.4, ptr %750, align 8, !noalias !2652 %751 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %752 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec73.5 = load <8 x double>, ptr %751, align 8, !noalias !2652 %strided.vec74.5 = shufflevector <8 x double> %wide.vec73.5, <8 x double> poison, <4 x i32> %strided.vec75.5 = shufflevector <8 x double> %wide.vec73.5, <8 x double> poison, <4 x i32> %wide.vec76.5 = load <8 x double>, ptr %752, align 8, !noalias !2652 %strided.vec77.5 = shufflevector <8 x double> %wide.vec76.5, <8 x double> poison, <4 x i32> %strided.vec78.5 = shufflevector <8 x double> %wide.vec76.5, <8 x double> poison, <4 x i32> %753 = fadd <4 x double> %strided.vec74.5, %strided.vec77.5 %754 = fadd <4 x double> %strided.vec75.5, %strided.vec78.5 %755 = fsub <4 x double> %strided.vec74.5, %strided.vec77.5 %756 = fsub <4 x double> %strided.vec75.5, %strided.vec78.5 %757 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec79.5 = shufflevector <4 x double> %753, <4 x double> %754, <8 x i32> store <8 x double> %interleaved.vec79.5, ptr %757, align 8, !noalias !2652 %758 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec80.5 = shufflevector <4 x double> %755, <4 x double> %756, <8 x i32> store <8 x double> %interleaved.vec80.5, ptr %758, align 8, !noalias !2652 %759 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %760 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec73.6 = load <8 x double>, ptr %759, align 8, !noalias !2652 %strided.vec74.6 = shufflevector <8 x double> %wide.vec73.6, <8 x double> poison, <4 x i32> %strided.vec75.6 = shufflevector <8 x double> %wide.vec73.6, <8 x double> poison, <4 x i32> %wide.vec76.6 = load <8 x double>, ptr %760, align 8, !noalias !2652 %strided.vec77.6 = shufflevector <8 x double> %wide.vec76.6, <8 x double> poison, <4 x i32> %strided.vec78.6 = shufflevector <8 x double> %wide.vec76.6, <8 x double> poison, <4 x i32> %761 = fadd <4 x double> %strided.vec74.6, %strided.vec77.6 %762 = fadd <4 x double> %strided.vec75.6, %strided.vec78.6 %763 = fsub <4 x double> %strided.vec74.6, %strided.vec77.6 %764 = fsub <4 x double> %strided.vec75.6, %strided.vec78.6 %765 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec79.6 = shufflevector <4 x double> %761, <4 x double> %762, <8 x i32> store <8 x double> %interleaved.vec79.6, ptr %765, align 8, !noalias !2652 %766 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec80.6 = shufflevector <4 x double> %763, <4 x double> %764, <8 x i32> store <8 x double> %interleaved.vec80.6, ptr %766, align 8, !noalias !2652 %767 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %768 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec73.7 = load <8 x double>, ptr %767, align 8, !noalias !2652 %strided.vec74.7 = shufflevector <8 x double> %wide.vec73.7, <8 x double> poison, <4 x i32> %strided.vec75.7 = shufflevector <8 x double> %wide.vec73.7, <8 x double> poison, <4 x i32> %wide.vec76.7 = load <8 x double>, ptr %768, align 8, !noalias !2652 %strided.vec77.7 = shufflevector <8 x double> %wide.vec76.7, <8 x double> poison, <4 x i32> %strided.vec78.7 = shufflevector <8 x double> %wide.vec76.7, <8 x double> poison, <4 x i32> %769 = fadd <4 x double> %strided.vec74.7, %strided.vec77.7 %770 = fadd <4 x double> %strided.vec75.7, %strided.vec78.7 %771 = fsub <4 x double> %strided.vec74.7, %strided.vec77.7 %772 = fsub <4 x double> %strided.vec75.7, %strided.vec78.7 %773 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec79.7 = shufflevector <4 x double> %769, <4 x double> %770, <8 x i32> store <8 x double> %interleaved.vec79.7, ptr %773, align 8, !noalias !2652 %774 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec80.7 = shufflevector <4 x double> %771, <4 x double> %772, <8 x i32> store <8 x double> %interleaved.vec80.7, ptr %774, align 8, !noalias !2652 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2652 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1ac26ecc806ab954E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2667 store i64 16, ptr %n.i, align 8, !noalias !2667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2667 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2667 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2667 store ptr null, ptr %_16.i, align 8, !noalias !2667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2667 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2667 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2667 store ptr null, ptr %_24.i, align 8, !noalias !2667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2667 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2667 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2667 store ptr null, ptr %_32.i, align 8, !noalias !2667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2667 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2667 store i64 %w.1, ptr %_34.i, align 8, !noalias !2667 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb24.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2667 store ptr null, ptr %_40.i, align 8, !noalias !2667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb24.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2667 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %6 = load <2 x double>, ptr %buf.0, align 8, !noalias !2670 %7 = load <2 x double>, ptr %4, align 8, !noalias !2670 %8 = load <2 x double>, ptr %3, align 8, !noalias !2670 %9 = load <2 x double>, ptr %5, align 8, !noalias !2670 %10 = fadd <2 x double> %6, %8 %11 = fadd <2 x double> %7, %9 %12 = fadd <2 x double> %10, %11 store <2 x double> %12, ptr %scratch.0, align 8, !noalias !2670 %13 = fsub <2 x double> %6, %8 %14 = fsub <2 x double> %7, %9 %15 = shufflevector <2 x double> %14, <2 x double> poison, <2 x i32> %16 = fadd <2 x double> %13, %15 %17 = fsub <2 x double> %13, %15 %18 = shufflevector <2 x double> %16, <2 x double> %17, <2 x i32> store <2 x double> %18, ptr %1, align 8, !noalias !2670 %19 = fsub <2 x double> %10, %11 store <2 x double> %19, ptr %0, align 8, !noalias !2670 %20 = shufflevector <2 x double> %17, <2 x double> %16, <2 x i32> store <2 x double> %20, ptr %2, align 8, !noalias !2670 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %21 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2670 %22 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !2670 %23 = load <2 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !2670 %24 = load <2 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !2670 %25 = fadd <2 x double> %21, %23 %26 = fadd <2 x double> %22, %24 %27 = fadd <2 x double> %25, %26 store <2 x double> %27, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2670 %28 = fsub <2 x double> %21, %23 %29 = fsub <2 x double> %22, %24 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> %31 = fadd <2 x double> %28, %30 %32 = fsub <2 x double> %28, %30 %33 = shufflevector <2 x double> %31, <2 x double> %32, <2 x i32> store <2 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2670 %34 = fsub <2 x double> %25, %26 store <2 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2670 %35 = shufflevector <2 x double> %32, <2 x double> %31, <2 x i32> store <2 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2670 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %36 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2670 %37 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !2670 %38 = load <2 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !2670 %39 = load <2 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !2670 %40 = fadd <2 x double> %36, %38 %41 = fadd <2 x double> %37, %39 %42 = fadd <2 x double> %40, %41 store <2 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2670 %43 = fsub <2 x double> %36, %38 %44 = fsub <2 x double> %37, %39 %45 = shufflevector <2 x double> %44, <2 x double> poison, <2 x i32> %46 = fadd <2 x double> %43, %45 %47 = fsub <2 x double> %43, %45 %48 = shufflevector <2 x double> %46, <2 x double> %47, <2 x i32> store <2 x double> %48, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2670 %49 = fsub <2 x double> %40, %41 store <2 x double> %49, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2670 %50 = shufflevector <2 x double> %47, <2 x double> %46, <2 x i32> store <2 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2670 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %51 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2670 %52 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !2670 %53 = load <2 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !2670 %54 = load <2 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !2670 %55 = fadd <2 x double> %51, %53 %56 = fadd <2 x double> %52, %54 %57 = fadd <2 x double> %55, %56 store <2 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2670 %58 = fsub <2 x double> %51, %53 %59 = fsub <2 x double> %52, %54 %60 = shufflevector <2 x double> %59, <2 x double> poison, <2 x i32> %61 = fadd <2 x double> %58, %60 %62 = fsub <2 x double> %58, %60 %63 = shufflevector <2 x double> %61, <2 x double> %62, <2 x i32> store <2 x double> %63, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2670 %64 = fsub <2 x double> %55, %56 store <2 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2670 %65 = shufflevector <2 x double> %62, <2 x double> %61, <2 x i32> store <2 x double> %65, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2670 %66 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %67 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %68 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %69 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %70 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %70, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %71 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %71, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %72 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %72, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %73 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 2 %74 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 1 %75 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 3 %76 = fneg <4 x double> %wide.masked.gather1 %77 = fneg <4 x double> %wide.masked.gather3 %78 = fneg <4 x double> %wide.masked.gather5 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %79 = getelementptr inbounds i8, <4 x ptr> %66, i64 8 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %79, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %74, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %80 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 1, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %80, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %81 = fmul <4 x double> %wide.masked.gather9, %76 %82 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather8, <4 x double> %81) %83 = fmul <4 x double> %wide.masked.gather1, %wide.masked.gather8 %84 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather9, <4 x double> %83) %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %73, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %85 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 2, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %86 = fmul <4 x double> %wide.masked.gather11, %77 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %wide.masked.gather10, <4 x double> %86) %88 = fmul <4 x double> %wide.masked.gather3, %wide.masked.gather10 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %wide.masked.gather11, <4 x double> %88) %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %75, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %90 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 3, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %90, i32 8, <4 x i1> , <4 x double> poison), !noalias !2667 %91 = fmul <4 x double> %wide.masked.gather13, %78 %92 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %wide.masked.gather12, <4 x double> %91) %93 = fmul <4 x double> %wide.masked.gather5, %wide.masked.gather12 %94 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %wide.masked.gather13, <4 x double> %93) %95 = fadd <4 x double> %wide.masked.gather6, %87 %96 = fadd <4 x double> %wide.masked.gather7, %89 %97 = fsub <4 x double> %wide.masked.gather6, %87 %98 = fsub <4 x double> %wide.masked.gather7, %89 %99 = fadd <4 x double> %82, %92 %100 = fadd <4 x double> %84, %94 %101 = fsub <4 x double> %82, %92 %102 = fsub <4 x double> %84, %94 %103 = fadd <4 x double> %95, %99 %104 = fadd <4 x double> %96, %100 %interleaved.vec = shufflevector <4 x double> %103, <4 x double> %104, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !2667 %105 = fadd <4 x double> %97, %102 %106 = fsub <4 x double> %98, %101 %107 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec14 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec14, ptr %107, align 8, !noalias !2667 %108 = fsub <4 x double> %95, %99 %109 = fsub <4 x double> %96, %100 %110 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec15 = shufflevector <4 x double> %108, <4 x double> %109, <8 x i32> store <8 x double> %interleaved.vec15, ptr %110, align 8, !noalias !2667 %111 = fsub <4 x double> %97, %102 %112 = fadd <4 x double> %98, %101 %113 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec16 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> store <8 x double> %interleaved.vec16, ptr %113, align 8, !noalias !2667 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2667 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1ae0e14613b93943E"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2673 store i64 4, ptr %n.i.i, align 8, !noalias !2673 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2673 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2673 %_12.i.i = icmp eq i64 %buf.1, 4 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2673 store ptr null, ptr %_16.i.i, align 8, !noalias !2673 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2673 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2673 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2673 %_20.i.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2673 store ptr null, ptr %_24.i.i, align 8, !noalias !2673 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2673 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2673 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2673 %_28.i.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2673 store ptr null, ptr %_32.i.i, align 8, !noalias !2673 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2673 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2673 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2673 %_36.i.i = icmp eq i64 %w.1, 4 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d940a834171f867E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2673 store ptr null, ptr %_40.i.i, align 8, !noalias !2673 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d940a834171f867E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2673 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !2678 store i64 1, ptr %_8.i.i.i, align 8, !noalias !2678 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !2678 store ptr null, ptr %_13.i.i.i, align 8, !noalias !2678 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_1b2545642a9bdfc4ff02124e6915c842) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1c18c7fb641f8fd4E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2685 store i64 64, ptr %n.i, align 8, !noalias !2685 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2685 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2685 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2685 store ptr null, ptr %_16.i, align 8, !noalias !2685 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2685 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2685 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2685 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2685 store ptr null, ptr %_24.i, align 8, !noalias !2685 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2685 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2685 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2685 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2685 store ptr null, ptr %_32.i, align 8, !noalias !2685 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2685 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2685 store i64 %w.1, ptr %_34.i, align 8, !noalias !2685 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2685 store ptr null, ptr %_40.i, align 8, !noalias !2685 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2685 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !2685 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !2685 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !2685 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !2685 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !2685 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !2685 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !2685 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !2685 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !2685 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fsub <4 x double> %75, %80 %92 = fadd <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fadd <4 x double> %75, %80 %96 = fsub <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fsub <4 x double> %83, %88 %100 = fadd <4 x double> %84, %87 %101 = fsub <4 x double> %99, %100 %102 = fadd <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fadd <4 x double> %83, %88 %108 = fsub <4 x double> %84, %87 %109 = fadd <4 x double> %108, %107 %110 = fsub <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !2685 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !2685 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !2685 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !2685 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !2685 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !2685 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !2685 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !2685 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !2685 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !2685 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !2685 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !2685 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !2685 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !2685 %141 = fsub <4 x double> %93, %106 %142 = fadd <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !2685 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !2685 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !2685 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !2685 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !2685 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !2685 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !2685 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !2685 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !2685 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !2685 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !2685 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !2685 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !2685 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !2685 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !2685 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !2685 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !2685 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !2685 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !2685 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !2685 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !2685 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !2685 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !2685 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !2685 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !2685 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !2685 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !2685 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !2685 %205 = fadd <4 x double> %93, %106 %206 = fsub <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !2685 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !2685 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !2685 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !2685 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !2685 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !2685 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !2685 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !2685 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !2685 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !2685 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !2685 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !2685 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !2685 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !2685 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 8 br i1 %237, label %vector.body40, label %vector.body, !llvm.loop !2688 vector.body40: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec42 = load <8 x double>, ptr %scratch.0, align 8, !noalias !2685 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %242, align 8, !noalias !2685 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %243, align 8, !noalias !2685 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %241, align 8, !noalias !2685 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %244, align 8, !noalias !2685 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %239, align 8, !noalias !2685 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %240, align 8, !noalias !2685 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %238, align 8, !noalias !2685 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %245 = fadd <4 x double> %strided.vec43, %strided.vec55 %246 = fadd <4 x double> %strided.vec44, %strided.vec56 %247 = fsub <4 x double> %strided.vec43, %strided.vec55 %248 = fsub <4 x double> %strided.vec44, %strided.vec56 %249 = fadd <4 x double> %strided.vec49, %strided.vec61 %250 = fadd <4 x double> %strided.vec50, %strided.vec62 %251 = fsub <4 x double> %strided.vec49, %strided.vec61 %252 = fsub <4 x double> %strided.vec50, %strided.vec62 %253 = fadd <4 x double> %strided.vec46, %strided.vec58 %254 = fadd <4 x double> %strided.vec47, %strided.vec59 %255 = fsub <4 x double> %strided.vec46, %strided.vec58 %256 = fsub <4 x double> %strided.vec47, %strided.vec59 %257 = fadd <4 x double> %strided.vec52, %strided.vec64 %258 = fadd <4 x double> %strided.vec53, %strided.vec65 %259 = fsub <4 x double> %strided.vec52, %strided.vec64 %260 = fsub <4 x double> %strided.vec53, %strided.vec65 %261 = fadd <4 x double> %245, %249 %262 = fadd <4 x double> %246, %250 %263 = fsub <4 x double> %247, %252 %264 = fadd <4 x double> %248, %251 %265 = fsub <4 x double> %245, %249 %266 = fsub <4 x double> %246, %250 %267 = fadd <4 x double> %247, %252 %268 = fsub <4 x double> %248, %251 %269 = fadd <4 x double> %253, %257 %270 = fadd <4 x double> %254, %258 %271 = fsub <4 x double> %255, %260 %272 = fadd <4 x double> %256, %259 %273 = fsub <4 x double> %271, %272 %274 = fadd <4 x double> %272, %271 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fsub <4 x double> %253, %257 %278 = fsub <4 x double> %254, %258 %279 = fadd <4 x double> %255, %260 %280 = fsub <4 x double> %256, %259 %281 = fadd <4 x double> %280, %279 %282 = fsub <4 x double> %280, %279 %283 = fmul <4 x double> %281, %284 = fmul <4 x double> %282, %285 = fadd <4 x double> %261, %269 %286 = fadd <4 x double> %262, %270 %287 = fadd <4 x double> %263, %275 %288 = fadd <4 x double> %264, %276 %289 = fsub <4 x double> %265, %278 %290 = fadd <4 x double> %266, %277 %291 = fsub <4 x double> %267, %283 %292 = fsub <4 x double> %268, %284 %293 = fsub <4 x double> %261, %269 %294 = fsub <4 x double> %262, %270 %295 = fsub <4 x double> %263, %275 %296 = fsub <4 x double> %264, %276 %297 = fadd <4 x double> %265, %278 %298 = fsub <4 x double> %266, %277 %299 = fadd <4 x double> %267, %283 %300 = fadd <4 x double> %268, %284 %interleaved.vec = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !2685 %interleaved.vec66 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec66, ptr %2, align 8, !noalias !2685 %interleaved.vec67 = shufflevector <4 x double> %289, <4 x double> %290, <8 x i32> store <8 x double> %interleaved.vec67, ptr %1, align 8, !noalias !2685 %interleaved.vec68 = shufflevector <4 x double> %291, <4 x double> %292, <8 x i32> store <8 x double> %interleaved.vec68, ptr %3, align 8, !noalias !2685 %interleaved.vec69 = shufflevector <4 x double> %293, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec69, ptr %0, align 8, !noalias !2685 %interleaved.vec70 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec70, ptr %5, align 8, !noalias !2685 %interleaved.vec71 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec71, ptr %4, align 8, !noalias !2685 %interleaved.vec72 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec72, ptr %6, align 8, !noalias !2685 %301 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %302 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %303 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %304 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %305 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %306 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %307 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %308 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec42.1 = load <8 x double>, ptr %301, align 8, !noalias !2685 %strided.vec43.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %strided.vec44.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %wide.vec45.1 = load <8 x double>, ptr %302, align 8, !noalias !2685 %strided.vec46.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %strided.vec47.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %wide.vec48.1 = load <8 x double>, ptr %303, align 8, !noalias !2685 %strided.vec49.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %strided.vec50.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %wide.vec51.1 = load <8 x double>, ptr %304, align 8, !noalias !2685 %strided.vec52.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %strided.vec53.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %wide.vec54.1 = load <8 x double>, ptr %305, align 8, !noalias !2685 %strided.vec55.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %strided.vec56.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %wide.vec57.1 = load <8 x double>, ptr %306, align 8, !noalias !2685 %strided.vec58.1 = shufflevector <8 x double> %wide.vec57.1, <8 x double> poison, <4 x i32> %strided.vec59.1 = shufflevector <8 x double> %wide.vec57.1, <8 x double> poison, <4 x i32> %wide.vec60.1 = load <8 x double>, ptr %307, align 8, !noalias !2685 %strided.vec61.1 = shufflevector <8 x double> %wide.vec60.1, <8 x double> poison, <4 x i32> %strided.vec62.1 = shufflevector <8 x double> %wide.vec60.1, <8 x double> poison, <4 x i32> %wide.vec63.1 = load <8 x double>, ptr %308, align 8, !noalias !2685 %strided.vec64.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %strided.vec65.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %309 = fadd <4 x double> %strided.vec43.1, %strided.vec55.1 %310 = fadd <4 x double> %strided.vec44.1, %strided.vec56.1 %311 = fsub <4 x double> %strided.vec43.1, %strided.vec55.1 %312 = fsub <4 x double> %strided.vec44.1, %strided.vec56.1 %313 = fadd <4 x double> %strided.vec49.1, %strided.vec61.1 %314 = fadd <4 x double> %strided.vec50.1, %strided.vec62.1 %315 = fsub <4 x double> %strided.vec49.1, %strided.vec61.1 %316 = fsub <4 x double> %strided.vec50.1, %strided.vec62.1 %317 = fadd <4 x double> %strided.vec46.1, %strided.vec58.1 %318 = fadd <4 x double> %strided.vec47.1, %strided.vec59.1 %319 = fsub <4 x double> %strided.vec46.1, %strided.vec58.1 %320 = fsub <4 x double> %strided.vec47.1, %strided.vec59.1 %321 = fadd <4 x double> %strided.vec52.1, %strided.vec64.1 %322 = fadd <4 x double> %strided.vec53.1, %strided.vec65.1 %323 = fsub <4 x double> %strided.vec52.1, %strided.vec64.1 %324 = fsub <4 x double> %strided.vec53.1, %strided.vec65.1 %325 = fadd <4 x double> %309, %313 %326 = fadd <4 x double> %310, %314 %327 = fsub <4 x double> %311, %316 %328 = fadd <4 x double> %312, %315 %329 = fsub <4 x double> %309, %313 %330 = fsub <4 x double> %310, %314 %331 = fadd <4 x double> %311, %316 %332 = fsub <4 x double> %312, %315 %333 = fadd <4 x double> %317, %321 %334 = fadd <4 x double> %318, %322 %335 = fsub <4 x double> %319, %324 %336 = fadd <4 x double> %320, %323 %337 = fsub <4 x double> %335, %336 %338 = fadd <4 x double> %336, %335 %339 = fmul <4 x double> %337, %340 = fmul <4 x double> %338, %341 = fsub <4 x double> %317, %321 %342 = fsub <4 x double> %318, %322 %343 = fadd <4 x double> %319, %324 %344 = fsub <4 x double> %320, %323 %345 = fadd <4 x double> %344, %343 %346 = fsub <4 x double> %344, %343 %347 = fmul <4 x double> %345, %348 = fmul <4 x double> %346, %349 = fadd <4 x double> %325, %333 %350 = fadd <4 x double> %326, %334 %351 = fadd <4 x double> %327, %339 %352 = fadd <4 x double> %328, %340 %353 = fsub <4 x double> %329, %342 %354 = fadd <4 x double> %330, %341 %355 = fsub <4 x double> %331, %347 %356 = fsub <4 x double> %332, %348 %357 = fsub <4 x double> %325, %333 %358 = fsub <4 x double> %326, %334 %359 = fsub <4 x double> %327, %339 %360 = fsub <4 x double> %328, %340 %361 = fadd <4 x double> %329, %342 %362 = fsub <4 x double> %330, %341 %363 = fadd <4 x double> %331, %347 %364 = fadd <4 x double> %332, %348 %365 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %365, align 8, !noalias !2685 %366 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec66.1 = shufflevector <4 x double> %351, <4 x double> %352, <8 x i32> store <8 x double> %interleaved.vec66.1, ptr %366, align 8, !noalias !2685 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec67.1 = shufflevector <4 x double> %353, <4 x double> %354, <8 x i32> store <8 x double> %interleaved.vec67.1, ptr %367, align 8, !noalias !2685 %368 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec68.1 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec68.1, ptr %368, align 8, !noalias !2685 %369 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec69.1 = shufflevector <4 x double> %357, <4 x double> %358, <8 x i32> store <8 x double> %interleaved.vec69.1, ptr %369, align 8, !noalias !2685 %370 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec70.1 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec70.1, ptr %370, align 8, !noalias !2685 %371 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec71.1 = shufflevector <4 x double> %361, <4 x double> %362, <8 x i32> store <8 x double> %interleaved.vec71.1, ptr %371, align 8, !noalias !2685 %372 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec72.1 = shufflevector <4 x double> %363, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec72.1, ptr %372, align 8, !noalias !2685 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2685 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h1fed50b416316d35E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2689 store i64 512, ptr %n.i, align 8, !noalias !2689 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2689 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2689 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2689 store ptr null, ptr %_16.i, align 8, !noalias !2689 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2689 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2689 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2689 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2689 store ptr null, ptr %_24.i, align 8, !noalias !2689 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2689 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2689 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2689 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2689 store ptr null, ptr %_32.i, align 8, !noalias !2689 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2689 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2689 store i64 %w.1, ptr %_34.i, align 8, !noalias !2689 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf378812bbde9ba6fE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2689 store ptr null, ptr %_40.i, align 8, !noalias !2689 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf378812bbde9ba6fE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2689 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf378812bbde9ba6fE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf378812bbde9ba6fE.exit" ], [ %index.next, %vector.body ] %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %15 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %wide.vec = load <8 x double>, ptr %8, align 8, !noalias !2692 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %9, align 8, !noalias !2692 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %10, align 8, !noalias !2692 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %11, align 8, !noalias !2692 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %12, align 8, !noalias !2692 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %13, align 8, !noalias !2692 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %14, align 8, !noalias !2692 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %15, align 8, !noalias !2692 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %16 = fadd <4 x double> %strided.vec, %strided.vec12 %17 = fadd <4 x double> %strided.vec1, %strided.vec13 %18 = fsub <4 x double> %strided.vec, %strided.vec12 %19 = fsub <4 x double> %strided.vec1, %strided.vec13 %20 = fadd <4 x double> %strided.vec6, %strided.vec18 %21 = fadd <4 x double> %strided.vec7, %strided.vec19 %22 = fsub <4 x double> %strided.vec6, %strided.vec18 %23 = fsub <4 x double> %strided.vec7, %strided.vec19 %24 = fadd <4 x double> %strided.vec3, %strided.vec15 %25 = fadd <4 x double> %strided.vec4, %strided.vec16 %26 = fsub <4 x double> %strided.vec3, %strided.vec15 %27 = fsub <4 x double> %strided.vec4, %strided.vec16 %28 = fadd <4 x double> %strided.vec9, %strided.vec21 %29 = fadd <4 x double> %strided.vec10, %strided.vec22 %30 = fsub <4 x double> %strided.vec9, %strided.vec21 %31 = fsub <4 x double> %strided.vec10, %strided.vec22 %32 = fadd <4 x double> %16, %20 %33 = fadd <4 x double> %17, %21 %34 = fsub <4 x double> %18, %23 %35 = fadd <4 x double> %19, %22 %36 = fsub <4 x double> %16, %20 %37 = fsub <4 x double> %17, %21 %38 = fadd <4 x double> %18, %23 %39 = fsub <4 x double> %19, %22 %40 = fadd <4 x double> %24, %28 %41 = fadd <4 x double> %25, %29 %42 = fsub <4 x double> %26, %31 %43 = fadd <4 x double> %27, %30 %44 = fsub <4 x double> %42, %43 %45 = fadd <4 x double> %43, %42 %46 = fmul <4 x double> %44, %47 = fmul <4 x double> %45, %48 = fsub <4 x double> %24, %28 %49 = fsub <4 x double> %25, %29 %50 = fadd <4 x double> %26, %31 %51 = fsub <4 x double> %27, %30 %52 = fadd <4 x double> %51, %50 %53 = fsub <4 x double> %51, %50 %54 = fmul <4 x double> %52, %55 = fmul <4 x double> %53, %56 = fadd <4 x double> %32, %40 %57 = fadd <4 x double> %33, %41 %58 = fadd <4 x double> %34, %46 %59 = fadd <4 x double> %35, %47 %60 = fsub <4 x double> %36, %49 %61 = fadd <4 x double> %37, %48 %62 = fsub <4 x double> %38, %54 %63 = fsub <4 x double> %39, %55 %64 = fsub <4 x double> %32, %40 %65 = fsub <4 x double> %33, %41 %66 = fsub <4 x double> %34, %46 %67 = fsub <4 x double> %35, %47 %68 = fadd <4 x double> %36, %49 %69 = fsub <4 x double> %37, %48 %70 = fadd <4 x double> %38, %54 %71 = fadd <4 x double> %39, %55 %interleaved.vec = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !2692 %interleaved.vec23 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec23, ptr %9, align 8, !noalias !2692 %interleaved.vec24 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec24, ptr %10, align 8, !noalias !2692 %interleaved.vec25 = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec25, ptr %11, align 8, !noalias !2692 %interleaved.vec26 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec26, ptr %12, align 8, !noalias !2692 %interleaved.vec27 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec27, ptr %13, align 8, !noalias !2692 %interleaved.vec28 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec28, ptr %14, align 8, !noalias !2692 %interleaved.vec29 = shufflevector <4 x double> %70, <4 x double> %71, <8 x i32> store <8 x double> %interleaved.vec29, ptr %15, align 8, !noalias !2692 %index.next = add nuw i64 %index, 4 %72 = icmp eq i64 %index.next, 64 br i1 %72, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !2695 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %75 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %76 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %78 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 br label %bb32.i.i.i.i vector.body113: ; preds = %middle.block30, %vector.body113 %index114 = phi i64 [ %index.next152, %vector.body113 ], [ 0, %middle.block30 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body113 ], [ , %middle.block30 ] %79 = shl <4 x i64> %vec.ind, %80 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %79 %81 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %82 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %83 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %84 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %85 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %86 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %87 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %88 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %89 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %89, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %90 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %90, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %91 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %91, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %92 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %92, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %93 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %94 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %95 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 4 %96 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 2 %97 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 1 %98 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 3 %99 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 6 %100 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 5 %101 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 7 %102 = fneg <4 x double> %wide.masked.gather115 %103 = fneg <4 x double> %wide.masked.gather117 %104 = fneg <4 x double> %wide.masked.gather119 %105 = fneg <4 x double> %wide.masked.gather121 %106 = fneg <4 x double> %wide.masked.gather123 %107 = fneg <4 x double> %wide.masked.gather125 %108 = fneg <4 x double> %wide.masked.gather127 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %80, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %109 = getelementptr inbounds i8, <4 x ptr> %80, i64 8 %wide.masked.gather129 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %109, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %wide.masked.gather130 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %110 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 1, i32 1 %wide.masked.gather131 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %110, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %111 = fmul <4 x double> %wide.masked.gather131, %102 %112 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather130, <4 x double> %111) %113 = fmul <4 x double> %wide.masked.gather115, %wide.masked.gather130 %114 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather131, <4 x double> %113) %wide.masked.gather132 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %115 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 2, i32 1 %wide.masked.gather133 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %115, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %116 = fmul <4 x double> %wide.masked.gather133, %103 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather116, <4 x double> %wide.masked.gather132, <4 x double> %116) %118 = fmul <4 x double> %wide.masked.gather117, %wide.masked.gather132 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather116, <4 x double> %wide.masked.gather133, <4 x double> %118) %wide.masked.gather134 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %120 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 3, i32 1 %wide.masked.gather135 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %121 = fmul <4 x double> %wide.masked.gather135, %104 %122 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather118, <4 x double> %wide.masked.gather134, <4 x double> %121) %123 = fmul <4 x double> %wide.masked.gather119, %wide.masked.gather134 %124 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather118, <4 x double> %wide.masked.gather135, <4 x double> %123) %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 4, i32 1 %wide.masked.gather137 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %126 = fmul <4 x double> %wide.masked.gather137, %105 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather120, <4 x double> %wide.masked.gather136, <4 x double> %126) %128 = fmul <4 x double> %wide.masked.gather121, %wide.masked.gather136 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather120, <4 x double> %wide.masked.gather137, <4 x double> %128) %wide.masked.gather138 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 5, i32 1 %wide.masked.gather139 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %131 = fmul <4 x double> %wide.masked.gather139, %106 %132 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather122, <4 x double> %wide.masked.gather138, <4 x double> %131) %133 = fmul <4 x double> %wide.masked.gather123, %wide.masked.gather138 %134 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather122, <4 x double> %wide.masked.gather139, <4 x double> %133) %wide.masked.gather140 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %135 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 6, i32 1 %wide.masked.gather141 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %135, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %136 = fmul <4 x double> %wide.masked.gather141, %107 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather124, <4 x double> %wide.masked.gather140, <4 x double> %136) %138 = fmul <4 x double> %wide.masked.gather125, %wide.masked.gather140 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather124, <4 x double> %wide.masked.gather141, <4 x double> %138) %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %140 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 7, i32 1 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %140, i32 8, <4 x i1> , <4 x double> poison), !noalias !2689 %141 = fmul <4 x double> %wide.masked.gather143, %108 %142 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather126, <4 x double> %wide.masked.gather142, <4 x double> %141) %143 = fmul <4 x double> %wide.masked.gather127, %wide.masked.gather142 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather126, <4 x double> %wide.masked.gather143, <4 x double> %143) %145 = fadd <4 x double> %wide.masked.gather128, %127 %146 = fadd <4 x double> %wide.masked.gather129, %129 %147 = fsub <4 x double> %wide.masked.gather128, %127 %148 = fsub <4 x double> %wide.masked.gather129, %129 %149 = fadd <4 x double> %117, %137 %150 = fadd <4 x double> %119, %139 %151 = fsub <4 x double> %117, %137 %152 = fsub <4 x double> %119, %139 %153 = fadd <4 x double> %112, %132 %154 = fadd <4 x double> %114, %134 %155 = fsub <4 x double> %112, %132 %156 = fsub <4 x double> %114, %134 %157 = fadd <4 x double> %122, %142 %158 = fadd <4 x double> %124, %144 %159 = fsub <4 x double> %122, %142 %160 = fsub <4 x double> %124, %144 %161 = fadd <4 x double> %145, %149 %162 = fadd <4 x double> %146, %150 %163 = fadd <4 x double> %153, %157 %164 = fadd <4 x double> %154, %158 %165 = fadd <4 x double> %161, %163 %166 = fadd <4 x double> %162, %164 %167 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index114 %interleaved.vec144 = shufflevector <4 x double> %165, <4 x double> %166, <8 x i32> store <8 x double> %interleaved.vec144, ptr %167, align 8, !noalias !2689 %168 = fsub <4 x double> %161, %163 %169 = fsub <4 x double> %162, %164 %170 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index114 %interleaved.vec145 = shufflevector <4 x double> %168, <4 x double> %169, <8 x i32> store <8 x double> %interleaved.vec145, ptr %170, align 8, !noalias !2689 %171 = fsub <4 x double> %147, %152 %172 = fadd <4 x double> %148, %151 %173 = fsub <4 x double> %155, %160 %174 = fadd <4 x double> %156, %159 %175 = fsub <4 x double> %173, %174 %176 = fadd <4 x double> %173, %174 %177 = fmul <4 x double> %175, %178 = fmul <4 x double> %176, %179 = fadd <4 x double> %171, %177 %180 = fadd <4 x double> %172, %178 %181 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index114 %interleaved.vec146 = shufflevector <4 x double> %179, <4 x double> %180, <8 x i32> store <8 x double> %interleaved.vec146, ptr %181, align 8, !noalias !2689 %182 = fsub <4 x double> %171, %177 %183 = fsub <4 x double> %172, %178 %184 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index114 %interleaved.vec147 = shufflevector <4 x double> %182, <4 x double> %183, <8 x i32> store <8 x double> %interleaved.vec147, ptr %184, align 8, !noalias !2689 %185 = fsub <4 x double> %145, %149 %186 = fsub <4 x double> %146, %150 %187 = fsub <4 x double> %153, %157 %188 = fsub <4 x double> %154, %158 %189 = fsub <4 x double> %185, %188 %190 = fadd <4 x double> %186, %187 %191 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index114 %interleaved.vec148 = shufflevector <4 x double> %189, <4 x double> %190, <8 x i32> store <8 x double> %interleaved.vec148, ptr %191, align 8, !noalias !2689 %192 = fadd <4 x double> %185, %188 %193 = fsub <4 x double> %186, %187 %194 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index114 %interleaved.vec149 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> store <8 x double> %interleaved.vec149, ptr %194, align 8, !noalias !2689 %195 = fadd <4 x double> %147, %152 %196 = fsub <4 x double> %148, %151 %197 = fadd <4 x double> %155, %160 %198 = fsub <4 x double> %156, %159 %199 = fadd <4 x double> %197, %198 %200 = fsub <4 x double> %198, %197 %201 = fmul <4 x double> %199, %202 = fmul <4 x double> %200, %203 = fsub <4 x double> %195, %201 %204 = fsub <4 x double> %196, %202 %205 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index114 %interleaved.vec150 = shufflevector <4 x double> %203, <4 x double> %204, <8 x i32> store <8 x double> %interleaved.vec150, ptr %205, align 8, !noalias !2689 %206 = fadd <4 x double> %195, %201 %207 = fadd <4 x double> %196, %202 %208 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index114 %interleaved.vec151 = shufflevector <4 x double> %206, <4 x double> %207, <8 x i32> store <8 x double> %interleaved.vec151, ptr %208, align 8, !noalias !2689 %index.next152 = add nuw i64 %index114, 4 %vec.ind.next = add <4 x i64> %vec.ind, %209 = icmp eq i64 %index.next152, 64 br i1 %209, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc188b4f03b35339aE.exit", label %vector.body113, !llvm.loop !2696 bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block30 %iter.i.i.i.i.sroa.104.0125 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ %332, %middle.block30 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0125, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0125, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %78, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %77, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %73, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %76, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %75, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %210 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %211 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %212 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %213 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %214 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %215 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %216 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %217 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %217, align 8, !noalias !2689, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %218 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %218, align 8, !noalias !2689, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %219 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %219, align 8, !noalias !2689, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %220 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %220, align 8, !noalias !2689, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %221 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %221, align 8, !noalias !2689, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %222 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %222, align 8, !noalias !2689, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %223 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %223, align 8, !noalias !2689, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %224 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %224, align 8, !noalias !2689, !noundef !3 %225 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %225, align 8, !noalias !2689, !noundef !3 %226 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %226, align 8, !noalias !2689, !noundef !3 %227 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %227, align 8, !noalias !2689, !noundef !3 %228 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %228, align 8, !noalias !2689, !noundef !3 %229 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %229, align 8, !noalias !2689, !noundef !3 %230 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %230, align 8, !noalias !2689, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert49 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat50 = shufflevector <4 x double> %broadcast.splatinsert49, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert51 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat52 = shufflevector <4 x double> %broadcast.splatinsert51, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert53 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat54 = shufflevector <4 x double> %broadcast.splatinsert53, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert58 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat59 = shufflevector <4 x double> %broadcast.splatinsert58, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert67 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat68 = shufflevector <4 x double> %broadcast.splatinsert67, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert69 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert76 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat77 = shufflevector <4 x double> %broadcast.splatinsert76, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body34 vector.body34: ; preds = %vector.body34, %bb32.i.i.i.i %index35 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next108, %vector.body34 ] %231 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index35 %232 = getelementptr inbounds %"num_complex::Complex", ptr %212, i64 %index35 %233 = getelementptr inbounds %"num_complex::Complex", ptr %211, i64 %index35 %234 = getelementptr inbounds %"num_complex::Complex", ptr %213, i64 %index35 %235 = getelementptr inbounds %"num_complex::Complex", ptr %210, i64 %index35 %236 = getelementptr inbounds %"num_complex::Complex", ptr %215, i64 %index35 %237 = getelementptr inbounds %"num_complex::Complex", ptr %214, i64 %index35 %238 = getelementptr inbounds %"num_complex::Complex", ptr %216, i64 %index35 %wide.vec36 = load <8 x double>, ptr %231, align 8, !noalias !2689 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %wide.vec39 = load <8 x double>, ptr %232, align 8, !noalias !2689 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %239 = fmul <4 x double> %strided.vec41, %broadcast.splat %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat43, <4 x double> %strided.vec40, <4 x double> %239) %241 = fmul <4 x double> %broadcast.splat45, %strided.vec40 %242 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat43, <4 x double> %strided.vec41, <4 x double> %241) %wide.vec46 = load <8 x double>, ptr %233, align 8, !noalias !2689 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %243 = fmul <4 x double> %strided.vec48, %broadcast.splat50 %244 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat52, <4 x double> %strided.vec47, <4 x double> %243) %245 = fmul <4 x double> %broadcast.splat54, %strided.vec47 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat52, <4 x double> %strided.vec48, <4 x double> %245) %wide.vec55 = load <8 x double>, ptr %234, align 8, !noalias !2689 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %247 = fmul <4 x double> %strided.vec57, %broadcast.splat59 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56, <4 x double> %247) %249 = fmul <4 x double> %broadcast.splat63, %strided.vec56 %250 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57, <4 x double> %249) %wide.vec64 = load <8 x double>, ptr %235, align 8, !noalias !2689 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %251 = fmul <4 x double> %strided.vec66, %broadcast.splat68 %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat70, <4 x double> %strided.vec65, <4 x double> %251) %253 = fmul <4 x double> %broadcast.splat72, %strided.vec65 %254 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat70, <4 x double> %strided.vec66, <4 x double> %253) %wide.vec73 = load <8 x double>, ptr %236, align 8, !noalias !2689 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %255 = fmul <4 x double> %strided.vec75, %broadcast.splat77 %256 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat79, <4 x double> %strided.vec74, <4 x double> %255) %257 = fmul <4 x double> %broadcast.splat81, %strided.vec74 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat79, <4 x double> %strided.vec75, <4 x double> %257) %wide.vec82 = load <8 x double>, ptr %237, align 8, !noalias !2689 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %259 = fmul <4 x double> %strided.vec84, %broadcast.splat86 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %strided.vec83, <4 x double> %259) %261 = fmul <4 x double> %broadcast.splat90, %strided.vec83 %262 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %strided.vec84, <4 x double> %261) %wide.vec91 = load <8 x double>, ptr %238, align 8, !noalias !2689 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %263 = fmul <4 x double> %strided.vec93, %broadcast.splat95 %264 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %strided.vec92, <4 x double> %263) %265 = fmul <4 x double> %broadcast.splat99, %strided.vec92 %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %strided.vec93, <4 x double> %265) %267 = fadd <4 x double> %strided.vec37, %252 %268 = fadd <4 x double> %strided.vec38, %254 %269 = fsub <4 x double> %strided.vec37, %252 %270 = fsub <4 x double> %strided.vec38, %254 %271 = fadd <4 x double> %244, %260 %272 = fadd <4 x double> %246, %262 %273 = fsub <4 x double> %244, %260 %274 = fsub <4 x double> %246, %262 %275 = fadd <4 x double> %240, %256 %276 = fadd <4 x double> %242, %258 %277 = fsub <4 x double> %240, %256 %278 = fsub <4 x double> %242, %258 %279 = fadd <4 x double> %248, %264 %280 = fadd <4 x double> %250, %266 %281 = fsub <4 x double> %248, %264 %282 = fsub <4 x double> %250, %266 %283 = fadd <4 x double> %267, %271 %284 = fadd <4 x double> %268, %272 %285 = fadd <4 x double> %275, %279 %286 = fadd <4 x double> %276, %280 %287 = fadd <4 x double> %283, %285 %288 = fadd <4 x double> %284, %286 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec100 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec100, ptr %289, align 8, !noalias !2689 %290 = fsub <4 x double> %283, %285 %291 = fsub <4 x double> %284, %286 %292 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec101 = shufflevector <4 x double> %290, <4 x double> %291, <8 x i32> store <8 x double> %interleaved.vec101, ptr %292, align 8, !noalias !2689 %293 = fsub <4 x double> %269, %274 %294 = fadd <4 x double> %270, %273 %295 = fsub <4 x double> %277, %282 %296 = fadd <4 x double> %278, %281 %297 = fsub <4 x double> %295, %296 %298 = fadd <4 x double> %295, %296 %299 = fmul <4 x double> %297, %300 = fmul <4 x double> %298, %301 = fadd <4 x double> %293, %299 %302 = fadd <4 x double> %294, %300 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec102 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec102, ptr %303, align 8, !noalias !2689 %304 = fsub <4 x double> %293, %299 %305 = fsub <4 x double> %294, %300 %306 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec103 = shufflevector <4 x double> %304, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec103, ptr %306, align 8, !noalias !2689 %307 = fsub <4 x double> %267, %271 %308 = fsub <4 x double> %268, %272 %309 = fsub <4 x double> %275, %279 %310 = fsub <4 x double> %276, %280 %311 = fsub <4 x double> %307, %310 %312 = fadd <4 x double> %308, %309 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec104 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec104, ptr %313, align 8, !noalias !2689 %314 = fadd <4 x double> %307, %310 %315 = fsub <4 x double> %308, %309 %316 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec105 = shufflevector <4 x double> %314, <4 x double> %315, <8 x i32> store <8 x double> %interleaved.vec105, ptr %316, align 8, !noalias !2689 %317 = fadd <4 x double> %269, %274 %318 = fsub <4 x double> %270, %273 %319 = fadd <4 x double> %277, %282 %320 = fsub <4 x double> %278, %281 %321 = fadd <4 x double> %319, %320 %322 = fsub <4 x double> %320, %319 %323 = fmul <4 x double> %321, %324 = fmul <4 x double> %322, %325 = fsub <4 x double> %317, %323 %326 = fsub <4 x double> %318, %324 %327 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec106 = shufflevector <4 x double> %325, <4 x double> %326, <8 x i32> store <8 x double> %interleaved.vec106, ptr %327, align 8, !noalias !2689 %328 = fadd <4 x double> %317, %323 %329 = fadd <4 x double> %318, %324 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec107 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec107, ptr %330, align 8, !noalias !2689 %index.next108 = add nuw i64 %index35, 4 %331 = icmp eq i64 %index.next108, 8 br i1 %331, label %middle.block30, label %vector.body34, !llvm.loop !2697 middle.block30: ; preds = %vector.body34 %332 = add nuw nsw i64 %iter.i.i.i.i.sroa.104.0125, 1 %exitcond130.not = icmp eq i64 %332, 8 br i1 %exitcond130.not, label %vector.body113, label %bb32.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc188b4f03b35339aE.exit": ; preds = %vector.body113 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2689 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h202f1e3c1f6328c4E"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2698 store i64 16, ptr %n.i.i, align 8, !noalias !2698 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2698 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2698 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2698 store ptr null, ptr %_16.i.i, align 8, !noalias !2698 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2698 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2698 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2698 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2698 store ptr null, ptr %_24.i.i, align 8, !noalias !2698 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2698 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2698 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2698 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2698 store ptr null, ptr %_32.i.i, align 8, !noalias !2698 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2698 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2698 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2698 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hebf84e574d27c36aE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2698 store ptr null, ptr %_40.i.i, align 8, !noalias !2698 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hebf84e574d27c36aE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2698 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !2703 store i64 1, ptr %_8.i.i.i, align 8, !noalias !2703 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !2703 store ptr null, ptr %_13.i.i.i, align 8, !noalias !2703 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc389ea8ffbac55d4e22ae197e085e0e) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h20382c78781c0db2E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2d2116d348287844E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h22c1ccbcadd5eb9aE"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2710 store i64 8, ptr %n.i.i, align 8, !noalias !2710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2710 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2710 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2710 store ptr null, ptr %_16.i.i, align 8, !noalias !2710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2710 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2710 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2710 store ptr null, ptr %_24.i.i, align 8, !noalias !2710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2710 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2710 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2710 store ptr null, ptr %_32.i.i, align 8, !noalias !2710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2710 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2710 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf5c03591484eaafbE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2710 store ptr null, ptr %_40.i.i, align 8, !noalias !2710 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf5c03591484eaafbE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2710 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !2715 store i64 1, ptr %_8.i.i.i, align 8, !noalias !2715 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !2715 store ptr null, ptr %_13.i.i.i, align 8, !noalias !2715 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9941fe261bb839bc485daec7a55c3e0a) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2329c63d17833b6aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2722 store i64 128, ptr %n.i.i, align 8, !noalias !2722 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2722 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2722 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2722 store ptr null, ptr %_16.i.i, align 8, !noalias !2722 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2722 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2722 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2722 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2722 store ptr null, ptr %_24.i.i, align 8, !noalias !2722 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2722 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2722 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2722 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2722 store ptr null, ptr %_32.i.i, align 8, !noalias !2722 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2722 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2722 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2722 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9b32f835e85879bE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2722 store ptr null, ptr %_40.i.i, align 8, !noalias !2722 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9b32f835e85879bE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2722 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 br label %bb18.i.i.i.i.i.i bb18.i.i.i.i.i.i: ; preds = %bb18.i.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9b32f835e85879bE.exit.i" %iter6.i.i.i.i.i.sroa.22.0112.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9b32f835e85879bE.exit.i" ], [ %7, %bb18.i.i.i.i.i.i ] %4 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.0112.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.i.i.i.i.i.sroa.22.0112.i %_51.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2727 %_52.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2727 %5 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %5, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2727 store <4 x double> %6, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2727 %7 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.0112.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %_51.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !2727 %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2727 %8 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 %9 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2727 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !2727 %exitcond.not.i.1 = icmp eq i64 %7, 32 br i1 %exitcond.not.i.1, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i", label %bb18.i.i.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i": ; preds = %bb18.i.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2737) tail call void @llvm.experimental.noalias.scope.decl(metadata !2740) tail call void @llvm.experimental.noalias.scope.decl(metadata !2742) %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %12, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %13, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %14, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %15 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %15, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %16 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %16, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %17 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %17, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %18 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %19 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %20 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %24 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %25 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> zeroinitializer %26 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %27 = shufflevector <4 x double> %19, <4 x double> poison, <4 x i32> zeroinitializer %28 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %29 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" ], [ %30, %bb38.us.i.i ] %30 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2740, !noalias !2745 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2740, !noalias !2745 %31 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %32 = fmul <4 x double> %25, %31 %33 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %24, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %32) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2740, !noalias !2745 %34 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %35 = fmul <4 x double> %27, %34 %36 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %35) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !2740, !noalias !2745 %37 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %29, %37 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %28, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %38) #23 %40 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %36 %41 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %36 %42 = fadd <4 x double> %33, %39 %43 = fsub <4 x double> %33, %39 %44 = bitcast <4 x double> %43 to <4 x i64> %45 = xor <4 x i64> %44, %46 = bitcast <4 x i64> %45 to <4 x double> %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fadd <4 x double> %40, %42 store <4 x double> %48, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2737, !noalias !2746 %49 = fsub <4 x double> %41, %47 store <4 x double> %49, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2737, !noalias !2746 %50 = fsub <4 x double> %40, %42 store <4 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2737, !noalias !2746 %51 = fadd <4 x double> %41, %47 store <4 x double> %51, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2737, !noalias !2746 %exitcond.not.i.i = icmp eq i64 %30, 8 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i.1.i = load double, ptr %52, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %53, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i.1.i = load double, ptr %54, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %55, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i.1.i = load double, ptr %56, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %57, align 8, !alias.scope !2742, !noalias !2744, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %58 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %59 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %60 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %61 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %63 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %64 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %65 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> zeroinitializer %66 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %67 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> zeroinitializer %68 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %69 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %70, %bb38.us.i.1.i ] %70 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %61, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %63, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2740, !noalias !2745 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2740, !noalias !2745 %71 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %65, %71 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %64, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %72) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2740, !noalias !2745 %74 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %67, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %75) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !2740, !noalias !2745 %77 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %69, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %68, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %78) #23 %80 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %76 %81 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %76 %82 = fadd <4 x double> %73, %79 %83 = fsub <4 x double> %73, %79 %84 = bitcast <4 x double> %83 to <4 x i64> %85 = xor <4 x i64> %84, %86 = bitcast <4 x i64> %85 to <4 x double> %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fadd <4 x double> %80, %82 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2737, !noalias !2746 %89 = fsub <4 x double> %81, %87 store <4 x double> %89, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2737, !noalias !2746 %90 = fsub <4 x double> %80, %82 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2737, !noalias !2746 %91 = fadd <4 x double> %81, %87 store <4 x double> %91, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2737, !noalias !2746 %exitcond.not.i.1.i = icmp eq i64 %70, 8 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2747) tail call void @llvm.experimental.noalias.scope.decl(metadata !2750) tail call void @llvm.experimental.noalias.scope.decl(metadata !2752) br label %bb22.us.i51.i bb22.us.i51.i: ; preds = %bb22.us.i51.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter.sroa.60.0707.us.i52.i = phi i64 [ %152, %bb22.us.i51.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i = shl nuw i64 %iter.sroa.60.0707.us.i52.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %start1.i.i.i.i.i.i.us.i55.i = shl i64 %iter.sroa.60.0707.us.i52.i, 3 %data.i.i.i.i.i.i.us.i56.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i55.i %data.i.i.i.i.i.i.i.i.us.i57.i = getelementptr inbounds %"fft_simd::c64x2", ptr %61, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %data.i.i.i.i.i.i.i.i.i.i.us.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i53.i %start1.i.i.i.i.us.i60.i = shl i64 %iter.sroa.60.0707.us.i52.i, 2 %92 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 1 %w1.0.us.i61.i = load double, ptr %92, align 8, !alias.scope !2752, !noalias !2754, !noundef !3 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 1, i32 1 %w1.1.us.i62.i = load double, ptr %93, align 8, !alias.scope !2752, !noalias !2754, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 2 %w2.0.us.i63.i = load double, ptr %94, align 8, !alias.scope !2752, !noalias !2754, !noundef !3 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 2, i32 1 %w2.1.us.i64.i = load double, ptr %95, align 8, !alias.scope !2752, !noalias !2754, !noundef !3 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 3 %w3.0.us.i65.i = load double, ptr %96, align 8, !alias.scope !2752, !noalias !2754, !noundef !3 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i60.i, i64 3, i32 1 %w3.1.us.i66.i = load double, ptr %97, align 8, !alias.scope !2752, !noalias !2754, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i67.i = insertelement <2 x double> poison, double %w1.0.us.i61.i, i64 0 %98 = insertelement <4 x double> poison, double %w1.1.us.i62.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i68.i = insertelement <2 x double> poison, double %w2.0.us.i63.i, i64 0 %99 = insertelement <4 x double> poison, double %w2.1.us.i64.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i69.i = insertelement <2 x double> poison, double %w3.0.us.i65.i, i64 0 %100 = insertelement <4 x double> poison, double %w3.1.us.i66.i, i64 0 %101 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 4 %102 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 2 %103 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 6 %104 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i67.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i68.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %99, <4 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i69.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %100, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i80.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i56.i, align 8, !alias.scope !2750, !noalias !2755 %_84.sroa.0.0.copyload.us.i81.i = load <4 x double>, ptr %102, align 8, !alias.scope !2750, !noalias !2755 %110 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i81.i, <4 x double> poison, <4 x i32> %111 = fmul <4 x double> %105, %110 %112 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_84.sroa.0.0.copyload.us.i81.i, <4 x double> %111) #23 %_86.sroa.0.0.copyload.us.i82.i = load <4 x double>, ptr %101, align 8, !alias.scope !2750, !noalias !2755 %113 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i82.i, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %107, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_86.sroa.0.0.copyload.us.i82.i, <4 x double> %114) #23 %_88.sroa.0.0.copyload.us.i83.i = load <4 x double>, ptr %103, align 8, !alias.scope !2750, !noalias !2755 %116 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i83.i, <4 x double> poison, <4 x i32> %117 = fmul <4 x double> %109, %116 %118 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_88.sroa.0.0.copyload.us.i83.i, <4 x double> %117) #23 %119 = fadd <4 x double> %a.sroa.0.0.copyload.us.i80.i, %115 %120 = fsub <4 x double> %a.sroa.0.0.copyload.us.i80.i, %115 %121 = fadd <4 x double> %112, %118 %122 = fsub <4 x double> %112, %118 %123 = bitcast <4 x double> %122 to <4 x i64> %124 = xor <4 x i64> %123, %125 = bitcast <4 x i64> %124 to <4 x double> %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = fadd <4 x double> %119, %121 store <4 x double> %127, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i54.i, align 8, !alias.scope !2747, !noalias !2756 %128 = fsub <4 x double> %120, %126 store <4 x double> %128, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i59.i, align 8, !alias.scope !2747, !noalias !2756 %129 = fsub <4 x double> %119, %121 store <4 x double> %129, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i58.i, align 8, !alias.scope !2747, !noalias !2756 %130 = fadd <4 x double> %120, %126 store <4 x double> %130, ptr %data.i.i.i.i.i.i.i.i.us.i57.i, align 8, !alias.scope !2747, !noalias !2756 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i72.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i54.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i73.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i59.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i74.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i58.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i75.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i57.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i76.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i77.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 3 %_3.i.i.i.i.i.i.us.i78.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 5 %_3.i.i.i.i.us.i79.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i56.i, i64 7 %a.sroa.0.0.copyload.us.i80.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i76.1.i, align 8, !alias.scope !2750, !noalias !2755 %_84.sroa.0.0.copyload.us.i81.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.1.i, align 8, !alias.scope !2750, !noalias !2755 %131 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i81.1.i, <4 x double> poison, <4 x i32> %132 = fmul <4 x double> %105, %131 %133 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_84.sroa.0.0.copyload.us.i81.1.i, <4 x double> %132) #23 %_86.sroa.0.0.copyload.us.i82.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i78.1.i, align 8, !alias.scope !2750, !noalias !2755 %134 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i82.1.i, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %107, %134 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_86.sroa.0.0.copyload.us.i82.1.i, <4 x double> %135) #23 %_88.sroa.0.0.copyload.us.i83.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i79.1.i, align 8, !alias.scope !2750, !noalias !2755 %137 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i83.1.i, <4 x double> poison, <4 x i32> %138 = fmul <4 x double> %109, %137 %139 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_88.sroa.0.0.copyload.us.i83.1.i, <4 x double> %138) #23 %140 = fadd <4 x double> %a.sroa.0.0.copyload.us.i80.1.i, %136 %141 = fsub <4 x double> %a.sroa.0.0.copyload.us.i80.1.i, %136 %142 = fadd <4 x double> %133, %139 %143 = fsub <4 x double> %133, %139 %144 = bitcast <4 x double> %143 to <4 x i64> %145 = xor <4 x i64> %144, %146 = bitcast <4 x i64> %145 to <4 x double> %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = fadd <4 x double> %140, %142 store <4 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i72.1.i, align 8, !alias.scope !2747, !noalias !2756 %149 = fsub <4 x double> %141, %147 store <4 x double> %149, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i73.1.i, align 8, !alias.scope !2747, !noalias !2756 %150 = fsub <4 x double> %140, %142 store <4 x double> %150, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i74.1.i, align 8, !alias.scope !2747, !noalias !2756 %151 = fadd <4 x double> %141, %147 store <4 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i75.1.i, align 8, !alias.scope !2747, !noalias !2756 %152 = add nuw nsw i64 %iter.sroa.60.0707.us.i52.i, 1 %exitcond113.not.i = icmp eq i64 %152, 8 br i1 %exitcond113.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i, label %bb22.us.i51.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i: ; preds = %bb22.us.i51.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2757) tail call void @llvm.experimental.noalias.scope.decl(metadata !2760) tail call void @llvm.experimental.noalias.scope.decl(metadata !2762) %153 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %154 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %155 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 br label %bb15.i90.i bb15.i90.i: ; preds = %bb15.i90.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i %iter.sroa.50.0547.i.i = phi i64 [ %156, %bb15.i90.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit87.i ] %156 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %154, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %153, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %155, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2762, !noalias !2764 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2762, !noalias !2764 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !2762, !noalias !2764 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2760, !noalias !2765 %157 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %157, align 8, !alias.scope !2760, !noalias !2765 %158 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %158, align 8, !alias.scope !2760, !noalias !2765 %159 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %159, align 8, !alias.scope !2760, !noalias !2765 %160 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %161 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %164, %162 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %170, %168 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %176, %174 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = fadd <4 x double> %160, %172 %180 = fsub <4 x double> %160, %172 %181 = fadd <4 x double> %166, %178 %182 = fsub <4 x double> %166, %178 %183 = bitcast <4 x double> %182 to <4 x i64> %184 = xor <4 x i64> %183, %185 = bitcast <4 x i64> %184 to <4 x double> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fadd <4 x double> %179, %181 store <4 x double> %187, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2757, !noalias !2766 %188 = fsub <4 x double> %180, %186 store <4 x double> %188, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2757, !noalias !2766 %189 = fsub <4 x double> %179, %181 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2757, !noalias !2766 %190 = fadd <4 x double> %180, %186 store <4 x double> %190, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2757, !noalias !2766 %exitcond.not.i91.i = icmp eq i64 %156, 16 br i1 %exitcond.not.i91.i, label %_ZN4pulp3x862V39vectorize6__impl17h2e507a1b933d0d9aE.exit, label %bb15.i90.i _ZN4pulp3x862V39vectorize6__impl17h2e507a1b933d0d9aE.exit: ; preds = %bb15.i90.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2722 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h239d63e262f12e3eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9139cf4c27e621b2E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h23e28afe4f512b2aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2767 store i64 8, ptr %n.i, align 8, !noalias !2767 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2767 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2767 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2767 store ptr null, ptr %_16.i, align 8, !noalias !2767 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2767 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2767 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2767 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2767 store ptr null, ptr %_24.i, align 8, !noalias !2767 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2767 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2767 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2767 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2767 store ptr null, ptr %_32.i, align 8, !noalias !2767 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2767 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2767 store i64 %w.1, ptr %_34.i, align 8, !noalias !2767 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h289aa277febf4d58E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2767 store ptr null, ptr %_40.i, align 8, !noalias !2767 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h289aa277febf4d58E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2767 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3, i32 1 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7, i32 1 %9 = load <2 x double>, ptr %buf.0, align 8, !noalias !2767 %10 = load <2 x double>, ptr %2, align 8, !noalias !2767 %11 = load <2 x double>, ptr %1, align 8, !noalias !2767 %12 = load <2 x double>, ptr %3, align 8, !noalias !2767 %13 = load <2 x double>, ptr %0, align 8, !noalias !2767 %14 = load <2 x double>, ptr %5, align 8, !noalias !2767 %15 = load <2 x double>, ptr %4, align 8, !noalias !2767 %16 = load <2 x double>, ptr %6, align 8, !noalias !2767 %17 = fadd <2 x double> %9, %13 %18 = fadd <2 x double> %11, %15 %19 = fadd <2 x double> %10, %14 %20 = fsub <2 x double> %10, %14 %_0.i.i72 = extractelement <2 x double> %20, i64 0 %21 = fsub <2 x double> %10, %14 %_0.i3.i73 = extractelement <2 x double> %21, i64 1 %22 = fadd <2 x double> %12, %16 %23 = fsub <2 x double> %12, %16 %_0.i.i76 = extractelement <2 x double> %23, i64 0 %24 = fsub <2 x double> %12, %16 %_0.i3.i77 = extractelement <2 x double> %24, i64 1 %25 = fadd <2 x double> %17, %18 %26 = fadd <2 x double> %19, %22 %_0.i.i88 = fsub double %_0.i.i72, %_0.i3.i77 %_0.i3.i89 = fadd double %_0.i3.i73, %_0.i.i76 %_0.i.i94 = fadd double %_0.i.i72, %_0.i3.i77 %_0.i3.i95 = fsub double %_0.i3.i73, %_0.i.i76 %_0.i.i96 = fadd double %_0.i3.i95, %_0.i.i94 %_0.i3.i97 = fsub double %_0.i3.i95, %_0.i.i94 %_4.i97.i.i.i = fmul double %_0.i.i96, 0x3FE6A09E667F3BCD %_7.i98.i.i.i = fmul double %_0.i3.i97, 0x3FE6A09E667F3BCD %27 = fadd <2 x double> %25, %26 store <2 x double> %27, ptr %buf.0, align 8, !noalias !2767 %28 = fsub <2 x double> %9, %13 %29 = fsub <2 x double> %11, %15 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> %31 = fsub <2 x double> %28, %30 %32 = fadd <2 x double> %28, %30 %33 = shufflevector <2 x double> %31, <2 x double> %32, <2 x i32> %34 = fadd <2 x double> %28, %30 %_0.i.i84 = extractelement <2 x double> %34, i64 0 %35 = fsub <2 x double> %28, %30 %_0.i3.i85 = extractelement <2 x double> %35, i64 1 %36 = insertelement <2 x double> poison, double %_0.i.i88, i64 0 %37 = insertelement <2 x double> poison, double %_0.i.i88, i64 0 %38 = insertelement <2 x double> poison, double %_0.i3.i89, i64 0 %39 = insertelement <2 x double> poison, double %_0.i3.i89, i64 0 %40 = fsub <2 x double> %37, %39 %41 = fadd <2 x double> %36, %38 %42 = shufflevector <2 x double> %40, <2 x double> %41, <2 x i32> %43 = fmul <2 x double> %42, %44 = fadd <2 x double> %33, %43 %_0.i.i104 = fsub double %_0.i.i84, %_4.i97.i.i.i %_0.i3.i105 = fsub double %_0.i3.i85, %_7.i98.i.i.i %_0.i.i112 = fadd double %_0.i.i84, %_4.i97.i.i.i %_0.i3.i113 = fadd double %_0.i3.i85, %_7.i98.i.i.i store <2 x double> %44, ptr %2, align 8, !noalias !2767 %45 = fsub <2 x double> %17, %18 %46 = fsub <2 x double> %19, %22 %47 = shufflevector <2 x double> %46, <2 x double> poison, <2 x i32> %48 = fsub <2 x double> %45, %47 %49 = fadd <2 x double> %45, %47 %50 = shufflevector <2 x double> %48, <2 x double> %49, <2 x i32> store <2 x double> %50, ptr %1, align 8, !noalias !2767 store double %_0.i.i104, ptr %3, align 8, !noalias !2767 store double %_0.i3.i105, ptr %7, align 8, !noalias !2767 %51 = fsub <2 x double> %25, %26 store <2 x double> %51, ptr %0, align 8, !noalias !2767 %52 = fsub <2 x double> %33, %43 store <2 x double> %52, ptr %5, align 8, !noalias !2767 %53 = shufflevector <2 x double> %49, <2 x double> %48, <2 x i32> store <2 x double> %53, ptr %4, align 8, !noalias !2767 store double %_0.i.i112, ptr %6, align 8, !noalias !2767 store double %_0.i3.i113, ptr %8, align 8, !noalias !2767 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2767 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h24b47532e6721f7bE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h73fbaec53185b3e8E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h24bb69a00f912260E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hff8c374f1522f3a7E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h25e3f0a2ec521fd8E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17he635ea48492baaabE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h26b3f622c9ad302fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb977ca36041f1215E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h281a6e3785e661b7E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2770 store i64 32, ptr %n.i.i, align 8, !noalias !2770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2770 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2770 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2770 store ptr null, ptr %_16.i.i, align 8, !noalias !2770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2770 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2770 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2770 store ptr null, ptr %_24.i.i, align 8, !noalias !2770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2770 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2770 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2770 store ptr null, ptr %_32.i.i, align 8, !noalias !2770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2770 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2770 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hb961567869dfd5b8E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2770 store ptr null, ptr %_40.i.i, align 8, !noalias !2770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17hb961567869dfd5b8E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2770 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %_33.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !2770 %3 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %4 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_33.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.1.i, align 8, !noalias !2770 %5 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.i.sroa.0.0.copyload.1.i %6 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.i.sroa.0.0.copyload.1.i %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_33.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.2.i, align 8, !noalias !2770 %7 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.2.i, %_34.i.i.i.i.sroa.0.0.copyload.2.i %8 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.2.i, %_34.i.i.i.i.sroa.0.0.copyload.2.i %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_33.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.3.i, align 8, !noalias !2770 %9 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.3.i, %_34.i.i.i.i.sroa.0.0.copyload.3.i %10 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.3.i, %_34.i.i.i.i.sroa.0.0.copyload.3.i %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_33.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.4.i, align 8, !noalias !2770 %11 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.4.i, %_34.i.i.i.i.sroa.0.0.copyload.4.i %12 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.4.i, %_34.i.i.i.i.sroa.0.0.copyload.4.i %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_33.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.5.i, align 8, !noalias !2770 %13 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.5.i, %_34.i.i.i.i.sroa.0.0.copyload.5.i %14 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.5.i, %_34.i.i.i.i.sroa.0.0.copyload.5.i %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_33.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.6.i, align 8, !noalias !2770 %15 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.6.i, %_34.i.i.i.i.sroa.0.0.copyload.6.i %16 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.6.i, %_34.i.i.i.i.sroa.0.0.copyload.6.i %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_33.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !2770 %_34.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.7.i, align 8, !noalias !2770 %17 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.7.i, %_34.i.i.i.i.sroa.0.0.copyload.7.i %18 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.7.i, %_34.i.i.i.i.sroa.0.0.copyload.7.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2775) tail call void @llvm.experimental.noalias.scope.decl(metadata !2778) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %22, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %23, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %24, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %25, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %26, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %27, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %28 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %30 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %31 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> zeroinitializer %33 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %36 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer %37 = shufflevector <4 x double> %7, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %37, %32 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %7, <4 x double> %38) #23 %40 = shufflevector <4 x double> %11, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %40, %34 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %11, <4 x double> %41) #23 %43 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %43, %36 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %15, <4 x double> %44) #23 %46 = fadd <4 x double> %3, %42 %47 = fsub <4 x double> %3, %42 %48 = fadd <4 x double> %39, %45 %49 = fsub <4 x double> %39, %45 %50 = bitcast <4 x double> %49 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %46, %48 store <4 x double> %54, ptr %scratch.0, align 8, !alias.scope !2775, !noalias !2782 %55 = fsub <4 x double> %47, %53 store <4 x double> %55, ptr %20, align 8, !alias.scope !2775, !noalias !2782 %56 = fsub <4 x double> %46, %48 store <4 x double> %56, ptr %19, align 8, !alias.scope !2775, !noalias !2782 %57 = fadd <4 x double> %47, %53 store <4 x double> %57, ptr %21, align 8, !alias.scope !2775, !noalias !2782 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %58 = shufflevector <4 x double> %9, <4 x double> poison, <4 x i32> %59 = fmul <4 x double> %58, %32 %60 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %9, <4 x double> %59) #23 %61 = shufflevector <4 x double> %13, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %34 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %13, <4 x double> %62) #23 %64 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %64, %36 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %17, <4 x double> %65) #23 %67 = fadd <4 x double> %5, %63 %68 = fsub <4 x double> %5, %63 %69 = fadd <4 x double> %60, %66 %70 = fsub <4 x double> %60, %66 %71 = bitcast <4 x double> %70 to <4 x i64> %72 = xor <4 x i64> %71, %73 = bitcast <4 x i64> %72 to <4 x double> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fadd <4 x double> %67, %69 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %76 = fsub <4 x double> %68, %74 store <4 x double> %76, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %77 = fsub <4 x double> %67, %69 store <4 x double> %77, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %78 = fadd <4 x double> %68, %74 store <4 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %79 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.1.i = load double, ptr %79, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %80 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %80, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %81 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2 %w2.0.us.i.1.i = load double, ptr %81, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %82 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %82, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3 %w3.0.us.i.1.i = load double, ptr %83, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %84, align 8, !alias.scope !2778, !noalias !2780, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %85 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %86 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %87 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %88 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %89 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> zeroinitializer %90 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %91 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %92 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %93 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> zeroinitializer %94 = shufflevector <4 x double> %8, <4 x double> poison, <4 x i32> %95 = fmul <4 x double> %94, %89 %96 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %88, <4 x double> %8, <4 x double> %95) #23 %97 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %91 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %12, <4 x double> %98) #23 %100 = shufflevector <4 x double> %16, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %93 %102 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %16, <4 x double> %101) #23 %103 = fadd <4 x double> %4, %99 %104 = fsub <4 x double> %4, %99 %105 = fadd <4 x double> %96, %102 %106 = fsub <4 x double> %96, %102 %107 = bitcast <4 x double> %106 to <4 x i64> %108 = xor <4 x i64> %107, %109 = bitcast <4 x i64> %108 to <4 x double> %110 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> %111 = fadd <4 x double> %103, %105 store <4 x double> %111, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %112 = fsub <4 x double> %104, %110 store <4 x double> %112, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %113 = fsub <4 x double> %103, %105 store <4 x double> %113, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %114 = fadd <4 x double> %104, %110 store <4 x double> %114, ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2775, !noalias !2782 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %115 = shufflevector <4 x double> %10, <4 x double> poison, <4 x i32> %116 = fmul <4 x double> %115, %89 %117 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %88, <4 x double> %10, <4 x double> %116) #23 %118 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %118, %91 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %14, <4 x double> %119) #23 %121 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %121, %93 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %18, <4 x double> %122) #23 %124 = fadd <4 x double> %6, %120 %125 = fsub <4 x double> %6, %120 %126 = fadd <4 x double> %117, %123 %127 = fsub <4 x double> %117, %123 %128 = bitcast <4 x double> %127 to <4 x i64> %129 = xor <4 x i64> %128, %130 = bitcast <4 x i64> %129 to <4 x double> %131 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> %132 = fadd <4 x double> %124, %126 store <4 x double> %132, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2775, !noalias !2782 %133 = fsub <4 x double> %125, %131 store <4 x double> %133, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2775, !noalias !2782 %134 = fsub <4 x double> %124, %126 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2775, !noalias !2782 %135 = fadd <4 x double> %125, %131 store <4 x double> %135, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2775, !noalias !2782 tail call void @llvm.experimental.noalias.scope.decl(metadata !2783) tail call void @llvm.experimental.noalias.scope.decl(metadata !2786) %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %137 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %137, align 8, !alias.scope !2786, !noalias !2788 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %136, align 8, !alias.scope !2786, !noalias !2788 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %138, align 8, !alias.scope !2786, !noalias !2788 %139 = shufflevector <4 x double> %54, <4 x double> %111, <4 x i32> %140 = shufflevector <4 x double> %54, <4 x double> %111, <4 x i32> %141 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> %142 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %143 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %141, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %142, <4 x double> %140, <4 x double> %144) #23 %146 = shufflevector <4 x double> %75, <4 x double> %132, <4 x i32> %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %149 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %147, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %148, <4 x double> %146, <4 x double> %150) #23 %152 = shufflevector <4 x double> %75, <4 x double> %132, <4 x i32> %153 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> %154 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %155 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %153, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %154, <4 x double> %152, <4 x double> %156) #23 %158 = fadd <4 x double> %139, %151 %159 = fsub <4 x double> %139, %151 %160 = fadd <4 x double> %145, %157 %161 = fsub <4 x double> %145, %157 %162 = bitcast <4 x double> %161 to <4 x i64> %163 = xor <4 x i64> %162, %164 = bitcast <4 x i64> %163 to <4 x double> %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = fadd <4 x double> %158, %160 store <4 x double> %166, ptr %buf.0, align 8, !alias.scope !2783, !noalias !2790 %167 = fsub <4 x double> %159, %165 store <4 x double> %167, ptr %_3.i.i.i.i.4.i, align 8, !alias.scope !2783, !noalias !2790 %168 = fsub <4 x double> %158, %160 store <4 x double> %168, ptr %2, align 8, !alias.scope !2783, !noalias !2790 %169 = fadd <4 x double> %159, %165 store <4 x double> %169, ptr %_3.i2.i.i.i.4.i, align 8, !alias.scope !2783, !noalias !2790 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2786, !noalias !2788 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2786, !noalias !2788 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !2786, !noalias !2788 %170 = shufflevector <4 x double> %55, <4 x double> %112, <4 x i32> %171 = shufflevector <4 x double> %55, <4 x double> %112, <4 x i32> %172 = shufflevector <4 x double> %171, <4 x double> poison, <4 x i32> %173 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %174 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %172, %174 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %171, <4 x double> %175) #23 %177 = shufflevector <4 x double> %76, <4 x double> %133, <4 x i32> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %180 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %178, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %179, <4 x double> %177, <4 x double> %181) #23 %183 = shufflevector <4 x double> %76, <4 x double> %133, <4 x i32> %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %186 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %184, %186 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %185, <4 x double> %183, <4 x double> %187) #23 %189 = fadd <4 x double> %170, %182 %190 = fsub <4 x double> %170, %182 %191 = fadd <4 x double> %176, %188 %192 = fsub <4 x double> %176, %188 %193 = bitcast <4 x double> %192 to <4 x i64> %194 = xor <4 x i64> %193, %195 = bitcast <4 x i64> %194 to <4 x double> %196 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> %197 = fadd <4 x double> %189, %191 store <4 x double> %197, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !2783, !noalias !2790 %198 = fsub <4 x double> %190, %196 store <4 x double> %198, ptr %_3.i.i.i.i.5.i, align 8, !alias.scope !2783, !noalias !2790 %199 = fsub <4 x double> %189, %191 store <4 x double> %199, ptr %_3.i2.i.i.i.1.i, align 8, !alias.scope !2783, !noalias !2790 %200 = fadd <4 x double> %190, %196 store <4 x double> %200, ptr %_3.i2.i.i.i.5.i, align 8, !alias.scope !2783, !noalias !2790 %_3.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %_3.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2786, !noalias !2788 %w2.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2786, !noalias !2788 %w3.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !2786, !noalias !2788 %201 = shufflevector <4 x double> %56, <4 x double> %113, <4 x i32> %202 = shufflevector <4 x double> %56, <4 x double> %113, <4 x i32> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %205 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %203, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %204, <4 x double> %202, <4 x double> %206) #23 %208 = shufflevector <4 x double> %77, <4 x double> %134, <4 x i32> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %209, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %208, <4 x double> %212) #23 %214 = shufflevector <4 x double> %77, <4 x double> %134, <4 x i32> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %215, %217 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %216, <4 x double> %214, <4 x double> %218) #23 %220 = fadd <4 x double> %201, %213 %221 = fsub <4 x double> %201, %213 %222 = fadd <4 x double> %207, %219 %223 = fsub <4 x double> %207, %219 %224 = bitcast <4 x double> %223 to <4 x i64> %225 = xor <4 x i64> %224, %226 = bitcast <4 x i64> %225 to <4 x double> %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = fadd <4 x double> %220, %222 store <4 x double> %228, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !2783, !noalias !2790 %229 = fsub <4 x double> %221, %227 store <4 x double> %229, ptr %_3.i.i.i.i.6.i, align 8, !alias.scope !2783, !noalias !2790 %230 = fsub <4 x double> %220, %222 store <4 x double> %230, ptr %_3.i2.i.i.i.2.i, align 8, !alias.scope !2783, !noalias !2790 %231 = fadd <4 x double> %221, %227 store <4 x double> %231, ptr %_3.i2.i.i.i.6.i, align 8, !alias.scope !2783, !noalias !2790 %_3.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2786, !noalias !2788 %w2.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2786, !noalias !2788 %w3.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !2786, !noalias !2788 %232 = shufflevector <4 x double> %57, <4 x double> %114, <4 x i32> %233 = shufflevector <4 x double> %57, <4 x double> %114, <4 x i32> %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %234, %236 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %235, <4 x double> %233, <4 x double> %237) #23 %239 = shufflevector <4 x double> %78, <4 x double> %135, <4 x i32> %240 = shufflevector <4 x double> %239, <4 x double> poison, <4 x i32> %241 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %243 = fmul <4 x double> %240, %242 %244 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %241, <4 x double> %239, <4 x double> %243) #23 %245 = shufflevector <4 x double> %78, <4 x double> %135, <4 x i32> %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %248 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %246, %248 %250 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %247, <4 x double> %245, <4 x double> %249) #23 %251 = fadd <4 x double> %232, %244 %252 = fsub <4 x double> %232, %244 %253 = fadd <4 x double> %238, %250 %254 = fsub <4 x double> %238, %250 %255 = bitcast <4 x double> %254 to <4 x i64> %256 = xor <4 x i64> %255, %257 = bitcast <4 x i64> %256 to <4 x double> %258 = shufflevector <4 x double> %257, <4 x double> poison, <4 x i32> %259 = fadd <4 x double> %251, %253 store <4 x double> %259, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !2783, !noalias !2790 %260 = fsub <4 x double> %252, %258 store <4 x double> %260, ptr %_3.i.i.i.i.7.i, align 8, !alias.scope !2783, !noalias !2790 %261 = fsub <4 x double> %251, %253 store <4 x double> %261, ptr %_3.i2.i.i.i.3.i, align 8, !alias.scope !2783, !noalias !2790 %262 = fadd <4 x double> %252, %258 store <4 x double> %262, ptr %_3.i2.i.i.i.7.i, align 8, !alias.scope !2783, !noalias !2790 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2770 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h28482f94bfb6dd05E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2791 store i64 128, ptr %n.i.i, align 8, !noalias !2791 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2791 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2791 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2791 store ptr null, ptr %_16.i.i, align 8, !noalias !2791 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2791 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2791 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2791 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2791 store ptr null, ptr %_24.i.i, align 8, !noalias !2791 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2791 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2791 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2791 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2791 store ptr null, ptr %_32.i.i, align 8, !noalias !2791 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2791 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2791 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2791 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c71f7fc63e76ae4E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2791 store ptr null, ptr %_40.i.i, align 8, !noalias !2791 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c71f7fc63e76ae4E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2791 tail call void @llvm.experimental.noalias.scope.decl(metadata !2796) tail call void @llvm.experimental.noalias.scope.decl(metadata !2799) tail call void @llvm.experimental.noalias.scope.decl(metadata !2801) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c71f7fc63e76ae4E.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c71f7fc63e76ae4E.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2801, !noalias !2803 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2801, !noalias !2803 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !2801, !noalias !2803 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2796, !noalias !2804 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2796, !noalias !2804 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2796, !noalias !2804 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2796, !noalias !2804 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2799, !noalias !2805 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !2799, !noalias !2805 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !2799, !noalias !2805 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !2799, !noalias !2805 %exitcond.not.i.i = icmp eq i64 %8, 16 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2806) tail call void @llvm.experimental.noalias.scope.decl(metadata !2809) tail call void @llvm.experimental.noalias.scope.decl(metadata !2811) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !2811, !noalias !2813, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !2811, !noalias !2813, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !2811, !noalias !2813, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !2811, !noalias !2813, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !2811, !noalias !2813, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !2811, !noalias !2813, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2806, !noalias !2814 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2806, !noalias !2814 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2806, !noalias !2814 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2806, !noalias !2814 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !2809, !noalias !2815 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !2809, !noalias !2815 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !2809, !noalias !2815 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !2809, !noalias !2815 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2806, !noalias !2814 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2806, !noalias !2814 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2806, !noalias !2814 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2806, !noalias !2814 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2809, !noalias !2815 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2809, !noalias !2815 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2809, !noalias !2815 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !2809, !noalias !2815 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2816) tail call void @llvm.experimental.noalias.scope.decl(metadata !2819) tail call void @llvm.experimental.noalias.scope.decl(metadata !2821) %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %118 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ], [ %124, %bb38.us.i59.i ] %124 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !2816, !noalias !2824 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !2816, !noalias !2824 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !2816, !noalias !2824 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !2816, !noalias !2824 %125 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %126 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %128 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = bitcast <4 x double> %128 to <4 x i64> %130 = xor <4 x i64> %129, %131 = bitcast <4 x i64> %130 to <4 x double> %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fadd <4 x double> %125, %127 store <4 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !2819, !noalias !2825 %134 = fsub <4 x double> %126, %132 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %119, %135 %137 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %134, <4 x double> %136) #23 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !2819, !noalias !2825 %138 = fsub <4 x double> %125, %127 %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %121, %139 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %138, <4 x double> %140) #23 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !2819, !noalias !2825 %142 = fadd <4 x double> %126, %132 %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %123, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %122, <4 x double> %142, <4 x double> %144) #23 store <4 x double> %145, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !2819, !noalias !2825 %exitcond.not.i73.i = icmp eq i64 %124, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %data.i.i.i.i.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i50.1.i = load double, ptr %146, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i51.1.i = load double, ptr %147, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i52.1.i = load double, ptr %148, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i53.1.i = load double, ptr %149, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i54.1.i = load double, ptr %150, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i55.1.i = load double, ptr %151, align 8, !alias.scope !2821, !noalias !2823, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.1.i = insertelement <2 x double> poison, double %w1.0.us.i50.1.i, i64 0 %152 = insertelement <4 x double> poison, double %w1.1.us.i51.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.1.i = insertelement <2 x double> poison, double %w2.0.us.i52.1.i, i64 0 %153 = insertelement <4 x double> poison, double %w2.1.us.i53.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.1.i = insertelement <2 x double> poison, double %w3.0.us.i54.1.i, i64 0 %154 = insertelement <4 x double> poison, double %w3.1.us.i55.1.i, i64 0 %155 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %156 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %157 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.1.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.1.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.1.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.1.i bb38.us.i59.1.i: ; preds = %bb38.us.i59.1.i, %bb36.bb20.loopexit_crit_edge.us.i74.i %iter5.sroa.50.0697.us.i60.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ %163, %bb38.us.i59.1.i ] %163 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.us.i66.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %155, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.us.i67.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.us.i68.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %156, i64 %iter5.sroa.50.0697.us.i60.1.i %a.sroa.0.0.copyload.us.i69.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i, align 8, !alias.scope !2816, !noalias !2824 %b.sroa.0.0.copyload.us.i70.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i, align 8, !alias.scope !2816, !noalias !2824 %c.sroa.0.0.copyload.us.i71.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i, align 8, !alias.scope !2816, !noalias !2824 %d.sroa.0.0.copyload.us.i72.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i, align 8, !alias.scope !2816, !noalias !2824 %164 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %165 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %166 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %167 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %168 = bitcast <4 x double> %167 to <4 x i64> %169 = xor <4 x i64> %168, %170 = bitcast <4 x i64> %169 to <4 x double> %171 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %172 = fadd <4 x double> %164, %166 store <4 x double> %172, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i, align 8, !alias.scope !2819, !noalias !2825 %173 = fsub <4 x double> %165, %171 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %158, %174 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %173, <4 x double> %175) #23 store <4 x double> %176, ptr %_3.i.i.i.i.i.i.i.i.us.i66.1.i, align 8, !alias.scope !2819, !noalias !2825 %177 = fsub <4 x double> %164, %166 %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %160, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %177, <4 x double> %179) #23 store <4 x double> %180, ptr %_3.i.i.i.i.i.i.us.i67.1.i, align 8, !alias.scope !2819, !noalias !2825 %181 = fadd <4 x double> %165, %171 %182 = shufflevector <4 x double> %181, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %162, %182 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %181, <4 x double> %183) #23 store <4 x double> %184, ptr %_3.i.i.i.i.us.i68.1.i, align 8, !alias.scope !2819, !noalias !2825 %exitcond.not.i73.1.i = icmp eq i64 %163, 8 br i1 %exitcond.not.i73.1.i, label %bb18.i.i.i.i.i, label %bb38.us.i59.1.i bb18.i.i.i.i.i: ; preds = %bb38.us.i59.1.i, %bb18.i.i.i.i.i %iter6.i.i.i.i.sroa.22.0115.i = phi i64 [ %188, %bb18.i.i.i.i.i ], [ 0, %bb38.us.i59.1.i ] %185 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0115.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.sroa.22.0115.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter6.i.i.i.i.sroa.22.0115.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.sroa.22.0115.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.sroa.22.0115.i %_51.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2791 %_52.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2791 %186 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %187 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %186, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2791 store <4 x double> %187, ptr %_3.i.i.i.i.i, align 8, !noalias !2791 %188 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0115.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %185 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %185 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %185 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %185 %_51.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2791 %_52.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !2791 %189 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 %190 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !2791 store <4 x double> %190, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2791 %exitcond116.not.i.1 = icmp eq i64 %188, 32 br i1 %exitcond116.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h77454429a0e32469E.exit, label %bb18.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h77454429a0e32469E.exit: ; preds = %bb18.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2791 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h28e83d2ff83c2f1fE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2826 store i64 4, ptr %n.i, align 8, !noalias !2826 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2826 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2826 %_12.i = icmp eq i64 %buf.1, 4 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2826 store ptr null, ptr %_16.i, align 8, !noalias !2826 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2826 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2826 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2826 %_20.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2826 store ptr null, ptr %_24.i, align 8, !noalias !2826 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2826 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2826 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2826 %_28.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2826 store ptr null, ptr %_32.i, align 8, !noalias !2826 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2826 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2826 store i64 %w.1, ptr %_34.i, align 8, !noalias !2826 %_36.i = icmp eq i64 %w.1, 4 br i1 %_36.i, label %bb13.i.i, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2826 store ptr null, ptr %_40.i, align 8, !noalias !2826 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb13.i.i: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2826 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %3 = load <2 x double>, ptr %buf.0, align 8, !noalias !2826 %4 = load <2 x double>, ptr %1, align 8, !noalias !2826 %5 = load <2 x double>, ptr %2, align 8, !noalias !2826 %6 = load <2 x double>, ptr %0, align 8, !noalias !2826 %7 = fadd <2 x double> %3, %5 %8 = fadd <2 x double> %4, %6 %9 = fadd <2 x double> %7, %8 store <2 x double> %9, ptr %buf.0, align 8, !noalias !2826 %10 = fsub <2 x double> %3, %5 %11 = fsub <2 x double> %4, %6 %12 = shufflevector <2 x double> %11, <2 x double> poison, <2 x i32> %13 = fadd <2 x double> %10, %12 %14 = fsub <2 x double> %10, %12 %15 = shufflevector <2 x double> %13, <2 x double> %14, <2 x i32> store <2 x double> %15, ptr %1, align 8, !noalias !2826 %16 = fsub <2 x double> %7, %8 store <2 x double> %16, ptr %2, align 8, !noalias !2826 %17 = shufflevector <2 x double> %14, <2 x double> %13, <2 x i32> store <2 x double> %17, ptr %0, align 8, !noalias !2826 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2826 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2a228fe7c342074dE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2829 store i64 512, ptr %n.i, align 8, !noalias !2829 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2829 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2829 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2829 store ptr null, ptr %_16.i, align 8, !noalias !2829 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2829 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2829 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2829 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2829 store ptr null, ptr %_24.i, align 8, !noalias !2829 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2829 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2829 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2829 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2829 store ptr null, ptr %_32.i, align 8, !noalias !2829 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2829 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2829 store i64 %w.1, ptr %_34.i, align 8, !noalias !2829 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2829 store ptr null, ptr %_40.i, align 8, !noalias !2829 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2829 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !2829 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !2829 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !2829 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !2829 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !2829 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !2829 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !2829 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !2829 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !2829 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fsub <4 x double> %75, %80 %92 = fadd <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fadd <4 x double> %75, %80 %96 = fsub <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fsub <4 x double> %83, %88 %100 = fadd <4 x double> %84, %87 %101 = fsub <4 x double> %99, %100 %102 = fadd <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fadd <4 x double> %83, %88 %108 = fsub <4 x double> %84, %87 %109 = fadd <4 x double> %108, %107 %110 = fsub <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !2829 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !2829 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !2829 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !2829 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !2829 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !2829 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !2829 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !2829 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !2829 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !2829 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !2829 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !2829 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !2829 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !2829 %141 = fsub <4 x double> %93, %106 %142 = fadd <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !2829 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !2829 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !2829 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !2829 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !2829 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !2829 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !2829 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !2829 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !2829 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !2829 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !2829 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !2829 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !2829 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !2829 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !2829 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !2829 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !2829 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !2829 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !2829 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !2829 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !2829 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !2829 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !2829 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !2829 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !2829 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !2829 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !2829 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !2829 %205 = fadd <4 x double> %93, %106 %206 = fsub <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !2829 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !2829 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !2829 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !2829 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !2829 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !2829 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !2829 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !2829 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !2829 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !2829 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !2829 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !2829 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !2829 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !2829 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 64 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, label %vector.body, !llvm.loop !2832 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 br label %bb32.i.i.i.i vector.body118: ; preds = %middle.block36, %vector.body118 %index119 = phi i64 [ %index.next152, %vector.body118 ], [ 0, %middle.block36 ] %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index119 %246 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index119 %247 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index119 %248 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index119 %249 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index119 %250 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index119 %251 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index119 %252 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index119 %wide.vec120 = load <8 x double>, ptr %245, align 8, !noalias !2829 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %246, align 8, !noalias !2829 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %wide.vec126 = load <8 x double>, ptr %247, align 8, !noalias !2829 %strided.vec127 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %strided.vec128 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %wide.vec129 = load <8 x double>, ptr %248, align 8, !noalias !2829 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %wide.vec132 = load <8 x double>, ptr %249, align 8, !noalias !2829 %strided.vec133 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %strided.vec134 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %wide.vec135 = load <8 x double>, ptr %250, align 8, !noalias !2829 %strided.vec136 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %strided.vec137 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %wide.vec138 = load <8 x double>, ptr %251, align 8, !noalias !2829 %strided.vec139 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %strided.vec140 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %wide.vec141 = load <8 x double>, ptr %252, align 8, !noalias !2829 %strided.vec142 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %strided.vec143 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %253 = fadd <4 x double> %strided.vec121, %strided.vec133 %254 = fadd <4 x double> %strided.vec122, %strided.vec134 %255 = fsub <4 x double> %strided.vec121, %strided.vec133 %256 = fsub <4 x double> %strided.vec122, %strided.vec134 %257 = fadd <4 x double> %strided.vec127, %strided.vec139 %258 = fadd <4 x double> %strided.vec128, %strided.vec140 %259 = fsub <4 x double> %strided.vec127, %strided.vec139 %260 = fsub <4 x double> %strided.vec128, %strided.vec140 %261 = fadd <4 x double> %strided.vec124, %strided.vec136 %262 = fadd <4 x double> %strided.vec125, %strided.vec137 %263 = fsub <4 x double> %strided.vec124, %strided.vec136 %264 = fsub <4 x double> %strided.vec125, %strided.vec137 %265 = fadd <4 x double> %strided.vec130, %strided.vec142 %266 = fadd <4 x double> %strided.vec131, %strided.vec143 %267 = fsub <4 x double> %strided.vec130, %strided.vec142 %268 = fsub <4 x double> %strided.vec131, %strided.vec143 %269 = fadd <4 x double> %253, %257 %270 = fadd <4 x double> %254, %258 %271 = fsub <4 x double> %255, %260 %272 = fadd <4 x double> %256, %259 %273 = fsub <4 x double> %253, %257 %274 = fsub <4 x double> %254, %258 %275 = fadd <4 x double> %255, %260 %276 = fsub <4 x double> %256, %259 %277 = fadd <4 x double> %261, %265 %278 = fadd <4 x double> %262, %266 %279 = fsub <4 x double> %263, %268 %280 = fadd <4 x double> %264, %267 %281 = fsub <4 x double> %279, %280 %282 = fadd <4 x double> %280, %279 %283 = fmul <4 x double> %281, %284 = fmul <4 x double> %282, %285 = fsub <4 x double> %261, %265 %286 = fsub <4 x double> %262, %266 %287 = fadd <4 x double> %263, %268 %288 = fsub <4 x double> %264, %267 %289 = fadd <4 x double> %288, %287 %290 = fsub <4 x double> %288, %287 %291 = fmul <4 x double> %289, %292 = fmul <4 x double> %290, %293 = fadd <4 x double> %269, %277 %294 = fadd <4 x double> %270, %278 %295 = fadd <4 x double> %271, %283 %296 = fadd <4 x double> %272, %284 %297 = fsub <4 x double> %273, %286 %298 = fadd <4 x double> %274, %285 %299 = fsub <4 x double> %275, %291 %300 = fsub <4 x double> %276, %292 %301 = fsub <4 x double> %269, %277 %302 = fsub <4 x double> %270, %278 %303 = fsub <4 x double> %271, %283 %304 = fsub <4 x double> %272, %284 %305 = fadd <4 x double> %273, %286 %306 = fsub <4 x double> %274, %285 %307 = fadd <4 x double> %275, %291 %308 = fadd <4 x double> %276, %292 %interleaved.vec144 = shufflevector <4 x double> %293, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec144, ptr %245, align 8, !noalias !2829 %interleaved.vec145 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec145, ptr %246, align 8, !noalias !2829 %interleaved.vec146 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec146, ptr %247, align 8, !noalias !2829 %interleaved.vec147 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec147, ptr %248, align 8, !noalias !2829 %interleaved.vec148 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec148, ptr %249, align 8, !noalias !2829 %interleaved.vec149 = shufflevector <4 x double> %303, <4 x double> %304, <8 x i32> store <8 x double> %interleaved.vec149, ptr %250, align 8, !noalias !2829 %interleaved.vec150 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec150, ptr %251, align 8, !noalias !2829 %interleaved.vec151 = shufflevector <4 x double> %307, <4 x double> %308, <8 x i32> store <8 x double> %interleaved.vec151, ptr %252, align 8, !noalias !2829 %index.next152 = add nuw i64 %index119, 4 %309 = icmp eq i64 %index.next152, 64 br i1 %309, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ea20b81015eea99E.exit", label %vector.body118, !llvm.loop !2833 bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, %middle.block36 %iter.i.i.i.i.sroa.104.0127 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703 ], [ %432, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0127, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i754 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i759 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i764 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %start1.i.i.i.i.i.i767 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0127, 6 %data.i.i.i.i.i.i768 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i767 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 32 %311 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 16 %312 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 8 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 24 %314 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 48 %315 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 40 %316 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 56 %317 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %317, align 8, !noalias !2829, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %318 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %318, align 8, !noalias !2829, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %319 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %319, align 8, !noalias !2829, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %320 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %320, align 8, !noalias !2829, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %321 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %321, align 8, !noalias !2829, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %322 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %322, align 8, !noalias !2829, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %323 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %323, align 8, !noalias !2829, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %324 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7 %w7.0.i.i.i.i = load double, ptr %324, align 8, !noalias !2829, !noundef !3 %325 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6 %w6.0.i.i.i.i = load double, ptr %325, align 8, !noalias !2829, !noundef !3 %326 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5 %w5.0.i.i.i.i = load double, ptr %326, align 8, !noalias !2829, !noundef !3 %327 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4 %w4.0.i.i.i.i = load double, ptr %327, align 8, !noalias !2829, !noundef !3 %328 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3 %w3.0.i.i.i.i = load double, ptr %328, align 8, !noalias !2829, !noundef !3 %329 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2 %w2.0.i.i.i.i = load double, ptr %329, align 8, !noalias !2829, !noundef !3 %330 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1 %w1.0.i.i.i.i = load double, ptr %330, align 8, !noalias !2829, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i.i %index41 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next113, %vector.body40 ] %331 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729, i64 %index41 %332 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734, i64 %index41 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739, i64 %index41 %334 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744, i64 %index41 %335 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749, i64 %index41 %336 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i754, i64 %index41 %337 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i759, i64 %index41 %338 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i764, i64 %index41 %wide.vec42 = load <8 x double>, ptr %331, align 8, !noalias !2829 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %332, align 8, !noalias !2829 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %333, align 8, !noalias !2829 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %334, align 8, !noalias !2829 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %335, align 8, !noalias !2829 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %336, align 8, !noalias !2829 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %337, align 8, !noalias !2829 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %338, align 8, !noalias !2829 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %339 = fadd <4 x double> %strided.vec43, %strided.vec55 %340 = fadd <4 x double> %strided.vec44, %strided.vec56 %341 = fsub <4 x double> %strided.vec43, %strided.vec55 %342 = fsub <4 x double> %strided.vec44, %strided.vec56 %343 = fadd <4 x double> %strided.vec49, %strided.vec61 %344 = fadd <4 x double> %strided.vec50, %strided.vec62 %345 = fsub <4 x double> %strided.vec49, %strided.vec61 %346 = fsub <4 x double> %strided.vec50, %strided.vec62 %347 = fadd <4 x double> %strided.vec46, %strided.vec58 %348 = fadd <4 x double> %strided.vec47, %strided.vec59 %349 = fsub <4 x double> %strided.vec46, %strided.vec58 %350 = fsub <4 x double> %strided.vec47, %strided.vec59 %351 = fadd <4 x double> %strided.vec52, %strided.vec64 %352 = fadd <4 x double> %strided.vec53, %strided.vec65 %353 = fsub <4 x double> %strided.vec52, %strided.vec64 %354 = fsub <4 x double> %strided.vec53, %strided.vec65 %355 = fadd <4 x double> %339, %343 %356 = fadd <4 x double> %340, %344 %357 = fsub <4 x double> %341, %346 %358 = fadd <4 x double> %342, %345 %359 = fsub <4 x double> %339, %343 %360 = fsub <4 x double> %340, %344 %361 = fadd <4 x double> %341, %346 %362 = fsub <4 x double> %342, %345 %363 = fadd <4 x double> %347, %351 %364 = fadd <4 x double> %348, %352 %365 = fsub <4 x double> %349, %354 %366 = fadd <4 x double> %350, %353 %367 = fsub <4 x double> %365, %366 %368 = fadd <4 x double> %366, %365 %369 = fmul <4 x double> %367, %370 = fmul <4 x double> %368, %371 = fsub <4 x double> %347, %351 %372 = fsub <4 x double> %348, %352 %373 = fadd <4 x double> %349, %354 %374 = fsub <4 x double> %350, %353 %375 = fadd <4 x double> %374, %373 %376 = fsub <4 x double> %374, %373 %377 = fmul <4 x double> %375, %378 = fmul <4 x double> %376, %379 = fadd <4 x double> %355, %363 %380 = fadd <4 x double> %356, %364 %381 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 %index41 %interleaved.vec = shufflevector <4 x double> %379, <4 x double> %380, <8 x i32> store <8 x double> %interleaved.vec, ptr %381, align 8, !noalias !2829 %382 = fadd <4 x double> %357, %369 %383 = fadd <4 x double> %358, %370 %384 = fmul <4 x double> %383, %broadcast.splat %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %382, <4 x double> %384) %386 = fmul <4 x double> %broadcast.splat69, %382 %387 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %383, <4 x double> %386) %388 = getelementptr inbounds %"num_complex::Complex", ptr %312, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %385, <4 x double> %387, <8 x i32> store <8 x double> %interleaved.vec70, ptr %388, align 8, !noalias !2829 %389 = fsub <4 x double> %359, %372 %390 = fadd <4 x double> %360, %371 %391 = fmul <4 x double> %390, %broadcast.splat72 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %broadcast.splat76, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %390, <4 x double> %393) %395 = getelementptr inbounds %"num_complex::Complex", ptr %311, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %392, <4 x double> %394, <8 x i32> store <8 x double> %interleaved.vec77, ptr %395, align 8, !noalias !2829 %396 = fsub <4 x double> %361, %377 %397 = fsub <4 x double> %362, %378 %398 = fmul <4 x double> %397, %broadcast.splat79 %399 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %396, <4 x double> %398) %400 = fmul <4 x double> %broadcast.splat83, %396 %401 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %397, <4 x double> %400) %402 = getelementptr inbounds %"num_complex::Complex", ptr %313, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %399, <4 x double> %401, <8 x i32> store <8 x double> %interleaved.vec84, ptr %402, align 8, !noalias !2829 %403 = fsub <4 x double> %355, %363 %404 = fsub <4 x double> %356, %364 %405 = fmul <4 x double> %404, %broadcast.splat86 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %broadcast.splat90, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %404, <4 x double> %407) %409 = getelementptr inbounds %"num_complex::Complex", ptr %310, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %406, <4 x double> %408, <8 x i32> store <8 x double> %interleaved.vec91, ptr %409, align 8, !noalias !2829 %410 = fsub <4 x double> %357, %369 %411 = fsub <4 x double> %358, %370 %412 = fmul <4 x double> %411, %broadcast.splat93 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %410, <4 x double> %412) %414 = fmul <4 x double> %broadcast.splat97, %410 %415 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %411, <4 x double> %414) %416 = getelementptr inbounds %"num_complex::Complex", ptr %315, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %413, <4 x double> %415, <8 x i32> store <8 x double> %interleaved.vec98, ptr %416, align 8, !noalias !2829 %417 = fadd <4 x double> %359, %372 %418 = fsub <4 x double> %360, %371 %419 = fmul <4 x double> %418, %broadcast.splat100 %420 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %417, <4 x double> %419) %421 = fmul <4 x double> %broadcast.splat104, %417 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %418, <4 x double> %421) %423 = getelementptr inbounds %"num_complex::Complex", ptr %314, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %420, <4 x double> %422, <8 x i32> store <8 x double> %interleaved.vec105, ptr %423, align 8, !noalias !2829 %424 = fadd <4 x double> %361, %377 %425 = fadd <4 x double> %362, %378 %426 = fmul <4 x double> %425, %broadcast.splat107 %427 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %424, <4 x double> %426) %428 = fmul <4 x double> %broadcast.splat111, %424 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %425, <4 x double> %428) %430 = getelementptr inbounds %"num_complex::Complex", ptr %316, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %427, <4 x double> %429, <8 x i32> store <8 x double> %interleaved.vec112, ptr %430, align 8, !noalias !2829 %index.next113 = add nuw i64 %index41, 4 %431 = icmp eq i64 %index.next113, 8 br i1 %431, label %middle.block36, label %vector.body40, !llvm.loop !2834 middle.block36: ; preds = %vector.body40 %432 = add nuw nsw i64 %iter.i.i.i.i.sroa.104.0127, 1 %exitcond131.not = icmp eq i64 %432, 8 br i1 %exitcond131.not, label %vector.body118, label %bb32.i.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ea20b81015eea99E.exit": ; preds = %vector.body118 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2829 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2a52137469dd54d1E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h8600a3d497556319E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2aad6d2ed4af9c70E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h581706afcad0f361E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2ad227394b2261a8E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9567e81409daf135E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2d925ad87ca7951eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hbf2f1ce8cb9235d5E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2e07ca4aba52be51E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17he14bd5ed8838f289E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h2f039564e7210fa1E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2835 store i64 8, ptr %n.i, align 8, !noalias !2835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2835 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2835 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2835 store ptr null, ptr %_16.i, align 8, !noalias !2835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2835 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2835 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2835 store ptr null, ptr %_24.i, align 8, !noalias !2835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2835 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2835 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2835 store ptr null, ptr %_32.i, align 8, !noalias !2835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2835 store i64 %w.1, ptr %_34.i, align 8, !noalias !2835 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %bb9.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2835 store ptr null, ptr %_40.i, align 8, !noalias !2835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2835 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !2835 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !2835 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %1 = fadd <4 x double> %strided.vec, %strided.vec3 %2 = fadd <4 x double> %strided.vec1, %strided.vec4 %3 = fsub <4 x double> %strided.vec, %strided.vec3 %4 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %1, <4 x double> %2, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !2835 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec5 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec5, ptr %5, align 8, !noalias !2835 %6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %7 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i43 = load double, ptr %7, align 8, !noalias !2835, !noundef !3 %8 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %8, align 8, !noalias !2835, !noundef !3 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_6.i.i.i59 = fneg double %w1.1.i.i44 %10 = load <4 x double>, ptr %buf.0, align 8, !noalias !2835 %11 = load <4 x double>, ptr %9, align 8, !noalias !2835 %12 = insertelement <4 x double> poison, double %_6.i.i.i59, i64 0 %13 = insertelement <4 x double> %12, double %w1.1.i.i44, i64 1 %14 = shufflevector <4 x double> %13, <4 x double> poison, <4 x i32> %15 = fmul <4 x double> %14, %11 %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> zeroinitializer %19 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %18, <4 x double> %11, <4 x double> %16) %20 = fadd <4 x double> %10, %19 store <4 x double> %20, ptr %scratch.0, align 8, !noalias !2835 %21 = fsub <4 x double> %10, %19 store <4 x double> %21, ptr %6, align 8, !noalias !2835 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %22 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.i.i43.1 = load double, ptr %22, align 8, !noalias !2835, !noundef !3 %23 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %23, align 8, !noalias !2835, !noundef !3 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_6.i.i.i59.1 = fneg double %w1.1.i.i44.1 %25 = load <4 x double>, ptr %0, align 8, !noalias !2835 %26 = load <4 x double>, ptr %24, align 8, !noalias !2835 %27 = insertelement <4 x double> poison, double %_6.i.i.i59.1, i64 0 %28 = insertelement <4 x double> %27, double %w1.1.i.i44.1, i64 1 %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fmul <4 x double> %29, %26 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %33 = shufflevector <4 x double> %32, <4 x double> poison, <4 x i32> zeroinitializer %34 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %33, <4 x double> %26, <4 x double> %31) %35 = fadd <4 x double> %25, %34 store <4 x double> %35, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2835 %36 = fsub <4 x double> %25, %34 store <4 x double> %36, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !2835 %37 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !2835 %38 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %38, i32 8, <4 x i1> , <4 x double> poison), !noalias !2835 %39 = fneg <4 x double> %wide.masked.gather12 %wide.vec13 = load <16 x double>, ptr %scratch.0, align 8, !noalias !2835 %strided.vec14 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %strided.vec15 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %strided.vec16 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %40 = fmul <4 x double> %strided.vec17, %39 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %strided.vec16, <4 x double> %40) %42 = fmul <4 x double> %wide.masked.gather12, %strided.vec16 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %strided.vec17, <4 x double> %42) %44 = fadd <4 x double> %strided.vec14, %41 %45 = fadd <4 x double> %strided.vec15, %43 %interleaved.vec18 = shufflevector <4 x double> %44, <4 x double> %45, <8 x i32> store <8 x double> %interleaved.vec18, ptr %buf.0, align 8, !noalias !2835 %46 = fsub <4 x double> %strided.vec14, %41 %47 = fsub <4 x double> %strided.vec15, %43 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec19 = shufflevector <4 x double> %46, <4 x double> %47, <8 x i32> store <8 x double> %interleaved.vec19, ptr %48, align 8, !noalias !2835 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2835 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h308437491cd54e99E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h851ad0e743d6d8ecE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h30f63b3e966b2757E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2838 store i64 128, ptr %n.i.i, align 8, !noalias !2838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2838 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2838 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2838 store ptr null, ptr %_16.i.i, align 8, !noalias !2838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2838 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2838 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2838 store ptr null, ptr %_24.i.i, align 8, !noalias !2838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2838 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2838 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2838 store ptr null, ptr %_32.i.i, align 8, !noalias !2838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2838 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2838 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha2e39a61b370676bE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2838 store ptr null, ptr %_40.i.i, align 8, !noalias !2838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha2e39a61b370676bE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2838 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha2e39a61b370676bE.exit.i" %iter.i.i.i.sroa.8.047.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha2e39a61b370676bE.exit.i" ], [ %12, %bb9.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.sroa.8.047.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.047.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.047.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2838 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !2838 %4 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !2838 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !2838 %6 = or disjoint i64 %iter.i.i.i.sroa.8.047.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2838 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !2838 %7 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !2838 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !2838 %9 = or disjoint i64 %iter.i.i.i.sroa.8.047.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !2838 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !2838 %10 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !2838 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !2838 %12 = add nuw nsw i64 %iter.i.i.i.sroa.8.047.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !2838 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !2838 %13 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !2838 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !2838 %exitcond.not.i.3 = icmp eq i64 %12, 32 br i1 %exitcond.not.i.3, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i", label %bb9.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i": ; preds = %bb9.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2843) tail call void @llvm.experimental.noalias.scope.decl(metadata !2846) tail call void @llvm.experimental.noalias.scope.decl(metadata !2848) %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i br i1 %_2.i.i.i.i.i, label %bb30.i.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" %_2.i.i.i.i.i = phi i1 [ false, %bb28.loopexit.i.i ], [ true, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %iter.sroa.104.02127.i.i = phi i64 [ 1, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 3 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %29, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %30 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %31, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %32, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %33 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %34, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %35, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %36 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %37, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %38, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %39 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %40, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %41, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %42 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %43, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %44, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %45 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %46 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %46, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %47, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %48 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %49, align 8, !alias.scope !2848, !noalias !2850, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %50 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %51 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> zeroinitializer %52 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %53 = shufflevector <4 x double> %45, <4 x double> poison, <4 x i32> zeroinitializer %54 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %55 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %57 = shufflevector <4 x double> %39, <4 x double> poison, <4 x i32> zeroinitializer %58 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %33, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %64, %bb58.i.i ] %64 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %65 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = fmul <4 x double> %51, %65 %67 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %66) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %68 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %69 = fmul <4 x double> %53, %68 %70 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %52, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %69) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %71 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %55, %71 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %54, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %72) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %74 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %57, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %75) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %77 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %59, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %78) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %80 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %61, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %81) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !2846, !noalias !2851 %83 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %63, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %84) #23 %86 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %76 %87 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %76 %88 = fadd <4 x double> %70, %82 %89 = fsub <4 x double> %70, %82 %90 = bitcast <4 x double> %89 to <4 x i64> %91 = fsub <4 x double> %73, %85 %92 = bitcast <4 x double> %91 to <4 x i64> %93 = xor <4 x i64> %90, %94 = bitcast <4 x i64> %93 to <4 x double> %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = xor <4 x i64> %92, %97 = bitcast <4 x i64> %96 to <4 x double> %98 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> %99 = fadd <4 x double> %67, %79 %100 = fsub <4 x double> %67, %79 %101 = fadd <4 x double> %73, %85 %102 = fadd <4 x double> %86, %88 %103 = fadd <4 x double> %99, %101 %104 = fadd <4 x double> %102, %103 store <4 x double> %104, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %105 = fsub <4 x double> %102, %103 store <4 x double> %105, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %106 = fsub <4 x double> %87, %95 %107 = fsub <4 x double> %100, %98 %108 = bitcast <4 x double> %107 to <4 x i64> %109 = xor <4 x i64> %108, %110 = bitcast <4 x i64> %109 to <4 x double> %111 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> %112 = fadd <4 x double> %107, %111 %113 = fmul <4 x double> %112, %114 = fadd <4 x double> %106, %113 store <4 x double> %114, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %115 = fsub <4 x double> %106, %113 store <4 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %116 = fsub <4 x double> %86, %88 %117 = fsub <4 x double> %99, %101 %118 = bitcast <4 x double> %117 to <4 x i64> %119 = fadd <4 x double> %87, %95 %120 = fadd <4 x double> %100, %98 %121 = xor <4 x i64> %118, %122 = bitcast <4 x i64> %121 to <4 x double> %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fsub <4 x double> %116, %123 store <4 x double> %124, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %125 = fadd <4 x double> %116, %123 store <4 x double> %125, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %126 = bitcast <4 x double> %120 to <4 x i64> %127 = xor <4 x i64> %126, %128 = bitcast <4 x i64> %127 to <4 x double> %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = fadd <4 x double> %120, %129 %131 = fmul <4 x double> %130, %132 = fsub <4 x double> %119, %131 store <4 x double> %132, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %133 = fadd <4 x double> %119, %131 store <4 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2843, !noalias !2852 %exitcond.not.i.i = icmp eq i64 %64, 4 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2853) tail call void @llvm.experimental.noalias.scope.decl(metadata !2856) tail call void @llvm.experimental.noalias.scope.decl(metadata !2858) %134 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %135 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %137 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %140 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %141 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %142 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %143 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %144 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %146 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.106.01794.i.i = phi i64 [ %147, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %147 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %135, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21.i = getelementptr inbounds %"fft_simd::c64x2", ptr %134, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22.i = getelementptr inbounds %"fft_simd::c64x2", ptr %136, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %138, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %137, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %142, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %141, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %143, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %140, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %145, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %144, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %146, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !2858, !noalias !2860 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2858, !noalias !2860 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !2858, !noalias !2860 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !2858, !noalias !2860 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !2858, !noalias !2860 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !2858, !noalias !2860 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !2858, !noalias !2860 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2856, !noalias !2861 %148 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %148, align 8, !alias.scope !2856, !noalias !2861 %149 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %149, align 8, !alias.scope !2856, !noalias !2861 %150 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %150, align 8, !alias.scope !2856, !noalias !2861 %151 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %151, align 8, !alias.scope !2856, !noalias !2861 %152 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %152, align 8, !alias.scope !2856, !noalias !2861 %153 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %153, align 8, !alias.scope !2856, !noalias !2861 %154 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %154, align 8, !alias.scope !2856, !noalias !2861 %155 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %156 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %177, %175 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fadd <4 x double> %155, %179 %199 = fsub <4 x double> %155, %179 %200 = fadd <4 x double> %167, %191 %201 = fsub <4 x double> %167, %191 %202 = bitcast <4 x double> %201 to <4 x i64> %203 = fsub <4 x double> %173, %197 %204 = bitcast <4 x double> %203 to <4 x i64> %205 = xor <4 x i64> %202, %206 = bitcast <4 x i64> %205 to <4 x double> %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = xor <4 x i64> %204, %209 = bitcast <4 x i64> %208 to <4 x double> %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = fadd <4 x double> %161, %185 %212 = fsub <4 x double> %161, %185 %213 = fadd <4 x double> %173, %197 %214 = fadd <4 x double> %198, %200 %215 = fadd <4 x double> %211, %213 %216 = fadd <4 x double> %214, %215 store <4 x double> %216, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2853, !noalias !2862 %217 = fsub <4 x double> %214, %215 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !2853, !noalias !2862 %218 = fsub <4 x double> %199, %207 %219 = fsub <4 x double> %212, %210 %220 = bitcast <4 x double> %219 to <4 x i64> %221 = xor <4 x i64> %220, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fadd <4 x double> %219, %223 %225 = fmul <4 x double> %224, %226 = fadd <4 x double> %218, %225 store <4 x double> %226, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2853, !noalias !2862 %227 = fsub <4 x double> %218, %225 store <4 x double> %227, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !2853, !noalias !2862 %228 = fsub <4 x double> %198, %200 %229 = fsub <4 x double> %211, %213 %230 = bitcast <4 x double> %229 to <4 x i64> %231 = fadd <4 x double> %199, %207 %232 = fadd <4 x double> %212, %210 %233 = xor <4 x i64> %230, %234 = bitcast <4 x i64> %233 to <4 x double> %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = fsub <4 x double> %228, %235 store <4 x double> %236, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21.i, align 8, !alias.scope !2853, !noalias !2862 %237 = fadd <4 x double> %228, %235 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !2853, !noalias !2862 %238 = bitcast <4 x double> %232 to <4 x i64> %239 = xor <4 x i64> %238, %240 = bitcast <4 x i64> %239 to <4 x double> %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = fadd <4 x double> %232, %241 %243 = fmul <4 x double> %242, %244 = fsub <4 x double> %231, %243 store <4 x double> %244, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22.i, align 8, !alias.scope !2853, !noalias !2862 %245 = fadd <4 x double> %231, %243 store <4 x double> %245, ptr %_3.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !2853, !noalias !2862 %exitcond.not.i28.i = icmp eq i64 %147, 8 br i1 %exitcond.not.i28.i, label %_ZN4pulp3x862V39vectorize6__impl17he97dcd90256d5e38E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17he97dcd90256d5e38E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2838 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h30fedea6111be0adE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2863 store i64 128, ptr %n.i.i, align 8, !noalias !2863 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2863 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2863 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2863 store ptr null, ptr %_16.i.i, align 8, !noalias !2863 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2863 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2863 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2863 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2863 store ptr null, ptr %_24.i.i, align 8, !noalias !2863 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2863 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2863 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2863 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2863 store ptr null, ptr %_32.i.i, align 8, !noalias !2863 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2863 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2863 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2863 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h949f58a154457380E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2863 store ptr null, ptr %_40.i.i, align 8, !noalias !2863 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h949f58a154457380E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2863 tail call void @llvm.experimental.noalias.scope.decl(metadata !2868) tail call void @llvm.experimental.noalias.scope.decl(metadata !2871) tail call void @llvm.experimental.noalias.scope.decl(metadata !2873) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 36 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 44 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 52 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 60 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 36 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 44 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 52 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 60 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h949f58a154457380E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h949f58a154457380E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2868, !noalias !2875 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2873, !noalias !2876 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2871, !noalias !2877 store <4 x double> %247, ptr %248, align 8, !alias.scope !2871, !noalias !2877 store <4 x double> %249, ptr %250, align 8, !alias.scope !2871, !noalias !2877 store <4 x double> %251, ptr %252, align 8, !alias.scope !2871, !noalias !2877 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !2871, !noalias !2877 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !2871, !noalias !2877 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !2871, !noalias !2877 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !2871, !noalias !2877 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !2871, !noalias !2877 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !2871, !noalias !2877 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !2871, !noalias !2877 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !2871, !noalias !2877 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !2871, !noalias !2877 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !2871, !noalias !2877 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !2871, !noalias !2877 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !2871, !noalias !2877 %exitcond.not.i.i = icmp eq i64 %32, 4 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %iter14.i.i.i.sroa.106.0522.i = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ], [ %284, %bb38.i.i.i.i ] %284 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter14.i.i.i.sroa.106.0522.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2863 %285 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %286 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %287 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %288 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %289 = bitcast <4 x double> %288 to <4 x i64> %290 = xor <4 x i64> %289, %291 = bitcast <4 x i64> %290 to <4 x double> %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %294 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %295 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %296 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %297 = bitcast <4 x double> %296 to <4 x i64> %298 = xor <4 x i64> %297, %299 = bitcast <4 x i64> %298 to <4 x double> %300 = shufflevector <4 x double> %299, <4 x double> poison, <4 x i32> %301 = fadd <4 x double> %285, %287 %302 = fsub <4 x double> %286, %292 %303 = fsub <4 x double> %285, %287 %304 = fadd <4 x double> %286, %292 %305 = fadd <4 x double> %293, %295 %306 = fsub <4 x double> %294, %300 %307 = bitcast <4 x double> %306 to <4 x i64> %308 = xor <4 x i64> %307, %309 = bitcast <4 x i64> %308 to <4 x double> %310 = shufflevector <4 x double> %309, <4 x double> poison, <4 x i32> %311 = fadd <4 x double> %306, %310 %312 = fmul <4 x double> %311, %313 = fsub <4 x double> %293, %295 %314 = bitcast <4 x double> %313 to <4 x i64> %315 = xor <4 x i64> %314, %316 = bitcast <4 x i64> %315 to <4 x double> %317 = shufflevector <4 x double> %316, <4 x double> poison, <4 x i32> %318 = fadd <4 x double> %294, %300 %319 = bitcast <4 x double> %318 to <4 x i64> %320 = xor <4 x i64> %319, %321 = bitcast <4 x i64> %320 to <4 x double> %322 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> %323 = fadd <4 x double> %318, %322 %324 = fmul <4 x double> %323, %325 = fadd <4 x double> %301, %305 %326 = fadd <4 x double> %302, %312 %327 = fsub <4 x double> %303, %317 %328 = fsub <4 x double> %304, %324 %329 = fsub <4 x double> %301, %305 %330 = fsub <4 x double> %302, %312 %331 = fadd <4 x double> %303, %317 %332 = fadd <4 x double> %304, %324 store <4 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !2863 store <4 x double> %326, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !2863 store <4 x double> %327, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !2863 store <4 x double> %328, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !2863 store <4 x double> %329, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !2863 store <4 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !2863 store <4 x double> %331, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !2863 store <4 x double> %332, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !2863 %exitcond.not.i = icmp eq i64 %284, 8 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h4106aa31dd2ec361E.exit, label %bb38.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h4106aa31dd2ec361E.exit: ; preds = %bb38.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2863 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h31582feecbf4a6b8E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2878 store i64 1024, ptr %n.i.i, align 8, !noalias !2878 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2878 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2878 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2878 store ptr null, ptr %_16.i.i, align 8, !noalias !2878 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2878 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2878 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2878 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2878 store ptr null, ptr %_24.i.i, align 8, !noalias !2878 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2878 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2878 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2878 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2878 store ptr null, ptr %_32.i.i, align 8, !noalias !2878 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2878 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2878 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2878 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1705b2dbd667ba9E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2878 store ptr null, ptr %_40.i.i, align 8, !noalias !2878 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1705b2dbd667ba9E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2878 tail call void @llvm.experimental.noalias.scope.decl(metadata !2883) tail call void @llvm.experimental.noalias.scope.decl(metadata !2886) tail call void @llvm.experimental.noalias.scope.decl(metadata !2888) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 288 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 352 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 416 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 480 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1705b2dbd667ba9E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1705b2dbd667ba9E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2883, !noalias !2890 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2888, !noalias !2891 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2886, !noalias !2892 store <4 x double> %247, ptr %248, align 8, !alias.scope !2886, !noalias !2892 store <4 x double> %249, ptr %250, align 8, !alias.scope !2886, !noalias !2892 store <4 x double> %251, ptr %252, align 8, !alias.scope !2886, !noalias !2892 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !2886, !noalias !2892 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !2886, !noalias !2892 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !2886, !noalias !2892 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !2886, !noalias !2892 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !2886, !noalias !2892 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !2886, !noalias !2892 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !2886, !noalias !2892 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !2886, !noalias !2892 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !2886, !noalias !2892 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !2886, !noalias !2892 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !2886, !noalias !2892 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !2886, !noalias !2892 %exitcond.not.i.i = icmp eq i64 %32, 32 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2893) tail call void @llvm.experimental.noalias.scope.decl(metadata !2896) tail call void @llvm.experimental.noalias.scope.decl(metadata !2898) %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %287 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %288 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %289 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %290 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %291 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i %292 = add nuw nsw i64 %iter.sroa.192.06258.i.i, 1 %exitcond.not.i = icmp eq i64 %292, 4 br i1 %exitcond.not.i, label %bb13.i.i.i.i, label %bb46.i.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %iter.sroa.192.06258.i.i = phi i64 [ %292, %bb44.loopexit.i.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.06258.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.06258.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %293 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %294 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %295 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %296 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %297 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %298 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %299 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %300 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %301 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.192.06258.i.i, 4 %308 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %308, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %309 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %310, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %311 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %311, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %312 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %313, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %314 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %314, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %315 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %316, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %317 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %317, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %318 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %319, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %320 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %320, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %321 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %322, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %323 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %323, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %324 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %325, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %326 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %326, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %327 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %328 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %328, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %329 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %329, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %330 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %331 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %331, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %332 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %332, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %333 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %334 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %334, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %335 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %335, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %336 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %337 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %337, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %338 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %338, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %339 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %340 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %340, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %341 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %341, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %342 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %343 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %343, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %344 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %344, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %345 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %346 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %346, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %347 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %347, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %348 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %349 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %349, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %350 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %350, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %351 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %352 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %352, align 8, !alias.scope !2898, !noalias !2900, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %353 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %354 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> zeroinitializer %355 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %356 = shufflevector <4 x double> %348, <4 x double> poison, <4 x i32> zeroinitializer %357 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %358 = shufflevector <4 x double> %345, <4 x double> poison, <4 x i32> zeroinitializer %359 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %360 = shufflevector <4 x double> %342, <4 x double> poison, <4 x i32> zeroinitializer %361 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %362 = shufflevector <4 x double> %339, <4 x double> poison, <4 x i32> zeroinitializer %363 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %364 = shufflevector <4 x double> %336, <4 x double> poison, <4 x i32> zeroinitializer %365 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %366 = shufflevector <4 x double> %333, <4 x double> poison, <4 x i32> zeroinitializer %367 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %368 = shufflevector <4 x double> %330, <4 x double> poison, <4 x i32> zeroinitializer %369 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %370 = shufflevector <4 x double> %327, <4 x double> poison, <4 x i32> zeroinitializer %371 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %372 = shufflevector <4 x double> %324, <4 x double> poison, <4 x i32> zeroinitializer %373 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %374 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> zeroinitializer %375 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %376 = shufflevector <4 x double> %318, <4 x double> poison, <4 x i32> zeroinitializer %377 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %378 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> zeroinitializer %379 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %380 = shufflevector <4 x double> %312, <4 x double> poison, <4 x i32> zeroinitializer %381 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %382 = shufflevector <4 x double> %309, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.06085.i.i = phi i64 [ 0, %bb46.i.i ], [ %383, %bb98.i.i ] %383 = add nuw nsw i64 %iter10.sroa.218.06085.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i47.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i49.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i50.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i51.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i52.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %296, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %295, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %297, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %294, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %299, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %298, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %300, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %293, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %301, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %307, i64 %iter10.sroa.218.06085.i.i %x0.sroa.0.0.copyload.i53.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i, align 8, !alias.scope !2893, !noalias !2901 %x1.sroa.0.0.copyload.i54.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2893, !noalias !2901 %x2.sroa.0.0.copyload.i55.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i, align 8, !alias.scope !2893, !noalias !2901 %x3.sroa.0.0.copyload.i56.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i, align 8, !alias.scope !2893, !noalias !2901 %x4.sroa.0.0.copyload.i57.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i, align 8, !alias.scope !2893, !noalias !2901 %x5.sroa.0.0.copyload.i58.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i, align 8, !alias.scope !2893, !noalias !2901 %x6.sroa.0.0.copyload.i59.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i, align 8, !alias.scope !2893, !noalias !2901 %x7.sroa.0.0.copyload.i60.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i, align 8, !alias.scope !2893, !noalias !2901 %x8.sroa.0.0.copyload.i61.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i, align 8, !alias.scope !2893, !noalias !2901 %x9.sroa.0.0.copyload.i62.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i, align 8, !alias.scope !2893, !noalias !2901 %xa.sroa.0.0.copyload.i63.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i47.i, align 8, !alias.scope !2893, !noalias !2901 %xb.sroa.0.0.copyload.i64.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i, align 8, !alias.scope !2893, !noalias !2901 %xc.sroa.0.0.copyload.i65.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i49.i, align 8, !alias.scope !2893, !noalias !2901 %xd.sroa.0.0.copyload.i66.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i50.i, align 8, !alias.scope !2893, !noalias !2901 %xe.sroa.0.0.copyload.i67.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i51.i, align 8, !alias.scope !2893, !noalias !2901 %xf.sroa.0.0.copyload.i68.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i52.i, align 8, !alias.scope !2893, !noalias !2901 %384 = fadd <4 x double> %x0.sroa.0.0.copyload.i53.i, %x8.sroa.0.0.copyload.i61.i %385 = fsub <4 x double> %x0.sroa.0.0.copyload.i53.i, %x8.sroa.0.0.copyload.i61.i %386 = fadd <4 x double> %x4.sroa.0.0.copyload.i57.i, %xc.sroa.0.0.copyload.i65.i %387 = fsub <4 x double> %x4.sroa.0.0.copyload.i57.i, %xc.sroa.0.0.copyload.i65.i %388 = fadd <4 x double> %x2.sroa.0.0.copyload.i55.i, %xa.sroa.0.0.copyload.i63.i %389 = fsub <4 x double> %x2.sroa.0.0.copyload.i55.i, %xa.sroa.0.0.copyload.i63.i %390 = fadd <4 x double> %x6.sroa.0.0.copyload.i59.i, %xe.sroa.0.0.copyload.i67.i %391 = fsub <4 x double> %x6.sroa.0.0.copyload.i59.i, %xe.sroa.0.0.copyload.i67.i %392 = fadd <4 x double> %x1.sroa.0.0.copyload.i54.i, %x9.sroa.0.0.copyload.i62.i %393 = fsub <4 x double> %x1.sroa.0.0.copyload.i54.i, %x9.sroa.0.0.copyload.i62.i %394 = fadd <4 x double> %x5.sroa.0.0.copyload.i58.i, %xd.sroa.0.0.copyload.i66.i %395 = fsub <4 x double> %x5.sroa.0.0.copyload.i58.i, %xd.sroa.0.0.copyload.i66.i %396 = fadd <4 x double> %x3.sroa.0.0.copyload.i56.i, %xb.sroa.0.0.copyload.i64.i %397 = fsub <4 x double> %x3.sroa.0.0.copyload.i56.i, %xb.sroa.0.0.copyload.i64.i %398 = fadd <4 x double> %x7.sroa.0.0.copyload.i60.i, %xf.sroa.0.0.copyload.i68.i %399 = fsub <4 x double> %x7.sroa.0.0.copyload.i60.i, %xf.sroa.0.0.copyload.i68.i %400 = bitcast <4 x double> %387 to <4 x i64> %401 = bitcast <4 x double> %391 to <4 x i64> %402 = bitcast <4 x double> %395 to <4 x i64> %403 = bitcast <4 x double> %399 to <4 x i64> %404 = xor <4 x i64> %400, %405 = bitcast <4 x i64> %404 to <4 x double> %406 = shufflevector <4 x double> %405, <4 x double> poison, <4 x i32> %407 = xor <4 x i64> %401, %408 = bitcast <4 x i64> %407 to <4 x double> %409 = shufflevector <4 x double> %408, <4 x double> poison, <4 x i32> %410 = xor <4 x i64> %402, %411 = bitcast <4 x i64> %410 to <4 x double> %412 = shufflevector <4 x double> %411, <4 x double> poison, <4 x i32> %413 = xor <4 x i64> %403, %414 = bitcast <4 x i64> %413 to <4 x double> %415 = shufflevector <4 x double> %414, <4 x double> poison, <4 x i32> %416 = fadd <4 x double> %384, %386 %417 = fsub <4 x double> %385, %406 %418 = fsub <4 x double> %384, %386 %419 = fadd <4 x double> %385, %406 %420 = fadd <4 x double> %388, %390 %421 = fsub <4 x double> %389, %409 %422 = fsub <4 x double> %388, %390 %423 = fadd <4 x double> %389, %409 %424 = fadd <4 x double> %392, %394 %425 = fsub <4 x double> %393, %412 %426 = fsub <4 x double> %392, %394 %427 = fadd <4 x double> %393, %412 %428 = fadd <4 x double> %396, %398 %429 = fsub <4 x double> %397, %415 %430 = fsub <4 x double> %396, %398 %431 = fadd <4 x double> %397, %415 %432 = bitcast <4 x double> %421 to <4 x i64> %433 = xor <4 x i64> %432, %434 = bitcast <4 x i64> %433 to <4 x double> %435 = shufflevector <4 x double> %434, <4 x double> poison, <4 x i32> %436 = fadd <4 x double> %421, %435 %437 = fmul <4 x double> %436, %438 = bitcast <4 x double> %422 to <4 x i64> %439 = xor <4 x i64> %438, %440 = bitcast <4 x i64> %439 to <4 x double> %441 = shufflevector <4 x double> %440, <4 x double> poison, <4 x i32> %442 = bitcast <4 x double> %423 to <4 x i64> %443 = xor <4 x i64> %442, %444 = bitcast <4 x i64> %443 to <4 x double> %445 = shufflevector <4 x double> %444, <4 x double> poison, <4 x i32> %446 = fadd <4 x double> %423, %445 %447 = fmul <4 x double> %446, %448 = fadd <4 x double> %416, %420 %449 = fadd <4 x double> %417, %437 %450 = fsub <4 x double> %418, %441 %451 = fsub <4 x double> %419, %447 %452 = fsub <4 x double> %416, %420 %453 = fsub <4 x double> %417, %437 %454 = fadd <4 x double> %418, %441 %455 = fadd <4 x double> %419, %447 %456 = bitcast <4 x double> %429 to <4 x i64> %457 = xor <4 x i64> %456, %458 = bitcast <4 x i64> %457 to <4 x double> %459 = shufflevector <4 x double> %458, <4 x double> poison, <4 x i32> %460 = fadd <4 x double> %429, %459 %461 = fmul <4 x double> %460, %462 = bitcast <4 x double> %430 to <4 x i64> %463 = xor <4 x i64> %462, %464 = bitcast <4 x i64> %463 to <4 x double> %465 = shufflevector <4 x double> %464, <4 x double> poison, <4 x i32> %466 = bitcast <4 x double> %431 to <4 x i64> %467 = xor <4 x i64> %466, %468 = bitcast <4 x i64> %467 to <4 x double> %469 = shufflevector <4 x double> %468, <4 x double> poison, <4 x i32> %470 = fadd <4 x double> %431, %469 %471 = fmul <4 x double> %470, %472 = fadd <4 x double> %424, %428 %473 = fadd <4 x double> %425, %461 %474 = fsub <4 x double> %426, %465 %475 = fsub <4 x double> %427, %471 %476 = fsub <4 x double> %424, %428 %477 = fsub <4 x double> %425, %461 %478 = fadd <4 x double> %426, %465 %479 = fadd <4 x double> %427, %471 %480 = fmul <4 x double> %473, %481 = shufflevector <4 x double> %480, <4 x double> poison, <4 x i32> %482 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %473, <4 x double> %481) #23 %483 = bitcast <4 x double> %474 to <4 x i64> %484 = xor <4 x i64> %483, %485 = bitcast <4 x i64> %484 to <4 x double> %486 = shufflevector <4 x double> %485, <4 x double> poison, <4 x i32> %487 = fmul <4 x double> %475, %488 = shufflevector <4 x double> %487, <4 x double> poison, <4 x i32> %489 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %475, <4 x double> %488) #23 %490 = bitcast <4 x double> %476 to <4 x i64> %491 = xor <4 x i64> %490, %492 = bitcast <4 x i64> %491 to <4 x double> %493 = shufflevector <4 x double> %492, <4 x double> poison, <4 x i32> %494 = fmul <4 x double> %477, %495 = shufflevector <4 x double> %494, <4 x double> poison, <4 x i32> %496 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %477, <4 x double> %495) #23 %497 = bitcast <4 x double> %478 to <4 x i64> %498 = xor <4 x i64> %497, %499 = bitcast <4 x i64> %498 to <4 x double> %500 = shufflevector <4 x double> %499, <4 x double> poison, <4 x i32> %501 = fmul <4 x double> %479, %502 = shufflevector <4 x double> %501, <4 x double> poison, <4 x i32> %503 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %479, <4 x double> %502) #23 %.in6082.i.i = fadd <4 x double> %474, %486 %504 = fmul <4 x double> %.in6082.i.i, %.in.i69.i = fadd <4 x double> %478, %500 %505 = fmul <4 x double> %.in.i69.i, %506 = fadd <4 x double> %448, %472 store <4 x double> %506, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %507 = fadd <4 x double> %482, %449 %508 = shufflevector <4 x double> %507, <4 x double> poison, <4 x i32> %509 = fmul <4 x double> %354, %508 %510 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %353, <4 x double> %507, <4 x double> %509) #23 store <4 x double> %510, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %511 = fadd <4 x double> %450, %504 %512 = shufflevector <4 x double> %511, <4 x double> poison, <4 x i32> %513 = fmul <4 x double> %356, %512 %514 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %355, <4 x double> %511, <4 x double> %513) #23 store <4 x double> %514, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %515 = fadd <4 x double> %489, %451 %516 = shufflevector <4 x double> %515, <4 x double> poison, <4 x i32> %517 = fmul <4 x double> %358, %516 %518 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %357, <4 x double> %515, <4 x double> %517) #23 store <4 x double> %518, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %519 = fsub <4 x double> %452, %493 %520 = shufflevector <4 x double> %519, <4 x double> poison, <4 x i32> %521 = fmul <4 x double> %360, %520 %522 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %359, <4 x double> %519, <4 x double> %521) #23 store <4 x double> %522, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %523 = fsub <4 x double> %453, %496 %524 = shufflevector <4 x double> %523, <4 x double> poison, <4 x i32> %525 = fmul <4 x double> %362, %524 %526 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %361, <4 x double> %523, <4 x double> %525) #23 store <4 x double> %526, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %527 = fsub <4 x double> %454, %505 %528 = shufflevector <4 x double> %527, <4 x double> poison, <4 x i32> %529 = fmul <4 x double> %364, %528 %530 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %363, <4 x double> %527, <4 x double> %529) #23 store <4 x double> %530, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %531 = fsub <4 x double> %455, %503 %532 = shufflevector <4 x double> %531, <4 x double> poison, <4 x i32> %533 = fmul <4 x double> %366, %532 %534 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %365, <4 x double> %531, <4 x double> %533) #23 store <4 x double> %534, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %535 = fsub <4 x double> %448, %472 %536 = shufflevector <4 x double> %535, <4 x double> poison, <4 x i32> %537 = fmul <4 x double> %368, %536 %538 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %367, <4 x double> %535, <4 x double> %537) #23 store <4 x double> %538, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %539 = fsub <4 x double> %449, %482 %540 = shufflevector <4 x double> %539, <4 x double> poison, <4 x i32> %541 = fmul <4 x double> %370, %540 %542 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %369, <4 x double> %539, <4 x double> %541) #23 store <4 x double> %542, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %543 = fsub <4 x double> %450, %504 %544 = shufflevector <4 x double> %543, <4 x double> poison, <4 x i32> %545 = fmul <4 x double> %372, %544 %546 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %371, <4 x double> %543, <4 x double> %545) #23 store <4 x double> %546, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %547 = fsub <4 x double> %451, %489 %548 = shufflevector <4 x double> %547, <4 x double> poison, <4 x i32> %549 = fmul <4 x double> %374, %548 %550 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %373, <4 x double> %547, <4 x double> %549) #23 store <4 x double> %550, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %551 = fadd <4 x double> %452, %493 %552 = shufflevector <4 x double> %551, <4 x double> poison, <4 x i32> %553 = fmul <4 x double> %376, %552 %554 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %375, <4 x double> %551, <4 x double> %553) #23 store <4 x double> %554, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %555 = fadd <4 x double> %496, %453 %556 = shufflevector <4 x double> %555, <4 x double> poison, <4 x i32> %557 = fmul <4 x double> %378, %556 %558 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %377, <4 x double> %555, <4 x double> %557) #23 store <4 x double> %558, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %559 = fadd <4 x double> %454, %505 %560 = shufflevector <4 x double> %559, <4 x double> poison, <4 x i32> %561 = fmul <4 x double> %380, %560 %562 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %379, <4 x double> %559, <4 x double> %561) #23 store <4 x double> %562, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %563 = fadd <4 x double> %503, %455 %564 = shufflevector <4 x double> %563, <4 x double> poison, <4 x i32> %565 = fmul <4 x double> %382, %564 %566 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %381, <4 x double> %563, <4 x double> %565) #23 store <4 x double> %566, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !2896, !noalias !2902 %exitcond.not.i70.i = icmp eq i64 %383, 8 br i1 %exitcond.not.i70.i, label %bb44.loopexit.i.i, label %bb98.i.i bb13.i.i.i.i: ; preds = %bb44.loopexit.i.i, %bb13.i.i.i.i %iter.i.i.i.sroa.22.0182.i = phi i64 [ %567, %bb13.i.i.i.i ], [ 0, %bb44.loopexit.i.i ] %567 = add nuw nsw i64 %iter.i.i.i.sroa.22.0182.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0182.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0182.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0182.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.i.i.i.sroa.22.0182.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2878 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2878 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2878 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !2878 %568 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %569 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %570 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %571 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %572 = bitcast <4 x double> %571 to <4 x i64> %573 = xor <4 x i64> %572, %574 = bitcast <4 x i64> %573 to <4 x double> %575 = shufflevector <4 x double> %574, <4 x double> poison, <4 x i32> %576 = fadd <4 x double> %568, %570 %577 = fsub <4 x double> %569, %575 %578 = fsub <4 x double> %568, %570 %579 = fadd <4 x double> %569, %575 store <4 x double> %576, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2878 store <4 x double> %577, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !2878 store <4 x double> %578, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !2878 store <4 x double> %579, ptr %_3.i.i.i.i.i, align 8, !noalias !2878 %exitcond183.not.i = icmp eq i64 %567, 128 br i1 %exitcond183.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h950f03fc57d5974aE.exit, label %bb13.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h950f03fc57d5974aE.exit: ; preds = %bb13.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2878 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h33f15a68e1ba28ffE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h19ca37024ad7664eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h347e7bab02c6e802E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2e8b7533ed090cd8E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h35c87a89d9ec5218E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2903 store i64 32, ptr %n.i.i, align 8, !noalias !2903 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2903 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2903 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2903 store ptr null, ptr %_16.i.i, align 8, !noalias !2903 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2903 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2903 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2903 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2903 store ptr null, ptr %_24.i.i, align 8, !noalias !2903 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2903 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2903 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2903 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2903 store ptr null, ptr %_32.i.i, align 8, !noalias !2903 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2903 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2903 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2903 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h4d01292e02b59c99E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2903 store ptr null, ptr %_40.i.i, align 8, !noalias !2903 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h4d01292e02b59c99E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2903 tail call void @llvm.experimental.noalias.scope.decl(metadata !2908) tail call void @llvm.experimental.noalias.scope.decl(metadata !2911) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !2911, !noalias !2915 %4 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %5 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = shufflevector <4 x double> %5, <4 x double> poison, <4 x i32> %7 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = fmul <4 x double> %8, %6 %10 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %7, <4 x double> %5, <4 x double> %9) #23 %11 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> %12 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> %13 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !2911, !noalias !2915 %14 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %b.sroa.0.0.copyload.i.1.i %15 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %b.sroa.0.0.copyload.i.1.i %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %18 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %19 = fmul <4 x double> %18, %16 %20 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %17, <4 x double> %15, <4 x double> %19) #23 %21 = shufflevector <4 x double> %14, <4 x double> %20, <4 x i32> %22 = shufflevector <4 x double> %14, <4 x double> %20, <4 x i32> %23 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 %_3.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.i.2.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %a.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !2911, !noalias !2915 %24 = fadd <4 x double> %a.sroa.0.0.copyload.i.2.i, %b.sroa.0.0.copyload.i.2.i %25 = fsub <4 x double> %a.sroa.0.0.copyload.i.2.i, %b.sroa.0.0.copyload.i.2.i %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %28 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %29 = fmul <4 x double> %28, %26 %30 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %27, <4 x double> %25, <4 x double> %29) #23 %31 = shufflevector <4 x double> %24, <4 x double> %30, <4 x i32> %32 = shufflevector <4 x double> %24, <4 x double> %30, <4 x i32> %33 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 1 %_3.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.i.3.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %a.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !2911, !noalias !2915 %34 = fadd <4 x double> %a.sroa.0.0.copyload.i.3.i, %b.sroa.0.0.copyload.i.3.i %35 = fsub <4 x double> %a.sroa.0.0.copyload.i.3.i, %b.sroa.0.0.copyload.i.3.i %36 = shufflevector <4 x double> %35, <4 x double> poison, <4 x i32> %37 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %39 = fmul <4 x double> %38, %36 %40 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %35, <4 x double> %39) #23 %41 = shufflevector <4 x double> %34, <4 x double> %40, <4 x i32> %42 = shufflevector <4 x double> %34, <4 x double> %40, <4 x i32> %43 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 1 %_3.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.i.4.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 4 %_3.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %a.sroa.0.0.copyload.i.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.4.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.4.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.4.i, align 8, !alias.scope !2911, !noalias !2915 %44 = fadd <4 x double> %a.sroa.0.0.copyload.i.4.i, %b.sroa.0.0.copyload.i.4.i %45 = fsub <4 x double> %a.sroa.0.0.copyload.i.4.i, %b.sroa.0.0.copyload.i.4.i %46 = shufflevector <4 x double> %45, <4 x double> poison, <4 x i32> %47 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.4.i, <4 x double> poison, <4 x i32> %48 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.4.i, <4 x double> poison, <4 x i32> %49 = fmul <4 x double> %48, %46 %50 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %47, <4 x double> %45, <4 x double> %49) #23 %51 = shufflevector <4 x double> %44, <4 x double> %50, <4 x i32> %52 = shufflevector <4 x double> %44, <4 x double> %50, <4 x i32> %53 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 4, i64 1 %_3.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.i.5.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 5 %_3.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %a.sroa.0.0.copyload.i.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.5.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.5.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.5.i, align 8, !alias.scope !2911, !noalias !2915 %54 = fadd <4 x double> %a.sroa.0.0.copyload.i.5.i, %b.sroa.0.0.copyload.i.5.i %55 = fsub <4 x double> %a.sroa.0.0.copyload.i.5.i, %b.sroa.0.0.copyload.i.5.i %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.5.i, <4 x double> poison, <4 x i32> %58 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.5.i, <4 x double> poison, <4 x i32> %59 = fmul <4 x double> %58, %56 %60 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %57, <4 x double> %55, <4 x double> %59) #23 %61 = shufflevector <4 x double> %54, <4 x double> %60, <4 x i32> %62 = shufflevector <4 x double> %54, <4 x double> %60, <4 x i32> %63 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 5, i64 1 %_3.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.i.6.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 6 %_3.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %a.sroa.0.0.copyload.i.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.6.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.6.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.6.i, align 8, !alias.scope !2911, !noalias !2915 %64 = fadd <4 x double> %a.sroa.0.0.copyload.i.6.i, %b.sroa.0.0.copyload.i.6.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.i.6.i, %b.sroa.0.0.copyload.i.6.i %66 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.6.i, <4 x double> poison, <4 x i32> %68 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.6.i, <4 x double> poison, <4 x i32> %69 = fmul <4 x double> %68, %66 %70 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %67, <4 x double> %65, <4 x double> %69) #23 %71 = shufflevector <4 x double> %64, <4 x double> %70, <4 x i32> %72 = shufflevector <4 x double> %64, <4 x double> %70, <4 x i32> %73 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 6, i64 1 %_3.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.i.7.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 7 %_3.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %a.sroa.0.0.copyload.i.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.7.i, align 8, !alias.scope !2908, !noalias !2913 %b.sroa.0.0.copyload.i.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.7.i, align 8, !alias.scope !2908, !noalias !2913 %w1.sroa.0.0.copyload.i.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.7.i, align 8, !alias.scope !2911, !noalias !2915 %74 = fadd <4 x double> %a.sroa.0.0.copyload.i.7.i, %b.sroa.0.0.copyload.i.7.i %75 = fsub <4 x double> %a.sroa.0.0.copyload.i.7.i, %b.sroa.0.0.copyload.i.7.i %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.7.i, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.7.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %78, %76 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %75, <4 x double> %79) #23 %81 = shufflevector <4 x double> %74, <4 x double> %80, <4 x i32> %82 = shufflevector <4 x double> %74, <4 x double> %80, <4 x i32> %83 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 7, i64 1 %84 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %84, align 8, !noalias !2903, !noundef !3 %85 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %85, align 8, !noalias !2903, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %86 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %87 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %88 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %89 = fadd <4 x double> %11, %51 %90 = fsub <4 x double> %11, %51 %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %88 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %90, <4 x double> %92) #23 %94 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.us.i.1.i = load double, ptr %94, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %95 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %95, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %96 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %97 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <4 x double> %96, <4 x double> poison, <4 x i32> zeroinitializer %99 = fadd <4 x double> %12, %52 %100 = fsub <4 x double> %12, %52 %101 = shufflevector <4 x double> %100, <4 x double> poison, <4 x i32> %102 = fmul <4 x double> %101, %98 %103 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %97, <4 x double> %100, <4 x double> %102) #23 %104 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.2.i = load double, ptr %104, align 8, !noalias !2903, !noundef !3 %105 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.2.i = load double, ptr %105, align 8, !noalias !2903, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w1.0.us.i.2.i, i64 0 %106 = insertelement <4 x double> poison, double %w1.1.us.i.2.i, i64 0 %107 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <4 x double> %106, <4 x double> poison, <4 x i32> zeroinitializer %109 = fadd <4 x double> %21, %61 %110 = fsub <4 x double> %21, %61 %111 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> %112 = fmul <4 x double> %111, %108 %113 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %110, <4 x double> %112) #23 %114 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1 %w1.0.us.i.3.i = load double, ptr %114, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %115 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1, i32 1 %w1.1.us.i.3.i = load double, ptr %115, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w1.0.us.i.3.i, i64 0 %116 = insertelement <4 x double> poison, double %w1.1.us.i.3.i, i64 0 %117 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> zeroinitializer %119 = fadd <4 x double> %22, %62 %120 = fsub <4 x double> %22, %62 %121 = shufflevector <4 x double> %120, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %121, %118 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %117, <4 x double> %120, <4 x double> %122) #23 %124 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.us.i.4.i = load double, ptr %124, align 8, !noalias !2903, !noundef !3 %125 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.us.i.4.i = load double, ptr %125, align 8, !noalias !2903, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.4.i = insertelement <2 x double> poison, double %w1.0.us.i.4.i, i64 0 %126 = insertelement <4 x double> poison, double %w1.1.us.i.4.i, i64 0 %127 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.4.i, <2 x double> poison, <4 x i32> zeroinitializer %128 = shufflevector <4 x double> %126, <4 x double> poison, <4 x i32> zeroinitializer %129 = fadd <4 x double> %31, %71 %130 = fsub <4 x double> %31, %71 %131 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> %132 = fmul <4 x double> %131, %128 %133 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %130, <4 x double> %132) #23 %134 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 10, i64 1 %w1.0.us.i.5.i = load double, ptr %134, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %135 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 10, i64 1, i32 1 %w1.1.us.i.5.i = load double, ptr %135, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.5.i = insertelement <2 x double> poison, double %w1.0.us.i.5.i, i64 0 %136 = insertelement <4 x double> poison, double %w1.1.us.i.5.i, i64 0 %137 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.5.i, <2 x double> poison, <4 x i32> zeroinitializer %138 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> zeroinitializer %139 = fadd <4 x double> %32, %72 %140 = fsub <4 x double> %32, %72 %141 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> %142 = fmul <4 x double> %141, %138 %143 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %140, <4 x double> %142) #23 %144 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.us.i.6.i = load double, ptr %144, align 8, !noalias !2903, !noundef !3 %145 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.us.i.6.i = load double, ptr %145, align 8, !noalias !2903, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.6.i = insertelement <2 x double> poison, double %w1.0.us.i.6.i, i64 0 %146 = insertelement <4 x double> poison, double %w1.1.us.i.6.i, i64 0 %147 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.6.i, <2 x double> poison, <4 x i32> zeroinitializer %148 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %149 = fadd <4 x double> %41, %81 %150 = fsub <4 x double> %41, %81 %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = fmul <4 x double> %151, %148 %153 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %147, <4 x double> %150, <4 x double> %152) #23 %154 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.us.i.7.i = load double, ptr %154, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %155 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.us.i.7.i = load double, ptr %155, align 8, !alias.scope !2916, !noalias !2919, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.7.i = insertelement <2 x double> poison, double %w1.0.us.i.7.i, i64 0 %156 = insertelement <4 x double> poison, double %w1.1.us.i.7.i, i64 0 %157 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.7.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> zeroinitializer %159 = fadd <4 x double> %42, %82 %160 = fsub <4 x double> %42, %82 %161 = shufflevector <4 x double> %160, <4 x double> poison, <4 x i32> %162 = fmul <4 x double> %161, %158 %163 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %160, <4 x double> %162) #23 %164 = fadd <4 x double> %89, %129 store <4 x double> %164, ptr %scratch.0, align 8, !alias.scope !2922, !noalias !2925 %165 = fsub <4 x double> %89, %129 %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = fmul <4 x double> %166, %88 %168 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %165, <4 x double> %167) #23 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2922, !noalias !2925 %169 = fadd <4 x double> %93, %133 store <4 x double> %169, ptr %13, align 8, !alias.scope !2922, !noalias !2925 %170 = fsub <4 x double> %93, %133 %171 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %88, %171 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %170, <4 x double> %172) #23 store <4 x double> %173, ptr %23, align 8, !alias.scope !2922, !noalias !2925 %174 = fadd <4 x double> %99, %139 store <4 x double> %174, ptr %_3.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2922, !noalias !2925 %175 = fsub <4 x double> %99, %139 %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %176, %108 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %175, <4 x double> %177) #23 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2922, !noalias !2925 %179 = fadd <4 x double> %103, %143 store <4 x double> %179, ptr %33, align 8, !alias.scope !2922, !noalias !2925 %180 = fsub <4 x double> %103, %143 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %108, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %180, <4 x double> %182) #23 store <4 x double> %183, ptr %43, align 8, !alias.scope !2922, !noalias !2925 %184 = fadd <4 x double> %109, %149 store <4 x double> %184, ptr %_3.i.i.i.i.i.i.i.4.i, align 8, !alias.scope !2922, !noalias !2925 %185 = fsub <4 x double> %109, %149 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %128 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %185, <4 x double> %187) #23 store <4 x double> %188, ptr %_3.i.i.i.i.i.i.i.5.i, align 8, !alias.scope !2922, !noalias !2925 %189 = fadd <4 x double> %113, %153 store <4 x double> %189, ptr %53, align 8, !alias.scope !2922, !noalias !2925 %190 = fsub <4 x double> %113, %153 %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %192 = fmul <4 x double> %128, %191 %193 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %190, <4 x double> %192) #23 store <4 x double> %193, ptr %63, align 8, !alias.scope !2922, !noalias !2925 %194 = fadd <4 x double> %119, %159 store <4 x double> %194, ptr %_3.i.i.i.i.i.i.i.6.i, align 8, !alias.scope !2922, !noalias !2925 %195 = fsub <4 x double> %119, %159 %196 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %196, %148 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %147, <4 x double> %195, <4 x double> %197) #23 store <4 x double> %198, ptr %_3.i.i.i.i.i.i.i.7.i, align 8, !alias.scope !2922, !noalias !2925 %199 = fadd <4 x double> %123, %163 store <4 x double> %199, ptr %73, align 8, !alias.scope !2922, !noalias !2925 %200 = fsub <4 x double> %123, %163 %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %148, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %147, <4 x double> %200, <4 x double> %202) #23 store <4 x double> %203, ptr %83, align 8, !alias.scope !2922, !noalias !2925 %204 = fadd <4 x double> %164, %184 %205 = fsub <4 x double> %164, %184 %206 = shufflevector <4 x double> %205, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %206, %88 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %205, <4 x double> %207) #23 %209 = fadd <4 x double> %169, %189 %210 = fsub <4 x double> %169, %189 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %88, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %210, <4 x double> %212) #23 %214 = fadd <4 x double> %168, %188 %215 = fsub <4 x double> %168, %188 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %88, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %215, <4 x double> %217) #23 %219 = fadd <4 x double> %173, %193 %220 = fsub <4 x double> %173, %193 %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %88, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %220, <4 x double> %222) #23 %224 = fadd <4 x double> %174, %194 %225 = fsub <4 x double> %174, %194 %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %226, %128 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %225, <4 x double> %227) #23 %229 = fadd <4 x double> %179, %199 %230 = fsub <4 x double> %179, %199 %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %128, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %230, <4 x double> %232) #23 %234 = fadd <4 x double> %178, %198 %235 = fsub <4 x double> %178, %198 %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %128, %236 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %235, <4 x double> %237) #23 %239 = fadd <4 x double> %183, %203 %240 = fsub <4 x double> %183, %203 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = fmul <4 x double> %128, %241 %243 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %240, <4 x double> %242) #23 %244 = fadd <4 x double> %204, %224 %245 = fsub <4 x double> %204, %224 store <4 x double> %244, ptr %buf.0, align 8, !noalias !2903 store <4 x double> %245, ptr %2, align 8, !noalias !2903 %246 = fadd <4 x double> %209, %229 %247 = fsub <4 x double> %209, %229 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2903 store <4 x double> %247, ptr %_3.i2.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !2903 %248 = fadd <4 x double> %214, %234 %249 = fsub <4 x double> %214, %234 store <4 x double> %248, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2903 store <4 x double> %249, ptr %_3.i2.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !2903 %250 = fadd <4 x double> %219, %239 %251 = fsub <4 x double> %219, %239 store <4 x double> %250, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2903 store <4 x double> %251, ptr %_3.i2.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !2903 %252 = fadd <4 x double> %208, %228 %253 = fsub <4 x double> %208, %228 store <4 x double> %252, ptr %_3.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !2903 store <4 x double> %253, ptr %_3.i2.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !2903 %254 = fadd <4 x double> %213, %233 %255 = fsub <4 x double> %213, %233 store <4 x double> %254, ptr %_3.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !2903 store <4 x double> %255, ptr %_3.i2.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !2903 %256 = fadd <4 x double> %218, %238 %257 = fsub <4 x double> %218, %238 store <4 x double> %256, ptr %_3.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !2903 store <4 x double> %257, ptr %_3.i2.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !2903 %258 = fadd <4 x double> %223, %243 %259 = fsub <4 x double> %223, %243 store <4 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !2903 store <4 x double> %259, ptr %_3.i2.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !2903 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2903 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h368521677895aa3eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h7e12e8f71f53d5dcE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h37203a4d7dc0c6b1E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2928 store i64 128, ptr %n.i, align 8, !noalias !2928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2928 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2928 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2928 store ptr null, ptr %_16.i, align 8, !noalias !2928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2928 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2928 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2928 store ptr null, ptr %_24.i, align 8, !noalias !2928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2928 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2928 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2928 store ptr null, ptr %_32.i, align 8, !noalias !2928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2928 store i64 %w.1, ptr %_34.i, align 8, !noalias !2928 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2928 store ptr null, ptr %_40.i, align 8, !noalias !2928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2928 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !2928 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !2928 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !2928 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !2928 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !2928 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !2928 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !2928 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !2928 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !2928 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !2928 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fsub <4 x double> %20, %25 %29 = fadd <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fadd <4 x double> %20, %25 %41 = fsub <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !2928 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 28 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !2931 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !2928, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !2928, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !2928, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !2928, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !2928, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !2928, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 114 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 113 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 115 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2928 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2928 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2928 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !2928 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !2928 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fsub <2 x double> %69, %71 %73 = fadd <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !2928 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !2928 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !2928 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 93 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !2928, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !2928, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !2928, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !2928, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !2928, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !2928, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 118 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 117 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 119 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2928 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2928 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !2928 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2928 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !2928 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fsub <2 x double> %114, %116 %118 = fadd <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !2928 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !2928 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !2928 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 94 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !2928, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !2928, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !2928, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !2928, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !2928, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !2928, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2928 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2928 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !2928 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !2928 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !2928 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fsub <2 x double> %159, %161 %163 = fadd <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !2928 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !2928 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !2928 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 95 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !2928, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !2928, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !2928, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !2928, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !2928, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !2928, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2928 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2928 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !2928 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !2928 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !2928 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fsub <2 x double> %204, %206 %208 = fadd <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !2928 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !2928 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !2928 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !2932 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !2932 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !2932 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !2932 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !2932 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !2932 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !2932 %295 = fsub <4 x double> %277, %282 %296 = fadd <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !2932 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !2932 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !2932 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !2932 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !2932 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !2932 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !2932 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !2932 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !2932 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !2932 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !2932 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !2932 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !2932 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !2932 %327 = fadd <4 x double> %277, %282 %328 = fsub <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !2932 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !2932 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !2932 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !2932 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !2932 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !2932 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !2932 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !2932 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !2932 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !2932 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !2932 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !2932 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !2932 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !2932 %387 = fsub <4 x double> %369, %374 %388 = fadd <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !2932 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !2932 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !2932 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !2932 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !2932 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !2932 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !2932 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !2932 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !2932 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !2932 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !2932 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !2932 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !2932 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !2932 %419 = fadd <4 x double> %369, %374 %420 = fsub <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !2932 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !2932 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !2932 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !2932 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !2932 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !2932 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !2932 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !2932 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !2932 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !2932 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !2932 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !2932 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !2932 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !2932 %479 = fsub <4 x double> %461, %466 %480 = fadd <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !2932 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !2932 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !2932 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !2932 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !2932 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !2932 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !2932 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !2932 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !2932 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !2932 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !2932 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !2932 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !2932 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !2932 %511 = fadd <4 x double> %461, %466 %512 = fsub <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !2932 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !2932 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !2932 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !2932 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !2932 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !2932 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !2932 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !2932 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !2932 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !2932 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !2932 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !2932 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !2932 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !2932 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !2932 %571 = fsub <4 x double> %553, %558 %572 = fadd <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !2932 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !2932 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !2932 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !2932 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !2932 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !2932 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !2932 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !2932 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !2932 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !2932 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !2932 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !2932 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !2932 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !2932 %603 = fadd <4 x double> %553, %558 %604 = fsub <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !2932 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !2932 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !2932 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !2932 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !2932 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !2932 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !2932 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 8 br i1 %619, label %vector.body67, label %vector.body20, !llvm.loop !2935 vector.body67: ; preds = %vector.body20 %620 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i90.i = load double, ptr %620, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %621 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i89.i = load double, ptr %621, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i162.i = fneg double %w3.1.i.i.i90.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i88.i = load double, ptr %622, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %623 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i87.i = load double, ptr %623, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i157.i = fneg double %w2.1.i.i.i88.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %624 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i86.i = load double, ptr %624, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %625 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i85.i = load double, ptr %625, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i152.i = fneg double %w1.1.i.i.i86.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %626 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %627 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec69 = load <8 x double>, ptr %buf.0, align 8, !noalias !2928 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %1, align 8, !noalias !2928 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %0, align 8, !noalias !2928 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %2, align 8, !noalias !2928 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %628 = fadd <4 x double> %strided.vec70, %strided.vec76 %629 = fadd <4 x double> %strided.vec71, %strided.vec77 %630 = fsub <4 x double> %strided.vec70, %strided.vec76 %631 = fsub <4 x double> %strided.vec71, %strided.vec77 %632 = fadd <4 x double> %strided.vec73, %strided.vec79 %633 = fadd <4 x double> %strided.vec74, %strided.vec80 %634 = fsub <4 x double> %strided.vec73, %strided.vec79 %635 = fsub <4 x double> %strided.vec74, %strided.vec80 %636 = fadd <4 x double> %628, %632 %637 = fadd <4 x double> %629, %633 %interleaved.vec81 = shufflevector <4 x double> %636, <4 x double> %637, <8 x i32> store <8 x double> %interleaved.vec81, ptr %scratch.0, align 8, !noalias !2928 %638 = fsub <4 x double> %630, %635 %639 = fadd <4 x double> %631, %634 %640 = fmul <4 x double> %639, %broadcast.splat %641 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %638, <4 x double> %640) %642 = fmul <4 x double> %broadcast.splat85, %638 %643 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %639, <4 x double> %642) %interleaved.vec86 = shufflevector <4 x double> %641, <4 x double> %643, <8 x i32> store <8 x double> %interleaved.vec86, ptr %627, align 8, !noalias !2928 %644 = fsub <4 x double> %628, %632 %645 = fsub <4 x double> %629, %633 %646 = fmul <4 x double> %645, %broadcast.splat88 %647 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %644, <4 x double> %646) %648 = fmul <4 x double> %broadcast.splat92, %644 %649 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %645, <4 x double> %648) %interleaved.vec93 = shufflevector <4 x double> %647, <4 x double> %649, <8 x i32> store <8 x double> %interleaved.vec93, ptr %234, align 8, !noalias !2928 %650 = fadd <4 x double> %630, %635 %651 = fsub <4 x double> %631, %634 %652 = fmul <4 x double> %651, %broadcast.splat95 %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %650, <4 x double> %652) %654 = fmul <4 x double> %broadcast.splat99, %650 %655 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %651, <4 x double> %654) %interleaved.vec100 = shufflevector <4 x double> %653, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec100, ptr %626, align 8, !noalias !2928 %656 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %657 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %658 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %659 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %wide.vec69.1 = load <8 x double>, ptr %656, align 8, !noalias !2928 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %657, align 8, !noalias !2928 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %658, align 8, !noalias !2928 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %659, align 8, !noalias !2928 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %660 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %661 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %662 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %663 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %664 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %665 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %666 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %667 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %668 = fadd <4 x double> %660, %664 %669 = fadd <4 x double> %661, %665 %670 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %668, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %670, align 8, !noalias !2928 %671 = fsub <4 x double> %662, %667 %672 = fadd <4 x double> %663, %666 %673 = fmul <4 x double> %672, %broadcast.splat %674 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %671, <4 x double> %673) %675 = fmul <4 x double> %broadcast.splat85, %671 %676 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %672, <4 x double> %675) %677 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %674, <4 x double> %676, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %677, align 8, !noalias !2928 %678 = fsub <4 x double> %660, %664 %679 = fsub <4 x double> %661, %665 %680 = fmul <4 x double> %679, %broadcast.splat88 %681 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %678, <4 x double> %680) %682 = fmul <4 x double> %broadcast.splat92, %678 %683 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %679, <4 x double> %682) %684 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %681, <4 x double> %683, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %684, align 8, !noalias !2928 %685 = fadd <4 x double> %662, %667 %686 = fsub <4 x double> %663, %666 %687 = fmul <4 x double> %686, %broadcast.splat95 %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %685, <4 x double> %687) %689 = fmul <4 x double> %broadcast.splat99, %685 %690 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %686, <4 x double> %689) %691 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %688, <4 x double> %690, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %691, align 8, !noalias !2928 %692 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %693 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %694 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %695 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %wide.vec69.2 = load <8 x double>, ptr %692, align 8, !noalias !2928 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %693, align 8, !noalias !2928 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %694, align 8, !noalias !2928 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %695, align 8, !noalias !2928 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %696 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %697 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %698 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %699 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %700 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %701 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %702 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %703 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %704 = fadd <4 x double> %696, %700 %705 = fadd <4 x double> %697, %701 %706 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %704, <4 x double> %705, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %706, align 8, !noalias !2928 %707 = fsub <4 x double> %698, %703 %708 = fadd <4 x double> %699, %702 %709 = fmul <4 x double> %708, %broadcast.splat %710 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %707, <4 x double> %709) %711 = fmul <4 x double> %broadcast.splat85, %707 %712 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %708, <4 x double> %711) %713 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %710, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %713, align 8, !noalias !2928 %714 = fsub <4 x double> %696, %700 %715 = fsub <4 x double> %697, %701 %716 = fmul <4 x double> %715, %broadcast.splat88 %717 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %714, <4 x double> %716) %718 = fmul <4 x double> %broadcast.splat92, %714 %719 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %715, <4 x double> %718) %720 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %717, <4 x double> %719, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %720, align 8, !noalias !2928 %721 = fadd <4 x double> %698, %703 %722 = fsub <4 x double> %699, %702 %723 = fmul <4 x double> %722, %broadcast.splat95 %724 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %721, <4 x double> %723) %725 = fmul <4 x double> %broadcast.splat99, %721 %726 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %722, <4 x double> %725) %727 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %724, <4 x double> %726, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %727, align 8, !noalias !2928 %728 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %729 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %730 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %731 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %wide.vec69.3 = load <8 x double>, ptr %728, align 8, !noalias !2928 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %729, align 8, !noalias !2928 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %730, align 8, !noalias !2928 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %731, align 8, !noalias !2928 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %732 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %733 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %734 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %735 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %736 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %737 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %738 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %739 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %740 = fadd <4 x double> %732, %736 %741 = fadd <4 x double> %733, %737 %742 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %740, <4 x double> %741, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %742, align 8, !noalias !2928 %743 = fsub <4 x double> %734, %739 %744 = fadd <4 x double> %735, %738 %745 = fmul <4 x double> %744, %broadcast.splat %746 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %743, <4 x double> %745) %747 = fmul <4 x double> %broadcast.splat85, %743 %748 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %744, <4 x double> %747) %749 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %746, <4 x double> %748, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %749, align 8, !noalias !2928 %750 = fsub <4 x double> %732, %736 %751 = fsub <4 x double> %733, %737 %752 = fmul <4 x double> %751, %broadcast.splat88 %753 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %750, <4 x double> %752) %754 = fmul <4 x double> %broadcast.splat92, %750 %755 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %751, <4 x double> %754) %756 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %753, <4 x double> %755, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %756, align 8, !noalias !2928 %757 = fadd <4 x double> %734, %739 %758 = fsub <4 x double> %735, %738 %759 = fmul <4 x double> %758, %broadcast.splat95 %760 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %757, <4 x double> %759) %761 = fmul <4 x double> %broadcast.splat99, %757 %762 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %758, <4 x double> %761) %763 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %760, <4 x double> %762, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %763, align 8, !noalias !2928 %764 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.i.i.i90.i.1 = load double, ptr %764, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i.1, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer %765 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.i.i.i89.i.1 = load double, ptr %765, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i.1, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i162.i.1 = fneg double %w3.1.i.i.i90.i.1 %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i.1, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %766 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.i.i.i88.i.1 = load double, ptr %766, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i.1, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %767 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.i.i.i87.i.1 = load double, ptr %767, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i.1, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i157.i.1 = fneg double %w2.1.i.i.i88.i.1 %broadcast.splatinsert128 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i.1, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %768 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i86.i.1 = load double, ptr %768, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i.1, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %769 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i85.i.1 = load double, ptr %769, align 8, !noalias !2928, !noundef !3 %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i.1, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i152.i.1 = fneg double %w1.1.i.i.i86.i.1 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i.1, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %770 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %771 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %772 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i702.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i.i.i697.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %data.i5.i.i.i.i.i.i.i.i.i.i.i692.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.i.i.i.i687.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec108 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i687.1, align 8, !noalias !2928 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i692.1, align 8, !noalias !2928 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i697.1, align 8, !noalias !2928 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i702.1, align 8, !noalias !2928 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %773 = fadd <4 x double> %strided.vec109, %strided.vec115 %774 = fadd <4 x double> %strided.vec110, %strided.vec116 %775 = fsub <4 x double> %strided.vec109, %strided.vec115 %776 = fsub <4 x double> %strided.vec110, %strided.vec116 %777 = fadd <4 x double> %strided.vec112, %strided.vec118 %778 = fadd <4 x double> %strided.vec113, %strided.vec119 %779 = fsub <4 x double> %strided.vec112, %strided.vec118 %780 = fsub <4 x double> %strided.vec113, %strided.vec119 %781 = fadd <4 x double> %773, %777 %782 = fadd <4 x double> %774, %778 %interleaved.vec120 = shufflevector <4 x double> %781, <4 x double> %782, <8 x i32> store <8 x double> %interleaved.vec120, ptr %233, align 8, !noalias !2928 %783 = fsub <4 x double> %775, %780 %784 = fadd <4 x double> %776, %779 %785 = fmul <4 x double> %784, %broadcast.splat122 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %783, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat126, %783 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %784, <4 x double> %787) %interleaved.vec127 = shufflevector <4 x double> %786, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec127, ptr %771, align 8, !noalias !2928 %789 = fsub <4 x double> %773, %777 %790 = fsub <4 x double> %774, %778 %791 = fmul <4 x double> %790, %broadcast.splat129 %792 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %789, <4 x double> %791) %793 = fmul <4 x double> %broadcast.splat133, %789 %794 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %790, <4 x double> %793) %interleaved.vec134 = shufflevector <4 x double> %792, <4 x double> %794, <8 x i32> store <8 x double> %interleaved.vec134, ptr %772, align 8, !noalias !2928 %795 = fadd <4 x double> %775, %780 %796 = fsub <4 x double> %776, %779 %797 = fmul <4 x double> %796, %broadcast.splat136 %798 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %795, <4 x double> %797) %799 = fmul <4 x double> %broadcast.splat140, %795 %800 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %796, <4 x double> %799) %interleaved.vec141 = shufflevector <4 x double> %798, <4 x double> %800, <8 x i32> store <8 x double> %interleaved.vec141, ptr %770, align 8, !noalias !2928 %801 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %802 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %803 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %804 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %wide.vec108.1 = load <8 x double>, ptr %801, align 8, !noalias !2928 %strided.vec109.1 = shufflevector <8 x double> %wide.vec108.1, <8 x double> poison, <4 x i32> %strided.vec110.1 = shufflevector <8 x double> %wide.vec108.1, <8 x double> poison, <4 x i32> %wide.vec111.1 = load <8 x double>, ptr %802, align 8, !noalias !2928 %strided.vec112.1 = shufflevector <8 x double> %wide.vec111.1, <8 x double> poison, <4 x i32> %strided.vec113.1 = shufflevector <8 x double> %wide.vec111.1, <8 x double> poison, <4 x i32> %wide.vec114.1 = load <8 x double>, ptr %803, align 8, !noalias !2928 %strided.vec115.1 = shufflevector <8 x double> %wide.vec114.1, <8 x double> poison, <4 x i32> %strided.vec116.1 = shufflevector <8 x double> %wide.vec114.1, <8 x double> poison, <4 x i32> %wide.vec117.1 = load <8 x double>, ptr %804, align 8, !noalias !2928 %strided.vec118.1 = shufflevector <8 x double> %wide.vec117.1, <8 x double> poison, <4 x i32> %strided.vec119.1 = shufflevector <8 x double> %wide.vec117.1, <8 x double> poison, <4 x i32> %805 = fadd <4 x double> %strided.vec109.1, %strided.vec115.1 %806 = fadd <4 x double> %strided.vec110.1, %strided.vec116.1 %807 = fsub <4 x double> %strided.vec109.1, %strided.vec115.1 %808 = fsub <4 x double> %strided.vec110.1, %strided.vec116.1 %809 = fadd <4 x double> %strided.vec112.1, %strided.vec118.1 %810 = fadd <4 x double> %strided.vec113.1, %strided.vec119.1 %811 = fsub <4 x double> %strided.vec112.1, %strided.vec118.1 %812 = fsub <4 x double> %strided.vec113.1, %strided.vec119.1 %813 = fadd <4 x double> %805, %809 %814 = fadd <4 x double> %806, %810 %815 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec120.1 = shufflevector <4 x double> %813, <4 x double> %814, <8 x i32> store <8 x double> %interleaved.vec120.1, ptr %815, align 8, !noalias !2928 %816 = fsub <4 x double> %807, %812 %817 = fadd <4 x double> %808, %811 %818 = fmul <4 x double> %817, %broadcast.splat122 %819 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %816, <4 x double> %818) %820 = fmul <4 x double> %broadcast.splat126, %816 %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %817, <4 x double> %820) %822 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec127.1 = shufflevector <4 x double> %819, <4 x double> %821, <8 x i32> store <8 x double> %interleaved.vec127.1, ptr %822, align 8, !noalias !2928 %823 = fsub <4 x double> %805, %809 %824 = fsub <4 x double> %806, %810 %825 = fmul <4 x double> %824, %broadcast.splat129 %826 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %823, <4 x double> %825) %827 = fmul <4 x double> %broadcast.splat133, %823 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %824, <4 x double> %827) %829 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec134.1 = shufflevector <4 x double> %826, <4 x double> %828, <8 x i32> store <8 x double> %interleaved.vec134.1, ptr %829, align 8, !noalias !2928 %830 = fadd <4 x double> %807, %812 %831 = fsub <4 x double> %808, %811 %832 = fmul <4 x double> %831, %broadcast.splat136 %833 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %830, <4 x double> %832) %834 = fmul <4 x double> %broadcast.splat140, %830 %835 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %831, <4 x double> %834) %836 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec141.1 = shufflevector <4 x double> %833, <4 x double> %835, <8 x i32> store <8 x double> %interleaved.vec141.1, ptr %836, align 8, !noalias !2928 %837 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %838 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %839 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %840 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %wide.vec108.2 = load <8 x double>, ptr %837, align 8, !noalias !2928 %strided.vec109.2 = shufflevector <8 x double> %wide.vec108.2, <8 x double> poison, <4 x i32> %strided.vec110.2 = shufflevector <8 x double> %wide.vec108.2, <8 x double> poison, <4 x i32> %wide.vec111.2 = load <8 x double>, ptr %838, align 8, !noalias !2928 %strided.vec112.2 = shufflevector <8 x double> %wide.vec111.2, <8 x double> poison, <4 x i32> %strided.vec113.2 = shufflevector <8 x double> %wide.vec111.2, <8 x double> poison, <4 x i32> %wide.vec114.2 = load <8 x double>, ptr %839, align 8, !noalias !2928 %strided.vec115.2 = shufflevector <8 x double> %wide.vec114.2, <8 x double> poison, <4 x i32> %strided.vec116.2 = shufflevector <8 x double> %wide.vec114.2, <8 x double> poison, <4 x i32> %wide.vec117.2 = load <8 x double>, ptr %840, align 8, !noalias !2928 %strided.vec118.2 = shufflevector <8 x double> %wide.vec117.2, <8 x double> poison, <4 x i32> %strided.vec119.2 = shufflevector <8 x double> %wide.vec117.2, <8 x double> poison, <4 x i32> %841 = fadd <4 x double> %strided.vec109.2, %strided.vec115.2 %842 = fadd <4 x double> %strided.vec110.2, %strided.vec116.2 %843 = fsub <4 x double> %strided.vec109.2, %strided.vec115.2 %844 = fsub <4 x double> %strided.vec110.2, %strided.vec116.2 %845 = fadd <4 x double> %strided.vec112.2, %strided.vec118.2 %846 = fadd <4 x double> %strided.vec113.2, %strided.vec119.2 %847 = fsub <4 x double> %strided.vec112.2, %strided.vec118.2 %848 = fsub <4 x double> %strided.vec113.2, %strided.vec119.2 %849 = fadd <4 x double> %841, %845 %850 = fadd <4 x double> %842, %846 %851 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec120.2 = shufflevector <4 x double> %849, <4 x double> %850, <8 x i32> store <8 x double> %interleaved.vec120.2, ptr %851, align 8, !noalias !2928 %852 = fsub <4 x double> %843, %848 %853 = fadd <4 x double> %844, %847 %854 = fmul <4 x double> %853, %broadcast.splat122 %855 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %852, <4 x double> %854) %856 = fmul <4 x double> %broadcast.splat126, %852 %857 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %853, <4 x double> %856) %858 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec127.2 = shufflevector <4 x double> %855, <4 x double> %857, <8 x i32> store <8 x double> %interleaved.vec127.2, ptr %858, align 8, !noalias !2928 %859 = fsub <4 x double> %841, %845 %860 = fsub <4 x double> %842, %846 %861 = fmul <4 x double> %860, %broadcast.splat129 %862 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %859, <4 x double> %861) %863 = fmul <4 x double> %broadcast.splat133, %859 %864 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %860, <4 x double> %863) %865 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec134.2 = shufflevector <4 x double> %862, <4 x double> %864, <8 x i32> store <8 x double> %interleaved.vec134.2, ptr %865, align 8, !noalias !2928 %866 = fadd <4 x double> %843, %848 %867 = fsub <4 x double> %844, %847 %868 = fmul <4 x double> %867, %broadcast.splat136 %869 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %866, <4 x double> %868) %870 = fmul <4 x double> %broadcast.splat140, %866 %871 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %867, <4 x double> %870) %872 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec141.2 = shufflevector <4 x double> %869, <4 x double> %871, <8 x i32> store <8 x double> %interleaved.vec141.2, ptr %872, align 8, !noalias !2928 %873 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %874 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %875 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %876 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %wide.vec108.3 = load <8 x double>, ptr %873, align 8, !noalias !2928 %strided.vec109.3 = shufflevector <8 x double> %wide.vec108.3, <8 x double> poison, <4 x i32> %strided.vec110.3 = shufflevector <8 x double> %wide.vec108.3, <8 x double> poison, <4 x i32> %wide.vec111.3 = load <8 x double>, ptr %874, align 8, !noalias !2928 %strided.vec112.3 = shufflevector <8 x double> %wide.vec111.3, <8 x double> poison, <4 x i32> %strided.vec113.3 = shufflevector <8 x double> %wide.vec111.3, <8 x double> poison, <4 x i32> %wide.vec114.3 = load <8 x double>, ptr %875, align 8, !noalias !2928 %strided.vec115.3 = shufflevector <8 x double> %wide.vec114.3, <8 x double> poison, <4 x i32> %strided.vec116.3 = shufflevector <8 x double> %wide.vec114.3, <8 x double> poison, <4 x i32> %wide.vec117.3 = load <8 x double>, ptr %876, align 8, !noalias !2928 %strided.vec118.3 = shufflevector <8 x double> %wide.vec117.3, <8 x double> poison, <4 x i32> %strided.vec119.3 = shufflevector <8 x double> %wide.vec117.3, <8 x double> poison, <4 x i32> %877 = fadd <4 x double> %strided.vec109.3, %strided.vec115.3 %878 = fadd <4 x double> %strided.vec110.3, %strided.vec116.3 %879 = fsub <4 x double> %strided.vec109.3, %strided.vec115.3 %880 = fsub <4 x double> %strided.vec110.3, %strided.vec116.3 %881 = fadd <4 x double> %strided.vec112.3, %strided.vec118.3 %882 = fadd <4 x double> %strided.vec113.3, %strided.vec119.3 %883 = fsub <4 x double> %strided.vec112.3, %strided.vec118.3 %884 = fsub <4 x double> %strided.vec113.3, %strided.vec119.3 %885 = fadd <4 x double> %877, %881 %886 = fadd <4 x double> %878, %882 %887 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec120.3 = shufflevector <4 x double> %885, <4 x double> %886, <8 x i32> store <8 x double> %interleaved.vec120.3, ptr %887, align 8, !noalias !2928 %888 = fsub <4 x double> %879, %884 %889 = fadd <4 x double> %880, %883 %890 = fmul <4 x double> %889, %broadcast.splat122 %891 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %888, <4 x double> %890) %892 = fmul <4 x double> %broadcast.splat126, %888 %893 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %889, <4 x double> %892) %894 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec127.3 = shufflevector <4 x double> %891, <4 x double> %893, <8 x i32> store <8 x double> %interleaved.vec127.3, ptr %894, align 8, !noalias !2928 %895 = fsub <4 x double> %877, %881 %896 = fsub <4 x double> %878, %882 %897 = fmul <4 x double> %896, %broadcast.splat129 %898 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %895, <4 x double> %897) %899 = fmul <4 x double> %broadcast.splat133, %895 %900 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %896, <4 x double> %899) %901 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec134.3 = shufflevector <4 x double> %898, <4 x double> %900, <8 x i32> store <8 x double> %interleaved.vec134.3, ptr %901, align 8, !noalias !2928 %902 = fadd <4 x double> %879, %884 %903 = fsub <4 x double> %880, %883 %904 = fmul <4 x double> %903, %broadcast.splat136 %905 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %902, <4 x double> %904) %906 = fmul <4 x double> %broadcast.splat140, %902 %907 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %903, <4 x double> %906) %908 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec141.3 = shufflevector <4 x double> %905, <4 x double> %907, <8 x i32> store <8 x double> %interleaved.vec141.3, ptr %908, align 8, !noalias !2928 br label %vector.body147 vector.body147: ; preds = %vector.body147, %vector.body67 %index148 = phi i64 [ 0, %vector.body67 ], [ %index.next157.1, %vector.body147 ] %909 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index148 %910 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index148 %wide.vec149 = load <8 x double>, ptr %909, align 8, !noalias !2928 %strided.vec150 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %strided.vec151 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %wide.vec152 = load <8 x double>, ptr %910, align 8, !noalias !2928 %strided.vec153 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %strided.vec154 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %911 = fadd <4 x double> %strided.vec150, %strided.vec153 %912 = fadd <4 x double> %strided.vec151, %strided.vec154 %913 = fsub <4 x double> %strided.vec150, %strided.vec153 %914 = fsub <4 x double> %strided.vec151, %strided.vec154 %915 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index148 %interleaved.vec155 = shufflevector <4 x double> %911, <4 x double> %912, <8 x i32> store <8 x double> %interleaved.vec155, ptr %915, align 8, !noalias !2928 %916 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index148 %interleaved.vec156 = shufflevector <4 x double> %913, <4 x double> %914, <8 x i32> store <8 x double> %interleaved.vec156, ptr %916, align 8, !noalias !2928 %index.next157 = or disjoint i64 %index148, 4 %917 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next157 %918 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index.next157 %wide.vec149.1 = load <8 x double>, ptr %917, align 8, !noalias !2928 %strided.vec150.1 = shufflevector <8 x double> %wide.vec149.1, <8 x double> poison, <4 x i32> %strided.vec151.1 = shufflevector <8 x double> %wide.vec149.1, <8 x double> poison, <4 x i32> %wide.vec152.1 = load <8 x double>, ptr %918, align 8, !noalias !2928 %strided.vec153.1 = shufflevector <8 x double> %wide.vec152.1, <8 x double> poison, <4 x i32> %strided.vec154.1 = shufflevector <8 x double> %wide.vec152.1, <8 x double> poison, <4 x i32> %919 = fadd <4 x double> %strided.vec150.1, %strided.vec153.1 %920 = fadd <4 x double> %strided.vec151.1, %strided.vec154.1 %921 = fsub <4 x double> %strided.vec150.1, %strided.vec153.1 %922 = fsub <4 x double> %strided.vec151.1, %strided.vec154.1 %923 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next157 %interleaved.vec155.1 = shufflevector <4 x double> %919, <4 x double> %920, <8 x i32> store <8 x double> %interleaved.vec155.1, ptr %923, align 8, !noalias !2928 %924 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next157 %interleaved.vec156.1 = shufflevector <4 x double> %921, <4 x double> %922, <8 x i32> store <8 x double> %interleaved.vec156.1, ptr %924, align 8, !noalias !2928 %index.next157.1 = add nuw nsw i64 %index148, 8 %925 = icmp eq i64 %index.next157.1, 64 br i1 %925, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit", label %vector.body147, !llvm.loop !2936 "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit": ; preds = %vector.body147 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2928 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3771600784db2f56E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2937 store i64 64, ptr %n.i, align 8, !noalias !2937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2937 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2937 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2937 store ptr null, ptr %_16.i, align 8, !noalias !2937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2937 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2937 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2937 store ptr null, ptr %_24.i, align 8, !noalias !2937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2937 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2937 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2937 store ptr null, ptr %_32.i, align 8, !noalias !2937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2937 store i64 %w.1, ptr %_34.i, align 8, !noalias !2937 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2937 store ptr null, ptr %_40.i, align 8, !noalias !2937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2937 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !2940 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !2940 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %1, align 8, !noalias !2940 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %3, align 8, !noalias !2940 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %0, align 8, !noalias !2940 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %5, align 8, !noalias !2940 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %4, align 8, !noalias !2940 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %6, align 8, !noalias !2940 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %14 = fadd <4 x double> %strided.vec, %strided.vec12 %15 = fadd <4 x double> %strided.vec1, %strided.vec13 %16 = fsub <4 x double> %strided.vec, %strided.vec12 %17 = fsub <4 x double> %strided.vec1, %strided.vec13 %18 = fadd <4 x double> %strided.vec6, %strided.vec18 %19 = fadd <4 x double> %strided.vec7, %strided.vec19 %20 = fsub <4 x double> %strided.vec6, %strided.vec18 %21 = fsub <4 x double> %strided.vec7, %strided.vec19 %22 = fadd <4 x double> %strided.vec3, %strided.vec15 %23 = fadd <4 x double> %strided.vec4, %strided.vec16 %24 = fsub <4 x double> %strided.vec3, %strided.vec15 %25 = fsub <4 x double> %strided.vec4, %strided.vec16 %26 = fadd <4 x double> %strided.vec9, %strided.vec21 %27 = fadd <4 x double> %strided.vec10, %strided.vec22 %28 = fsub <4 x double> %strided.vec9, %strided.vec21 %29 = fsub <4 x double> %strided.vec10, %strided.vec22 %30 = fadd <4 x double> %14, %18 %31 = fadd <4 x double> %15, %19 %32 = fsub <4 x double> %16, %21 %33 = fadd <4 x double> %17, %20 %34 = fsub <4 x double> %14, %18 %35 = fsub <4 x double> %15, %19 %36 = fadd <4 x double> %16, %21 %37 = fsub <4 x double> %17, %20 %38 = fadd <4 x double> %22, %26 %39 = fadd <4 x double> %23, %27 %40 = fsub <4 x double> %24, %29 %41 = fadd <4 x double> %25, %28 %42 = fsub <4 x double> %40, %41 %43 = fadd <4 x double> %41, %40 %44 = fmul <4 x double> %42, %45 = fmul <4 x double> %43, %46 = fsub <4 x double> %22, %26 %47 = fsub <4 x double> %23, %27 %48 = fadd <4 x double> %24, %29 %49 = fsub <4 x double> %25, %28 %50 = fadd <4 x double> %49, %48 %51 = fsub <4 x double> %49, %48 %52 = fmul <4 x double> %50, %53 = fmul <4 x double> %51, %54 = fadd <4 x double> %30, %38 %55 = fadd <4 x double> %31, %39 %56 = fadd <4 x double> %32, %44 %57 = fadd <4 x double> %33, %45 %58 = fsub <4 x double> %34, %47 %59 = fadd <4 x double> %35, %46 %60 = fsub <4 x double> %36, %52 %61 = fsub <4 x double> %37, %53 %62 = fsub <4 x double> %30, %38 %63 = fsub <4 x double> %31, %39 %64 = fsub <4 x double> %32, %44 %65 = fsub <4 x double> %33, %45 %66 = fadd <4 x double> %34, %47 %67 = fsub <4 x double> %35, %46 %68 = fadd <4 x double> %36, %52 %69 = fadd <4 x double> %37, %53 %interleaved.vec = shufflevector <4 x double> %54, <4 x double> %55, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !2940 %interleaved.vec23 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec23, ptr %11, align 8, !noalias !2940 %interleaved.vec24 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec24, ptr %12, align 8, !noalias !2940 %interleaved.vec25 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec25, ptr %10, align 8, !noalias !2940 %interleaved.vec26 = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec26, ptr %13, align 8, !noalias !2940 %interleaved.vec27 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec27, ptr %8, align 8, !noalias !2940 %interleaved.vec28 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec28, ptr %9, align 8, !noalias !2940 %interleaved.vec29 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec29, ptr %7, align 8, !noalias !2940 %70 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %71 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %72 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %73 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %74 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %75 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %76 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %77 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.1 = load <8 x double>, ptr %70, align 8, !noalias !2940 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %71, align 8, !noalias !2940 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %72, align 8, !noalias !2940 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %73, align 8, !noalias !2940 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %wide.vec11.1 = load <8 x double>, ptr %74, align 8, !noalias !2940 %strided.vec12.1 = shufflevector <8 x double> %wide.vec11.1, <8 x double> poison, <4 x i32> %strided.vec13.1 = shufflevector <8 x double> %wide.vec11.1, <8 x double> poison, <4 x i32> %wide.vec14.1 = load <8 x double>, ptr %75, align 8, !noalias !2940 %strided.vec15.1 = shufflevector <8 x double> %wide.vec14.1, <8 x double> poison, <4 x i32> %strided.vec16.1 = shufflevector <8 x double> %wide.vec14.1, <8 x double> poison, <4 x i32> %wide.vec17.1 = load <8 x double>, ptr %76, align 8, !noalias !2940 %strided.vec18.1 = shufflevector <8 x double> %wide.vec17.1, <8 x double> poison, <4 x i32> %strided.vec19.1 = shufflevector <8 x double> %wide.vec17.1, <8 x double> poison, <4 x i32> %wide.vec20.1 = load <8 x double>, ptr %77, align 8, !noalias !2940 %strided.vec21.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %strided.vec22.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %78 = fadd <4 x double> %strided.vec.1, %strided.vec12.1 %79 = fadd <4 x double> %strided.vec1.1, %strided.vec13.1 %80 = fsub <4 x double> %strided.vec.1, %strided.vec12.1 %81 = fsub <4 x double> %strided.vec1.1, %strided.vec13.1 %82 = fadd <4 x double> %strided.vec6.1, %strided.vec18.1 %83 = fadd <4 x double> %strided.vec7.1, %strided.vec19.1 %84 = fsub <4 x double> %strided.vec6.1, %strided.vec18.1 %85 = fsub <4 x double> %strided.vec7.1, %strided.vec19.1 %86 = fadd <4 x double> %strided.vec3.1, %strided.vec15.1 %87 = fadd <4 x double> %strided.vec4.1, %strided.vec16.1 %88 = fsub <4 x double> %strided.vec3.1, %strided.vec15.1 %89 = fsub <4 x double> %strided.vec4.1, %strided.vec16.1 %90 = fadd <4 x double> %strided.vec9.1, %strided.vec21.1 %91 = fadd <4 x double> %strided.vec10.1, %strided.vec22.1 %92 = fsub <4 x double> %strided.vec9.1, %strided.vec21.1 %93 = fsub <4 x double> %strided.vec10.1, %strided.vec22.1 %94 = fadd <4 x double> %78, %82 %95 = fadd <4 x double> %79, %83 %96 = fsub <4 x double> %80, %85 %97 = fadd <4 x double> %81, %84 %98 = fsub <4 x double> %78, %82 %99 = fsub <4 x double> %79, %83 %100 = fadd <4 x double> %80, %85 %101 = fsub <4 x double> %81, %84 %102 = fadd <4 x double> %86, %90 %103 = fadd <4 x double> %87, %91 %104 = fsub <4 x double> %88, %93 %105 = fadd <4 x double> %89, %92 %106 = fsub <4 x double> %104, %105 %107 = fadd <4 x double> %105, %104 %108 = fmul <4 x double> %106, %109 = fmul <4 x double> %107, %110 = fsub <4 x double> %86, %90 %111 = fsub <4 x double> %87, %91 %112 = fadd <4 x double> %88, %93 %113 = fsub <4 x double> %89, %92 %114 = fadd <4 x double> %113, %112 %115 = fsub <4 x double> %113, %112 %116 = fmul <4 x double> %114, %117 = fmul <4 x double> %115, %118 = fadd <4 x double> %94, %102 %119 = fadd <4 x double> %95, %103 %120 = fadd <4 x double> %96, %108 %121 = fadd <4 x double> %97, %109 %122 = fsub <4 x double> %98, %111 %123 = fadd <4 x double> %99, %110 %124 = fsub <4 x double> %100, %116 %125 = fsub <4 x double> %101, %117 %126 = fsub <4 x double> %94, %102 %127 = fsub <4 x double> %95, %103 %128 = fsub <4 x double> %96, %108 %129 = fsub <4 x double> %97, %109 %130 = fadd <4 x double> %98, %111 %131 = fsub <4 x double> %99, %110 %132 = fadd <4 x double> %100, %116 %133 = fadd <4 x double> %101, %117 %134 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %134, align 8, !noalias !2940 %135 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec23.1 = shufflevector <4 x double> %120, <4 x double> %121, <8 x i32> store <8 x double> %interleaved.vec23.1, ptr %135, align 8, !noalias !2940 %136 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec24.1 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec24.1, ptr %136, align 8, !noalias !2940 %137 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec25.1 = shufflevector <4 x double> %124, <4 x double> %125, <8 x i32> store <8 x double> %interleaved.vec25.1, ptr %137, align 8, !noalias !2940 %138 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec26.1 = shufflevector <4 x double> %126, <4 x double> %127, <8 x i32> store <8 x double> %interleaved.vec26.1, ptr %138, align 8, !noalias !2940 %139 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec27.1 = shufflevector <4 x double> %128, <4 x double> %129, <8 x i32> store <8 x double> %interleaved.vec27.1, ptr %139, align 8, !noalias !2940 %140 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec28.1 = shufflevector <4 x double> %130, <4 x double> %131, <8 x i32> store <8 x double> %interleaved.vec28.1, ptr %140, align 8, !noalias !2940 %141 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec29.1 = shufflevector <4 x double> %132, <4 x double> %133, <8 x i32> store <8 x double> %interleaved.vec29.1, ptr %141, align 8, !noalias !2940 br label %vector.body34 vector.body34: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E.exit", %vector.body34 %index35 = phi i64 [ %index.next73, %vector.body34 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E.exit" ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body34 ], [ , %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E.exit" ] %142 = shl <4 x i64> %vec.ind, %143 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %142 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %144, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %145, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %146 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %148, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %149 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %149, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %150, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %151 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %152 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %153 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %153, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %154 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %155 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %158 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 4 %159 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 2 %160 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 1 %161 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 3 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 6 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 5 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 7 %165 = fneg <4 x double> %wide.masked.gather36 %166 = fneg <4 x double> %wide.masked.gather38 %167 = fneg <4 x double> %wide.masked.gather40 %168 = fneg <4 x double> %wide.masked.gather42 %169 = fneg <4 x double> %wide.masked.gather44 %170 = fneg <4 x double> %wide.masked.gather46 %171 = fneg <4 x double> %wide.masked.gather48 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %143, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %172 = getelementptr inbounds i8, <4 x ptr> %143, i64 8 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %173 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 1, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %174 = fmul <4 x double> %wide.masked.gather52, %165 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather51, <4 x double> %174) %176 = fmul <4 x double> %wide.masked.gather36, %wide.masked.gather51 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather52, <4 x double> %176) %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %178 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 2, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %179 = fmul <4 x double> %wide.masked.gather54, %166 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather53, <4 x double> %179) %181 = fmul <4 x double> %wide.masked.gather38, %wide.masked.gather53 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather54, <4 x double> %181) %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %183 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 3, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %184 = fmul <4 x double> %wide.masked.gather56, %167 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather55, <4 x double> %184) %186 = fmul <4 x double> %wide.masked.gather40, %wide.masked.gather55 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather56, <4 x double> %186) %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %188 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 4, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %189 = fmul <4 x double> %wide.masked.gather58, %168 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather57, <4 x double> %189) %191 = fmul <4 x double> %wide.masked.gather42, %wide.masked.gather57 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather58, <4 x double> %191) %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %193 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 5, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %193, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %194 = fmul <4 x double> %wide.masked.gather60, %169 %195 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather59, <4 x double> %194) %196 = fmul <4 x double> %wide.masked.gather44, %wide.masked.gather59 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather60, <4 x double> %196) %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 6, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %199 = fmul <4 x double> %wide.masked.gather62, %170 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather61, <4 x double> %199) %201 = fmul <4 x double> %wide.masked.gather46, %wide.masked.gather61 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather62, <4 x double> %201) %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 7, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !2937 %204 = fmul <4 x double> %wide.masked.gather64, %171 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather63, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather48, %wide.masked.gather63 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather64, <4 x double> %206) %208 = fadd <4 x double> %wide.masked.gather49, %190 %209 = fadd <4 x double> %wide.masked.gather50, %192 %210 = fsub <4 x double> %wide.masked.gather49, %190 %211 = fsub <4 x double> %wide.masked.gather50, %192 %212 = fadd <4 x double> %180, %200 %213 = fadd <4 x double> %182, %202 %214 = fsub <4 x double> %180, %200 %215 = fsub <4 x double> %182, %202 %216 = fadd <4 x double> %175, %195 %217 = fadd <4 x double> %177, %197 %218 = fsub <4 x double> %175, %195 %219 = fsub <4 x double> %177, %197 %220 = fadd <4 x double> %185, %205 %221 = fadd <4 x double> %187, %207 %222 = fsub <4 x double> %185, %205 %223 = fsub <4 x double> %187, %207 %224 = fadd <4 x double> %208, %212 %225 = fadd <4 x double> %209, %213 %226 = fadd <4 x double> %216, %220 %227 = fadd <4 x double> %217, %221 %228 = fadd <4 x double> %224, %226 %229 = fadd <4 x double> %225, %227 %230 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index35 %interleaved.vec65 = shufflevector <4 x double> %228, <4 x double> %229, <8 x i32> store <8 x double> %interleaved.vec65, ptr %230, align 8, !noalias !2937 %231 = fsub <4 x double> %224, %226 %232 = fsub <4 x double> %225, %227 %233 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index35 %interleaved.vec66 = shufflevector <4 x double> %231, <4 x double> %232, <8 x i32> store <8 x double> %interleaved.vec66, ptr %233, align 8, !noalias !2937 %234 = fsub <4 x double> %210, %215 %235 = fadd <4 x double> %211, %214 %236 = fsub <4 x double> %218, %223 %237 = fadd <4 x double> %219, %222 %238 = fsub <4 x double> %236, %237 %239 = fadd <4 x double> %236, %237 %240 = fmul <4 x double> %238, %241 = fmul <4 x double> %239, %242 = fadd <4 x double> %234, %240 %243 = fadd <4 x double> %235, %241 %244 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index35 %interleaved.vec67 = shufflevector <4 x double> %242, <4 x double> %243, <8 x i32> store <8 x double> %interleaved.vec67, ptr %244, align 8, !noalias !2937 %245 = fsub <4 x double> %234, %240 %246 = fsub <4 x double> %235, %241 %247 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index35 %interleaved.vec68 = shufflevector <4 x double> %245, <4 x double> %246, <8 x i32> store <8 x double> %interleaved.vec68, ptr %247, align 8, !noalias !2937 %248 = fsub <4 x double> %208, %212 %249 = fsub <4 x double> %209, %213 %250 = fsub <4 x double> %216, %220 %251 = fsub <4 x double> %217, %221 %252 = fsub <4 x double> %248, %251 %253 = fadd <4 x double> %249, %250 %254 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index35 %interleaved.vec69 = shufflevector <4 x double> %252, <4 x double> %253, <8 x i32> store <8 x double> %interleaved.vec69, ptr %254, align 8, !noalias !2937 %255 = fadd <4 x double> %248, %251 %256 = fsub <4 x double> %249, %250 %257 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index35 %interleaved.vec70 = shufflevector <4 x double> %255, <4 x double> %256, <8 x i32> store <8 x double> %interleaved.vec70, ptr %257, align 8, !noalias !2937 %258 = fadd <4 x double> %210, %215 %259 = fsub <4 x double> %211, %214 %260 = fadd <4 x double> %218, %223 %261 = fsub <4 x double> %219, %222 %262 = fadd <4 x double> %260, %261 %263 = fsub <4 x double> %261, %260 %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %263, %266 = fsub <4 x double> %258, %264 %267 = fsub <4 x double> %259, %265 %268 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index35 %interleaved.vec71 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec71, ptr %268, align 8, !noalias !2937 %269 = fadd <4 x double> %258, %264 %270 = fadd <4 x double> %259, %265 %271 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index35 %interleaved.vec72 = shufflevector <4 x double> %269, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec72, ptr %271, align 8, !noalias !2937 %index.next73 = add nuw i64 %index35, 4 %vec.ind.next = add <4 x i64> %vec.ind, %272 = icmp eq i64 %index.next73, 8 br i1 %272, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE.exit", label %vector.body34, !llvm.loop !2943 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE.exit": ; preds = %vector.body34 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2937 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h387de2586934dcb7E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2944 store i64 256, ptr %n.i.i, align 8, !noalias !2944 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2944 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2944 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2944 store ptr null, ptr %_16.i.i, align 8, !noalias !2944 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2944 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2944 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2944 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2944 store ptr null, ptr %_24.i.i, align 8, !noalias !2944 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2944 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2944 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2944 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2944 store ptr null, ptr %_32.i.i, align 8, !noalias !2944 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2944 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2944 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2944 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54c11bd08fc8f197E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2944 store ptr null, ptr %_40.i.i, align 8, !noalias !2944 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54c11bd08fc8f197E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2944 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 br label %bb62.i.i.i.i bb62.i.i.i.i: ; preds = %bb62.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54c11bd08fc8f197E.exit.i" %iter22.i.i.i.sroa.218.01493.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54c11bd08fc8f197E.exit.i" ], [ %32, %bb62.i.i.i.i ] %32 = add nuw nsw i64 %iter22.i.i.i.sroa.218.01493.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter22.i.i.i.sroa.218.01493.i %_208.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !noalias !2949 %_209.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !noalias !2949 %_210.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !noalias !2949 %_211.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !noalias !2949 %_212.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !noalias !2949 %_213.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !noalias !2949 %_214.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !noalias !2949 %_215.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !noalias !2949 %_216.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !noalias !2949 %_217.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !noalias !2949 %_218.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !noalias !2949 %_219.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !noalias !2949 %_220.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !noalias !2949 %_221.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !noalias !2949 %_222.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !noalias !2949 %_223.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !noalias !2949 %33 = fadd <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %34 = fsub <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %35 = fadd <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %36 = fsub <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %37 = fadd <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %38 = fsub <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %39 = fadd <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %40 = fsub <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %41 = fadd <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %42 = fsub <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %43 = fadd <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %44 = fsub <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %45 = fadd <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %46 = fsub <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %47 = fadd <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %48 = fsub <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = xor <4 x i64> %49, %51 = bitcast <4 x i64> %50 to <4 x double> %52 = shufflevector <4 x double> %51, <4 x double> poison, <4 x i32> %53 = bitcast <4 x double> %40 to <4 x i64> %54 = xor <4 x i64> %53, %55 = bitcast <4 x i64> %54 to <4 x double> %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = bitcast <4 x double> %44 to <4 x i64> %58 = xor <4 x i64> %57, %59 = bitcast <4 x i64> %58 to <4 x double> %60 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> %61 = bitcast <4 x double> %48 to <4 x i64> %62 = xor <4 x i64> %61, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %52 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %52 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %56 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %56 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %60 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %60 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fadd <4 x double> %123, %135 %137 = fmul <4 x double> %136, %138 = fmul <4 x double> %124, %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %139) #23 %141 = bitcast <4 x double> %125 to <4 x i64> %142 = xor <4 x i64> %141, %143 = bitcast <4 x i64> %142 to <4 x double> %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %126, %146 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %146) #23 %148 = bitcast <4 x double> %127 to <4 x i64> %149 = xor <4 x i64> %148, %150 = bitcast <4 x i64> %149 to <4 x double> %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = fadd <4 x double> %127, %151 %153 = fmul <4 x double> %152, %154 = fmul <4 x double> %128, %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %155) #23 %157 = fadd <4 x double> %97, %121 %158 = fadd <4 x double> %131, %98 %159 = fadd <4 x double> %99, %137 %160 = fadd <4 x double> %140, %100 %161 = fsub <4 x double> %101, %144 %162 = fsub <4 x double> %102, %147 %163 = fsub <4 x double> %103, %153 %164 = fsub <4 x double> %104, %156 %165 = fsub <4 x double> %97, %121 %166 = fsub <4 x double> %98, %131 %167 = fsub <4 x double> %99, %137 %168 = fsub <4 x double> %100, %140 %169 = fadd <4 x double> %101, %144 %170 = fadd <4 x double> %147, %102 %171 = fadd <4 x double> %103, %153 %172 = fadd <4 x double> %156, %104 store <4 x double> %157, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %158, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %159, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %160, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %161, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %164, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %165, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %171, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 store <4 x double> %172, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !2949 %exitcond.not.i = icmp eq i64 %32, 8 br i1 %exitcond.not.i, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i", label %bb62.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i": ; preds = %bb62.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2953) tail call void @llvm.experimental.noalias.scope.decl(metadata !2956) tail call void @llvm.experimental.noalias.scope.decl(metadata !2958) %173 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %174 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %175 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %176 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %177 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %178 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %179 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %180 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %181 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %182 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %183 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 72 %184 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 88 %185 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %186 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 104 %187 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 120 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i" %iter.sroa.218.05279.i.i = phi i64 [ %188, %bb39.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i" ] %188 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %176, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %175, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %177, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %174, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %179, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %178, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %180, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %173, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %183, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %182, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %184, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %181, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %186, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %185, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %187, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2958, !noalias !2960 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !2956, !noalias !2961 %189 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %189, align 8, !alias.scope !2956, !noalias !2961 %190 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %190, align 8, !alias.scope !2956, !noalias !2961 %191 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %191, align 8, !alias.scope !2956, !noalias !2961 %192 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %192, align 8, !alias.scope !2956, !noalias !2961 %193 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %193, align 8, !alias.scope !2956, !noalias !2961 %194 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %194, align 8, !alias.scope !2956, !noalias !2961 %195 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %195, align 8, !alias.scope !2956, !noalias !2961 %196 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %196, align 8, !alias.scope !2956, !noalias !2961 %197 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %197, align 8, !alias.scope !2956, !noalias !2961 %198 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %198, align 8, !alias.scope !2956, !noalias !2961 %199 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %199, align 8, !alias.scope !2956, !noalias !2961 %200 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %200, align 8, !alias.scope !2956, !noalias !2961 %201 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %201, align 8, !alias.scope !2956, !noalias !2961 %202 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %202, align 8, !alias.scope !2956, !noalias !2961 %203 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %203, align 8, !alias.scope !2956, !noalias !2961 %204 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %205 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %206 = shufflevector <4 x double> %205, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %208, %206 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %207, <4 x double> %205, <4 x double> %209) #23 %211 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %215 = fmul <4 x double> %214, %212 %216 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %213, <4 x double> %211, <4 x double> %215) #23 %217 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %218 = shufflevector <4 x double> %217, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %220, %218 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %219, <4 x double> %217, <4 x double> %221) #23 %223 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %226, %224 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %225, <4 x double> %223, <4 x double> %227) #23 %229 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %230 = shufflevector <4 x double> %229, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %232, %230 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %231, <4 x double> %229, <4 x double> %233) #23 %235 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %238, %236 %240 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %237, <4 x double> %235, <4 x double> %239) #23 %241 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %242 = shufflevector <4 x double> %241, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %245 = fmul <4 x double> %244, %242 %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %243, <4 x double> %241, <4 x double> %245) #23 %247 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %250 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %251 = fmul <4 x double> %250, %248 %252 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %249, <4 x double> %247, <4 x double> %251) #23 %253 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %256 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %256, %254 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %255, <4 x double> %253, <4 x double> %257) #23 %259 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %260 = shufflevector <4 x double> %259, <4 x double> poison, <4 x i32> %261 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %262 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %263 = fmul <4 x double> %262, %260 %264 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %261, <4 x double> %259, <4 x double> %263) #23 %265 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %266 = shufflevector <4 x double> %265, <4 x double> poison, <4 x i32> %267 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %268 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %269 = fmul <4 x double> %268, %266 %270 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %267, <4 x double> %265, <4 x double> %269) #23 %271 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %272 = shufflevector <4 x double> %271, <4 x double> poison, <4 x i32> %273 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %274 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %275 = fmul <4 x double> %274, %272 %276 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %273, <4 x double> %271, <4 x double> %275) #23 %277 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %278 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> %279 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %280 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %281 = fmul <4 x double> %280, %278 %282 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %279, <4 x double> %277, <4 x double> %281) #23 %283 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %284 = shufflevector <4 x double> %283, <4 x double> poison, <4 x i32> %285 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %286 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %286, %284 %288 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %285, <4 x double> %283, <4 x double> %287) #23 %289 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %290 = shufflevector <4 x double> %289, <4 x double> poison, <4 x i32> %291 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %292 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %293 = fmul <4 x double> %292, %290 %294 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %291, <4 x double> %289, <4 x double> %293) #23 %295 = fadd <4 x double> %204, %252 %296 = fsub <4 x double> %204, %252 %297 = fadd <4 x double> %228, %276 %298 = fsub <4 x double> %228, %276 %299 = fadd <4 x double> %216, %264 %300 = fsub <4 x double> %216, %264 %301 = fadd <4 x double> %240, %288 %302 = fsub <4 x double> %240, %288 %303 = fadd <4 x double> %210, %258 %304 = fsub <4 x double> %210, %258 %305 = fadd <4 x double> %234, %282 %306 = fsub <4 x double> %234, %282 %307 = fadd <4 x double> %222, %270 %308 = fsub <4 x double> %222, %270 %309 = fadd <4 x double> %246, %294 %310 = fsub <4 x double> %246, %294 %311 = bitcast <4 x double> %298 to <4 x i64> %312 = bitcast <4 x double> %302 to <4 x i64> %313 = bitcast <4 x double> %306 to <4 x i64> %314 = bitcast <4 x double> %310 to <4 x i64> %315 = xor <4 x i64> %311, %316 = bitcast <4 x i64> %315 to <4 x double> %317 = shufflevector <4 x double> %316, <4 x double> poison, <4 x i32> %318 = xor <4 x i64> %312, %319 = bitcast <4 x i64> %318 to <4 x double> %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = xor <4 x i64> %313, %322 = bitcast <4 x i64> %321 to <4 x double> %323 = shufflevector <4 x double> %322, <4 x double> poison, <4 x i32> %324 = xor <4 x i64> %314, %325 = bitcast <4 x i64> %324 to <4 x double> %326 = shufflevector <4 x double> %325, <4 x double> poison, <4 x i32> %327 = fadd <4 x double> %295, %297 %328 = fsub <4 x double> %296, %317 %329 = fsub <4 x double> %295, %297 %330 = fadd <4 x double> %296, %317 %331 = fadd <4 x double> %299, %301 %332 = fsub <4 x double> %300, %320 %333 = fsub <4 x double> %299, %301 %334 = fadd <4 x double> %300, %320 %335 = fadd <4 x double> %303, %305 %336 = fsub <4 x double> %304, %323 %337 = fsub <4 x double> %303, %305 %338 = fadd <4 x double> %304, %323 %339 = fadd <4 x double> %307, %309 %340 = fsub <4 x double> %308, %326 %341 = fsub <4 x double> %307, %309 %342 = fadd <4 x double> %308, %326 %343 = bitcast <4 x double> %332 to <4 x i64> %344 = xor <4 x i64> %343, %345 = bitcast <4 x i64> %344 to <4 x double> %346 = shufflevector <4 x double> %345, <4 x double> poison, <4 x i32> %347 = fadd <4 x double> %332, %346 %348 = fmul <4 x double> %347, %349 = bitcast <4 x double> %333 to <4 x i64> %350 = xor <4 x i64> %349, %351 = bitcast <4 x i64> %350 to <4 x double> %352 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> %353 = bitcast <4 x double> %334 to <4 x i64> %354 = xor <4 x i64> %353, %355 = bitcast <4 x i64> %354 to <4 x double> %356 = shufflevector <4 x double> %355, <4 x double> poison, <4 x i32> %357 = fadd <4 x double> %334, %356 %358 = fmul <4 x double> %357, %359 = fadd <4 x double> %327, %331 %360 = fadd <4 x double> %328, %348 %361 = fsub <4 x double> %329, %352 %362 = fsub <4 x double> %330, %358 %363 = fsub <4 x double> %327, %331 %364 = fsub <4 x double> %328, %348 %365 = fadd <4 x double> %329, %352 %366 = fadd <4 x double> %330, %358 %367 = bitcast <4 x double> %340 to <4 x i64> %368 = xor <4 x i64> %367, %369 = bitcast <4 x i64> %368 to <4 x double> %370 = shufflevector <4 x double> %369, <4 x double> poison, <4 x i32> %371 = fadd <4 x double> %340, %370 %372 = fmul <4 x double> %371, %373 = bitcast <4 x double> %341 to <4 x i64> %374 = xor <4 x i64> %373, %375 = bitcast <4 x i64> %374 to <4 x double> %376 = shufflevector <4 x double> %375, <4 x double> poison, <4 x i32> %377 = bitcast <4 x double> %342 to <4 x i64> %378 = xor <4 x i64> %377, %379 = bitcast <4 x i64> %378 to <4 x double> %380 = shufflevector <4 x double> %379, <4 x double> poison, <4 x i32> %381 = fadd <4 x double> %342, %380 %382 = fmul <4 x double> %381, %383 = fadd <4 x double> %335, %339 %384 = fadd <4 x double> %336, %372 %385 = fsub <4 x double> %337, %376 %386 = fsub <4 x double> %338, %382 %387 = fsub <4 x double> %335, %339 %388 = fsub <4 x double> %336, %372 %389 = fadd <4 x double> %337, %376 %390 = fadd <4 x double> %338, %382 %391 = fadd <4 x double> %359, %383 store <4 x double> %391, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %392 = fsub <4 x double> %359, %383 store <4 x double> %392, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %393 = fmul <4 x double> %384, %394 = shufflevector <4 x double> %393, <4 x double> poison, <4 x i32> %395 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %384, <4 x double> %394) #23 %396 = fadd <4 x double> %395, %360 store <4 x double> %396, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %397 = fsub <4 x double> %360, %395 store <4 x double> %397, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %398 = bitcast <4 x double> %385 to <4 x i64> %399 = xor <4 x i64> %398, %400 = bitcast <4 x i64> %399 to <4 x double> %401 = shufflevector <4 x double> %400, <4 x double> poison, <4 x i32> %402 = fadd <4 x double> %385, %401 %403 = fmul <4 x double> %402, %404 = fadd <4 x double> %361, %403 store <4 x double> %404, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %405 = fsub <4 x double> %361, %403 store <4 x double> %405, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %406 = fmul <4 x double> %386, %407 = shufflevector <4 x double> %406, <4 x double> poison, <4 x i32> %408 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %386, <4 x double> %407) #23 %409 = bitcast <4 x double> %387 to <4 x i64> %410 = xor <4 x i64> %409, %411 = bitcast <4 x i64> %410 to <4 x double> %412 = shufflevector <4 x double> %411, <4 x double> poison, <4 x i32> %413 = fmul <4 x double> %388, %414 = shufflevector <4 x double> %413, <4 x double> poison, <4 x i32> %415 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %388, <4 x double> %414) #23 %.sink.i576.i = fadd <4 x double> %363, %412 %.sink5280.i.i = fsub <4 x double> %363, %412 %.sink5281.i.i = fsub <4 x double> %362, %408 %.sink5282.i.i = fadd <4 x double> %408, %362 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 store <4 x double> %.sink.i576.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %416 = fsub <4 x double> %364, %415 store <4 x double> %416, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %417 = fadd <4 x double> %415, %364 store <4 x double> %417, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %418 = bitcast <4 x double> %389 to <4 x i64> %419 = xor <4 x i64> %418, %420 = bitcast <4 x i64> %419 to <4 x double> %421 = shufflevector <4 x double> %420, <4 x double> poison, <4 x i32> %422 = fmul <4 x double> %390, %423 = shufflevector <4 x double> %422, <4 x double> poison, <4 x i32> %424 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %390, <4 x double> %423) #23 %.pn5288.in.i.i = fadd <4 x double> %389, %421 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %365, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %365, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %425 = fsub <4 x double> %366, %424 store <4 x double> %425, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %426 = fadd <4 x double> %366, %424 store <4 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !2953, !noalias !2962 %exitcond.not.i.i = icmp eq i64 %188, 8 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h25f1079b88d16e7bE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17h25f1079b88d16e7bE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2944 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h397e7993292cc70bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2963 store i64 32, ptr %n.i.i, align 8, !noalias !2963 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2963 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2963 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2963 store ptr null, ptr %_16.i.i, align 8, !noalias !2963 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2963 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2963 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2963 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2963 store ptr null, ptr %_24.i.i, align 8, !noalias !2963 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2963 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2963 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2963 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2963 store ptr null, ptr %_32.i.i, align 8, !noalias !2963 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2963 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2963 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2963 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hf320dd0597b5255aE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2963 store ptr null, ptr %_40.i.i, align 8, !noalias !2963 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17hf320dd0597b5255aE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2963 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %_33.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !2963 %3 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %4 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_33.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.1.i, align 8, !noalias !2963 %5 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.i.sroa.0.0.copyload.1.i %6 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.i.sroa.0.0.copyload.1.i %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_33.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.2.i, align 8, !noalias !2963 %7 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.2.i, %_34.i.i.i.i.sroa.0.0.copyload.2.i %8 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.2.i, %_34.i.i.i.i.sroa.0.0.copyload.2.i %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_33.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.3.i, align 8, !noalias !2963 %9 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.3.i, %_34.i.i.i.i.sroa.0.0.copyload.3.i %10 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.3.i, %_34.i.i.i.i.sroa.0.0.copyload.3.i %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_33.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.4.i, align 8, !noalias !2963 %11 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.4.i, %_34.i.i.i.i.sroa.0.0.copyload.4.i %12 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.4.i, %_34.i.i.i.i.sroa.0.0.copyload.4.i %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_33.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.5.i, align 8, !noalias !2963 %13 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.5.i, %_34.i.i.i.i.sroa.0.0.copyload.5.i %14 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.5.i, %_34.i.i.i.i.sroa.0.0.copyload.5.i %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_33.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.6.i, align 8, !noalias !2963 %15 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.6.i, %_34.i.i.i.i.sroa.0.0.copyload.6.i %16 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.6.i, %_34.i.i.i.i.sroa.0.0.copyload.6.i %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_33.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !2963 %_34.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.7.i, align 8, !noalias !2963 %17 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.7.i, %_34.i.i.i.i.sroa.0.0.copyload.7.i %18 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.7.i, %_34.i.i.i.i.sroa.0.0.copyload.7.i tail call void @llvm.experimental.noalias.scope.decl(metadata !2968) tail call void @llvm.experimental.noalias.scope.decl(metadata !2971) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %22, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %23, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %24, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %25, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %26, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %27, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %28 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %30 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %31 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> zeroinitializer %33 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %36 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer %37 = shufflevector <4 x double> %7, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %37, %32 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %7, <4 x double> %38) #23 %40 = shufflevector <4 x double> %11, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %40, %34 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %11, <4 x double> %41) #23 %43 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %43, %36 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %15, <4 x double> %44) #23 %46 = fadd <4 x double> %3, %42 %47 = fsub <4 x double> %3, %42 %48 = fadd <4 x double> %39, %45 %49 = fsub <4 x double> %39, %45 %50 = bitcast <4 x double> %49 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %46, %48 store <4 x double> %54, ptr %scratch.0, align 8, !alias.scope !2968, !noalias !2975 %55 = fsub <4 x double> %47, %53 store <4 x double> %55, ptr %20, align 8, !alias.scope !2968, !noalias !2975 %56 = fsub <4 x double> %46, %48 store <4 x double> %56, ptr %19, align 8, !alias.scope !2968, !noalias !2975 %57 = fadd <4 x double> %47, %53 store <4 x double> %57, ptr %21, align 8, !alias.scope !2968, !noalias !2975 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %58 = shufflevector <4 x double> %9, <4 x double> poison, <4 x i32> %59 = fmul <4 x double> %58, %32 %60 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %9, <4 x double> %59) #23 %61 = shufflevector <4 x double> %13, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %34 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %13, <4 x double> %62) #23 %64 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %64, %36 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %17, <4 x double> %65) #23 %67 = fadd <4 x double> %5, %63 %68 = fsub <4 x double> %5, %63 %69 = fadd <4 x double> %60, %66 %70 = fsub <4 x double> %60, %66 %71 = bitcast <4 x double> %70 to <4 x i64> %72 = xor <4 x i64> %71, %73 = bitcast <4 x i64> %72 to <4 x double> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fadd <4 x double> %67, %69 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %76 = fsub <4 x double> %68, %74 store <4 x double> %76, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %77 = fsub <4 x double> %67, %69 store <4 x double> %77, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %78 = fadd <4 x double> %68, %74 store <4 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %79 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.1.i = load double, ptr %79, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %80 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %80, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %81 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2 %w2.0.us.i.1.i = load double, ptr %81, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %82 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %82, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3 %w3.0.us.i.1.i = load double, ptr %83, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %84, align 8, !alias.scope !2971, !noalias !2973, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %85 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %86 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %87 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %88 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %89 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> zeroinitializer %90 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %91 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %92 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %93 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> zeroinitializer %94 = shufflevector <4 x double> %8, <4 x double> poison, <4 x i32> %95 = fmul <4 x double> %94, %89 %96 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %88, <4 x double> %8, <4 x double> %95) #23 %97 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %91 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %12, <4 x double> %98) #23 %100 = shufflevector <4 x double> %16, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %93 %102 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %16, <4 x double> %101) #23 %103 = fadd <4 x double> %4, %99 %104 = fsub <4 x double> %4, %99 %105 = fadd <4 x double> %96, %102 %106 = fsub <4 x double> %96, %102 %107 = bitcast <4 x double> %106 to <4 x i64> %108 = xor <4 x i64> %107, %109 = bitcast <4 x i64> %108 to <4 x double> %110 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> %111 = fadd <4 x double> %103, %105 store <4 x double> %111, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %112 = fsub <4 x double> %104, %110 store <4 x double> %112, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %113 = fsub <4 x double> %103, %105 store <4 x double> %113, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %114 = fadd <4 x double> %104, %110 store <4 x double> %114, ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !2968, !noalias !2975 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %115 = shufflevector <4 x double> %10, <4 x double> poison, <4 x i32> %116 = fmul <4 x double> %115, %89 %117 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %88, <4 x double> %10, <4 x double> %116) #23 %118 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %118, %91 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %14, <4 x double> %119) #23 %121 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %121, %93 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %18, <4 x double> %122) #23 %124 = fadd <4 x double> %6, %120 %125 = fsub <4 x double> %6, %120 %126 = fadd <4 x double> %117, %123 %127 = fsub <4 x double> %117, %123 %128 = bitcast <4 x double> %127 to <4 x i64> %129 = xor <4 x i64> %128, %130 = bitcast <4 x i64> %129 to <4 x double> %131 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> %132 = fadd <4 x double> %124, %126 store <4 x double> %132, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2968, !noalias !2975 %133 = fsub <4 x double> %125, %131 store <4 x double> %133, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2968, !noalias !2975 %134 = fsub <4 x double> %124, %126 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2968, !noalias !2975 %135 = fadd <4 x double> %125, %131 store <4 x double> %135, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !2968, !noalias !2975 tail call void @llvm.experimental.noalias.scope.decl(metadata !2976) tail call void @llvm.experimental.noalias.scope.decl(metadata !2979) %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %137 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %137, align 8, !alias.scope !2979, !noalias !2981 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %136, align 8, !alias.scope !2979, !noalias !2981 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %138, align 8, !alias.scope !2979, !noalias !2981 %139 = shufflevector <4 x double> %54, <4 x double> %111, <4 x i32> %140 = shufflevector <4 x double> %54, <4 x double> %111, <4 x i32> %141 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> %142 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %143 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %141, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %142, <4 x double> %140, <4 x double> %144) #23 %146 = shufflevector <4 x double> %75, <4 x double> %132, <4 x i32> %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %149 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %147, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %148, <4 x double> %146, <4 x double> %150) #23 %152 = shufflevector <4 x double> %75, <4 x double> %132, <4 x i32> %153 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> %154 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %155 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %153, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %154, <4 x double> %152, <4 x double> %156) #23 %158 = fadd <4 x double> %139, %151 %159 = fsub <4 x double> %139, %151 %160 = fadd <4 x double> %145, %157 %161 = fsub <4 x double> %145, %157 %162 = bitcast <4 x double> %161 to <4 x i64> %163 = xor <4 x i64> %162, %164 = bitcast <4 x i64> %163 to <4 x double> %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = fadd <4 x double> %158, %160 store <4 x double> %166, ptr %buf.0, align 8, !alias.scope !2976, !noalias !2983 %167 = fsub <4 x double> %159, %165 store <4 x double> %167, ptr %_3.i.i.i.i.4.i, align 8, !alias.scope !2976, !noalias !2983 %168 = fsub <4 x double> %158, %160 store <4 x double> %168, ptr %2, align 8, !alias.scope !2976, !noalias !2983 %169 = fadd <4 x double> %159, %165 store <4 x double> %169, ptr %_3.i2.i.i.i.4.i, align 8, !alias.scope !2976, !noalias !2983 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2979, !noalias !2981 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !2979, !noalias !2981 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !2979, !noalias !2981 %170 = shufflevector <4 x double> %55, <4 x double> %112, <4 x i32> %171 = shufflevector <4 x double> %55, <4 x double> %112, <4 x i32> %172 = shufflevector <4 x double> %171, <4 x double> poison, <4 x i32> %173 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %174 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %172, %174 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %171, <4 x double> %175) #23 %177 = shufflevector <4 x double> %76, <4 x double> %133, <4 x i32> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %180 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %178, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %179, <4 x double> %177, <4 x double> %181) #23 %183 = shufflevector <4 x double> %76, <4 x double> %133, <4 x i32> %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %186 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %184, %186 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %185, <4 x double> %183, <4 x double> %187) #23 %189 = fadd <4 x double> %170, %182 %190 = fsub <4 x double> %170, %182 %191 = fadd <4 x double> %176, %188 %192 = fsub <4 x double> %176, %188 %193 = bitcast <4 x double> %192 to <4 x i64> %194 = xor <4 x i64> %193, %195 = bitcast <4 x i64> %194 to <4 x double> %196 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> %197 = fadd <4 x double> %189, %191 store <4 x double> %197, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !2976, !noalias !2983 %198 = fsub <4 x double> %190, %196 store <4 x double> %198, ptr %_3.i.i.i.i.5.i, align 8, !alias.scope !2976, !noalias !2983 %199 = fsub <4 x double> %189, %191 store <4 x double> %199, ptr %_3.i2.i.i.i.1.i, align 8, !alias.scope !2976, !noalias !2983 %200 = fadd <4 x double> %190, %196 store <4 x double> %200, ptr %_3.i2.i.i.i.5.i, align 8, !alias.scope !2976, !noalias !2983 %_3.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %_3.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2979, !noalias !2981 %w2.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !2979, !noalias !2981 %w3.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !2979, !noalias !2981 %201 = shufflevector <4 x double> %56, <4 x double> %113, <4 x i32> %202 = shufflevector <4 x double> %56, <4 x double> %113, <4 x i32> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %205 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %203, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %204, <4 x double> %202, <4 x double> %206) #23 %208 = shufflevector <4 x double> %77, <4 x double> %134, <4 x i32> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %209, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %208, <4 x double> %212) #23 %214 = shufflevector <4 x double> %77, <4 x double> %134, <4 x i32> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %215, %217 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %216, <4 x double> %214, <4 x double> %218) #23 %220 = fadd <4 x double> %201, %213 %221 = fsub <4 x double> %201, %213 %222 = fadd <4 x double> %207, %219 %223 = fsub <4 x double> %207, %219 %224 = bitcast <4 x double> %223 to <4 x i64> %225 = xor <4 x i64> %224, %226 = bitcast <4 x i64> %225 to <4 x double> %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = fadd <4 x double> %220, %222 store <4 x double> %228, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !2976, !noalias !2983 %229 = fsub <4 x double> %221, %227 store <4 x double> %229, ptr %_3.i.i.i.i.6.i, align 8, !alias.scope !2976, !noalias !2983 %230 = fsub <4 x double> %220, %222 store <4 x double> %230, ptr %_3.i2.i.i.i.2.i, align 8, !alias.scope !2976, !noalias !2983 %231 = fadd <4 x double> %221, %227 store <4 x double> %231, ptr %_3.i2.i.i.i.6.i, align 8, !alias.scope !2976, !noalias !2983 %_3.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2979, !noalias !2981 %w2.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !2979, !noalias !2981 %w3.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !2979, !noalias !2981 %232 = shufflevector <4 x double> %57, <4 x double> %114, <4 x i32> %233 = shufflevector <4 x double> %57, <4 x double> %114, <4 x i32> %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %234, %236 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %235, <4 x double> %233, <4 x double> %237) #23 %239 = shufflevector <4 x double> %78, <4 x double> %135, <4 x i32> %240 = shufflevector <4 x double> %239, <4 x double> poison, <4 x i32> %241 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %243 = fmul <4 x double> %240, %242 %244 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %241, <4 x double> %239, <4 x double> %243) #23 %245 = shufflevector <4 x double> %78, <4 x double> %135, <4 x i32> %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %248 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %246, %248 %250 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %247, <4 x double> %245, <4 x double> %249) #23 %251 = fadd <4 x double> %232, %244 %252 = fsub <4 x double> %232, %244 %253 = fadd <4 x double> %238, %250 %254 = fsub <4 x double> %238, %250 %255 = bitcast <4 x double> %254 to <4 x i64> %256 = xor <4 x i64> %255, %257 = bitcast <4 x i64> %256 to <4 x double> %258 = shufflevector <4 x double> %257, <4 x double> poison, <4 x i32> %259 = fadd <4 x double> %251, %253 store <4 x double> %259, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !2976, !noalias !2983 %260 = fsub <4 x double> %252, %258 store <4 x double> %260, ptr %_3.i.i.i.i.7.i, align 8, !alias.scope !2976, !noalias !2983 %261 = fsub <4 x double> %251, %253 store <4 x double> %261, ptr %_3.i2.i.i.i.3.i, align 8, !alias.scope !2976, !noalias !2983 %262 = fadd <4 x double> %252, %258 store <4 x double> %262, ptr %_3.i2.i.i.i.7.i, align 8, !alias.scope !2976, !noalias !2983 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2963 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h39964f274619d0afE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17he180c444e7a247aaE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3a3ad457ba91a630E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !2984 store i64 32, ptr %n.i, align 8, !noalias !2984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !2984 store i64 %buf.1, ptr %_10.i, align 8, !noalias !2984 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !2984 store ptr null, ptr %_16.i, align 8, !noalias !2984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !2984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !2984 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !2984 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !2984 store ptr null, ptr %_24.i, align 8, !noalias !2984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !2984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !2984 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !2984 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !2984 store ptr null, ptr %_32.i, align 8, !noalias !2984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !2984 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !2984 store i64 %w.1, ptr %_34.i, align 8, !noalias !2984 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !2984 store ptr null, ptr %_40.i, align 8, !noalias !2984 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !2984 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %wide.vec = load <16 x double>, ptr %1, align 8, !noalias !2987 %strided.vec = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %strided.vec1 = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %2 = fneg <4 x double> %strided.vec1 %wide.vec2 = load <8 x double>, ptr %buf.0, align 8, !noalias !2987 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %0, align 8, !noalias !2987 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec3, %strided.vec6 %4 = fadd <4 x double> %strided.vec4, %strided.vec7 %5 = fsub <4 x double> %strided.vec3, %strided.vec6 %6 = fsub <4 x double> %strided.vec4, %strided.vec7 %7 = fmul <4 x double> %6, %2 %8 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %5, <4 x double> %7) %9 = fmul <4 x double> %strided.vec1, %5 %10 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %6, <4 x double> %9) %11 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> %12 = shufflevector <4 x double> %8, <4 x double> %10, <8 x i32> %interleaved.vec = shufflevector <8 x double> %11, <8 x double> %12, <16 x i32> store <16 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !2987 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %wide.vec.1 = load <16 x double>, ptr %16, align 8, !noalias !2987 %strided.vec.1 = shufflevector <16 x double> %wide.vec.1, <16 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <16 x double> %wide.vec.1, <16 x double> poison, <4 x i32> %17 = fneg <4 x double> %strided.vec1.1 %wide.vec2.1 = load <8 x double>, ptr %13, align 8, !noalias !2987 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %14, align 8, !noalias !2987 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec3.1, %strided.vec6.1 %19 = fadd <4 x double> %strided.vec4.1, %strided.vec7.1 %20 = fsub <4 x double> %strided.vec3.1, %strided.vec6.1 %21 = fsub <4 x double> %strided.vec4.1, %strided.vec7.1 %22 = fmul <4 x double> %21, %17 %23 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.1, <4 x double> %20, <4 x double> %22) %24 = fmul <4 x double> %strided.vec1.1, %20 %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.1, <4 x double> %21, <4 x double> %24) %26 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> %27 = shufflevector <4 x double> %23, <4 x double> %25, <8 x i32> %interleaved.vec.1 = shufflevector <8 x double> %26, <8 x double> %27, <16 x i32> store <16 x double> %interleaved.vec.1, ptr %15, align 8, !noalias !2987 %28 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %29 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %31 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %wide.vec.2 = load <16 x double>, ptr %31, align 8, !noalias !2987 %strided.vec.2 = shufflevector <16 x double> %wide.vec.2, <16 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <16 x double> %wide.vec.2, <16 x double> poison, <4 x i32> %32 = fneg <4 x double> %strided.vec1.2 %wide.vec2.2 = load <8 x double>, ptr %28, align 8, !noalias !2987 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %wide.vec5.2 = load <8 x double>, ptr %29, align 8, !noalias !2987 %strided.vec6.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %strided.vec7.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %33 = fadd <4 x double> %strided.vec3.2, %strided.vec6.2 %34 = fadd <4 x double> %strided.vec4.2, %strided.vec7.2 %35 = fsub <4 x double> %strided.vec3.2, %strided.vec6.2 %36 = fsub <4 x double> %strided.vec4.2, %strided.vec7.2 %37 = fmul <4 x double> %36, %32 %38 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.2, <4 x double> %35, <4 x double> %37) %39 = fmul <4 x double> %strided.vec1.2, %35 %40 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec.2, <4 x double> %36, <4 x double> %39) %41 = shufflevector <4 x double> %33, <4 x double> %34, <8 x i32> %42 = shufflevector <4 x double> %38, <4 x double> %40, <8 x i32> %interleaved.vec.2 = shufflevector <8 x double> %41, <8 x double> %42, <16 x i32> store <16 x double> %interleaved.vec.2, ptr %30, align 8, !noalias !2987 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i5.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %43 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i = load double, ptr %43, align 8, !noalias !2987, !noundef !3 %44 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i = load double, ptr %44, align 8, !noalias !2987, !noundef !3 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25 %_6.i.i.i = fneg double %w1.1.i.i %46 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !2987 %47 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i, align 8, !noalias !2987 %48 = fadd <2 x double> %46, %47 store <2 x double> %48, ptr %data.i.i.i.i.i.i, align 8, !noalias !2987 %49 = fsub <2 x double> %46, %47 %50 = shufflevector <2 x double> %49, <2 x double> poison, <2 x i32> %51 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %52 = insertelement <2 x double> %51, double %w1.1.i.i, i64 1 %53 = fmul <2 x double> %50, %52 %54 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %55 = shufflevector <2 x double> %54, <2 x double> poison, <2 x i32> zeroinitializer %56 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %55, <2 x double> %49, <2 x double> %53) store <2 x double> %56, ptr %45, align 8, !noalias !2987 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %57 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1 %w1.0.i.i.1 = load double, ptr %57, align 8, !noalias !2987, !noundef !3 %58 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %58, align 8, !noalias !2987, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %60 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !2987 %61 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !2987 %62 = fadd <2 x double> %60, %61 store <2 x double> %62, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !2987 %63 = fsub <2 x double> %60, %61 %64 = shufflevector <2 x double> %63, <2 x double> poison, <2 x i32> %65 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %66 = insertelement <2 x double> %65, double %w1.1.i.i.1, i64 1 %67 = fmul <2 x double> %64, %66 %68 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> zeroinitializer %70 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %69, <2 x double> %63, <2 x double> %67) store <2 x double> %70, ptr %59, align 8, !noalias !2987 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %71 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.i.i.2 = load double, ptr %71, align 8, !noalias !2987, !noundef !3 %72 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %72, align 8, !noalias !2987, !noundef !3 %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %74 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !2987 %75 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !2987 %76 = fadd <2 x double> %74, %75 store <2 x double> %76, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !2987 %77 = fsub <2 x double> %74, %75 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %80 = insertelement <2 x double> %79, double %w1.1.i.i.2, i64 1 %81 = fmul <2 x double> %78, %80 %82 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> zeroinitializer %84 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %83, <2 x double> %77, <2 x double> %81) store <2 x double> %84, ptr %73, align 8, !noalias !2987 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %85 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1 %w1.0.i.i.3 = load double, ptr %85, align 8, !noalias !2987, !noundef !3 %86 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %86, align 8, !noalias !2987, !noundef !3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %88 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !2987 %89 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !2987 %90 = fadd <2 x double> %88, %89 store <2 x double> %90, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !2987 %91 = fsub <2 x double> %88, %89 %92 = shufflevector <2 x double> %91, <2 x double> poison, <2 x i32> %93 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %94 = insertelement <2 x double> %93, double %w1.1.i.i.3, i64 1 %95 = fmul <2 x double> %92, %94 %96 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %97 = shufflevector <2 x double> %96, <2 x double> poison, <2 x i32> zeroinitializer %98 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %97, <2 x double> %91, <2 x double> %95) store <2 x double> %98, ptr %87, align 8, !noalias !2987 %99 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %100 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !2990 %101 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !2990 %102 = fneg <4 x double> %wide.masked.gather14 %wide.vec15 = load <16 x double>, ptr %scratch.0, align 8, !noalias !2990 %strided.vec16 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec18 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %wide.vec20 = load <16 x double>, ptr %99, align 8, !noalias !2990 %strided.vec21 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %103 = fadd <4 x double> %strided.vec16, %strided.vec21 %104 = fadd <4 x double> %strided.vec17, %strided.vec22 %105 = fsub <4 x double> %strided.vec16, %strided.vec21 %106 = fsub <4 x double> %strided.vec17, %strided.vec22 %107 = fmul <4 x double> %106, %102 %108 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %105, <4 x double> %107) %109 = fmul <4 x double> %wide.masked.gather14, %105 %110 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %106, <4 x double> %109) %111 = fadd <4 x double> %strided.vec18, %strided.vec23 %112 = fadd <4 x double> %strided.vec19, %strided.vec24 %113 = fsub <4 x double> %strided.vec18, %strided.vec23 %114 = fsub <4 x double> %strided.vec19, %strided.vec24 %115 = fmul <4 x double> %114, %102 %116 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %113, <4 x double> %115) %117 = fmul <4 x double> %wide.masked.gather14, %113 %118 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %114, <4 x double> %117) %119 = shufflevector <4 x double> %103, <4 x double> %104, <8 x i32> %120 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> %121 = shufflevector <4 x double> %108, <4 x double> %110, <8 x i32> %122 = shufflevector <4 x double> %116, <4 x double> %118, <8 x i32> %123 = shufflevector <8 x double> %119, <8 x double> %120, <16 x i32> %124 = shufflevector <8 x double> %121, <8 x double> %122, <16 x i32> %interleaved.vec25 = shufflevector <16 x double> %123, <16 x double> %124, <32 x i32> store <32 x double> %interleaved.vec25, ptr %buf.0, align 8, !noalias !2990 %125 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %126 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %127 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %128 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !2990 %129 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather14.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !2990 %130 = fneg <4 x double> %wide.masked.gather14.1 %wide.vec15.1 = load <16 x double>, ptr %125, align 8, !noalias !2990 %strided.vec16.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %strided.vec18.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %strided.vec19.1 = shufflevector <16 x double> %wide.vec15.1, <16 x double> poison, <4 x i32> %wide.vec20.1 = load <16 x double>, ptr %126, align 8, !noalias !2990 %strided.vec21.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %strided.vec22.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %strided.vec23.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %strided.vec24.1 = shufflevector <16 x double> %wide.vec20.1, <16 x double> poison, <4 x i32> %131 = fadd <4 x double> %strided.vec16.1, %strided.vec21.1 %132 = fadd <4 x double> %strided.vec17.1, %strided.vec22.1 %133 = fsub <4 x double> %strided.vec16.1, %strided.vec21.1 %134 = fsub <4 x double> %strided.vec17.1, %strided.vec22.1 %135 = fmul <4 x double> %134, %130 %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %133, <4 x double> %135) %137 = fmul <4 x double> %wide.masked.gather14.1, %133 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %134, <4 x double> %137) %139 = fadd <4 x double> %strided.vec18.1, %strided.vec23.1 %140 = fadd <4 x double> %strided.vec19.1, %strided.vec24.1 %141 = fsub <4 x double> %strided.vec18.1, %strided.vec23.1 %142 = fsub <4 x double> %strided.vec19.1, %strided.vec24.1 %143 = fmul <4 x double> %142, %130 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather14.1, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %142, <4 x double> %145) %147 = shufflevector <4 x double> %131, <4 x double> %132, <8 x i32> %148 = shufflevector <4 x double> %139, <4 x double> %140, <8 x i32> %149 = shufflevector <4 x double> %136, <4 x double> %138, <8 x i32> %150 = shufflevector <4 x double> %144, <4 x double> %146, <8 x i32> %151 = shufflevector <8 x double> %147, <8 x double> %148, <16 x i32> %152 = shufflevector <8 x double> %149, <8 x double> %150, <16 x i32> %interleaved.vec25.1 = shufflevector <16 x double> %151, <16 x double> %152, <32 x i32> store <32 x double> %interleaved.vec25.1, ptr %127, align 8, !noalias !2990 %153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i43 = load double, ptr %153, align 8, !noalias !2993, !noundef !3 %154 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %154, align 8, !noalias !2993, !noundef !3 %155 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %_6.i.i.i64 = fneg double %w1.1.i.i44 %156 = load <4 x double>, ptr %buf.0, align 8, !noalias !2993 %157 = load <4 x double>, ptr %0, align 8, !noalias !2993 %158 = fadd <4 x double> %156, %157 store <4 x double> %158, ptr %scratch.0, align 8, !noalias !2993 %159 = fsub <4 x double> %156, %157 %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = insertelement <4 x double> poison, double %_6.i.i.i64, i64 0 %162 = insertelement <4 x double> %161, double %w1.1.i.i44, i64 1 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %160, %163 %165 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> zeroinitializer %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %166, <4 x double> %159, <4 x double> %164) store <4 x double> %167, ptr %155, align 8, !noalias !2993 %_3.i.i.i.i.i.i.i.i562.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i565.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i.i.i.i.i.i568.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i.i.i.i571.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %168 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i562.2, align 8, !noalias !2993 %169 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i565.2, align 8, !noalias !2993 %170 = fadd <4 x double> %168, %169 store <4 x double> %170, ptr %_3.i.i.i.i.i.i568.2, align 8, !noalias !2993 %171 = fsub <4 x double> %168, %169 %172 = shufflevector <4 x double> %171, <4 x double> poison, <4 x i32> %173 = fmul <4 x double> %172, %163 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %166, <4 x double> %171, <4 x double> %173) store <4 x double> %174, ptr %_3.i.i.i.i571.2, align 8, !noalias !2993 %data.i.i.i.i.i.i.i.i504.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %data.i5.i.i.i.i.i.i.i509.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %data.i.i.i.i.i.i513.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %175 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i43.1 = load double, ptr %175, align 8, !noalias !2993, !noundef !3 %176 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %176, align 8, !noalias !2993, !noundef !3 %177 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %_6.i.i.i64.1 = fneg double %w1.1.i.i44.1 %178 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i504.1, align 8, !noalias !2993 %179 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i509.1, align 8, !noalias !2993 %180 = fadd <4 x double> %178, %179 store <4 x double> %180, ptr %data.i.i.i.i.i.i513.1, align 8, !noalias !2993 %181 = fsub <4 x double> %178, %179 %182 = shufflevector <4 x double> %181, <4 x double> poison, <4 x i32> %183 = insertelement <4 x double> poison, double %_6.i.i.i64.1, i64 0 %184 = insertelement <4 x double> %183, double %w1.1.i.i44.1, i64 1 %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %182, %185 %187 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %188 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> zeroinitializer %189 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %188, <4 x double> %181, <4 x double> %186) store <4 x double> %189, ptr %177, align 8, !noalias !2993 %_3.i.i.i.i.i.i.i.i562.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i565.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i.i.i568.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i571.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %190 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i562.2.1, align 8, !noalias !2993 %191 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i565.2.1, align 8, !noalias !2993 %192 = fadd <4 x double> %190, %191 store <4 x double> %192, ptr %_3.i.i.i.i.i.i568.2.1, align 8, !noalias !2993 %193 = fsub <4 x double> %190, %191 %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %185 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %188, <4 x double> %193, <4 x double> %195) store <4 x double> %196, ptr %_3.i.i.i.i571.2.1, align 8, !noalias !2993 %data.i.i.i.i.i.i.i.i504.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i509.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %197 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.i.i43.2 = load double, ptr %197, align 8, !noalias !2993, !noundef !3 %198 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.i.i44.2 = load double, ptr %198, align 8, !noalias !2993, !noundef !3 %199 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %_6.i.i.i64.2 = fneg double %w1.1.i.i44.2 %200 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i504.2, align 8, !noalias !2993 %201 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i509.2, align 8, !noalias !2993 %202 = fadd <4 x double> %200, %201 store <4 x double> %202, ptr %99, align 8, !noalias !2993 %203 = fsub <4 x double> %200, %201 %204 = shufflevector <4 x double> %203, <4 x double> poison, <4 x i32> %205 = insertelement <4 x double> poison, double %_6.i.i.i64.2, i64 0 %206 = insertelement <4 x double> %205, double %w1.1.i.i44.2, i64 1 %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %204, %207 %209 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> zeroinitializer %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %210, <4 x double> %203, <4 x double> %208) store <4 x double> %211, ptr %199, align 8, !noalias !2993 %_3.i.i.i.i.i.i.i.i562.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i2.i.i.i.i.i.i.i565.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %_3.i.i.i.i.i.i568.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i.i.i.i571.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %212 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i562.2.2, align 8, !noalias !2993 %213 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i565.2.2, align 8, !noalias !2993 %214 = fadd <4 x double> %212, %213 store <4 x double> %214, ptr %_3.i.i.i.i.i.i568.2.2, align 8, !noalias !2993 %215 = fsub <4 x double> %212, %213 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %216, %207 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %210, <4 x double> %215, <4 x double> %217) store <4 x double> %218, ptr %_3.i.i.i.i571.2.2, align 8, !noalias !2993 %data.i.i.i.i.i.i.i.i504.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i5.i.i.i.i.i.i.i509.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i513.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %219 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i43.3 = load double, ptr %219, align 8, !noalias !2993, !noundef !3 %220 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i44.3 = load double, ptr %220, align 8, !noalias !2993, !noundef !3 %221 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_6.i.i.i64.3 = fneg double %w1.1.i.i44.3 %222 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i504.3, align 8, !noalias !2993 %223 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i509.3, align 8, !noalias !2993 %224 = fadd <4 x double> %222, %223 store <4 x double> %224, ptr %data.i.i.i.i.i.i513.3, align 8, !noalias !2993 %225 = fsub <4 x double> %222, %223 %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = insertelement <4 x double> poison, double %_6.i.i.i64.3, i64 0 %228 = insertelement <4 x double> %227, double %w1.1.i.i44.3, i64 1 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = fmul <4 x double> %226, %229 %231 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> zeroinitializer %233 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %232, <4 x double> %225, <4 x double> %230) store <4 x double> %233, ptr %221, align 8, !noalias !2993 %_3.i.i.i.i.i.i.i.i562.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_3.i2.i.i.i.i.i.i.i565.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %_3.i.i.i.i.i.i568.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i.i.i.i571.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %234 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i562.2.3, align 8, !noalias !2993 %235 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i565.2.3, align 8, !noalias !2993 %236 = fadd <4 x double> %234, %235 store <4 x double> %236, ptr %_3.i.i.i.i.i.i568.2.3, align 8, !noalias !2993 %237 = fsub <4 x double> %234, %235 %238 = shufflevector <4 x double> %237, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %238, %229 %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %232, <4 x double> %237, <4 x double> %239) store <4 x double> %240, ptr %_3.i.i.i.i571.2.3, align 8, !noalias !2993 %w1.0.i.i115 = load double, ptr %153, align 8, !noalias !2984, !noundef !3 %w1.1.i.i116 = load double, ptr %154, align 8, !noalias !2984, !noundef !3 %_6.i.i.i136 = fneg double %w1.1.i.i116 %241 = load <4 x double>, ptr %scratch.0, align 8, !noalias !2984 %242 = load <4 x double>, ptr %99, align 8, !noalias !2984 %243 = fadd <4 x double> %241, %242 store <4 x double> %243, ptr %buf.0, align 8, !noalias !2984 %244 = fsub <4 x double> %241, %242 %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = insertelement <4 x double> poison, double %_6.i.i.i136, i64 0 %247 = insertelement <4 x double> %246, double %w1.1.i.i116, i64 1 %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %245, %248 %250 = insertelement <4 x double> poison, double %w1.0.i.i115, i64 0 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> zeroinitializer %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %244, <4 x double> %249) store <4 x double> %252, ptr %data.i.i.i.i.i.i.i.i504.2, align 8, !noalias !2984 %253 = load <4 x double>, ptr %_3.i.i.i.i.i.i568.2, align 8, !noalias !2984 %254 = load <4 x double>, ptr %_3.i.i.i.i.i.i568.2.2, align 8, !noalias !2984 %255 = fadd <4 x double> %253, %254 store <4 x double> %255, ptr %_3.i.i.i.i.i.i.i.i562.2, align 8, !noalias !2984 %256 = fsub <4 x double> %253, %254 %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = fmul <4 x double> %257, %248 %259 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %256, <4 x double> %258) store <4 x double> %259, ptr %_3.i.i.i.i.i.i.i.i562.2.2, align 8, !noalias !2984 %_3.i.i.i.i744.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %260 = load <4 x double>, ptr %155, align 8, !noalias !2984 %261 = load <4 x double>, ptr %199, align 8, !noalias !2984 %262 = fadd <4 x double> %260, %261 store <4 x double> %262, ptr %data.i.i.i.i.i.i.i.i504.1, align 8, !noalias !2984 %263 = fsub <4 x double> %260, %261 %264 = shufflevector <4 x double> %263, <4 x double> poison, <4 x i32> %265 = fmul <4 x double> %264, %248 %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %263, <4 x double> %265) store <4 x double> %266, ptr %_3.i.i.i.i744.4, align 8, !noalias !2984 %_3.i.i.i.i.i.i.i.i735.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i738.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i741.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i744.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %267 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i735.6, align 8, !noalias !2984 %268 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i738.6, align 8, !noalias !2984 %269 = fadd <4 x double> %267, %268 store <4 x double> %269, ptr %_3.i.i.i.i.i.i741.6, align 8, !noalias !2984 %270 = fsub <4 x double> %267, %268 %271 = shufflevector <4 x double> %270, <4 x double> poison, <4 x i32> %272 = fmul <4 x double> %271, %248 %273 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %270, <4 x double> %272) store <4 x double> %273, ptr %_3.i.i.i.i744.6, align 8, !noalias !2984 %data.i5.i.i.i.i.i.i.i682.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %w1.0.i.i115.1 = load double, ptr %197, align 8, !noalias !2984, !noundef !3 %w1.1.i.i116.1 = load double, ptr %198, align 8, !noalias !2984, !noundef !3 %_6.i.i.i136.1 = fneg double %w1.1.i.i116.1 %274 = load <4 x double>, ptr %data.i.i.i.i.i.i513.1, align 8, !noalias !2984 %275 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i682.1, align 8, !noalias !2984 %276 = fadd <4 x double> %274, %275 store <4 x double> %276, ptr %0, align 8, !noalias !2984 %277 = fsub <4 x double> %274, %275 %278 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> %279 = insertelement <4 x double> poison, double %_6.i.i.i136.1, i64 0 %280 = insertelement <4 x double> %279, double %w1.1.i.i116.1, i64 1 %281 = shufflevector <4 x double> %280, <4 x double> poison, <4 x i32> %282 = fmul <4 x double> %278, %281 %283 = insertelement <4 x double> poison, double %w1.0.i.i115.1, i64 0 %284 = shufflevector <4 x double> %283, <4 x double> poison, <4 x i32> zeroinitializer %285 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %284, <4 x double> %277, <4 x double> %282) store <4 x double> %285, ptr %data.i5.i.i.i.i.i.i.i509.2, align 8, !noalias !2984 %_3.i2.i.i.i.i.i.i.i738.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %286 = load <4 x double>, ptr %_3.i.i.i.i.i.i568.2.1, align 8, !noalias !2984 %287 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i738.2.1, align 8, !noalias !2984 %288 = fadd <4 x double> %286, %287 store <4 x double> %288, ptr %_3.i2.i.i.i.i.i.i.i565.2, align 8, !noalias !2984 %289 = fsub <4 x double> %286, %287 %290 = shufflevector <4 x double> %289, <4 x double> poison, <4 x i32> %291 = fmul <4 x double> %290, %281 %292 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %284, <4 x double> %289, <4 x double> %291) store <4 x double> %292, ptr %_3.i2.i.i.i.i.i.i.i565.2.2, align 8, !noalias !2984 %_3.i2.i.i.i.i.i.i.i738.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_3.i.i.i.i744.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %293 = load <4 x double>, ptr %177, align 8, !noalias !2984 %294 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i738.4.1, align 8, !noalias !2984 %295 = fadd <4 x double> %293, %294 store <4 x double> %295, ptr %data.i5.i.i.i.i.i.i.i509.1, align 8, !noalias !2984 %296 = fsub <4 x double> %293, %294 %297 = shufflevector <4 x double> %296, <4 x double> poison, <4 x i32> %298 = fmul <4 x double> %297, %281 %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %284, <4 x double> %296, <4 x double> %298) store <4 x double> %299, ptr %_3.i.i.i.i744.4.1, align 8, !noalias !2984 %_3.i.i.i.i.i.i.i.i735.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i2.i.i.i.i.i.i.i738.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i741.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i744.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %300 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i735.6.1, align 8, !noalias !2984 %301 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i738.6.1, align 8, !noalias !2984 %302 = fadd <4 x double> %300, %301 store <4 x double> %302, ptr %_3.i.i.i.i.i.i741.6.1, align 8, !noalias !2984 %303 = fsub <4 x double> %300, %301 %304 = shufflevector <4 x double> %303, <4 x double> poison, <4 x i32> %305 = fmul <4 x double> %304, %281 %306 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %284, <4 x double> %303, <4 x double> %305) store <4 x double> %306, ptr %_3.i.i.i.i744.6.1, align 8, !noalias !2984 %wide.vec33 = load <8 x double>, ptr %buf.0, align 8, !noalias !2984 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %wide.vec36 = load <8 x double>, ptr %0, align 8, !noalias !2984 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %307 = fadd <4 x double> %strided.vec34, %strided.vec37 %308 = fadd <4 x double> %strided.vec35, %strided.vec38 %309 = fsub <4 x double> %strided.vec34, %strided.vec37 %310 = fsub <4 x double> %strided.vec35, %strided.vec38 %interleaved.vec39 = shufflevector <4 x double> %307, <4 x double> %308, <8 x i32> store <8 x double> %interleaved.vec39, ptr %buf.0, align 8, !noalias !2984 %interleaved.vec40 = shufflevector <4 x double> %309, <4 x double> %310, <8 x i32> store <8 x double> %interleaved.vec40, ptr %0, align 8, !noalias !2984 %311 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %312 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec33.1 = load <8 x double>, ptr %311, align 8, !noalias !2984 %strided.vec34.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %wide.vec36.1 = load <8 x double>, ptr %312, align 8, !noalias !2984 %strided.vec37.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %strided.vec38.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %313 = fadd <4 x double> %strided.vec34.1, %strided.vec37.1 %314 = fadd <4 x double> %strided.vec35.1, %strided.vec38.1 %315 = fsub <4 x double> %strided.vec34.1, %strided.vec37.1 %316 = fsub <4 x double> %strided.vec35.1, %strided.vec38.1 %interleaved.vec39.1 = shufflevector <4 x double> %313, <4 x double> %314, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %311, align 8, !noalias !2984 %interleaved.vec40.1 = shufflevector <4 x double> %315, <4 x double> %316, <8 x i32> store <8 x double> %interleaved.vec40.1, ptr %312, align 8, !noalias !2984 %317 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %318 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec33.2 = load <8 x double>, ptr %317, align 8, !noalias !2984 %strided.vec34.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %wide.vec36.2 = load <8 x double>, ptr %318, align 8, !noalias !2984 %strided.vec37.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %strided.vec38.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %319 = fadd <4 x double> %strided.vec34.2, %strided.vec37.2 %320 = fadd <4 x double> %strided.vec35.2, %strided.vec38.2 %321 = fsub <4 x double> %strided.vec34.2, %strided.vec37.2 %322 = fsub <4 x double> %strided.vec35.2, %strided.vec38.2 %interleaved.vec39.2 = shufflevector <4 x double> %319, <4 x double> %320, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %317, align 8, !noalias !2984 %interleaved.vec40.2 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec40.2, ptr %318, align 8, !noalias !2984 %323 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %324 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec33.3 = load <8 x double>, ptr %323, align 8, !noalias !2984 %strided.vec34.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %strided.vec35.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %wide.vec36.3 = load <8 x double>, ptr %324, align 8, !noalias !2984 %strided.vec37.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %strided.vec38.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %325 = fadd <4 x double> %strided.vec34.3, %strided.vec37.3 %326 = fadd <4 x double> %strided.vec35.3, %strided.vec38.3 %327 = fsub <4 x double> %strided.vec34.3, %strided.vec37.3 %328 = fsub <4 x double> %strided.vec35.3, %strided.vec38.3 %interleaved.vec39.3 = shufflevector <4 x double> %325, <4 x double> %326, <8 x i32> store <8 x double> %interleaved.vec39.3, ptr %323, align 8, !noalias !2984 %interleaved.vec40.3 = shufflevector <4 x double> %327, <4 x double> %328, <8 x i32> store <8 x double> %interleaved.vec40.3, ptr %324, align 8, !noalias !2984 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !2984 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3b9bd248865c2917E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !2996 store i64 32, ptr %n.i.i, align 8, !noalias !2996 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2996 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !2996 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !2996 store ptr null, ptr %_16.i.i, align 8, !noalias !2996 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !2996 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2996 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !2996 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !2996 store ptr null, ptr %_24.i.i, align 8, !noalias !2996 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !2996 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2996 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !2996 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !2996 store ptr null, ptr %_32.i.i, align 8, !noalias !2996 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !2996 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2996 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !2996 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hb5d047132924f7c1E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !2996 store ptr null, ptr %_40.i.i, align 8, !noalias !2996 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17hb5d047132924f7c1E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !2996 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !3001 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !3001 store <4 x double> %5, ptr %2, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3001 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i store <4 x double> %6, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3001 store <4 x double> %7, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_51.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3001 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3001 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_51.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3001 %10 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i %11 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i store <4 x double> %10, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3001 store <4 x double> %11, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_51.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !3001 %12 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.4.i, %_52.i.i.i.sroa.0.0.copyload.4.i %13 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.4.i, %_52.i.i.i.sroa.0.0.copyload.4.i store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3001 store <4 x double> %13, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_51.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !3001 %14 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.5.i, %_52.i.i.i.sroa.0.0.copyload.5.i %15 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.5.i, %_52.i.i.i.sroa.0.0.copyload.5.i store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3001 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_51.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !3001 %16 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.6.i, %_52.i.i.i.sroa.0.0.copyload.6.i %17 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.6.i, %_52.i.i.i.sroa.0.0.copyload.6.i store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3001 store <4 x double> %17, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !3001 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_51.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !3001 %_52.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !3001 %18 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.7.i, %_52.i.i.i.sroa.0.0.copyload.7.i %19 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.7.i, %_52.i.i.i.sroa.0.0.copyload.7.i store <4 x double> %18, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3001 store <4 x double> %19, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !3001 tail call void @llvm.experimental.noalias.scope.decl(metadata !3005) tail call void @llvm.experimental.noalias.scope.decl(metadata !3008) %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %33 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %23, align 8, !alias.scope !3008, !noalias !3010 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %22, align 8, !alias.scope !3008, !noalias !3010 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %24, align 8, !alias.scope !3008, !noalias !3010 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %21, align 8, !alias.scope !3008, !noalias !3010 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %26, align 8, !alias.scope !3008, !noalias !3010 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %25, align 8, !alias.scope !3008, !noalias !3010 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %27, align 8, !alias.scope !3008, !noalias !3010 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %20, align 8, !alias.scope !3008, !noalias !3010 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %30, align 8, !alias.scope !3008, !noalias !3010 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %29, align 8, !alias.scope !3008, !noalias !3010 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %31, align 8, !alias.scope !3008, !noalias !3010 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !3008, !noalias !3010 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %33, align 8, !alias.scope !3008, !noalias !3010 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %32, align 8, !alias.scope !3008, !noalias !3010 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %34, align 8, !alias.scope !3008, !noalias !3010 %35 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %36 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %37 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %39 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %40 = fmul <4 x double> %37, %39 %41 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %36, <4 x double> %40) #23 %42 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %43 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> %44 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %45 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %46 = fmul <4 x double> %43, %45 %47 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %44, <4 x double> %42, <4 x double> %46) #23 %48 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %51 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %52 = fmul <4 x double> %49, %51 %53 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %48, <4 x double> %52) #23 %54 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %57 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %58 = fmul <4 x double> %55, %57 %59 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %54, <4 x double> %58) #23 %60 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %63 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %64 = fmul <4 x double> %61, %63 %65 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %60, <4 x double> %64) #23 %66 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %67 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> %68 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %69 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %70 = fmul <4 x double> %67, %69 %71 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %68, <4 x double> %66, <4 x double> %70) #23 %72 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %73 = shufflevector <4 x double> %72, <4 x double> poison, <4 x i32> %74 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %75 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %76 = fmul <4 x double> %73, %75 %77 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %74, <4 x double> %72, <4 x double> %76) #23 %78 = shufflevector <4 x double> %12, <4 x double> %13, <4 x i32> %79 = shufflevector <4 x double> %78, <4 x double> poison, <4 x i32> %80 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %81 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %79, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %80, <4 x double> %78, <4 x double> %82) #23 %84 = shufflevector <4 x double> %12, <4 x double> %13, <4 x i32> %85 = shufflevector <4 x double> %84, <4 x double> poison, <4 x i32> %86 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %87 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %88 = fmul <4 x double> %85, %87 %89 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %86, <4 x double> %84, <4 x double> %88) #23 %90 = shufflevector <4 x double> %14, <4 x double> %15, <4 x i32> %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %93 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %94 = fmul <4 x double> %91, %93 %95 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %90, <4 x double> %94) #23 %96 = shufflevector <4 x double> %14, <4 x double> %15, <4 x i32> %97 = shufflevector <4 x double> %96, <4 x double> poison, <4 x i32> %98 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %99 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %97, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %96, <4 x double> %100) #23 %102 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %105 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %106 = fmul <4 x double> %103, %105 %107 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %102, <4 x double> %106) #23 %108 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %109 = shufflevector <4 x double> %108, <4 x double> poison, <4 x i32> %110 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %111 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %112 = fmul <4 x double> %109, %111 %113 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %108, <4 x double> %112) #23 %114 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %116 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %117 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %115, %117 %119 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %114, <4 x double> %118) #23 %120 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %121 = shufflevector <4 x double> %120, <4 x double> poison, <4 x i32> %122 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %123 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %121, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %122, <4 x double> %120, <4 x double> %124) #23 %126 = fadd <4 x double> %35, %83 %127 = fsub <4 x double> %35, %83 %128 = fadd <4 x double> %59, %107 %129 = fsub <4 x double> %59, %107 %130 = fadd <4 x double> %47, %95 %131 = fsub <4 x double> %47, %95 %132 = fadd <4 x double> %71, %119 %133 = fsub <4 x double> %71, %119 %134 = fadd <4 x double> %41, %89 %135 = fsub <4 x double> %41, %89 %136 = fadd <4 x double> %65, %113 %137 = fsub <4 x double> %65, %113 %138 = fadd <4 x double> %53, %101 %139 = fsub <4 x double> %53, %101 %140 = fadd <4 x double> %77, %125 %141 = fsub <4 x double> %77, %125 %142 = bitcast <4 x double> %129 to <4 x i64> %143 = bitcast <4 x double> %133 to <4 x i64> %144 = bitcast <4 x double> %137 to <4 x i64> %145 = bitcast <4 x double> %141 to <4 x i64> %146 = xor <4 x i64> %142, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = xor <4 x i64> %143, %150 = bitcast <4 x i64> %149 to <4 x double> %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = xor <4 x i64> %144, %153 = bitcast <4 x i64> %152 to <4 x double> %154 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> %155 = xor <4 x i64> %145, %156 = bitcast <4 x i64> %155 to <4 x double> %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = fadd <4 x double> %126, %128 %159 = fsub <4 x double> %127, %148 %160 = fsub <4 x double> %126, %128 %161 = fadd <4 x double> %127, %148 %162 = fadd <4 x double> %130, %132 %163 = fsub <4 x double> %131, %151 %164 = fsub <4 x double> %130, %132 %165 = fadd <4 x double> %131, %151 %166 = fadd <4 x double> %134, %136 %167 = fsub <4 x double> %135, %154 %168 = fsub <4 x double> %134, %136 %169 = fadd <4 x double> %135, %154 %170 = fadd <4 x double> %138, %140 %171 = fsub <4 x double> %139, %157 %172 = fsub <4 x double> %138, %140 %173 = fadd <4 x double> %139, %157 %174 = bitcast <4 x double> %163 to <4 x i64> %175 = xor <4 x i64> %174, %176 = bitcast <4 x i64> %175 to <4 x double> %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fadd <4 x double> %163, %177 %179 = fmul <4 x double> %178, %180 = bitcast <4 x double> %164 to <4 x i64> %181 = xor <4 x i64> %180, %182 = bitcast <4 x i64> %181 to <4 x double> %183 = shufflevector <4 x double> %182, <4 x double> poison, <4 x i32> %184 = bitcast <4 x double> %165 to <4 x i64> %185 = xor <4 x i64> %184, %186 = bitcast <4 x i64> %185 to <4 x double> %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = fadd <4 x double> %165, %187 %189 = fmul <4 x double> %188, %190 = fadd <4 x double> %158, %162 %191 = fadd <4 x double> %159, %179 %192 = fsub <4 x double> %160, %183 %193 = fsub <4 x double> %161, %189 %194 = fsub <4 x double> %158, %162 %195 = fsub <4 x double> %159, %179 %196 = fadd <4 x double> %160, %183 %197 = fadd <4 x double> %161, %189 %198 = bitcast <4 x double> %171 to <4 x i64> %199 = xor <4 x i64> %198, %200 = bitcast <4 x i64> %199 to <4 x double> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = fadd <4 x double> %171, %201 %203 = fmul <4 x double> %202, %204 = bitcast <4 x double> %172 to <4 x i64> %205 = xor <4 x i64> %204, %206 = bitcast <4 x i64> %205 to <4 x double> %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = bitcast <4 x double> %173 to <4 x i64> %209 = xor <4 x i64> %208, %210 = bitcast <4 x i64> %209 to <4 x double> %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fadd <4 x double> %173, %211 %213 = fmul <4 x double> %212, %214 = fadd <4 x double> %166, %170 %215 = fadd <4 x double> %167, %203 %216 = fsub <4 x double> %168, %207 %217 = fsub <4 x double> %169, %213 %218 = fsub <4 x double> %166, %170 %219 = fsub <4 x double> %167, %203 %220 = fadd <4 x double> %168, %207 %221 = fadd <4 x double> %169, %213 %222 = fadd <4 x double> %190, %214 store <4 x double> %222, ptr %buf.0, align 8, !alias.scope !3005, !noalias !3012 %223 = fsub <4 x double> %190, %214 store <4 x double> %223, ptr %3, align 8, !alias.scope !3005, !noalias !3012 %224 = fmul <4 x double> %215, %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %215, <4 x double> %225) #23 %227 = fadd <4 x double> %226, %191 store <4 x double> %227, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !3005, !noalias !3012 %228 = fsub <4 x double> %191, %226 store <4 x double> %228, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !3005, !noalias !3012 %229 = bitcast <4 x double> %216 to <4 x i64> %230 = xor <4 x i64> %229, %231 = bitcast <4 x i64> %230 to <4 x double> %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fadd <4 x double> %216, %232 %234 = fmul <4 x double> %233, %235 = fadd <4 x double> %192, %234 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !3005, !noalias !3012 %236 = fsub <4 x double> %192, %234 store <4 x double> %236, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !3005, !noalias !3012 %237 = fmul <4 x double> %217, %238 = shufflevector <4 x double> %237, <4 x double> poison, <4 x i32> %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %217, <4 x double> %238) #23 %240 = bitcast <4 x double> %218 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %219, %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %219, <4 x double> %245) #23 %.sink.i31.i = fadd <4 x double> %194, %243 %.sink5280.i.i = fsub <4 x double> %194, %243 %.sink5281.i.i = fsub <4 x double> %193, %239 %.sink5282.i.i = fadd <4 x double> %239, %193 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !3005, !noalias !3012 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !3005, !noalias !3012 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.4.i, align 8, !alias.scope !3005, !noalias !3012 store <4 x double> %.sink.i31.i, ptr %_3.i.i.i.i.4.i, align 8, !alias.scope !3005, !noalias !3012 %247 = fsub <4 x double> %195, %246 store <4 x double> %247, ptr %_3.i.i.i.i.i.i.5.i, align 8, !alias.scope !3005, !noalias !3012 %248 = fadd <4 x double> %246, %195 store <4 x double> %248, ptr %_3.i.i.i.i.5.i, align 8, !alias.scope !3005, !noalias !3012 %249 = bitcast <4 x double> %220 to <4 x i64> %250 = xor <4 x i64> %249, %251 = bitcast <4 x i64> %250 to <4 x double> %252 = shufflevector <4 x double> %251, <4 x double> poison, <4 x i32> %253 = fmul <4 x double> %221, %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %221, <4 x double> %254) #23 %.pn5288.in.i.i = fadd <4 x double> %220, %252 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %196, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %196, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.6.i, align 8, !alias.scope !3005, !noalias !3012 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.6.i, align 8, !alias.scope !3005, !noalias !3012 %256 = fsub <4 x double> %197, %255 store <4 x double> %256, ptr %_3.i.i.i.i.i.i.7.i, align 8, !alias.scope !3005, !noalias !3012 %257 = fadd <4 x double> %197, %255 store <4 x double> %257, ptr %_3.i.i.i.i.7.i, align 8, !alias.scope !3005, !noalias !3012 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !2996 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3c30aa6807d5ffa6E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3013 store i64 512, ptr %n.i.i, align 8, !noalias !3013 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3013 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3013 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3013 store ptr null, ptr %_16.i.i, align 8, !noalias !3013 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3013 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3013 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3013 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3013 store ptr null, ptr %_24.i.i, align 8, !noalias !3013 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3013 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3013 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3013 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3013 store ptr null, ptr %_32.i.i, align 8, !noalias !3013 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3013 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3013 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3013 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f3b508f748144c4E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3013 store ptr null, ptr %_40.i.i, align 8, !noalias !3013 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f3b508f748144c4E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3013 tail call void @llvm.experimental.noalias.scope.decl(metadata !3018) tail call void @llvm.experimental.noalias.scope.decl(metadata !3021) tail call void @llvm.experimental.noalias.scope.decl(metadata !3023) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f3b508f748144c4E.exit.i" %iter.sroa.22.0124.i.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f3b508f748144c4E.exit.i" ], [ %15, %bb9.i.i ] %4 = or disjoint i64 %iter.sroa.22.0124.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0124.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.22.0124.i.i %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3018, !noalias !3025 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3018, !noalias !3025 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3023, !noalias !3026 %5 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %7 = shufflevector <4 x double> %6, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %10 = fmul <4 x double> %9, %7 %11 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %8, <4 x double> %6, <4 x double> %10) #23 %12 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3021, !noalias !3027 %13 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> %14 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i, i64 1 store <4 x double> %13, ptr %14, align 8, !alias.scope !3021, !noalias !3027 %15 = add nuw nsw i64 %iter.sroa.22.0124.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %a.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !3018, !noalias !3025 %b.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !3018, !noalias !3025 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !3023, !noalias !3026 %16 = fadd <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %17 = fsub <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> store <4 x double> %23, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !3021, !noalias !3027 %24 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %25 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4, i64 1 store <4 x double> %24, ptr %25, align 8, !alias.scope !3021, !noalias !3027 %exitcond.not.i.i.1 = icmp eq i64 %15, 128 br i1 %exitcond.not.i.i.1, label %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i, label %bb9.i.i _ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i: ; preds = %bb9.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3028) tail call void @llvm.experimental.noalias.scope.decl(metadata !3031) tail call void @llvm.experimental.noalias.scope.decl(metadata !3033) %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 br label %bb17.us.i.i bb17.us.i.i: ; preds = %bb17.us.i.i, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i %iter.sroa.38.0207.us.i.i = phi i64 [ 0, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i ], [ %50, %bb17.us.i.i ] %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0207.us.i.i %data.i5.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.38.0207.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %27 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %27, align 8, !alias.scope !3033, !noalias !3035, !noundef !3 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %28, align 8, !alias.scope !3033, !noalias !3035, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %31 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3028, !noalias !3036 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3028, !noalias !3036 %33 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i store <4 x double> %33, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3031, !noalias !3037 %34 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %32, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %34, <4 x double> %36) #23 store <4 x double> %37, ptr %30, align 8, !alias.scope !3031, !noalias !3037 %38 = or disjoint i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %38 %data.i5.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %38 %start1.i.i.i.i.i.i.us.i.i.1 = shl nuw i64 %38, 1 %data.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i.1 %39 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1 %w1.0.us.i.i.1 = load double, ptr %39, align 8, !alias.scope !3033, !noalias !3035, !noundef !3 %40 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1, i32 1 %w1.1.us.i.i.1 = load double, ptr %40, align 8, !alias.scope !3033, !noalias !3035, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i.1 = insertelement <2 x double> poison, double %w1.0.us.i.i.1, i64 0 %41 = insertelement <4 x double> poison, double %w1.1.us.i.i.1, i64 0 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i.1, i64 1 %43 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i.1, <2 x double> poison, <4 x i32> zeroinitializer %44 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3028, !noalias !3036 %b.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3028, !noalias !3036 %45 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 store <4 x double> %45, ptr %data.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3031, !noalias !3037 %46 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %44, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %46, <4 x double> %48) #23 store <4 x double> %49, ptr %42, align 8, !alias.scope !3031, !noalias !3037 %50 = add nuw nsw i64 %iter.sroa.38.0207.us.i.i, 2 %exitcond.not.i.1 = icmp eq i64 %50, 128 br i1 %exitcond.not.i.1, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i, label %bb17.us.i.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i: ; preds = %bb17.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3038) tail call void @llvm.experimental.noalias.scope.decl(metadata !3041) tail call void @llvm.experimental.noalias.scope.decl(metadata !3043) br label %bb17.us.i31.i bb17.us.i31.i: ; preds = %bb17.us.i31.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i %iter.sroa.38.0207.us.i32.i = phi i64 [ %67, %bb17.us.i31.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i ] %start1.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i32.i, 1 %data.i.i.i.i.i.i.i.i.us.i33.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.us.i34.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i35.i = shl i64 %iter.sroa.38.0207.us.i32.i, 2 %data.i.i.i.i.i.i.us.i36.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i35.i %51 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i35.i, i64 1 %w1.0.us.i37.i = load double, ptr %51, align 8, !alias.scope !3043, !noalias !3045, !noundef !3 %52 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i35.i, i64 1, i32 1 %w1.1.us.i38.i = load double, ptr %52, align 8, !alias.scope !3043, !noalias !3045, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.i = insertelement <2 x double> poison, double %w1.0.us.i37.i, i64 0 %53 = insertelement <4 x double> poison, double %w1.1.us.i38.i, i64 0 %54 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i36.i, i64 2 %55 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.i, <2 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.i, align 8, !alias.scope !3038, !noalias !3046 %b.sroa.0.0.copyload.us.i47.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.i, align 8, !alias.scope !3038, !noalias !3046 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.i, %b.sroa.0.0.copyload.us.i47.i store <4 x double> %57, ptr %data.i.i.i.i.i.i.us.i36.i, align 8, !alias.scope !3041, !noalias !3047 %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.i, %b.sroa.0.0.copyload.us.i47.i %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %56, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %58, <4 x double> %60) #23 store <4 x double> %61, ptr %54, align 8, !alias.scope !3041, !noalias !3047 %_3.i.i.i.i.i.i.i.i.us.i42.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i33.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i34.i, i64 1 %_3.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i36.i, i64 1 %_3.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i36.i, i64 3 %a.sroa.0.0.copyload.us.i46.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.i, align 8, !alias.scope !3038, !noalias !3046 %b.sroa.0.0.copyload.us.i47.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.i, align 8, !alias.scope !3038, !noalias !3046 %62 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.i, %b.sroa.0.0.copyload.us.i47.1.i store <4 x double> %62, ptr %_3.i.i.i.i.i.i.us.i44.1.i, align 8, !alias.scope !3041, !noalias !3047 %63 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.i, %b.sroa.0.0.copyload.us.i47.1.i %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %56, %64 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %63, <4 x double> %65) #23 store <4 x double> %66, ptr %_3.i.i.i.i.us.i45.1.i, align 8, !alias.scope !3041, !noalias !3047 %67 = add nuw nsw i64 %iter.sroa.38.0207.us.i32.i, 1 %exitcond251.not.i = icmp eq i64 %67, 64 br i1 %exitcond251.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i, label %bb17.us.i31.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i: ; preds = %bb17.us.i31.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3048) tail call void @llvm.experimental.noalias.scope.decl(metadata !3051) tail call void @llvm.experimental.noalias.scope.decl(metadata !3053) br label %bb17.us.i65.i bb17.us.i65.i: ; preds = %bb17.us.i65.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i %iter.sroa.38.0207.us.i66.i = phi i64 [ %94, %bb17.us.i65.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i ] %start1.i.i.i.i.i.i.i.i.us.i67.i = shl i64 %iter.sroa.38.0207.us.i66.i, 2 %data.i.i.i.i.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i67.i %data.i5.i.i.i.i.i.i.i.us.i69.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i67.i %start1.i.i.i.i.i.i.us.i70.i = shl i64 %iter.sroa.38.0207.us.i66.i, 3 %data.i.i.i.i.i.i.us.i71.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i70.i %68 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i70.i, i64 1 %w1.0.us.i72.i = load double, ptr %68, align 8, !alias.scope !3053, !noalias !3055, !noundef !3 %69 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i70.i, i64 1, i32 1 %w1.1.us.i73.i = load double, ptr %69, align 8, !alias.scope !3053, !noalias !3055, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i74.i = insertelement <2 x double> poison, double %w1.0.us.i72.i, i64 0 %70 = insertelement <4 x double> poison, double %w1.1.us.i73.i, i64 0 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 4 %72 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i74.i, <2 x double> poison, <4 x i32> zeroinitializer %73 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i81.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i68.i, align 8, !alias.scope !3048, !noalias !3056 %b.sroa.0.0.copyload.us.i82.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, align 8, !alias.scope !3048, !noalias !3056 %74 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.i, %b.sroa.0.0.copyload.us.i82.i store <4 x double> %74, ptr %data.i.i.i.i.i.i.us.i71.i, align 8, !alias.scope !3051, !noalias !3057 %75 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.i, %b.sroa.0.0.copyload.us.i82.i %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %73, %76 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %75, <4 x double> %77) #23 store <4 x double> %78, ptr %71, align 8, !alias.scope !3051, !noalias !3057 %_3.i.i.i.i.i.i.i.i.us.i77.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i68.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i78.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, i64 1 %_3.i.i.i.i.i.i.us.i79.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 1 %_3.i.i.i.i.us.i80.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 5 %a.sroa.0.0.copyload.us.i81.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.1.i, align 8, !alias.scope !3048, !noalias !3056 %b.sroa.0.0.copyload.us.i82.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i78.1.i, align 8, !alias.scope !3048, !noalias !3056 %79 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.1.i, %b.sroa.0.0.copyload.us.i82.1.i store <4 x double> %79, ptr %_3.i.i.i.i.i.i.us.i79.1.i, align 8, !alias.scope !3051, !noalias !3057 %80 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.1.i, %b.sroa.0.0.copyload.us.i82.1.i %81 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %73, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %80, <4 x double> %82) #23 store <4 x double> %83, ptr %_3.i.i.i.i.us.i80.1.i, align 8, !alias.scope !3051, !noalias !3057 %_3.i.i.i.i.i.i.i.i.us.i77.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i68.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i78.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, i64 2 %_3.i.i.i.i.i.i.us.i79.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 2 %_3.i.i.i.i.us.i80.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 6 %a.sroa.0.0.copyload.us.i81.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.2.i, align 8, !alias.scope !3048, !noalias !3056 %b.sroa.0.0.copyload.us.i82.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i78.2.i, align 8, !alias.scope !3048, !noalias !3056 %84 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.2.i, %b.sroa.0.0.copyload.us.i82.2.i store <4 x double> %84, ptr %_3.i.i.i.i.i.i.us.i79.2.i, align 8, !alias.scope !3051, !noalias !3057 %85 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.2.i, %b.sroa.0.0.copyload.us.i82.2.i %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %73, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %85, <4 x double> %87) #23 store <4 x double> %88, ptr %_3.i.i.i.i.us.i80.2.i, align 8, !alias.scope !3051, !noalias !3057 %_3.i.i.i.i.i.i.i.i.us.i77.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i68.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i78.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, i64 3 %_3.i.i.i.i.i.i.us.i79.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 3 %_3.i.i.i.i.us.i80.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 7 %a.sroa.0.0.copyload.us.i81.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.3.i, align 8, !alias.scope !3048, !noalias !3056 %b.sroa.0.0.copyload.us.i82.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i78.3.i, align 8, !alias.scope !3048, !noalias !3056 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.3.i, %b.sroa.0.0.copyload.us.i82.3.i store <4 x double> %89, ptr %_3.i.i.i.i.i.i.us.i79.3.i, align 8, !alias.scope !3051, !noalias !3057 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.3.i, %b.sroa.0.0.copyload.us.i82.3.i %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %73, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %90, <4 x double> %92) #23 store <4 x double> %93, ptr %_3.i.i.i.i.us.i80.3.i, align 8, !alias.scope !3051, !noalias !3057 %94 = add nuw nsw i64 %iter.sroa.38.0207.us.i66.i, 1 %exitcond252.not.i = icmp eq i64 %94, 32 br i1 %exitcond252.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i, label %bb17.us.i65.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i: ; preds = %bb17.us.i65.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3058) tail call void @llvm.experimental.noalias.scope.decl(metadata !3061) tail call void @llvm.experimental.noalias.scope.decl(metadata !3063) br label %bb17.us.i100.i bb17.us.i100.i: ; preds = %bb17.us.i100.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i %iter.sroa.38.0207.us.i101.i = phi i64 [ %141, %bb17.us.i100.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i ] %start1.i.i.i.i.i.i.i.i.us.i102.i = shl i64 %iter.sroa.38.0207.us.i101.i, 3 %data.i.i.i.i.i.i.i.i.us.i103.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i102.i %data.i5.i.i.i.i.i.i.i.us.i104.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i102.i %start1.i.i.i.i.i.i.us.i105.i = shl i64 %iter.sroa.38.0207.us.i101.i, 4 %data.i.i.i.i.i.i.us.i106.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i105.i %95 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i105.i, i64 1 %w1.0.us.i107.i = load double, ptr %95, align 8, !alias.scope !3063, !noalias !3065, !noundef !3 %96 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i105.i, i64 1, i32 1 %w1.1.us.i108.i = load double, ptr %96, align 8, !alias.scope !3063, !noalias !3065, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i109.i = insertelement <2 x double> poison, double %w1.0.us.i107.i, i64 0 %97 = insertelement <4 x double> poison, double %w1.1.us.i108.i, i64 0 %98 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 8 %99 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i109.i, <2 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i116.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i103.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, align 8, !alias.scope !3058, !noalias !3066 %101 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.i, %b.sroa.0.0.copyload.us.i117.i store <4 x double> %101, ptr %data.i.i.i.i.i.i.us.i106.i, align 8, !alias.scope !3061, !noalias !3067 %102 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.i, %b.sroa.0.0.copyload.us.i117.i %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %100, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %98, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i113.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 1 %_3.i.i.i.i.i.i.us.i114.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 1 %_3.i.i.i.i.us.i115.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 9 %a.sroa.0.0.copyload.us.i116.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.1.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.1.i, align 8, !alias.scope !3058, !noalias !3066 %106 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.1.i, %b.sroa.0.0.copyload.us.i117.1.i store <4 x double> %106, ptr %_3.i.i.i.i.i.i.us.i114.1.i, align 8, !alias.scope !3061, !noalias !3067 %107 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.1.i, %b.sroa.0.0.copyload.us.i117.1.i %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %100, %108 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %107, <4 x double> %109) #23 store <4 x double> %110, ptr %_3.i.i.i.i.us.i115.1.i, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i113.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 2 %_3.i.i.i.i.i.i.us.i114.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 2 %_3.i.i.i.i.us.i115.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 10 %a.sroa.0.0.copyload.us.i116.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.2.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.2.i, align 8, !alias.scope !3058, !noalias !3066 %111 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.2.i, %b.sroa.0.0.copyload.us.i117.2.i store <4 x double> %111, ptr %_3.i.i.i.i.i.i.us.i114.2.i, align 8, !alias.scope !3061, !noalias !3067 %112 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.2.i, %b.sroa.0.0.copyload.us.i117.2.i %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %100, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %112, <4 x double> %114) #23 store <4 x double> %115, ptr %_3.i.i.i.i.us.i115.2.i, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i113.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 3 %_3.i.i.i.i.i.i.us.i114.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 3 %_3.i.i.i.i.us.i115.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 11 %a.sroa.0.0.copyload.us.i116.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.3.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.3.i, align 8, !alias.scope !3058, !noalias !3066 %116 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.3.i, %b.sroa.0.0.copyload.us.i117.3.i store <4 x double> %116, ptr %_3.i.i.i.i.i.i.us.i114.3.i, align 8, !alias.scope !3061, !noalias !3067 %117 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.3.i, %b.sroa.0.0.copyload.us.i117.3.i %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %100, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %117, <4 x double> %119) #23 store <4 x double> %120, ptr %_3.i.i.i.i.us.i115.3.i, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i113.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 4 %_3.i.i.i.i.i.i.us.i114.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 4 %_3.i.i.i.i.us.i115.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 12 %a.sroa.0.0.copyload.us.i116.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.4.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.4.i, align 8, !alias.scope !3058, !noalias !3066 %121 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.4.i, %b.sroa.0.0.copyload.us.i117.4.i store <4 x double> %121, ptr %_3.i.i.i.i.i.i.us.i114.4.i, align 8, !alias.scope !3061, !noalias !3067 %122 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.4.i, %b.sroa.0.0.copyload.us.i117.4.i %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %100, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %122, <4 x double> %124) #23 store <4 x double> %125, ptr %_3.i.i.i.i.us.i115.4.i, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i113.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 5 %_3.i.i.i.i.i.i.us.i114.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 5 %_3.i.i.i.i.us.i115.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 13 %a.sroa.0.0.copyload.us.i116.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.5.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.5.i, align 8, !alias.scope !3058, !noalias !3066 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.5.i, %b.sroa.0.0.copyload.us.i117.5.i store <4 x double> %126, ptr %_3.i.i.i.i.i.i.us.i114.5.i, align 8, !alias.scope !3061, !noalias !3067 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.5.i, %b.sroa.0.0.copyload.us.i117.5.i %128 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %100, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %127, <4 x double> %129) #23 store <4 x double> %130, ptr %_3.i.i.i.i.us.i115.5.i, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i113.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 6 %_3.i.i.i.i.i.i.us.i114.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 6 %_3.i.i.i.i.us.i115.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 14 %a.sroa.0.0.copyload.us.i116.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.6.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.6.i, align 8, !alias.scope !3058, !noalias !3066 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.6.i, %b.sroa.0.0.copyload.us.i117.6.i store <4 x double> %131, ptr %_3.i.i.i.i.i.i.us.i114.6.i, align 8, !alias.scope !3061, !noalias !3067 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.6.i, %b.sroa.0.0.copyload.us.i117.6.i %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %100, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %132, <4 x double> %134) #23 store <4 x double> %135, ptr %_3.i.i.i.i.us.i115.6.i, align 8, !alias.scope !3061, !noalias !3067 %_3.i.i.i.i.i.i.i.i.us.i112.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i113.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 7 %_3.i.i.i.i.i.i.us.i114.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 7 %_3.i.i.i.i.us.i115.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 15 %a.sroa.0.0.copyload.us.i116.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.7.i, align 8, !alias.scope !3058, !noalias !3066 %b.sroa.0.0.copyload.us.i117.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.7.i, align 8, !alias.scope !3058, !noalias !3066 %136 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.7.i, %b.sroa.0.0.copyload.us.i117.7.i store <4 x double> %136, ptr %_3.i.i.i.i.i.i.us.i114.7.i, align 8, !alias.scope !3061, !noalias !3067 %137 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.7.i, %b.sroa.0.0.copyload.us.i117.7.i %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %100, %138 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %137, <4 x double> %139) #23 store <4 x double> %140, ptr %_3.i.i.i.i.us.i115.7.i, align 8, !alias.scope !3061, !noalias !3067 %141 = add nuw nsw i64 %iter.sroa.38.0207.us.i101.i, 1 %exitcond253.not.i = icmp eq i64 %141, 16 br i1 %exitcond253.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i, label %bb17.us.i100.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i: ; preds = %bb17.us.i100.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3068) tail call void @llvm.experimental.noalias.scope.decl(metadata !3071) tail call void @llvm.experimental.noalias.scope.decl(metadata !3073) br label %bb17.us.i135.i bb17.us.i135.i: ; preds = %bb17.us.i135.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i %iter.sroa.38.0207.us.i136.i = phi i64 [ %228, %bb17.us.i135.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i ] %start1.i.i.i.i.i.i.i.i.us.i137.i = shl i64 %iter.sroa.38.0207.us.i136.i, 4 %data.i.i.i.i.i.i.i.i.us.i138.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i137.i %data.i5.i.i.i.i.i.i.i.us.i139.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i137.i %start1.i.i.i.i.i.i.us.i140.i = shl i64 %iter.sroa.38.0207.us.i136.i, 5 %data.i.i.i.i.i.i.us.i141.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i140.i %142 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i140.i, i64 1 %w1.0.us.i142.i = load double, ptr %142, align 8, !alias.scope !3073, !noalias !3075, !noundef !3 %143 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i140.i, i64 1, i32 1 %w1.1.us.i143.i = load double, ptr %143, align 8, !alias.scope !3073, !noalias !3075, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i144.i = insertelement <2 x double> poison, double %w1.0.us.i142.i, i64 0 %144 = insertelement <4 x double> poison, double %w1.1.us.i143.i, i64 0 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 16 %146 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i144.i, <2 x double> poison, <4 x i32> zeroinitializer %147 = shufflevector <4 x double> %144, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i151.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i138.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, align 8, !alias.scope !3068, !noalias !3076 %148 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.i, %b.sroa.0.0.copyload.us.i152.i store <4 x double> %148, ptr %data.i.i.i.i.i.i.us.i141.i, align 8, !alias.scope !3071, !noalias !3077 %149 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.i, %b.sroa.0.0.copyload.us.i152.i %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %147, %150 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %149, <4 x double> %151) #23 store <4 x double> %152, ptr %145, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i148.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 1 %_3.i.i.i.i.i.i.us.i149.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 1 %_3.i.i.i.i.us.i150.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 17 %a.sroa.0.0.copyload.us.i151.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.1.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.1.i, align 8, !alias.scope !3068, !noalias !3076 %153 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.1.i, %b.sroa.0.0.copyload.us.i152.1.i store <4 x double> %153, ptr %_3.i.i.i.i.i.i.us.i149.1.i, align 8, !alias.scope !3071, !noalias !3077 %154 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.1.i, %b.sroa.0.0.copyload.us.i152.1.i %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %147, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %154, <4 x double> %156) #23 store <4 x double> %157, ptr %_3.i.i.i.i.us.i150.1.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i148.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 2 %_3.i.i.i.i.i.i.us.i149.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 2 %_3.i.i.i.i.us.i150.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 18 %a.sroa.0.0.copyload.us.i151.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.2.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.2.i, align 8, !alias.scope !3068, !noalias !3076 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.2.i, %b.sroa.0.0.copyload.us.i152.2.i store <4 x double> %158, ptr %_3.i.i.i.i.i.i.us.i149.2.i, align 8, !alias.scope !3071, !noalias !3077 %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.2.i, %b.sroa.0.0.copyload.us.i152.2.i %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %147, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %159, <4 x double> %161) #23 store <4 x double> %162, ptr %_3.i.i.i.i.us.i150.2.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i148.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 3 %_3.i.i.i.i.i.i.us.i149.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 3 %_3.i.i.i.i.us.i150.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 19 %a.sroa.0.0.copyload.us.i151.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.3.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.3.i, align 8, !alias.scope !3068, !noalias !3076 %163 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.3.i, %b.sroa.0.0.copyload.us.i152.3.i store <4 x double> %163, ptr %_3.i.i.i.i.i.i.us.i149.3.i, align 8, !alias.scope !3071, !noalias !3077 %164 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.3.i, %b.sroa.0.0.copyload.us.i152.3.i %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %147, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %164, <4 x double> %166) #23 store <4 x double> %167, ptr %_3.i.i.i.i.us.i150.3.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i148.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 4 %_3.i.i.i.i.i.i.us.i149.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 4 %_3.i.i.i.i.us.i150.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 20 %a.sroa.0.0.copyload.us.i151.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.4.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.4.i, align 8, !alias.scope !3068, !noalias !3076 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.4.i, %b.sroa.0.0.copyload.us.i152.4.i store <4 x double> %168, ptr %_3.i.i.i.i.i.i.us.i149.4.i, align 8, !alias.scope !3071, !noalias !3077 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.4.i, %b.sroa.0.0.copyload.us.i152.4.i %170 = shufflevector <4 x double> %169, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %147, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %169, <4 x double> %171) #23 store <4 x double> %172, ptr %_3.i.i.i.i.us.i150.4.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i148.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 5 %_3.i.i.i.i.i.i.us.i149.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 5 %_3.i.i.i.i.us.i150.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 21 %a.sroa.0.0.copyload.us.i151.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.5.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.5.i, align 8, !alias.scope !3068, !noalias !3076 %173 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.5.i, %b.sroa.0.0.copyload.us.i152.5.i store <4 x double> %173, ptr %_3.i.i.i.i.i.i.us.i149.5.i, align 8, !alias.scope !3071, !noalias !3077 %174 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.5.i, %b.sroa.0.0.copyload.us.i152.5.i %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %147, %175 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %174, <4 x double> %176) #23 store <4 x double> %177, ptr %_3.i.i.i.i.us.i150.5.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i148.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 6 %_3.i.i.i.i.i.i.us.i149.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 6 %_3.i.i.i.i.us.i150.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 22 %a.sroa.0.0.copyload.us.i151.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.6.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.6.i, align 8, !alias.scope !3068, !noalias !3076 %178 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.6.i, %b.sroa.0.0.copyload.us.i152.6.i store <4 x double> %178, ptr %_3.i.i.i.i.i.i.us.i149.6.i, align 8, !alias.scope !3071, !noalias !3077 %179 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.6.i, %b.sroa.0.0.copyload.us.i152.6.i %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %147, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.us.i150.6.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i148.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 7 %_3.i.i.i.i.i.i.us.i149.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 7 %_3.i.i.i.i.us.i150.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 23 %a.sroa.0.0.copyload.us.i151.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.7.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.7.i, align 8, !alias.scope !3068, !noalias !3076 %183 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.7.i, %b.sroa.0.0.copyload.us.i152.7.i store <4 x double> %183, ptr %_3.i.i.i.i.i.i.us.i149.7.i, align 8, !alias.scope !3071, !noalias !3077 %184 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.7.i, %b.sroa.0.0.copyload.us.i152.7.i %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %147, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %184, <4 x double> %186) #23 store <4 x double> %187, ptr %_3.i.i.i.i.us.i150.7.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i148.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 8 %_3.i.i.i.i.i.i.us.i149.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 8 %_3.i.i.i.i.us.i150.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 24 %a.sroa.0.0.copyload.us.i151.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.8.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.8.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.8.i, align 8, !alias.scope !3068, !noalias !3076 %188 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.8.i, %b.sroa.0.0.copyload.us.i152.8.i store <4 x double> %188, ptr %_3.i.i.i.i.i.i.us.i149.8.i, align 8, !alias.scope !3071, !noalias !3077 %189 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.8.i, %b.sroa.0.0.copyload.us.i152.8.i %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %147, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %189, <4 x double> %191) #23 store <4 x double> %192, ptr %_3.i.i.i.i.us.i150.8.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i148.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 9 %_3.i.i.i.i.i.i.us.i149.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 9 %_3.i.i.i.i.us.i150.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 25 %a.sroa.0.0.copyload.us.i151.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.9.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.9.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.9.i, align 8, !alias.scope !3068, !noalias !3076 %193 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.9.i, %b.sroa.0.0.copyload.us.i152.9.i store <4 x double> %193, ptr %_3.i.i.i.i.i.i.us.i149.9.i, align 8, !alias.scope !3071, !noalias !3077 %194 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.9.i, %b.sroa.0.0.copyload.us.i152.9.i %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %147, %195 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %194, <4 x double> %196) #23 store <4 x double> %197, ptr %_3.i.i.i.i.us.i150.9.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i148.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 10 %_3.i.i.i.i.i.i.us.i149.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 10 %_3.i.i.i.i.us.i150.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 26 %a.sroa.0.0.copyload.us.i151.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.10.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.10.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.10.i, align 8, !alias.scope !3068, !noalias !3076 %198 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.10.i, %b.sroa.0.0.copyload.us.i152.10.i store <4 x double> %198, ptr %_3.i.i.i.i.i.i.us.i149.10.i, align 8, !alias.scope !3071, !noalias !3077 %199 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.10.i, %b.sroa.0.0.copyload.us.i152.10.i %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %147, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %199, <4 x double> %201) #23 store <4 x double> %202, ptr %_3.i.i.i.i.us.i150.10.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i148.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 11 %_3.i.i.i.i.i.i.us.i149.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 11 %_3.i.i.i.i.us.i150.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 27 %a.sroa.0.0.copyload.us.i151.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.11.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.11.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.11.i, align 8, !alias.scope !3068, !noalias !3076 %203 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.11.i, %b.sroa.0.0.copyload.us.i152.11.i store <4 x double> %203, ptr %_3.i.i.i.i.i.i.us.i149.11.i, align 8, !alias.scope !3071, !noalias !3077 %204 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.11.i, %b.sroa.0.0.copyload.us.i152.11.i %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %147, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %204, <4 x double> %206) #23 store <4 x double> %207, ptr %_3.i.i.i.i.us.i150.11.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i148.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 12 %_3.i.i.i.i.i.i.us.i149.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 12 %_3.i.i.i.i.us.i150.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 28 %a.sroa.0.0.copyload.us.i151.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.12.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.12.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.12.i, align 8, !alias.scope !3068, !noalias !3076 %208 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.12.i, %b.sroa.0.0.copyload.us.i152.12.i store <4 x double> %208, ptr %_3.i.i.i.i.i.i.us.i149.12.i, align 8, !alias.scope !3071, !noalias !3077 %209 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.12.i, %b.sroa.0.0.copyload.us.i152.12.i %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = fmul <4 x double> %147, %210 %212 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %209, <4 x double> %211) #23 store <4 x double> %212, ptr %_3.i.i.i.i.us.i150.12.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i148.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 13 %_3.i.i.i.i.i.i.us.i149.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 13 %_3.i.i.i.i.us.i150.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 29 %a.sroa.0.0.copyload.us.i151.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.13.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.13.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.13.i, align 8, !alias.scope !3068, !noalias !3076 %213 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.13.i, %b.sroa.0.0.copyload.us.i152.13.i store <4 x double> %213, ptr %_3.i.i.i.i.i.i.us.i149.13.i, align 8, !alias.scope !3071, !noalias !3077 %214 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.13.i, %b.sroa.0.0.copyload.us.i152.13.i %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %147, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.us.i150.13.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i148.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 14 %_3.i.i.i.i.i.i.us.i149.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 14 %_3.i.i.i.i.us.i150.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 30 %a.sroa.0.0.copyload.us.i151.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.14.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.14.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.14.i, align 8, !alias.scope !3068, !noalias !3076 %218 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.14.i, %b.sroa.0.0.copyload.us.i152.14.i store <4 x double> %218, ptr %_3.i.i.i.i.i.i.us.i149.14.i, align 8, !alias.scope !3071, !noalias !3077 %219 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.14.i, %b.sroa.0.0.copyload.us.i152.14.i %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %147, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.us.i150.14.i, align 8, !alias.scope !3071, !noalias !3077 %_3.i.i.i.i.i.i.i.i.us.i147.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i148.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 15 %_3.i.i.i.i.i.i.us.i149.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 15 %_3.i.i.i.i.us.i150.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 31 %a.sroa.0.0.copyload.us.i151.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.15.i, align 8, !alias.scope !3068, !noalias !3076 %b.sroa.0.0.copyload.us.i152.15.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.15.i, align 8, !alias.scope !3068, !noalias !3076 %223 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.15.i, %b.sroa.0.0.copyload.us.i152.15.i store <4 x double> %223, ptr %_3.i.i.i.i.i.i.us.i149.15.i, align 8, !alias.scope !3071, !noalias !3077 %224 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.15.i, %b.sroa.0.0.copyload.us.i152.15.i %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %147, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %224, <4 x double> %226) #23 store <4 x double> %227, ptr %_3.i.i.i.i.us.i150.15.i, align 8, !alias.scope !3071, !noalias !3077 %228 = add nuw nsw i64 %iter.sroa.38.0207.us.i136.i, 1 %exitcond254.not.i = icmp eq i64 %228, 8 br i1 %exitcond254.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i, label %bb17.us.i135.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i: ; preds = %bb17.us.i135.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3078) tail call void @llvm.experimental.noalias.scope.decl(metadata !3081) tail call void @llvm.experimental.noalias.scope.decl(metadata !3083) %229 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i177.i = load double, ptr %229, align 8, !noalias !3013, !noundef !3 %230 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i178.i = load double, ptr %230, align 8, !noalias !3013, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i179.i = insertelement <2 x double> poison, double %w1.0.us.i177.i, i64 0 %231 = insertelement <4 x double> poison, double %w1.1.us.i178.i, i64 0 %232 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %233 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i179.i, <2 x double> poison, <4 x i32> zeroinitializer %234 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i180.i bb26.us.i180.i: ; preds = %bb26.us.i180.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i %iter6.sroa.22.0205.us.i181.i = phi i64 [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i ], [ %241, %bb26.us.i180.i ] %235 = or disjoint i64 %iter6.sroa.22.0205.us.i181.i, 1 %_3.i.i.i.i.i.i.i.i.us.i182.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0205.us.i181.i %_3.i2.i.i.i.i.i.i.i.us.i183.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0205.us.i181.i %_3.i.i.i.i.i.i.us.i184.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0205.us.i181.i %_3.i.i.i.i.us.i185.i = getelementptr inbounds %"fft_simd::c64x2", ptr %232, i64 %iter6.sroa.22.0205.us.i181.i %a.sroa.0.0.copyload.us.i186.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.i, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.i, align 8, !alias.scope !3078, !noalias !3085 %236 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.i, %b.sroa.0.0.copyload.us.i187.i store <4 x double> %236, ptr %_3.i.i.i.i.i.i.us.i184.i, align 8, !alias.scope !3081, !noalias !3086 %237 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.i, %b.sroa.0.0.copyload.us.i187.i %238 = shufflevector <4 x double> %237, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %234, %238 %240 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %237, <4 x double> %239) #23 store <4 x double> %240, ptr %_3.i.i.i.i.us.i185.i, align 8, !alias.scope !3081, !noalias !3086 %241 = add nuw nsw i64 %iter6.sroa.22.0205.us.i181.i, 2 %_3.i.i.i.i.i.i.i.i.us.i182.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %235 %_3.i2.i.i.i.i.i.i.i.us.i183.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %235 %_3.i.i.i.i.i.i.us.i184.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %235 %_3.i.i.i.i.us.i185.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %232, i64 %235 %a.sroa.0.0.copyload.us.i186.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.i.1, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.i.1, align 8, !alias.scope !3078, !noalias !3085 %242 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.i.1, %b.sroa.0.0.copyload.us.i187.i.1 store <4 x double> %242, ptr %_3.i.i.i.i.i.i.us.i184.i.1, align 8, !alias.scope !3081, !noalias !3086 %243 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.i.1, %b.sroa.0.0.copyload.us.i187.i.1 %244 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> %245 = fmul <4 x double> %234, %244 %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %243, <4 x double> %245) #23 store <4 x double> %246, ptr %_3.i.i.i.i.us.i185.i.1, align 8, !alias.scope !3081, !noalias !3086 %exitcond.not.i188.i.1 = icmp eq i64 %241, 32 br i1 %exitcond.not.i188.i.1, label %bb24.bb15.loopexit_crit_edge.us.i189.i, label %bb26.us.i180.i bb24.bb15.loopexit_crit_edge.us.i189.i: ; preds = %bb26.us.i180.i %data.i.i.i.i.i.i.i.i.us.i173.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i.us.i174.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %data.i.i.i.i.i.i.us.i176.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %247 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i177.1.i = load double, ptr %247, align 8, !alias.scope !3083, !noalias !3087, !noundef !3 %248 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i178.1.i = load double, ptr %248, align 8, !alias.scope !3083, !noalias !3087, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i179.1.i = insertelement <2 x double> poison, double %w1.0.us.i177.1.i, i64 0 %249 = insertelement <4 x double> poison, double %w1.1.us.i178.1.i, i64 0 %250 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %251 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i179.1.i, <2 x double> poison, <4 x i32> zeroinitializer %252 = shufflevector <4 x double> %249, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i180.1.i bb26.us.i180.1.i: ; preds = %bb26.us.i180.1.i, %bb24.bb15.loopexit_crit_edge.us.i189.i %iter6.sroa.22.0205.us.i181.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i189.i ], [ %259, %bb26.us.i180.1.i ] %253 = or disjoint i64 %iter6.sroa.22.0205.us.i181.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i182.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.1.i, i64 %iter6.sroa.22.0205.us.i181.1.i %_3.i2.i.i.i.i.i.i.i.us.i183.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.1.i, i64 %iter6.sroa.22.0205.us.i181.1.i %_3.i.i.i.i.i.i.us.i184.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.1.i, i64 %iter6.sroa.22.0205.us.i181.1.i %_3.i.i.i.i.us.i185.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %iter6.sroa.22.0205.us.i181.1.i %a.sroa.0.0.copyload.us.i186.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.1.i, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.1.i, align 8, !alias.scope !3078, !noalias !3085 %254 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.1.i, %b.sroa.0.0.copyload.us.i187.1.i store <4 x double> %254, ptr %_3.i.i.i.i.i.i.us.i184.1.i, align 8, !alias.scope !3081, !noalias !3086 %255 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.1.i, %b.sroa.0.0.copyload.us.i187.1.i %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %252, %256 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %251, <4 x double> %255, <4 x double> %257) #23 store <4 x double> %258, ptr %_3.i.i.i.i.us.i185.1.i, align 8, !alias.scope !3081, !noalias !3086 %259 = add nuw nsw i64 %iter6.sroa.22.0205.us.i181.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i182.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.1.i, i64 %253 %_3.i2.i.i.i.i.i.i.i.us.i183.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.1.i, i64 %253 %_3.i.i.i.i.i.i.us.i184.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.1.i, i64 %253 %_3.i.i.i.i.us.i185.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %253 %a.sroa.0.0.copyload.us.i186.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.1.i.1, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.1.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.1.i.1, align 8, !alias.scope !3078, !noalias !3085 %260 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.1.i.1, %b.sroa.0.0.copyload.us.i187.1.i.1 store <4 x double> %260, ptr %_3.i.i.i.i.i.i.us.i184.1.i.1, align 8, !alias.scope !3081, !noalias !3086 %261 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.1.i.1, %b.sroa.0.0.copyload.us.i187.1.i.1 %262 = shufflevector <4 x double> %261, <4 x double> poison, <4 x i32> %263 = fmul <4 x double> %252, %262 %264 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %251, <4 x double> %261, <4 x double> %263) #23 store <4 x double> %264, ptr %_3.i.i.i.i.us.i185.1.i.1, align 8, !alias.scope !3081, !noalias !3086 %exitcond.not.i188.1.i.1 = icmp eq i64 %259, 32 br i1 %exitcond.not.i188.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i189.1.i, label %bb26.us.i180.1.i bb24.bb15.loopexit_crit_edge.us.i189.1.i: ; preds = %bb26.us.i180.1.i %data.i.i.i.i.i.i.i.i.us.i173.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i.us.i174.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %265 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i177.2.i = load double, ptr %265, align 8, !noalias !3013, !noundef !3 %266 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i178.2.i = load double, ptr %266, align 8, !noalias !3013, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i179.2.i = insertelement <2 x double> poison, double %w1.0.us.i177.2.i, i64 0 %267 = insertelement <4 x double> poison, double %w1.1.us.i178.2.i, i64 0 %268 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %269 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i179.2.i, <2 x double> poison, <4 x i32> zeroinitializer %270 = shufflevector <4 x double> %267, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i180.2.i bb26.us.i180.2.i: ; preds = %bb26.us.i180.2.i, %bb24.bb15.loopexit_crit_edge.us.i189.1.i %iter6.sroa.22.0205.us.i181.2.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i189.1.i ], [ %277, %bb26.us.i180.2.i ] %271 = or disjoint i64 %iter6.sroa.22.0205.us.i181.2.i, 1 %_3.i.i.i.i.i.i.i.i.us.i182.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.2.i, i64 %iter6.sroa.22.0205.us.i181.2.i %_3.i2.i.i.i.i.i.i.i.us.i183.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.2.i, i64 %iter6.sroa.22.0205.us.i181.2.i %_3.i.i.i.i.i.i.us.i184.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.sroa.22.0205.us.i181.2.i %_3.i.i.i.i.us.i185.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %268, i64 %iter6.sroa.22.0205.us.i181.2.i %a.sroa.0.0.copyload.us.i186.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.2.i, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.2.i, align 8, !alias.scope !3078, !noalias !3085 %272 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.2.i, %b.sroa.0.0.copyload.us.i187.2.i store <4 x double> %272, ptr %_3.i.i.i.i.i.i.us.i184.2.i, align 8, !alias.scope !3081, !noalias !3086 %273 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.2.i, %b.sroa.0.0.copyload.us.i187.2.i %274 = shufflevector <4 x double> %273, <4 x double> poison, <4 x i32> %275 = fmul <4 x double> %270, %274 %276 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %273, <4 x double> %275) #23 store <4 x double> %276, ptr %_3.i.i.i.i.us.i185.2.i, align 8, !alias.scope !3081, !noalias !3086 %277 = add nuw nsw i64 %iter6.sroa.22.0205.us.i181.2.i, 2 %_3.i.i.i.i.i.i.i.i.us.i182.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.2.i, i64 %271 %_3.i2.i.i.i.i.i.i.i.us.i183.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.2.i, i64 %271 %_3.i.i.i.i.i.i.us.i184.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %271 %_3.i.i.i.i.us.i185.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %268, i64 %271 %a.sroa.0.0.copyload.us.i186.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.2.i.1, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.2.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.2.i.1, align 8, !alias.scope !3078, !noalias !3085 %278 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.2.i.1, %b.sroa.0.0.copyload.us.i187.2.i.1 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.us.i184.2.i.1, align 8, !alias.scope !3081, !noalias !3086 %279 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.2.i.1, %b.sroa.0.0.copyload.us.i187.2.i.1 %280 = shufflevector <4 x double> %279, <4 x double> poison, <4 x i32> %281 = fmul <4 x double> %270, %280 %282 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %279, <4 x double> %281) #23 store <4 x double> %282, ptr %_3.i.i.i.i.us.i185.2.i.1, align 8, !alias.scope !3081, !noalias !3086 %exitcond.not.i188.2.i.1 = icmp eq i64 %277, 32 br i1 %exitcond.not.i188.2.i.1, label %bb24.bb15.loopexit_crit_edge.us.i189.2.i, label %bb26.us.i180.2.i bb24.bb15.loopexit_crit_edge.us.i189.2.i: ; preds = %bb26.us.i180.2.i %data.i.i.i.i.i.i.i.i.us.i173.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i.us.i174.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %data.i.i.i.i.i.i.us.i176.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %283 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i177.3.i = load double, ptr %283, align 8, !alias.scope !3083, !noalias !3087, !noundef !3 %284 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i178.3.i = load double, ptr %284, align 8, !alias.scope !3083, !noalias !3087, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i179.3.i = insertelement <2 x double> poison, double %w1.0.us.i177.3.i, i64 0 %285 = insertelement <4 x double> poison, double %w1.1.us.i178.3.i, i64 0 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %287 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i179.3.i, <2 x double> poison, <4 x i32> zeroinitializer %288 = shufflevector <4 x double> %285, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i180.3.i bb26.us.i180.3.i: ; preds = %bb26.us.i180.3.i, %bb24.bb15.loopexit_crit_edge.us.i189.2.i %iter6.sroa.22.0205.us.i181.3.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i189.2.i ], [ %295, %bb26.us.i180.3.i ] %289 = or disjoint i64 %iter6.sroa.22.0205.us.i181.3.i, 1 %_3.i.i.i.i.i.i.i.i.us.i182.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.3.i, i64 %iter6.sroa.22.0205.us.i181.3.i %_3.i2.i.i.i.i.i.i.i.us.i183.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.3.i, i64 %iter6.sroa.22.0205.us.i181.3.i %_3.i.i.i.i.i.i.us.i184.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.3.i, i64 %iter6.sroa.22.0205.us.i181.3.i %_3.i.i.i.i.us.i185.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %iter6.sroa.22.0205.us.i181.3.i %a.sroa.0.0.copyload.us.i186.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.3.i, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.3.i, align 8, !alias.scope !3078, !noalias !3085 %290 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.3.i, %b.sroa.0.0.copyload.us.i187.3.i store <4 x double> %290, ptr %_3.i.i.i.i.i.i.us.i184.3.i, align 8, !alias.scope !3081, !noalias !3086 %291 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.3.i, %b.sroa.0.0.copyload.us.i187.3.i %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = fmul <4 x double> %288, %292 %294 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %287, <4 x double> %291, <4 x double> %293) #23 store <4 x double> %294, ptr %_3.i.i.i.i.us.i185.3.i, align 8, !alias.scope !3081, !noalias !3086 %295 = add nuw nsw i64 %iter6.sroa.22.0205.us.i181.3.i, 2 %_3.i.i.i.i.i.i.i.i.us.i182.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.3.i, i64 %289 %_3.i2.i.i.i.i.i.i.i.us.i183.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.3.i, i64 %289 %_3.i.i.i.i.i.i.us.i184.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.3.i, i64 %289 %_3.i.i.i.i.us.i185.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %289 %a.sroa.0.0.copyload.us.i186.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.3.i.1, align 8, !alias.scope !3078, !noalias !3085 %b.sroa.0.0.copyload.us.i187.3.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.3.i.1, align 8, !alias.scope !3078, !noalias !3085 %296 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.3.i.1, %b.sroa.0.0.copyload.us.i187.3.i.1 store <4 x double> %296, ptr %_3.i.i.i.i.i.i.us.i184.3.i.1, align 8, !alias.scope !3081, !noalias !3086 %297 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.3.i.1, %b.sroa.0.0.copyload.us.i187.3.i.1 %298 = shufflevector <4 x double> %297, <4 x double> poison, <4 x i32> %299 = fmul <4 x double> %288, %298 %300 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %287, <4 x double> %297, <4 x double> %299) #23 store <4 x double> %300, ptr %_3.i.i.i.i.us.i185.3.i.1, align 8, !alias.scope !3081, !noalias !3086 %exitcond.not.i188.3.i.1 = icmp eq i64 %295, 32 br i1 %exitcond.not.i188.3.i.1, label %bb24.bb15.loopexit_crit_edge.us.i189.3.i, label %bb26.us.i180.3.i bb24.bb15.loopexit_crit_edge.us.i189.3.i: ; preds = %bb26.us.i180.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3088) tail call void @llvm.experimental.noalias.scope.decl(metadata !3091) br label %bb26.us.i215.i bb26.us.i215.i: ; preds = %bb26.us.i215.i, %bb24.bb15.loopexit_crit_edge.us.i189.3.i %iter6.sroa.22.0205.us.i216.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i189.3.i ], [ %307, %bb26.us.i215.i ] %301 = or disjoint i64 %iter6.sroa.22.0205.us.i216.i, 1 %_3.i.i.i.i.i.i.i.i.us.i217.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0205.us.i216.i %_3.i2.i.i.i.i.i.i.i.us.i218.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.sroa.22.0205.us.i216.i %_3.i.i.i.i.i.i.us.i219.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0205.us.i216.i %_3.i.i.i.i.us.i220.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.2.i, i64 %iter6.sroa.22.0205.us.i216.i %a.sroa.0.0.copyload.us.i221.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i217.i, align 8, !alias.scope !3088, !noalias !3093 %b.sroa.0.0.copyload.us.i222.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i218.i, align 8, !alias.scope !3088, !noalias !3093 %302 = fadd <4 x double> %a.sroa.0.0.copyload.us.i221.i, %b.sroa.0.0.copyload.us.i222.i store <4 x double> %302, ptr %_3.i.i.i.i.i.i.us.i219.i, align 8, !alias.scope !3091, !noalias !3095 %303 = fsub <4 x double> %a.sroa.0.0.copyload.us.i221.i, %b.sroa.0.0.copyload.us.i222.i %304 = shufflevector <4 x double> %303, <4 x double> poison, <4 x i32> %305 = fmul <4 x double> %234, %304 %306 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %303, <4 x double> %305) #23 store <4 x double> %306, ptr %_3.i.i.i.i.us.i220.i, align 8, !alias.scope !3091, !noalias !3095 %307 = add nuw nsw i64 %iter6.sroa.22.0205.us.i216.i, 2 %_3.i.i.i.i.i.i.i.i.us.i217.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %301 %_3.i2.i.i.i.i.i.i.i.us.i218.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %301 %_3.i.i.i.i.i.i.us.i219.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %301 %_3.i.i.i.i.us.i220.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.2.i, i64 %301 %a.sroa.0.0.copyload.us.i221.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i217.i.1, align 8, !alias.scope !3088, !noalias !3093 %b.sroa.0.0.copyload.us.i222.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i218.i.1, align 8, !alias.scope !3088, !noalias !3093 %308 = fadd <4 x double> %a.sroa.0.0.copyload.us.i221.i.1, %b.sroa.0.0.copyload.us.i222.i.1 store <4 x double> %308, ptr %_3.i.i.i.i.i.i.us.i219.i.1, align 8, !alias.scope !3091, !noalias !3095 %309 = fsub <4 x double> %a.sroa.0.0.copyload.us.i221.i.1, %b.sroa.0.0.copyload.us.i222.i.1 %310 = shufflevector <4 x double> %309, <4 x double> poison, <4 x i32> %311 = fmul <4 x double> %234, %310 %312 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %309, <4 x double> %311) #23 store <4 x double> %312, ptr %_3.i.i.i.i.us.i220.i.1, align 8, !alias.scope !3091, !noalias !3095 %exitcond.not.i223.i.1 = icmp eq i64 %307, 64 br i1 %exitcond.not.i223.i.1, label %bb26.us.i215.1.i, label %bb26.us.i215.i bb26.us.i215.1.i: ; preds = %bb26.us.i215.i, %bb26.us.i215.1.i %iter6.sroa.22.0205.us.i216.1.i = phi i64 [ %319, %bb26.us.i215.1.i ], [ 0, %bb26.us.i215.i ] %313 = or disjoint i64 %iter6.sroa.22.0205.us.i216.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i217.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.1.i, i64 %iter6.sroa.22.0205.us.i216.1.i %_3.i2.i.i.i.i.i.i.i.us.i218.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.3.i, i64 %iter6.sroa.22.0205.us.i216.1.i %_3.i.i.i.i.i.i.us.i219.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0205.us.i216.1.i %_3.i.i.i.i.us.i220.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.2.i, i64 %iter6.sroa.22.0205.us.i216.1.i %a.sroa.0.0.copyload.us.i221.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i217.1.i, align 8, !alias.scope !3088, !noalias !3093 %b.sroa.0.0.copyload.us.i222.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i218.1.i, align 8, !alias.scope !3088, !noalias !3093 %314 = fadd <4 x double> %a.sroa.0.0.copyload.us.i221.1.i, %b.sroa.0.0.copyload.us.i222.1.i store <4 x double> %314, ptr %_3.i.i.i.i.i.i.us.i219.1.i, align 8, !alias.scope !3091, !noalias !3095 %315 = fsub <4 x double> %a.sroa.0.0.copyload.us.i221.1.i, %b.sroa.0.0.copyload.us.i222.1.i %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fmul <4 x double> %270, %316 %318 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %315, <4 x double> %317) #23 store <4 x double> %318, ptr %_3.i.i.i.i.us.i220.1.i, align 8, !alias.scope !3091, !noalias !3095 %319 = add nuw nsw i64 %iter6.sroa.22.0205.us.i216.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i217.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.1.i, i64 %313 %_3.i2.i.i.i.i.i.i.i.us.i218.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i176.3.i, i64 %313 %_3.i.i.i.i.i.i.us.i219.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %313 %_3.i.i.i.i.us.i220.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.2.i, i64 %313 %a.sroa.0.0.copyload.us.i221.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i217.1.i.1, align 8, !alias.scope !3088, !noalias !3093 %b.sroa.0.0.copyload.us.i222.1.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i218.1.i.1, align 8, !alias.scope !3088, !noalias !3093 %320 = fadd <4 x double> %a.sroa.0.0.copyload.us.i221.1.i.1, %b.sroa.0.0.copyload.us.i222.1.i.1 store <4 x double> %320, ptr %_3.i.i.i.i.i.i.us.i219.1.i.1, align 8, !alias.scope !3091, !noalias !3095 %321 = fsub <4 x double> %a.sroa.0.0.copyload.us.i221.1.i.1, %b.sroa.0.0.copyload.us.i222.1.i.1 %322 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> %323 = fmul <4 x double> %270, %322 %324 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %321, <4 x double> %323) #23 store <4 x double> %324, ptr %_3.i.i.i.i.us.i220.1.i.1, align 8, !alias.scope !3091, !noalias !3095 %exitcond.not.i223.1.i.1 = icmp eq i64 %319, 64 br i1 %exitcond.not.i223.1.i.1, label %bb9.i.i.i.i.i.i, label %bb26.us.i215.1.i bb9.i.i.i.i.i.i: ; preds = %bb26.us.i215.1.i, %bb9.i.i.i.i.i.i %iter.i.i.i.i.i.sroa.8.0250.i = phi i64 [ %334, %bb9.i.i.i.i.i.i ], [ 0, %bb26.us.i215.1.i ] %325 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0250.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0250.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0250.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3013 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !3013 %326 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %327 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %326, ptr %_3.i.i.i.i.i, align 8, !noalias !3013 store <4 x double> %327, ptr %_3.i2.i.i.i.i, align 8, !noalias !3013 %328 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0250.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %325 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %325 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3013 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3013 %329 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %330 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %329, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3013 store <4 x double> %330, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3013 %331 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0250.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %328 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %328 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3013 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3013 %332 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %333 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %332, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3013 store <4 x double> %333, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3013 %334 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0250.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %331 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %331 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3013 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3013 %335 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %336 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %335, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3013 store <4 x double> %336, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3013 %exitcond256.not.i.3 = icmp eq i64 %334, 128 br i1 %exitcond256.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17h630642c7c06afb1aE.exit, label %bb9.i.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h630642c7c06afb1aE.exit: ; preds = %bb9.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3013 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3cd5aaabc5298360E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h02396bd5be42e614E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h3d359fbd856574fcE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3096 store i64 8, ptr %n.i.i, align 8, !noalias !3096 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3096 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3096 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3096 store ptr null, ptr %_16.i.i, align 8, !noalias !3096 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3096 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3096 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3096 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3096 store ptr null, ptr %_24.i.i, align 8, !noalias !3096 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3096 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3096 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3096 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3096 store ptr null, ptr %_32.i.i, align 8, !noalias !3096 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3096 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3096 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3096 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h1d66b4dfe9d05afdE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3096 store ptr null, ptr %_40.i.i, align 8, !noalias !3096 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h1d66b4dfe9d05afdE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3096 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3101 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !3101 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !3101 store <4 x double> %5, ptr %2, align 8, !noalias !3101 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3101 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3101 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i store <4 x double> %6, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3101 store <4 x double> %7, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !3101 tail call void @llvm.experimental.noalias.scope.decl(metadata !3105) tail call void @llvm.experimental.noalias.scope.decl(metadata !3108) %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !3108, !noalias !3110 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !3108, !noalias !3110 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !3108, !noalias !3110 %11 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %12 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %15 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %16 = fmul <4 x double> %13, %15 %17 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %12, <4 x double> %16) #23 %18 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %19, %21 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %25, %27 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %11, %23 %31 = fsub <4 x double> %11, %23 %32 = fadd <4 x double> %17, %29 %33 = fsub <4 x double> %17, %29 %34 = bitcast <4 x double> %33 to <4 x i64> %35 = xor <4 x i64> %34, %36 = bitcast <4 x i64> %35 to <4 x double> %37 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> %38 = fadd <4 x double> %30, %32 store <4 x double> %38, ptr %buf.0, align 8, !alias.scope !3105, !noalias !3112 %39 = fsub <4 x double> %31, %37 store <4 x double> %39, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !3105, !noalias !3112 %40 = fsub <4 x double> %30, %32 store <4 x double> %40, ptr %3, align 8, !alias.scope !3105, !noalias !3112 %41 = fadd <4 x double> %31, %37 store <4 x double> %41, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !3105, !noalias !3112 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3096 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h40b9baf698c66902E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h6a0c2959c1a3677bE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h40d8983c418f1cd6E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3113 store i64 64, ptr %n.i.i, align 8, !noalias !3113 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3113 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3113 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3113 store ptr null, ptr %_16.i.i, align 8, !noalias !3113 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3113 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3113 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3113 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3113 store ptr null, ptr %_24.i.i, align 8, !noalias !3113 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3113 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3113 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3113 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3113 store ptr null, ptr %_32.i.i, align 8, !noalias !3113 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3113 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3113 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3113 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f4f90b38a31bfa1E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3113 store ptr null, ptr %_40.i.i, align 8, !noalias !3113 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f4f90b38a31bfa1E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3113 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f4f90b38a31bfa1E.exit.i" %iter14.i.i.i.sroa.106.0522.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f4f90b38a31bfa1E.exit.i" ], [ %16, %bb38.i.i.i.i ] %16 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter14.i.i.i.sroa.106.0522.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !3118 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !3118 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !3118 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !3118 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !3118 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !3118 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !3118 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !3118 %17 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %18 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %19 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %20 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = xor <4 x i64> %21, %23 = bitcast <4 x i64> %22 to <4 x double> %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %26 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %27 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %28 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %29 = bitcast <4 x double> %28 to <4 x i64> %30 = xor <4 x i64> %29, %31 = bitcast <4 x i64> %30 to <4 x double> %32 = shufflevector <4 x double> %31, <4 x double> poison, <4 x i32> %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %24 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %24 %37 = fadd <4 x double> %25, %27 %38 = fsub <4 x double> %26, %32 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %38, %42 %44 = fmul <4 x double> %43, %45 = fsub <4 x double> %25, %27 %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %26, %32 %51 = bitcast <4 x double> %50 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %50, %54 %56 = fmul <4 x double> %55, %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %44 %59 = fsub <4 x double> %35, %49 %60 = fsub <4 x double> %36, %56 %61 = fsub <4 x double> %33, %37 %62 = fsub <4 x double> %34, %44 %63 = fadd <4 x double> %35, %49 %64 = fadd <4 x double> %36, %56 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %62, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 store <4 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3118 %exitcond.not.i = icmp eq i64 %16, 4 br i1 %exitcond.not.i, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i", label %bb38.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i": ; preds = %bb38.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3122) tail call void @llvm.experimental.noalias.scope.decl(metadata !3125) tail call void @llvm.experimental.noalias.scope.decl(metadata !3127) %65 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %66 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" %iter.sroa.106.01794.i.i = phi i64 [ %72, %bb23.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" ] %72 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %66, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %65, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3127, !noalias !3129 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3125, !noalias !3130 %73 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %73, align 8, !alias.scope !3125, !noalias !3130 %74 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %74, align 8, !alias.scope !3125, !noalias !3130 %75 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %75, align 8, !alias.scope !3125, !noalias !3130 %76 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %76, align 8, !alias.scope !3125, !noalias !3130 %77 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %77, align 8, !alias.scope !3125, !noalias !3130 %78 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %78, align 8, !alias.scope !3125, !noalias !3130 %79 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %79, align 8, !alias.scope !3125, !noalias !3130 %80 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %81 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %84, %82 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %81, <4 x double> %85) #23 %87 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %88 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> %89 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %88 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %89, <4 x double> %87, <4 x double> %91) #23 %93 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %94 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %95, <4 x double> %93, <4 x double> %97) #23 %99 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %100 = shufflevector <4 x double> %99, <4 x double> poison, <4 x i32> %101 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %102 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %103 = fmul <4 x double> %102, %100 %104 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %101, <4 x double> %99, <4 x double> %103) #23 %105 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %106 = shufflevector <4 x double> %105, <4 x double> poison, <4 x i32> %107 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %108 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %108, %106 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %105, <4 x double> %109) #23 %111 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %112 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> %113 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %114 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %115 = fmul <4 x double> %114, %112 %116 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %111, <4 x double> %115) #23 %117 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %120 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %120, %118 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %117, <4 x double> %121) #23 %123 = fadd <4 x double> %80, %104 %124 = fsub <4 x double> %80, %104 %125 = fadd <4 x double> %92, %116 %126 = fsub <4 x double> %92, %116 %127 = bitcast <4 x double> %126 to <4 x i64> %128 = fsub <4 x double> %98, %122 %129 = bitcast <4 x double> %128 to <4 x i64> %130 = xor <4 x i64> %127, %131 = bitcast <4 x i64> %130 to <4 x double> %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = xor <4 x i64> %129, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fadd <4 x double> %86, %110 %137 = fsub <4 x double> %86, %110 %138 = fadd <4 x double> %98, %122 %139 = fadd <4 x double> %123, %125 %140 = fadd <4 x double> %136, %138 %141 = fadd <4 x double> %139, %140 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %142 = fsub <4 x double> %139, %140 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %143 = fsub <4 x double> %124, %132 %144 = fsub <4 x double> %137, %135 %145 = bitcast <4 x double> %144 to <4 x i64> %146 = xor <4 x i64> %145, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = fadd <4 x double> %144, %148 %150 = fmul <4 x double> %149, %151 = fadd <4 x double> %143, %150 store <4 x double> %151, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %152 = fsub <4 x double> %143, %150 store <4 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %153 = fsub <4 x double> %123, %125 %154 = fsub <4 x double> %136, %138 %155 = bitcast <4 x double> %154 to <4 x i64> %156 = fadd <4 x double> %124, %132 %157 = fadd <4 x double> %137, %135 %158 = xor <4 x i64> %155, %159 = bitcast <4 x i64> %158 to <4 x double> %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fsub <4 x double> %153, %160 store <4 x double> %161, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %162 = fadd <4 x double> %153, %160 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %163 = bitcast <4 x double> %157 to <4 x i64> %164 = xor <4 x i64> %163, %165 = bitcast <4 x i64> %164 to <4 x double> %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = fadd <4 x double> %157, %166 %168 = fmul <4 x double> %167, %169 = fsub <4 x double> %156, %168 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %170 = fadd <4 x double> %156, %168 store <4 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3122, !noalias !3131 %exitcond.not.i.i = icmp eq i64 %72, 4 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hf57ea0281e640413E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17hf57ea0281e640413E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3113 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4100621e54298db9E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h3e81fc2dcda42bacE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h418e5301b6172027E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3132 store i64 512, ptr %n.i, align 8, !noalias !3132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3132 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3132 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3132 store ptr null, ptr %_16.i, align 8, !noalias !3132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3132 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3132 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3132 store ptr null, ptr %_24.i, align 8, !noalias !3132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3132 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3132 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3132 store ptr null, ptr %_32.i, align 8, !noalias !3132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3132 store i64 %w.1, ptr %_34.i, align 8, !noalias !3132 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3132 store ptr null, ptr %_40.i, align 8, !noalias !3132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3132 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !3135 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !3135 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !3135 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !3135 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !3135 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !3135 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !3135 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !3135 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !3135 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !3135 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fsub <4 x double> %20, %25 %29 = fadd <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fadd <4 x double> %20, %25 %41 = fsub <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !3135 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 124 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !3138 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !3135, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !3135, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !3135, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !3135, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !3135, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !3135, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 498 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 497 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 499 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3135 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3135 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3135 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !3135 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !3135 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fsub <2 x double> %69, %71 %73 = fadd <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !3135 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !3135 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !3135 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 381 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !3135, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !3135, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !3135, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !3135, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !3135, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !3135, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 502 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 501 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 503 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3135 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3135 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3135 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !3135 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !3135 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fsub <2 x double> %114, %116 %118 = fadd <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !3135 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !3135 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !3135 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 382 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !3135, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !3135, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !3135, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !3135, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !3135, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !3135, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3135 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3135 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3135 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !3135 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !3135 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fsub <2 x double> %159, %161 %163 = fadd <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !3135 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !3135 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !3135 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 383 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !3135, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !3135, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !3135, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !3135, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !3135, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !3135, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3135 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3135 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3135 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !3135 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !3135 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fsub <2 x double> %204, %206 %208 = fadd <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !3135 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !3135 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !3135 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !3132 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !3132 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !3132 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !3132 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !3132 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !3132 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !3132 %295 = fsub <4 x double> %277, %282 %296 = fadd <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !3132 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !3132 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !3132 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !3132 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !3132 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !3132 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !3132 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !3132 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !3132 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !3132 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !3132 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !3132 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !3132 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !3132 %327 = fadd <4 x double> %277, %282 %328 = fsub <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !3132 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !3132 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !3132 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !3132 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !3132 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !3132 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !3132 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !3132 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !3132 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !3132 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !3132 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !3132 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !3132 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !3132 %387 = fsub <4 x double> %369, %374 %388 = fadd <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !3132 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !3132 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !3132 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !3132 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !3132 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !3132 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !3132 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !3132 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !3132 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !3132 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !3132 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !3132 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !3132 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !3132 %419 = fadd <4 x double> %369, %374 %420 = fsub <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !3132 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !3132 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !3132 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !3132 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !3132 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !3132 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !3132 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !3132 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !3132 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !3132 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !3132 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !3132 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !3132 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !3132 %479 = fsub <4 x double> %461, %466 %480 = fadd <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !3132 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !3132 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !3132 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !3132 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !3132 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !3132 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !3132 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !3132 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !3132 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !3132 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !3132 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !3132 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !3132 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !3132 %511 = fadd <4 x double> %461, %466 %512 = fsub <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !3132 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !3132 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !3132 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !3132 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !3132 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !3132 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !3132 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !3132 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !3132 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !3132 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !3132 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !3132 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !3132 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !3132 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !3132 %571 = fsub <4 x double> %553, %558 %572 = fadd <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !3132 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !3132 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !3132 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !3132 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !3132 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !3132 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !3132 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !3132 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !3132 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !3132 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !3132 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !3132 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !3132 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !3132 %603 = fadd <4 x double> %553, %558 %604 = fsub <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !3132 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !3132 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !3132 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !3132 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !3132 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !3132 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !3132 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 32 br i1 %619, label %bb24.i.i.i.i, label %vector.body20, !llvm.loop !3139 bb24.i.i.i74.i.preheader: ; preds = %bb24.i.i.i.i %620 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %621 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i90.i = load double, ptr %622, align 8, !noalias !3132, !noundef !3 %_6.i.i.i.i162.i = fneg double %w3.1.i.i.i90.i %623 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i88.i = load double, ptr %623, align 8, !noalias !3132, !noundef !3 %_6.i36.i.i.i157.i = fneg double %w2.1.i.i.i88.i %624 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i86.i = load double, ptr %624, align 8, !noalias !3132, !noundef !3 %_6.i39.i.i.i152.i = fneg double %w1.1.i.i.i86.i %625 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i89.i = load double, ptr %625, align 8, !noalias !3132, !noundef !3 %626 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i87.i = load double, ptr %626, align 8, !noalias !3132, !noundef !3 %627 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i85.i = load double, ptr %627, align 8, !noalias !3132, !noundef !3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body106 vector.body106: ; preds = %vector.body106, %bb24.i.i.i74.i.preheader %index107 = phi i64 [ 0, %bb24.i.i.i74.i.preheader ], [ %index.next142, %vector.body106 ] %628 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index107 %629 = getelementptr inbounds %"num_complex::Complex", ptr %234, i64 %index107 %630 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index107 %631 = getelementptr inbounds %"num_complex::Complex", ptr %235, i64 %index107 %wide.vec108 = load <8 x double>, ptr %628, align 8, !noalias !3132 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %629, align 8, !noalias !3132 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %630, align 8, !noalias !3132 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %631, align 8, !noalias !3132 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %632 = fadd <4 x double> %strided.vec109, %strided.vec115 %633 = fadd <4 x double> %strided.vec110, %strided.vec116 %634 = fsub <4 x double> %strided.vec109, %strided.vec115 %635 = fsub <4 x double> %strided.vec110, %strided.vec116 %636 = fadd <4 x double> %strided.vec112, %strided.vec118 %637 = fadd <4 x double> %strided.vec113, %strided.vec119 %638 = fsub <4 x double> %strided.vec112, %strided.vec118 %639 = fsub <4 x double> %strided.vec113, %strided.vec119 %640 = fadd <4 x double> %632, %636 %641 = fadd <4 x double> %633, %637 %642 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index107 %interleaved.vec120 = shufflevector <4 x double> %640, <4 x double> %641, <8 x i32> store <8 x double> %interleaved.vec120, ptr %642, align 8, !noalias !3132 %643 = fsub <4 x double> %634, %639 %644 = fadd <4 x double> %635, %638 %645 = fmul <4 x double> %644, %broadcast.splat122 %646 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %643, <4 x double> %645) %647 = fmul <4 x double> %broadcast.splat126, %643 %648 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %644, <4 x double> %647) %649 = getelementptr inbounds %"num_complex::Complex", ptr %620, i64 %index107 %interleaved.vec127 = shufflevector <4 x double> %646, <4 x double> %648, <8 x i32> store <8 x double> %interleaved.vec127, ptr %649, align 8, !noalias !3132 %650 = fsub <4 x double> %632, %636 %651 = fsub <4 x double> %633, %637 %652 = fmul <4 x double> %651, %broadcast.splat129 %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %650, <4 x double> %652) %654 = fmul <4 x double> %broadcast.splat133, %650 %655 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %651, <4 x double> %654) %656 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index107 %interleaved.vec134 = shufflevector <4 x double> %653, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec134, ptr %656, align 8, !noalias !3132 %657 = fadd <4 x double> %634, %639 %658 = fsub <4 x double> %635, %638 %659 = fmul <4 x double> %658, %broadcast.splat136 %660 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %657, <4 x double> %659) %661 = fmul <4 x double> %broadcast.splat140, %657 %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %658, <4 x double> %661) %663 = getelementptr inbounds %"num_complex::Complex", ptr %621, i64 %index107 %interleaved.vec141 = shufflevector <4 x double> %660, <4 x double> %662, <8 x i32> store <8 x double> %interleaved.vec141, ptr %663, align 8, !noalias !3132 %index.next142 = add nuw i64 %index107, 4 %664 = icmp eq i64 %index.next142, 64 br i1 %664, label %bb20.i.i.i70.i.loopexit, label %vector.body106, !llvm.loop !3140 bb24.i.i.i.i: ; preds = %vector.body20, %bb24.i.i.i.i %iter.i.i.i.i.sroa.60.0134 = phi i64 [ %810, %bb24.i.i.i.i ], [ 0, %vector.body20 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i844 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0134, 4 %665 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %665, align 8, !noalias !3141, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %666 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 3 %w3.0.i.i.i.i = load double, ptr %666, align 8, !noalias !3141, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w3.1.i.i.i.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %667 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %667, align 8, !noalias !3141, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %668 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 2 %w2.0.i.i.i.i = load double, ptr %668, align 8, !noalias !3141, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i = fneg double %w2.1.i.i.i.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %669 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %669, align 8, !noalias !3141, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %670 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 1 %w1.0.i.i.i.i = load double, ptr %670, align 8, !noalias !3141, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i863 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0134, 6 %data.i.i.i.i.i.i864 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i863 %671 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 48 %672 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 16 %673 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 32 %data.i.i.i.i.i.i.i.i860 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %data.i.i.i.i.i.i.i.i.i.i855 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %data.i5.i.i.i.i.i.i.i.i.i.i.i850 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %data.i.i.i.i.i.i.i.i.i.i.i.i845 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %wide.vec69 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, align 8, !noalias !3141 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, align 8, !noalias !3141 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i855, align 8, !noalias !3141 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i860, align 8, !noalias !3141 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %674 = fadd <4 x double> %strided.vec70, %strided.vec76 %675 = fadd <4 x double> %strided.vec71, %strided.vec77 %676 = fsub <4 x double> %strided.vec70, %strided.vec76 %677 = fsub <4 x double> %strided.vec71, %strided.vec77 %678 = fadd <4 x double> %strided.vec73, %strided.vec79 %679 = fadd <4 x double> %strided.vec74, %strided.vec80 %680 = fsub <4 x double> %strided.vec73, %strided.vec79 %681 = fsub <4 x double> %strided.vec74, %strided.vec80 %682 = fadd <4 x double> %674, %678 %683 = fadd <4 x double> %675, %679 %interleaved.vec81 = shufflevector <4 x double> %682, <4 x double> %683, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i864, align 8, !noalias !3141 %684 = fsub <4 x double> %676, %681 %685 = fadd <4 x double> %677, %680 %686 = fmul <4 x double> %685, %broadcast.splat %687 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %684, <4 x double> %686) %688 = fmul <4 x double> %broadcast.splat85, %684 %689 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %685, <4 x double> %688) %interleaved.vec86 = shufflevector <4 x double> %687, <4 x double> %689, <8 x i32> store <8 x double> %interleaved.vec86, ptr %672, align 8, !noalias !3141 %690 = fsub <4 x double> %674, %678 %691 = fsub <4 x double> %675, %679 %692 = fmul <4 x double> %691, %broadcast.splat88 %693 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %690, <4 x double> %692) %694 = fmul <4 x double> %broadcast.splat92, %690 %695 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %691, <4 x double> %694) %interleaved.vec93 = shufflevector <4 x double> %693, <4 x double> %695, <8 x i32> store <8 x double> %interleaved.vec93, ptr %673, align 8, !noalias !3141 %696 = fadd <4 x double> %676, %681 %697 = fsub <4 x double> %677, %680 %698 = fmul <4 x double> %697, %broadcast.splat95 %699 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %696, <4 x double> %698) %700 = fmul <4 x double> %broadcast.splat99, %696 %701 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %697, <4 x double> %700) %interleaved.vec100 = shufflevector <4 x double> %699, <4 x double> %701, <8 x i32> store <8 x double> %interleaved.vec100, ptr %671, align 8, !noalias !3141 %702 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, i64 4 %703 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, i64 4 %704 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i855, i64 4 %705 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i860, i64 4 %wide.vec69.1 = load <8 x double>, ptr %702, align 8, !noalias !3141 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %703, align 8, !noalias !3141 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %704, align 8, !noalias !3141 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %705, align 8, !noalias !3141 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %706 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %707 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %708 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %709 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %710 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %711 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %712 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %713 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %714 = fadd <4 x double> %706, %710 %715 = fadd <4 x double> %707, %711 %716 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %714, <4 x double> %715, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %716, align 8, !noalias !3141 %717 = fsub <4 x double> %708, %713 %718 = fadd <4 x double> %709, %712 %719 = fmul <4 x double> %718, %broadcast.splat %720 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %717, <4 x double> %719) %721 = fmul <4 x double> %broadcast.splat85, %717 %722 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %718, <4 x double> %721) %723 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %720, <4 x double> %722, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %723, align 8, !noalias !3141 %724 = fsub <4 x double> %706, %710 %725 = fsub <4 x double> %707, %711 %726 = fmul <4 x double> %725, %broadcast.splat88 %727 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %724, <4 x double> %726) %728 = fmul <4 x double> %broadcast.splat92, %724 %729 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %725, <4 x double> %728) %730 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %727, <4 x double> %729, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %730, align 8, !noalias !3141 %731 = fadd <4 x double> %708, %713 %732 = fsub <4 x double> %709, %712 %733 = fmul <4 x double> %732, %broadcast.splat95 %734 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %731, <4 x double> %733) %735 = fmul <4 x double> %broadcast.splat99, %731 %736 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %732, <4 x double> %735) %737 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %734, <4 x double> %736, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %737, align 8, !noalias !3141 %738 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, i64 8 %739 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, i64 8 %740 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i855, i64 8 %741 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i860, i64 8 %wide.vec69.2 = load <8 x double>, ptr %738, align 8, !noalias !3141 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %739, align 8, !noalias !3141 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %740, align 8, !noalias !3141 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %741, align 8, !noalias !3141 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %742 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %743 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %744 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %745 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %746 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %747 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %748 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %749 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %750 = fadd <4 x double> %742, %746 %751 = fadd <4 x double> %743, %747 %752 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %750, <4 x double> %751, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %752, align 8, !noalias !3141 %753 = fsub <4 x double> %744, %749 %754 = fadd <4 x double> %745, %748 %755 = fmul <4 x double> %754, %broadcast.splat %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %753, <4 x double> %755) %757 = fmul <4 x double> %broadcast.splat85, %753 %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %754, <4 x double> %757) %759 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %756, <4 x double> %758, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %759, align 8, !noalias !3141 %760 = fsub <4 x double> %742, %746 %761 = fsub <4 x double> %743, %747 %762 = fmul <4 x double> %761, %broadcast.splat88 %763 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %760, <4 x double> %762) %764 = fmul <4 x double> %broadcast.splat92, %760 %765 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %761, <4 x double> %764) %766 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %763, <4 x double> %765, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %766, align 8, !noalias !3141 %767 = fadd <4 x double> %744, %749 %768 = fsub <4 x double> %745, %748 %769 = fmul <4 x double> %768, %broadcast.splat95 %770 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %767, <4 x double> %769) %771 = fmul <4 x double> %broadcast.splat99, %767 %772 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %768, <4 x double> %771) %773 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %770, <4 x double> %772, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %773, align 8, !noalias !3141 %774 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, i64 12 %775 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, i64 12 %776 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i855, i64 12 %777 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i860, i64 12 %wide.vec69.3 = load <8 x double>, ptr %774, align 8, !noalias !3141 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %775, align 8, !noalias !3141 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %776, align 8, !noalias !3141 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %777, align 8, !noalias !3141 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %778 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %779 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %780 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %781 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %782 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %783 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %784 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %785 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %786 = fadd <4 x double> %778, %782 %787 = fadd <4 x double> %779, %783 %788 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %786, <4 x double> %787, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %788, align 8, !noalias !3141 %789 = fsub <4 x double> %780, %785 %790 = fadd <4 x double> %781, %784 %791 = fmul <4 x double> %790, %broadcast.splat %792 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %789, <4 x double> %791) %793 = fmul <4 x double> %broadcast.splat85, %789 %794 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %790, <4 x double> %793) %795 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %792, <4 x double> %794, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %795, align 8, !noalias !3141 %796 = fsub <4 x double> %778, %782 %797 = fsub <4 x double> %779, %783 %798 = fmul <4 x double> %797, %broadcast.splat88 %799 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %796, <4 x double> %798) %800 = fmul <4 x double> %broadcast.splat92, %796 %801 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %797, <4 x double> %800) %802 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %799, <4 x double> %801, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %802, align 8, !noalias !3141 %803 = fadd <4 x double> %780, %785 %804 = fsub <4 x double> %781, %784 %805 = fmul <4 x double> %804, %broadcast.splat95 %806 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %803, <4 x double> %805) %807 = fmul <4 x double> %broadcast.splat99, %803 %808 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %804, <4 x double> %807) %809 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %806, <4 x double> %808, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %809, align 8, !noalias !3141 %810 = add nuw nsw i64 %iter.i.i.i.i.sroa.60.0134, 1 %exitcond142.not = icmp eq i64 %810, 8 br i1 %exitcond142.not, label %bb24.i.i.i74.i.preheader, label %bb24.i.i.i.i bb20.i.i.i70.i.loopexit: ; preds = %vector.body106 %data.i.i.i.i.i.i.i.i.i.i.i.i1172.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i.i.i.i.i1177.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %data.i.i.i.i.i.i.i.i.i.i1182.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %data.i.i.i.i.i.i.i.i1187.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %811 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %812 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %813 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %814 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.i.i.i90.i.1 = load double, ptr %814, align 8, !noalias !3132, !noundef !3 %_6.i.i.i.i162.i.1 = fneg double %w3.1.i.i.i90.i.1 %815 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.i.i.i88.i.1 = load double, ptr %815, align 8, !noalias !3132, !noundef !3 %_6.i36.i.i.i157.i.1 = fneg double %w2.1.i.i.i88.i.1 %816 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i86.i.1 = load double, ptr %816, align 8, !noalias !3132, !noundef !3 %_6.i39.i.i.i152.i.1 = fneg double %w1.1.i.i.i86.i.1 %817 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.i.i.i89.i.1 = load double, ptr %817, align 8, !noalias !3132, !noundef !3 %818 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.i.i.i87.i.1 = load double, ptr %818, align 8, !noalias !3132, !noundef !3 %819 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i85.i.1 = load double, ptr %819, align 8, !noalias !3132, !noundef !3 %broadcast.splatinsert162 = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i.1, i64 0 %broadcast.splat163 = shufflevector <4 x double> %broadcast.splatinsert162, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert164 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i.1, i64 0 %broadcast.splat165 = shufflevector <4 x double> %broadcast.splatinsert164, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert166 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i.1, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert169 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i.1, i64 0 %broadcast.splat170 = shufflevector <4 x double> %broadcast.splatinsert169, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert171 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i.1, i64 0 %broadcast.splat172 = shufflevector <4 x double> %broadcast.splatinsert171, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert173 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i.1, i64 0 %broadcast.splat174 = shufflevector <4 x double> %broadcast.splatinsert173, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert176 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i.1, i64 0 %broadcast.splat177 = shufflevector <4 x double> %broadcast.splatinsert176, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert178 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i.1, i64 0 %broadcast.splat179 = shufflevector <4 x double> %broadcast.splatinsert178, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert180 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i.1, i64 0 %broadcast.splat181 = shufflevector <4 x double> %broadcast.splatinsert180, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body147 vector.body147: ; preds = %vector.body147, %bb20.i.i.i70.i.loopexit %index148 = phi i64 [ 0, %bb20.i.i.i70.i.loopexit ], [ %index.next183, %vector.body147 ] %820 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1172.1, i64 %index148 %821 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1177.1, i64 %index148 %822 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1182.1, i64 %index148 %823 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1187.1, i64 %index148 %wide.vec149 = load <8 x double>, ptr %820, align 8, !noalias !3132 %strided.vec150 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %strided.vec151 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %wide.vec152 = load <8 x double>, ptr %821, align 8, !noalias !3132 %strided.vec153 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %strided.vec154 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %wide.vec155 = load <8 x double>, ptr %822, align 8, !noalias !3132 %strided.vec156 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %strided.vec157 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %wide.vec158 = load <8 x double>, ptr %823, align 8, !noalias !3132 %strided.vec159 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %strided.vec160 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %824 = fadd <4 x double> %strided.vec150, %strided.vec156 %825 = fadd <4 x double> %strided.vec151, %strided.vec157 %826 = fsub <4 x double> %strided.vec150, %strided.vec156 %827 = fsub <4 x double> %strided.vec151, %strided.vec157 %828 = fadd <4 x double> %strided.vec153, %strided.vec159 %829 = fadd <4 x double> %strided.vec154, %strided.vec160 %830 = fsub <4 x double> %strided.vec153, %strided.vec159 %831 = fsub <4 x double> %strided.vec154, %strided.vec160 %832 = fadd <4 x double> %824, %828 %833 = fadd <4 x double> %825, %829 %834 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index148 %interleaved.vec161 = shufflevector <4 x double> %832, <4 x double> %833, <8 x i32> store <8 x double> %interleaved.vec161, ptr %834, align 8, !noalias !3132 %835 = fsub <4 x double> %826, %831 %836 = fadd <4 x double> %827, %830 %837 = fmul <4 x double> %836, %broadcast.splat163 %838 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat165, <4 x double> %835, <4 x double> %837) %839 = fmul <4 x double> %broadcast.splat167, %835 %840 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat165, <4 x double> %836, <4 x double> %839) %841 = getelementptr inbounds %"num_complex::Complex", ptr %812, i64 %index148 %interleaved.vec168 = shufflevector <4 x double> %838, <4 x double> %840, <8 x i32> store <8 x double> %interleaved.vec168, ptr %841, align 8, !noalias !3132 %842 = fsub <4 x double> %824, %828 %843 = fsub <4 x double> %825, %829 %844 = fmul <4 x double> %843, %broadcast.splat170 %845 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat172, <4 x double> %842, <4 x double> %844) %846 = fmul <4 x double> %broadcast.splat174, %842 %847 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat172, <4 x double> %843, <4 x double> %846) %848 = getelementptr inbounds %"num_complex::Complex", ptr %811, i64 %index148 %interleaved.vec175 = shufflevector <4 x double> %845, <4 x double> %847, <8 x i32> store <8 x double> %interleaved.vec175, ptr %848, align 8, !noalias !3132 %849 = fadd <4 x double> %826, %831 %850 = fsub <4 x double> %827, %830 %851 = fmul <4 x double> %850, %broadcast.splat177 %852 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat179, <4 x double> %849, <4 x double> %851) %853 = fmul <4 x double> %broadcast.splat181, %849 %854 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat179, <4 x double> %850, <4 x double> %853) %855 = getelementptr inbounds %"num_complex::Complex", ptr %813, i64 %index148 %interleaved.vec182 = shufflevector <4 x double> %852, <4 x double> %854, <8 x i32> store <8 x double> %interleaved.vec182, ptr %855, align 8, !noalias !3132 %index.next183 = add nuw i64 %index148, 4 %856 = icmp eq i64 %index.next183, 64 br i1 %856, label %vector.body188, label %vector.body147, !llvm.loop !3144 vector.body188: ; preds = %vector.body147, %vector.body188 %index189 = phi i64 [ %index.next198.1, %vector.body188 ], [ 0, %vector.body147 ] %857 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index189 %858 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index189 %wide.vec190 = load <8 x double>, ptr %857, align 8, !noalias !3132 %strided.vec191 = shufflevector <8 x double> %wide.vec190, <8 x double> poison, <4 x i32> %strided.vec192 = shufflevector <8 x double> %wide.vec190, <8 x double> poison, <4 x i32> %wide.vec193 = load <8 x double>, ptr %858, align 8, !noalias !3132 %strided.vec194 = shufflevector <8 x double> %wide.vec193, <8 x double> poison, <4 x i32> %strided.vec195 = shufflevector <8 x double> %wide.vec193, <8 x double> poison, <4 x i32> %859 = fadd <4 x double> %strided.vec191, %strided.vec194 %860 = fadd <4 x double> %strided.vec192, %strided.vec195 %861 = fsub <4 x double> %strided.vec191, %strided.vec194 %862 = fsub <4 x double> %strided.vec192, %strided.vec195 %interleaved.vec196 = shufflevector <4 x double> %859, <4 x double> %860, <8 x i32> store <8 x double> %interleaved.vec196, ptr %857, align 8, !noalias !3132 %interleaved.vec197 = shufflevector <4 x double> %861, <4 x double> %862, <8 x i32> store <8 x double> %interleaved.vec197, ptr %858, align 8, !noalias !3132 %index.next198 = or disjoint i64 %index189, 4 %863 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next198 %864 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next198 %wide.vec190.1 = load <8 x double>, ptr %863, align 8, !noalias !3132 %strided.vec191.1 = shufflevector <8 x double> %wide.vec190.1, <8 x double> poison, <4 x i32> %strided.vec192.1 = shufflevector <8 x double> %wide.vec190.1, <8 x double> poison, <4 x i32> %wide.vec193.1 = load <8 x double>, ptr %864, align 8, !noalias !3132 %strided.vec194.1 = shufflevector <8 x double> %wide.vec193.1, <8 x double> poison, <4 x i32> %strided.vec195.1 = shufflevector <8 x double> %wide.vec193.1, <8 x double> poison, <4 x i32> %865 = fadd <4 x double> %strided.vec191.1, %strided.vec194.1 %866 = fadd <4 x double> %strided.vec192.1, %strided.vec195.1 %867 = fsub <4 x double> %strided.vec191.1, %strided.vec194.1 %868 = fsub <4 x double> %strided.vec192.1, %strided.vec195.1 %interleaved.vec196.1 = shufflevector <4 x double> %865, <4 x double> %866, <8 x i32> store <8 x double> %interleaved.vec196.1, ptr %863, align 8, !noalias !3132 %interleaved.vec197.1 = shufflevector <4 x double> %867, <4 x double> %868, <8 x i32> store <8 x double> %interleaved.vec197.1, ptr %864, align 8, !noalias !3132 %index.next198.1 = add nuw nsw i64 %index189, 8 %869 = icmp eq i64 %index.next198.1, 256 br i1 %869, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit", label %vector.body188, !llvm.loop !3145 "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit": ; preds = %vector.body188 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3132 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h41ab3db4475fa0beE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3146 store i64 1024, ptr %n.i, align 8, !noalias !3146 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3146 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3146 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3146 store ptr null, ptr %_16.i, align 8, !noalias !3146 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3146 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3146 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3146 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3146 store ptr null, ptr %_24.i, align 8, !noalias !3146 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3146 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3146 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3146 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3146 store ptr null, ptr %_32.i, align 8, !noalias !3146 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3146 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3146 store i64 %w.1, ptr %_34.i, align 8, !noalias !3146 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %bb18.i.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3146 store ptr null, ptr %_40.i, align 8, !noalias !3146 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3146 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 br label %vector.body vector.body: ; preds = %vector.body, %bb18.i.i.i.i.i.preheader %index = phi i64 [ 0, %bb18.i.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %3 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %wide.vec = load <8 x double>, ptr %2, align 8, !noalias !3149 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %3, align 8, !noalias !3149 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %4 = fadd <4 x double> %strided.vec, %strided.vec3 %5 = fadd <4 x double> %strided.vec1, %strided.vec4 %6 = fsub <4 x double> %strided.vec, %strided.vec3 %7 = fsub <4 x double> %strided.vec1, %strided.vec4 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !3149 %9 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec5 = shufflevector <4 x double> %6, <4 x double> %7, <8 x i32> store <8 x double> %interleaved.vec5, ptr %9, align 8, !noalias !3149 %index.next = or disjoint i64 %index, 4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %11 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %10, align 8, !noalias !3149 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %11, align 8, !noalias !3149 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %13 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %14 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %15 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next %interleaved.vec.1 = shufflevector <4 x double> %12, <4 x double> %13, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %16, align 8, !noalias !3149 %17 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %interleaved.vec5.1 = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %17, align 8, !noalias !3149 %index.next.1 = add nuw nsw i64 %index, 8 %18 = icmp eq i64 %index.next.1, 512 br i1 %18, label %bb15.i.i31.i137.i.preheader, label %vector.body, !llvm.loop !3154 bb15.i.i31.i137.i.preheader: ; preds = %vector.body %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i148.i = load double, ptr %19, align 8, !noalias !3146, !noundef !3 %20 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i149.i = load double, ptr %20, align 8, !noalias !3146, !noundef !3 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %_6.i.i.i58.i164.i = fneg double %w1.1.i.i43.i149.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb15.i.i31.i137.i.preheader %index11 = phi i64 [ 0, %bb15.i.i31.i137.i.preheader ], [ %index.next24, %vector.body10 ] %22 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index11 %23 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index11 %wide.vec12 = load <8 x double>, ptr %22, align 8, !noalias !3146 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %23, align 8, !noalias !3146 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %24 = fmul <4 x double> %strided.vec17, %broadcast.splat %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %24) %26 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %27 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %26) %28 = fadd <4 x double> %strided.vec13, %25 %29 = fadd <4 x double> %strided.vec14, %27 %30 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index11 %interleaved.vec22 = shufflevector <4 x double> %28, <4 x double> %29, <8 x i32> store <8 x double> %interleaved.vec22, ptr %30, align 8, !noalias !3146 %31 = fsub <4 x double> %strided.vec13, %25 %32 = fsub <4 x double> %strided.vec14, %27 %33 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index11 %interleaved.vec23 = shufflevector <4 x double> %31, <4 x double> %32, <8 x i32> store <8 x double> %interleaved.vec23, ptr %33, align 8, !noalias !3146 %index.next24 = add nuw i64 %index11, 4 %34 = icmp eq i64 %index.next24, 256 br i1 %34, label %bb15.i.i31.i137.i.loopexit, label %vector.body10, !llvm.loop !3155 bb15.i.i31.i137.i.loopexit: ; preds = %vector.body10 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %35 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1 %w1.0.i.i42.i148.i.1 = load double, ptr %35, align 8, !noalias !3146, !noundef !3 %36 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1, i32 1 %w1.1.i.i43.i149.i.1 = load double, ptr %36, align 8, !noalias !3146, !noundef !3 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %_6.i.i.i58.i164.i.1 = fneg double %w1.1.i.i43.i149.i.1 %broadcast.splatinsert37 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i.1, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert39 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i.1, i64 0 %broadcast.splat40 = shufflevector <4 x double> %broadcast.splatinsert39, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert41 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i.1, i64 0 %broadcast.splat42 = shufflevector <4 x double> %broadcast.splatinsert41, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body29 vector.body29: ; preds = %vector.body29, %bb15.i.i31.i137.i.loopexit %index30 = phi i64 [ 0, %bb15.i.i31.i137.i.loopexit ], [ %index.next45, %vector.body29 ] %38 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index30 %39 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index30 %wide.vec31 = load <8 x double>, ptr %38, align 8, !noalias !3146 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %39, align 8, !noalias !3146 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %40 = fmul <4 x double> %strided.vec36, %broadcast.splat38 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35, <4 x double> %40) %42 = fmul <4 x double> %broadcast.splat42, %strided.vec35 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36, <4 x double> %42) %44 = fadd <4 x double> %strided.vec32, %41 %45 = fadd <4 x double> %strided.vec33, %43 %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index30 %interleaved.vec43 = shufflevector <4 x double> %44, <4 x double> %45, <8 x i32> store <8 x double> %interleaved.vec43, ptr %46, align 8, !noalias !3146 %47 = fsub <4 x double> %strided.vec32, %41 %48 = fsub <4 x double> %strided.vec33, %43 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.1, i64 %index30 %interleaved.vec44 = shufflevector <4 x double> %47, <4 x double> %48, <8 x i32> store <8 x double> %interleaved.vec44, ptr %49, align 8, !noalias !3146 %index.next45 = add nuw i64 %index30, 4 %50 = icmp eq i64 %index.next45, 256 br i1 %50, label %bb15.i.i31.i137.i.loopexit.1, label %vector.body29, !llvm.loop !3156 bb15.i.i31.i137.i.loopexit.1: ; preds = %vector.body29 %51 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %broadcast.splatinsert58 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i, i64 0 %broadcast.splat59 = shufflevector <4 x double> %broadcast.splatinsert58, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body50 vector.body50: ; preds = %vector.body50, %bb15.i.i31.i137.i.loopexit.1 %index51 = phi i64 [ 0, %bb15.i.i31.i137.i.loopexit.1 ], [ %index.next66, %vector.body50 ] %52 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index51 %53 = getelementptr inbounds %"num_complex::Complex", ptr %51, i64 %index51 %wide.vec52 = load <8 x double>, ptr %52, align 8, !noalias !3146 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %53, align 8, !noalias !3146 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %54 = fmul <4 x double> %strided.vec57, %broadcast.splat59 %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56, <4 x double> %54) %56 = fmul <4 x double> %broadcast.splat63, %strided.vec56 %57 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57, <4 x double> %56) %58 = fadd <4 x double> %strided.vec53, %55 %59 = fadd <4 x double> %strided.vec54, %57 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index51 %interleaved.vec64 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec64, ptr %60, align 8, !noalias !3146 %61 = fsub <4 x double> %strided.vec53, %55 %62 = fsub <4 x double> %strided.vec54, %57 %63 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index51 %interleaved.vec65 = shufflevector <4 x double> %61, <4 x double> %62, <8 x i32> store <8 x double> %interleaved.vec65, ptr %63, align 8, !noalias !3146 %index.next66 = add nuw i64 %index51, 4 %64 = icmp eq i64 %index.next66, 128 br i1 %64, label %bb15.i.i.i183.i.loopexit, label %vector.body50, !llvm.loop !3157 bb15.i.i.i183.i.loopexit: ; preds = %vector.body50 %data.i.i.i.i.i.i.i.i307.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %data.i5.i.i.i.i.i.i.i321.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %65 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.i.i.i194.i.1 = load double, ptr %65, align 8, !noalias !3146, !noundef !3 %66 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.i.i.i195.i.1 = load double, ptr %66, align 8, !noalias !3146, !noundef !3 %67 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %_6.i.i.i.i210.i.1 = fneg double %w1.1.i.i.i195.i.1 %broadcast.splatinsert79 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert81 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.1, i64 0 %broadcast.splat82 = shufflevector <4 x double> %broadcast.splatinsert81, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert83 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.1, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body71 vector.body71: ; preds = %vector.body71, %bb15.i.i.i183.i.loopexit %index72 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit ], [ %index.next87, %vector.body71 ] %68 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index72 %69 = getelementptr inbounds %"num_complex::Complex", ptr %67, i64 %index72 %wide.vec73 = load <8 x double>, ptr %68, align 8, !noalias !3146 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %69, align 8, !noalias !3146 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec78, %broadcast.splat80 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat84, %strided.vec77 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78, <4 x double> %72) %74 = fadd <4 x double> %strided.vec74, %71 %75 = fadd <4 x double> %strided.vec75, %73 %76 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i307.1, i64 %index72 %interleaved.vec85 = shufflevector <4 x double> %74, <4 x double> %75, <8 x i32> store <8 x double> %interleaved.vec85, ptr %76, align 8, !noalias !3146 %77 = fsub <4 x double> %strided.vec74, %71 %78 = fsub <4 x double> %strided.vec75, %73 %79 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i321.1, i64 %index72 %interleaved.vec86 = shufflevector <4 x double> %77, <4 x double> %78, <8 x i32> store <8 x double> %interleaved.vec86, ptr %79, align 8, !noalias !3146 %index.next87 = add nuw i64 %index72, 4 %80 = icmp eq i64 %index.next87, 128 br i1 %80, label %bb15.i.i.i183.i.loopexit.1, label %vector.body71, !llvm.loop !3158 bb15.i.i.i183.i.loopexit.1: ; preds = %vector.body71 %81 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %broadcast.splatinsert100 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i.1, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert102 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i.1, i64 0 %broadcast.splat103 = shufflevector <4 x double> %broadcast.splatinsert102, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert104 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i.1, i64 0 %broadcast.splat105 = shufflevector <4 x double> %broadcast.splatinsert104, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body92 vector.body92: ; preds = %vector.body92, %bb15.i.i.i183.i.loopexit.1 %index93 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit.1 ], [ %index.next108, %vector.body92 ] %82 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index93 %83 = getelementptr inbounds %"num_complex::Complex", ptr %81, i64 %index93 %wide.vec94 = load <8 x double>, ptr %82, align 8, !noalias !3146 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %83, align 8, !noalias !3146 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %84 = fmul <4 x double> %strided.vec99, %broadcast.splat101 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98, <4 x double> %84) %86 = fmul <4 x double> %broadcast.splat105, %strided.vec98 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99, <4 x double> %86) %88 = fadd <4 x double> %strided.vec95, %85 %89 = fadd <4 x double> %strided.vec96, %87 %90 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index93 %interleaved.vec106 = shufflevector <4 x double> %88, <4 x double> %89, <8 x i32> store <8 x double> %interleaved.vec106, ptr %90, align 8, !noalias !3146 %91 = fsub <4 x double> %strided.vec95, %85 %92 = fsub <4 x double> %strided.vec96, %87 %93 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index93 %interleaved.vec107 = shufflevector <4 x double> %91, <4 x double> %92, <8 x i32> store <8 x double> %interleaved.vec107, ptr %93, align 8, !noalias !3146 %index.next108 = add nuw i64 %index93, 4 %94 = icmp eq i64 %index.next108, 128 br i1 %94, label %bb15.i.i.i183.i.loopexit.2, label %vector.body92, !llvm.loop !3159 bb15.i.i.i183.i.loopexit.2: ; preds = %vector.body92 %data.i.i.i.i.i.i.i.i307.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %data.i.i.i.i.i.i317.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %data.i5.i.i.i.i.i.i.i321.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %95 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1 %w1.0.i.i.i194.i.3 = load double, ptr %95, align 8, !noalias !3146, !noundef !3 %96 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1, i32 1 %w1.1.i.i.i195.i.3 = load double, ptr %96, align 8, !noalias !3146, !noundef !3 %97 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %_6.i.i.i.i210.i.3 = fneg double %w1.1.i.i.i195.i.3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.3, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.3, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.3, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body113 vector.body113: ; preds = %vector.body113, %bb15.i.i.i183.i.loopexit.2 %index114 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit.2 ], [ %index.next129, %vector.body113 ] %98 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i317.3, i64 %index114 %99 = getelementptr inbounds %"num_complex::Complex", ptr %97, i64 %index114 %wide.vec115 = load <8 x double>, ptr %98, align 8, !noalias !3146 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %99, align 8, !noalias !3146 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %100 = fmul <4 x double> %strided.vec120, %broadcast.splat122 %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119, <4 x double> %100) %102 = fmul <4 x double> %broadcast.splat126, %strided.vec119 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120, <4 x double> %102) %104 = fadd <4 x double> %strided.vec116, %101 %105 = fadd <4 x double> %strided.vec117, %103 %106 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i307.3, i64 %index114 %interleaved.vec127 = shufflevector <4 x double> %104, <4 x double> %105, <8 x i32> store <8 x double> %interleaved.vec127, ptr %106, align 8, !noalias !3146 %107 = fsub <4 x double> %strided.vec116, %101 %108 = fsub <4 x double> %strided.vec117, %103 %109 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i321.3, i64 %index114 %interleaved.vec128 = shufflevector <4 x double> %107, <4 x double> %108, <8 x i32> store <8 x double> %interleaved.vec128, ptr %109, align 8, !noalias !3146 %index.next129 = add nuw i64 %index114, 4 %110 = icmp eq i64 %index.next129, 128 br i1 %110, label %bb15.i.i.i183.i.loopexit.3, label %vector.body113, !llvm.loop !3160 bb15.i.i.i183.i.loopexit.3: ; preds = %vector.body113 %111 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body134 vector.body134: ; preds = %vector.body134, %bb15.i.i.i183.i.loopexit.3 %index135 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit.3 ], [ %index.next150, %vector.body134 ] %112 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index135 %113 = getelementptr inbounds %"num_complex::Complex", ptr %111, i64 %index135 %wide.vec136 = load <8 x double>, ptr %112, align 8, !noalias !3146 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %113, align 8, !noalias !3146 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %114 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %114) %116 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %116) %118 = fadd <4 x double> %strided.vec137, %115 %119 = fadd <4 x double> %strided.vec138, %117 %120 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index135 %interleaved.vec148 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> store <8 x double> %interleaved.vec148, ptr %120, align 8, !noalias !3146 %121 = fsub <4 x double> %strided.vec137, %115 %122 = fsub <4 x double> %strided.vec138, %117 %123 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index135 %interleaved.vec149 = shufflevector <4 x double> %121, <4 x double> %122, <8 x i32> store <8 x double> %interleaved.vec149, ptr %123, align 8, !noalias !3146 %index.next150 = add nuw i64 %index135, 4 %124 = icmp eq i64 %index.next150, 64 br i1 %124, label %bb15.i.i229.i.loopexit, label %vector.body134, !llvm.loop !3161 bb15.i.i229.i.loopexit: ; preds = %vector.body134 %data.i.i.i.i.i.i.i.i479.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i493.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 576 %125 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %126 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i241.i.1 = load double, ptr %126, align 8, !noalias !3146, !noundef !3 %_6.i.i.i256.i.1 = fneg double %w1.1.i.i241.i.1 %127 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i240.i.1 = load double, ptr %127, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i.i.i256.i.1, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w1.0.i.i240.i.1, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w1.1.i.i241.i.1, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body155 vector.body155: ; preds = %vector.body155, %bb15.i.i229.i.loopexit %index156 = phi i64 [ 0, %bb15.i.i229.i.loopexit ], [ %index.next171, %vector.body155 ] %128 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i307.1, i64 %index156 %129 = getelementptr inbounds %"num_complex::Complex", ptr %125, i64 %index156 %wide.vec157 = load <8 x double>, ptr %128, align 8, !noalias !3146 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %129, align 8, !noalias !3146 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %130 = fmul <4 x double> %strided.vec162, %broadcast.splat164 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161, <4 x double> %130) %132 = fmul <4 x double> %broadcast.splat168, %strided.vec161 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162, <4 x double> %132) %134 = fadd <4 x double> %strided.vec158, %131 %135 = fadd <4 x double> %strided.vec159, %133 %136 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i479.1, i64 %index156 %interleaved.vec169 = shufflevector <4 x double> %134, <4 x double> %135, <8 x i32> store <8 x double> %interleaved.vec169, ptr %136, align 8, !noalias !3146 %137 = fsub <4 x double> %strided.vec158, %131 %138 = fsub <4 x double> %strided.vec159, %133 %139 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i493.1, i64 %index156 %interleaved.vec170 = shufflevector <4 x double> %137, <4 x double> %138, <8 x i32> store <8 x double> %interleaved.vec170, ptr %139, align 8, !noalias !3146 %index.next171 = add nuw i64 %index156, 4 %140 = icmp eq i64 %index.next171, 64 br i1 %140, label %bb15.i.i229.i.loopexit.1, label %vector.body155, !llvm.loop !3162 bb15.i.i229.i.loopexit.1: ; preds = %vector.body155 %141 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.1, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.1, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.1, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body176 vector.body176: ; preds = %vector.body176, %bb15.i.i229.i.loopexit.1 %index177 = phi i64 [ 0, %bb15.i.i229.i.loopexit.1 ], [ %index.next192, %vector.body176 ] %142 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index177 %143 = getelementptr inbounds %"num_complex::Complex", ptr %141, i64 %index177 %wide.vec178 = load <8 x double>, ptr %142, align 8, !noalias !3146 %strided.vec179 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %strided.vec180 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %wide.vec181 = load <8 x double>, ptr %143, align 8, !noalias !3146 %strided.vec182 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %strided.vec183 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %144 = fmul <4 x double> %strided.vec183, %broadcast.splat185 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182, <4 x double> %144) %146 = fmul <4 x double> %broadcast.splat189, %strided.vec182 %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183, <4 x double> %146) %148 = fadd <4 x double> %strided.vec179, %145 %149 = fadd <4 x double> %strided.vec180, %147 %150 = getelementptr inbounds %"num_complex::Complex", ptr %51, i64 %index177 %interleaved.vec190 = shufflevector <4 x double> %148, <4 x double> %149, <8 x i32> store <8 x double> %interleaved.vec190, ptr %150, align 8, !noalias !3146 %151 = fsub <4 x double> %strided.vec179, %145 %152 = fsub <4 x double> %strided.vec180, %147 %153 = getelementptr inbounds %"num_complex::Complex", ptr %81, i64 %index177 %interleaved.vec191 = shufflevector <4 x double> %151, <4 x double> %152, <8 x i32> store <8 x double> %interleaved.vec191, ptr %153, align 8, !noalias !3146 %index.next192 = add nuw i64 %index177, 4 %154 = icmp eq i64 %index.next192, 64 br i1 %154, label %bb15.i.i229.i.loopexit.2, label %vector.body176, !llvm.loop !3163 bb15.i.i229.i.loopexit.2: ; preds = %vector.body176 %data.i.i.i.i.i.i.i.i479.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %data.i5.i.i.i.i.i.i.i493.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 704 %155 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %156 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.i.i241.i.3 = load double, ptr %156, align 8, !noalias !3146, !noundef !3 %_6.i.i.i256.i.3 = fneg double %w1.1.i.i241.i.3 %157 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.i.i240.i.3 = load double, ptr %157, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i.i.i256.i.3, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert207 = insertelement <4 x double> poison, double %w1.0.i.i240.i.3, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert209 = insertelement <4 x double> poison, double %w1.1.i.i241.i.3, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body197 vector.body197: ; preds = %vector.body197, %bb15.i.i229.i.loopexit.2 %index198 = phi i64 [ 0, %bb15.i.i229.i.loopexit.2 ], [ %index.next213, %vector.body197 ] %158 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i307.3, i64 %index198 %159 = getelementptr inbounds %"num_complex::Complex", ptr %155, i64 %index198 %wide.vec199 = load <8 x double>, ptr %158, align 8, !noalias !3146 %strided.vec200 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %strided.vec201 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %wide.vec202 = load <8 x double>, ptr %159, align 8, !noalias !3146 %strided.vec203 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %strided.vec204 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %160 = fmul <4 x double> %strided.vec204, %broadcast.splat206 %161 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203, <4 x double> %160) %162 = fmul <4 x double> %broadcast.splat210, %strided.vec203 %163 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204, <4 x double> %162) %164 = fadd <4 x double> %strided.vec200, %161 %165 = fadd <4 x double> %strided.vec201, %163 %166 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i479.3, i64 %index198 %interleaved.vec211 = shufflevector <4 x double> %164, <4 x double> %165, <8 x i32> store <8 x double> %interleaved.vec211, ptr %166, align 8, !noalias !3146 %167 = fsub <4 x double> %strided.vec200, %161 %168 = fsub <4 x double> %strided.vec201, %163 %169 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i493.3, i64 %index198 %interleaved.vec212 = shufflevector <4 x double> %167, <4 x double> %168, <8 x i32> store <8 x double> %interleaved.vec212, ptr %169, align 8, !noalias !3146 %index.next213 = add nuw i64 %index198, 4 %170 = icmp eq i64 %index.next213, 64 br i1 %170, label %bb15.i.i229.i.loopexit.3, label %vector.body197, !llvm.loop !3164 bb15.i.i229.i.loopexit.3: ; preds = %vector.body197 %171 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 576 %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i.1, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i.1, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert230 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i.1, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body218 vector.body218: ; preds = %vector.body218, %bb15.i.i229.i.loopexit.3 %index219 = phi i64 [ 0, %bb15.i.i229.i.loopexit.3 ], [ %index.next234, %vector.body218 ] %172 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index219 %173 = getelementptr inbounds %"num_complex::Complex", ptr %171, i64 %index219 %wide.vec220 = load <8 x double>, ptr %172, align 8, !noalias !3146 %strided.vec221 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %strided.vec222 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %wide.vec223 = load <8 x double>, ptr %173, align 8, !noalias !3146 %strided.vec224 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %strided.vec225 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %174 = fmul <4 x double> %strided.vec225, %broadcast.splat227 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224, <4 x double> %174) %176 = fmul <4 x double> %broadcast.splat231, %strided.vec224 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225, <4 x double> %176) %178 = fadd <4 x double> %strided.vec221, %175 %179 = fadd <4 x double> %strided.vec222, %177 %180 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index219 %interleaved.vec232 = shufflevector <4 x double> %178, <4 x double> %179, <8 x i32> store <8 x double> %interleaved.vec232, ptr %180, align 8, !noalias !3146 %181 = fsub <4 x double> %strided.vec221, %175 %182 = fsub <4 x double> %strided.vec222, %177 %183 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.1, i64 %index219 %interleaved.vec233 = shufflevector <4 x double> %181, <4 x double> %182, <8 x i32> store <8 x double> %interleaved.vec233, ptr %183, align 8, !noalias !3146 %index.next234 = add nuw i64 %index219, 4 %184 = icmp eq i64 %index.next234, 64 br i1 %184, label %bb15.i.i229.i.loopexit.4, label %vector.body218, !llvm.loop !3165 bb15.i.i229.i.loopexit.4: ; preds = %vector.body218 %data.i.i.i.i.i.i.i.i479.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %data.i.i.i.i.i.i489.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %data.i5.i.i.i.i.i.i.i493.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 832 %185 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 704 %186 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1, i32 1 %w1.1.i.i241.i.5 = load double, ptr %186, align 8, !noalias !3146, !noundef !3 %_6.i.i.i256.i.5 = fneg double %w1.1.i.i241.i.5 %187 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1 %w1.0.i.i240.i.5 = load double, ptr %187, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert247 = insertelement <4 x double> poison, double %_6.i.i.i256.i.5, i64 0 %broadcast.splat248 = shufflevector <4 x double> %broadcast.splatinsert247, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert249 = insertelement <4 x double> poison, double %w1.0.i.i240.i.5, i64 0 %broadcast.splat250 = shufflevector <4 x double> %broadcast.splatinsert249, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert251 = insertelement <4 x double> poison, double %w1.1.i.i241.i.5, i64 0 %broadcast.splat252 = shufflevector <4 x double> %broadcast.splatinsert251, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body239 vector.body239: ; preds = %vector.body239, %bb15.i.i229.i.loopexit.4 %index240 = phi i64 [ 0, %bb15.i.i229.i.loopexit.4 ], [ %index.next255, %vector.body239 ] %188 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i489.5, i64 %index240 %189 = getelementptr inbounds %"num_complex::Complex", ptr %185, i64 %index240 %wide.vec241 = load <8 x double>, ptr %188, align 8, !noalias !3146 %strided.vec242 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %strided.vec243 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %wide.vec244 = load <8 x double>, ptr %189, align 8, !noalias !3146 %strided.vec245 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %strided.vec246 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %190 = fmul <4 x double> %strided.vec246, %broadcast.splat248 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245, <4 x double> %190) %192 = fmul <4 x double> %broadcast.splat252, %strided.vec245 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246, <4 x double> %192) %194 = fadd <4 x double> %strided.vec242, %191 %195 = fadd <4 x double> %strided.vec243, %193 %196 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i479.5, i64 %index240 %interleaved.vec253 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> store <8 x double> %interleaved.vec253, ptr %196, align 8, !noalias !3146 %197 = fsub <4 x double> %strided.vec242, %191 %198 = fsub <4 x double> %strided.vec243, %193 %199 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i493.5, i64 %index240 %interleaved.vec254 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec254, ptr %199, align 8, !noalias !3146 %index.next255 = add nuw i64 %index240, 4 %200 = icmp eq i64 %index.next255, 64 br i1 %200, label %bb15.i.i229.i.loopexit.5, label %vector.body239, !llvm.loop !3166 bb15.i.i229.i.loopexit.5: ; preds = %vector.body239 %data.i.i.i.i.i.i.i.i479.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %data.i.i.i.i.i.i489.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %data.i5.i.i.i.i.i.i.i493.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %201 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 832 %broadcast.splatinsert268 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.3, i64 0 %broadcast.splat269 = shufflevector <4 x double> %broadcast.splatinsert268, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert270 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.3, i64 0 %broadcast.splat271 = shufflevector <4 x double> %broadcast.splatinsert270, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert272 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.3, i64 0 %broadcast.splat273 = shufflevector <4 x double> %broadcast.splatinsert272, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body260 vector.body260: ; preds = %vector.body260, %bb15.i.i229.i.loopexit.5 %index261 = phi i64 [ 0, %bb15.i.i229.i.loopexit.5 ], [ %index.next276, %vector.body260 ] %202 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i489.6, i64 %index261 %203 = getelementptr inbounds %"num_complex::Complex", ptr %201, i64 %index261 %wide.vec262 = load <8 x double>, ptr %202, align 8, !noalias !3146 %strided.vec263 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %strided.vec264 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %wide.vec265 = load <8 x double>, ptr %203, align 8, !noalias !3146 %strided.vec266 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %strided.vec267 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %204 = fmul <4 x double> %strided.vec267, %broadcast.splat269 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266, <4 x double> %204) %206 = fmul <4 x double> %broadcast.splat273, %strided.vec266 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267, <4 x double> %206) %208 = fadd <4 x double> %strided.vec263, %205 %209 = fadd <4 x double> %strided.vec264, %207 %210 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i479.6, i64 %index261 %interleaved.vec274 = shufflevector <4 x double> %208, <4 x double> %209, <8 x i32> store <8 x double> %interleaved.vec274, ptr %210, align 8, !noalias !3146 %211 = fsub <4 x double> %strided.vec263, %205 %212 = fsub <4 x double> %strided.vec264, %207 %213 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i493.6, i64 %index261 %interleaved.vec275 = shufflevector <4 x double> %211, <4 x double> %212, <8 x i32> store <8 x double> %interleaved.vec275, ptr %213, align 8, !noalias !3146 %index.next276 = add nuw i64 %index261, 4 %214 = icmp eq i64 %index.next276, 64 br i1 %214, label %bb15.i.i229.i.loopexit.6, label %vector.body260, !llvm.loop !3167 bb15.i.i229.i.loopexit.6: ; preds = %vector.body260 %data.i.i.i.i.i.i.i.i479.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %data.i.i.i.i.i.i489.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %data.i5.i.i.i.i.i.i.i493.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 960 %215 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 960 %216 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1, i32 1 %w1.1.i.i241.i.7 = load double, ptr %216, align 8, !noalias !3146, !noundef !3 %_6.i.i.i256.i.7 = fneg double %w1.1.i.i241.i.7 %217 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1 %w1.0.i.i240.i.7 = load double, ptr %217, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert289 = insertelement <4 x double> poison, double %_6.i.i.i256.i.7, i64 0 %broadcast.splat290 = shufflevector <4 x double> %broadcast.splatinsert289, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert291 = insertelement <4 x double> poison, double %w1.0.i.i240.i.7, i64 0 %broadcast.splat292 = shufflevector <4 x double> %broadcast.splatinsert291, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert293 = insertelement <4 x double> poison, double %w1.1.i.i241.i.7, i64 0 %broadcast.splat294 = shufflevector <4 x double> %broadcast.splatinsert293, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body281 vector.body281: ; preds = %vector.body281, %bb15.i.i229.i.loopexit.6 %index282 = phi i64 [ 0, %bb15.i.i229.i.loopexit.6 ], [ %index.next297, %vector.body281 ] %218 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i489.7, i64 %index282 %219 = getelementptr inbounds %"num_complex::Complex", ptr %215, i64 %index282 %wide.vec283 = load <8 x double>, ptr %218, align 8, !noalias !3146 %strided.vec284 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %strided.vec285 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %wide.vec286 = load <8 x double>, ptr %219, align 8, !noalias !3146 %strided.vec287 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %strided.vec288 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %220 = fmul <4 x double> %strided.vec288, %broadcast.splat290 %221 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287, <4 x double> %220) %222 = fmul <4 x double> %broadcast.splat294, %strided.vec287 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288, <4 x double> %222) %224 = fadd <4 x double> %strided.vec284, %221 %225 = fadd <4 x double> %strided.vec285, %223 %226 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i479.7, i64 %index282 %interleaved.vec295 = shufflevector <4 x double> %224, <4 x double> %225, <8 x i32> store <8 x double> %interleaved.vec295, ptr %226, align 8, !noalias !3146 %227 = fsub <4 x double> %strided.vec284, %221 %228 = fsub <4 x double> %strided.vec285, %223 %229 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i493.7, i64 %index282 %interleaved.vec296 = shufflevector <4 x double> %227, <4 x double> %228, <8 x i32> store <8 x double> %interleaved.vec296, ptr %229, align 8, !noalias !3146 %index.next297 = add nuw i64 %index282, 4 %230 = icmp eq i64 %index.next297, 64 br i1 %230, label %bb19.i.i40.i.i, label %vector.body281, !llvm.loop !3168 bb19.i.i40.i.i: ; preds = %vector.body281, %bb19.i.i40.i.i %iter.i.i9.i.i.sroa.38.0188 = phi i64 [ %326, %bb19.i.i40.i.i ], [ 0, %vector.body281 ] %start1.i.i.i.i.i.i.i.i650 = shl nuw nsw i64 %iter.i.i9.i.i.sroa.38.0188, 5 %231 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i650, i64 1, i32 1 %w1.1.i.i43.i.i = load double, ptr %231, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert314 = insertelement <4 x double> poison, double %w1.1.i.i43.i.i, i64 0 %broadcast.splat315 = shufflevector <4 x double> %broadcast.splatinsert314, <4 x double> poison, <4 x i32> zeroinitializer %232 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i650, i64 1 %w1.0.i.i42.i.i = load double, ptr %232, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert312 = insertelement <4 x double> poison, double %w1.0.i.i42.i.i, i64 0 %broadcast.splat313 = shufflevector <4 x double> %broadcast.splatinsert312, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i58.i.i = fneg double %w1.1.i.i43.i.i %broadcast.splatinsert310 = insertelement <4 x double> poison, double %_6.i.i.i58.i.i, i64 0 %broadcast.splat311 = shufflevector <4 x double> %broadcast.splatinsert310, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i660 = shl nuw nsw i64 %iter.i.i9.i.i.sroa.38.0188, 6 %data.i.i.i.i.i.i661 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i660 %233 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 32 %data.i5.i.i.i.i.i.i.i665 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i650 %data.i.i.i.i.i.i.i.i651 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i650 %wide.vec304 = load <8 x double>, ptr %data.i.i.i.i.i.i661, align 8, !noalias !3146 %strided.vec305 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %strided.vec306 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %wide.vec307 = load <8 x double>, ptr %233, align 8, !noalias !3146 %strided.vec308 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %strided.vec309 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %234 = fmul <4 x double> %strided.vec309, %broadcast.splat311 %235 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308, <4 x double> %234) %236 = fmul <4 x double> %broadcast.splat315, %strided.vec308 %237 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309, <4 x double> %236) %238 = fadd <4 x double> %strided.vec305, %235 %239 = fadd <4 x double> %strided.vec306, %237 %interleaved.vec316 = shufflevector <4 x double> %238, <4 x double> %239, <8 x i32> store <8 x double> %interleaved.vec316, ptr %data.i.i.i.i.i.i.i.i651, align 8, !noalias !3146 %240 = fsub <4 x double> %strided.vec305, %235 %241 = fsub <4 x double> %strided.vec306, %237 %interleaved.vec317 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec317, ptr %data.i5.i.i.i.i.i.i.i665, align 8, !noalias !3146 %242 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 4 %243 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 36 %wide.vec304.1 = load <8 x double>, ptr %242, align 8, !noalias !3146 %strided.vec305.1 = shufflevector <8 x double> %wide.vec304.1, <8 x double> poison, <4 x i32> %strided.vec306.1 = shufflevector <8 x double> %wide.vec304.1, <8 x double> poison, <4 x i32> %wide.vec307.1 = load <8 x double>, ptr %243, align 8, !noalias !3146 %strided.vec308.1 = shufflevector <8 x double> %wide.vec307.1, <8 x double> poison, <4 x i32> %strided.vec309.1 = shufflevector <8 x double> %wide.vec307.1, <8 x double> poison, <4 x i32> %244 = fmul <4 x double> %strided.vec309.1, %broadcast.splat311 %245 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.1, <4 x double> %244) %246 = fmul <4 x double> %broadcast.splat315, %strided.vec308.1 %247 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.1, <4 x double> %246) %248 = fadd <4 x double> %strided.vec305.1, %245 %249 = fadd <4 x double> %strided.vec306.1, %247 %250 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 4 %interleaved.vec316.1 = shufflevector <4 x double> %248, <4 x double> %249, <8 x i32> store <8 x double> %interleaved.vec316.1, ptr %250, align 8, !noalias !3146 %251 = fsub <4 x double> %strided.vec305.1, %245 %252 = fsub <4 x double> %strided.vec306.1, %247 %253 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 4 %interleaved.vec317.1 = shufflevector <4 x double> %251, <4 x double> %252, <8 x i32> store <8 x double> %interleaved.vec317.1, ptr %253, align 8, !noalias !3146 %254 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 8 %255 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 40 %wide.vec304.2 = load <8 x double>, ptr %254, align 8, !noalias !3146 %strided.vec305.2 = shufflevector <8 x double> %wide.vec304.2, <8 x double> poison, <4 x i32> %strided.vec306.2 = shufflevector <8 x double> %wide.vec304.2, <8 x double> poison, <4 x i32> %wide.vec307.2 = load <8 x double>, ptr %255, align 8, !noalias !3146 %strided.vec308.2 = shufflevector <8 x double> %wide.vec307.2, <8 x double> poison, <4 x i32> %strided.vec309.2 = shufflevector <8 x double> %wide.vec307.2, <8 x double> poison, <4 x i32> %256 = fmul <4 x double> %strided.vec309.2, %broadcast.splat311 %257 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.2, <4 x double> %256) %258 = fmul <4 x double> %broadcast.splat315, %strided.vec308.2 %259 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.2, <4 x double> %258) %260 = fadd <4 x double> %strided.vec305.2, %257 %261 = fadd <4 x double> %strided.vec306.2, %259 %262 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 8 %interleaved.vec316.2 = shufflevector <4 x double> %260, <4 x double> %261, <8 x i32> store <8 x double> %interleaved.vec316.2, ptr %262, align 8, !noalias !3146 %263 = fsub <4 x double> %strided.vec305.2, %257 %264 = fsub <4 x double> %strided.vec306.2, %259 %265 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 8 %interleaved.vec317.2 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec317.2, ptr %265, align 8, !noalias !3146 %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 44 %wide.vec304.3 = load <8 x double>, ptr %266, align 8, !noalias !3146 %strided.vec305.3 = shufflevector <8 x double> %wide.vec304.3, <8 x double> poison, <4 x i32> %strided.vec306.3 = shufflevector <8 x double> %wide.vec304.3, <8 x double> poison, <4 x i32> %wide.vec307.3 = load <8 x double>, ptr %267, align 8, !noalias !3146 %strided.vec308.3 = shufflevector <8 x double> %wide.vec307.3, <8 x double> poison, <4 x i32> %strided.vec309.3 = shufflevector <8 x double> %wide.vec307.3, <8 x double> poison, <4 x i32> %268 = fmul <4 x double> %strided.vec309.3, %broadcast.splat311 %269 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.3, <4 x double> %268) %270 = fmul <4 x double> %broadcast.splat315, %strided.vec308.3 %271 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.3, <4 x double> %270) %272 = fadd <4 x double> %strided.vec305.3, %269 %273 = fadd <4 x double> %strided.vec306.3, %271 %274 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 12 %interleaved.vec316.3 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec316.3, ptr %274, align 8, !noalias !3146 %275 = fsub <4 x double> %strided.vec305.3, %269 %276 = fsub <4 x double> %strided.vec306.3, %271 %277 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 12 %interleaved.vec317.3 = shufflevector <4 x double> %275, <4 x double> %276, <8 x i32> store <8 x double> %interleaved.vec317.3, ptr %277, align 8, !noalias !3146 %278 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 16 %279 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 48 %wide.vec304.4 = load <8 x double>, ptr %278, align 8, !noalias !3146 %strided.vec305.4 = shufflevector <8 x double> %wide.vec304.4, <8 x double> poison, <4 x i32> %strided.vec306.4 = shufflevector <8 x double> %wide.vec304.4, <8 x double> poison, <4 x i32> %wide.vec307.4 = load <8 x double>, ptr %279, align 8, !noalias !3146 %strided.vec308.4 = shufflevector <8 x double> %wide.vec307.4, <8 x double> poison, <4 x i32> %strided.vec309.4 = shufflevector <8 x double> %wide.vec307.4, <8 x double> poison, <4 x i32> %280 = fmul <4 x double> %strided.vec309.4, %broadcast.splat311 %281 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.4, <4 x double> %280) %282 = fmul <4 x double> %broadcast.splat315, %strided.vec308.4 %283 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.4, <4 x double> %282) %284 = fadd <4 x double> %strided.vec305.4, %281 %285 = fadd <4 x double> %strided.vec306.4, %283 %286 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 16 %interleaved.vec316.4 = shufflevector <4 x double> %284, <4 x double> %285, <8 x i32> store <8 x double> %interleaved.vec316.4, ptr %286, align 8, !noalias !3146 %287 = fsub <4 x double> %strided.vec305.4, %281 %288 = fsub <4 x double> %strided.vec306.4, %283 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 16 %interleaved.vec317.4 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec317.4, ptr %289, align 8, !noalias !3146 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 20 %291 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 52 %wide.vec304.5 = load <8 x double>, ptr %290, align 8, !noalias !3146 %strided.vec305.5 = shufflevector <8 x double> %wide.vec304.5, <8 x double> poison, <4 x i32> %strided.vec306.5 = shufflevector <8 x double> %wide.vec304.5, <8 x double> poison, <4 x i32> %wide.vec307.5 = load <8 x double>, ptr %291, align 8, !noalias !3146 %strided.vec308.5 = shufflevector <8 x double> %wide.vec307.5, <8 x double> poison, <4 x i32> %strided.vec309.5 = shufflevector <8 x double> %wide.vec307.5, <8 x double> poison, <4 x i32> %292 = fmul <4 x double> %strided.vec309.5, %broadcast.splat311 %293 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.5, <4 x double> %292) %294 = fmul <4 x double> %broadcast.splat315, %strided.vec308.5 %295 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.5, <4 x double> %294) %296 = fadd <4 x double> %strided.vec305.5, %293 %297 = fadd <4 x double> %strided.vec306.5, %295 %298 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 20 %interleaved.vec316.5 = shufflevector <4 x double> %296, <4 x double> %297, <8 x i32> store <8 x double> %interleaved.vec316.5, ptr %298, align 8, !noalias !3146 %299 = fsub <4 x double> %strided.vec305.5, %293 %300 = fsub <4 x double> %strided.vec306.5, %295 %301 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 20 %interleaved.vec317.5 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec317.5, ptr %301, align 8, !noalias !3146 %302 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 24 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 56 %wide.vec304.6 = load <8 x double>, ptr %302, align 8, !noalias !3146 %strided.vec305.6 = shufflevector <8 x double> %wide.vec304.6, <8 x double> poison, <4 x i32> %strided.vec306.6 = shufflevector <8 x double> %wide.vec304.6, <8 x double> poison, <4 x i32> %wide.vec307.6 = load <8 x double>, ptr %303, align 8, !noalias !3146 %strided.vec308.6 = shufflevector <8 x double> %wide.vec307.6, <8 x double> poison, <4 x i32> %strided.vec309.6 = shufflevector <8 x double> %wide.vec307.6, <8 x double> poison, <4 x i32> %304 = fmul <4 x double> %strided.vec309.6, %broadcast.splat311 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.6, <4 x double> %304) %306 = fmul <4 x double> %broadcast.splat315, %strided.vec308.6 %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.6, <4 x double> %306) %308 = fadd <4 x double> %strided.vec305.6, %305 %309 = fadd <4 x double> %strided.vec306.6, %307 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 24 %interleaved.vec316.6 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec316.6, ptr %310, align 8, !noalias !3146 %311 = fsub <4 x double> %strided.vec305.6, %305 %312 = fsub <4 x double> %strided.vec306.6, %307 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 24 %interleaved.vec317.6 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec317.6, ptr %313, align 8, !noalias !3146 %314 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 28 %315 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i661, i64 60 %wide.vec304.7 = load <8 x double>, ptr %314, align 8, !noalias !3146 %strided.vec305.7 = shufflevector <8 x double> %wide.vec304.7, <8 x double> poison, <4 x i32> %strided.vec306.7 = shufflevector <8 x double> %wide.vec304.7, <8 x double> poison, <4 x i32> %wide.vec307.7 = load <8 x double>, ptr %315, align 8, !noalias !3146 %strided.vec308.7 = shufflevector <8 x double> %wide.vec307.7, <8 x double> poison, <4 x i32> %strided.vec309.7 = shufflevector <8 x double> %wide.vec307.7, <8 x double> poison, <4 x i32> %316 = fmul <4 x double> %strided.vec309.7, %broadcast.splat311 %317 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.7, <4 x double> %316) %318 = fmul <4 x double> %broadcast.splat315, %strided.vec308.7 %319 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.7, <4 x double> %318) %320 = fadd <4 x double> %strided.vec305.7, %317 %321 = fadd <4 x double> %strided.vec306.7, %319 %322 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i651, i64 28 %interleaved.vec316.7 = shufflevector <4 x double> %320, <4 x double> %321, <8 x i32> store <8 x double> %interleaved.vec316.7, ptr %322, align 8, !noalias !3146 %323 = fsub <4 x double> %strided.vec305.7, %317 %324 = fsub <4 x double> %strided.vec306.7, %319 %325 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i665, i64 28 %interleaved.vec317.7 = shufflevector <4 x double> %323, <4 x double> %324, <8 x i32> store <8 x double> %interleaved.vec317.7, ptr %325, align 8, !noalias !3146 %326 = add nuw nsw i64 %iter.i.i9.i.i.sroa.38.0188, 1 %exitcond206.not = icmp eq i64 %326, 16 br i1 %exitcond206.not, label %bb19.i.i.i.i, label %bb19.i.i40.i.i bb19.i.i.i.i: ; preds = %bb19.i.i40.i.i, %bb19.i.i.i.i %iter.i.i.i.i.sroa.38.0190 = phi i64 [ %374, %bb19.i.i.i.i ], [ 0, %bb19.i.i40.i.i ] %start1.i.i.i.i.i.i.i.i822 = shl nuw nsw i64 %iter.i.i.i.i.sroa.38.0190, 4 %327 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i822, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %327, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert335 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat336 = shufflevector <4 x double> %broadcast.splatinsert335, <4 x double> poison, <4 x i32> zeroinitializer %328 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i822, i64 1 %w1.0.i.i.i.i = load double, ptr %328, align 8, !noalias !3146, !noundef !3 %broadcast.splatinsert333 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat334 = shufflevector <4 x double> %broadcast.splatinsert333, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert331 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat332 = shufflevector <4 x double> %broadcast.splatinsert331, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i832 = shl nuw nsw i64 %iter.i.i.i.i.sroa.38.0190, 5 %data.i.i.i.i.i.i833 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i832 %329 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 16 %data.i5.i.i.i.i.i.i.i837 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i822 %data.i.i.i.i.i.i.i.i823 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i822 %wide.vec325 = load <8 x double>, ptr %data.i.i.i.i.i.i833, align 8, !noalias !3146 %strided.vec326 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %strided.vec327 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %wide.vec328 = load <8 x double>, ptr %329, align 8, !noalias !3146 %strided.vec329 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %strided.vec330 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %330 = fmul <4 x double> %strided.vec330, %broadcast.splat332 %331 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec329, <4 x double> %330) %332 = fmul <4 x double> %broadcast.splat336, %strided.vec329 %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec330, <4 x double> %332) %334 = fadd <4 x double> %strided.vec326, %331 %335 = fadd <4 x double> %strided.vec327, %333 %interleaved.vec337 = shufflevector <4 x double> %334, <4 x double> %335, <8 x i32> store <8 x double> %interleaved.vec337, ptr %data.i.i.i.i.i.i.i.i823, align 8, !noalias !3146 %336 = fsub <4 x double> %strided.vec326, %331 %337 = fsub <4 x double> %strided.vec327, %333 %interleaved.vec338 = shufflevector <4 x double> %336, <4 x double> %337, <8 x i32> store <8 x double> %interleaved.vec338, ptr %data.i5.i.i.i.i.i.i.i837, align 8, !noalias !3146 %338 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 4 %339 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 20 %wide.vec325.1 = load <8 x double>, ptr %338, align 8, !noalias !3146 %strided.vec326.1 = shufflevector <8 x double> %wide.vec325.1, <8 x double> poison, <4 x i32> %strided.vec327.1 = shufflevector <8 x double> %wide.vec325.1, <8 x double> poison, <4 x i32> %wide.vec328.1 = load <8 x double>, ptr %339, align 8, !noalias !3146 %strided.vec329.1 = shufflevector <8 x double> %wide.vec328.1, <8 x double> poison, <4 x i32> %strided.vec330.1 = shufflevector <8 x double> %wide.vec328.1, <8 x double> poison, <4 x i32> %340 = fmul <4 x double> %strided.vec330.1, %broadcast.splat332 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec329.1, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat336, %strided.vec329.1 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec330.1, <4 x double> %342) %344 = fadd <4 x double> %strided.vec326.1, %341 %345 = fadd <4 x double> %strided.vec327.1, %343 %346 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i823, i64 4 %interleaved.vec337.1 = shufflevector <4 x double> %344, <4 x double> %345, <8 x i32> store <8 x double> %interleaved.vec337.1, ptr %346, align 8, !noalias !3146 %347 = fsub <4 x double> %strided.vec326.1, %341 %348 = fsub <4 x double> %strided.vec327.1, %343 %349 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i837, i64 4 %interleaved.vec338.1 = shufflevector <4 x double> %347, <4 x double> %348, <8 x i32> store <8 x double> %interleaved.vec338.1, ptr %349, align 8, !noalias !3146 %350 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 8 %351 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 24 %wide.vec325.2 = load <8 x double>, ptr %350, align 8, !noalias !3146 %strided.vec326.2 = shufflevector <8 x double> %wide.vec325.2, <8 x double> poison, <4 x i32> %strided.vec327.2 = shufflevector <8 x double> %wide.vec325.2, <8 x double> poison, <4 x i32> %wide.vec328.2 = load <8 x double>, ptr %351, align 8, !noalias !3146 %strided.vec329.2 = shufflevector <8 x double> %wide.vec328.2, <8 x double> poison, <4 x i32> %strided.vec330.2 = shufflevector <8 x double> %wide.vec328.2, <8 x double> poison, <4 x i32> %352 = fmul <4 x double> %strided.vec330.2, %broadcast.splat332 %353 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec329.2, <4 x double> %352) %354 = fmul <4 x double> %broadcast.splat336, %strided.vec329.2 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec330.2, <4 x double> %354) %356 = fadd <4 x double> %strided.vec326.2, %353 %357 = fadd <4 x double> %strided.vec327.2, %355 %358 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i823, i64 8 %interleaved.vec337.2 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec337.2, ptr %358, align 8, !noalias !3146 %359 = fsub <4 x double> %strided.vec326.2, %353 %360 = fsub <4 x double> %strided.vec327.2, %355 %361 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i837, i64 8 %interleaved.vec338.2 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec338.2, ptr %361, align 8, !noalias !3146 %362 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 12 %363 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i833, i64 28 %wide.vec325.3 = load <8 x double>, ptr %362, align 8, !noalias !3146 %strided.vec326.3 = shufflevector <8 x double> %wide.vec325.3, <8 x double> poison, <4 x i32> %strided.vec327.3 = shufflevector <8 x double> %wide.vec325.3, <8 x double> poison, <4 x i32> %wide.vec328.3 = load <8 x double>, ptr %363, align 8, !noalias !3146 %strided.vec329.3 = shufflevector <8 x double> %wide.vec328.3, <8 x double> poison, <4 x i32> %strided.vec330.3 = shufflevector <8 x double> %wide.vec328.3, <8 x double> poison, <4 x i32> %364 = fmul <4 x double> %strided.vec330.3, %broadcast.splat332 %365 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec329.3, <4 x double> %364) %366 = fmul <4 x double> %broadcast.splat336, %strided.vec329.3 %367 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat334, <4 x double> %strided.vec330.3, <4 x double> %366) %368 = fadd <4 x double> %strided.vec326.3, %365 %369 = fadd <4 x double> %strided.vec327.3, %367 %370 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i823, i64 12 %interleaved.vec337.3 = shufflevector <4 x double> %368, <4 x double> %369, <8 x i32> store <8 x double> %interleaved.vec337.3, ptr %370, align 8, !noalias !3146 %371 = fsub <4 x double> %strided.vec326.3, %365 %372 = fsub <4 x double> %strided.vec327.3, %367 %373 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i837, i64 12 %interleaved.vec338.3 = shufflevector <4 x double> %371, <4 x double> %372, <8 x i32> store <8 x double> %interleaved.vec338.3, ptr %373, align 8, !noalias !3146 %374 = add nuw nsw i64 %iter.i.i.i.i.sroa.38.0190, 1 %exitcond208.not = icmp eq i64 %374, 32 br i1 %exitcond208.not, label %bb19.i.i40.i, label %bb19.i.i.i.i bb19.i.i40.i: ; preds = %bb19.i.i.i.i, %bb19.i.i40.i %iter.i.i9.i.sroa.38.0192 = phi i64 [ %411, %bb19.i.i40.i ], [ 0, %bb19.i.i.i.i ] %start1.i.i.i.i.i.i.i.i994 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0192, 3 %data.i.i.i.i.i.i.i.i995 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i994 %start1.i.i.i.i.i.i1004 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0192, 4 %data.i.i.i.i.i.i1005 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1004 %data.i5.i.i.i.i.i.i.i1009 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i994 %375 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i994, i64 1 %w1.0.i.i42.i = load double, ptr %375, align 8, !noalias !3146, !noundef !3 %376 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i994, i64 1, i32 1 %w1.1.i.i43.i = load double, ptr %376, align 8, !noalias !3146, !noundef !3 %377 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 8 %_6.i.i.i58.i = fneg double %w1.1.i.i43.i %378 = load <4 x double>, ptr %data.i.i.i.i.i.i1005, align 8, !noalias !3146 %379 = load <4 x double>, ptr %377, align 8, !noalias !3146 %380 = insertelement <4 x double> poison, double %_6.i.i.i58.i, i64 0 %381 = insertelement <4 x double> %380, double %w1.1.i.i43.i, i64 1 %382 = shufflevector <4 x double> %381, <4 x double> poison, <4 x i32> %383 = fmul <4 x double> %382, %379 %384 = shufflevector <4 x double> %383, <4 x double> poison, <4 x i32> %385 = insertelement <4 x double> poison, double %w1.0.i.i42.i, i64 0 %386 = shufflevector <4 x double> %385, <4 x double> poison, <4 x i32> zeroinitializer %387 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %386, <4 x double> %379, <4 x double> %384) %388 = fadd <4 x double> %378, %387 store <4 x double> %388, ptr %data.i.i.i.i.i.i.i.i995, align 8, !noalias !3146 %389 = fsub <4 x double> %378, %387 store <4 x double> %389, ptr %data.i5.i.i.i.i.i.i.i1009, align 8, !noalias !3146 %_3.i.i.i.i.i.i.i.i1054.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i995, i64 2 %_3.i2.i.i.i.i.i.i.i1057.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1009, i64 2 %_3.i.i.i.i.i.i1060.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 2 %_3.i.i.i.i1063.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 10 %390 = load <4 x double>, ptr %_3.i.i.i.i.i.i1060.2, align 8, !noalias !3146 %391 = load <4 x double>, ptr %_3.i.i.i.i1063.2, align 8, !noalias !3146 %392 = fmul <4 x double> %382, %391 %393 = shufflevector <4 x double> %392, <4 x double> poison, <4 x i32> %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %386, <4 x double> %391, <4 x double> %393) %395 = fadd <4 x double> %390, %394 store <4 x double> %395, ptr %_3.i.i.i.i.i.i.i.i1054.2, align 8, !noalias !3146 %396 = fsub <4 x double> %390, %394 store <4 x double> %396, ptr %_3.i2.i.i.i.i.i.i.i1057.2, align 8, !noalias !3146 %_3.i.i.i.i.i.i.i.i1054.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i995, i64 4 %_3.i2.i.i.i.i.i.i.i1057.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1009, i64 4 %_3.i.i.i.i.i.i1060.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 4 %_3.i.i.i.i1063.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 12 %397 = load <4 x double>, ptr %_3.i.i.i.i.i.i1060.4, align 8, !noalias !3146 %398 = load <4 x double>, ptr %_3.i.i.i.i1063.4, align 8, !noalias !3146 %399 = fmul <4 x double> %382, %398 %400 = shufflevector <4 x double> %399, <4 x double> poison, <4 x i32> %401 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %386, <4 x double> %398, <4 x double> %400) %402 = fadd <4 x double> %397, %401 store <4 x double> %402, ptr %_3.i.i.i.i.i.i.i.i1054.4, align 8, !noalias !3146 %403 = fsub <4 x double> %397, %401 store <4 x double> %403, ptr %_3.i2.i.i.i.i.i.i.i1057.4, align 8, !noalias !3146 %_3.i.i.i.i.i.i.i.i1054.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i995, i64 6 %_3.i2.i.i.i.i.i.i.i1057.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1009, i64 6 %_3.i.i.i.i.i.i1060.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 6 %_3.i.i.i.i1063.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1005, i64 14 %404 = load <4 x double>, ptr %_3.i.i.i.i.i.i1060.6, align 8, !noalias !3146 %405 = load <4 x double>, ptr %_3.i.i.i.i1063.6, align 8, !noalias !3146 %406 = fmul <4 x double> %382, %405 %407 = shufflevector <4 x double> %406, <4 x double> poison, <4 x i32> %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %386, <4 x double> %405, <4 x double> %407) %409 = fadd <4 x double> %404, %408 store <4 x double> %409, ptr %_3.i.i.i.i.i.i.i.i1054.6, align 8, !noalias !3146 %410 = fsub <4 x double> %404, %408 store <4 x double> %410, ptr %_3.i2.i.i.i.i.i.i.i1057.6, align 8, !noalias !3146 %411 = add nuw nsw i64 %iter.i.i9.i.sroa.38.0192, 1 %exitcond210.not = icmp eq i64 %411, 64 br i1 %exitcond210.not, label %vector.body344, label %bb19.i.i40.i vector.body344: ; preds = %bb19.i.i40.i, %vector.body344 %index345 = phi i64 [ %index.next365, %vector.body344 ], [ 0, %bb19.i.i40.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body344 ], [ , %bb19.i.i40.i ] %412 = shl nuw nsw <4 x i64> %vec.ind, %413 = extractelement <4 x i64> %412, i64 0 %414 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %413 %415 = shl nuw nsw <4 x i64> %vec.ind, %416 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %415 %417 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %413 %418 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %412, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %418, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %419 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %412, i64 1, i32 1 %wide.masked.gather346 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %419, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %420 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 4 %421 = fneg <4 x double> %wide.masked.gather346 %wide.masked.gather347 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %416, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %422 = getelementptr inbounds i8, <4 x ptr> %416, i64 8 %wide.masked.gather348 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %422, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %wide.masked.gather349 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %420, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %423 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 4, i32 1 %wide.masked.gather350 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %423, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %424 = fmul <4 x double> %wide.masked.gather350, %421 %425 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather349, <4 x double> %424) %426 = fmul <4 x double> %wide.masked.gather346, %wide.masked.gather349 %427 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather350, <4 x double> %426) %428 = fadd <4 x double> %wide.masked.gather347, %425 %429 = fadd <4 x double> %wide.masked.gather348, %427 %430 = fsub <4 x double> %wide.masked.gather347, %425 %431 = fsub <4 x double> %wide.masked.gather348, %427 %432 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 1 %433 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 5 %wide.masked.gather351 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %432, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %434 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 1, i32 1 %wide.masked.gather352 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %434, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %wide.masked.gather353 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %433, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 5, i32 1 %wide.masked.gather354 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %436 = fmul <4 x double> %wide.masked.gather354, %421 %437 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather353, <4 x double> %436) %438 = fmul <4 x double> %wide.masked.gather346, %wide.masked.gather353 %439 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather354, <4 x double> %438) %440 = fadd <4 x double> %wide.masked.gather351, %437 %441 = fadd <4 x double> %wide.masked.gather352, %439 %442 = fsub <4 x double> %wide.masked.gather351, %437 %443 = fsub <4 x double> %wide.masked.gather352, %439 %444 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 2 %445 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 6 %wide.masked.gather355 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %444, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 2, i32 1 %wide.masked.gather356 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %wide.masked.gather357 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %445, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %447 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 6, i32 1 %wide.masked.gather358 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %448 = fmul <4 x double> %wide.masked.gather358, %421 %449 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather357, <4 x double> %448) %450 = fmul <4 x double> %wide.masked.gather346, %wide.masked.gather357 %451 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather358, <4 x double> %450) %452 = fadd <4 x double> %wide.masked.gather355, %449 %453 = fadd <4 x double> %wide.masked.gather356, %451 %454 = fsub <4 x double> %wide.masked.gather355, %449 %455 = fsub <4 x double> %wide.masked.gather356, %451 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 3 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 7 %wide.masked.gather359 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 3, i32 1 %wide.masked.gather360 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %wide.masked.gather361 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %459 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %416, i64 7, i32 1 %wide.masked.gather362 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %459, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %460 = fmul <4 x double> %wide.masked.gather362, %421 %461 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather361, <4 x double> %460) %462 = fmul <4 x double> %wide.masked.gather346, %wide.masked.gather361 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather362, <4 x double> %462) %464 = fadd <4 x double> %wide.masked.gather359, %461 %465 = fadd <4 x double> %wide.masked.gather360, %463 %466 = shufflevector <4 x double> %428, <4 x double> %429, <8 x i32> %467 = shufflevector <4 x double> %440, <4 x double> %441, <8 x i32> %468 = shufflevector <4 x double> %452, <4 x double> %453, <8 x i32> %469 = shufflevector <4 x double> %464, <4 x double> %465, <8 x i32> %470 = shufflevector <8 x double> %466, <8 x double> %467, <16 x i32> %471 = shufflevector <8 x double> %468, <8 x double> %469, <16 x i32> %interleaved.vec363 = shufflevector <16 x double> %470, <16 x double> %471, <32 x i32> store <32 x double> %interleaved.vec363, ptr %414, align 8, !noalias !3146 %472 = fsub <4 x double> %wide.masked.gather359, %461 %473 = fsub <4 x double> %wide.masked.gather360, %463 %474 = shufflevector <4 x double> %430, <4 x double> %431, <8 x i32> %475 = shufflevector <4 x double> %442, <4 x double> %443, <8 x i32> %476 = shufflevector <4 x double> %454, <4 x double> %455, <8 x i32> %477 = shufflevector <4 x double> %472, <4 x double> %473, <8 x i32> %478 = shufflevector <8 x double> %474, <8 x double> %475, <16 x i32> %479 = shufflevector <8 x double> %476, <8 x double> %477, <16 x i32> %interleaved.vec364 = shufflevector <16 x double> %478, <16 x double> %479, <32 x i32> store <32 x double> %interleaved.vec364, ptr %417, align 8, !noalias !3146 %index.next365 = add nuw i64 %index345, 4 %vec.ind.next = add <4 x i64> %vec.ind, %480 = icmp eq i64 %index.next365, 128 br i1 %480, label %vector.body370, label %vector.body344, !llvm.loop !3169 vector.body370: ; preds = %vector.body344, %vector.body370 %index371 = phi i64 [ %index.next386, %vector.body370 ], [ 0, %vector.body344 ] %vec.ind372 = phi <4 x i64> [ %vec.ind.next373, %vector.body370 ], [ , %vector.body344 ] %481 = shl nuw nsw <4 x i64> %vec.ind372, %482 = extractelement <4 x i64> %481, i64 0 %483 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %482 %484 = shl nuw nsw <4 x i64> %vec.ind372, %485 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %484 %486 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %482 %487 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %481, i64 1 %wide.masked.gather374 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %487, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %488 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %481, i64 1, i32 1 %wide.masked.gather375 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %488, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %489 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %485, i64 2 %490 = fneg <4 x double> %wide.masked.gather375 %wide.masked.gather376 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %485, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %491 = getelementptr inbounds i8, <4 x ptr> %485, i64 8 %wide.masked.gather377 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %491, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %wide.masked.gather378 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %489, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %492 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %485, i64 2, i32 1 %wide.masked.gather379 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %492, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %493 = fmul <4 x double> %wide.masked.gather379, %490 %494 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather374, <4 x double> %wide.masked.gather378, <4 x double> %493) %495 = fmul <4 x double> %wide.masked.gather375, %wide.masked.gather378 %496 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather374, <4 x double> %wide.masked.gather379, <4 x double> %495) %497 = fadd <4 x double> %wide.masked.gather376, %494 %498 = fadd <4 x double> %wide.masked.gather377, %496 %499 = fsub <4 x double> %wide.masked.gather376, %494 %500 = fsub <4 x double> %wide.masked.gather377, %496 %501 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %485, i64 1 %502 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %485, i64 3 %wide.masked.gather380 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %501, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %503 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %485, i64 1, i32 1 %wide.masked.gather381 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %503, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %wide.masked.gather382 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %502, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %504 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %485, i64 3, i32 1 %wide.masked.gather383 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %504, i32 8, <4 x i1> , <4 x double> poison), !noalias !3146 %505 = fmul <4 x double> %wide.masked.gather383, %490 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather374, <4 x double> %wide.masked.gather382, <4 x double> %505) %507 = fmul <4 x double> %wide.masked.gather375, %wide.masked.gather382 %508 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather374, <4 x double> %wide.masked.gather383, <4 x double> %507) %509 = fadd <4 x double> %wide.masked.gather380, %506 %510 = fadd <4 x double> %wide.masked.gather381, %508 %511 = shufflevector <4 x double> %497, <4 x double> %498, <8 x i32> %512 = shufflevector <4 x double> %509, <4 x double> %510, <8 x i32> %interleaved.vec384 = shufflevector <8 x double> %511, <8 x double> %512, <16 x i32> store <16 x double> %interleaved.vec384, ptr %483, align 8, !noalias !3146 %513 = fsub <4 x double> %wide.masked.gather380, %506 %514 = fsub <4 x double> %wide.masked.gather381, %508 %515 = shufflevector <4 x double> %499, <4 x double> %500, <8 x i32> %516 = shufflevector <4 x double> %513, <4 x double> %514, <8 x i32> %interleaved.vec385 = shufflevector <8 x double> %515, <8 x double> %516, <16 x i32> store <16 x double> %interleaved.vec385, ptr %486, align 8, !noalias !3146 %index.next386 = add nuw i64 %index371, 4 %vec.ind.next373 = add <4 x i64> %vec.ind372, %517 = icmp eq i64 %index.next386, 252 br i1 %517, label %bb19.i.i39, label %vector.body370, !llvm.loop !3170 bb19.i.i39: ; preds = %vector.body370 %data.i.i.i.i.i.i.i.i1339 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %data.i.i.i.i.i.i1349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1008 %data.i5.i.i.i.i.i.i.i1353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %518 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 504, i64 1 %w1.0.i.i41 = load double, ptr %518, align 8, !noalias !3146, !noundef !3 %519 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 504, i64 1, i32 1 %w1.1.i.i42 = load double, ptr %519, align 8, !noalias !3146, !noundef !3 %520 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1010 %_6.i.i.i57 = fneg double %w1.1.i.i42 %521 = load <4 x double>, ptr %data.i.i.i.i.i.i1349, align 8, !noalias !3146 %522 = load <4 x double>, ptr %520, align 8, !noalias !3146 %523 = insertelement <4 x double> poison, double %_6.i.i.i57, i64 0 %524 = insertelement <4 x double> %523, double %w1.1.i.i42, i64 1 %525 = shufflevector <4 x double> %524, <4 x double> poison, <4 x i32> %526 = fmul <4 x double> %525, %522 %527 = shufflevector <4 x double> %526, <4 x double> poison, <4 x i32> %528 = insertelement <4 x double> poison, double %w1.0.i.i41, i64 0 %529 = shufflevector <4 x double> %528, <4 x double> poison, <4 x i32> zeroinitializer %530 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %529, <4 x double> %522, <4 x double> %527) %531 = fadd <4 x double> %521, %530 store <4 x double> %531, ptr %data.i.i.i.i.i.i.i.i1339, align 8, !noalias !3146 %532 = fsub <4 x double> %521, %530 store <4 x double> %532, ptr %data.i5.i.i.i.i.i.i.i1353, align 8, !noalias !3146 %data.i.i.i.i.i.i.i.i1339.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %data.i.i.i.i.i.i1349.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1012 %data.i5.i.i.i.i.i.i.i1353.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %533 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 506, i64 1 %w1.0.i.i41.1 = load double, ptr %533, align 8, !noalias !3146, !noundef !3 %534 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 506, i64 1, i32 1 %w1.1.i.i42.1 = load double, ptr %534, align 8, !noalias !3146, !noundef !3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1014 %_6.i.i.i57.1 = fneg double %w1.1.i.i42.1 %536 = load <4 x double>, ptr %data.i.i.i.i.i.i1349.1, align 8, !noalias !3146 %537 = load <4 x double>, ptr %535, align 8, !noalias !3146 %538 = insertelement <4 x double> poison, double %_6.i.i.i57.1, i64 0 %539 = insertelement <4 x double> %538, double %w1.1.i.i42.1, i64 1 %540 = shufflevector <4 x double> %539, <4 x double> poison, <4 x i32> %541 = fmul <4 x double> %540, %537 %542 = shufflevector <4 x double> %541, <4 x double> poison, <4 x i32> %543 = insertelement <4 x double> poison, double %w1.0.i.i41.1, i64 0 %544 = shufflevector <4 x double> %543, <4 x double> poison, <4 x i32> zeroinitializer %545 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %544, <4 x double> %537, <4 x double> %542) %546 = fadd <4 x double> %536, %545 store <4 x double> %546, ptr %data.i.i.i.i.i.i.i.i1339.1, align 8, !noalias !3146 %547 = fsub <4 x double> %536, %545 store <4 x double> %547, ptr %data.i5.i.i.i.i.i.i.i1353.1, align 8, !noalias !3146 %data.i.i.i.i.i.i.i.i1339.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %data.i.i.i.i.i.i1349.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1016 %data.i5.i.i.i.i.i.i.i1353.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %548 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1 %w1.0.i.i41.2 = load double, ptr %548, align 8, !noalias !3146, !noundef !3 %549 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1, i32 1 %w1.1.i.i42.2 = load double, ptr %549, align 8, !noalias !3146, !noundef !3 %550 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1018 %_6.i.i.i57.2 = fneg double %w1.1.i.i42.2 %551 = load <4 x double>, ptr %data.i.i.i.i.i.i1349.2, align 8, !noalias !3146 %552 = load <4 x double>, ptr %550, align 8, !noalias !3146 %553 = insertelement <4 x double> poison, double %_6.i.i.i57.2, i64 0 %554 = insertelement <4 x double> %553, double %w1.1.i.i42.2, i64 1 %555 = shufflevector <4 x double> %554, <4 x double> poison, <4 x i32> %556 = fmul <4 x double> %555, %552 %557 = shufflevector <4 x double> %556, <4 x double> poison, <4 x i32> %558 = insertelement <4 x double> poison, double %w1.0.i.i41.2, i64 0 %559 = shufflevector <4 x double> %558, <4 x double> poison, <4 x i32> zeroinitializer %560 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %559, <4 x double> %552, <4 x double> %557) %561 = fadd <4 x double> %551, %560 store <4 x double> %561, ptr %data.i.i.i.i.i.i.i.i1339.2, align 8, !noalias !3146 %562 = fsub <4 x double> %551, %560 store <4 x double> %562, ptr %data.i5.i.i.i.i.i.i.i1353.2, align 8, !noalias !3146 %data.i.i.i.i.i.i.i.i1339.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %data.i.i.i.i.i.i1349.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %data.i5.i.i.i.i.i.i.i1353.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %563 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1 %w1.0.i.i41.3 = load double, ptr %563, align 8, !noalias !3146, !noundef !3 %564 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1, i32 1 %w1.1.i.i42.3 = load double, ptr %564, align 8, !noalias !3146, !noundef !3 %565 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %_6.i.i.i57.3 = fneg double %w1.1.i.i42.3 %566 = load <4 x double>, ptr %data.i.i.i.i.i.i1349.3, align 8, !noalias !3146 %567 = load <4 x double>, ptr %565, align 8, !noalias !3146 %568 = insertelement <4 x double> poison, double %_6.i.i.i57.3, i64 0 %569 = insertelement <4 x double> %568, double %w1.1.i.i42.3, i64 1 %570 = shufflevector <4 x double> %569, <4 x double> poison, <4 x i32> %571 = fmul <4 x double> %570, %567 %572 = shufflevector <4 x double> %571, <4 x double> poison, <4 x i32> %573 = insertelement <4 x double> poison, double %w1.0.i.i41.3, i64 0 %574 = shufflevector <4 x double> %573, <4 x double> poison, <4 x i32> zeroinitializer %575 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %574, <4 x double> %567, <4 x double> %572) %576 = fadd <4 x double> %566, %575 store <4 x double> %576, ptr %data.i.i.i.i.i.i.i.i1339.3, align 8, !noalias !3146 %577 = fsub <4 x double> %566, %575 store <4 x double> %577, ptr %data.i5.i.i.i.i.i.i.i1353.3, align 8, !noalias !3146 br label %vector.body391 vector.body391: ; preds = %bb19.i.i39, %vector.body391 %index392 = phi i64 [ %index.next403, %vector.body391 ], [ 0, %bb19.i.i39 ] %578 = shl i64 %index392, 1 %579 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %578 %580 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index392, i64 1 %wide.vec393 = load <16 x double>, ptr %580, align 8, !noalias !3146 %strided.vec394 = shufflevector <16 x double> %wide.vec393, <16 x double> poison, <4 x i32> %strided.vec395 = shufflevector <16 x double> %wide.vec393, <16 x double> poison, <4 x i32> %581 = fneg <4 x double> %strided.vec395 %wide.vec396 = load <16 x double>, ptr %579, align 8, !noalias !3146 %strided.vec397 = shufflevector <16 x double> %wide.vec396, <16 x double> poison, <4 x i32> %strided.vec398 = shufflevector <16 x double> %wide.vec396, <16 x double> poison, <4 x i32> %strided.vec399 = shufflevector <16 x double> %wide.vec396, <16 x double> poison, <4 x i32> %strided.vec400 = shufflevector <16 x double> %wide.vec396, <16 x double> poison, <4 x i32> %582 = fmul <4 x double> %strided.vec400, %581 %583 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec394, <4 x double> %strided.vec399, <4 x double> %582) %584 = fmul <4 x double> %strided.vec395, %strided.vec399 %585 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec394, <4 x double> %strided.vec400, <4 x double> %584) %586 = fadd <4 x double> %strided.vec397, %583 %587 = fadd <4 x double> %strided.vec398, %585 %588 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index392 %interleaved.vec401 = shufflevector <4 x double> %586, <4 x double> %587, <8 x i32> store <8 x double> %interleaved.vec401, ptr %588, align 8, !noalias !3146 %589 = fsub <4 x double> %strided.vec397, %583 %590 = fsub <4 x double> %strided.vec398, %585 %591 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index392 %interleaved.vec402 = shufflevector <4 x double> %589, <4 x double> %590, <8 x i32> store <8 x double> %interleaved.vec402, ptr %591, align 8, !noalias !3146 %index.next403 = add nuw i64 %index392, 4 %592 = icmp eq i64 %index.next403, 508 br i1 %592, label %bb19.i.i, label %vector.body391, !llvm.loop !3171 bb19.i.i: ; preds = %vector.body391 %data.i.i.i.i.i.i.i.i1505 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i1515 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %data.i5.i.i.i.i.i.i.i1519 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %593 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1 %w1.0.i.i = load double, ptr %593, align 8, !noalias !3146, !noundef !3 %594 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1, i32 1 %w1.1.i.i = load double, ptr %594, align 8, !noalias !3146, !noundef !3 %595 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017 %_6.i.i.i = fneg double %w1.1.i.i %596 = load <2 x double>, ptr %data.i.i.i.i.i.i1515, align 8, !noalias !3146 %597 = load <2 x double>, ptr %595, align 8, !noalias !3146 %598 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %599 = insertelement <2 x double> %598, double %_6.i.i.i, i64 1 %600 = fmul <2 x double> %597, %599 %601 = shufflevector <2 x double> %600, <2 x double> poison, <2 x i32> %602 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %603 = shufflevector <2 x double> %602, <2 x double> poison, <2 x i32> zeroinitializer %604 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %603, <2 x double> %597, <2 x double> %601) %605 = fadd <2 x double> %596, %604 store <2 x double> %605, ptr %data.i.i.i.i.i.i.i.i1505, align 8, !noalias !3146 %606 = fsub <2 x double> %596, %604 store <2 x double> %606, ptr %data.i5.i.i.i.i.i.i.i1519, align 8, !noalias !3146 %data.i.i.i.i.i.i.i.i1505.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i1515.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %data.i5.i.i.i.i.i.i.i1519.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021 %607 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 509, i64 1 %w1.0.i.i.1 = load double, ptr %607, align 8, !noalias !3146, !noundef !3 %608 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 509, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %608, align 8, !noalias !3146, !noundef !3 %609 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %610 = load <2 x double>, ptr %data.i.i.i.i.i.i1515.1, align 8, !noalias !3146 %611 = load <2 x double>, ptr %609, align 8, !noalias !3146 %612 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %613 = insertelement <2 x double> %612, double %_6.i.i.i.1, i64 1 %614 = fmul <2 x double> %611, %613 %615 = shufflevector <2 x double> %614, <2 x double> poison, <2 x i32> %616 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %617 = shufflevector <2 x double> %616, <2 x double> poison, <2 x i32> zeroinitializer %618 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %617, <2 x double> %611, <2 x double> %615) %619 = fadd <2 x double> %610, %618 store <2 x double> %619, ptr %data.i.i.i.i.i.i.i.i1505.1, align 8, !noalias !3146 %620 = fsub <2 x double> %610, %618 store <2 x double> %620, ptr %data.i5.i.i.i.i.i.i.i1519.1, align 8, !noalias !3146 %data.i.i.i.i.i.i.i.i1505.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i1515.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %data.i5.i.i.i.i.i.i.i1519.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %621 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1 %w1.0.i.i.2 = load double, ptr %621, align 8, !noalias !3146, !noundef !3 %622 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %622, align 8, !noalias !3146, !noundef !3 %623 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %624 = load <2 x double>, ptr %data.i.i.i.i.i.i1515.2, align 8, !noalias !3146 %625 = load <2 x double>, ptr %623, align 8, !noalias !3146 %626 = insertelement <2 x double> poison, double %w1.1.i.i.2, i64 0 %627 = insertelement <2 x double> %626, double %_6.i.i.i.2, i64 1 %628 = fmul <2 x double> %625, %627 %629 = shufflevector <2 x double> %628, <2 x double> poison, <2 x i32> %630 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %631 = shufflevector <2 x double> %630, <2 x double> poison, <2 x i32> zeroinitializer %632 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %631, <2 x double> %625, <2 x double> %629) %633 = fadd <2 x double> %624, %632 store <2 x double> %633, ptr %data.i.i.i.i.i.i.i.i1505.2, align 8, !noalias !3146 %634 = fsub <2 x double> %624, %632 store <2 x double> %634, ptr %data.i5.i.i.i.i.i.i.i1519.2, align 8, !noalias !3146 %data.i.i.i.i.i.i.i.i1505.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i1515.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %data.i5.i.i.i.i.i.i.i1519.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023 %635 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 511, i64 1 %w1.0.i.i.3 = load double, ptr %635, align 8, !noalias !3146, !noundef !3 %636 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 511, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %636, align 8, !noalias !3146, !noundef !3 %637 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %638 = load <2 x double>, ptr %data.i.i.i.i.i.i1515.3, align 8, !noalias !3146 %639 = load <2 x double>, ptr %637, align 8, !noalias !3146 %640 = insertelement <2 x double> poison, double %w1.1.i.i.3, i64 0 %641 = insertelement <2 x double> %640, double %_6.i.i.i.3, i64 1 %642 = fmul <2 x double> %639, %641 %643 = shufflevector <2 x double> %642, <2 x double> poison, <2 x i32> %644 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %645 = shufflevector <2 x double> %644, <2 x double> poison, <2 x i32> zeroinitializer %646 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %645, <2 x double> %639, <2 x double> %643) %647 = fadd <2 x double> %638, %646 store <2 x double> %647, ptr %data.i.i.i.i.i.i.i.i1505.3, align 8, !noalias !3146 %648 = fsub <2 x double> %638, %646 store <2 x double> %648, ptr %data.i5.i.i.i.i.i.i.i1519.3, align 8, !noalias !3146 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3146 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4323d5d3b8d24106E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3172 store i64 16, ptr %n.i, align 8, !noalias !3172 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3172 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3172 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3172 store ptr null, ptr %_16.i, align 8, !noalias !3172 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3172 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3172 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3172 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3172 store ptr null, ptr %_24.i, align 8, !noalias !3172 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3172 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3172 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3172 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3172 store ptr null, ptr %_32.i, align 8, !noalias !3172 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3172 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3172 store i64 %w.1, ptr %_34.i, align 8, !noalias !3172 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3172 store ptr null, ptr %_40.i, align 8, !noalias !3172 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3172 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !3175 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !3175 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %2 = fadd <4 x double> %strided.vec, %strided.vec3 %3 = fadd <4 x double> %strided.vec1, %strided.vec4 %4 = fsub <4 x double> %strided.vec, %strided.vec3 %5 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %2, <4 x double> %3, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !3175 %interleaved.vec5 = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec5, ptr %1, align 8, !noalias !3175 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %wide.vec.1 = load <8 x double>, ptr %6, align 8, !noalias !3175 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %7, align 8, !noalias !3175 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %8 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %9 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %10 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %11 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %8, <4 x double> %9, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %12, align 8, !noalias !3175 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec5.1 = shufflevector <4 x double> %10, <4 x double> %11, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %13, align 8, !noalias !3175 %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <2 x i64> %15 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %15, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %16 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %16, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %17 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2 %wide.masked.gather13 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %17, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %18 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %18, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %19 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3 %wide.masked.gather15 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %19, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %20 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %20, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %21 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4 %wide.masked.gather17 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %21, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %22 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4, i32 1 %wide.masked.gather18 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %22, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %23 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5 %wide.masked.gather19 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %23, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5, i32 1 %wide.masked.gather20 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %24, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6 %wide.masked.gather21 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %25, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6, i32 1 %wide.masked.gather22 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %26, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7 %wide.masked.gather23 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %27, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7, i32 1 %wide.masked.gather24 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %28, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %29 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 4 %30 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 2 %31 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 1 %32 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 3 %33 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 6 %34 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 5 %35 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 7 %36 = fneg <2 x double> %wide.masked.gather12 %37 = fneg <2 x double> %wide.masked.gather14 %38 = fneg <2 x double> %wide.masked.gather16 %39 = fneg <2 x double> %wide.masked.gather18 %40 = fneg <2 x double> %wide.masked.gather20 %41 = fneg <2 x double> %wide.masked.gather22 %42 = fneg <2 x double> %wide.masked.gather24 %wide.masked.gather25 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %14, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %43 = getelementptr inbounds i8, <2 x ptr> %14, i64 8 %wide.masked.gather26 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %43, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %wide.masked.gather27 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %31, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %44 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 1, i32 1 %wide.masked.gather28 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %44, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %45 = fmul <2 x double> %wide.masked.gather28, %36 %46 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather27, <2 x double> %45) %47 = fmul <2 x double> %wide.masked.gather12, %wide.masked.gather27 %48 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather28, <2 x double> %47) %wide.masked.gather29 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %30, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %49 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 2, i32 1 %wide.masked.gather30 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %49, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %50 = fmul <2 x double> %wide.masked.gather30, %37 %51 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather29, <2 x double> %50) %52 = fmul <2 x double> %wide.masked.gather14, %wide.masked.gather29 %53 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather30, <2 x double> %52) %wide.masked.gather31 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %32, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %54 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 3, i32 1 %wide.masked.gather32 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %54, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %55 = fmul <2 x double> %wide.masked.gather32, %38 %56 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather31, <2 x double> %55) %57 = fmul <2 x double> %wide.masked.gather16, %wide.masked.gather31 %58 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather32, <2 x double> %57) %wide.masked.gather33 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %29, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %59 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 4, i32 1 %wide.masked.gather34 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %59, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %60 = fmul <2 x double> %wide.masked.gather34, %39 %61 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather33, <2 x double> %60) %62 = fmul <2 x double> %wide.masked.gather18, %wide.masked.gather33 %63 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather34, <2 x double> %62) %wide.masked.gather35 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %34, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %64 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 5, i32 1 %wide.masked.gather36 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %64, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %65 = fmul <2 x double> %wide.masked.gather36, %40 %66 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather35, <2 x double> %65) %67 = fmul <2 x double> %wide.masked.gather20, %wide.masked.gather35 %68 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather36, <2 x double> %67) %wide.masked.gather37 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %33, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %69 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 6, i32 1 %wide.masked.gather38 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %69, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %70 = fmul <2 x double> %wide.masked.gather38, %41 %71 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather37, <2 x double> %70) %72 = fmul <2 x double> %wide.masked.gather22, %wide.masked.gather37 %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather38, <2 x double> %72) %wide.masked.gather39 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %35, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %74 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 7, i32 1 %wide.masked.gather40 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %74, i32 8, <2 x i1> , <2 x double> poison), !noalias !3172 %75 = fmul <2 x double> %wide.masked.gather40, %42 %76 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather39, <2 x double> %75) %77 = fmul <2 x double> %wide.masked.gather24, %wide.masked.gather39 %78 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather40, <2 x double> %77) %79 = fadd <2 x double> %wide.masked.gather25, %61 %80 = fadd <2 x double> %wide.masked.gather26, %63 %81 = fsub <2 x double> %wide.masked.gather25, %61 %82 = fsub <2 x double> %wide.masked.gather26, %63 %83 = fadd <2 x double> %51, %71 %84 = fadd <2 x double> %53, %73 %85 = fsub <2 x double> %51, %71 %86 = fsub <2 x double> %53, %73 %87 = fadd <2 x double> %46, %66 %88 = fadd <2 x double> %48, %68 %89 = fsub <2 x double> %46, %66 %90 = fsub <2 x double> %48, %68 %91 = fadd <2 x double> %56, %76 %92 = fadd <2 x double> %58, %78 %93 = fsub <2 x double> %56, %76 %94 = fsub <2 x double> %58, %78 %95 = fadd <2 x double> %79, %83 %96 = fadd <2 x double> %80, %84 %97 = fadd <2 x double> %87, %91 %98 = fadd <2 x double> %88, %92 %99 = fadd <2 x double> %95, %97 %100 = fadd <2 x double> %96, %98 %interleaved.vec41 = shufflevector <2 x double> %99, <2 x double> %100, <4 x i32> store <4 x double> %interleaved.vec41, ptr %buf.0, align 8, !noalias !3172 %101 = fsub <2 x double> %95, %97 %102 = fsub <2 x double> %96, %98 %103 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec42 = shufflevector <2 x double> %101, <2 x double> %102, <4 x i32> store <4 x double> %interleaved.vec42, ptr %103, align 8, !noalias !3172 %104 = fadd <2 x double> %81, %86 %105 = fsub <2 x double> %82, %85 %106 = fadd <2 x double> %89, %94 %107 = fsub <2 x double> %90, %93 %108 = fadd <2 x double> %106, %107 %109 = fsub <2 x double> %107, %106 %110 = fmul <2 x double> %108, %111 = fmul <2 x double> %109, %112 = fadd <2 x double> %104, %110 %113 = fadd <2 x double> %105, %111 %114 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec43 = shufflevector <2 x double> %112, <2 x double> %113, <4 x i32> store <4 x double> %interleaved.vec43, ptr %114, align 8, !noalias !3172 %115 = fsub <2 x double> %104, %110 %116 = fsub <2 x double> %105, %111 %117 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %interleaved.vec44 = shufflevector <2 x double> %115, <2 x double> %116, <4 x i32> store <4 x double> %interleaved.vec44, ptr %117, align 8, !noalias !3172 %118 = fsub <2 x double> %79, %83 %119 = fsub <2 x double> %80, %84 %120 = fsub <2 x double> %87, %91 %121 = fsub <2 x double> %88, %92 %122 = fadd <2 x double> %118, %121 %123 = fsub <2 x double> %119, %120 %124 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec45 = shufflevector <2 x double> %122, <2 x double> %123, <4 x i32> store <4 x double> %interleaved.vec45, ptr %124, align 8, !noalias !3172 %125 = fsub <2 x double> %118, %121 %126 = fadd <2 x double> %119, %120 %127 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec46 = shufflevector <2 x double> %125, <2 x double> %126, <4 x i32> store <4 x double> %interleaved.vec46, ptr %127, align 8, !noalias !3172 %128 = fsub <2 x double> %81, %86 %129 = fadd <2 x double> %82, %85 %130 = fsub <2 x double> %89, %94 %131 = fadd <2 x double> %90, %93 %132 = fsub <2 x double> %130, %131 %133 = fadd <2 x double> %130, %131 %134 = fmul <2 x double> %132, %135 = fmul <2 x double> %133, %136 = fsub <2 x double> %128, %134 %137 = fsub <2 x double> %129, %135 %138 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %interleaved.vec47 = shufflevector <2 x double> %136, <2 x double> %137, <4 x i32> store <4 x double> %interleaved.vec47, ptr %138, align 8, !noalias !3172 %139 = fadd <2 x double> %128, %134 %140 = fadd <2 x double> %129, %135 %141 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %interleaved.vec48 = shufflevector <2 x double> %139, <2 x double> %140, <4 x i32> store <4 x double> %interleaved.vec48, ptr %141, align 8, !noalias !3172 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3172 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h44b89be497dd35c3E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3178 store i64 32, ptr %n.i.i, align 8, !noalias !3178 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3178 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3178 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3178 store ptr null, ptr %_16.i.i, align 8, !noalias !3178 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3178 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3178 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3178 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3178 store ptr null, ptr %_24.i.i, align 8, !noalias !3178 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3178 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3178 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3178 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3178 store ptr null, ptr %_32.i.i, align 8, !noalias !3178 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3178 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3178 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3178 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h38425f95ec6537b6E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3178 store ptr null, ptr %_40.i.i, align 8, !noalias !3178 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h38425f95ec6537b6E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3178 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3183 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %6, align 8, !noalias !3183 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %5, align 8, !noalias !3183 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %7, align 8, !noalias !3183 %8 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = fsub <4 x double> %8, %10 %19 = fadd <4 x double> %9, %15 store <4 x double> %16, ptr %scratch.0, align 8, !noalias !3183 store <4 x double> %17, ptr %3, align 8, !noalias !3183 store <4 x double> %18, ptr %2, align 8, !noalias !3183 store <4 x double> %19, ptr %4, align 8, !noalias !3183 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3183 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3183 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3183 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3183 %20 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %21 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %22 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %23 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = fsub <4 x double> %20, %22 %31 = fadd <4 x double> %21, %27 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3183 store <4 x double> %29, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3183 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3183 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3183 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_73.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3183 %_74.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3183 %_75.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !3183 %_76.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3183 %32 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %33 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %34 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %35 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %36 = bitcast <4 x double> %35 to <4 x i64> %37 = xor <4 x i64> %36, %38 = bitcast <4 x i64> %37 to <4 x double> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = fadd <4 x double> %32, %34 %41 = fsub <4 x double> %33, %39 %42 = fsub <4 x double> %32, %34 %43 = fadd <4 x double> %33, %39 store <4 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3183 store <4 x double> %41, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3183 store <4 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3183 store <4 x double> %43, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3183 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_73.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3183 %_74.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3183 %_75.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !3183 %_76.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3183 %44 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %45 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %46 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %47 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %48 = bitcast <4 x double> %47 to <4 x i64> %49 = xor <4 x i64> %48, %50 = bitcast <4 x i64> %49 to <4 x double> %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = fadd <4 x double> %44, %46 %53 = fsub <4 x double> %45, %51 %54 = fsub <4 x double> %44, %46 %55 = fadd <4 x double> %45, %51 store <4 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3183 store <4 x double> %53, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3183 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3183 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3183 tail call void @llvm.experimental.noalias.scope.decl(metadata !3187) tail call void @llvm.experimental.noalias.scope.decl(metadata !3190) %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %58 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %59 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %60 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %61 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %58, align 8, !alias.scope !3190, !noalias !3192 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %57, align 8, !alias.scope !3190, !noalias !3192 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %59, align 8, !alias.scope !3190, !noalias !3192 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %56, align 8, !alias.scope !3190, !noalias !3192 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %61, align 8, !alias.scope !3190, !noalias !3192 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %60, align 8, !alias.scope !3190, !noalias !3192 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %62, align 8, !alias.scope !3190, !noalias !3192 %63 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %64 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %65, %67 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %71, %73 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = shufflevector <4 x double> %40, <4 x double> %41, <4 x i32> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %83, %85 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = shufflevector <4 x double> %40, <4 x double> %41, <4 x i32> %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %89, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = shufflevector <4 x double> %52, <4 x double> %53, <4 x i32> %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %95, %97 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %52, <4 x double> %53, <4 x i32> %101 = shufflevector <4 x double> %100, <4 x double> poison, <4 x i32> %102 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %103 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %101, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %100, <4 x double> %104) #23 %106 = fadd <4 x double> %63, %87 %107 = fsub <4 x double> %63, %87 %108 = fadd <4 x double> %75, %99 %109 = fsub <4 x double> %75, %99 %110 = bitcast <4 x double> %109 to <4 x i64> %111 = fsub <4 x double> %81, %105 %112 = bitcast <4 x double> %111 to <4 x i64> %113 = xor <4 x i64> %110, %114 = bitcast <4 x i64> %113 to <4 x double> %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %116 = xor <4 x i64> %112, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %69, %93 %120 = fsub <4 x double> %69, %93 %121 = fadd <4 x double> %81, %105 %122 = fadd <4 x double> %106, %108 %123 = fadd <4 x double> %119, %121 %124 = fadd <4 x double> %122, %123 store <4 x double> %124, ptr %buf.0, align 8, !alias.scope !3187, !noalias !3194 %125 = fsub <4 x double> %122, %123 store <4 x double> %125, ptr %5, align 8, !alias.scope !3187, !noalias !3194 %126 = fsub <4 x double> %107, %115 %127 = fsub <4 x double> %120, %118 %128 = bitcast <4 x double> %127 to <4 x i64> %129 = xor <4 x i64> %128, %130 = bitcast <4 x i64> %129 to <4 x double> %131 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> %132 = fadd <4 x double> %127, %131 %133 = fmul <4 x double> %132, %134 = fadd <4 x double> %126, %133 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3187, !noalias !3194 %135 = fsub <4 x double> %126, %133 store <4 x double> %135, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !3187, !noalias !3194 %136 = fsub <4 x double> %106, %108 %137 = fsub <4 x double> %119, %121 %138 = bitcast <4 x double> %137 to <4 x i64> %139 = fadd <4 x double> %107, %115 %140 = fadd <4 x double> %120, %118 %141 = xor <4 x i64> %138, %142 = bitcast <4 x i64> %141 to <4 x double> %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = fsub <4 x double> %136, %143 store <4 x double> %144, ptr %6, align 8, !alias.scope !3187, !noalias !3194 %145 = fadd <4 x double> %136, %143 store <4 x double> %145, ptr %7, align 8, !alias.scope !3187, !noalias !3194 %146 = bitcast <4 x double> %140 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fadd <4 x double> %140, %149 %151 = fmul <4 x double> %150, %152 = fsub <4 x double> %139, %151 store <4 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3187, !noalias !3194 %153 = fadd <4 x double> %139, %151 store <4 x double> %153, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !3187, !noalias !3194 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %w4.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %w5.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %w6.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %w7.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3190, !noalias !3192 %154 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %155 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %156 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %156, %158 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %155, <4 x double> %159) #23 %161 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %162, %164 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %168, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = shufflevector <4 x double> %42, <4 x double> %43, <4 x i32> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %174, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = shufflevector <4 x double> %42, <4 x double> %43, <4 x i32> %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %180, %182 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = shufflevector <4 x double> %54, <4 x double> %55, <4 x i32> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %186, %188 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = shufflevector <4 x double> %54, <4 x double> %55, <4 x i32> %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %192, %194 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = fadd <4 x double> %154, %178 %198 = fsub <4 x double> %154, %178 %199 = fadd <4 x double> %166, %190 %200 = fsub <4 x double> %166, %190 %201 = bitcast <4 x double> %200 to <4 x i64> %202 = fsub <4 x double> %172, %196 %203 = bitcast <4 x double> %202 to <4 x i64> %204 = xor <4 x i64> %201, %205 = bitcast <4 x i64> %204 to <4 x double> %206 = shufflevector <4 x double> %205, <4 x double> poison, <4 x i32> %207 = xor <4 x i64> %203, %208 = bitcast <4 x i64> %207 to <4 x double> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = fadd <4 x double> %160, %184 %211 = fsub <4 x double> %160, %184 %212 = fadd <4 x double> %172, %196 %213 = fadd <4 x double> %197, %199 %214 = fadd <4 x double> %210, %212 %215 = fadd <4 x double> %213, %214 store <4 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3187, !noalias !3194 %216 = fsub <4 x double> %213, %214 store <4 x double> %216, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !3187, !noalias !3194 %217 = fsub <4 x double> %198, %206 %218 = fsub <4 x double> %211, %209 %219 = bitcast <4 x double> %218 to <4 x i64> %220 = xor <4 x i64> %219, %221 = bitcast <4 x i64> %220 to <4 x double> %222 = shufflevector <4 x double> %221, <4 x double> poison, <4 x i32> %223 = fadd <4 x double> %218, %222 %224 = fmul <4 x double> %223, %225 = fadd <4 x double> %217, %224 store <4 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3187, !noalias !3194 %226 = fsub <4 x double> %217, %224 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !3187, !noalias !3194 %227 = fsub <4 x double> %197, %199 %228 = fsub <4 x double> %210, %212 %229 = bitcast <4 x double> %228 to <4 x i64> %230 = fadd <4 x double> %198, %206 %231 = fadd <4 x double> %211, %209 %232 = xor <4 x i64> %229, %233 = bitcast <4 x i64> %232 to <4 x double> %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = fsub <4 x double> %227, %234 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3187, !noalias !3194 %236 = fadd <4 x double> %227, %234 store <4 x double> %236, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !3187, !noalias !3194 %237 = bitcast <4 x double> %231 to <4 x i64> %238 = xor <4 x i64> %237, %239 = bitcast <4 x i64> %238 to <4 x double> %240 = shufflevector <4 x double> %239, <4 x double> poison, <4 x i32> %241 = fadd <4 x double> %231, %240 %242 = fmul <4 x double> %241, %243 = fsub <4 x double> %230, %242 store <4 x double> %243, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3187, !noalias !3194 %244 = fadd <4 x double> %230, %242 store <4 x double> %244, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !3187, !noalias !3194 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3178 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h44e0035b56394031E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3195 store i64 128, ptr %n.i.i, align 8, !noalias !3195 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3195 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3195 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3195 store ptr null, ptr %_16.i.i, align 8, !noalias !3195 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3195 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3195 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3195 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3195 store ptr null, ptr %_24.i.i, align 8, !noalias !3195 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3195 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3195 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3195 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3195 store ptr null, ptr %_32.i.i, align 8, !noalias !3195 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3195 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3195 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3195 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h40f2d6d98755807fE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3195 store ptr null, ptr %_40.i.i, align 8, !noalias !3195 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h40f2d6d98755807fE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3195 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h40f2d6d98755807fE.exit.i" %iter14.i.i.i.sroa.106.0523.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h40f2d6d98755807fE.exit.i" ], [ %16, %bb38.i.i.i.i ] %16 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0523.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter14.i.i.i.sroa.106.0523.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !3200 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !3200 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !3200 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !3200 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !3200 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !3200 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !3200 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !3200 %17 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %18 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %19 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %20 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = xor <4 x i64> %21, %23 = bitcast <4 x i64> %22 to <4 x double> %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %26 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %27 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %28 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %29 = bitcast <4 x double> %28 to <4 x i64> %30 = xor <4 x i64> %29, %31 = bitcast <4 x i64> %30 to <4 x double> %32 = shufflevector <4 x double> %31, <4 x double> poison, <4 x i32> %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %24 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %24 %37 = fadd <4 x double> %25, %27 %38 = fsub <4 x double> %26, %32 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %38, %42 %44 = fmul <4 x double> %43, %45 = fsub <4 x double> %25, %27 %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %26, %32 %51 = bitcast <4 x double> %50 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %50, %54 %56 = fmul <4 x double> %55, %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %44 %59 = fsub <4 x double> %35, %49 %60 = fsub <4 x double> %36, %56 %61 = fsub <4 x double> %33, %37 %62 = fsub <4 x double> %34, %44 %63 = fadd <4 x double> %35, %49 %64 = fadd <4 x double> %36, %56 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %62, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 store <4 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3200 %exitcond.not.i = icmp eq i64 %16, 8 br i1 %exitcond.not.i, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i", label %bb38.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i": ; preds = %bb38.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3204) tail call void @llvm.experimental.noalias.scope.decl(metadata !3207) tail call void @llvm.experimental.noalias.scope.decl(metadata !3209) %65 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %66 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 36 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 44 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 52 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 60 %73 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %74 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %75 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %76 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %77 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %78 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %79 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %80 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %81 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %82 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %83 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 36 %84 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 44 %85 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %86 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 52 %87 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 60 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i" %iter.sroa.218.05279.i.i = phi i64 [ %88, %bb39.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i" ] %88 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %65, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %66, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %76, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %75, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %77, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %74, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %79, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %78, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %80, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %73, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %83, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %82, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %84, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %81, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %86, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %85, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %87, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3209, !noalias !3211 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3207, !noalias !3212 %89 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %89, align 8, !alias.scope !3207, !noalias !3212 %90 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %90, align 8, !alias.scope !3207, !noalias !3212 %91 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %91, align 8, !alias.scope !3207, !noalias !3212 %92 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %92, align 8, !alias.scope !3207, !noalias !3212 %93 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %93, align 8, !alias.scope !3207, !noalias !3212 %94 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %94, align 8, !alias.scope !3207, !noalias !3212 %95 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %95, align 8, !alias.scope !3207, !noalias !3212 %96 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %96, align 8, !alias.scope !3207, !noalias !3212 %97 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %97, align 8, !alias.scope !3207, !noalias !3212 %98 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %98, align 8, !alias.scope !3207, !noalias !3212 %99 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %99, align 8, !alias.scope !3207, !noalias !3212 %100 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %100, align 8, !alias.scope !3207, !noalias !3212 %101 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %101, align 8, !alias.scope !3207, !noalias !3212 %102 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %102, align 8, !alias.scope !3207, !noalias !3212 %103 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %103, align 8, !alias.scope !3207, !noalias !3212 %104 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %105 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %106 = shufflevector <4 x double> %105, <4 x double> poison, <4 x i32> %107 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %108 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %108, %106 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %105, <4 x double> %109) #23 %111 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %112 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> %113 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %114 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %115 = fmul <4 x double> %114, %112 %116 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %111, <4 x double> %115) #23 %117 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %120 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %120, %118 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %117, <4 x double> %121) #23 %123 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %124 = shufflevector <4 x double> %123, <4 x double> poison, <4 x i32> %125 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %126 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %126, %124 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %125, <4 x double> %123, <4 x double> %127) #23 %129 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %132 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %132, %130 %134 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %131, <4 x double> %129, <4 x double> %133) #23 %135 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %138 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %138, %136 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %135, <4 x double> %139) #23 %141 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %144 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %144, %142 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %143, <4 x double> %141, <4 x double> %145) #23 %147 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %150 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %150, %148 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %147, <4 x double> %151) #23 %153 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %154 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> %155 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %156 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %157 = fmul <4 x double> %156, %154 %158 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %153, <4 x double> %157) #23 %159 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %162 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %162, %160 %164 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %159, <4 x double> %163) #23 %165 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %168 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %169 = fmul <4 x double> %168, %166 %170 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %167, <4 x double> %165, <4 x double> %169) #23 %171 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %172 = shufflevector <4 x double> %171, <4 x double> poison, <4 x i32> %173 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %174 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %174, %172 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %171, <4 x double> %175) #23 %177 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %180 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %180, %178 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %179, <4 x double> %177, <4 x double> %181) #23 %183 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %186 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %184 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %185, <4 x double> %183, <4 x double> %187) #23 %189 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %192 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %193 = fmul <4 x double> %192, %190 %194 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %191, <4 x double> %189, <4 x double> %193) #23 %195 = fadd <4 x double> %104, %152 %196 = fsub <4 x double> %104, %152 %197 = fadd <4 x double> %128, %176 %198 = fsub <4 x double> %128, %176 %199 = fadd <4 x double> %116, %164 %200 = fsub <4 x double> %116, %164 %201 = fadd <4 x double> %140, %188 %202 = fsub <4 x double> %140, %188 %203 = fadd <4 x double> %110, %158 %204 = fsub <4 x double> %110, %158 %205 = fadd <4 x double> %134, %182 %206 = fsub <4 x double> %134, %182 %207 = fadd <4 x double> %122, %170 %208 = fsub <4 x double> %122, %170 %209 = fadd <4 x double> %146, %194 %210 = fsub <4 x double> %146, %194 %211 = bitcast <4 x double> %198 to <4 x i64> %212 = bitcast <4 x double> %202 to <4 x i64> %213 = bitcast <4 x double> %206 to <4 x i64> %214 = bitcast <4 x double> %210 to <4 x i64> %215 = xor <4 x i64> %211, %216 = bitcast <4 x i64> %215 to <4 x double> %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = xor <4 x i64> %212, %219 = bitcast <4 x i64> %218 to <4 x double> %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = xor <4 x i64> %213, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = xor <4 x i64> %214, %225 = bitcast <4 x i64> %224 to <4 x double> %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = fadd <4 x double> %195, %197 %228 = fsub <4 x double> %196, %217 %229 = fsub <4 x double> %195, %197 %230 = fadd <4 x double> %196, %217 %231 = fadd <4 x double> %199, %201 %232 = fsub <4 x double> %200, %220 %233 = fsub <4 x double> %199, %201 %234 = fadd <4 x double> %200, %220 %235 = fadd <4 x double> %203, %205 %236 = fsub <4 x double> %204, %223 %237 = fsub <4 x double> %203, %205 %238 = fadd <4 x double> %204, %223 %239 = fadd <4 x double> %207, %209 %240 = fsub <4 x double> %208, %226 %241 = fsub <4 x double> %207, %209 %242 = fadd <4 x double> %208, %226 %243 = bitcast <4 x double> %232 to <4 x i64> %244 = xor <4 x i64> %243, %245 = bitcast <4 x i64> %244 to <4 x double> %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = fadd <4 x double> %232, %246 %248 = fmul <4 x double> %247, %249 = bitcast <4 x double> %233 to <4 x i64> %250 = xor <4 x i64> %249, %251 = bitcast <4 x i64> %250 to <4 x double> %252 = shufflevector <4 x double> %251, <4 x double> poison, <4 x i32> %253 = bitcast <4 x double> %234 to <4 x i64> %254 = xor <4 x i64> %253, %255 = bitcast <4 x i64> %254 to <4 x double> %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fadd <4 x double> %234, %256 %258 = fmul <4 x double> %257, %259 = fadd <4 x double> %227, %231 %260 = fadd <4 x double> %228, %248 %261 = fsub <4 x double> %229, %252 %262 = fsub <4 x double> %230, %258 %263 = fsub <4 x double> %227, %231 %264 = fsub <4 x double> %228, %248 %265 = fadd <4 x double> %229, %252 %266 = fadd <4 x double> %230, %258 %267 = bitcast <4 x double> %240 to <4 x i64> %268 = xor <4 x i64> %267, %269 = bitcast <4 x i64> %268 to <4 x double> %270 = shufflevector <4 x double> %269, <4 x double> poison, <4 x i32> %271 = fadd <4 x double> %240, %270 %272 = fmul <4 x double> %271, %273 = bitcast <4 x double> %241 to <4 x i64> %274 = xor <4 x i64> %273, %275 = bitcast <4 x i64> %274 to <4 x double> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = bitcast <4 x double> %242 to <4 x i64> %278 = xor <4 x i64> %277, %279 = bitcast <4 x i64> %278 to <4 x double> %280 = shufflevector <4 x double> %279, <4 x double> poison, <4 x i32> %281 = fadd <4 x double> %242, %280 %282 = fmul <4 x double> %281, %283 = fadd <4 x double> %235, %239 %284 = fadd <4 x double> %236, %272 %285 = fsub <4 x double> %237, %276 %286 = fsub <4 x double> %238, %282 %287 = fsub <4 x double> %235, %239 %288 = fsub <4 x double> %236, %272 %289 = fadd <4 x double> %237, %276 %290 = fadd <4 x double> %238, %282 %291 = fadd <4 x double> %259, %283 store <4 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %292 = fsub <4 x double> %259, %283 store <4 x double> %292, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %293 = fmul <4 x double> %284, %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %284, <4 x double> %294) #23 %296 = fadd <4 x double> %295, %260 store <4 x double> %296, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %297 = fsub <4 x double> %260, %295 store <4 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %298 = bitcast <4 x double> %285 to <4 x i64> %299 = xor <4 x i64> %298, %300 = bitcast <4 x i64> %299 to <4 x double> %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fadd <4 x double> %285, %301 %303 = fmul <4 x double> %302, %304 = fadd <4 x double> %261, %303 store <4 x double> %304, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %305 = fsub <4 x double> %261, %303 store <4 x double> %305, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %306 = fmul <4 x double> %286, %307 = shufflevector <4 x double> %306, <4 x double> poison, <4 x i32> %308 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %286, <4 x double> %307) #23 %309 = bitcast <4 x double> %287 to <4 x i64> %310 = xor <4 x i64> %309, %311 = bitcast <4 x i64> %310 to <4 x double> %312 = shufflevector <4 x double> %311, <4 x double> poison, <4 x i32> %313 = fmul <4 x double> %288, %314 = shufflevector <4 x double> %313, <4 x double> poison, <4 x i32> %315 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %288, <4 x double> %314) #23 %.sink.i228.i = fadd <4 x double> %263, %312 %.sink5280.i.i = fsub <4 x double> %263, %312 %.sink5281.i.i = fsub <4 x double> %262, %308 %.sink5282.i.i = fadd <4 x double> %308, %262 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 store <4 x double> %.sink.i228.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %316 = fsub <4 x double> %264, %315 store <4 x double> %316, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %317 = fadd <4 x double> %315, %264 store <4 x double> %317, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %318 = bitcast <4 x double> %289 to <4 x i64> %319 = xor <4 x i64> %318, %320 = bitcast <4 x i64> %319 to <4 x double> %321 = shufflevector <4 x double> %320, <4 x double> poison, <4 x i32> %322 = fmul <4 x double> %290, %323 = shufflevector <4 x double> %322, <4 x double> poison, <4 x i32> %324 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %290, <4 x double> %323) #23 %.pn5288.in.i.i = fadd <4 x double> %289, %321 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %265, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %265, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %325 = fsub <4 x double> %266, %324 store <4 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %326 = fadd <4 x double> %266, %324 store <4 x double> %326, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3204, !noalias !3213 %exitcond.not.i.i = icmp eq i64 %88, 4 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17ha7d092878e784caaE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17ha7d092878e784caaE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3195 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h460178b1005f8592E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h46ba2335172c77a4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h463fdaabeceb07f9E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4d59c5f8b5221cedE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h465d009e3b9f36c0E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2811060cd35577f6E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4859605306b6d53bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3214 store i64 32, ptr %n.i.i, align 8, !noalias !3214 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3214 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3214 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3214 store ptr null, ptr %_16.i.i, align 8, !noalias !3214 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3214 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3214 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3214 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3214 store ptr null, ptr %_24.i.i, align 8, !noalias !3214 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3214 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3214 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3214 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3214 store ptr null, ptr %_32.i.i, align 8, !noalias !3214 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3214 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3214 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3214 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h030fd5d2672250b2E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3214 store ptr null, ptr %_40.i.i, align 8, !noalias !3214 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h030fd5d2672250b2E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3214 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %_33.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !3214 %3 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %4 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_33.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.1.i, align 8, !noalias !3214 %5 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.i.sroa.0.0.copyload.1.i %6 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.i.sroa.0.0.copyload.1.i %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_33.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.2.i, align 8, !noalias !3214 %7 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.2.i, %_34.i.i.i.i.sroa.0.0.copyload.2.i %8 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.2.i, %_34.i.i.i.i.sroa.0.0.copyload.2.i %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_33.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.3.i, align 8, !noalias !3214 %9 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.3.i, %_34.i.i.i.i.sroa.0.0.copyload.3.i %10 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.3.i, %_34.i.i.i.i.sroa.0.0.copyload.3.i %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_33.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.4.i, align 8, !noalias !3214 %11 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.4.i, %_34.i.i.i.i.sroa.0.0.copyload.4.i %12 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.4.i, %_34.i.i.i.i.sroa.0.0.copyload.4.i %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_33.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.5.i, align 8, !noalias !3214 %13 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.5.i, %_34.i.i.i.i.sroa.0.0.copyload.5.i %14 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.5.i, %_34.i.i.i.i.sroa.0.0.copyload.5.i %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_33.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.6.i, align 8, !noalias !3214 %15 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.6.i, %_34.i.i.i.i.sroa.0.0.copyload.6.i %16 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.6.i, %_34.i.i.i.i.sroa.0.0.copyload.6.i %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_33.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !3214 %_34.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.7.i, align 8, !noalias !3214 %17 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.7.i, %_34.i.i.i.i.sroa.0.0.copyload.7.i %18 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.7.i, %_34.i.i.i.i.sroa.0.0.copyload.7.i %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %20 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %20, align 8, !noalias !3214, !noundef !3 %21 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %21, align 8, !noalias !3214, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %22 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %23 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %24 = shufflevector <4 x double> %22, <4 x double> poison, <4 x i32> zeroinitializer %25 = shufflevector <4 x double> %11, <4 x double> poison, <4 x i32> %26 = fmul <4 x double> %25, %24 %27 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %11, <4 x double> %26) #23 %28 = fadd <4 x double> %3, %27 %29 = fsub <4 x double> %3, %27 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %30 = shufflevector <4 x double> %13, <4 x double> poison, <4 x i32> %31 = fmul <4 x double> %30, %24 %32 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %13, <4 x double> %31) #23 %33 = fadd <4 x double> %5, %32 %34 = fsub <4 x double> %5, %32 %_3.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %35 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %35, %24 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %15, <4 x double> %36) #23 %38 = fadd <4 x double> %7, %37 %39 = fsub <4 x double> %7, %37 %_3.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %40 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %40, %24 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %17, <4 x double> %41) #23 %43 = fadd <4 x double> %9, %42 %44 = fsub <4 x double> %9, %42 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %data.i5.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %45 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.us.i.1.i = load double, ptr %45, align 8, !noalias !3214, !noundef !3 %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %46, align 8, !noalias !3214, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %47 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %48 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %49 = shufflevector <4 x double> %47, <4 x double> poison, <4 x i32> zeroinitializer %50 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %51 = fmul <4 x double> %50, %49 %52 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %12, <4 x double> %51) #23 %53 = fadd <4 x double> %4, %52 %54 = fsub <4 x double> %4, %52 %_3.i.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %55 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %56 = fmul <4 x double> %55, %49 %57 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %14, <4 x double> %56) #23 %58 = fadd <4 x double> %6, %57 %59 = fsub <4 x double> %6, %57 %_3.i.i.i.i.i.i.i.i.us.i.2.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i.2.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %60 = shufflevector <4 x double> %16, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %49 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %16, <4 x double> %61) #23 %63 = fadd <4 x double> %8, %62 %64 = fsub <4 x double> %8, %62 %_3.i.i.i.i.i.i.i.i.us.i.3.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i.3.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %65 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %66 = fmul <4 x double> %65, %49 %67 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %18, <4 x double> %66) #23 %68 = fadd <4 x double> %10, %67 %69 = fsub <4 x double> %10, %67 %70 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %71 = fmul <4 x double> %24, %70 %72 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %38, <4 x double> %71) #23 %73 = fadd <4 x double> %28, %72 %74 = fsub <4 x double> %28, %72 %75 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> %76 = fmul <4 x double> %24, %75 %77 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %43, <4 x double> %76) #23 %78 = fadd <4 x double> %33, %77 %79 = fsub <4 x double> %33, %77 %80 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i40.1.i = load double, ptr %80, align 8, !noalias !3214, !noundef !3 %81 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i41.1.i = load double, ptr %81, align 8, !noalias !3214, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i42.1.i = insertelement <2 x double> poison, double %w1.0.us.i40.1.i, i64 0 %82 = insertelement <4 x double> poison, double %w1.1.us.i41.1.i, i64 0 %83 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i42.1.i, <2 x double> poison, <4 x i32> zeroinitializer %84 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> zeroinitializer %85 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %84 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %63, <4 x double> %86) #23 %88 = fadd <4 x double> %53, %87 %89 = fsub <4 x double> %53, %87 %90 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %84 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %68, <4 x double> %91) #23 %93 = fadd <4 x double> %58, %92 %94 = fsub <4 x double> %58, %92 %95 = shufflevector <4 x double> %39, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %95, %49 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %39, <4 x double> %96) #23 %98 = fadd <4 x double> %29, %97 %99 = fsub <4 x double> %29, %97 %100 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %49 %102 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %44, <4 x double> %101) #23 %103 = fadd <4 x double> %34, %102 %104 = fsub <4 x double> %34, %102 %105 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.us.i40.3.i = load double, ptr %105, align 8, !noalias !3214, !noundef !3 %106 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.us.i41.3.i = load double, ptr %106, align 8, !noalias !3214, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i42.3.i = insertelement <2 x double> poison, double %w1.0.us.i40.3.i, i64 0 %107 = insertelement <4 x double> poison, double %w1.1.us.i41.3.i, i64 0 %108 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i42.3.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> zeroinitializer %110 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %111 = fmul <4 x double> %110, %109 %112 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %64, <4 x double> %111) #23 %113 = fadd <4 x double> %54, %112 %114 = fsub <4 x double> %54, %112 %115 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %116 = fmul <4 x double> %115, %109 %117 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %69, <4 x double> %116) #23 %118 = fadd <4 x double> %59, %117 %119 = fsub <4 x double> %59, %117 tail call void @llvm.experimental.noalias.scope.decl(metadata !3219) tail call void @llvm.experimental.noalias.scope.decl(metadata !3222) %120 = shufflevector <4 x double> %78, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %24, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %23, <4 x double> %78, <4 x double> %121) #23 %123 = fadd <4 x double> %73, %122 store <4 x double> %123, ptr %scratch.0, align 8, !alias.scope !3219, !noalias !3224 %124 = fsub <4 x double> %73, %122 store <4 x double> %124, ptr %19, align 8, !alias.scope !3219, !noalias !3224 %125 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.us.i72.1.i = load double, ptr %125, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %126 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.us.i73.1.i = load double, ptr %126, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i74.1.i = insertelement <2 x double> poison, double %w1.0.us.i72.1.i, i64 0 %127 = insertelement <4 x double> poison, double %w1.1.us.i73.1.i, i64 0 %128 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i74.1.i, <2 x double> poison, <4 x i32> zeroinitializer %129 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> zeroinitializer %130 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %131 = fmul <4 x double> %130, %129 %132 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %128, <4 x double> %93, <4 x double> %131) #23 %133 = fadd <4 x double> %88, %132 store <4 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3219, !noalias !3224 %134 = fsub <4 x double> %88, %132 store <4 x double> %134, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3219, !noalias !3224 %135 = shufflevector <4 x double> %103, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %84, %135 %137 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %103, <4 x double> %136) #23 %138 = fadd <4 x double> %98, %137 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !3219, !noalias !3224 %139 = fsub <4 x double> %98, %137 store <4 x double> %139, ptr %_3.i2.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !3219, !noalias !3224 %140 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1 %w1.0.us.i72.3.i = load double, ptr %140, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %141 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1, i32 1 %w1.1.us.i73.3.i = load double, ptr %141, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i74.3.i = insertelement <2 x double> poison, double %w1.0.us.i72.3.i, i64 0 %142 = insertelement <4 x double> poison, double %w1.1.us.i73.3.i, i64 0 %143 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i74.3.i, <2 x double> poison, <4 x i32> zeroinitializer %144 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> zeroinitializer %145 = shufflevector <4 x double> %118, <4 x double> poison, <4 x i32> %146 = fmul <4 x double> %145, %144 %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %143, <4 x double> %118, <4 x double> %146) #23 %148 = fadd <4 x double> %113, %147 store <4 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !3219, !noalias !3224 %149 = fsub <4 x double> %113, %147 store <4 x double> %149, ptr %_3.i2.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !3219, !noalias !3224 %150 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %49, %150 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %79, <4 x double> %151) #23 %153 = fadd <4 x double> %74, %152 store <4 x double> %153, ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3219, !noalias !3224 %154 = fsub <4 x double> %74, %152 store <4 x double> %154, ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3219, !noalias !3224 %155 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 10, i64 1 %w1.0.us.i72.5.i = load double, ptr %155, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %156 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 10, i64 1, i32 1 %w1.1.us.i73.5.i = load double, ptr %156, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i74.5.i = insertelement <2 x double> poison, double %w1.0.us.i72.5.i, i64 0 %157 = insertelement <4 x double> poison, double %w1.1.us.i73.5.i, i64 0 %158 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i74.5.i, <2 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <4 x double> %157, <4 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %160, %159 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %94, <4 x double> %161) #23 %163 = fadd <4 x double> %89, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !3219, !noalias !3224 %164 = fsub <4 x double> %89, %162 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.1.i, align 8, !alias.scope !3219, !noalias !3224 %165 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %109 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %104, <4 x double> %166) #23 %168 = fadd <4 x double> %99, %167 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.1.i, align 8, !alias.scope !3219, !noalias !3224 %169 = fsub <4 x double> %99, %167 store <4 x double> %169, ptr %_3.i2.i.i.i.i.i.i.i.us.i.2.1.i, align 8, !alias.scope !3219, !noalias !3224 %170 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.us.i72.7.i = load double, ptr %170, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %171 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.us.i73.7.i = load double, ptr %171, align 8, !alias.scope !3222, !noalias !3226, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i74.7.i = insertelement <2 x double> poison, double %w1.0.us.i72.7.i, i64 0 %172 = insertelement <4 x double> poison, double %w1.1.us.i73.7.i, i64 0 %173 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i74.7.i, <2 x double> poison, <4 x i32> zeroinitializer %174 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> zeroinitializer %175 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %175, %174 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %119, <4 x double> %176) #23 %178 = fadd <4 x double> %114, %177 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.1.i, align 8, !alias.scope !3219, !noalias !3224 %179 = fsub <4 x double> %114, %177 store <4 x double> %179, ptr %_3.i2.i.i.i.i.i.i.i.us.i.3.1.i, align 8, !alias.scope !3219, !noalias !3224 tail call void @llvm.experimental.noalias.scope.decl(metadata !3227) tail call void @llvm.experimental.noalias.scope.decl(metadata !3230) %180 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %180, align 8, !alias.scope !3230, !noalias !3232 %181 = shufflevector <4 x double> %123, <4 x double> %133, <4 x i32> %182 = shufflevector <4 x double> %123, <4 x double> %133, <4 x i32> %183 = shufflevector <4 x double> %182, <4 x double> poison, <4 x i32> %184 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %183, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %182, <4 x double> %186) #23 %188 = fadd <4 x double> %181, %187 store <4 x double> %188, ptr %buf.0, align 8, !alias.scope !3227, !noalias !3234 %189 = fsub <4 x double> %181, %187 store <4 x double> %189, ptr %2, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !3230, !noalias !3232 %190 = shufflevector <4 x double> %138, <4 x double> %148, <4 x i32> %191 = shufflevector <4 x double> %138, <4 x double> %148, <4 x i32> %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %192, %194 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = fadd <4 x double> %190, %196 store <4 x double> %197, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !3227, !noalias !3234 %198 = fsub <4 x double> %190, %196 store <4 x double> %198, ptr %_3.i2.i.i.i.1.i, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !3230, !noalias !3232 %199 = shufflevector <4 x double> %153, <4 x double> %163, <4 x i32> %200 = shufflevector <4 x double> %153, <4 x double> %163, <4 x i32> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %203 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %204 = fmul <4 x double> %201, %203 %205 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %200, <4 x double> %204) #23 %206 = fadd <4 x double> %199, %205 store <4 x double> %206, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !3227, !noalias !3234 %207 = fsub <4 x double> %199, %205 store <4 x double> %207, ptr %_3.i2.i.i.i.2.i, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !3230, !noalias !3232 %208 = shufflevector <4 x double> %168, <4 x double> %178, <4 x i32> %209 = shufflevector <4 x double> %168, <4 x double> %178, <4 x i32> %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %210, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %211, <4 x double> %209, <4 x double> %213) #23 %215 = fadd <4 x double> %208, %214 store <4 x double> %215, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !3227, !noalias !3234 %216 = fsub <4 x double> %208, %214 store <4 x double> %216, ptr %_3.i2.i.i.i.3.i, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %w1.sroa.0.0.copyload.i.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.4.i, align 8, !alias.scope !3230, !noalias !3232 %217 = shufflevector <4 x double> %124, <4 x double> %134, <4 x i32> %218 = shufflevector <4 x double> %124, <4 x double> %134, <4 x i32> %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.4.i, <4 x double> poison, <4 x i32> %221 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.4.i, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %219, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %220, <4 x double> %218, <4 x double> %222) #23 %224 = fadd <4 x double> %217, %223 store <4 x double> %224, ptr %_3.i.i.i.i.4.i, align 8, !alias.scope !3227, !noalias !3234 %225 = fsub <4 x double> %217, %223 store <4 x double> %225, ptr %_3.i2.i.i.i.4.i, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %w1.sroa.0.0.copyload.i.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.5.i, align 8, !alias.scope !3230, !noalias !3232 %226 = shufflevector <4 x double> %139, <4 x double> %149, <4 x i32> %227 = shufflevector <4 x double> %139, <4 x double> %149, <4 x i32> %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.5.i, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.5.i, <4 x double> poison, <4 x i32> %231 = fmul <4 x double> %228, %230 %232 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %229, <4 x double> %227, <4 x double> %231) #23 %233 = fadd <4 x double> %226, %232 store <4 x double> %233, ptr %_3.i.i.i.i.5.i, align 8, !alias.scope !3227, !noalias !3234 %234 = fsub <4 x double> %226, %232 store <4 x double> %234, ptr %_3.i2.i.i.i.5.i, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.6.i, align 8, !alias.scope !3230, !noalias !3232 %235 = shufflevector <4 x double> %154, <4 x double> %164, <4 x i32> %236 = shufflevector <4 x double> %154, <4 x double> %164, <4 x i32> %237 = shufflevector <4 x double> %236, <4 x double> poison, <4 x i32> %238 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.6.i, <4 x double> poison, <4 x i32> %239 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.6.i, <4 x double> poison, <4 x i32> %240 = fmul <4 x double> %237, %239 %241 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %238, <4 x double> %236, <4 x double> %240) #23 %242 = fadd <4 x double> %235, %241 store <4 x double> %242, ptr %_3.i.i.i.i.6.i, align 8, !alias.scope !3227, !noalias !3234 %243 = fsub <4 x double> %235, %241 store <4 x double> %243, ptr %_3.i2.i.i.i.6.i, align 8, !alias.scope !3227, !noalias !3234 %_3.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.7.i, align 8, !alias.scope !3230, !noalias !3232 %244 = shufflevector <4 x double> %169, <4 x double> %179, <4 x i32> %245 = shufflevector <4 x double> %169, <4 x double> %179, <4 x i32> %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.7.i, <4 x double> poison, <4 x i32> %248 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.7.i, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %246, %248 %250 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %247, <4 x double> %245, <4 x double> %249) #23 %251 = fadd <4 x double> %244, %250 store <4 x double> %251, ptr %_3.i.i.i.i.7.i, align 8, !alias.scope !3227, !noalias !3234 %252 = fsub <4 x double> %244, %250 store <4 x double> %252, ptr %_3.i2.i.i.i.7.i, align 8, !alias.scope !3227, !noalias !3234 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3214 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h48a7b9b66d1eba9fE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3235 store i64 32, ptr %n.i.i, align 8, !noalias !3235 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3235 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3235 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3235 store ptr null, ptr %_16.i.i, align 8, !noalias !3235 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3235 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3235 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3235 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3235 store ptr null, ptr %_24.i.i, align 8, !noalias !3235 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3235 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3235 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3235 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3235 store ptr null, ptr %_32.i.i, align 8, !noalias !3235 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3235 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3235 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3235 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h77be328d152ce819E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3235 store ptr null, ptr %_40.i.i, align 8, !noalias !3235 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h77be328d152ce819E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3235 tail call void @llvm.experimental.noalias.scope.decl(metadata !3240) tail call void @llvm.experimental.noalias.scope.decl(metadata !3243) tail call void @llvm.experimental.noalias.scope.decl(metadata !3245) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !3245, !noalias !3247 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !3245, !noalias !3247 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !3245, !noalias !3247 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !3240, !noalias !3248 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !3240, !noalias !3248 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !3240, !noalias !3248 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !3240, !noalias !3248 %8 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %9 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %11 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = fsub <4 x double> %8, %10 %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %23, <4 x double> %27) #23 %29 = fadd <4 x double> %9, %15 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %36 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> store <4 x double> %35, ptr %scratch.0, align 8, !alias.scope !3243, !noalias !3249 %37 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %36, ptr %37, align 8, !alias.scope !3243, !noalias !3249 %38 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %39 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> %40 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %38, ptr %40, align 8, !alias.scope !3243, !noalias !3249 %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %39, ptr %41, align 8, !alias.scope !3243, !noalias !3249 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3245, !noalias !3247 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3245, !noalias !3247 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !3245, !noalias !3247 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3240, !noalias !3248 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3240, !noalias !3248 %c.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3240, !noalias !3248 %d.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3240, !noalias !3248 %42 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %43 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %44 = fadd <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %45 = fsub <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %42, %44 %51 = fsub <4 x double> %43, %49 %52 = shufflevector <4 x double> %51, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %54 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %54, %52 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %53, <4 x double> %51, <4 x double> %55) #23 %57 = fsub <4 x double> %42, %44 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fadd <4 x double> %43, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %70 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> store <4 x double> %69, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !3243, !noalias !3249 %71 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %70, ptr %71, align 8, !alias.scope !3243, !noalias !3249 %72 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %73 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> %74 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 2 store <4 x double> %72, ptr %74, align 8, !alias.scope !3243, !noalias !3249 %75 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 3 store <4 x double> %73, ptr %75, align 8, !alias.scope !3243, !noalias !3249 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2 %_3.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %_3.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3245, !noalias !3247 %w2.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3245, !noalias !3247 %w3.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !3245, !noalias !3247 %a.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3240, !noalias !3248 %b.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3240, !noalias !3248 %c.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3240, !noalias !3248 %d.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3240, !noalias !3248 %76 = fadd <4 x double> %a.sroa.0.0.copyload.i.2.i, %c.sroa.0.0.copyload.i.2.i %77 = fsub <4 x double> %a.sroa.0.0.copyload.i.2.i, %c.sroa.0.0.copyload.i.2.i %78 = fadd <4 x double> %b.sroa.0.0.copyload.i.2.i, %d.sroa.0.0.copyload.i.2.i %79 = fsub <4 x double> %b.sroa.0.0.copyload.i.2.i, %d.sroa.0.0.copyload.i.2.i %80 = bitcast <4 x double> %79 to <4 x i64> %81 = xor <4 x i64> %80, %82 = bitcast <4 x i64> %81 to <4 x double> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = fadd <4 x double> %76, %78 %85 = fsub <4 x double> %77, %83 %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %88 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %89 = fmul <4 x double> %88, %86 %90 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %85, <4 x double> %89) #23 %91 = fsub <4 x double> %76, %78 %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %94 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %95 = fmul <4 x double> %94, %92 %96 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %93, <4 x double> %91, <4 x double> %95) #23 %97 = fadd <4 x double> %77, %83 %98 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> %99 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %100 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %101 = fmul <4 x double> %100, %98 %102 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %97, <4 x double> %101) #23 %103 = shufflevector <4 x double> %84, <4 x double> %90, <4 x i32> %104 = shufflevector <4 x double> %96, <4 x double> %102, <4 x i32> store <4 x double> %103, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !3243, !noalias !3249 %105 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 1 store <4 x double> %104, ptr %105, align 8, !alias.scope !3243, !noalias !3249 %106 = shufflevector <4 x double> %84, <4 x double> %90, <4 x i32> %107 = shufflevector <4 x double> %96, <4 x double> %102, <4 x i32> %108 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 2 store <4 x double> %106, ptr %108, align 8, !alias.scope !3243, !noalias !3249 %109 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 3 store <4 x double> %107, ptr %109, align 8, !alias.scope !3243, !noalias !3249 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3245, !noalias !3247 %w2.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3245, !noalias !3247 %w3.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !3245, !noalias !3247 %a.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3240, !noalias !3248 %b.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3240, !noalias !3248 %c.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3240, !noalias !3248 %d.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3240, !noalias !3248 %110 = fadd <4 x double> %a.sroa.0.0.copyload.i.3.i, %c.sroa.0.0.copyload.i.3.i %111 = fsub <4 x double> %a.sroa.0.0.copyload.i.3.i, %c.sroa.0.0.copyload.i.3.i %112 = fadd <4 x double> %b.sroa.0.0.copyload.i.3.i, %d.sroa.0.0.copyload.i.3.i %113 = fsub <4 x double> %b.sroa.0.0.copyload.i.3.i, %d.sroa.0.0.copyload.i.3.i %114 = bitcast <4 x double> %113 to <4 x i64> %115 = xor <4 x i64> %114, %116 = bitcast <4 x i64> %115 to <4 x double> %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fadd <4 x double> %110, %112 %119 = fsub <4 x double> %111, %117 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> %121 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %122 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %123 = fmul <4 x double> %122, %120 %124 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %119, <4 x double> %123) #23 %125 = fsub <4 x double> %110, %112 %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %128 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %128, %126 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %127, <4 x double> %125, <4 x double> %129) #23 %131 = fadd <4 x double> %111, %117 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %134 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %134, %132 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %133, <4 x double> %131, <4 x double> %135) #23 %137 = shufflevector <4 x double> %118, <4 x double> %124, <4 x i32> %138 = shufflevector <4 x double> %130, <4 x double> %136, <4 x i32> store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !3243, !noalias !3249 %139 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 1 store <4 x double> %138, ptr %139, align 8, !alias.scope !3243, !noalias !3249 %140 = shufflevector <4 x double> %118, <4 x double> %124, <4 x i32> %141 = shufflevector <4 x double> %130, <4 x double> %136, <4 x i32> %142 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 2 store <4 x double> %140, ptr %142, align 8, !alias.scope !3243, !noalias !3249 %143 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 3 store <4 x double> %141, ptr %143, align 8, !alias.scope !3243, !noalias !3249 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %144, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %145, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %146, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %147, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %148, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %149, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %150 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %151 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %152 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %153 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %151, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> zeroinitializer %159 = fadd <4 x double> %35, %103 %160 = fsub <4 x double> %35, %103 %161 = fadd <4 x double> %69, %137 %162 = fsub <4 x double> %69, %137 %163 = bitcast <4 x double> %162 to <4 x i64> %164 = xor <4 x i64> %163, %165 = bitcast <4 x i64> %164 to <4 x double> %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = fadd <4 x double> %159, %161 %168 = fsub <4 x double> %160, %166 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = fmul <4 x double> %169, %154 %171 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %168, <4 x double> %170) #23 %172 = fsub <4 x double> %159, %161 %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fmul <4 x double> %173, %156 %175 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %172, <4 x double> %174) #23 %176 = fadd <4 x double> %160, %166 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %177, %158 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %176, <4 x double> %178) #23 %180 = fadd <4 x double> %36, %104 %181 = fsub <4 x double> %36, %104 %182 = fadd <4 x double> %70, %138 %183 = fsub <4 x double> %70, %138 %184 = bitcast <4 x double> %183 to <4 x i64> %185 = xor <4 x i64> %184, %186 = bitcast <4 x i64> %185 to <4 x double> %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = fadd <4 x double> %180, %182 %189 = fsub <4 x double> %181, %187 %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %190, %154 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %189, <4 x double> %191) #23 %193 = fsub <4 x double> %180, %182 %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %156 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %193, <4 x double> %195) #23 %197 = fadd <4 x double> %181, %187 %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = fmul <4 x double> %198, %158 %200 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %197, <4 x double> %199) #23 %201 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.1.i = load double, ptr %201, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %202 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %202, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %203 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2 %w2.0.us.i.1.i = load double, ptr %203, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %204 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %204, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %205 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3 %w3.0.us.i.1.i = load double, ptr %205, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %206 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %206, align 8, !alias.scope !3250, !noalias !3253, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %207 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %208 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %209 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %210 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %211 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> zeroinitializer %212 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %213 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> zeroinitializer %214 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %215 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> zeroinitializer %216 = fadd <4 x double> %38, %106 %217 = fsub <4 x double> %38, %106 %218 = fadd <4 x double> %72, %140 %219 = fsub <4 x double> %72, %140 %220 = bitcast <4 x double> %219 to <4 x i64> %221 = xor <4 x i64> %220, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fadd <4 x double> %216, %218 %225 = fsub <4 x double> %217, %223 %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %226, %211 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %225, <4 x double> %227) #23 %229 = fsub <4 x double> %216, %218 %230 = shufflevector <4 x double> %229, <4 x double> poison, <4 x i32> %231 = fmul <4 x double> %230, %213 %232 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %229, <4 x double> %231) #23 %233 = fadd <4 x double> %217, %223 %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = fmul <4 x double> %234, %215 %236 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %214, <4 x double> %233, <4 x double> %235) #23 %237 = fadd <4 x double> %39, %107 %238 = fsub <4 x double> %39, %107 %239 = fadd <4 x double> %73, %141 %240 = fsub <4 x double> %73, %141 %241 = bitcast <4 x double> %240 to <4 x i64> %242 = xor <4 x i64> %241, %243 = bitcast <4 x i64> %242 to <4 x double> %244 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> %245 = fadd <4 x double> %237, %239 %246 = fsub <4 x double> %238, %244 %247 = shufflevector <4 x double> %246, <4 x double> poison, <4 x i32> %248 = fmul <4 x double> %247, %211 %249 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %246, <4 x double> %248) #23 %250 = fsub <4 x double> %237, %239 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fmul <4 x double> %251, %213 %253 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %250, <4 x double> %252) #23 %254 = fadd <4 x double> %238, %244 %255 = shufflevector <4 x double> %254, <4 x double> poison, <4 x i32> %256 = fmul <4 x double> %255, %215 %257 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %214, <4 x double> %254, <4 x double> %256) #23 %258 = fadd <4 x double> %167, %224 %259 = fsub <4 x double> %167, %224 store <4 x double> %258, ptr %buf.0, align 8, !noalias !3235 store <4 x double> %259, ptr %2, align 8, !noalias !3235 %260 = fadd <4 x double> %188, %245 %261 = fsub <4 x double> %188, %245 store <4 x double> %260, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3235 store <4 x double> %261, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3235 %262 = fadd <4 x double> %171, %228 %263 = fsub <4 x double> %171, %228 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3235 store <4 x double> %263, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3235 %264 = fadd <4 x double> %192, %249 %265 = fsub <4 x double> %192, %249 store <4 x double> %264, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3235 store <4 x double> %265, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3235 %266 = fadd <4 x double> %175, %232 %267 = fsub <4 x double> %175, %232 store <4 x double> %266, ptr %3, align 8, !noalias !3235 store <4 x double> %267, ptr %4, align 8, !noalias !3235 %268 = fadd <4 x double> %196, %253 %269 = fsub <4 x double> %196, %253 store <4 x double> %268, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3235 store <4 x double> %269, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3235 %270 = fadd <4 x double> %179, %236 %271 = fsub <4 x double> %179, %236 store <4 x double> %270, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3235 store <4 x double> %271, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3235 %272 = fadd <4 x double> %200, %257 %273 = fsub <4 x double> %200, %257 store <4 x double> %272, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3235 store <4 x double> %273, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3235 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3235 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h48d4182e8fff191dE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3256 store i64 512, ptr %n.i.i, align 8, !noalias !3256 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3256 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3256 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3256 store ptr null, ptr %_16.i.i, align 8, !noalias !3256 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3256 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3256 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3256 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3256 store ptr null, ptr %_24.i.i, align 8, !noalias !3256 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3256 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3256 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3256 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3256 store ptr null, ptr %_32.i.i, align 8, !noalias !3256 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3256 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3256 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3256 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e0c8475003a93eaE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3256 store ptr null, ptr %_40.i.i, align 8, !noalias !3256 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e0c8475003a93eaE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3256 tail call void @llvm.experimental.noalias.scope.decl(metadata !3261) tail call void @llvm.experimental.noalias.scope.decl(metadata !3264) tail call void @llvm.experimental.noalias.scope.decl(metadata !3266) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 144 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 176 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 208 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 240 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 144 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 176 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 208 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 240 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e0c8475003a93eaE.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e0c8475003a93eaE.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3261, !noalias !3268 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3266, !noalias !3269 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3264, !noalias !3270 store <4 x double> %247, ptr %248, align 8, !alias.scope !3264, !noalias !3270 store <4 x double> %249, ptr %250, align 8, !alias.scope !3264, !noalias !3270 store <4 x double> %251, ptr %252, align 8, !alias.scope !3264, !noalias !3270 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !3264, !noalias !3270 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !3264, !noalias !3270 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !3264, !noalias !3270 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !3264, !noalias !3270 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !3264, !noalias !3270 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !3264, !noalias !3270 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !3264, !noalias !3270 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !3264, !noalias !3270 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !3264, !noalias !3270 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !3264, !noalias !3270 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !3264, !noalias !3270 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !3264, !noalias !3270 %exitcond.not.i.i = icmp eq i64 %32, 16 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3271) tail call void @llvm.experimental.noalias.scope.decl(metadata !3274) tail call void @llvm.experimental.noalias.scope.decl(metadata !3276) %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %287 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 144 %288 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 176 %289 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %290 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 208 %291 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 240 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i br i1 %_2.i.i.i.i.i, label %bb46.i.i, label %bb9.i.i.i.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %_2.i.i.i.i.i = phi i1 [ false, %bb44.loopexit.i.i ], [ true, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ] %iter.sroa.192.06258.i.i = phi i64 [ 1, %bb44.loopexit.i.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.06258.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.06258.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %292 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %293 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %294 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %295 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %296 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %297 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %298 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %299 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %300 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %301 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.06258.i.i, 4 %307 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %307, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %308 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %309 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %309, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %310, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %311 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %312 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %312, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %313, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %314 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %315 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %315, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %316, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %317 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %318 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %318, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %319, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %320 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %321 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %321, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %322, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %323 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %324 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %324, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %325, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %326 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %327 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %327, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %328 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %328, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %329 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %330 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %330, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %331 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %331, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %332 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %333 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %333, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %334 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %334, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %335 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %336 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %336, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %337 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %337, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %338 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %339 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %339, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %340 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %340, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %341 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %342 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %342, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %343 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %343, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %344 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %345 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %345, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %346 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %346, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %347 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %348 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %348, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %349 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %349, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %350 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %351 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %351, align 8, !alias.scope !3276, !noalias !3278, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %352 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %353 = shufflevector <4 x double> %350, <4 x double> poison, <4 x i32> zeroinitializer %354 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %355 = shufflevector <4 x double> %347, <4 x double> poison, <4 x i32> zeroinitializer %356 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %357 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> zeroinitializer %358 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %359 = shufflevector <4 x double> %341, <4 x double> poison, <4 x i32> zeroinitializer %360 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %361 = shufflevector <4 x double> %338, <4 x double> poison, <4 x i32> zeroinitializer %362 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %363 = shufflevector <4 x double> %335, <4 x double> poison, <4 x i32> zeroinitializer %364 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %365 = shufflevector <4 x double> %332, <4 x double> poison, <4 x i32> zeroinitializer %366 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %367 = shufflevector <4 x double> %329, <4 x double> poison, <4 x i32> zeroinitializer %368 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %369 = shufflevector <4 x double> %326, <4 x double> poison, <4 x i32> zeroinitializer %370 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %371 = shufflevector <4 x double> %323, <4 x double> poison, <4 x i32> zeroinitializer %372 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %373 = shufflevector <4 x double> %320, <4 x double> poison, <4 x i32> zeroinitializer %374 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %375 = shufflevector <4 x double> %317, <4 x double> poison, <4 x i32> zeroinitializer %376 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %377 = shufflevector <4 x double> %314, <4 x double> poison, <4 x i32> zeroinitializer %378 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %379 = shufflevector <4 x double> %311, <4 x double> poison, <4 x i32> zeroinitializer %380 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %381 = shufflevector <4 x double> %308, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.06085.i.i = phi i64 [ 0, %bb46.i.i ], [ %382, %bb98.i.i ] %382 = add nuw nsw i64 %iter10.sroa.218.06085.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i47.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i49.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %295, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %294, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %296, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %293, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %298, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %297, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %299, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %292, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %301, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %300, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter10.sroa.218.06085.i.i %x0.sroa.0.0.copyload.i50.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35.i, align 8, !alias.scope !3271, !noalias !3279 %x1.sroa.0.0.copyload.i51.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3271, !noalias !3279 %x2.sroa.0.0.copyload.i52.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i, align 8, !alias.scope !3271, !noalias !3279 %x3.sroa.0.0.copyload.i53.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37.i, align 8, !alias.scope !3271, !noalias !3279 %x4.sroa.0.0.copyload.i54.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i, align 8, !alias.scope !3271, !noalias !3279 %x5.sroa.0.0.copyload.i55.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i, align 8, !alias.scope !3271, !noalias !3279 %x6.sroa.0.0.copyload.i56.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i, align 8, !alias.scope !3271, !noalias !3279 %x7.sroa.0.0.copyload.i57.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i, align 8, !alias.scope !3271, !noalias !3279 %x8.sroa.0.0.copyload.i58.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i, align 8, !alias.scope !3271, !noalias !3279 %x9.sroa.0.0.copyload.i59.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i, align 8, !alias.scope !3271, !noalias !3279 %xa.sroa.0.0.copyload.i60.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i, align 8, !alias.scope !3271, !noalias !3279 %xb.sroa.0.0.copyload.i61.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i, align 8, !alias.scope !3271, !noalias !3279 %xc.sroa.0.0.copyload.i62.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i, align 8, !alias.scope !3271, !noalias !3279 %xd.sroa.0.0.copyload.i63.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i47.i, align 8, !alias.scope !3271, !noalias !3279 %xe.sroa.0.0.copyload.i64.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i48.i, align 8, !alias.scope !3271, !noalias !3279 %xf.sroa.0.0.copyload.i65.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i49.i, align 8, !alias.scope !3271, !noalias !3279 %383 = fadd <4 x double> %x0.sroa.0.0.copyload.i50.i, %x8.sroa.0.0.copyload.i58.i %384 = fsub <4 x double> %x0.sroa.0.0.copyload.i50.i, %x8.sroa.0.0.copyload.i58.i %385 = fadd <4 x double> %x4.sroa.0.0.copyload.i54.i, %xc.sroa.0.0.copyload.i62.i %386 = fsub <4 x double> %x4.sroa.0.0.copyload.i54.i, %xc.sroa.0.0.copyload.i62.i %387 = fadd <4 x double> %x2.sroa.0.0.copyload.i52.i, %xa.sroa.0.0.copyload.i60.i %388 = fsub <4 x double> %x2.sroa.0.0.copyload.i52.i, %xa.sroa.0.0.copyload.i60.i %389 = fadd <4 x double> %x6.sroa.0.0.copyload.i56.i, %xe.sroa.0.0.copyload.i64.i %390 = fsub <4 x double> %x6.sroa.0.0.copyload.i56.i, %xe.sroa.0.0.copyload.i64.i %391 = fadd <4 x double> %x1.sroa.0.0.copyload.i51.i, %x9.sroa.0.0.copyload.i59.i %392 = fsub <4 x double> %x1.sroa.0.0.copyload.i51.i, %x9.sroa.0.0.copyload.i59.i %393 = fadd <4 x double> %x5.sroa.0.0.copyload.i55.i, %xd.sroa.0.0.copyload.i63.i %394 = fsub <4 x double> %x5.sroa.0.0.copyload.i55.i, %xd.sroa.0.0.copyload.i63.i %395 = fadd <4 x double> %x3.sroa.0.0.copyload.i53.i, %xb.sroa.0.0.copyload.i61.i %396 = fsub <4 x double> %x3.sroa.0.0.copyload.i53.i, %xb.sroa.0.0.copyload.i61.i %397 = fadd <4 x double> %x7.sroa.0.0.copyload.i57.i, %xf.sroa.0.0.copyload.i65.i %398 = fsub <4 x double> %x7.sroa.0.0.copyload.i57.i, %xf.sroa.0.0.copyload.i65.i %399 = bitcast <4 x double> %386 to <4 x i64> %400 = bitcast <4 x double> %390 to <4 x i64> %401 = bitcast <4 x double> %394 to <4 x i64> %402 = bitcast <4 x double> %398 to <4 x i64> %403 = xor <4 x i64> %399, %404 = bitcast <4 x i64> %403 to <4 x double> %405 = shufflevector <4 x double> %404, <4 x double> poison, <4 x i32> %406 = xor <4 x i64> %400, %407 = bitcast <4 x i64> %406 to <4 x double> %408 = shufflevector <4 x double> %407, <4 x double> poison, <4 x i32> %409 = xor <4 x i64> %401, %410 = bitcast <4 x i64> %409 to <4 x double> %411 = shufflevector <4 x double> %410, <4 x double> poison, <4 x i32> %412 = xor <4 x i64> %402, %413 = bitcast <4 x i64> %412 to <4 x double> %414 = shufflevector <4 x double> %413, <4 x double> poison, <4 x i32> %415 = fadd <4 x double> %383, %385 %416 = fsub <4 x double> %384, %405 %417 = fsub <4 x double> %383, %385 %418 = fadd <4 x double> %384, %405 %419 = fadd <4 x double> %387, %389 %420 = fsub <4 x double> %388, %408 %421 = fsub <4 x double> %387, %389 %422 = fadd <4 x double> %388, %408 %423 = fadd <4 x double> %391, %393 %424 = fsub <4 x double> %392, %411 %425 = fsub <4 x double> %391, %393 %426 = fadd <4 x double> %392, %411 %427 = fadd <4 x double> %395, %397 %428 = fsub <4 x double> %396, %414 %429 = fsub <4 x double> %395, %397 %430 = fadd <4 x double> %396, %414 %431 = bitcast <4 x double> %420 to <4 x i64> %432 = xor <4 x i64> %431, %433 = bitcast <4 x i64> %432 to <4 x double> %434 = shufflevector <4 x double> %433, <4 x double> poison, <4 x i32> %435 = fadd <4 x double> %420, %434 %436 = fmul <4 x double> %435, %437 = bitcast <4 x double> %421 to <4 x i64> %438 = xor <4 x i64> %437, %439 = bitcast <4 x i64> %438 to <4 x double> %440 = shufflevector <4 x double> %439, <4 x double> poison, <4 x i32> %441 = bitcast <4 x double> %422 to <4 x i64> %442 = xor <4 x i64> %441, %443 = bitcast <4 x i64> %442 to <4 x double> %444 = shufflevector <4 x double> %443, <4 x double> poison, <4 x i32> %445 = fadd <4 x double> %422, %444 %446 = fmul <4 x double> %445, %447 = fadd <4 x double> %415, %419 %448 = fadd <4 x double> %416, %436 %449 = fsub <4 x double> %417, %440 %450 = fsub <4 x double> %418, %446 %451 = fsub <4 x double> %415, %419 %452 = fsub <4 x double> %416, %436 %453 = fadd <4 x double> %417, %440 %454 = fadd <4 x double> %418, %446 %455 = bitcast <4 x double> %428 to <4 x i64> %456 = xor <4 x i64> %455, %457 = bitcast <4 x i64> %456 to <4 x double> %458 = shufflevector <4 x double> %457, <4 x double> poison, <4 x i32> %459 = fadd <4 x double> %428, %458 %460 = fmul <4 x double> %459, %461 = bitcast <4 x double> %429 to <4 x i64> %462 = xor <4 x i64> %461, %463 = bitcast <4 x i64> %462 to <4 x double> %464 = shufflevector <4 x double> %463, <4 x double> poison, <4 x i32> %465 = bitcast <4 x double> %430 to <4 x i64> %466 = xor <4 x i64> %465, %467 = bitcast <4 x i64> %466 to <4 x double> %468 = shufflevector <4 x double> %467, <4 x double> poison, <4 x i32> %469 = fadd <4 x double> %430, %468 %470 = fmul <4 x double> %469, %471 = fadd <4 x double> %423, %427 %472 = fadd <4 x double> %424, %460 %473 = fsub <4 x double> %425, %464 %474 = fsub <4 x double> %426, %470 %475 = fsub <4 x double> %423, %427 %476 = fsub <4 x double> %424, %460 %477 = fadd <4 x double> %425, %464 %478 = fadd <4 x double> %426, %470 %479 = fmul <4 x double> %472, %480 = shufflevector <4 x double> %479, <4 x double> poison, <4 x i32> %481 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %472, <4 x double> %480) #23 %482 = bitcast <4 x double> %473 to <4 x i64> %483 = xor <4 x i64> %482, %484 = bitcast <4 x i64> %483 to <4 x double> %485 = shufflevector <4 x double> %484, <4 x double> poison, <4 x i32> %486 = fmul <4 x double> %474, %487 = shufflevector <4 x double> %486, <4 x double> poison, <4 x i32> %488 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %474, <4 x double> %487) #23 %489 = bitcast <4 x double> %475 to <4 x i64> %490 = xor <4 x i64> %489, %491 = bitcast <4 x i64> %490 to <4 x double> %492 = shufflevector <4 x double> %491, <4 x double> poison, <4 x i32> %493 = fmul <4 x double> %476, %494 = shufflevector <4 x double> %493, <4 x double> poison, <4 x i32> %495 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %476, <4 x double> %494) #23 %496 = bitcast <4 x double> %477 to <4 x i64> %497 = xor <4 x i64> %496, %498 = bitcast <4 x i64> %497 to <4 x double> %499 = shufflevector <4 x double> %498, <4 x double> poison, <4 x i32> %500 = fmul <4 x double> %478, %501 = shufflevector <4 x double> %500, <4 x double> poison, <4 x i32> %502 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %478, <4 x double> %501) #23 %.in6082.i.i = fadd <4 x double> %473, %485 %503 = fmul <4 x double> %.in6082.i.i, %.in.i66.i = fadd <4 x double> %477, %499 %504 = fmul <4 x double> %.in.i66.i, %505 = fadd <4 x double> %447, %471 store <4 x double> %505, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %506 = fadd <4 x double> %481, %448 %507 = shufflevector <4 x double> %506, <4 x double> poison, <4 x i32> %508 = fmul <4 x double> %353, %507 %509 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %352, <4 x double> %506, <4 x double> %508) #23 store <4 x double> %509, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %510 = fadd <4 x double> %449, %503 %511 = shufflevector <4 x double> %510, <4 x double> poison, <4 x i32> %512 = fmul <4 x double> %355, %511 %513 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %354, <4 x double> %510, <4 x double> %512) #23 store <4 x double> %513, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %514 = fadd <4 x double> %488, %450 %515 = shufflevector <4 x double> %514, <4 x double> poison, <4 x i32> %516 = fmul <4 x double> %357, %515 %517 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %356, <4 x double> %514, <4 x double> %516) #23 store <4 x double> %517, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %518 = fsub <4 x double> %451, %492 %519 = shufflevector <4 x double> %518, <4 x double> poison, <4 x i32> %520 = fmul <4 x double> %359, %519 %521 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %358, <4 x double> %518, <4 x double> %520) #23 store <4 x double> %521, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %522 = fsub <4 x double> %452, %495 %523 = shufflevector <4 x double> %522, <4 x double> poison, <4 x i32> %524 = fmul <4 x double> %361, %523 %525 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %360, <4 x double> %522, <4 x double> %524) #23 store <4 x double> %525, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %526 = fsub <4 x double> %453, %504 %527 = shufflevector <4 x double> %526, <4 x double> poison, <4 x i32> %528 = fmul <4 x double> %363, %527 %529 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %362, <4 x double> %526, <4 x double> %528) #23 store <4 x double> %529, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %530 = fsub <4 x double> %454, %502 %531 = shufflevector <4 x double> %530, <4 x double> poison, <4 x i32> %532 = fmul <4 x double> %365, %531 %533 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %364, <4 x double> %530, <4 x double> %532) #23 store <4 x double> %533, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %534 = fsub <4 x double> %447, %471 %535 = shufflevector <4 x double> %534, <4 x double> poison, <4 x i32> %536 = fmul <4 x double> %367, %535 %537 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %366, <4 x double> %534, <4 x double> %536) #23 store <4 x double> %537, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %538 = fsub <4 x double> %448, %481 %539 = shufflevector <4 x double> %538, <4 x double> poison, <4 x i32> %540 = fmul <4 x double> %369, %539 %541 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %368, <4 x double> %538, <4 x double> %540) #23 store <4 x double> %541, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %542 = fsub <4 x double> %449, %503 %543 = shufflevector <4 x double> %542, <4 x double> poison, <4 x i32> %544 = fmul <4 x double> %371, %543 %545 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %542, <4 x double> %544) #23 store <4 x double> %545, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %546 = fsub <4 x double> %450, %488 %547 = shufflevector <4 x double> %546, <4 x double> poison, <4 x i32> %548 = fmul <4 x double> %373, %547 %549 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %372, <4 x double> %546, <4 x double> %548) #23 store <4 x double> %549, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %550 = fadd <4 x double> %451, %492 %551 = shufflevector <4 x double> %550, <4 x double> poison, <4 x i32> %552 = fmul <4 x double> %375, %551 %553 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %374, <4 x double> %550, <4 x double> %552) #23 store <4 x double> %553, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %554 = fadd <4 x double> %495, %452 %555 = shufflevector <4 x double> %554, <4 x double> poison, <4 x i32> %556 = fmul <4 x double> %377, %555 %557 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %376, <4 x double> %554, <4 x double> %556) #23 store <4 x double> %557, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %558 = fadd <4 x double> %453, %504 %559 = shufflevector <4 x double> %558, <4 x double> poison, <4 x i32> %560 = fmul <4 x double> %379, %559 %561 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %378, <4 x double> %558, <4 x double> %560) #23 store <4 x double> %561, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %562 = fadd <4 x double> %502, %454 %563 = shufflevector <4 x double> %562, <4 x double> poison, <4 x i32> %564 = fmul <4 x double> %381, %563 %565 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %380, <4 x double> %562, <4 x double> %564) #23 store <4 x double> %565, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !3274, !noalias !3280 %exitcond.not.i67.i = icmp eq i64 %382, 8 br i1 %exitcond.not.i67.i, label %bb44.loopexit.i.i, label %bb98.i.i bb9.i.i.i.i: ; preds = %bb44.loopexit.i.i, %bb9.i.i.i.i %iter.i.i.i.sroa.8.091.i = phi i64 [ %575, %bb9.i.i.i.i ], [ 0, %bb44.loopexit.i.i ] %566 = or disjoint i64 %iter.i.i.i.sroa.8.091.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.091.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.091.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3256 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !3256 %567 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %568 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %567, ptr %_3.i.i.i.i.i, align 8, !noalias !3256 store <4 x double> %568, ptr %_3.i2.i.i.i.i, align 8, !noalias !3256 %569 = or disjoint i64 %iter.i.i.i.sroa.8.091.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %566 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %566 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3256 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3256 %570 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %571 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %570, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3256 store <4 x double> %571, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3256 %572 = or disjoint i64 %iter.i.i.i.sroa.8.091.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %569 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %569 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3256 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3256 %573 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %574 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %573, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3256 store <4 x double> %574, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3256 %575 = add nuw nsw i64 %iter.i.i.i.sroa.8.091.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %572 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %572 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3256 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3256 %576 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %577 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %576, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3256 store <4 x double> %577, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3256 %exitcond.not.i.3 = icmp eq i64 %575, 128 br i1 %exitcond.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17ha97357ec3ccad4b4E.exit, label %bb9.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17ha97357ec3ccad4b4E.exit: ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3256 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h49fdc2265b4a659aE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3281 store i64 1024, ptr %n.i, align 8, !noalias !3281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3281 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3281 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3281 store ptr null, ptr %_16.i, align 8, !noalias !3281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3281 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3281 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3281 store ptr null, ptr %_24.i, align 8, !noalias !3281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3281 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3281 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3281 store ptr null, ptr %_32.i, align 8, !noalias !3281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3281 store i64 %w.1, ptr %_34.i, align 8, !noalias !3281 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3281 store ptr null, ptr %_40.i, align 8, !noalias !3281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3281 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 576 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 704 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 832 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 960 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !3284 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !3284 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !3284 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !3284 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !3284 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !3284 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !3284 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !3284 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !3284 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !3284 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !3284 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !3284 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !3284 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !3284 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !3284 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !3284 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !3284 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fsub <4 x double> %147, %152 %180 = fadd <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fadd <4 x double> %147, %152 %184 = fsub <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fsub <4 x double> %155, %160 %188 = fadd <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fadd <4 x double> %155, %160 %192 = fsub <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fsub <4 x double> %163, %168 %196 = fadd <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fadd <4 x double> %163, %168 %200 = fsub <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fsub <4 x double> %171, %176 %204 = fadd <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fadd <4 x double> %171, %176 %208 = fsub <4 x double> %172, %175 %209 = fsub <4 x double> %187, %188 %210 = fadd <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fadd <4 x double> %192, %191 %214 = fsub <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fsub <4 x double> %181, %190 %222 = fadd <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fadd <4 x double> %181, %190 %230 = fsub <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fsub <4 x double> %203, %204 %234 = fadd <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fadd <4 x double> %208, %207 %238 = fsub <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fsub <4 x double> %197, %206 %246 = fadd <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fadd <4 x double> %197, %206 %254 = fsub <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fsub <4 x double> %245, %246 %262 = fadd <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fadd <4 x double> %254, %253 %274 = fsub <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !3284 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !3284 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !3284 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !3284 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !3284 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !3284 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !3284 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !3284 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !3284 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !3284 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !3284 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !3284 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !3284 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !3284 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !3284 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !3284 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !3284 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !3284 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !3284 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !3284 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !3284 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !3284 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !3284 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !3284 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !3284 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !3284 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !3284 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !3284 %341 = fsub <4 x double> %225, %250 %342 = fadd <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !3284 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !3284 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !3284 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !3284 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !3284 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !3284 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !3284 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !3284 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !3284 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !3284 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !3284 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !3284 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !3284 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !3284 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !3284 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !3284 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !3284 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !3284 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !3284 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !3284 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !3284 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !3284 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !3284 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !3284 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !3284 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !3284 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !3284 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !3284 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !3284 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !3284 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !3284 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !3284 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !3284 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !3284 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !3284 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !3284 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !3284 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !3284 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !3284 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !3284 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !3284 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !3284 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !3284 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !3284 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !3284 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !3284 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !3284 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !3284 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !3284 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !3284 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !3284 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !3284 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !3284 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !3284 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !3284 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !3284 %469 = fadd <4 x double> %225, %250 %470 = fsub <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !3284 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !3284 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !3284 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !3284 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !3284 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !3284 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !3284 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !3284 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !3284 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !3284 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !3284 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !3284 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !3284 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !3284 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !3284 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !3284 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !3284 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !3284 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !3284 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !3284 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !3284 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !3284 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !3284 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !3284 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !3284 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !3284 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !3284 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !3284 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 64 br i1 %533, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326, label %vector.body, !llvm.loop !3287 _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %542 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %543 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 576 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 704 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 832 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 960 br label %bb48.i.i.i339 vector.body238: ; preds = %middle.block76, %vector.body238 %index239 = phi i64 [ %index.next256, %vector.body238 ], [ 0, %middle.block76 ] %549 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index239 %550 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index239 %551 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index239 %552 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index239 %wide.vec240 = load <8 x double>, ptr %549, align 8, !noalias !3281 %strided.vec241 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %strided.vec242 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %wide.vec243 = load <8 x double>, ptr %550, align 8, !noalias !3281 %strided.vec244 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %strided.vec245 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %wide.vec246 = load <8 x double>, ptr %551, align 8, !noalias !3281 %strided.vec247 = shufflevector <8 x double> %wide.vec246, <8 x double> poison, <4 x i32> %strided.vec248 = shufflevector <8 x double> %wide.vec246, <8 x double> poison, <4 x i32> %wide.vec249 = load <8 x double>, ptr %552, align 8, !noalias !3281 %strided.vec250 = shufflevector <8 x double> %wide.vec249, <8 x double> poison, <4 x i32> %strided.vec251 = shufflevector <8 x double> %wide.vec249, <8 x double> poison, <4 x i32> %553 = fadd <4 x double> %strided.vec241, %strided.vec247 %554 = fadd <4 x double> %strided.vec242, %strided.vec248 %555 = fsub <4 x double> %strided.vec241, %strided.vec247 %556 = fsub <4 x double> %strided.vec242, %strided.vec248 %557 = fadd <4 x double> %strided.vec244, %strided.vec250 %558 = fadd <4 x double> %strided.vec245, %strided.vec251 %559 = fsub <4 x double> %strided.vec244, %strided.vec250 %560 = fsub <4 x double> %strided.vec245, %strided.vec251 %561 = fadd <4 x double> %553, %557 %562 = fadd <4 x double> %554, %558 %563 = fsub <4 x double> %555, %560 %564 = fadd <4 x double> %556, %559 %565 = fsub <4 x double> %553, %557 %566 = fsub <4 x double> %554, %558 %567 = fadd <4 x double> %555, %560 %568 = fsub <4 x double> %556, %559 %interleaved.vec252 = shufflevector <4 x double> %561, <4 x double> %562, <8 x i32> store <8 x double> %interleaved.vec252, ptr %549, align 8, !noalias !3281 %interleaved.vec253 = shufflevector <4 x double> %563, <4 x double> %564, <8 x i32> store <8 x double> %interleaved.vec253, ptr %550, align 8, !noalias !3281 %interleaved.vec254 = shufflevector <4 x double> %565, <4 x double> %566, <8 x i32> store <8 x double> %interleaved.vec254, ptr %551, align 8, !noalias !3281 %interleaved.vec255 = shufflevector <4 x double> %567, <4 x double> %568, <8 x i32> store <8 x double> %interleaved.vec255, ptr %552, align 8, !noalias !3281 %index.next256 = add nuw i64 %index239, 4 %569 = icmp eq i64 %index.next256, 256 br i1 %569, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h61337811798f11c8E.exit", label %vector.body238, !llvm.loop !3288 bb48.i.i.i339: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326, %middle.block76 %iter.i.i.i120.sroa.192.0221 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326 ], [ %876, %middle.block76 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0221, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2372 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2377 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2382 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2387 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2392 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2397 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2402 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2407 = getelementptr inbounds %"num_complex::Complex", ptr %541, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2412 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2417 = getelementptr inbounds %"num_complex::Complex", ptr %544, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2422 = getelementptr inbounds %"num_complex::Complex", ptr %543, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2427 = getelementptr inbounds %"num_complex::Complex", ptr %545, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2432 = getelementptr inbounds %"num_complex::Complex", ptr %542, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2437 = getelementptr inbounds %"num_complex::Complex", ptr %547, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i2442 = getelementptr inbounds %"num_complex::Complex", ptr %546, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i2447 = getelementptr inbounds %"num_complex::Complex", ptr %548, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %start1.i.i.i.i.i.i2450 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0221, 8 %data.i.i.i.i.i.i2451 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i2450 %570 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 128 %571 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 64 %572 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 32 %573 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 16 %574 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 48 %575 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 96 %576 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 80 %577 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 112 %578 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 192 %579 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 160 %580 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 144 %581 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 176 %582 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 224 %583 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 208 %584 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 240 %585 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 15, i32 1 %wf.1.i.i.i403 = load double, ptr %585, align 8, !noalias !3281, !noundef !3 %_6.i483.i.i.i908 = fneg double %wf.1.i.i.i403 %586 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 14, i32 1 %we.1.i.i.i401 = load double, ptr %586, align 8, !noalias !3281, !noundef !3 %_6.i486.i.i.i903 = fneg double %we.1.i.i.i401 %587 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 13, i32 1 %wd.1.i.i.i399 = load double, ptr %587, align 8, !noalias !3281, !noundef !3 %_6.i489.i.i.i898 = fneg double %wd.1.i.i.i399 %588 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 12, i32 1 %wc.1.i.i.i397 = load double, ptr %588, align 8, !noalias !3281, !noundef !3 %_6.i492.i.i.i893 = fneg double %wc.1.i.i.i397 %589 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 11, i32 1 %wb.1.i.i.i395 = load double, ptr %589, align 8, !noalias !3281, !noundef !3 %_6.i495.i.i.i888 = fneg double %wb.1.i.i.i395 %590 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 10, i32 1 %wa.1.i.i.i393 = load double, ptr %590, align 8, !noalias !3281, !noundef !3 %_6.i498.i.i.i883 = fneg double %wa.1.i.i.i393 %591 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 9, i32 1 %w9.1.i.i.i391 = load double, ptr %591, align 8, !noalias !3281, !noundef !3 %_6.i501.i.i.i878 = fneg double %w9.1.i.i.i391 %592 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 8, i32 1 %w8.1.i.i.i389 = load double, ptr %592, align 8, !noalias !3281, !noundef !3 %_6.i504.i.i.i873 = fneg double %w8.1.i.i.i389 %593 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 7, i32 1 %w7.1.i.i.i387 = load double, ptr %593, align 8, !noalias !3281, !noundef !3 %_6.i507.i.i.i868 = fneg double %w7.1.i.i.i387 %594 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 6, i32 1 %w6.1.i.i.i385 = load double, ptr %594, align 8, !noalias !3281, !noundef !3 %_6.i510.i.i.i863 = fneg double %w6.1.i.i.i385 %595 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 5, i32 1 %w5.1.i.i.i383 = load double, ptr %595, align 8, !noalias !3281, !noundef !3 %_6.i513.i.i.i858 = fneg double %w5.1.i.i.i383 %596 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 4, i32 1 %w4.1.i.i.i381 = load double, ptr %596, align 8, !noalias !3281, !noundef !3 %_6.i516.i.i.i853 = fneg double %w4.1.i.i.i381 %597 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 3, i32 1 %w3.1.i.i.i379 = load double, ptr %597, align 8, !noalias !3281, !noundef !3 %_6.i519.i.i.i848 = fneg double %w3.1.i.i.i379 %598 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 2, i32 1 %w2.1.i.i.i377 = load double, ptr %598, align 8, !noalias !3281, !noundef !3 %_6.i522.i.i.i843 = fneg double %w2.1.i.i.i377 %599 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 1, i32 1 %w1.1.i.i.i375 = load double, ptr %599, align 8, !noalias !3281, !noundef !3 %_6.i525.i.i.i838 = fneg double %w1.1.i.i.i375 %600 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 15 %wf.0.i.i.i402 = load double, ptr %600, align 8, !noalias !3281, !noundef !3 %601 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 14 %we.0.i.i.i400 = load double, ptr %601, align 8, !noalias !3281, !noundef !3 %602 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 13 %wd.0.i.i.i398 = load double, ptr %602, align 8, !noalias !3281, !noundef !3 %603 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 12 %wc.0.i.i.i396 = load double, ptr %603, align 8, !noalias !3281, !noundef !3 %604 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 11 %wb.0.i.i.i394 = load double, ptr %604, align 8, !noalias !3281, !noundef !3 %605 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 10 %wa.0.i.i.i392 = load double, ptr %605, align 8, !noalias !3281, !noundef !3 %606 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 9 %w9.0.i.i.i390 = load double, ptr %606, align 8, !noalias !3281, !noundef !3 %607 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 8 %w8.0.i.i.i388 = load double, ptr %607, align 8, !noalias !3281, !noundef !3 %608 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 7 %w7.0.i.i.i386 = load double, ptr %608, align 8, !noalias !3281, !noundef !3 %609 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 6 %w6.0.i.i.i384 = load double, ptr %609, align 8, !noalias !3281, !noundef !3 %610 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 5 %w5.0.i.i.i382 = load double, ptr %610, align 8, !noalias !3281, !noundef !3 %611 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 4 %w4.0.i.i.i380 = load double, ptr %611, align 8, !noalias !3281, !noundef !3 %612 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 3 %w3.0.i.i.i378 = load double, ptr %612, align 8, !noalias !3281, !noundef !3 %613 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 2 %w2.0.i.i.i376 = load double, ptr %613, align 8, !noalias !3281, !noundef !3 %614 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 1 %w1.0.i.i.i374 = load double, ptr %614, align 8, !noalias !3281, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i838, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w1.0.i.i.i374, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w1.1.i.i.i375, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i522.i.i.i843, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w2.0.i.i.i376, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w2.1.i.i.i377, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i519.i.i.i848, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w3.0.i.i.i378, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w3.1.i.i.i379, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert149 = insertelement <4 x double> poison, double %_6.i516.i.i.i853, i64 0 %broadcast.splat150 = shufflevector <4 x double> %broadcast.splatinsert149, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert151 = insertelement <4 x double> poison, double %w4.0.i.i.i380, i64 0 %broadcast.splat152 = shufflevector <4 x double> %broadcast.splatinsert151, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert153 = insertelement <4 x double> poison, double %w4.1.i.i.i381, i64 0 %broadcast.splat154 = shufflevector <4 x double> %broadcast.splatinsert153, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert156 = insertelement <4 x double> poison, double %_6.i513.i.i.i858, i64 0 %broadcast.splat157 = shufflevector <4 x double> %broadcast.splatinsert156, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert158 = insertelement <4 x double> poison, double %w5.0.i.i.i382, i64 0 %broadcast.splat159 = shufflevector <4 x double> %broadcast.splatinsert158, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert160 = insertelement <4 x double> poison, double %w5.1.i.i.i383, i64 0 %broadcast.splat161 = shufflevector <4 x double> %broadcast.splatinsert160, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i510.i.i.i863, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w6.0.i.i.i384, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w6.1.i.i.i385, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert170 = insertelement <4 x double> poison, double %_6.i507.i.i.i868, i64 0 %broadcast.splat171 = shufflevector <4 x double> %broadcast.splatinsert170, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert172 = insertelement <4 x double> poison, double %w7.0.i.i.i386, i64 0 %broadcast.splat173 = shufflevector <4 x double> %broadcast.splatinsert172, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert174 = insertelement <4 x double> poison, double %w7.1.i.i.i387, i64 0 %broadcast.splat175 = shufflevector <4 x double> %broadcast.splatinsert174, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert177 = insertelement <4 x double> poison, double %_6.i504.i.i.i873, i64 0 %broadcast.splat178 = shufflevector <4 x double> %broadcast.splatinsert177, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert179 = insertelement <4 x double> poison, double %w8.0.i.i.i388, i64 0 %broadcast.splat180 = shufflevector <4 x double> %broadcast.splatinsert179, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert181 = insertelement <4 x double> poison, double %w8.1.i.i.i389, i64 0 %broadcast.splat182 = shufflevector <4 x double> %broadcast.splatinsert181, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i501.i.i.i878, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w9.0.i.i.i390, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w9.1.i.i.i391, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert191 = insertelement <4 x double> poison, double %_6.i498.i.i.i883, i64 0 %broadcast.splat192 = shufflevector <4 x double> %broadcast.splatinsert191, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert193 = insertelement <4 x double> poison, double %wa.0.i.i.i392, i64 0 %broadcast.splat194 = shufflevector <4 x double> %broadcast.splatinsert193, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert195 = insertelement <4 x double> poison, double %wa.1.i.i.i393, i64 0 %broadcast.splat196 = shufflevector <4 x double> %broadcast.splatinsert195, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert198 = insertelement <4 x double> poison, double %_6.i495.i.i.i888, i64 0 %broadcast.splat199 = shufflevector <4 x double> %broadcast.splatinsert198, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert200 = insertelement <4 x double> poison, double %wb.0.i.i.i394, i64 0 %broadcast.splat201 = shufflevector <4 x double> %broadcast.splatinsert200, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert202 = insertelement <4 x double> poison, double %wb.1.i.i.i395, i64 0 %broadcast.splat203 = shufflevector <4 x double> %broadcast.splatinsert202, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i492.i.i.i893, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert207 = insertelement <4 x double> poison, double %wc.0.i.i.i396, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert209 = insertelement <4 x double> poison, double %wc.1.i.i.i397, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert212 = insertelement <4 x double> poison, double %_6.i489.i.i.i898, i64 0 %broadcast.splat213 = shufflevector <4 x double> %broadcast.splatinsert212, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert214 = insertelement <4 x double> poison, double %wd.0.i.i.i398, i64 0 %broadcast.splat215 = shufflevector <4 x double> %broadcast.splatinsert214, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert216 = insertelement <4 x double> poison, double %wd.1.i.i.i399, i64 0 %broadcast.splat217 = shufflevector <4 x double> %broadcast.splatinsert216, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert219 = insertelement <4 x double> poison, double %_6.i486.i.i.i903, i64 0 %broadcast.splat220 = shufflevector <4 x double> %broadcast.splatinsert219, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert221 = insertelement <4 x double> poison, double %we.0.i.i.i400, i64 0 %broadcast.splat222 = shufflevector <4 x double> %broadcast.splatinsert221, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert223 = insertelement <4 x double> poison, double %we.1.i.i.i401, i64 0 %broadcast.splat224 = shufflevector <4 x double> %broadcast.splatinsert223, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i483.i.i.i908, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %wf.0.i.i.i402, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert230 = insertelement <4 x double> poison, double %wf.1.i.i.i403, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb48.i.i.i339 %index81 = phi i64 [ 0, %bb48.i.i.i339 ], [ %index.next233, %vector.body80 ] %615 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2372, i64 %index81 %616 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2377, i64 %index81 %617 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2382, i64 %index81 %618 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2387, i64 %index81 %619 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2392, i64 %index81 %620 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2397, i64 %index81 %621 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2402, i64 %index81 %622 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2407, i64 %index81 %623 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2412, i64 %index81 %624 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2417, i64 %index81 %625 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2422, i64 %index81 %626 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2427, i64 %index81 %627 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2432, i64 %index81 %628 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2437, i64 %index81 %629 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i2442, i64 %index81 %630 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i2447, i64 %index81 %wide.vec82 = load <8 x double>, ptr %615, align 8, !noalias !3281 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %616, align 8, !noalias !3281 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %617, align 8, !noalias !3281 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %618, align 8, !noalias !3281 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %619, align 8, !noalias !3281 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %620, align 8, !noalias !3281 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %621, align 8, !noalias !3281 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %622, align 8, !noalias !3281 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %wide.vec106 = load <8 x double>, ptr %623, align 8, !noalias !3281 %strided.vec107 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %strided.vec108 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %wide.vec109 = load <8 x double>, ptr %624, align 8, !noalias !3281 %strided.vec110 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %strided.vec111 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %wide.vec112 = load <8 x double>, ptr %625, align 8, !noalias !3281 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %wide.vec115 = load <8 x double>, ptr %626, align 8, !noalias !3281 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %627, align 8, !noalias !3281 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %wide.vec121 = load <8 x double>, ptr %628, align 8, !noalias !3281 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %wide.vec124 = load <8 x double>, ptr %629, align 8, !noalias !3281 %strided.vec125 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %strided.vec126 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %wide.vec127 = load <8 x double>, ptr %630, align 8, !noalias !3281 %strided.vec128 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %strided.vec129 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %631 = fadd <4 x double> %strided.vec83, %strided.vec107 %632 = fadd <4 x double> %strided.vec84, %strided.vec108 %633 = fsub <4 x double> %strided.vec83, %strided.vec107 %634 = fsub <4 x double> %strided.vec84, %strided.vec108 %635 = fadd <4 x double> %strided.vec95, %strided.vec119 %636 = fadd <4 x double> %strided.vec96, %strided.vec120 %637 = fsub <4 x double> %strided.vec95, %strided.vec119 %638 = fsub <4 x double> %strided.vec96, %strided.vec120 %639 = fadd <4 x double> %strided.vec89, %strided.vec113 %640 = fadd <4 x double> %strided.vec90, %strided.vec114 %641 = fsub <4 x double> %strided.vec89, %strided.vec113 %642 = fsub <4 x double> %strided.vec90, %strided.vec114 %643 = fadd <4 x double> %strided.vec101, %strided.vec125 %644 = fadd <4 x double> %strided.vec102, %strided.vec126 %645 = fsub <4 x double> %strided.vec101, %strided.vec125 %646 = fsub <4 x double> %strided.vec102, %strided.vec126 %647 = fadd <4 x double> %strided.vec86, %strided.vec110 %648 = fadd <4 x double> %strided.vec87, %strided.vec111 %649 = fsub <4 x double> %strided.vec86, %strided.vec110 %650 = fsub <4 x double> %strided.vec87, %strided.vec111 %651 = fadd <4 x double> %strided.vec98, %strided.vec122 %652 = fadd <4 x double> %strided.vec99, %strided.vec123 %653 = fsub <4 x double> %strided.vec98, %strided.vec122 %654 = fsub <4 x double> %strided.vec99, %strided.vec123 %655 = fadd <4 x double> %strided.vec92, %strided.vec116 %656 = fadd <4 x double> %strided.vec93, %strided.vec117 %657 = fsub <4 x double> %strided.vec92, %strided.vec116 %658 = fsub <4 x double> %strided.vec93, %strided.vec117 %659 = fadd <4 x double> %strided.vec104, %strided.vec128 %660 = fadd <4 x double> %strided.vec105, %strided.vec129 %661 = fsub <4 x double> %strided.vec104, %strided.vec128 %662 = fsub <4 x double> %strided.vec105, %strided.vec129 %663 = fadd <4 x double> %631, %635 %664 = fadd <4 x double> %632, %636 %665 = fsub <4 x double> %633, %638 %666 = fadd <4 x double> %634, %637 %667 = fsub <4 x double> %631, %635 %668 = fsub <4 x double> %632, %636 %669 = fadd <4 x double> %633, %638 %670 = fsub <4 x double> %634, %637 %671 = fadd <4 x double> %639, %643 %672 = fadd <4 x double> %640, %644 %673 = fsub <4 x double> %641, %646 %674 = fadd <4 x double> %642, %645 %675 = fsub <4 x double> %639, %643 %676 = fsub <4 x double> %640, %644 %677 = fadd <4 x double> %641, %646 %678 = fsub <4 x double> %642, %645 %679 = fadd <4 x double> %647, %651 %680 = fadd <4 x double> %648, %652 %681 = fsub <4 x double> %649, %654 %682 = fadd <4 x double> %650, %653 %683 = fsub <4 x double> %647, %651 %684 = fsub <4 x double> %648, %652 %685 = fadd <4 x double> %649, %654 %686 = fsub <4 x double> %650, %653 %687 = fadd <4 x double> %655, %659 %688 = fadd <4 x double> %656, %660 %689 = fsub <4 x double> %657, %662 %690 = fadd <4 x double> %658, %661 %691 = fsub <4 x double> %655, %659 %692 = fsub <4 x double> %656, %660 %693 = fadd <4 x double> %657, %662 %694 = fsub <4 x double> %658, %661 %695 = fsub <4 x double> %673, %674 %696 = fadd <4 x double> %674, %673 %697 = fmul <4 x double> %695, %698 = fmul <4 x double> %696, %699 = fadd <4 x double> %678, %677 %700 = fsub <4 x double> %678, %677 %701 = fmul <4 x double> %699, %702 = fmul <4 x double> %700, %703 = fadd <4 x double> %663, %671 %704 = fadd <4 x double> %664, %672 %705 = fadd <4 x double> %665, %697 %706 = fadd <4 x double> %666, %698 %707 = fsub <4 x double> %667, %676 %708 = fadd <4 x double> %668, %675 %709 = fsub <4 x double> %669, %701 %710 = fsub <4 x double> %670, %702 %711 = fsub <4 x double> %663, %671 %712 = fsub <4 x double> %664, %672 %713 = fsub <4 x double> %665, %697 %714 = fsub <4 x double> %666, %698 %715 = fadd <4 x double> %667, %676 %716 = fsub <4 x double> %668, %675 %717 = fadd <4 x double> %669, %701 %718 = fadd <4 x double> %670, %702 %719 = fsub <4 x double> %689, %690 %720 = fadd <4 x double> %690, %689 %721 = fmul <4 x double> %719, %722 = fmul <4 x double> %720, %723 = fadd <4 x double> %694, %693 %724 = fsub <4 x double> %694, %693 %725 = fmul <4 x double> %723, %726 = fmul <4 x double> %724, %727 = fadd <4 x double> %679, %687 %728 = fadd <4 x double> %680, %688 %729 = fadd <4 x double> %681, %721 %730 = fadd <4 x double> %682, %722 %731 = fsub <4 x double> %683, %692 %732 = fadd <4 x double> %684, %691 %733 = fsub <4 x double> %685, %725 %734 = fsub <4 x double> %686, %726 %735 = fsub <4 x double> %679, %687 %736 = fsub <4 x double> %680, %688 %737 = fsub <4 x double> %681, %721 %738 = fsub <4 x double> %682, %722 %739 = fadd <4 x double> %683, %692 %740 = fsub <4 x double> %684, %691 %741 = fadd <4 x double> %685, %725 %742 = fadd <4 x double> %686, %726 %743 = fmul <4 x double> %730, %744 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %729, <4 x double> , <4 x double> %743) %745 = fmul <4 x double> %729, %746 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %730, <4 x double> , <4 x double> %745) %747 = fsub <4 x double> %731, %732 %748 = fadd <4 x double> %732, %731 %749 = fmul <4 x double> %747, %750 = fmul <4 x double> %748, %751 = fmul <4 x double> %734, %752 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %733, <4 x double> , <4 x double> %751) %753 = fmul <4 x double> %733, %754 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %734, <4 x double> , <4 x double> %753) %755 = fmul <4 x double> %738, %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %737, <4 x double> , <4 x double> %755) %757 = fmul <4 x double> %737, %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %738, <4 x double> , <4 x double> %757) %759 = fadd <4 x double> %740, %739 %760 = fsub <4 x double> %740, %739 %761 = fmul <4 x double> %759, %762 = fmul <4 x double> %760, %763 = fmul <4 x double> %742, %764 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %741, <4 x double> , <4 x double> %763) %765 = fmul <4 x double> %741, %766 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %742, <4 x double> , <4 x double> %765) %767 = fadd <4 x double> %703, %727 %768 = fadd <4 x double> %704, %728 %769 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 %index81 %interleaved.vec = shufflevector <4 x double> %767, <4 x double> %768, <8 x i32> store <8 x double> %interleaved.vec, ptr %769, align 8, !noalias !3281 %770 = fadd <4 x double> %705, %744 %771 = fadd <4 x double> %706, %746 %772 = fmul <4 x double> %771, %broadcast.splat %773 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %770, <4 x double> %772) %774 = fmul <4 x double> %broadcast.splat133, %770 %775 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %771, <4 x double> %774) %776 = getelementptr inbounds %"num_complex::Complex", ptr %573, i64 %index81 %interleaved.vec134 = shufflevector <4 x double> %773, <4 x double> %775, <8 x i32> store <8 x double> %interleaved.vec134, ptr %776, align 8, !noalias !3281 %777 = fadd <4 x double> %707, %749 %778 = fadd <4 x double> %708, %750 %779 = fmul <4 x double> %778, %broadcast.splat136 %780 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %777, <4 x double> %779) %781 = fmul <4 x double> %broadcast.splat140, %777 %782 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %778, <4 x double> %781) %783 = getelementptr inbounds %"num_complex::Complex", ptr %572, i64 %index81 %interleaved.vec141 = shufflevector <4 x double> %780, <4 x double> %782, <8 x i32> store <8 x double> %interleaved.vec141, ptr %783, align 8, !noalias !3281 %784 = fadd <4 x double> %709, %752 %785 = fadd <4 x double> %710, %754 %786 = fmul <4 x double> %785, %broadcast.splat143 %787 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %784, <4 x double> %786) %788 = fmul <4 x double> %broadcast.splat147, %784 %789 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %785, <4 x double> %788) %790 = getelementptr inbounds %"num_complex::Complex", ptr %574, i64 %index81 %interleaved.vec148 = shufflevector <4 x double> %787, <4 x double> %789, <8 x i32> store <8 x double> %interleaved.vec148, ptr %790, align 8, !noalias !3281 %791 = fsub <4 x double> %711, %736 %792 = fadd <4 x double> %712, %735 %793 = fmul <4 x double> %792, %broadcast.splat150 %794 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %791, <4 x double> %793) %795 = fmul <4 x double> %broadcast.splat154, %791 %796 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %792, <4 x double> %795) %797 = getelementptr inbounds %"num_complex::Complex", ptr %571, i64 %index81 %interleaved.vec155 = shufflevector <4 x double> %794, <4 x double> %796, <8 x i32> store <8 x double> %interleaved.vec155, ptr %797, align 8, !noalias !3281 %798 = fsub <4 x double> %713, %756 %799 = fsub <4 x double> %714, %758 %800 = fmul <4 x double> %799, %broadcast.splat157 %801 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %798, <4 x double> %800) %802 = fmul <4 x double> %broadcast.splat161, %798 %803 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %799, <4 x double> %802) %804 = getelementptr inbounds %"num_complex::Complex", ptr %576, i64 %index81 %interleaved.vec162 = shufflevector <4 x double> %801, <4 x double> %803, <8 x i32> store <8 x double> %interleaved.vec162, ptr %804, align 8, !noalias !3281 %805 = fsub <4 x double> %715, %761 %806 = fsub <4 x double> %716, %762 %807 = fmul <4 x double> %806, %broadcast.splat164 %808 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %805, <4 x double> %807) %809 = fmul <4 x double> %broadcast.splat168, %805 %810 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %806, <4 x double> %809) %811 = getelementptr inbounds %"num_complex::Complex", ptr %575, i64 %index81 %interleaved.vec169 = shufflevector <4 x double> %808, <4 x double> %810, <8 x i32> store <8 x double> %interleaved.vec169, ptr %811, align 8, !noalias !3281 %812 = fsub <4 x double> %717, %764 %813 = fsub <4 x double> %718, %766 %814 = fmul <4 x double> %813, %broadcast.splat171 %815 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %812, <4 x double> %814) %816 = fmul <4 x double> %broadcast.splat175, %812 %817 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %813, <4 x double> %816) %818 = getelementptr inbounds %"num_complex::Complex", ptr %577, i64 %index81 %interleaved.vec176 = shufflevector <4 x double> %815, <4 x double> %817, <8 x i32> store <8 x double> %interleaved.vec176, ptr %818, align 8, !noalias !3281 %819 = fsub <4 x double> %703, %727 %820 = fsub <4 x double> %704, %728 %821 = fmul <4 x double> %820, %broadcast.splat178 %822 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %819, <4 x double> %821) %823 = fmul <4 x double> %broadcast.splat182, %819 %824 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %820, <4 x double> %823) %825 = getelementptr inbounds %"num_complex::Complex", ptr %570, i64 %index81 %interleaved.vec183 = shufflevector <4 x double> %822, <4 x double> %824, <8 x i32> store <8 x double> %interleaved.vec183, ptr %825, align 8, !noalias !3281 %826 = fsub <4 x double> %705, %744 %827 = fsub <4 x double> %706, %746 %828 = fmul <4 x double> %827, %broadcast.splat185 %829 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %826, <4 x double> %828) %830 = fmul <4 x double> %broadcast.splat189, %826 %831 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %827, <4 x double> %830) %832 = getelementptr inbounds %"num_complex::Complex", ptr %580, i64 %index81 %interleaved.vec190 = shufflevector <4 x double> %829, <4 x double> %831, <8 x i32> store <8 x double> %interleaved.vec190, ptr %832, align 8, !noalias !3281 %833 = fsub <4 x double> %707, %749 %834 = fsub <4 x double> %708, %750 %835 = fmul <4 x double> %834, %broadcast.splat192 %836 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %833, <4 x double> %835) %837 = fmul <4 x double> %broadcast.splat196, %833 %838 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %834, <4 x double> %837) %839 = getelementptr inbounds %"num_complex::Complex", ptr %579, i64 %index81 %interleaved.vec197 = shufflevector <4 x double> %836, <4 x double> %838, <8 x i32> store <8 x double> %interleaved.vec197, ptr %839, align 8, !noalias !3281 %840 = fsub <4 x double> %709, %752 %841 = fsub <4 x double> %710, %754 %842 = fmul <4 x double> %841, %broadcast.splat199 %843 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %840, <4 x double> %842) %844 = fmul <4 x double> %broadcast.splat203, %840 %845 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %841, <4 x double> %844) %846 = getelementptr inbounds %"num_complex::Complex", ptr %581, i64 %index81 %interleaved.vec204 = shufflevector <4 x double> %843, <4 x double> %845, <8 x i32> store <8 x double> %interleaved.vec204, ptr %846, align 8, !noalias !3281 %847 = fadd <4 x double> %711, %736 %848 = fsub <4 x double> %712, %735 %849 = fmul <4 x double> %848, %broadcast.splat206 %850 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %847, <4 x double> %849) %851 = fmul <4 x double> %broadcast.splat210, %847 %852 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %848, <4 x double> %851) %853 = getelementptr inbounds %"num_complex::Complex", ptr %578, i64 %index81 %interleaved.vec211 = shufflevector <4 x double> %850, <4 x double> %852, <8 x i32> store <8 x double> %interleaved.vec211, ptr %853, align 8, !noalias !3281 %854 = fadd <4 x double> %713, %756 %855 = fadd <4 x double> %714, %758 %856 = fmul <4 x double> %855, %broadcast.splat213 %857 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %854, <4 x double> %856) %858 = fmul <4 x double> %broadcast.splat217, %854 %859 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %855, <4 x double> %858) %860 = getelementptr inbounds %"num_complex::Complex", ptr %583, i64 %index81 %interleaved.vec218 = shufflevector <4 x double> %857, <4 x double> %859, <8 x i32> store <8 x double> %interleaved.vec218, ptr %860, align 8, !noalias !3281 %861 = fadd <4 x double> %715, %761 %862 = fadd <4 x double> %716, %762 %863 = fmul <4 x double> %862, %broadcast.splat220 %864 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %861, <4 x double> %863) %865 = fmul <4 x double> %broadcast.splat224, %861 %866 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %862, <4 x double> %865) %867 = getelementptr inbounds %"num_complex::Complex", ptr %582, i64 %index81 %interleaved.vec225 = shufflevector <4 x double> %864, <4 x double> %866, <8 x i32> store <8 x double> %interleaved.vec225, ptr %867, align 8, !noalias !3281 %868 = fadd <4 x double> %717, %764 %869 = fadd <4 x double> %718, %766 %870 = fmul <4 x double> %869, %broadcast.splat227 %871 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %868, <4 x double> %870) %872 = fmul <4 x double> %broadcast.splat231, %868 %873 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %869, <4 x double> %872) %874 = getelementptr inbounds %"num_complex::Complex", ptr %584, i64 %index81 %interleaved.vec232 = shufflevector <4 x double> %871, <4 x double> %873, <8 x i32> store <8 x double> %interleaved.vec232, ptr %874, align 8, !noalias !3281 %index.next233 = add nuw i64 %index81, 4 %875 = icmp eq i64 %index.next233, 16 br i1 %875, label %middle.block76, label %vector.body80, !llvm.loop !3289 middle.block76: ; preds = %vector.body80 %876 = add nuw nsw i64 %iter.i.i.i120.sroa.192.0221, 1 %exitcond225.not = icmp eq i64 %876, 4 br i1 %exitcond225.not, label %vector.body238, label %bb48.i.i.i339 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h61337811798f11c8E.exit": ; preds = %vector.body238 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3281 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4a05d175c066a228E"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3290 store i64 4, ptr %n.i.i, align 8, !noalias !3290 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3290 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3290 %_12.i.i = icmp eq i64 %buf.1, 4 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3290 store ptr null, ptr %_16.i.i, align 8, !noalias !3290 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3290 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3290 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3290 %_20.i.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3290 store ptr null, ptr %_24.i.i, align 8, !noalias !3290 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3290 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3290 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3290 %_28.i.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3290 store ptr null, ptr %_32.i.i, align 8, !noalias !3290 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3290 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3290 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3290 %_36.i.i = icmp eq i64 %w.1, 4 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he5b4118b1753e72eE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3290 store ptr null, ptr %_40.i.i, align 8, !noalias !3290 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he5b4118b1753e72eE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3290 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !3295 store i64 1, ptr %_8.i.i.i, align 8, !noalias !3295 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !3295 store ptr null, ptr %_13.i.i.i, align 8, !noalias !3295 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f81a68b33b27ce74a6fe7f327eaa67c7) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4b73a8a5ce49690fE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3302 store i64 128, ptr %n.i, align 8, !noalias !3302 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3302 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3302 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3302 store ptr null, ptr %_16.i, align 8, !noalias !3302 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3302 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3302 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3302 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3302 store ptr null, ptr %_24.i, align 8, !noalias !3302 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3302 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3302 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3302 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3302 store ptr null, ptr %_32.i, align 8, !noalias !3302 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3302 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3302 store i64 %w.1, ptr %_34.i, align 8, !noalias !3302 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3302 store ptr null, ptr %_40.i, align 8, !noalias !3302 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3302 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !3302 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !3302 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !3302 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !3302 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !3302 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !3302 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !3302 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !3302 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !3302 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fadd <4 x double> %75, %80 %92 = fsub <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fsub <4 x double> %75, %80 %96 = fadd <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %88 %100 = fsub <4 x double> %84, %87 %101 = fadd <4 x double> %100, %99 %102 = fsub <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fsub <4 x double> %83, %88 %108 = fadd <4 x double> %84, %87 %109 = fsub <4 x double> %107, %108 %110 = fadd <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !3302 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !3302 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !3302 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !3302 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !3302 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !3302 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !3302 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !3302 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !3302 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !3302 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !3302 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !3302 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !3302 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !3302 %141 = fadd <4 x double> %93, %106 %142 = fsub <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !3302 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !3302 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !3302 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !3302 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !3302 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !3302 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !3302 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !3302 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !3302 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !3302 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !3302 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !3302 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !3302 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !3302 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !3302 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !3302 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !3302 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !3302 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !3302 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !3302 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !3302 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !3302 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !3302 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !3302 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !3302 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !3302 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !3302 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !3302 %205 = fsub <4 x double> %93, %106 %206 = fadd <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !3302 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !3302 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !3302 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !3302 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !3302 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !3302 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !3302 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !3302 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !3302 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !3302 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !3302 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !3302 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !3302 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !3302 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 16 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698, label %vector.body, !llvm.loop !3305 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 br label %bb32.i.i.i.i vector.body118: ; preds = %middle.block36, %vector.body118 %index119 = phi i64 [ %index.next128.1, %vector.body118 ], [ 0, %middle.block36 ] %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index119 %246 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index119 %wide.vec120 = load <8 x double>, ptr %245, align 8, !noalias !3302 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %246, align 8, !noalias !3302 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %247 = fadd <4 x double> %strided.vec121, %strided.vec124 %248 = fadd <4 x double> %strided.vec122, %strided.vec125 %249 = fsub <4 x double> %strided.vec121, %strided.vec124 %250 = fsub <4 x double> %strided.vec122, %strided.vec125 %interleaved.vec126 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec126, ptr %245, align 8, !noalias !3302 %interleaved.vec127 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec127, ptr %246, align 8, !noalias !3302 %index.next128 = or disjoint i64 %index119, 4 %251 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next128 %252 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next128 %wide.vec120.1 = load <8 x double>, ptr %251, align 8, !noalias !3302 %strided.vec121.1 = shufflevector <8 x double> %wide.vec120.1, <8 x double> poison, <4 x i32> %strided.vec122.1 = shufflevector <8 x double> %wide.vec120.1, <8 x double> poison, <4 x i32> %wide.vec123.1 = load <8 x double>, ptr %252, align 8, !noalias !3302 %strided.vec124.1 = shufflevector <8 x double> %wide.vec123.1, <8 x double> poison, <4 x i32> %strided.vec125.1 = shufflevector <8 x double> %wide.vec123.1, <8 x double> poison, <4 x i32> %253 = fadd <4 x double> %strided.vec121.1, %strided.vec124.1 %254 = fadd <4 x double> %strided.vec122.1, %strided.vec125.1 %255 = fsub <4 x double> %strided.vec121.1, %strided.vec124.1 %256 = fsub <4 x double> %strided.vec122.1, %strided.vec125.1 %interleaved.vec126.1 = shufflevector <4 x double> %253, <4 x double> %254, <8 x i32> store <8 x double> %interleaved.vec126.1, ptr %251, align 8, !noalias !3302 %interleaved.vec127.1 = shufflevector <4 x double> %255, <4 x double> %256, <8 x i32> store <8 x double> %interleaved.vec127.1, ptr %252, align 8, !noalias !3302 %index.next128.1 = add nuw nsw i64 %index119, 8 %257 = icmp eq i64 %index.next128.1, 64 br i1 %257, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hbee82bf4cf0dda22E.exit", label %vector.body118, !llvm.loop !3306 bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698, %middle.block36 %_2.i.i.i701 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698 ], [ false, %middle.block36 ] %iter.i.i.i.i.sroa.104.0121 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698 ], [ 1, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0121, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i724 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i754 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i759 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %start1.i.i.i.i.i.i762 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0121, 6 %data.i.i.i.i.i.i763 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i762 %258 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 32 %259 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 16 %260 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 8 %261 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 24 %262 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 48 %263 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 40 %264 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 56 %265 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %265, align 8, !noalias !3302, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %266 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %266, align 8, !noalias !3302, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %267 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %267, align 8, !noalias !3302, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %268 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %268, align 8, !noalias !3302, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %269 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %269, align 8, !noalias !3302, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %270 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %270, align 8, !noalias !3302, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %271 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %271, align 8, !noalias !3302, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %272 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 7 %w7.0.i.i.i.i = load double, ptr %272, align 8, !noalias !3302, !noundef !3 %273 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 6 %w6.0.i.i.i.i = load double, ptr %273, align 8, !noalias !3302, !noundef !3 %274 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 5 %w5.0.i.i.i.i = load double, ptr %274, align 8, !noalias !3302, !noundef !3 %275 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 4 %w4.0.i.i.i.i = load double, ptr %275, align 8, !noalias !3302, !noundef !3 %276 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 3 %w3.0.i.i.i.i = load double, ptr %276, align 8, !noalias !3302, !noundef !3 %277 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 2 %w2.0.i.i.i.i = load double, ptr %277, align 8, !noalias !3302, !noundef !3 %278 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 1 %w1.0.i.i.i.i = load double, ptr %278, align 8, !noalias !3302, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i.i %index41 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next113, %vector.body40 ] %279 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i724, i64 %index41 %280 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729, i64 %index41 %281 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734, i64 %index41 %282 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739, i64 %index41 %283 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i744, i64 %index41 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i749, i64 %index41 %285 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i754, i64 %index41 %286 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i759, i64 %index41 %wide.vec42 = load <8 x double>, ptr %279, align 8, !noalias !3302 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %280, align 8, !noalias !3302 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %281, align 8, !noalias !3302 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %282, align 8, !noalias !3302 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %283, align 8, !noalias !3302 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %284, align 8, !noalias !3302 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %285, align 8, !noalias !3302 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %286, align 8, !noalias !3302 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %287 = fadd <4 x double> %strided.vec43, %strided.vec55 %288 = fadd <4 x double> %strided.vec44, %strided.vec56 %289 = fsub <4 x double> %strided.vec43, %strided.vec55 %290 = fsub <4 x double> %strided.vec44, %strided.vec56 %291 = fadd <4 x double> %strided.vec49, %strided.vec61 %292 = fadd <4 x double> %strided.vec50, %strided.vec62 %293 = fsub <4 x double> %strided.vec49, %strided.vec61 %294 = fsub <4 x double> %strided.vec50, %strided.vec62 %295 = fadd <4 x double> %strided.vec46, %strided.vec58 %296 = fadd <4 x double> %strided.vec47, %strided.vec59 %297 = fsub <4 x double> %strided.vec46, %strided.vec58 %298 = fsub <4 x double> %strided.vec47, %strided.vec59 %299 = fadd <4 x double> %strided.vec52, %strided.vec64 %300 = fadd <4 x double> %strided.vec53, %strided.vec65 %301 = fsub <4 x double> %strided.vec52, %strided.vec64 %302 = fsub <4 x double> %strided.vec53, %strided.vec65 %303 = fadd <4 x double> %287, %291 %304 = fadd <4 x double> %288, %292 %305 = fadd <4 x double> %289, %294 %306 = fsub <4 x double> %290, %293 %307 = fsub <4 x double> %287, %291 %308 = fsub <4 x double> %288, %292 %309 = fsub <4 x double> %289, %294 %310 = fadd <4 x double> %290, %293 %311 = fadd <4 x double> %295, %299 %312 = fadd <4 x double> %296, %300 %313 = fadd <4 x double> %297, %302 %314 = fsub <4 x double> %298, %301 %315 = fadd <4 x double> %314, %313 %316 = fsub <4 x double> %314, %313 %317 = fmul <4 x double> %315, %318 = fmul <4 x double> %316, %319 = fsub <4 x double> %295, %299 %320 = fsub <4 x double> %296, %300 %321 = fsub <4 x double> %297, %302 %322 = fadd <4 x double> %298, %301 %323 = fsub <4 x double> %321, %322 %324 = fadd <4 x double> %322, %321 %325 = fmul <4 x double> %323, %326 = fmul <4 x double> %324, %327 = fadd <4 x double> %303, %311 %328 = fadd <4 x double> %304, %312 %329 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 %index41 %interleaved.vec = shufflevector <4 x double> %327, <4 x double> %328, <8 x i32> store <8 x double> %interleaved.vec, ptr %329, align 8, !noalias !3302 %330 = fadd <4 x double> %305, %317 %331 = fadd <4 x double> %306, %318 %332 = fmul <4 x double> %331, %broadcast.splat %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %330, <4 x double> %332) %334 = fmul <4 x double> %broadcast.splat69, %330 %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %331, <4 x double> %334) %336 = getelementptr inbounds %"num_complex::Complex", ptr %260, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %333, <4 x double> %335, <8 x i32> store <8 x double> %interleaved.vec70, ptr %336, align 8, !noalias !3302 %337 = fadd <4 x double> %307, %320 %338 = fsub <4 x double> %308, %319 %339 = fmul <4 x double> %338, %broadcast.splat72 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %337, <4 x double> %339) %341 = fmul <4 x double> %broadcast.splat76, %337 %342 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %338, <4 x double> %341) %343 = getelementptr inbounds %"num_complex::Complex", ptr %259, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %340, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec77, ptr %343, align 8, !noalias !3302 %344 = fsub <4 x double> %309, %325 %345 = fsub <4 x double> %310, %326 %346 = fmul <4 x double> %345, %broadcast.splat79 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %344, <4 x double> %346) %348 = fmul <4 x double> %broadcast.splat83, %344 %349 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %345, <4 x double> %348) %350 = getelementptr inbounds %"num_complex::Complex", ptr %261, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %347, <4 x double> %349, <8 x i32> store <8 x double> %interleaved.vec84, ptr %350, align 8, !noalias !3302 %351 = fsub <4 x double> %303, %311 %352 = fsub <4 x double> %304, %312 %353 = fmul <4 x double> %352, %broadcast.splat86 %354 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %351, <4 x double> %353) %355 = fmul <4 x double> %broadcast.splat90, %351 %356 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %352, <4 x double> %355) %357 = getelementptr inbounds %"num_complex::Complex", ptr %258, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %354, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec91, ptr %357, align 8, !noalias !3302 %358 = fsub <4 x double> %305, %317 %359 = fsub <4 x double> %306, %318 %360 = fmul <4 x double> %359, %broadcast.splat93 %361 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %358, <4 x double> %360) %362 = fmul <4 x double> %broadcast.splat97, %358 %363 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %359, <4 x double> %362) %364 = getelementptr inbounds %"num_complex::Complex", ptr %263, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %361, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec98, ptr %364, align 8, !noalias !3302 %365 = fsub <4 x double> %307, %320 %366 = fadd <4 x double> %308, %319 %367 = fmul <4 x double> %366, %broadcast.splat100 %368 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %365, <4 x double> %367) %369 = fmul <4 x double> %broadcast.splat104, %365 %370 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %366, <4 x double> %369) %371 = getelementptr inbounds %"num_complex::Complex", ptr %262, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %368, <4 x double> %370, <8 x i32> store <8 x double> %interleaved.vec105, ptr %371, align 8, !noalias !3302 %372 = fadd <4 x double> %309, %325 %373 = fadd <4 x double> %310, %326 %374 = fmul <4 x double> %373, %broadcast.splat107 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %372, <4 x double> %374) %376 = fmul <4 x double> %broadcast.splat111, %372 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %373, <4 x double> %376) %378 = getelementptr inbounds %"num_complex::Complex", ptr %264, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %375, <4 x double> %377, <8 x i32> store <8 x double> %interleaved.vec112, ptr %378, align 8, !noalias !3302 %index.next113 = add nuw i64 %index41, 4 %379 = icmp eq i64 %index.next113, 8 br i1 %379, label %middle.block36, label %vector.body40, !llvm.loop !3307 middle.block36: ; preds = %vector.body40 br i1 %_2.i.i.i701, label %bb32.i.i.i.i, label %vector.body118 "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hbee82bf4cf0dda22E.exit": ; preds = %vector.body118 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3302 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4b9306ec6c9d836bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3308 store i64 128, ptr %n.i, align 8, !noalias !3308 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3308 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3308 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3308 store ptr null, ptr %_16.i, align 8, !noalias !3308 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3308 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3308 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3308 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3308 store ptr null, ptr %_24.i, align 8, !noalias !3308 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3308 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3308 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3308 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3308 store ptr null, ptr %_32.i, align 8, !noalias !3308 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3308 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3308 store i64 %w.1, ptr %_34.i, align 8, !noalias !3308 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3308 store ptr null, ptr %_40.i, align 8, !noalias !3308 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3308 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !3308 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !3308 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !3308 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !3308 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !3308 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !3308 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !3308 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !3308 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !3308 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fsub <4 x double> %75, %80 %92 = fadd <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fadd <4 x double> %75, %80 %96 = fsub <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fsub <4 x double> %83, %88 %100 = fadd <4 x double> %84, %87 %101 = fsub <4 x double> %99, %100 %102 = fadd <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fadd <4 x double> %83, %88 %108 = fsub <4 x double> %84, %87 %109 = fadd <4 x double> %108, %107 %110 = fsub <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !3308 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !3308 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !3308 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !3308 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !3308 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !3308 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !3308 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !3308 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !3308 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !3308 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !3308 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !3308 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !3308 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !3308 %141 = fsub <4 x double> %93, %106 %142 = fadd <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !3308 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !3308 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !3308 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !3308 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !3308 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !3308 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !3308 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !3308 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !3308 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !3308 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !3308 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !3308 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !3308 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !3308 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !3308 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !3308 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !3308 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !3308 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !3308 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !3308 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !3308 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !3308 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !3308 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !3308 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !3308 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !3308 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !3308 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !3308 %205 = fadd <4 x double> %93, %106 %206 = fsub <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !3308 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !3308 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !3308 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !3308 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !3308 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !3308 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !3308 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !3308 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !3308 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !3308 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !3308 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !3308 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !3308 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !3308 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 16 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698, label %vector.body, !llvm.loop !3311 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 br label %bb32.i.i.i.i vector.body118: ; preds = %middle.block36, %vector.body118 %index119 = phi i64 [ %index.next128.1, %vector.body118 ], [ 0, %middle.block36 ] %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index119 %246 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index119 %wide.vec120 = load <8 x double>, ptr %245, align 8, !noalias !3308 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %246, align 8, !noalias !3308 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %247 = fadd <4 x double> %strided.vec121, %strided.vec124 %248 = fadd <4 x double> %strided.vec122, %strided.vec125 %249 = fsub <4 x double> %strided.vec121, %strided.vec124 %250 = fsub <4 x double> %strided.vec122, %strided.vec125 %interleaved.vec126 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec126, ptr %245, align 8, !noalias !3308 %interleaved.vec127 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec127, ptr %246, align 8, !noalias !3308 %index.next128 = or disjoint i64 %index119, 4 %251 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next128 %252 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next128 %wide.vec120.1 = load <8 x double>, ptr %251, align 8, !noalias !3308 %strided.vec121.1 = shufflevector <8 x double> %wide.vec120.1, <8 x double> poison, <4 x i32> %strided.vec122.1 = shufflevector <8 x double> %wide.vec120.1, <8 x double> poison, <4 x i32> %wide.vec123.1 = load <8 x double>, ptr %252, align 8, !noalias !3308 %strided.vec124.1 = shufflevector <8 x double> %wide.vec123.1, <8 x double> poison, <4 x i32> %strided.vec125.1 = shufflevector <8 x double> %wide.vec123.1, <8 x double> poison, <4 x i32> %253 = fadd <4 x double> %strided.vec121.1, %strided.vec124.1 %254 = fadd <4 x double> %strided.vec122.1, %strided.vec125.1 %255 = fsub <4 x double> %strided.vec121.1, %strided.vec124.1 %256 = fsub <4 x double> %strided.vec122.1, %strided.vec125.1 %interleaved.vec126.1 = shufflevector <4 x double> %253, <4 x double> %254, <8 x i32> store <8 x double> %interleaved.vec126.1, ptr %251, align 8, !noalias !3308 %interleaved.vec127.1 = shufflevector <4 x double> %255, <4 x double> %256, <8 x i32> store <8 x double> %interleaved.vec127.1, ptr %252, align 8, !noalias !3308 %index.next128.1 = add nuw nsw i64 %index119, 8 %257 = icmp eq i64 %index.next128.1, 64 br i1 %257, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hbee82bf4cf0dda22E.exit", label %vector.body118, !llvm.loop !3312 bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698, %middle.block36 %_2.i.i.i701 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698 ], [ false, %middle.block36 ] %iter.i.i.i.i.sroa.104.0121 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit698 ], [ 1, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0121, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i724 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i.i.i754 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %data.i.i.i.i.i.i.i.i759 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723 %start1.i.i.i.i.i.i762 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0121, 6 %data.i.i.i.i.i.i763 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i762 %258 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 32 %259 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 16 %260 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 8 %261 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 24 %262 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 48 %263 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 40 %264 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 56 %265 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %265, align 8, !noalias !3308, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %266 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %266, align 8, !noalias !3308, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %267 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %267, align 8, !noalias !3308, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %268 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %268, align 8, !noalias !3308, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %269 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %269, align 8, !noalias !3308, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %270 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %270, align 8, !noalias !3308, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %271 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %271, align 8, !noalias !3308, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %272 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 7 %w7.0.i.i.i.i = load double, ptr %272, align 8, !noalias !3308, !noundef !3 %273 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 6 %w6.0.i.i.i.i = load double, ptr %273, align 8, !noalias !3308, !noundef !3 %274 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 5 %w5.0.i.i.i.i = load double, ptr %274, align 8, !noalias !3308, !noundef !3 %275 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 4 %w4.0.i.i.i.i = load double, ptr %275, align 8, !noalias !3308, !noundef !3 %276 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 3 %w3.0.i.i.i.i = load double, ptr %276, align 8, !noalias !3308, !noundef !3 %277 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 2 %w2.0.i.i.i.i = load double, ptr %277, align 8, !noalias !3308, !noundef !3 %278 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i723, i64 1 %w1.0.i.i.i.i = load double, ptr %278, align 8, !noalias !3308, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i.i %index41 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next113, %vector.body40 ] %279 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i724, i64 %index41 %280 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729, i64 %index41 %281 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734, i64 %index41 %282 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739, i64 %index41 %283 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i744, i64 %index41 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i749, i64 %index41 %285 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i754, i64 %index41 %286 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i759, i64 %index41 %wide.vec42 = load <8 x double>, ptr %279, align 8, !noalias !3308 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %280, align 8, !noalias !3308 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %281, align 8, !noalias !3308 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %282, align 8, !noalias !3308 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %283, align 8, !noalias !3308 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %284, align 8, !noalias !3308 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %285, align 8, !noalias !3308 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %286, align 8, !noalias !3308 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %287 = fadd <4 x double> %strided.vec43, %strided.vec55 %288 = fadd <4 x double> %strided.vec44, %strided.vec56 %289 = fsub <4 x double> %strided.vec43, %strided.vec55 %290 = fsub <4 x double> %strided.vec44, %strided.vec56 %291 = fadd <4 x double> %strided.vec49, %strided.vec61 %292 = fadd <4 x double> %strided.vec50, %strided.vec62 %293 = fsub <4 x double> %strided.vec49, %strided.vec61 %294 = fsub <4 x double> %strided.vec50, %strided.vec62 %295 = fadd <4 x double> %strided.vec46, %strided.vec58 %296 = fadd <4 x double> %strided.vec47, %strided.vec59 %297 = fsub <4 x double> %strided.vec46, %strided.vec58 %298 = fsub <4 x double> %strided.vec47, %strided.vec59 %299 = fadd <4 x double> %strided.vec52, %strided.vec64 %300 = fadd <4 x double> %strided.vec53, %strided.vec65 %301 = fsub <4 x double> %strided.vec52, %strided.vec64 %302 = fsub <4 x double> %strided.vec53, %strided.vec65 %303 = fadd <4 x double> %287, %291 %304 = fadd <4 x double> %288, %292 %305 = fsub <4 x double> %289, %294 %306 = fadd <4 x double> %290, %293 %307 = fsub <4 x double> %287, %291 %308 = fsub <4 x double> %288, %292 %309 = fadd <4 x double> %289, %294 %310 = fsub <4 x double> %290, %293 %311 = fadd <4 x double> %295, %299 %312 = fadd <4 x double> %296, %300 %313 = fsub <4 x double> %297, %302 %314 = fadd <4 x double> %298, %301 %315 = fsub <4 x double> %313, %314 %316 = fadd <4 x double> %314, %313 %317 = fmul <4 x double> %315, %318 = fmul <4 x double> %316, %319 = fsub <4 x double> %295, %299 %320 = fsub <4 x double> %296, %300 %321 = fadd <4 x double> %297, %302 %322 = fsub <4 x double> %298, %301 %323 = fadd <4 x double> %322, %321 %324 = fsub <4 x double> %322, %321 %325 = fmul <4 x double> %323, %326 = fmul <4 x double> %324, %327 = fadd <4 x double> %303, %311 %328 = fadd <4 x double> %304, %312 %329 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i763, i64 %index41 %interleaved.vec = shufflevector <4 x double> %327, <4 x double> %328, <8 x i32> store <8 x double> %interleaved.vec, ptr %329, align 8, !noalias !3308 %330 = fadd <4 x double> %305, %317 %331 = fadd <4 x double> %306, %318 %332 = fmul <4 x double> %331, %broadcast.splat %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %330, <4 x double> %332) %334 = fmul <4 x double> %broadcast.splat69, %330 %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %331, <4 x double> %334) %336 = getelementptr inbounds %"num_complex::Complex", ptr %260, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %333, <4 x double> %335, <8 x i32> store <8 x double> %interleaved.vec70, ptr %336, align 8, !noalias !3308 %337 = fsub <4 x double> %307, %320 %338 = fadd <4 x double> %308, %319 %339 = fmul <4 x double> %338, %broadcast.splat72 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %337, <4 x double> %339) %341 = fmul <4 x double> %broadcast.splat76, %337 %342 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %338, <4 x double> %341) %343 = getelementptr inbounds %"num_complex::Complex", ptr %259, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %340, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec77, ptr %343, align 8, !noalias !3308 %344 = fsub <4 x double> %309, %325 %345 = fsub <4 x double> %310, %326 %346 = fmul <4 x double> %345, %broadcast.splat79 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %344, <4 x double> %346) %348 = fmul <4 x double> %broadcast.splat83, %344 %349 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %345, <4 x double> %348) %350 = getelementptr inbounds %"num_complex::Complex", ptr %261, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %347, <4 x double> %349, <8 x i32> store <8 x double> %interleaved.vec84, ptr %350, align 8, !noalias !3308 %351 = fsub <4 x double> %303, %311 %352 = fsub <4 x double> %304, %312 %353 = fmul <4 x double> %352, %broadcast.splat86 %354 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %351, <4 x double> %353) %355 = fmul <4 x double> %broadcast.splat90, %351 %356 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %352, <4 x double> %355) %357 = getelementptr inbounds %"num_complex::Complex", ptr %258, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %354, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec91, ptr %357, align 8, !noalias !3308 %358 = fsub <4 x double> %305, %317 %359 = fsub <4 x double> %306, %318 %360 = fmul <4 x double> %359, %broadcast.splat93 %361 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %358, <4 x double> %360) %362 = fmul <4 x double> %broadcast.splat97, %358 %363 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %359, <4 x double> %362) %364 = getelementptr inbounds %"num_complex::Complex", ptr %263, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %361, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec98, ptr %364, align 8, !noalias !3308 %365 = fadd <4 x double> %307, %320 %366 = fsub <4 x double> %308, %319 %367 = fmul <4 x double> %366, %broadcast.splat100 %368 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %365, <4 x double> %367) %369 = fmul <4 x double> %broadcast.splat104, %365 %370 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %366, <4 x double> %369) %371 = getelementptr inbounds %"num_complex::Complex", ptr %262, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %368, <4 x double> %370, <8 x i32> store <8 x double> %interleaved.vec105, ptr %371, align 8, !noalias !3308 %372 = fadd <4 x double> %309, %325 %373 = fadd <4 x double> %310, %326 %374 = fmul <4 x double> %373, %broadcast.splat107 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %372, <4 x double> %374) %376 = fmul <4 x double> %broadcast.splat111, %372 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %373, <4 x double> %376) %378 = getelementptr inbounds %"num_complex::Complex", ptr %264, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %375, <4 x double> %377, <8 x i32> store <8 x double> %interleaved.vec112, ptr %378, align 8, !noalias !3308 %index.next113 = add nuw i64 %index41, 4 %379 = icmp eq i64 %index.next113, 8 br i1 %379, label %middle.block36, label %vector.body40, !llvm.loop !3313 middle.block36: ; preds = %vector.body40 br i1 %_2.i.i.i701, label %bb32.i.i.i.i, label %vector.body118 "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hbee82bf4cf0dda22E.exit": ; preds = %vector.body118 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3308 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4c13c035098a1d2cE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h171cc0afa6ca3f11E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4c6ce95381d450ffE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3314 store i64 256, ptr %n.i.i, align 8, !noalias !3314 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3314 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3314 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3314 store ptr null, ptr %_16.i.i, align 8, !noalias !3314 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3314 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3314 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3314 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3314 store ptr null, ptr %_24.i.i, align 8, !noalias !3314 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3314 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3314 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3314 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3314 store ptr null, ptr %_32.i.i, align 8, !noalias !3314 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3314 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3314 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3314 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haa8534d83b89b49fE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3314 store ptr null, ptr %_40.i.i, align 8, !noalias !3314 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haa8534d83b89b49fE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3314 tail call void @llvm.experimental.noalias.scope.decl(metadata !3319) tail call void @llvm.experimental.noalias.scope.decl(metadata !3322) tail call void @llvm.experimental.noalias.scope.decl(metadata !3324) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haa8534d83b89b49fE.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haa8534d83b89b49fE.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3324, !noalias !3326 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3324, !noalias !3326 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3324, !noalias !3326 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3319, !noalias !3327 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3319, !noalias !3327 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3319, !noalias !3327 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3319, !noalias !3327 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3322, !noalias !3328 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !3322, !noalias !3328 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !3322, !noalias !3328 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !3322, !noalias !3328 %exitcond.not.i.i = icmp eq i64 %8, 32 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3329) tail call void @llvm.experimental.noalias.scope.decl(metadata !3332) tail call void @llvm.experimental.noalias.scope.decl(metadata !3334) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !3334, !noalias !3336, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !3334, !noalias !3336, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !3334, !noalias !3336, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !3334, !noalias !3336, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !3334, !noalias !3336, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !3334, !noalias !3336, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3329, !noalias !3337 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3329, !noalias !3337 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3329, !noalias !3337 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3329, !noalias !3337 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3332, !noalias !3338 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !3332, !noalias !3338 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !3332, !noalias !3338 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !3332, !noalias !3338 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3329, !noalias !3337 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3329, !noalias !3337 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3329, !noalias !3337 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3329, !noalias !3337 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3332, !noalias !3338 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3332, !noalias !3338 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3332, !noalias !3338 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !3332, !noalias !3338 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3339) tail call void @llvm.experimental.noalias.scope.decl(metadata !3342) tail call void @llvm.experimental.noalias.scope.decl(metadata !3344) %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %119 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %124 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ], [ %125, %bb38.us.i59.i ] %125 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !3339, !noalias !3347 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !3339, !noalias !3347 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !3339, !noalias !3347 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !3339, !noalias !3347 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %128 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !3342, !noalias !3348 %135 = fsub <4 x double> %127, %133 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %120, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %135, <4 x double> %137) #23 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !3342, !noalias !3348 %139 = fsub <4 x double> %126, %128 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %122, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %139, <4 x double> %141) #23 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !3342, !noalias !3348 %143 = fadd <4 x double> %127, %133 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %124, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %123, <4 x double> %143, <4 x double> %145) #23 store <4 x double> %146, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !3342, !noalias !3348 %exitcond.not.i73.i = icmp eq i64 %125, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %data.i.i.i.i.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i50.1.i = load double, ptr %147, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i51.1.i = load double, ptr %148, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i52.1.i = load double, ptr %149, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i53.1.i = load double, ptr %150, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i54.1.i = load double, ptr %151, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %152 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i55.1.i = load double, ptr %152, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.1.i = insertelement <2 x double> poison, double %w1.0.us.i50.1.i, i64 0 %153 = insertelement <4 x double> poison, double %w1.1.us.i51.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.1.i = insertelement <2 x double> poison, double %w2.0.us.i52.1.i, i64 0 %154 = insertelement <4 x double> poison, double %w2.1.us.i53.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.1.i = insertelement <2 x double> poison, double %w3.0.us.i54.1.i, i64 0 %155 = insertelement <4 x double> poison, double %w3.1.us.i55.1.i, i64 0 %156 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %157 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %158 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %159 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.1.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.1.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.1.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.1.i bb38.us.i59.1.i: ; preds = %bb38.us.i59.1.i, %bb36.bb20.loopexit_crit_edge.us.i74.i %iter5.sroa.50.0697.us.i60.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ %165, %bb38.us.i59.1.i ] %165 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.us.i66.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %157, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.us.i67.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %156, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.us.i68.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %158, i64 %iter5.sroa.50.0697.us.i60.1.i %a.sroa.0.0.copyload.us.i69.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i, align 8, !alias.scope !3339, !noalias !3347 %b.sroa.0.0.copyload.us.i70.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i, align 8, !alias.scope !3339, !noalias !3347 %c.sroa.0.0.copyload.us.i71.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i, align 8, !alias.scope !3339, !noalias !3347 %d.sroa.0.0.copyload.us.i72.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i, align 8, !alias.scope !3339, !noalias !3347 %166 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %167 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %168 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %169 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %166, %168 store <4 x double> %174, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i, align 8, !alias.scope !3342, !noalias !3348 %175 = fsub <4 x double> %167, %173 %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %160, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %175, <4 x double> %177) #23 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.us.i66.1.i, align 8, !alias.scope !3342, !noalias !3348 %179 = fsub <4 x double> %166, %168 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %162, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.i.i.us.i67.1.i, align 8, !alias.scope !3342, !noalias !3348 %183 = fadd <4 x double> %167, %173 %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %164, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %183, <4 x double> %185) #23 store <4 x double> %186, ptr %_3.i.i.i.i.us.i68.1.i, align 8, !alias.scope !3342, !noalias !3348 %exitcond.not.i73.1.i = icmp eq i64 %165, 8 br i1 %exitcond.not.i73.1.i, label %bb36.bb20.loopexit_crit_edge.us.i74.1.i, label %bb38.us.i59.1.i bb36.bb20.loopexit_crit_edge.us.i74.1.i: ; preds = %bb38.us.i59.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.i.i.us.i45.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %data.i.i.i.i.i.i.i.i.us.i46.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.us.i50.2.i = load double, ptr %187, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.us.i51.2.i = load double, ptr %188, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2 %w2.0.us.i52.2.i = load double, ptr %189, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2, i32 1 %w2.1.us.i53.2.i = load double, ptr %190, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3 %w3.0.us.i54.2.i = load double, ptr %191, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3, i32 1 %w3.1.us.i55.2.i = load double, ptr %192, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.2.i = insertelement <2 x double> poison, double %w1.0.us.i50.2.i, i64 0 %193 = insertelement <4 x double> poison, double %w1.1.us.i51.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.2.i = insertelement <2 x double> poison, double %w2.0.us.i52.2.i, i64 0 %194 = insertelement <4 x double> poison, double %w2.1.us.i53.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.2.i = insertelement <2 x double> poison, double %w3.0.us.i54.2.i, i64 0 %195 = insertelement <4 x double> poison, double %w3.1.us.i55.2.i, i64 0 %196 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %197 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %198 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %199 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.2.i, <2 x double> poison, <4 x i32> zeroinitializer %200 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> zeroinitializer %201 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.2.i, <2 x double> poison, <4 x i32> zeroinitializer %202 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> zeroinitializer %203 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.2.i, <2 x double> poison, <4 x i32> zeroinitializer %204 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.2.i bb38.us.i59.2.i: ; preds = %bb38.us.i59.2.i, %bb36.bb20.loopexit_crit_edge.us.i74.1.i %iter5.sroa.50.0697.us.i60.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.1.i ], [ %205, %bb38.us.i59.2.i ] %205 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.us.i66.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %197, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.us.i67.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %196, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.us.i68.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %198, i64 %iter5.sroa.50.0697.us.i60.2.i %a.sroa.0.0.copyload.us.i69.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.2.i, align 8, !alias.scope !3339, !noalias !3347 %b.sroa.0.0.copyload.us.i70.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.2.i, align 8, !alias.scope !3339, !noalias !3347 %c.sroa.0.0.copyload.us.i71.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.2.i, align 8, !alias.scope !3339, !noalias !3347 %d.sroa.0.0.copyload.us.i72.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2.i, align 8, !alias.scope !3339, !noalias !3347 %206 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.2.i, %c.sroa.0.0.copyload.us.i71.2.i %207 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.2.i, %c.sroa.0.0.copyload.us.i71.2.i %208 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.2.i, %d.sroa.0.0.copyload.us.i72.2.i %209 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.2.i, %d.sroa.0.0.copyload.us.i72.2.i %210 = bitcast <4 x double> %209 to <4 x i64> %211 = xor <4 x i64> %210, %212 = bitcast <4 x i64> %211 to <4 x double> %213 = shufflevector <4 x double> %212, <4 x double> poison, <4 x i32> %214 = fadd <4 x double> %206, %208 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.2.i, align 8, !alias.scope !3342, !noalias !3348 %215 = fsub <4 x double> %207, %213 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %200, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %199, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.us.i66.2.i, align 8, !alias.scope !3342, !noalias !3348 %219 = fsub <4 x double> %206, %208 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %202, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %201, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.us.i67.2.i, align 8, !alias.scope !3342, !noalias !3348 %223 = fadd <4 x double> %207, %213 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %204, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %203, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.us.i68.2.i, align 8, !alias.scope !3342, !noalias !3348 %exitcond.not.i73.2.i = icmp eq i64 %205, 8 br i1 %exitcond.not.i73.2.i, label %bb36.bb20.loopexit_crit_edge.us.i74.2.i, label %bb38.us.i59.2.i bb36.bb20.loopexit_crit_edge.us.i74.2.i: ; preds = %bb38.us.i59.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %data.i.i.i.i.i.i.i.i.i.i.us.i45.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %data.i.i.i.i.i.i.i.i.us.i46.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 %227 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.us.i50.3.i = load double, ptr %227, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %228 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.us.i51.3.i = load double, ptr %228, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %229 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2 %w2.0.us.i52.3.i = load double, ptr %229, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %230 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2, i32 1 %w2.1.us.i53.3.i = load double, ptr %230, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %231 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3 %w3.0.us.i54.3.i = load double, ptr %231, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %232 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3, i32 1 %w3.1.us.i55.3.i = load double, ptr %232, align 8, !alias.scope !3344, !noalias !3346, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.3.i = insertelement <2 x double> poison, double %w1.0.us.i50.3.i, i64 0 %233 = insertelement <4 x double> poison, double %w1.1.us.i51.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.3.i = insertelement <2 x double> poison, double %w2.0.us.i52.3.i, i64 0 %234 = insertelement <4 x double> poison, double %w2.1.us.i53.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.3.i = insertelement <2 x double> poison, double %w3.0.us.i54.3.i, i64 0 %235 = insertelement <4 x double> poison, double %w3.1.us.i55.3.i, i64 0 %236 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %237 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %238 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 %239 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.3.i, <2 x double> poison, <4 x i32> zeroinitializer %240 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> zeroinitializer %241 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.3.i, <2 x double> poison, <4 x i32> zeroinitializer %242 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> zeroinitializer %243 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.3.i, <2 x double> poison, <4 x i32> zeroinitializer %244 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.3.i bb38.us.i59.3.i: ; preds = %bb38.us.i59.3.i, %bb36.bb20.loopexit_crit_edge.us.i74.2.i %iter5.sroa.50.0697.us.i60.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.2.i ], [ %245, %bb38.us.i59.3.i ] %245 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.us.i66.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %237, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.us.i67.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %236, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.us.i68.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %238, i64 %iter5.sroa.50.0697.us.i60.3.i %a.sroa.0.0.copyload.us.i69.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.3.i, align 8, !alias.scope !3339, !noalias !3347 %b.sroa.0.0.copyload.us.i70.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.3.i, align 8, !alias.scope !3339, !noalias !3347 %c.sroa.0.0.copyload.us.i71.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.3.i, align 8, !alias.scope !3339, !noalias !3347 %d.sroa.0.0.copyload.us.i72.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3.i, align 8, !alias.scope !3339, !noalias !3347 %246 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.3.i, %c.sroa.0.0.copyload.us.i71.3.i %247 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.3.i, %c.sroa.0.0.copyload.us.i71.3.i %248 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.3.i, %d.sroa.0.0.copyload.us.i72.3.i %249 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.3.i, %d.sroa.0.0.copyload.us.i72.3.i %250 = bitcast <4 x double> %249 to <4 x i64> %251 = xor <4 x i64> %250, %252 = bitcast <4 x i64> %251 to <4 x double> %253 = shufflevector <4 x double> %252, <4 x double> poison, <4 x i32> %254 = fadd <4 x double> %246, %248 store <4 x double> %254, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.3.i, align 8, !alias.scope !3342, !noalias !3348 %255 = fsub <4 x double> %247, %253 %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %240, %256 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %239, <4 x double> %255, <4 x double> %257) #23 store <4 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.us.i66.3.i, align 8, !alias.scope !3342, !noalias !3348 %259 = fsub <4 x double> %246, %248 %260 = shufflevector <4 x double> %259, <4 x double> poison, <4 x i32> %261 = fmul <4 x double> %242, %260 %262 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %241, <4 x double> %259, <4 x double> %261) #23 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.us.i67.3.i, align 8, !alias.scope !3342, !noalias !3348 %263 = fadd <4 x double> %247, %253 %264 = shufflevector <4 x double> %263, <4 x double> poison, <4 x i32> %265 = fmul <4 x double> %244, %264 %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %243, <4 x double> %263, <4 x double> %265) #23 store <4 x double> %266, ptr %_3.i.i.i.i.us.i68.3.i, align 8, !alias.scope !3342, !noalias !3348 %exitcond.not.i73.3.i = icmp eq i64 %245, 8 br i1 %exitcond.not.i73.3.i, label %bb26.i.i.i.i.i, label %bb38.us.i59.3.i bb26.i.i.i.i.i: ; preds = %bb38.us.i59.3.i, %bb26.i.i.i.i.i %iter7.i.i.i.i.sroa.50.0235.i = phi i64 [ %267, %bb26.i.i.i.i.i ], [ 0, %bb38.us.i59.3.i ] %267 = add nuw nsw i64 %iter7.i.i.i.i.sroa.50.0235.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter7.i.i.i.i.sroa.50.0235.i %_73.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3314 %_74.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3314 %_75.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3314 %_76.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3314 %268 = fadd <4 x double> %_73.i.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.i.sroa.0.0.copyload.i %269 = fsub <4 x double> %_73.i.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.i.sroa.0.0.copyload.i %270 = fadd <4 x double> %_74.i.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.i.sroa.0.0.copyload.i %271 = fsub <4 x double> %_74.i.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.i.sroa.0.0.copyload.i %272 = bitcast <4 x double> %271 to <4 x i64> %273 = xor <4 x i64> %272, %274 = bitcast <4 x i64> %273 to <4 x double> %275 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> %276 = fadd <4 x double> %268, %270 %277 = fsub <4 x double> %269, %275 %278 = fsub <4 x double> %268, %270 %279 = fadd <4 x double> %269, %275 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3314 store <4 x double> %277, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3314 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3314 store <4 x double> %279, ptr %_3.i.i.i.i.i, align 8, !noalias !3314 %exitcond237.not.i = icmp eq i64 %267, 32 br i1 %exitcond237.not.i, label %_ZN4pulp3x862V39vectorize6__impl17ha4c63867a4cc0deaE.exit, label %bb26.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17ha4c63867a4cc0deaE.exit: ; preds = %bb26.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3314 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4ca3cf547b3eb103E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3349 store i64 16, ptr %n.i, align 8, !noalias !3349 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3349 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3349 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3349 store ptr null, ptr %_16.i, align 8, !noalias !3349 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3349 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3349 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3349 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3349 store ptr null, ptr %_24.i, align 8, !noalias !3349 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3349 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3349 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3349 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3349 store ptr null, ptr %_32.i, align 8, !noalias !3349 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3349 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3349 store i64 %w.1, ptr %_34.i, align 8, !noalias !3349 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3349 store ptr null, ptr %_40.i, align 8, !noalias !3349 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3349 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !3352 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !3352 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %2 = fadd <4 x double> %strided.vec, %strided.vec3 %3 = fadd <4 x double> %strided.vec1, %strided.vec4 %4 = fsub <4 x double> %strided.vec, %strided.vec3 %5 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %2, <4 x double> %3, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !3352 %interleaved.vec5 = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec5, ptr %1, align 8, !noalias !3352 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %wide.vec.1 = load <8 x double>, ptr %6, align 8, !noalias !3352 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %7, align 8, !noalias !3352 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %8 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %9 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %10 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %11 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %8, <4 x double> %9, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %12, align 8, !noalias !3352 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec5.1 = shufflevector <4 x double> %10, <4 x double> %11, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %13, align 8, !noalias !3352 %14 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i = load double, ptr %14, align 8, !noalias !3349, !noundef !3 %15 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i = load double, ptr %15, align 8, !noalias !3349, !noundef !3 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %_6.i.i.i58.i = fneg double %w1.1.i.i43.i %17 = load <4 x double>, ptr %scratch.0, align 8, !noalias !3349 %18 = load <4 x double>, ptr %16, align 8, !noalias !3349 %19 = insertelement <4 x double> poison, double %_6.i.i.i58.i, i64 0 %20 = insertelement <4 x double> %19, double %w1.1.i.i43.i, i64 1 %21 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %18 %23 = shufflevector <4 x double> %22, <4 x double> poison, <4 x i32> %24 = insertelement <4 x double> poison, double %w1.0.i.i42.i, i64 0 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> zeroinitializer %26 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %25, <4 x double> %18, <4 x double> %23) %27 = fadd <4 x double> %17, %26 store <4 x double> %27, ptr %buf.0, align 8, !noalias !3349 %28 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9, i32 1 %_3.i.i.i.i.i.i.i.i132.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i135.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i138.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i.i.i.i141.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %29 = load <4 x double>, ptr %_3.i.i.i.i.i.i138.2, align 8, !noalias !3349 %30 = load <4 x double>, ptr %_3.i.i.i.i141.2, align 8, !noalias !3349 %31 = fmul <4 x double> %21, %30 %32 = shufflevector <4 x double> %31, <4 x double> poison, <4 x i32> %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %25, <4 x double> %30, <4 x double> %32) %34 = fadd <4 x double> %29, %33 store <4 x double> %34, ptr %_3.i.i.i.i.i.i.i.i132.2, align 8, !noalias !3349 %35 = shufflevector <4 x double> %17, <4 x double> %29, <4 x i32> %36 = shufflevector <4 x double> %26, <4 x double> %33, <4 x i32> %37 = fsub <4 x double> %35, %36 store <4 x double> %37, ptr %28, align 8, !noalias !3349 %38 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11, i32 1 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %39 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i42.i.1 = load double, ptr %39, align 8, !noalias !3349, !noundef !3 %40 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i43.i.1 = load double, ptr %40, align 8, !noalias !3349, !noundef !3 %41 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %_6.i.i.i58.i.1 = fneg double %w1.1.i.i43.i.1 %_3.i.i.i.i.i.i.i.i132.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %_3.i.i.i.i141.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %42 = load <4 x double>, ptr %1, align 8, !noalias !3349 %43 = load <4 x double>, ptr %41, align 8, !noalias !3349 %44 = insertelement <4 x double> poison, double %_6.i.i.i58.i.1, i64 0 %45 = insertelement <4 x double> %44, double %w1.1.i.i43.i.1, i64 1 %46 = shufflevector <4 x double> %45, <4 x double> poison, <4 x i32> %47 = fmul <4 x double> %46, %43 %48 = shufflevector <4 x double> %47, <4 x double> poison, <4 x i32> %49 = insertelement <4 x double> poison, double %w1.0.i.i42.i.1, i64 0 %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> zeroinitializer %51 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %50, <4 x double> %43, <4 x double> %48) %52 = fadd <4 x double> %42, %51 store <4 x double> %52, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !3349 %53 = fsub <4 x double> %42, %51 %_0.i3.i148.1.1 = extractelement <4 x double> %53, i64 3 %54 = shufflevector <4 x double> %29, <4 x double> %42, <4 x i32> %55 = shufflevector <4 x double> %33, <4 x double> %51, <4 x i32> %56 = fsub <4 x double> %54, %55 store <4 x double> %56, ptr %38, align 8, !noalias !3349 %57 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13, i32 1 store double %_0.i3.i148.1.1, ptr %57, align 8, !noalias !3349 %_3.i.i.i.i.i.i.i.i132.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i135.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i138.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i141.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i132.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %58 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7, i32 1 %59 = load <4 x double>, ptr %_3.i.i.i.i.i.i138.2.1, align 8, !noalias !3349 %60 = load <4 x double>, ptr %_3.i.i.i.i141.2.1, align 8, !noalias !3349 %61 = fmul <4 x double> %46, %60 %62 = shufflevector <4 x double> %61, <4 x double> poison, <4 x i32> %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %50, <4 x double> %60, <4 x double> %62) %64 = fadd <4 x double> %59, %63 %65 = shufflevector <4 x double> %64, <4 x double> poison, <2 x i32> store <2 x double> %65, ptr %_3.i.i.i.i.i.i.i.i132.2.1, align 8, !noalias !3349 %66 = fadd <4 x double> %59, %63 %_0.i.i145.3.1 = extractelement <4 x double> %66, i64 2 store double %_0.i.i145.3.1, ptr %_3.i.i.i.i.i.i.i.i132.3.1, align 8, !noalias !3349 %67 = fadd <4 x double> %59, %63 %68 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> %69 = fsub <4 x double> %17, %26 %70 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %68, <4 x double> %71, <4 x i32> store <4 x double> %72, ptr %58, align 8, !noalias !3349 %73 = fsub <4 x double> %59, %63 store <4 x double> %73, ptr %_3.i2.i.i.i.i.i.i.i135.2.1, align 8, !noalias !3349 %w1.0.i.i.i = load double, ptr %14, align 8, !noalias !3349, !noundef !3 %w1.1.i.i.i = load double, ptr %15, align 8, !noalias !3349, !noundef !3 %_6.i.i.i.i = fneg double %w1.1.i.i.i %74 = load <4 x double>, ptr %buf.0, align 8, !noalias !3349 %75 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i132.2, align 8, !noalias !3349 %76 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %77 = insertelement <4 x double> %76, double %w1.1.i.i.i, i64 1 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %78, %75 %80 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %81 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> zeroinitializer %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %82, <4 x double> %75, <4 x double> %80) %84 = fadd <4 x double> %74, %83 store <4 x double> %84, ptr %scratch.0, align 8, !noalias !3349 %85 = fsub <4 x double> %74, %83 store <4 x double> %85, ptr %1, align 8, !noalias !3349 %86 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.i.i.i.1 = load double, ptr %86, align 8, !noalias !3349, !noundef !3 %87 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %87, align 8, !noalias !3349, !noundef !3 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %88 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !3349 %89 = insertelement <2 x double> poison, double %w1.1.i.i.i.1, i64 0 %90 = insertelement <2 x double> %89, double %_6.i.i.i.i.1, i64 1 %91 = fmul <2 x double> %65, %90 %92 = shufflevector <2 x double> %91, <2 x double> poison, <2 x i32> %93 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %94 = shufflevector <2 x double> %93, <2 x double> poison, <2 x i32> zeroinitializer %95 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %94, <2 x double> %65, <2 x double> %92) %96 = fadd <2 x double> %88, %95 store <2 x double> %96, ptr %_3.i.i.i.i.i.i138.2, align 8, !noalias !3349 %97 = fsub <2 x double> %88, %95 store <2 x double> %97, ptr %_3.i.i.i.i.i.i138.2.1, align 8, !noalias !3349 %_3.i.i.i.i.i.i.i.i303.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i306.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %98 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i132.1.1, align 8, !noalias !3349 %99 = shufflevector <4 x double> %67, <4 x double> poison, <2 x i32> %100 = insertelement <2 x double> %99, double %w1.1.i.i.i.1, i64 1 %101 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %102 = insertelement <2 x double> %101, double %_0.i.i145.3.1, i64 1 %103 = fmul <2 x double> %100, %102 %104 = insertelement <2 x double> %99, double %_0.i.i145.3.1, i64 0 %105 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %94, <2 x double> %104, <2 x double> %103) %106 = fadd <2 x double> %98, %105 store <2 x double> %106, ptr %_3.i.i.i.i.i.i.i.i303.1.1, align 8, !noalias !3349 %w1.0.i.i.i.2 = load double, ptr %39, align 8, !noalias !3349, !noundef !3 %w1.1.i.i.i.2 = load double, ptr %40, align 8, !noalias !3349, !noundef !3 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %107 = load <4 x double>, ptr %0, align 8, !noalias !3349 %108 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i135.2, align 8, !noalias !3349 %109 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %110 = insertelement <4 x double> %109, double %w1.1.i.i.i.2, i64 1 %111 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> %112 = fmul <4 x double> %111, %108 %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %116 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %115, <4 x double> %108, <4 x double> %113) %117 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %118 = shufflevector <2 x double> %98, <2 x double> poison, <4 x i32> %119 = shufflevector <4 x double> %118, <4 x double> %117, <4 x i32> %120 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %121 = shufflevector <2 x double> %105, <2 x double> poison, <4 x i32> %122 = shufflevector <4 x double> %121, <4 x double> %120, <4 x i32> %123 = fsub <4 x double> %119, %122 store <4 x double> %123, ptr %_3.i2.i.i.i.i.i.i.i306.1.1, align 8, !noalias !3349 %124 = fadd <4 x double> %107, %116 store <4 x double> %124, ptr %16, align 8, !noalias !3349 %data.i.i.i.i.i.i.i.i244.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %data.i.i.i.i.i.i254.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %125 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1 %w1.0.i.i.i.3 = load double, ptr %125, align 8, !noalias !3349, !noundef !3 %126 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %126, align 8, !noalias !3349, !noundef !3 %127 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_3.i2.i.i.i.i.i.i.i306.1.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %128 = load <4 x double>, ptr %data.i.i.i.i.i.i254.3, align 8, !noalias !3349 %129 = load <4 x double>, ptr %127, align 8, !noalias !3349 %130 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i.i.3, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %132, %129 %134 = shufflevector <4 x double> %133, <4 x double> poison, <4 x i32> %135 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> zeroinitializer %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %136, <4 x double> %129, <4 x double> %134) %138 = shufflevector <4 x double> %107, <4 x double> %128, <4 x i32> %139 = shufflevector <4 x double> %116, <4 x double> %137, <4 x i32> %140 = fsub <4 x double> %138, %139 store <4 x double> %140, ptr %_3.i.i.i.i141.1.1, align 8, !noalias !3349 %141 = fadd <4 x double> %128, %137 store <4 x double> %141, ptr %data.i.i.i.i.i.i.i.i244.3, align 8, !noalias !3349 %142 = fsub <4 x double> %128, %137 %143 = shufflevector <4 x double> %142, <4 x double> poison, <2 x i32> store <2 x double> %143, ptr %_3.i2.i.i.i.i.i.i.i306.1.3, align 8, !noalias !3349 %144 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %144, i32 8, <4 x i1> , <4 x double> poison), !noalias !3349 %145 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %145, i32 8, <4 x i1> , <4 x double> poison), !noalias !3349 %146 = fneg <4 x double> %wide.masked.gather12 %wide.vec13 = load <16 x double>, ptr %scratch.0, align 8, !noalias !3349 %strided.vec14 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %strided.vec15 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %strided.vec16 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec13, <16 x double> poison, <4 x i32> %147 = fmul <4 x double> %strided.vec17, %146 %148 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %strided.vec16, <4 x double> %147) %149 = fmul <4 x double> %wide.masked.gather12, %strided.vec16 %150 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %strided.vec17, <4 x double> %149) %151 = fadd <4 x double> %strided.vec14, %148 %152 = fadd <4 x double> %strided.vec15, %150 %interleaved.vec18 = shufflevector <4 x double> %151, <4 x double> %152, <8 x i32> store <8 x double> %interleaved.vec18, ptr %buf.0, align 8, !noalias !3349 %153 = fsub <4 x double> %strided.vec14, %148 %154 = fsub <4 x double> %strided.vec15, %150 %interleaved.vec19 = shufflevector <4 x double> %153, <4 x double> %154, <8 x i32> store <8 x double> %interleaved.vec19, ptr %0, align 8, !noalias !3349 %155 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %156 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !3349 %157 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !3349 %158 = fneg <4 x double> %wide.masked.gather12.1 %wide.vec13.1 = load <16 x double>, ptr %155, align 8, !noalias !3349 %strided.vec14.1 = shufflevector <16 x double> %wide.vec13.1, <16 x double> poison, <4 x i32> %strided.vec15.1 = shufflevector <16 x double> %wide.vec13.1, <16 x double> poison, <4 x i32> %strided.vec16.1 = shufflevector <16 x double> %wide.vec13.1, <16 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <16 x double> %wide.vec13.1, <16 x double> poison, <4 x i32> %159 = fmul <4 x double> %strided.vec17.1, %158 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %strided.vec16.1, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather12.1, %strided.vec16.1 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %strided.vec17.1, <4 x double> %161) %163 = fadd <4 x double> %strided.vec14.1, %160 %164 = fadd <4 x double> %strided.vec15.1, %162 %165 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec18.1 = shufflevector <4 x double> %163, <4 x double> %164, <8 x i32> store <8 x double> %interleaved.vec18.1, ptr %165, align 8, !noalias !3349 %166 = fsub <4 x double> %strided.vec14.1, %160 %167 = fsub <4 x double> %strided.vec15.1, %162 %168 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec19.1 = shufflevector <4 x double> %166, <4 x double> %167, <8 x i32> store <8 x double> %interleaved.vec19.1, ptr %168, align 8, !noalias !3349 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3349 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h4e6ff6a5642e2a92E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3357 store i64 512, ptr %n.i.i, align 8, !noalias !3357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3357 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3357 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3357 store ptr null, ptr %_16.i.i, align 8, !noalias !3357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3357 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3357 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3357 store ptr null, ptr %_24.i.i, align 8, !noalias !3357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3357 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3357 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3357 store ptr null, ptr %_32.i.i, align 8, !noalias !3357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3357 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3357 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8d4a6104e861229dE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3357 store ptr null, ptr %_40.i.i, align 8, !noalias !3357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8d4a6104e861229dE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3357 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 br label %bb9.i.i.i.i.i.i bb9.i.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8d4a6104e861229dE.exit.i" %iter.i.i.i.i.i.sroa.8.0152.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8d4a6104e861229dE.exit.i" ], [ %12, %bb9.i.i.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0152.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0152.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0152.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3357 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !3357 %4 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !3357 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !3357 %6 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0152.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3357 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3357 %7 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3357 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3357 %9 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0152.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3357 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3357 %10 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3357 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3357 %12 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0152.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3357 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3357 %13 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3357 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3357 %exitcond.not.i.3 = icmp eq i64 %12, 128 br i1 %exitcond.not.i.3, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i", label %bb9.i.i.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i": ; preds = %bb9.i.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3362) tail call void @llvm.experimental.noalias.scope.decl(metadata !3365) tail call void @llvm.experimental.noalias.scope.decl(metadata !3367) %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %18 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %18, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %19 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %19, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %20, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %21, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %22, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %23, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %24 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %25 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %26 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %30 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %31 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %33 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE.exit.i" ], [ %36, %bb38.us.i.i ] %36 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3365, !noalias !3370 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3365, !noalias !3370 %37 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %31, %37 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %30, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %38) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3365, !noalias !3370 %40 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %33, %40 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %41) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !3365, !noalias !3370 %43 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %35, %43 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %34, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %44) #23 %46 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %42 %47 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %42 %48 = fadd <4 x double> %39, %45 %49 = fsub <4 x double> %39, %45 %50 = bitcast <4 x double> %49 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %46, %48 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3362, !noalias !3371 %55 = fsub <4 x double> %47, %53 store <4 x double> %55, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3362, !noalias !3371 %56 = fsub <4 x double> %46, %48 store <4 x double> %56, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3362, !noalias !3371 %57 = fadd <4 x double> %47, %53 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3362, !noalias !3371 %exitcond.not.i.i = icmp eq i64 %36, 32 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i.1.i = load double, ptr %58, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %59 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %59, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %60 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i.1.i = load double, ptr %60, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %61, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i.1.i = load double, ptr %62, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %63, align 8, !alias.scope !3367, !noalias !3369, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %64 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %65 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %66 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %70 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %71 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> zeroinitializer %72 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %73 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> zeroinitializer %74 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %75 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %76, %bb38.us.i.1.i ] %76 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3365, !noalias !3370 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3365, !noalias !3370 %77 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %71, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %70, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %78) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3365, !noalias !3370 %80 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %73, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %81) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !3365, !noalias !3370 %83 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %75, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %74, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %84) #23 %86 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %82 %87 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %82 %88 = fadd <4 x double> %79, %85 %89 = fsub <4 x double> %79, %85 %90 = bitcast <4 x double> %89 to <4 x i64> %91 = xor <4 x i64> %90, %92 = bitcast <4 x i64> %91 to <4 x double> %93 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> %94 = fadd <4 x double> %86, %88 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3362, !noalias !3371 %95 = fsub <4 x double> %87, %93 store <4 x double> %95, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3362, !noalias !3371 %96 = fsub <4 x double> %86, %88 store <4 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3362, !noalias !3371 %97 = fadd <4 x double> %87, %93 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3362, !noalias !3371 %exitcond.not.i.1.i = icmp eq i64 %76, 32 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3372) tail call void @llvm.experimental.noalias.scope.decl(metadata !3375) tail call void @llvm.experimental.noalias.scope.decl(metadata !3377) br label %bb22.us.i37.i bb22.us.i37.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i71.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter.sroa.60.0707.us.i38.i = phi i64 [ %138, %bb36.bb20.loopexit_crit_edge.us.i71.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i = shl i64 %iter.sroa.60.0707.us.i38.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %start1.i.i.i.i.i.i.us.i41.i = shl i64 %iter.sroa.60.0707.us.i38.i, 5 %data.i.i.i.i.i.i.us.i42.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i41.i %data.i.i.i.i.i.i.i.i.us.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %data.i.i.i.i.i.i.i.i.i.i.us.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i39.i %start1.i.i.i.i.us.i46.i = shl i64 %iter.sroa.60.0707.us.i38.i, 4 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 1 %w1.0.us.i47.i = load double, ptr %98, align 8, !alias.scope !3377, !noalias !3379, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 1, i32 1 %w1.1.us.i48.i = load double, ptr %99, align 8, !alias.scope !3377, !noalias !3379, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 2 %w2.0.us.i49.i = load double, ptr %100, align 8, !alias.scope !3377, !noalias !3379, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 2, i32 1 %w2.1.us.i50.i = load double, ptr %101, align 8, !alias.scope !3377, !noalias !3379, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 3 %w3.0.us.i51.i = load double, ptr %102, align 8, !alias.scope !3377, !noalias !3379, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i46.i, i64 3, i32 1 %w3.1.us.i52.i = load double, ptr %103, align 8, !alias.scope !3377, !noalias !3379, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i53.i = insertelement <2 x double> poison, double %w1.0.us.i47.i, i64 0 %104 = insertelement <4 x double> poison, double %w1.1.us.i48.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i54.i = insertelement <2 x double> poison, double %w2.0.us.i49.i, i64 0 %105 = insertelement <4 x double> poison, double %w2.1.us.i50.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i55.i = insertelement <2 x double> poison, double %w3.0.us.i51.i, i64 0 %106 = insertelement <4 x double> poison, double %w3.1.us.i52.i, i64 0 %107 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 16 %108 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 8 %109 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 24 %110 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i53.i, <2 x double> poison, <4 x i32> zeroinitializer %111 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> zeroinitializer %112 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i54.i, <2 x double> poison, <4 x i32> zeroinitializer %113 = shufflevector <4 x double> %105, <4 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i55.i, <2 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <4 x double> %106, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i56.i bb38.us.i56.i: ; preds = %bb38.us.i56.i, %bb22.us.i37.i %iter5.sroa.50.0694.us.i57.i = phi i64 [ 0, %bb22.us.i37.i ], [ %116, %bb38.us.i56.i ] %116 = add nuw nsw i64 %iter5.sroa.50.0694.us.i57.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i40.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i45.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i60.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i44.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i43.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i42.i, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %108, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %107, i64 %iter5.sroa.50.0694.us.i57.i %_3.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %109, i64 %iter5.sroa.50.0694.us.i57.i %a.sroa.0.0.copyload.us.i66.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !3375, !noalias !3380 %_84.sroa.0.0.copyload.us.i67.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !3375, !noalias !3380 %117 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i67.i, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %111, %117 %119 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %_84.sroa.0.0.copyload.us.i67.i, <4 x double> %118) #23 %_86.sroa.0.0.copyload.us.i68.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !3375, !noalias !3380 %120 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i68.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %113, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %112, <4 x double> %_86.sroa.0.0.copyload.us.i68.i, <4 x double> %121) #23 %_88.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.us.i65.i, align 8, !alias.scope !3375, !noalias !3380 %123 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i69.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %115, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %114, <4 x double> %_88.sroa.0.0.copyload.us.i69.i, <4 x double> %124) #23 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i66.i, %122 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i66.i, %122 %128 = fadd <4 x double> %119, %125 %129 = fsub <4 x double> %119, %125 %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i58.i, align 8, !alias.scope !3372, !noalias !3381 %135 = fsub <4 x double> %127, %133 store <4 x double> %135, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i59.i, align 8, !alias.scope !3372, !noalias !3381 %136 = fsub <4 x double> %126, %128 store <4 x double> %136, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i60.i, align 8, !alias.scope !3372, !noalias !3381 %137 = fadd <4 x double> %127, %133 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !3372, !noalias !3381 %exitcond.not.i70.i = icmp eq i64 %116, 8 br i1 %exitcond.not.i70.i, label %bb36.bb20.loopexit_crit_edge.us.i71.i, label %bb38.us.i56.i bb36.bb20.loopexit_crit_edge.us.i71.i: ; preds = %bb38.us.i56.i %138 = add nuw nsw i64 %iter.sroa.60.0707.us.i38.i, 1 %exitcond153.not.i = icmp eq i64 %138, 8 br i1 %exitcond153.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i, label %bb22.us.i37.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i71.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3382) tail call void @llvm.experimental.noalias.scope.decl(metadata !3385) tail call void @llvm.experimental.noalias.scope.decl(metadata !3387) br label %bb22.us.i93.i bb22.us.i93.i: ; preds = %bb22.us.i93.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i %iter.sroa.60.0707.us.i94.i = phi i64 [ %199, %bb22.us.i93.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit73.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i = shl nuw i64 %iter.sroa.60.0707.us.i94.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %start1.i.i.i.i.i.i.us.i97.i = shl i64 %iter.sroa.60.0707.us.i94.i, 3 %data.i.i.i.i.i.i.us.i98.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i97.i %data.i.i.i.i.i.i.i.i.us.i99.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %data.i.i.i.i.i.i.i.i.i.i.us.i100.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i101.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i95.i %start1.i.i.i.i.us.i102.i = shl i64 %iter.sroa.60.0707.us.i94.i, 2 %139 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 1 %w1.0.us.i103.i = load double, ptr %139, align 8, !alias.scope !3387, !noalias !3389, !noundef !3 %140 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 1, i32 1 %w1.1.us.i104.i = load double, ptr %140, align 8, !alias.scope !3387, !noalias !3389, !noundef !3 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 2 %w2.0.us.i105.i = load double, ptr %141, align 8, !alias.scope !3387, !noalias !3389, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 2, i32 1 %w2.1.us.i106.i = load double, ptr %142, align 8, !alias.scope !3387, !noalias !3389, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 3 %w3.0.us.i107.i = load double, ptr %143, align 8, !alias.scope !3387, !noalias !3389, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i102.i, i64 3, i32 1 %w3.1.us.i108.i = load double, ptr %144, align 8, !alias.scope !3387, !noalias !3389, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i109.i = insertelement <2 x double> poison, double %w1.0.us.i103.i, i64 0 %145 = insertelement <4 x double> poison, double %w1.1.us.i104.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i110.i = insertelement <2 x double> poison, double %w2.0.us.i105.i, i64 0 %146 = insertelement <4 x double> poison, double %w2.1.us.i106.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i111.i = insertelement <2 x double> poison, double %w3.0.us.i107.i, i64 0 %147 = insertelement <4 x double> poison, double %w3.1.us.i108.i, i64 0 %148 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 4 %149 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 2 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 6 %151 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i109.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i110.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i111.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i122.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i98.i, align 8, !alias.scope !3385, !noalias !3390 %_84.sroa.0.0.copyload.us.i123.i = load <4 x double>, ptr %149, align 8, !alias.scope !3385, !noalias !3390 %157 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i123.i, <4 x double> poison, <4 x i32> %158 = fmul <4 x double> %152, %157 %159 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %_84.sroa.0.0.copyload.us.i123.i, <4 x double> %158) #23 %_86.sroa.0.0.copyload.us.i124.i = load <4 x double>, ptr %148, align 8, !alias.scope !3385, !noalias !3390 %160 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i124.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_86.sroa.0.0.copyload.us.i124.i, <4 x double> %161) #23 %_88.sroa.0.0.copyload.us.i125.i = load <4 x double>, ptr %150, align 8, !alias.scope !3385, !noalias !3390 %163 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i125.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %156, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_88.sroa.0.0.copyload.us.i125.i, <4 x double> %164) #23 %166 = fadd <4 x double> %a.sroa.0.0.copyload.us.i122.i, %162 %167 = fsub <4 x double> %a.sroa.0.0.copyload.us.i122.i, %162 %168 = fadd <4 x double> %159, %165 %169 = fsub <4 x double> %159, %165 %170 = bitcast <4 x double> %169 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %166, %168 store <4 x double> %174, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.i, align 8, !alias.scope !3382, !noalias !3391 %175 = fsub <4 x double> %167, %173 store <4 x double> %175, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i101.i, align 8, !alias.scope !3382, !noalias !3391 %176 = fsub <4 x double> %166, %168 store <4 x double> %176, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i100.i, align 8, !alias.scope !3382, !noalias !3391 %177 = fadd <4 x double> %167, %173 store <4 x double> %177, ptr %data.i.i.i.i.i.i.i.i.us.i99.i, align 8, !alias.scope !3382, !noalias !3391 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i96.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i115.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i101.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i116.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i100.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i99.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 3 %_3.i.i.i.i.i.i.us.i120.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 5 %_3.i.i.i.i.us.i121.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i98.i, i64 7 %a.sroa.0.0.copyload.us.i122.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !3385, !noalias !3390 %_84.sroa.0.0.copyload.us.i123.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i119.1.i, align 8, !alias.scope !3385, !noalias !3390 %178 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i123.1.i, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %152, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %_84.sroa.0.0.copyload.us.i123.1.i, <4 x double> %179) #23 %_86.sroa.0.0.copyload.us.i124.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i120.1.i, align 8, !alias.scope !3385, !noalias !3390 %181 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i124.1.i, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %154, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_86.sroa.0.0.copyload.us.i124.1.i, <4 x double> %182) #23 %_88.sroa.0.0.copyload.us.i125.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i121.1.i, align 8, !alias.scope !3385, !noalias !3390 %184 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i125.1.i, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %156, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_88.sroa.0.0.copyload.us.i125.1.i, <4 x double> %185) #23 %187 = fadd <4 x double> %a.sroa.0.0.copyload.us.i122.1.i, %183 %188 = fsub <4 x double> %a.sroa.0.0.copyload.us.i122.1.i, %183 %189 = fadd <4 x double> %180, %186 %190 = fsub <4 x double> %180, %186 %191 = bitcast <4 x double> %190 to <4 x i64> %192 = xor <4 x i64> %191, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %189 store <4 x double> %195, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i114.1.i, align 8, !alias.scope !3382, !noalias !3391 %196 = fsub <4 x double> %188, %194 store <4 x double> %196, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i115.1.i, align 8, !alias.scope !3382, !noalias !3391 %197 = fsub <4 x double> %187, %189 store <4 x double> %197, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i116.1.i, align 8, !alias.scope !3382, !noalias !3391 %198 = fadd <4 x double> %188, %194 store <4 x double> %198, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !3382, !noalias !3391 %199 = add nuw nsw i64 %iter.sroa.60.0707.us.i94.i, 1 %exitcond154.not.i = icmp eq i64 %199, 32 br i1 %exitcond154.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i, label %bb22.us.i93.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i: ; preds = %bb22.us.i93.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3392) tail call void @llvm.experimental.noalias.scope.decl(metadata !3395) tail call void @llvm.experimental.noalias.scope.decl(metadata !3397) %200 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %201 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %202 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 br label %bb15.i132.i bb15.i132.i: ; preds = %bb15.i132.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i %iter.sroa.50.0547.i.i = phi i64 [ %203, %bb15.i132.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit129.i ] %203 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %201, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %200, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %202, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3397, !noalias !3399 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3397, !noalias !3399 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3397, !noalias !3399 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3395, !noalias !3400 %204 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %204, align 8, !alias.scope !3395, !noalias !3400 %205 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %205, align 8, !alias.scope !3395, !noalias !3400 %206 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %206, align 8, !alias.scope !3395, !noalias !3400 %207 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %208 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %211, %209 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %208, <4 x double> %212) #23 %214 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %217, %215 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %216, <4 x double> %214, <4 x double> %218) #23 %220 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %223, %221 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %222, <4 x double> %220, <4 x double> %224) #23 %226 = fadd <4 x double> %207, %219 %227 = fsub <4 x double> %207, %219 %228 = fadd <4 x double> %213, %225 %229 = fsub <4 x double> %213, %225 %230 = bitcast <4 x double> %229 to <4 x i64> %231 = xor <4 x i64> %230, %232 = bitcast <4 x i64> %231 to <4 x double> %233 = shufflevector <4 x double> %232, <4 x double> poison, <4 x i32> %234 = fadd <4 x double> %226, %228 store <4 x double> %234, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3392, !noalias !3401 %235 = fsub <4 x double> %227, %233 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3392, !noalias !3401 %236 = fsub <4 x double> %226, %228 store <4 x double> %236, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3392, !noalias !3401 %237 = fadd <4 x double> %227, %233 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3392, !noalias !3401 %exitcond.not.i133.i = icmp eq i64 %203, 64 br i1 %exitcond.not.i133.i, label %_ZN4pulp3x862V39vectorize6__impl17h648745757e1b574aE.exit, label %bb15.i132.i _ZN4pulp3x862V39vectorize6__impl17h648745757e1b574aE.exit: ; preds = %bb15.i132.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3357 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h50a9ae5a437f3a2dE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3402 store i64 32, ptr %n.i, align 8, !noalias !3402 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3402 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3402 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3402 store ptr null, ptr %_16.i, align 8, !noalias !3402 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3402 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3402 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3402 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3402 store ptr null, ptr %_24.i, align 8, !noalias !3402 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3402 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3402 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3402 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3402 store ptr null, ptr %_32.i, align 8, !noalias !3402 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3402 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3402 store i64 %w.1, ptr %_34.i, align 8, !noalias !3402 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3402 store ptr null, ptr %_40.i, align 8, !noalias !3402 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3402 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %3, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %4, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %5, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %6, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %7, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %8, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %9 = fneg <4 x double> %wide.masked.gather1 %10 = fneg <4 x double> %wide.masked.gather3 %11 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !3405 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %2, align 8, !noalias !3405 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %0, align 8, !noalias !3405 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %1, align 8, !noalias !3405 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec, %strided.vec11 %13 = fadd <4 x double> %strided.vec6, %strided.vec12 %14 = fsub <4 x double> %strided.vec, %strided.vec11 %15 = fsub <4 x double> %strided.vec6, %strided.vec12 %16 = fadd <4 x double> %strided.vec8, %strided.vec14 %17 = fadd <4 x double> %strided.vec9, %strided.vec15 %18 = fsub <4 x double> %strided.vec8, %strided.vec14 %19 = fsub <4 x double> %strided.vec9, %strided.vec15 %20 = fadd <4 x double> %12, %16 %21 = fadd <4 x double> %13, %17 %22 = fadd <4 x double> %14, %19 %23 = fsub <4 x double> %15, %18 %24 = fmul <4 x double> %23, %9 %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %22, <4 x double> %24) %26 = fmul <4 x double> %wide.masked.gather1, %22 %27 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %23, <4 x double> %26) %28 = fsub <4 x double> %12, %16 %29 = fsub <4 x double> %13, %17 %30 = fmul <4 x double> %29, %10 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather3, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %14, %19 %35 = fadd <4 x double> %15, %18 %36 = fmul <4 x double> %35, %11 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather5, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %35, <4 x double> %38) %40 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> %41 = shufflevector <4 x double> %25, <4 x double> %27, <8 x i32> %42 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %43 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %44 = shufflevector <8 x double> %40, <8 x double> %41, <16 x i32> %45 = shufflevector <8 x double> %42, <8 x double> %43, <16 x i32> %interleaved.vec = shufflevector <16 x double> %44, <16 x double> %45, <32 x i32> store <32 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !3405 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %49 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %50 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !3405 %57 = fneg <4 x double> %wide.masked.gather1.1 %58 = fneg <4 x double> %wide.masked.gather3.1 %59 = fneg <4 x double> %wide.masked.gather5.1 %wide.vec.1 = load <8 x double>, ptr %46, align 8, !noalias !3405 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec6.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec7.1 = load <8 x double>, ptr %47, align 8, !noalias !3405 %strided.vec8.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %strided.vec9.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %wide.vec10.1 = load <8 x double>, ptr %48, align 8, !noalias !3405 %strided.vec11.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %strided.vec12.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %wide.vec13.1 = load <8 x double>, ptr %49, align 8, !noalias !3405 %strided.vec14.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %strided.vec15.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %60 = fadd <4 x double> %strided.vec.1, %strided.vec11.1 %61 = fadd <4 x double> %strided.vec6.1, %strided.vec12.1 %62 = fsub <4 x double> %strided.vec.1, %strided.vec11.1 %63 = fsub <4 x double> %strided.vec6.1, %strided.vec12.1 %64 = fadd <4 x double> %strided.vec8.1, %strided.vec14.1 %65 = fadd <4 x double> %strided.vec9.1, %strided.vec15.1 %66 = fsub <4 x double> %strided.vec8.1, %strided.vec14.1 %67 = fsub <4 x double> %strided.vec9.1, %strided.vec15.1 %68 = fadd <4 x double> %60, %64 %69 = fadd <4 x double> %61, %65 %70 = fadd <4 x double> %62, %67 %71 = fsub <4 x double> %63, %66 %72 = fmul <4 x double> %71, %57 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %70, <4 x double> %72) %74 = fmul <4 x double> %wide.masked.gather1.1, %70 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %71, <4 x double> %74) %76 = fsub <4 x double> %60, %64 %77 = fsub <4 x double> %61, %65 %78 = fmul <4 x double> %77, %58 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %76, <4 x double> %78) %80 = fmul <4 x double> %wide.masked.gather3.1, %76 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %77, <4 x double> %80) %82 = fsub <4 x double> %62, %67 %83 = fadd <4 x double> %63, %66 %84 = fmul <4 x double> %83, %59 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %82, <4 x double> %84) %86 = fmul <4 x double> %wide.masked.gather5.1, %82 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %83, <4 x double> %86) %88 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> %89 = shufflevector <4 x double> %73, <4 x double> %75, <8 x i32> %90 = shufflevector <4 x double> %79, <4 x double> %81, <8 x i32> %91 = shufflevector <4 x double> %85, <4 x double> %87, <8 x i32> %92 = shufflevector <8 x double> %88, <8 x double> %89, <16 x i32> %93 = shufflevector <8 x double> %90, <8 x double> %91, <16 x i32> %interleaved.vec.1 = shufflevector <16 x double> %92, <16 x double> %93, <32 x i32> store <32 x double> %interleaved.vec.1, ptr %50, align 8, !noalias !3405 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %95 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %96 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i79 = load double, ptr %97, align 8, !noalias !3402, !noundef !3 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i80 = load double, ptr %98, align 8, !noalias !3402, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i81 = load double, ptr %99, align 8, !noalias !3402, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i82 = load double, ptr %100, align 8, !noalias !3402, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i83 = load double, ptr %101, align 8, !noalias !3402, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i84 = load double, ptr %102, align 8, !noalias !3402, !noundef !3 %103 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %104 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %105 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %_6.i39.i.i.i143 = fneg double %w1.1.i.i.i80 %_6.i36.i.i.i148 = fneg double %w2.1.i.i.i82 %_6.i.i.i.i153 = fneg double %w3.1.i.i.i84 %106 = load <2 x double>, ptr %scratch.0, align 8, !noalias !3402 %107 = load <2 x double>, ptr %95, align 8, !noalias !3402 %108 = load <2 x double>, ptr %96, align 8, !noalias !3402 %109 = load <2 x double>, ptr %94, align 8, !noalias !3402 %110 = fadd <2 x double> %106, %108 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %110, %111 store <2 x double> %112, ptr %buf.0, align 8, !noalias !3402 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.i.i.i.i654.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %113 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1, align 8, !noalias !3402 %114 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1, align 8, !noalias !3402 %115 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1, align 8, !noalias !3402 %116 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1, align 8, !noalias !3402 %117 = fadd <2 x double> %113, %115 %118 = fadd <2 x double> %114, %116 %119 = fadd <2 x double> %117, %118 store <2 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.i.i654.1, align 8, !noalias !3402 %120 = fsub <2 x double> %106, %108 %121 = fsub <2 x double> %113, %115 %122 = shufflevector <2 x double> %120, <2 x double> %121, <4 x i32> %123 = shufflevector <2 x double> %107, <2 x double> %114, <4 x i32> %124 = shufflevector <2 x double> %109, <2 x double> %116, <4 x i32> %125 = fsub <4 x double> %123, %124 %126 = fadd <4 x double> %122, %125 %127 = fsub <4 x double> %122, %125 %128 = shufflevector <4 x double> %126, <4 x double> %127, <4 x i32> %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = insertelement <4 x double> poison, double %_6.i39.i.i.i143, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i.i80, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %129, %132 %134 = insertelement <4 x double> poison, double %w1.0.i.i.i79, i64 0 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %128, <4 x double> %133) store <4 x double> %136, ptr %104, align 8, !noalias !3402 %137 = fsub <2 x double> %110, %111 %138 = fsub <2 x double> %117, %118 %139 = shufflevector <2 x double> %137, <2 x double> %138, <4 x i32> %140 = shufflevector <2 x double> %137, <2 x double> %138, <4 x i32> %141 = insertelement <4 x double> poison, double %_6.i36.i.i.i148, i64 0 %142 = insertelement <4 x double> %141, double %w2.1.i.i.i82, i64 1 %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %140, %143 %145 = insertelement <4 x double> poison, double %w2.0.i.i.i81, i64 0 %146 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> zeroinitializer %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %146, <4 x double> %139, <4 x double> %144) store <4 x double> %147, ptr %103, align 8, !noalias !3402 %148 = shufflevector <4 x double> %127, <4 x double> %126, <4 x i32> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = insertelement <4 x double> poison, double %_6.i.i.i.i153, i64 0 %151 = insertelement <4 x double> %150, double %w3.1.i.i.i84, i64 1 %152 = shufflevector <4 x double> %151, <4 x double> poison, <4 x i32> %153 = fmul <4 x double> %149, %152 %154 = insertelement <4 x double> poison, double %w3.0.i.i.i83, i64 0 %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %156 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %155, <4 x double> %148, <4 x double> %153) store <4 x double> %156, ptr %105, align 8, !noalias !3402 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i.i.i.i.i.i.i.i.i.i654.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i657.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i660.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i.i.i.i663.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %157 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2, align 8, !noalias !3402 %158 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2, align 8, !noalias !3402 %159 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2, align 8, !noalias !3402 %160 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2, align 8, !noalias !3402 %161 = fadd <2 x double> %157, %159 %162 = fadd <2 x double> %158, %160 %163 = fadd <2 x double> %161, %162 store <2 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i654.2, align 8, !noalias !3402 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.i.i.i.i654.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %164 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3, align 8, !noalias !3402 %165 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3, align 8, !noalias !3402 %166 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3, align 8, !noalias !3402 %167 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3, align 8, !noalias !3402 %168 = fadd <2 x double> %164, %166 %169 = fadd <2 x double> %165, %167 %170 = fadd <2 x double> %168, %169 store <2 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i654.3, align 8, !noalias !3402 %171 = fsub <2 x double> %157, %159 %172 = fsub <2 x double> %164, %166 %173 = shufflevector <2 x double> %171, <2 x double> %172, <4 x i32> %174 = shufflevector <2 x double> %158, <2 x double> %165, <4 x i32> %175 = shufflevector <2 x double> %160, <2 x double> %167, <4 x i32> %176 = fsub <4 x double> %174, %175 %177 = fadd <4 x double> %173, %176 %178 = fsub <4 x double> %173, %176 %179 = shufflevector <4 x double> %177, <4 x double> %178, <4 x i32> %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %180, %132 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %179, <4 x double> %181) store <4 x double> %182, ptr %_3.i.i.i.i.i.i.i.i657.2, align 8, !noalias !3402 %183 = fsub <2 x double> %161, %162 %184 = fsub <2 x double> %168, %169 %185 = shufflevector <2 x double> %183, <2 x double> %184, <4 x i32> %186 = shufflevector <2 x double> %183, <2 x double> %184, <4 x i32> %187 = fmul <4 x double> %186, %143 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %146, <4 x double> %185, <4 x double> %187) store <4 x double> %188, ptr %_3.i.i.i.i.i.i660.2, align 8, !noalias !3402 %189 = shufflevector <4 x double> %178, <4 x double> %177, <4 x i32> %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %190, %152 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %155, <4 x double> %189, <4 x double> %191) store <4 x double> %192, ptr %_3.i.i.i.i663.2, align 8, !noalias !3402 %data.i.i.i.i.i.i.i.i.i.i.i.i516.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %data.i5.i.i.i.i.i.i.i.i.i.i.i521.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %data.i.i.i.i.i.i.i.i.i.i526.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %data.i.i.i.i.i.i.i.i531.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %data.i.i.i.i.i.i535.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i.i79.1 = load double, ptr %193, align 8, !noalias !3402, !noundef !3 %194 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i.i80.1 = load double, ptr %194, align 8, !noalias !3402, !noundef !3 %195 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2 %w2.0.i.i.i81.1 = load double, ptr %195, align 8, !noalias !3402, !noundef !3 %196 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2, i32 1 %w2.1.i.i.i82.1 = load double, ptr %196, align 8, !noalias !3402, !noundef !3 %197 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3 %w3.0.i.i.i83.1 = load double, ptr %197, align 8, !noalias !3402, !noundef !3 %198 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3, i32 1 %w3.1.i.i.i84.1 = load double, ptr %198, align 8, !noalias !3402, !noundef !3 %199 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %200 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %201 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %_6.i39.i.i.i143.1 = fneg double %w1.1.i.i.i80.1 %_6.i36.i.i.i148.1 = fneg double %w2.1.i.i.i82.1 %_6.i.i.i.i153.1 = fneg double %w3.1.i.i.i84.1 %202 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i516.1, align 8, !noalias !3402 %203 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i521.1, align 8, !noalias !3402 %204 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i526.1, align 8, !noalias !3402 %205 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i531.1, align 8, !noalias !3402 %206 = fadd <2 x double> %202, %204 %207 = fadd <2 x double> %203, %205 %208 = fadd <2 x double> %206, %207 store <2 x double> %208, ptr %data.i.i.i.i.i.i535.1, align 8, !noalias !3402 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.i.i.i.i654.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 17 %209 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1.1, align 8, !noalias !3402 %210 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1.1, align 8, !noalias !3402 %211 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1.1, align 8, !noalias !3402 %212 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1.1, align 8, !noalias !3402 %213 = fadd <2 x double> %209, %211 %214 = fadd <2 x double> %210, %212 %215 = fadd <2 x double> %213, %214 store <2 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i654.1.1, align 8, !noalias !3402 %216 = fsub <2 x double> %202, %204 %217 = fsub <2 x double> %209, %211 %218 = shufflevector <2 x double> %216, <2 x double> %217, <4 x i32> %219 = shufflevector <2 x double> %203, <2 x double> %210, <4 x i32> %220 = shufflevector <2 x double> %205, <2 x double> %212, <4 x i32> %221 = fsub <4 x double> %219, %220 %222 = fadd <4 x double> %218, %221 %223 = fsub <4 x double> %218, %221 %224 = shufflevector <4 x double> %222, <4 x double> %223, <4 x i32> %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = insertelement <4 x double> poison, double %_6.i39.i.i.i143.1, i64 0 %227 = insertelement <4 x double> %226, double %w1.1.i.i.i80.1, i64 1 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %225, %228 %230 = insertelement <4 x double> poison, double %w1.0.i.i.i79.1, i64 0 %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> zeroinitializer %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %231, <4 x double> %224, <4 x double> %229) store <4 x double> %232, ptr %200, align 8, !noalias !3402 %233 = fsub <2 x double> %206, %207 %234 = fsub <2 x double> %213, %214 %235 = shufflevector <2 x double> %233, <2 x double> %234, <4 x i32> %236 = shufflevector <2 x double> %233, <2 x double> %234, <4 x i32> %237 = insertelement <4 x double> poison, double %_6.i36.i.i.i148.1, i64 0 %238 = insertelement <4 x double> %237, double %w2.1.i.i.i82.1, i64 1 %239 = shufflevector <4 x double> %238, <4 x double> poison, <4 x i32> %240 = fmul <4 x double> %236, %239 %241 = insertelement <4 x double> poison, double %w2.0.i.i.i81.1, i64 0 %242 = shufflevector <4 x double> %241, <4 x double> poison, <4 x i32> zeroinitializer %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %242, <4 x double> %235, <4 x double> %240) store <4 x double> %243, ptr %199, align 8, !noalias !3402 %244 = shufflevector <4 x double> %223, <4 x double> %222, <4 x i32> %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = insertelement <4 x double> poison, double %_6.i.i.i.i153.1, i64 0 %247 = insertelement <4 x double> %246, double %w3.1.i.i.i84.1, i64 1 %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %245, %248 %250 = insertelement <4 x double> poison, double %w3.0.i.i.i83.1, i64 0 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> zeroinitializer %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %244, <4 x double> %249) store <4 x double> %252, ptr %201, align 8, !noalias !3402 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i.i.i.i.i654.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i.i.i.i.i.i.i.i657.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i.i.i660.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %_3.i.i.i.i663.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %253 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2.1, align 8, !noalias !3402 %254 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2.1, align 8, !noalias !3402 %255 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2.1, align 8, !noalias !3402 %256 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2.1, align 8, !noalias !3402 %257 = fadd <2 x double> %253, %255 %258 = fadd <2 x double> %254, %256 %259 = fadd <2 x double> %257, %258 store <2 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.i.i654.2.1, align 8, !noalias !3402 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.i.i.i.i654.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 19 %260 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3.1, align 8, !noalias !3402 %261 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3.1, align 8, !noalias !3402 %262 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3.1, align 8, !noalias !3402 %263 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3.1, align 8, !noalias !3402 %264 = fadd <2 x double> %260, %262 %265 = fadd <2 x double> %261, %263 %266 = fadd <2 x double> %264, %265 store <2 x double> %266, ptr %_3.i.i.i.i.i.i.i.i.i.i654.3.1, align 8, !noalias !3402 %267 = fsub <2 x double> %253, %255 %268 = fsub <2 x double> %260, %262 %269 = shufflevector <2 x double> %267, <2 x double> %268, <4 x i32> %270 = shufflevector <2 x double> %254, <2 x double> %261, <4 x i32> %271 = shufflevector <2 x double> %256, <2 x double> %263, <4 x i32> %272 = fsub <4 x double> %270, %271 %273 = fadd <4 x double> %269, %272 %274 = fsub <4 x double> %269, %272 %275 = shufflevector <4 x double> %273, <4 x double> %274, <4 x i32> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = fmul <4 x double> %276, %228 %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %231, <4 x double> %275, <4 x double> %277) store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i657.2.1, align 8, !noalias !3402 %279 = fsub <2 x double> %257, %258 %280 = fsub <2 x double> %264, %265 %281 = shufflevector <2 x double> %279, <2 x double> %280, <4 x i32> %282 = shufflevector <2 x double> %279, <2 x double> %280, <4 x i32> %283 = fmul <4 x double> %282, %239 %284 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %242, <4 x double> %281, <4 x double> %283) store <4 x double> %284, ptr %_3.i.i.i.i.i.i660.2.1, align 8, !noalias !3402 %285 = shufflevector <4 x double> %274, <4 x double> %273, <4 x i32> %286 = shufflevector <4 x double> %285, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %286, %248 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %285, <4 x double> %287) store <4 x double> %288, ptr %_3.i.i.i.i663.2.1, align 8, !noalias !3402 %wide.vec22 = load <8 x double>, ptr %buf.0, align 8, !noalias !3402 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %wide.vec25 = load <8 x double>, ptr %0, align 8, !noalias !3402 %strided.vec26 = shufflevector <8 x double> %wide.vec25, <8 x double> poison, <4 x i32> %strided.vec27 = shufflevector <8 x double> %wide.vec25, <8 x double> poison, <4 x i32> %289 = fadd <4 x double> %strided.vec23, %strided.vec26 %290 = fadd <4 x double> %strided.vec24, %strided.vec27 %291 = fsub <4 x double> %strided.vec23, %strided.vec26 %292 = fsub <4 x double> %strided.vec24, %strided.vec27 %interleaved.vec28 = shufflevector <4 x double> %289, <4 x double> %290, <8 x i32> store <8 x double> %interleaved.vec28, ptr %buf.0, align 8, !noalias !3402 %interleaved.vec29 = shufflevector <4 x double> %291, <4 x double> %292, <8 x i32> store <8 x double> %interleaved.vec29, ptr %0, align 8, !noalias !3402 %293 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %294 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec22.1 = load <8 x double>, ptr %293, align 8, !noalias !3402 %strided.vec23.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %strided.vec24.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %wide.vec25.1 = load <8 x double>, ptr %294, align 8, !noalias !3402 %strided.vec26.1 = shufflevector <8 x double> %wide.vec25.1, <8 x double> poison, <4 x i32> %strided.vec27.1 = shufflevector <8 x double> %wide.vec25.1, <8 x double> poison, <4 x i32> %295 = fadd <4 x double> %strided.vec23.1, %strided.vec26.1 %296 = fadd <4 x double> %strided.vec24.1, %strided.vec27.1 %297 = fsub <4 x double> %strided.vec23.1, %strided.vec26.1 %298 = fsub <4 x double> %strided.vec24.1, %strided.vec27.1 %interleaved.vec28.1 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec28.1, ptr %293, align 8, !noalias !3402 %interleaved.vec29.1 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec29.1, ptr %294, align 8, !noalias !3402 %299 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %300 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec22.2 = load <8 x double>, ptr %299, align 8, !noalias !3402 %strided.vec23.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %strided.vec24.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %wide.vec25.2 = load <8 x double>, ptr %300, align 8, !noalias !3402 %strided.vec26.2 = shufflevector <8 x double> %wide.vec25.2, <8 x double> poison, <4 x i32> %strided.vec27.2 = shufflevector <8 x double> %wide.vec25.2, <8 x double> poison, <4 x i32> %301 = fadd <4 x double> %strided.vec23.2, %strided.vec26.2 %302 = fadd <4 x double> %strided.vec24.2, %strided.vec27.2 %303 = fsub <4 x double> %strided.vec23.2, %strided.vec26.2 %304 = fsub <4 x double> %strided.vec24.2, %strided.vec27.2 %interleaved.vec28.2 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec28.2, ptr %299, align 8, !noalias !3402 %interleaved.vec29.2 = shufflevector <4 x double> %303, <4 x double> %304, <8 x i32> store <8 x double> %interleaved.vec29.2, ptr %300, align 8, !noalias !3402 %305 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %306 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec22.3 = load <8 x double>, ptr %305, align 8, !noalias !3402 %strided.vec23.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %strided.vec24.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %wide.vec25.3 = load <8 x double>, ptr %306, align 8, !noalias !3402 %strided.vec26.3 = shufflevector <8 x double> %wide.vec25.3, <8 x double> poison, <4 x i32> %strided.vec27.3 = shufflevector <8 x double> %wide.vec25.3, <8 x double> poison, <4 x i32> %307 = fadd <4 x double> %strided.vec23.3, %strided.vec26.3 %308 = fadd <4 x double> %strided.vec24.3, %strided.vec27.3 %309 = fsub <4 x double> %strided.vec23.3, %strided.vec26.3 %310 = fsub <4 x double> %strided.vec24.3, %strided.vec27.3 %interleaved.vec28.3 = shufflevector <4 x double> %307, <4 x double> %308, <8 x i32> store <8 x double> %interleaved.vec28.3, ptr %305, align 8, !noalias !3402 %interleaved.vec29.3 = shufflevector <4 x double> %309, <4 x double> %310, <8 x i32> store <8 x double> %interleaved.vec29.3, ptr %306, align 8, !noalias !3402 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3402 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h515406502e264d23E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h1da478b8dd7c283aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5233fab38f5b6026E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hbb167d7c96c7b6b4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h53d608e8f500e5a4E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h38bb5fa24de19d0aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5407c980bf1b1d78E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h86f6c72c7c4c0150E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h54eb29410ff93eb3E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3408 store i64 128, ptr %n.i, align 8, !noalias !3408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3408 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3408 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3408 store ptr null, ptr %_16.i, align 8, !noalias !3408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3408 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3408 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3408 store ptr null, ptr %_24.i, align 8, !noalias !3408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3408 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3408 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3408 store ptr null, ptr %_32.i, align 8, !noalias !3408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3408 store i64 %w.1, ptr %_34.i, align 8, !noalias !3408 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3408 store ptr null, ptr %_40.i, align 8, !noalias !3408 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3408 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 br label %vector.body vector.body: ; preds = %vector.body, %bb18.i.i.i.i.preheader %index = phi i64 [ 0, %bb18.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %3 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %wide.vec = load <8 x double>, ptr %2, align 8, !noalias !3411 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %3, align 8, !noalias !3411 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %4 = fadd <4 x double> %strided.vec, %strided.vec3 %5 = fadd <4 x double> %strided.vec1, %strided.vec4 %6 = fsub <4 x double> %strided.vec, %strided.vec3 %7 = fsub <4 x double> %strided.vec1, %strided.vec4 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !3411 %9 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec5 = shufflevector <4 x double> %6, <4 x double> %7, <8 x i32> store <8 x double> %interleaved.vec5, ptr %9, align 8, !noalias !3411 %index.next = or disjoint i64 %index, 4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %11 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %10, align 8, !noalias !3411 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %11, align 8, !noalias !3411 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %13 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %14 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %15 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next %interleaved.vec.1 = shufflevector <4 x double> %12, <4 x double> %13, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %16, align 8, !noalias !3411 %17 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %interleaved.vec5.1 = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %17, align 8, !noalias !3411 %index.next.1 = add nuw nsw i64 %index, 8 %18 = icmp eq i64 %index.next.1, 64 br i1 %18, label %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, label %vector.body, !llvm.loop !3414 _ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit: ; preds = %vector.body %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i91.i = load double, ptr %22, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i90.i = load double, ptr %23, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i138.i = fneg double %w3.1.i.i.i91.i %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i89.i = load double, ptr %24, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i88.i = load double, ptr %25, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i133.i = fneg double %w2.1.i.i.i89.i %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i87.i = load double, ptr %26, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i86.i = load double, ptr %27, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i128.i = fneg double %w1.1.i.i.i87.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec12 = load <8 x double>, ptr %scratch.0, align 8, !noalias !3408 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %29, align 8, !noalias !3408 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %30 = fmul <4 x double> %strided.vec17, %broadcast.splat %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %30) %32 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %32) %wide.vec22 = load <8 x double>, ptr %21, align 8, !noalias !3408 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %34 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %35 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %34) %36 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %36) %wide.vec31 = load <8 x double>, ptr %28, align 8, !noalias !3408 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %38 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %38) %40 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %40) %42 = fadd <4 x double> %strided.vec13, %35 %43 = fadd <4 x double> %strided.vec14, %37 %44 = fsub <4 x double> %strided.vec13, %35 %45 = fsub <4 x double> %strided.vec14, %37 %46 = fadd <4 x double> %31, %39 %47 = fadd <4 x double> %33, %41 %48 = fsub <4 x double> %31, %39 %49 = fsub <4 x double> %33, %41 %50 = fadd <4 x double> %42, %46 %51 = fadd <4 x double> %43, %47 %interleaved.vec40 = shufflevector <4 x double> %50, <4 x double> %51, <8 x i32> store <8 x double> %interleaved.vec40, ptr %buf.0, align 8, !noalias !3408 %52 = fsub <4 x double> %44, %49 %53 = fadd <4 x double> %45, %48 %interleaved.vec41 = shufflevector <4 x double> %52, <4 x double> %53, <8 x i32> store <8 x double> %interleaved.vec41, ptr %19, align 8, !noalias !3408 %54 = fsub <4 x double> %42, %46 %55 = fsub <4 x double> %43, %47 %interleaved.vec42 = shufflevector <4 x double> %54, <4 x double> %55, <8 x i32> store <8 x double> %interleaved.vec42, ptr %1, align 8, !noalias !3408 %56 = fadd <4 x double> %44, %49 %57 = fsub <4 x double> %45, %48 %interleaved.vec43 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec43, ptr %20, align 8, !noalias !3408 %58 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec12.1 = load <8 x double>, ptr %58, align 8, !noalias !3408 %strided.vec13.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %strided.vec14.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %wide.vec15.1 = load <8 x double>, ptr %59, align 8, !noalias !3408 %strided.vec16.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec17.1, %broadcast.splat %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.1, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat21, %strided.vec16.1 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.1, <4 x double> %64) %wide.vec22.1 = load <8 x double>, ptr %60, align 8, !noalias !3408 %strided.vec23.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %strided.vec24.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec24.1, %broadcast.splat26 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23.1, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat30, %strided.vec23.1 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24.1, <4 x double> %68) %wide.vec31.1 = load <8 x double>, ptr %61, align 8, !noalias !3408 %strided.vec32.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %strided.vec33.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec33.1, %broadcast.splat35 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32.1, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat39, %strided.vec32.1 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33.1, <4 x double> %72) %74 = fadd <4 x double> %strided.vec13.1, %67 %75 = fadd <4 x double> %strided.vec14.1, %69 %76 = fsub <4 x double> %strided.vec13.1, %67 %77 = fsub <4 x double> %strided.vec14.1, %69 %78 = fadd <4 x double> %63, %71 %79 = fadd <4 x double> %65, %73 %80 = fsub <4 x double> %63, %71 %81 = fsub <4 x double> %65, %73 %82 = fadd <4 x double> %74, %78 %83 = fadd <4 x double> %75, %79 %84 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec40.1 = shufflevector <4 x double> %82, <4 x double> %83, <8 x i32> store <8 x double> %interleaved.vec40.1, ptr %84, align 8, !noalias !3408 %85 = fsub <4 x double> %76, %81 %86 = fadd <4 x double> %77, %80 %87 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec41.1 = shufflevector <4 x double> %85, <4 x double> %86, <8 x i32> store <8 x double> %interleaved.vec41.1, ptr %87, align 8, !noalias !3408 %88 = fsub <4 x double> %74, %78 %89 = fsub <4 x double> %75, %79 %90 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec42.1 = shufflevector <4 x double> %88, <4 x double> %89, <8 x i32> store <8 x double> %interleaved.vec42.1, ptr %90, align 8, !noalias !3408 %91 = fadd <4 x double> %76, %81 %92 = fsub <4 x double> %77, %80 %93 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec43.1 = shufflevector <4 x double> %91, <4 x double> %92, <8 x i32> store <8 x double> %interleaved.vec43.1, ptr %93, align 8, !noalias !3408 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %95 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %96 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %97 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec12.2 = load <8 x double>, ptr %94, align 8, !noalias !3408 %strided.vec13.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %strided.vec14.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %wide.vec15.2 = load <8 x double>, ptr %95, align 8, !noalias !3408 %strided.vec16.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %strided.vec17.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %98 = fmul <4 x double> %strided.vec17.2, %broadcast.splat %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.2, <4 x double> %98) %100 = fmul <4 x double> %broadcast.splat21, %strided.vec16.2 %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.2, <4 x double> %100) %wide.vec22.2 = load <8 x double>, ptr %96, align 8, !noalias !3408 %strided.vec23.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %strided.vec24.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %102 = fmul <4 x double> %strided.vec24.2, %broadcast.splat26 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23.2, <4 x double> %102) %104 = fmul <4 x double> %broadcast.splat30, %strided.vec23.2 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24.2, <4 x double> %104) %wide.vec31.2 = load <8 x double>, ptr %97, align 8, !noalias !3408 %strided.vec32.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %strided.vec33.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %106 = fmul <4 x double> %strided.vec33.2, %broadcast.splat35 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32.2, <4 x double> %106) %108 = fmul <4 x double> %broadcast.splat39, %strided.vec32.2 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33.2, <4 x double> %108) %110 = fadd <4 x double> %strided.vec13.2, %103 %111 = fadd <4 x double> %strided.vec14.2, %105 %112 = fsub <4 x double> %strided.vec13.2, %103 %113 = fsub <4 x double> %strided.vec14.2, %105 %114 = fadd <4 x double> %99, %107 %115 = fadd <4 x double> %101, %109 %116 = fsub <4 x double> %99, %107 %117 = fsub <4 x double> %101, %109 %118 = fadd <4 x double> %110, %114 %119 = fadd <4 x double> %111, %115 %120 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec40.2 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> store <8 x double> %interleaved.vec40.2, ptr %120, align 8, !noalias !3408 %121 = fsub <4 x double> %112, %117 %122 = fadd <4 x double> %113, %116 %123 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec41.2 = shufflevector <4 x double> %121, <4 x double> %122, <8 x i32> store <8 x double> %interleaved.vec41.2, ptr %123, align 8, !noalias !3408 %124 = fsub <4 x double> %110, %114 %125 = fsub <4 x double> %111, %115 %126 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec42.2 = shufflevector <4 x double> %124, <4 x double> %125, <8 x i32> store <8 x double> %interleaved.vec42.2, ptr %126, align 8, !noalias !3408 %127 = fadd <4 x double> %112, %117 %128 = fsub <4 x double> %113, %116 %129 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec43.2 = shufflevector <4 x double> %127, <4 x double> %128, <8 x i32> store <8 x double> %interleaved.vec43.2, ptr %129, align 8, !noalias !3408 %130 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %131 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %132 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %133 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec12.3 = load <8 x double>, ptr %130, align 8, !noalias !3408 %strided.vec13.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %strided.vec14.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %wide.vec15.3 = load <8 x double>, ptr %131, align 8, !noalias !3408 %strided.vec16.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %strided.vec17.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %134 = fmul <4 x double> %strided.vec17.3, %broadcast.splat %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.3, <4 x double> %134) %136 = fmul <4 x double> %broadcast.splat21, %strided.vec16.3 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.3, <4 x double> %136) %wide.vec22.3 = load <8 x double>, ptr %132, align 8, !noalias !3408 %strided.vec23.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %strided.vec24.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %138 = fmul <4 x double> %strided.vec24.3, %broadcast.splat26 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23.3, <4 x double> %138) %140 = fmul <4 x double> %broadcast.splat30, %strided.vec23.3 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24.3, <4 x double> %140) %wide.vec31.3 = load <8 x double>, ptr %133, align 8, !noalias !3408 %strided.vec32.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %strided.vec33.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %142 = fmul <4 x double> %strided.vec33.3, %broadcast.splat35 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32.3, <4 x double> %142) %144 = fmul <4 x double> %broadcast.splat39, %strided.vec32.3 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33.3, <4 x double> %144) %146 = fadd <4 x double> %strided.vec13.3, %139 %147 = fadd <4 x double> %strided.vec14.3, %141 %148 = fsub <4 x double> %strided.vec13.3, %139 %149 = fsub <4 x double> %strided.vec14.3, %141 %150 = fadd <4 x double> %135, %143 %151 = fadd <4 x double> %137, %145 %152 = fsub <4 x double> %135, %143 %153 = fsub <4 x double> %137, %145 %154 = fadd <4 x double> %146, %150 %155 = fadd <4 x double> %147, %151 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec40.3 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> store <8 x double> %interleaved.vec40.3, ptr %156, align 8, !noalias !3408 %157 = fsub <4 x double> %148, %153 %158 = fadd <4 x double> %149, %152 %159 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec41.3 = shufflevector <4 x double> %157, <4 x double> %158, <8 x i32> store <8 x double> %interleaved.vec41.3, ptr %159, align 8, !noalias !3408 %160 = fsub <4 x double> %146, %150 %161 = fsub <4 x double> %147, %151 %162 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec42.3 = shufflevector <4 x double> %160, <4 x double> %161, <8 x i32> store <8 x double> %interleaved.vec42.3, ptr %162, align 8, !noalias !3408 %163 = fadd <4 x double> %148, %153 %164 = fsub <4 x double> %149, %152 %165 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec43.3 = shufflevector <4 x double> %163, <4 x double> %164, <8 x i32> store <8 x double> %interleaved.vec43.3, ptr %165, align 8, !noalias !3408 %166 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.i.i.i91.i.1 = load double, ptr %166, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert79 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %167 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.i.i.i90.i.1 = load double, ptr %167, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert77 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i.1, i64 0 %broadcast.splat78 = shufflevector <4 x double> %broadcast.splatinsert77, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i138.i.1 = fneg double %w3.1.i.i.i91.i.1 %broadcast.splatinsert75 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i.1, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %168 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.i.i.i89.i.1 = load double, ptr %168, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert70 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i.1, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %169 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.i.i.i88.i.1 = load double, ptr %169, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i.1, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i133.i.1 = fneg double %w2.1.i.i.i89.i.1 %broadcast.splatinsert66 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i.1, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %170 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i87.i.1 = load double, ptr %170, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %171 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i86.i.1 = load double, ptr %171, align 8, !noalias !3408, !noundef !3 %broadcast.splatinsert59 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i128.i.1 = fneg double %w1.1.i.i.i87.i.1 %broadcast.splatinsert57 = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i.1, i64 0 %broadcast.splat58 = shufflevector <4 x double> %broadcast.splatinsert57, <4 x double> poison, <4 x i32> zeroinitializer %172 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %173 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %174 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec51 = load <8 x double>, ptr %0, align 8, !noalias !3408 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %173, align 8, !noalias !3408 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %175 = fmul <4 x double> %strided.vec56, %broadcast.splat58 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55, <4 x double> %175) %177 = fmul <4 x double> %broadcast.splat62, %strided.vec55 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56, <4 x double> %177) %wide.vec63 = load <8 x double>, ptr %174, align 8, !noalias !3408 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %179 = fmul <4 x double> %strided.vec65, %broadcast.splat67 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64, <4 x double> %179) %181 = fmul <4 x double> %broadcast.splat71, %strided.vec64 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65, <4 x double> %181) %wide.vec72 = load <8 x double>, ptr %172, align 8, !noalias !3408 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %183 = fmul <4 x double> %strided.vec74, %broadcast.splat76 %184 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73, <4 x double> %183) %185 = fmul <4 x double> %broadcast.splat80, %strided.vec73 %186 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74, <4 x double> %185) %187 = fadd <4 x double> %strided.vec52, %180 %188 = fadd <4 x double> %strided.vec53, %182 %189 = fsub <4 x double> %strided.vec52, %180 %190 = fsub <4 x double> %strided.vec53, %182 %191 = fadd <4 x double> %176, %184 %192 = fadd <4 x double> %178, %186 %193 = fsub <4 x double> %176, %184 %194 = fsub <4 x double> %178, %186 %195 = fadd <4 x double> %187, %191 %196 = fadd <4 x double> %188, %192 %interleaved.vec81 = shufflevector <4 x double> %195, <4 x double> %196, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3408 %197 = fsub <4 x double> %189, %194 %198 = fadd <4 x double> %190, %193 %interleaved.vec82 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec82, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3408 %199 = fsub <4 x double> %187, %191 %200 = fsub <4 x double> %188, %192 %interleaved.vec83 = shufflevector <4 x double> %199, <4 x double> %200, <8 x i32> store <8 x double> %interleaved.vec83, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3408 %201 = fadd <4 x double> %189, %194 %202 = fsub <4 x double> %190, %193 %interleaved.vec84 = shufflevector <4 x double> %201, <4 x double> %202, <8 x i32> store <8 x double> %interleaved.vec84, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !3408 %203 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %204 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %205 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %206 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %wide.vec51.1 = load <8 x double>, ptr %203, align 8, !noalias !3408 %strided.vec52.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %strided.vec53.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %wide.vec54.1 = load <8 x double>, ptr %204, align 8, !noalias !3408 %strided.vec55.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %strided.vec56.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %207 = fmul <4 x double> %strided.vec56.1, %broadcast.splat58 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55.1, <4 x double> %207) %209 = fmul <4 x double> %broadcast.splat62, %strided.vec55.1 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56.1, <4 x double> %209) %wide.vec63.1 = load <8 x double>, ptr %205, align 8, !noalias !3408 %strided.vec64.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %strided.vec65.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %211 = fmul <4 x double> %strided.vec65.1, %broadcast.splat67 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64.1, <4 x double> %211) %213 = fmul <4 x double> %broadcast.splat71, %strided.vec64.1 %214 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65.1, <4 x double> %213) %wide.vec72.1 = load <8 x double>, ptr %206, align 8, !noalias !3408 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %215 = fmul <4 x double> %strided.vec74.1, %broadcast.splat76 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73.1, <4 x double> %215) %217 = fmul <4 x double> %broadcast.splat80, %strided.vec73.1 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74.1, <4 x double> %217) %219 = fadd <4 x double> %strided.vec52.1, %212 %220 = fadd <4 x double> %strided.vec53.1, %214 %221 = fsub <4 x double> %strided.vec52.1, %212 %222 = fsub <4 x double> %strided.vec53.1, %214 %223 = fadd <4 x double> %208, %216 %224 = fadd <4 x double> %210, %218 %225 = fsub <4 x double> %208, %216 %226 = fsub <4 x double> %210, %218 %227 = fadd <4 x double> %219, %223 %228 = fadd <4 x double> %220, %224 %229 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec81.1 = shufflevector <4 x double> %227, <4 x double> %228, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %229, align 8, !noalias !3408 %230 = fsub <4 x double> %221, %226 %231 = fadd <4 x double> %222, %225 %232 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec82.1 = shufflevector <4 x double> %230, <4 x double> %231, <8 x i32> store <8 x double> %interleaved.vec82.1, ptr %232, align 8, !noalias !3408 %233 = fsub <4 x double> %219, %223 %234 = fsub <4 x double> %220, %224 %235 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec83.1 = shufflevector <4 x double> %233, <4 x double> %234, <8 x i32> store <8 x double> %interleaved.vec83.1, ptr %235, align 8, !noalias !3408 %236 = fadd <4 x double> %221, %226 %237 = fsub <4 x double> %222, %225 %238 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec84.1 = shufflevector <4 x double> %236, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec84.1, ptr %238, align 8, !noalias !3408 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %wide.vec51.2 = load <8 x double>, ptr %239, align 8, !noalias !3408 %strided.vec52.2 = shufflevector <8 x double> %wide.vec51.2, <8 x double> poison, <4 x i32> %strided.vec53.2 = shufflevector <8 x double> %wide.vec51.2, <8 x double> poison, <4 x i32> %wide.vec54.2 = load <8 x double>, ptr %240, align 8, !noalias !3408 %strided.vec55.2 = shufflevector <8 x double> %wide.vec54.2, <8 x double> poison, <4 x i32> %strided.vec56.2 = shufflevector <8 x double> %wide.vec54.2, <8 x double> poison, <4 x i32> %243 = fmul <4 x double> %strided.vec56.2, %broadcast.splat58 %244 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55.2, <4 x double> %243) %245 = fmul <4 x double> %broadcast.splat62, %strided.vec55.2 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56.2, <4 x double> %245) %wide.vec63.2 = load <8 x double>, ptr %241, align 8, !noalias !3408 %strided.vec64.2 = shufflevector <8 x double> %wide.vec63.2, <8 x double> poison, <4 x i32> %strided.vec65.2 = shufflevector <8 x double> %wide.vec63.2, <8 x double> poison, <4 x i32> %247 = fmul <4 x double> %strided.vec65.2, %broadcast.splat67 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64.2, <4 x double> %247) %249 = fmul <4 x double> %broadcast.splat71, %strided.vec64.2 %250 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65.2, <4 x double> %249) %wide.vec72.2 = load <8 x double>, ptr %242, align 8, !noalias !3408 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %251 = fmul <4 x double> %strided.vec74.2, %broadcast.splat76 %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73.2, <4 x double> %251) %253 = fmul <4 x double> %broadcast.splat80, %strided.vec73.2 %254 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74.2, <4 x double> %253) %255 = fadd <4 x double> %strided.vec52.2, %248 %256 = fadd <4 x double> %strided.vec53.2, %250 %257 = fsub <4 x double> %strided.vec52.2, %248 %258 = fsub <4 x double> %strided.vec53.2, %250 %259 = fadd <4 x double> %244, %252 %260 = fadd <4 x double> %246, %254 %261 = fsub <4 x double> %244, %252 %262 = fsub <4 x double> %246, %254 %263 = fadd <4 x double> %255, %259 %264 = fadd <4 x double> %256, %260 %265 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec81.2 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %265, align 8, !noalias !3408 %266 = fsub <4 x double> %257, %262 %267 = fadd <4 x double> %258, %261 %268 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec82.2 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec82.2, ptr %268, align 8, !noalias !3408 %269 = fsub <4 x double> %255, %259 %270 = fsub <4 x double> %256, %260 %271 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec83.2 = shufflevector <4 x double> %269, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec83.2, ptr %271, align 8, !noalias !3408 %272 = fadd <4 x double> %257, %262 %273 = fsub <4 x double> %258, %261 %274 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec84.2 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec84.2, ptr %274, align 8, !noalias !3408 %275 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %276 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %277 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %278 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %wide.vec51.3 = load <8 x double>, ptr %275, align 8, !noalias !3408 %strided.vec52.3 = shufflevector <8 x double> %wide.vec51.3, <8 x double> poison, <4 x i32> %strided.vec53.3 = shufflevector <8 x double> %wide.vec51.3, <8 x double> poison, <4 x i32> %wide.vec54.3 = load <8 x double>, ptr %276, align 8, !noalias !3408 %strided.vec55.3 = shufflevector <8 x double> %wide.vec54.3, <8 x double> poison, <4 x i32> %strided.vec56.3 = shufflevector <8 x double> %wide.vec54.3, <8 x double> poison, <4 x i32> %279 = fmul <4 x double> %strided.vec56.3, %broadcast.splat58 %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55.3, <4 x double> %279) %281 = fmul <4 x double> %broadcast.splat62, %strided.vec55.3 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56.3, <4 x double> %281) %wide.vec63.3 = load <8 x double>, ptr %277, align 8, !noalias !3408 %strided.vec64.3 = shufflevector <8 x double> %wide.vec63.3, <8 x double> poison, <4 x i32> %strided.vec65.3 = shufflevector <8 x double> %wide.vec63.3, <8 x double> poison, <4 x i32> %283 = fmul <4 x double> %strided.vec65.3, %broadcast.splat67 %284 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64.3, <4 x double> %283) %285 = fmul <4 x double> %broadcast.splat71, %strided.vec64.3 %286 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65.3, <4 x double> %285) %wide.vec72.3 = load <8 x double>, ptr %278, align 8, !noalias !3408 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %287 = fmul <4 x double> %strided.vec74.3, %broadcast.splat76 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73.3, <4 x double> %287) %289 = fmul <4 x double> %broadcast.splat80, %strided.vec73.3 %290 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74.3, <4 x double> %289) %291 = fadd <4 x double> %strided.vec52.3, %284 %292 = fadd <4 x double> %strided.vec53.3, %286 %293 = fsub <4 x double> %strided.vec52.3, %284 %294 = fsub <4 x double> %strided.vec53.3, %286 %295 = fadd <4 x double> %280, %288 %296 = fadd <4 x double> %282, %290 %297 = fsub <4 x double> %280, %288 %298 = fsub <4 x double> %282, %290 %299 = fadd <4 x double> %291, %295 %300 = fadd <4 x double> %292, %296 %301 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec81.3 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %301, align 8, !noalias !3408 %302 = fsub <4 x double> %293, %298 %303 = fadd <4 x double> %294, %297 %304 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec82.3 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec82.3, ptr %304, align 8, !noalias !3408 %305 = fsub <4 x double> %291, %295 %306 = fsub <4 x double> %292, %296 %307 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec83.3 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec83.3, ptr %307, align 8, !noalias !3408 %308 = fadd <4 x double> %293, %298 %309 = fsub <4 x double> %294, %297 %310 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec84.3 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec84.3, ptr %310, align 8, !noalias !3408 %311 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 br label %vector.body90 vector.body90: ; preds = %vector.body90, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit %index91 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %index.next133, %vector.body90 ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %vec.ind.next, %vector.body90 ] %312 = shl nuw nsw <4 x i64> %vec.ind, %313 = extractelement <4 x i64> %312, i64 0 %314 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %313 %315 = shl nuw nsw <4 x i64> %vec.ind, %316 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %315 %317 = getelementptr inbounds %"num_complex::Complex", ptr %311, i64 %313 %318 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %313 %319 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %313 %320 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %320, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %321 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 1, i32 1 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %321, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %322 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 2 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %322, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %323 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 2, i32 1 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %323, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %324 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 3 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %324, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %325 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 3, i32 1 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %325, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %326 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 8 %327 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 4 %328 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 12 %329 = fneg <4 x double> %wide.masked.gather92 %330 = fneg <4 x double> %wide.masked.gather94 %331 = fneg <4 x double> %wide.masked.gather96 %wide.masked.gather97 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %316, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %332 = getelementptr inbounds i8, <4 x ptr> %316, i64 8 %wide.masked.gather98 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %332, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %327, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %333 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 4, i32 1 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %333, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %334 = fmul <4 x double> %wide.masked.gather100, %329 %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather99, <4 x double> %334) %336 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather99 %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather100, <4 x double> %336) %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %326, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %338 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 8, i32 1 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %338, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %339 = fmul <4 x double> %wide.masked.gather102, %330 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather101, <4 x double> %339) %341 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather101 %342 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather102, <4 x double> %341) %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 12, i32 1 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %344 = fmul <4 x double> %wide.masked.gather104, %331 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather103, <4 x double> %344) %346 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather103 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather104, <4 x double> %346) %348 = fadd <4 x double> %wide.masked.gather97, %340 %349 = fadd <4 x double> %wide.masked.gather98, %342 %350 = fsub <4 x double> %wide.masked.gather97, %340 %351 = fsub <4 x double> %wide.masked.gather98, %342 %352 = fadd <4 x double> %335, %345 %353 = fadd <4 x double> %337, %347 %354 = fsub <4 x double> %335, %345 %355 = fsub <4 x double> %337, %347 %356 = fadd <4 x double> %348, %352 %357 = fadd <4 x double> %349, %353 %358 = fsub <4 x double> %350, %355 %359 = fadd <4 x double> %351, %354 %360 = fsub <4 x double> %348, %352 %361 = fsub <4 x double> %349, %353 %362 = fadd <4 x double> %350, %355 %363 = fsub <4 x double> %351, %354 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 1 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 5 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 9 %367 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 13 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %368 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 1, i32 1 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %369 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 5, i32 1 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %370 = fmul <4 x double> %wide.masked.gather108, %329 %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather107, <4 x double> %370) %372 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather107 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather108, <4 x double> %372) %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %374 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 9, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %374, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %375 = fmul <4 x double> %wide.masked.gather110, %330 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather109, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather109 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather110, <4 x double> %377) %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %379 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 13, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %379, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %380 = fmul <4 x double> %wide.masked.gather112, %331 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather111, <4 x double> %380) %382 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather111 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather112, <4 x double> %382) %384 = fadd <4 x double> %wide.masked.gather105, %376 %385 = fadd <4 x double> %wide.masked.gather106, %378 %386 = fsub <4 x double> %wide.masked.gather105, %376 %387 = fsub <4 x double> %wide.masked.gather106, %378 %388 = fadd <4 x double> %371, %381 %389 = fadd <4 x double> %373, %383 %390 = fsub <4 x double> %371, %381 %391 = fsub <4 x double> %373, %383 %392 = fadd <4 x double> %384, %388 %393 = fadd <4 x double> %385, %389 %394 = fsub <4 x double> %386, %391 %395 = fadd <4 x double> %387, %390 %396 = fsub <4 x double> %384, %388 %397 = fsub <4 x double> %385, %389 %398 = fadd <4 x double> %386, %391 %399 = fsub <4 x double> %387, %390 %400 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 2 %401 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 6 %402 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 10 %403 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 14 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %400, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %404 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 2, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %404, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %401, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %405 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 6, i32 1 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %405, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %406 = fmul <4 x double> %wide.masked.gather116, %329 %407 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather115, <4 x double> %406) %408 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather115 %409 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather116, <4 x double> %408) %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %402, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %410 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 10, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %410, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %411 = fmul <4 x double> %wide.masked.gather118, %330 %412 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather117, <4 x double> %411) %413 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather117 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather118, <4 x double> %413) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %403, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %415 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 14, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %415, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %416 = fmul <4 x double> %wide.masked.gather120, %331 %417 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather119, <4 x double> %416) %418 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather119 %419 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather120, <4 x double> %418) %420 = fadd <4 x double> %wide.masked.gather113, %412 %421 = fadd <4 x double> %wide.masked.gather114, %414 %422 = fsub <4 x double> %wide.masked.gather113, %412 %423 = fsub <4 x double> %wide.masked.gather114, %414 %424 = fadd <4 x double> %407, %417 %425 = fadd <4 x double> %409, %419 %426 = fsub <4 x double> %407, %417 %427 = fsub <4 x double> %409, %419 %428 = fadd <4 x double> %420, %424 %429 = fadd <4 x double> %421, %425 %430 = fsub <4 x double> %422, %427 %431 = fadd <4 x double> %423, %426 %432 = fsub <4 x double> %420, %424 %433 = fsub <4 x double> %421, %425 %434 = fadd <4 x double> %422, %427 %435 = fsub <4 x double> %423, %426 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 3 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 7 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 11 %439 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 15 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %440 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 3, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %440, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %441 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 7, i32 1 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %441, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %442 = fmul <4 x double> %wide.masked.gather124, %329 %443 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather123, <4 x double> %442) %444 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather123 %445 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather124, <4 x double> %444) %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 11, i32 1 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %447 = fmul <4 x double> %wide.masked.gather126, %330 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather125, <4 x double> %447) %449 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather125 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather126, <4 x double> %449) %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %439, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %451 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 15, i32 1 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %451, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %452 = fmul <4 x double> %wide.masked.gather128, %331 %453 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather127, <4 x double> %452) %454 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather127 %455 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather128, <4 x double> %454) %456 = fadd <4 x double> %wide.masked.gather121, %448 %457 = fadd <4 x double> %wide.masked.gather122, %450 %458 = fsub <4 x double> %wide.masked.gather121, %448 %459 = fsub <4 x double> %wide.masked.gather122, %450 %460 = fadd <4 x double> %443, %453 %461 = fadd <4 x double> %445, %455 %462 = fsub <4 x double> %443, %453 %463 = fsub <4 x double> %445, %455 %464 = fadd <4 x double> %456, %460 %465 = fadd <4 x double> %457, %461 %466 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> %467 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> %468 = shufflevector <4 x double> %428, <4 x double> %429, <8 x i32> %469 = shufflevector <4 x double> %464, <4 x double> %465, <8 x i32> %470 = shufflevector <8 x double> %466, <8 x double> %467, <16 x i32> %471 = shufflevector <8 x double> %468, <8 x double> %469, <16 x i32> %interleaved.vec129 = shufflevector <16 x double> %470, <16 x double> %471, <32 x i32> store <32 x double> %interleaved.vec129, ptr %314, align 8, !noalias !3408 %472 = fsub <4 x double> %458, %463 %473 = fadd <4 x double> %459, %462 %474 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> %475 = shufflevector <4 x double> %394, <4 x double> %395, <8 x i32> %476 = shufflevector <4 x double> %430, <4 x double> %431, <8 x i32> %477 = shufflevector <4 x double> %472, <4 x double> %473, <8 x i32> %478 = shufflevector <8 x double> %474, <8 x double> %475, <16 x i32> %479 = shufflevector <8 x double> %476, <8 x double> %477, <16 x i32> %interleaved.vec130 = shufflevector <16 x double> %478, <16 x double> %479, <32 x i32> store <32 x double> %interleaved.vec130, ptr %319, align 8, !noalias !3408 %480 = fsub <4 x double> %456, %460 %481 = fsub <4 x double> %457, %461 %482 = shufflevector <4 x double> %360, <4 x double> %361, <8 x i32> %483 = shufflevector <4 x double> %396, <4 x double> %397, <8 x i32> %484 = shufflevector <4 x double> %432, <4 x double> %433, <8 x i32> %485 = shufflevector <4 x double> %480, <4 x double> %481, <8 x i32> %486 = shufflevector <8 x double> %482, <8 x double> %483, <16 x i32> %487 = shufflevector <8 x double> %484, <8 x double> %485, <16 x i32> %interleaved.vec131 = shufflevector <16 x double> %486, <16 x double> %487, <32 x i32> store <32 x double> %interleaved.vec131, ptr %318, align 8, !noalias !3408 %488 = fadd <4 x double> %458, %463 %489 = fsub <4 x double> %459, %462 %490 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> %491 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> %492 = shufflevector <4 x double> %434, <4 x double> %435, <8 x i32> %493 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> %494 = shufflevector <8 x double> %490, <8 x double> %491, <16 x i32> %495 = shufflevector <8 x double> %492, <8 x double> %493, <16 x i32> %interleaved.vec132 = shufflevector <16 x double> %494, <16 x double> %495, <32 x i32> store <32 x double> %interleaved.vec132, ptr %317, align 8, !noalias !3408 %index.next133 = add nuw i64 %index91, 4 %vec.ind.next = add <4 x i64> %vec.ind, %496 = icmp eq i64 %index.next133, 8 br i1 %496, label %vector.body138, label %vector.body90, !llvm.loop !3415 vector.body138: ; preds = %vector.body90, %vector.body138 %index139 = phi i64 [ %index.next160, %vector.body138 ], [ 0, %vector.body90 ] %vec.ind140 = phi <4 x i64> [ %vec.ind.next141, %vector.body138 ], [ , %vector.body90 ] %497 = shl <4 x i64> %vec.ind140, %498 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %497 %499 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 1 %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %499, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %500 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 1, i32 1 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %500, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %501 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 2 %wide.masked.gather144 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %501, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %502 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 2, i32 1 %wide.masked.gather145 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %502, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %503 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 3 %wide.masked.gather146 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %503, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %504 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 3, i32 1 %wide.masked.gather147 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %504, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %505 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 2 %506 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 1 %507 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 3 %508 = fneg <4 x double> %wide.masked.gather143 %509 = fneg <4 x double> %wide.masked.gather145 %510 = fneg <4 x double> %wide.masked.gather147 %wide.masked.gather148 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %498, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %511 = getelementptr inbounds i8, <4 x ptr> %498, i64 8 %wide.masked.gather149 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %511, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %506, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %512 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 1, i32 1 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %512, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %513 = fmul <4 x double> %wide.masked.gather151, %508 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather142, <4 x double> %wide.masked.gather150, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather143, %wide.masked.gather150 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather142, <4 x double> %wide.masked.gather151, <4 x double> %515) %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %505, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %517 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 2, i32 1 %wide.masked.gather153 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %517, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %518 = fmul <4 x double> %wide.masked.gather153, %509 %519 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather144, <4 x double> %wide.masked.gather152, <4 x double> %518) %520 = fmul <4 x double> %wide.masked.gather145, %wide.masked.gather152 %521 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather144, <4 x double> %wide.masked.gather153, <4 x double> %520) %wide.masked.gather154 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %507, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %522 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 3, i32 1 %wide.masked.gather155 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %522, i32 8, <4 x i1> , <4 x double> poison), !noalias !3408 %523 = fmul <4 x double> %wide.masked.gather155, %510 %524 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather146, <4 x double> %wide.masked.gather154, <4 x double> %523) %525 = fmul <4 x double> %wide.masked.gather147, %wide.masked.gather154 %526 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather146, <4 x double> %wide.masked.gather155, <4 x double> %525) %527 = fadd <4 x double> %wide.masked.gather148, %519 %528 = fadd <4 x double> %wide.masked.gather149, %521 %529 = fsub <4 x double> %wide.masked.gather148, %519 %530 = fsub <4 x double> %wide.masked.gather149, %521 %531 = fadd <4 x double> %514, %524 %532 = fadd <4 x double> %516, %526 %533 = fsub <4 x double> %514, %524 %534 = fsub <4 x double> %516, %526 %535 = fadd <4 x double> %527, %531 %536 = fadd <4 x double> %528, %532 %537 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index139 %interleaved.vec156 = shufflevector <4 x double> %535, <4 x double> %536, <8 x i32> store <8 x double> %interleaved.vec156, ptr %537, align 8, !noalias !3408 %538 = fsub <4 x double> %529, %534 %539 = fadd <4 x double> %530, %533 %540 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index139 %interleaved.vec157 = shufflevector <4 x double> %538, <4 x double> %539, <8 x i32> store <8 x double> %interleaved.vec157, ptr %540, align 8, !noalias !3408 %541 = fsub <4 x double> %527, %531 %542 = fsub <4 x double> %528, %532 %543 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index139 %interleaved.vec158 = shufflevector <4 x double> %541, <4 x double> %542, <8 x i32> store <8 x double> %interleaved.vec158, ptr %543, align 8, !noalias !3408 %544 = fadd <4 x double> %529, %534 %545 = fsub <4 x double> %530, %533 %546 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index139 %interleaved.vec159 = shufflevector <4 x double> %544, <4 x double> %545, <8 x i32> store <8 x double> %interleaved.vec159, ptr %546, align 8, !noalias !3408 %index.next160 = add nuw i64 %index139, 4 %vec.ind.next141 = add <4 x i64> %vec.ind140, %547 = icmp eq i64 %index.next160, 28 br i1 %547, label %bb24.i.i.i, label %vector.body138, !llvm.loop !3416 bb24.i.i.i: ; preds = %vector.body138 %data.i.i.i.i.i.i.i.i.i.i.i.i716 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i726 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %data.i.i.i.i.i.i.i.i730 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %data.i5.i.i.i.i.i.i.i.i.i.i.i738 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %548 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i.i = load double, ptr %548, align 8, !noalias !3408, !noundef !3 %549 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %549, align 8, !noalias !3408, !noundef !3 %550 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2 %w2.0.i.i.i = load double, ptr %550, align 8, !noalias !3408, !noundef !3 %551 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %551, align 8, !noalias !3408, !noundef !3 %552 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3 %w3.0.i.i.i = load double, ptr %552, align 8, !noalias !3408, !noundef !3 %553 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %553, align 8, !noalias !3408, !noundef !3 %554 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 114 %555 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 113 %556 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 115 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i726, align 8, !noalias !3408, !noundef !3 %557 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112, i32 1 %a.1.i.i.i = load double, ptr %557, align 8, !noalias !3408, !noundef !3 %_84.0.i.i.i = load double, ptr %555, align 8, !noalias !3408, !noundef !3 %558 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 113, i32 1 %_84.1.i.i.i = load double, ptr %558, align 8, !noalias !3408, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %559 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %560 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %554, align 8, !noalias !3408, !noundef !3 %561 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 114, i32 1 %_86.1.i.i.i = load double, ptr %561, align 8, !noalias !3408, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %562 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %563 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %556, align 8, !noalias !3408, !noundef !3 %564 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 115, i32 1 %_88.1.i.i.i = load double, ptr %564, align 8, !noalias !3408, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %565 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %566 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i871 = fadd double %a.0.i.i.i, %562 %_0.i3.i872 = fadd double %a.1.i.i.i, %563 %_0.i.i873 = fsub double %a.0.i.i.i, %562 %_0.i3.i874 = fsub double %a.1.i.i.i, %563 %_0.i.i875 = fadd double %559, %565 %_0.i3.i876 = fadd double %560, %566 %_0.i.i877 = fsub double %559, %565 %_0.i3.i878 = fsub double %560, %566 %_0.i.i879 = fadd double %_0.i.i871, %_0.i.i875 %_0.i3.i880 = fadd double %_0.i3.i872, %_0.i3.i876 store double %_0.i.i879, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716, align 8, !noalias !3408 %567 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28, i32 1 store double %_0.i3.i880, ptr %567, align 8, !noalias !3408 %_0.i.i881 = fsub double %_0.i.i873, %_0.i3.i878 %_0.i3.i882 = fadd double %_0.i3.i874, %_0.i.i877 store double %_0.i.i881, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738, align 8, !noalias !3408 %568 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60, i32 1 store double %_0.i3.i882, ptr %568, align 8, !noalias !3408 %_0.i.i883 = fsub double %_0.i.i871, %_0.i.i875 %_0.i3.i884 = fsub double %_0.i3.i872, %_0.i3.i876 store double %_0.i.i883, ptr %data.i.i.i.i.i.i.i.i.i.i734, align 8, !noalias !3408 %569 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92, i32 1 store double %_0.i3.i884, ptr %569, align 8, !noalias !3408 %_0.i.i885 = fadd double %_0.i.i873, %_0.i3.i878 %_0.i3.i886 = fsub double %_0.i3.i874, %_0.i.i877 store double %_0.i.i885, ptr %data.i.i.i.i.i.i.i.i730, align 8, !noalias !3408 %570 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124, i32 1 store double %_0.i3.i886, ptr %570, align 8, !noalias !3408 %data.i.i.i.i.i.i.i.i.i.i.i.i716.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i.i.i.i.i.i726.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %data.i.i.i.i.i.i.i.i730.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.i.i.i.i734.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 93 %data.i5.i.i.i.i.i.i.i.i.i.i.i738.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %571 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1 %w1.0.i.i.i.1 = load double, ptr %571, align 8, !noalias !3408, !noundef !3 %572 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %572, align 8, !noalias !3408, !noundef !3 %573 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2 %w2.0.i.i.i.1 = load double, ptr %573, align 8, !noalias !3408, !noundef !3 %574 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %574, align 8, !noalias !3408, !noundef !3 %575 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3 %w3.0.i.i.i.1 = load double, ptr %575, align 8, !noalias !3408, !noundef !3 %576 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %576, align 8, !noalias !3408, !noundef !3 %577 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 118 %578 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 117 %579 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 119 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i726.1, align 8, !noalias !3408, !noundef !3 %580 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116, i32 1 %a.1.i.i.i.1 = load double, ptr %580, align 8, !noalias !3408, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %578, align 8, !noalias !3408, !noundef !3 %581 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 117, i32 1 %_84.1.i.i.i.1 = load double, ptr %581, align 8, !noalias !3408, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %582 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %583 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %577, align 8, !noalias !3408, !noundef !3 %584 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 118, i32 1 %_86.1.i.i.i.1 = load double, ptr %584, align 8, !noalias !3408, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %585 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %586 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %579, align 8, !noalias !3408, !noundef !3 %587 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 119, i32 1 %_88.1.i.i.i.1 = load double, ptr %587, align 8, !noalias !3408, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %588 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %589 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i871.1 = fadd double %a.0.i.i.i.1, %585 %_0.i3.i872.1 = fadd double %a.1.i.i.i.1, %586 %_0.i.i873.1 = fsub double %a.0.i.i.i.1, %585 %_0.i3.i874.1 = fsub double %a.1.i.i.i.1, %586 %_0.i.i875.1 = fadd double %582, %588 %_0.i3.i876.1 = fadd double %583, %589 %_0.i.i877.1 = fsub double %582, %588 %_0.i3.i878.1 = fsub double %583, %589 %_0.i.i879.1 = fadd double %_0.i.i871.1, %_0.i.i875.1 %_0.i3.i880.1 = fadd double %_0.i3.i872.1, %_0.i3.i876.1 store double %_0.i.i879.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716.1, align 8, !noalias !3408 %590 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29, i32 1 store double %_0.i3.i880.1, ptr %590, align 8, !noalias !3408 %_0.i.i881.1 = fsub double %_0.i.i873.1, %_0.i3.i878.1 %_0.i3.i882.1 = fadd double %_0.i3.i874.1, %_0.i.i877.1 store double %_0.i.i881.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738.1, align 8, !noalias !3408 %591 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61, i32 1 store double %_0.i3.i882.1, ptr %591, align 8, !noalias !3408 %_0.i.i883.1 = fsub double %_0.i.i871.1, %_0.i.i875.1 %_0.i3.i884.1 = fsub double %_0.i3.i872.1, %_0.i3.i876.1 store double %_0.i.i883.1, ptr %data.i.i.i.i.i.i.i.i.i.i734.1, align 8, !noalias !3408 %592 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 93, i32 1 store double %_0.i3.i884.1, ptr %592, align 8, !noalias !3408 %_0.i.i885.1 = fadd double %_0.i.i873.1, %_0.i3.i878.1 %_0.i3.i886.1 = fsub double %_0.i3.i874.1, %_0.i.i877.1 store double %_0.i.i885.1, ptr %data.i.i.i.i.i.i.i.i730.1, align 8, !noalias !3408 %593 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125, i32 1 store double %_0.i3.i886.1, ptr %593, align 8, !noalias !3408 %data.i.i.i.i.i.i.i.i.i.i.i.i716.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i.i.i.i.i.i726.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %data.i.i.i.i.i.i.i.i730.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.i.i.i.i734.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 94 %data.i5.i.i.i.i.i.i.i.i.i.i.i738.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %594 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i.i.2 = load double, ptr %594, align 8, !noalias !3408, !noundef !3 %595 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %595, align 8, !noalias !3408, !noundef !3 %596 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2 %w2.0.i.i.i.2 = load double, ptr %596, align 8, !noalias !3408, !noundef !3 %597 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %597, align 8, !noalias !3408, !noundef !3 %598 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3 %w3.0.i.i.i.2 = load double, ptr %598, align 8, !noalias !3408, !noundef !3 %599 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %599, align 8, !noalias !3408, !noundef !3 %600 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %601 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121 %602 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i726.2, align 8, !noalias !3408, !noundef !3 %603 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120, i32 1 %a.1.i.i.i.2 = load double, ptr %603, align 8, !noalias !3408, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %601, align 8, !noalias !3408, !noundef !3 %604 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121, i32 1 %_84.1.i.i.i.2 = load double, ptr %604, align 8, !noalias !3408, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %605 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %606 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %600, align 8, !noalias !3408, !noundef !3 %607 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122, i32 1 %_86.1.i.i.i.2 = load double, ptr %607, align 8, !noalias !3408, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %608 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %609 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %602, align 8, !noalias !3408, !noundef !3 %610 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123, i32 1 %_88.1.i.i.i.2 = load double, ptr %610, align 8, !noalias !3408, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %611 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %612 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i871.2 = fadd double %a.0.i.i.i.2, %608 %_0.i3.i872.2 = fadd double %a.1.i.i.i.2, %609 %_0.i.i873.2 = fsub double %a.0.i.i.i.2, %608 %_0.i3.i874.2 = fsub double %a.1.i.i.i.2, %609 %_0.i.i875.2 = fadd double %605, %611 %_0.i3.i876.2 = fadd double %606, %612 %_0.i.i877.2 = fsub double %605, %611 %_0.i3.i878.2 = fsub double %606, %612 %_0.i.i879.2 = fadd double %_0.i.i871.2, %_0.i.i875.2 %_0.i3.i880.2 = fadd double %_0.i3.i872.2, %_0.i3.i876.2 store double %_0.i.i879.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716.2, align 8, !noalias !3408 %613 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30, i32 1 store double %_0.i3.i880.2, ptr %613, align 8, !noalias !3408 %_0.i.i881.2 = fsub double %_0.i.i873.2, %_0.i3.i878.2 %_0.i3.i882.2 = fadd double %_0.i3.i874.2, %_0.i.i877.2 store double %_0.i.i881.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738.2, align 8, !noalias !3408 %614 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62, i32 1 store double %_0.i3.i882.2, ptr %614, align 8, !noalias !3408 %_0.i.i883.2 = fsub double %_0.i.i871.2, %_0.i.i875.2 %_0.i3.i884.2 = fsub double %_0.i3.i872.2, %_0.i3.i876.2 store double %_0.i.i883.2, ptr %data.i.i.i.i.i.i.i.i.i.i734.2, align 8, !noalias !3408 %615 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 94, i32 1 store double %_0.i3.i884.2, ptr %615, align 8, !noalias !3408 %_0.i.i885.2 = fadd double %_0.i.i873.2, %_0.i3.i878.2 %_0.i3.i886.2 = fsub double %_0.i3.i874.2, %_0.i.i877.2 store double %_0.i.i885.2, ptr %data.i.i.i.i.i.i.i.i730.2, align 8, !noalias !3408 %616 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126, i32 1 store double %_0.i3.i886.2, ptr %616, align 8, !noalias !3408 %data.i.i.i.i.i.i.i.i.i.i.i.i716.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i.i.i.i.i.i726.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %data.i.i.i.i.i.i.i.i730.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.i.i.i.i734.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 95 %data.i5.i.i.i.i.i.i.i.i.i.i.i738.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %617 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1 %w1.0.i.i.i.3 = load double, ptr %617, align 8, !noalias !3408, !noundef !3 %618 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %618, align 8, !noalias !3408, !noundef !3 %619 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2 %w2.0.i.i.i.3 = load double, ptr %619, align 8, !noalias !3408, !noundef !3 %620 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %620, align 8, !noalias !3408, !noundef !3 %621 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3 %w3.0.i.i.i.3 = load double, ptr %621, align 8, !noalias !3408, !noundef !3 %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %622, align 8, !noalias !3408, !noundef !3 %623 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %624 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125 %625 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i726.3, align 8, !noalias !3408, !noundef !3 %626 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124, i32 1 %a.1.i.i.i.3 = load double, ptr %626, align 8, !noalias !3408, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %624, align 8, !noalias !3408, !noundef !3 %627 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125, i32 1 %_84.1.i.i.i.3 = load double, ptr %627, align 8, !noalias !3408, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %628 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %629 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %623, align 8, !noalias !3408, !noundef !3 %630 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126, i32 1 %_86.1.i.i.i.3 = load double, ptr %630, align 8, !noalias !3408, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %631 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %632 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %625, align 8, !noalias !3408, !noundef !3 %633 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127, i32 1 %_88.1.i.i.i.3 = load double, ptr %633, align 8, !noalias !3408, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %634 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %635 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i871.3 = fadd double %a.0.i.i.i.3, %631 %_0.i3.i872.3 = fadd double %a.1.i.i.i.3, %632 %_0.i.i873.3 = fsub double %a.0.i.i.i.3, %631 %_0.i3.i874.3 = fsub double %a.1.i.i.i.3, %632 %_0.i.i875.3 = fadd double %628, %634 %_0.i3.i876.3 = fadd double %629, %635 %_0.i.i877.3 = fsub double %628, %634 %_0.i3.i878.3 = fsub double %629, %635 %_0.i.i879.3 = fadd double %_0.i.i871.3, %_0.i.i875.3 %_0.i3.i880.3 = fadd double %_0.i3.i872.3, %_0.i3.i876.3 store double %_0.i.i879.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716.3, align 8, !noalias !3408 %636 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31, i32 1 store double %_0.i3.i880.3, ptr %636, align 8, !noalias !3408 %_0.i.i881.3 = fsub double %_0.i.i873.3, %_0.i3.i878.3 %_0.i3.i882.3 = fadd double %_0.i3.i874.3, %_0.i.i877.3 store double %_0.i.i881.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738.3, align 8, !noalias !3408 %637 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63, i32 1 store double %_0.i3.i882.3, ptr %637, align 8, !noalias !3408 %_0.i.i883.3 = fsub double %_0.i.i871.3, %_0.i.i875.3 %_0.i3.i884.3 = fsub double %_0.i3.i872.3, %_0.i3.i876.3 store double %_0.i.i883.3, ptr %data.i.i.i.i.i.i.i.i.i.i734.3, align 8, !noalias !3408 %638 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 95, i32 1 store double %_0.i3.i884.3, ptr %638, align 8, !noalias !3408 %_0.i.i885.3 = fadd double %_0.i.i873.3, %_0.i3.i878.3 %_0.i3.i886.3 = fsub double %_0.i3.i874.3, %_0.i.i877.3 store double %_0.i.i885.3, ptr %data.i.i.i.i.i.i.i.i730.3, align 8, !noalias !3408 %639 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127, i32 1 store double %_0.i3.i886.3, ptr %639, align 8, !noalias !3408 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3408 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h56b0b9a89ca65041E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h47d83bd7c8ef19dbE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h57ddd37fb0b4eb1cE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3417 store i64 1024, ptr %n.i.i, align 8, !noalias !3417 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3417 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3417 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3417 store ptr null, ptr %_16.i.i, align 8, !noalias !3417 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3417 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3417 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3417 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3417 store ptr null, ptr %_24.i.i, align 8, !noalias !3417 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3417 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3417 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3417 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3417 store ptr null, ptr %_32.i.i, align 8, !noalias !3417 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3417 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3417 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3417 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1c0c2f31dd37d7d2E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3417 store ptr null, ptr %_40.i.i, align 8, !noalias !3417 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1c0c2f31dd37d7d2E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3417 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 br label %bb9.i.i.i bb9.i.i.i: ; preds = %bb9.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1c0c2f31dd37d7d2E.exit.i" %iter.i.i.sroa.22.0415.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1c0c2f31dd37d7d2E.exit.i" ], [ %15, %bb9.i.i.i ] %4 = or disjoint i64 %iter.i.i.sroa.22.0415.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.sroa.22.0415.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.sroa.22.0415.i %_3.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.i.i.sroa.22.0415.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.sroa.22.0415.i %a.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3422 %b.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3422 %w1.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3422 %5 = fadd <4 x double> %a.i.i.sroa.0.0.copyload.i, %b.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %a.i.i.sroa.0.0.copyload.i, %b.i.i.sroa.0.0.copyload.i %7 = shufflevector <4 x double> %6, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i, <4 x double> poison, <4 x i32> %9 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i, <4 x double> poison, <4 x i32> %10 = fmul <4 x double> %9, %7 %11 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %8, <4 x double> %6, <4 x double> %10) #23 %12 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3422 %13 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> %14 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.i.i.sroa.22.0415.i, i64 1 store <4 x double> %13, ptr %14, align 8, !noalias !3422 %15 = add nuw nsw i64 %iter.i.i.sroa.22.0415.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %a.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3422 %b.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !3422 %w1.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3422 %16 = fadd <4 x double> %a.i.i.sroa.0.0.copyload.i.1, %b.i.i.sroa.0.0.copyload.i.1 %17 = fsub <4 x double> %a.i.i.sroa.0.0.copyload.i.1, %b.i.i.sroa.0.0.copyload.i.1 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.1, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.1, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> store <4 x double> %23, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !3422 %24 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %25 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4, i64 1 store <4 x double> %24, ptr %25, align 8, !noalias !3422 %exitcond.not.i.1 = icmp eq i64 %15, 256 br i1 %exitcond.not.i.1, label %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h86376cd128a66147E.exit.i", label %bb9.i.i.i "_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h86376cd128a66147E.exit.i": ; preds = %bb9.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3425) tail call void @llvm.experimental.noalias.scope.decl(metadata !3428) tail call void @llvm.experimental.noalias.scope.decl(metadata !3430) %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 br label %bb17.us.i.i bb17.us.i.i: ; preds = %bb17.us.i.i, %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h86376cd128a66147E.exit.i" %iter.sroa.38.0207.us.i.i = phi i64 [ 0, %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h86376cd128a66147E.exit.i" ], [ %50, %bb17.us.i.i ] %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0207.us.i.i %data.i5.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.38.0207.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %27 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %27, align 8, !alias.scope !3430, !noalias !3432, !noundef !3 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %28, align 8, !alias.scope !3430, !noalias !3432, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %31 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3425, !noalias !3433 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3425, !noalias !3433 %33 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i store <4 x double> %33, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3428, !noalias !3434 %34 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %32, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %34, <4 x double> %36) #23 store <4 x double> %37, ptr %30, align 8, !alias.scope !3428, !noalias !3434 %38 = or disjoint i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %38 %data.i5.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %38 %start1.i.i.i.i.i.i.us.i.i.1 = shl nuw i64 %38, 1 %data.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i.1 %39 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1 %w1.0.us.i.i.1 = load double, ptr %39, align 8, !alias.scope !3430, !noalias !3432, !noundef !3 %40 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1, i32 1 %w1.1.us.i.i.1 = load double, ptr %40, align 8, !alias.scope !3430, !noalias !3432, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i.1 = insertelement <2 x double> poison, double %w1.0.us.i.i.1, i64 0 %41 = insertelement <4 x double> poison, double %w1.1.us.i.i.1, i64 0 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i.1, i64 1 %43 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i.1, <2 x double> poison, <4 x i32> zeroinitializer %44 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3425, !noalias !3433 %b.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3425, !noalias !3433 %45 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 store <4 x double> %45, ptr %data.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3428, !noalias !3434 %46 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %44, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %46, <4 x double> %48) #23 store <4 x double> %49, ptr %42, align 8, !alias.scope !3428, !noalias !3434 %50 = add nuw nsw i64 %iter.sroa.38.0207.us.i.i, 2 %exitcond417.not.i.1 = icmp eq i64 %50, 256 br i1 %exitcond417.not.i.1, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i, label %bb17.us.i.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i: ; preds = %bb17.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3435) tail call void @llvm.experimental.noalias.scope.decl(metadata !3438) tail call void @llvm.experimental.noalias.scope.decl(metadata !3440) br label %bb17.us.i57.i bb17.us.i57.i: ; preds = %bb17.us.i57.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i %iter.sroa.38.0207.us.i58.i = phi i64 [ %67, %bb17.us.i57.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i ] %start1.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i58.i, 1 %data.i.i.i.i.i.i.i.i.us.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.us.i60.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i61.i = shl i64 %iter.sroa.38.0207.us.i58.i, 2 %data.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i61.i %51 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i61.i, i64 1 %w1.0.us.i63.i = load double, ptr %51, align 8, !alias.scope !3440, !noalias !3442, !noundef !3 %52 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i61.i, i64 1, i32 1 %w1.1.us.i64.i = load double, ptr %52, align 8, !alias.scope !3440, !noalias !3442, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i65.i = insertelement <2 x double> poison, double %w1.0.us.i63.i, i64 0 %53 = insertelement <4 x double> poison, double %w1.1.us.i64.i, i64 0 %54 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i62.i, i64 2 %55 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i65.i, <2 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i59.i, align 8, !alias.scope !3435, !noalias !3443 %b.sroa.0.0.copyload.us.i73.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i60.i, align 8, !alias.scope !3435, !noalias !3443 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i72.i, %b.sroa.0.0.copyload.us.i73.i store <4 x double> %57, ptr %data.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !3438, !noalias !3444 %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i72.i, %b.sroa.0.0.copyload.us.i73.i %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %56, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %58, <4 x double> %60) #23 store <4 x double> %61, ptr %54, align 8, !alias.scope !3438, !noalias !3444 %_3.i.i.i.i.i.i.i.i.us.i68.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i59.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i69.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i60.i, i64 1 %_3.i.i.i.i.i.i.us.i70.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i62.i, i64 1 %_3.i.i.i.i.us.i71.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i62.i, i64 3 %a.sroa.0.0.copyload.us.i72.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i68.1.i, align 8, !alias.scope !3435, !noalias !3443 %b.sroa.0.0.copyload.us.i73.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i69.1.i, align 8, !alias.scope !3435, !noalias !3443 %62 = fadd <4 x double> %a.sroa.0.0.copyload.us.i72.1.i, %b.sroa.0.0.copyload.us.i73.1.i store <4 x double> %62, ptr %_3.i.i.i.i.i.i.us.i70.1.i, align 8, !alias.scope !3438, !noalias !3444 %63 = fsub <4 x double> %a.sroa.0.0.copyload.us.i72.1.i, %b.sroa.0.0.copyload.us.i73.1.i %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %56, %64 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %63, <4 x double> %65) #23 store <4 x double> %66, ptr %_3.i.i.i.i.us.i71.1.i, align 8, !alias.scope !3438, !noalias !3444 %67 = add nuw nsw i64 %iter.sroa.38.0207.us.i58.i, 1 %exitcond418.not.i = icmp eq i64 %67, 128 br i1 %exitcond418.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit77.i, label %bb17.us.i57.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit77.i: ; preds = %bb17.us.i57.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3445) tail call void @llvm.experimental.noalias.scope.decl(metadata !3448) tail call void @llvm.experimental.noalias.scope.decl(metadata !3450) br label %bb17.us.i91.i bb17.us.i91.i: ; preds = %bb17.us.i91.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit77.i %iter.sroa.38.0207.us.i92.i = phi i64 [ %94, %bb17.us.i91.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit77.i ] %start1.i.i.i.i.i.i.i.i.us.i93.i = shl i64 %iter.sroa.38.0207.us.i92.i, 2 %data.i.i.i.i.i.i.i.i.us.i94.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i93.i %data.i5.i.i.i.i.i.i.i.us.i95.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i93.i %start1.i.i.i.i.i.i.us.i96.i = shl i64 %iter.sroa.38.0207.us.i92.i, 3 %data.i.i.i.i.i.i.us.i97.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i96.i %68 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i96.i, i64 1 %w1.0.us.i98.i = load double, ptr %68, align 8, !alias.scope !3450, !noalias !3452, !noundef !3 %69 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i96.i, i64 1, i32 1 %w1.1.us.i99.i = load double, ptr %69, align 8, !alias.scope !3450, !noalias !3452, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i100.i = insertelement <2 x double> poison, double %w1.0.us.i98.i, i64 0 %70 = insertelement <4 x double> poison, double %w1.1.us.i99.i, i64 0 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 4 %72 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i100.i, <2 x double> poison, <4 x i32> zeroinitializer %73 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i107.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i94.i, align 8, !alias.scope !3445, !noalias !3453 %b.sroa.0.0.copyload.us.i108.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i95.i, align 8, !alias.scope !3445, !noalias !3453 %74 = fadd <4 x double> %a.sroa.0.0.copyload.us.i107.i, %b.sroa.0.0.copyload.us.i108.i store <4 x double> %74, ptr %data.i.i.i.i.i.i.us.i97.i, align 8, !alias.scope !3448, !noalias !3454 %75 = fsub <4 x double> %a.sroa.0.0.copyload.us.i107.i, %b.sroa.0.0.copyload.us.i108.i %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %73, %76 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %75, <4 x double> %77) #23 store <4 x double> %78, ptr %71, align 8, !alias.scope !3448, !noalias !3454 %_3.i.i.i.i.i.i.i.i.us.i103.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i94.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i104.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i95.i, i64 1 %_3.i.i.i.i.i.i.us.i105.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 1 %_3.i.i.i.i.us.i106.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 5 %a.sroa.0.0.copyload.us.i107.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i103.1.i, align 8, !alias.scope !3445, !noalias !3453 %b.sroa.0.0.copyload.us.i108.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i104.1.i, align 8, !alias.scope !3445, !noalias !3453 %79 = fadd <4 x double> %a.sroa.0.0.copyload.us.i107.1.i, %b.sroa.0.0.copyload.us.i108.1.i store <4 x double> %79, ptr %_3.i.i.i.i.i.i.us.i105.1.i, align 8, !alias.scope !3448, !noalias !3454 %80 = fsub <4 x double> %a.sroa.0.0.copyload.us.i107.1.i, %b.sroa.0.0.copyload.us.i108.1.i %81 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %73, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %80, <4 x double> %82) #23 store <4 x double> %83, ptr %_3.i.i.i.i.us.i106.1.i, align 8, !alias.scope !3448, !noalias !3454 %_3.i.i.i.i.i.i.i.i.us.i103.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i94.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i104.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i95.i, i64 2 %_3.i.i.i.i.i.i.us.i105.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 2 %_3.i.i.i.i.us.i106.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 6 %a.sroa.0.0.copyload.us.i107.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i103.2.i, align 8, !alias.scope !3445, !noalias !3453 %b.sroa.0.0.copyload.us.i108.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i104.2.i, align 8, !alias.scope !3445, !noalias !3453 %84 = fadd <4 x double> %a.sroa.0.0.copyload.us.i107.2.i, %b.sroa.0.0.copyload.us.i108.2.i store <4 x double> %84, ptr %_3.i.i.i.i.i.i.us.i105.2.i, align 8, !alias.scope !3448, !noalias !3454 %85 = fsub <4 x double> %a.sroa.0.0.copyload.us.i107.2.i, %b.sroa.0.0.copyload.us.i108.2.i %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %73, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %85, <4 x double> %87) #23 store <4 x double> %88, ptr %_3.i.i.i.i.us.i106.2.i, align 8, !alias.scope !3448, !noalias !3454 %_3.i.i.i.i.i.i.i.i.us.i103.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i94.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i104.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i95.i, i64 3 %_3.i.i.i.i.i.i.us.i105.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 3 %_3.i.i.i.i.us.i106.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i97.i, i64 7 %a.sroa.0.0.copyload.us.i107.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i103.3.i, align 8, !alias.scope !3445, !noalias !3453 %b.sroa.0.0.copyload.us.i108.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i104.3.i, align 8, !alias.scope !3445, !noalias !3453 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i107.3.i, %b.sroa.0.0.copyload.us.i108.3.i store <4 x double> %89, ptr %_3.i.i.i.i.i.i.us.i105.3.i, align 8, !alias.scope !3448, !noalias !3454 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i107.3.i, %b.sroa.0.0.copyload.us.i108.3.i %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %73, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %90, <4 x double> %92) #23 store <4 x double> %93, ptr %_3.i.i.i.i.us.i106.3.i, align 8, !alias.scope !3448, !noalias !3454 %94 = add nuw nsw i64 %iter.sroa.38.0207.us.i92.i, 1 %exitcond419.not.i = icmp eq i64 %94, 64 br i1 %exitcond419.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit112.i, label %bb17.us.i91.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit112.i: ; preds = %bb17.us.i91.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3455) tail call void @llvm.experimental.noalias.scope.decl(metadata !3458) tail call void @llvm.experimental.noalias.scope.decl(metadata !3460) br label %bb17.us.i126.i bb17.us.i126.i: ; preds = %bb17.us.i126.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit112.i %iter.sroa.38.0207.us.i127.i = phi i64 [ %141, %bb17.us.i126.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit112.i ] %start1.i.i.i.i.i.i.i.i.us.i128.i = shl i64 %iter.sroa.38.0207.us.i127.i, 3 %data.i.i.i.i.i.i.i.i.us.i129.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i128.i %data.i5.i.i.i.i.i.i.i.us.i130.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i128.i %start1.i.i.i.i.i.i.us.i131.i = shl i64 %iter.sroa.38.0207.us.i127.i, 4 %data.i.i.i.i.i.i.us.i132.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i131.i %95 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i131.i, i64 1 %w1.0.us.i133.i = load double, ptr %95, align 8, !alias.scope !3460, !noalias !3462, !noundef !3 %96 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i131.i, i64 1, i32 1 %w1.1.us.i134.i = load double, ptr %96, align 8, !alias.scope !3460, !noalias !3462, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i135.i = insertelement <2 x double> poison, double %w1.0.us.i133.i, i64 0 %97 = insertelement <4 x double> poison, double %w1.1.us.i134.i, i64 0 %98 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 8 %99 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i135.i, <2 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i142.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i129.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, align 8, !alias.scope !3455, !noalias !3463 %101 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.i, %b.sroa.0.0.copyload.us.i143.i store <4 x double> %101, ptr %data.i.i.i.i.i.i.us.i132.i, align 8, !alias.scope !3458, !noalias !3464 %102 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.i, %b.sroa.0.0.copyload.us.i143.i %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %100, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %98, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i139.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 1 %_3.i.i.i.i.i.i.us.i140.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 1 %_3.i.i.i.i.us.i141.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 9 %a.sroa.0.0.copyload.us.i142.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.1.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.1.i, align 8, !alias.scope !3455, !noalias !3463 %106 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.1.i, %b.sroa.0.0.copyload.us.i143.1.i store <4 x double> %106, ptr %_3.i.i.i.i.i.i.us.i140.1.i, align 8, !alias.scope !3458, !noalias !3464 %107 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.1.i, %b.sroa.0.0.copyload.us.i143.1.i %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %100, %108 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %107, <4 x double> %109) #23 store <4 x double> %110, ptr %_3.i.i.i.i.us.i141.1.i, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i139.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 2 %_3.i.i.i.i.i.i.us.i140.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 2 %_3.i.i.i.i.us.i141.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 10 %a.sroa.0.0.copyload.us.i142.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.2.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.2.i, align 8, !alias.scope !3455, !noalias !3463 %111 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.2.i, %b.sroa.0.0.copyload.us.i143.2.i store <4 x double> %111, ptr %_3.i.i.i.i.i.i.us.i140.2.i, align 8, !alias.scope !3458, !noalias !3464 %112 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.2.i, %b.sroa.0.0.copyload.us.i143.2.i %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %100, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %112, <4 x double> %114) #23 store <4 x double> %115, ptr %_3.i.i.i.i.us.i141.2.i, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i139.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 3 %_3.i.i.i.i.i.i.us.i140.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 3 %_3.i.i.i.i.us.i141.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 11 %a.sroa.0.0.copyload.us.i142.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.3.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.3.i, align 8, !alias.scope !3455, !noalias !3463 %116 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.3.i, %b.sroa.0.0.copyload.us.i143.3.i store <4 x double> %116, ptr %_3.i.i.i.i.i.i.us.i140.3.i, align 8, !alias.scope !3458, !noalias !3464 %117 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.3.i, %b.sroa.0.0.copyload.us.i143.3.i %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %100, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %117, <4 x double> %119) #23 store <4 x double> %120, ptr %_3.i.i.i.i.us.i141.3.i, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i139.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 4 %_3.i.i.i.i.i.i.us.i140.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 4 %_3.i.i.i.i.us.i141.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 12 %a.sroa.0.0.copyload.us.i142.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.4.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.4.i, align 8, !alias.scope !3455, !noalias !3463 %121 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.4.i, %b.sroa.0.0.copyload.us.i143.4.i store <4 x double> %121, ptr %_3.i.i.i.i.i.i.us.i140.4.i, align 8, !alias.scope !3458, !noalias !3464 %122 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.4.i, %b.sroa.0.0.copyload.us.i143.4.i %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %100, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %122, <4 x double> %124) #23 store <4 x double> %125, ptr %_3.i.i.i.i.us.i141.4.i, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i139.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 5 %_3.i.i.i.i.i.i.us.i140.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 5 %_3.i.i.i.i.us.i141.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 13 %a.sroa.0.0.copyload.us.i142.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.5.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.5.i, align 8, !alias.scope !3455, !noalias !3463 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.5.i, %b.sroa.0.0.copyload.us.i143.5.i store <4 x double> %126, ptr %_3.i.i.i.i.i.i.us.i140.5.i, align 8, !alias.scope !3458, !noalias !3464 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.5.i, %b.sroa.0.0.copyload.us.i143.5.i %128 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %100, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %127, <4 x double> %129) #23 store <4 x double> %130, ptr %_3.i.i.i.i.us.i141.5.i, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i139.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 6 %_3.i.i.i.i.i.i.us.i140.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 6 %_3.i.i.i.i.us.i141.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 14 %a.sroa.0.0.copyload.us.i142.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.6.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.6.i, align 8, !alias.scope !3455, !noalias !3463 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.6.i, %b.sroa.0.0.copyload.us.i143.6.i store <4 x double> %131, ptr %_3.i.i.i.i.i.i.us.i140.6.i, align 8, !alias.scope !3458, !noalias !3464 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.6.i, %b.sroa.0.0.copyload.us.i143.6.i %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %100, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %132, <4 x double> %134) #23 store <4 x double> %135, ptr %_3.i.i.i.i.us.i141.6.i, align 8, !alias.scope !3458, !noalias !3464 %_3.i.i.i.i.i.i.i.i.us.i138.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i139.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i130.i, i64 7 %_3.i.i.i.i.i.i.us.i140.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 7 %_3.i.i.i.i.us.i141.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i132.i, i64 15 %a.sroa.0.0.copyload.us.i142.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i138.7.i, align 8, !alias.scope !3455, !noalias !3463 %b.sroa.0.0.copyload.us.i143.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i139.7.i, align 8, !alias.scope !3455, !noalias !3463 %136 = fadd <4 x double> %a.sroa.0.0.copyload.us.i142.7.i, %b.sroa.0.0.copyload.us.i143.7.i store <4 x double> %136, ptr %_3.i.i.i.i.i.i.us.i140.7.i, align 8, !alias.scope !3458, !noalias !3464 %137 = fsub <4 x double> %a.sroa.0.0.copyload.us.i142.7.i, %b.sroa.0.0.copyload.us.i143.7.i %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %100, %138 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %137, <4 x double> %139) #23 store <4 x double> %140, ptr %_3.i.i.i.i.us.i141.7.i, align 8, !alias.scope !3458, !noalias !3464 %141 = add nuw nsw i64 %iter.sroa.38.0207.us.i127.i, 1 %exitcond420.not.i = icmp eq i64 %141, 32 br i1 %exitcond420.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit147.i, label %bb17.us.i126.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit147.i: ; preds = %bb17.us.i126.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3465) tail call void @llvm.experimental.noalias.scope.decl(metadata !3468) tail call void @llvm.experimental.noalias.scope.decl(metadata !3470) br label %bb17.us.i161.i bb17.us.i161.i: ; preds = %bb17.us.i161.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit147.i %iter.sroa.38.0207.us.i162.i = phi i64 [ %228, %bb17.us.i161.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit147.i ] %start1.i.i.i.i.i.i.i.i.us.i163.i = shl i64 %iter.sroa.38.0207.us.i162.i, 4 %data.i.i.i.i.i.i.i.i.us.i164.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i163.i %data.i5.i.i.i.i.i.i.i.us.i165.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i163.i %start1.i.i.i.i.i.i.us.i166.i = shl i64 %iter.sroa.38.0207.us.i162.i, 5 %data.i.i.i.i.i.i.us.i167.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i166.i %142 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i166.i, i64 1 %w1.0.us.i168.i = load double, ptr %142, align 8, !alias.scope !3470, !noalias !3472, !noundef !3 %143 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i166.i, i64 1, i32 1 %w1.1.us.i169.i = load double, ptr %143, align 8, !alias.scope !3470, !noalias !3472, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i170.i = insertelement <2 x double> poison, double %w1.0.us.i168.i, i64 0 %144 = insertelement <4 x double> poison, double %w1.1.us.i169.i, i64 0 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 16 %146 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i170.i, <2 x double> poison, <4 x i32> zeroinitializer %147 = shufflevector <4 x double> %144, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i177.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i164.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, align 8, !alias.scope !3465, !noalias !3473 %148 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.i, %b.sroa.0.0.copyload.us.i178.i store <4 x double> %148, ptr %data.i.i.i.i.i.i.us.i167.i, align 8, !alias.scope !3468, !noalias !3474 %149 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.i, %b.sroa.0.0.copyload.us.i178.i %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %147, %150 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %149, <4 x double> %151) #23 store <4 x double> %152, ptr %145, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i174.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 1 %_3.i.i.i.i.i.i.us.i175.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 1 %_3.i.i.i.i.us.i176.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 17 %a.sroa.0.0.copyload.us.i177.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.1.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.1.i, align 8, !alias.scope !3465, !noalias !3473 %153 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.1.i, %b.sroa.0.0.copyload.us.i178.1.i store <4 x double> %153, ptr %_3.i.i.i.i.i.i.us.i175.1.i, align 8, !alias.scope !3468, !noalias !3474 %154 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.1.i, %b.sroa.0.0.copyload.us.i178.1.i %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %147, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %154, <4 x double> %156) #23 store <4 x double> %157, ptr %_3.i.i.i.i.us.i176.1.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i174.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 2 %_3.i.i.i.i.i.i.us.i175.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 2 %_3.i.i.i.i.us.i176.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 18 %a.sroa.0.0.copyload.us.i177.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.2.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.2.i, align 8, !alias.scope !3465, !noalias !3473 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.2.i, %b.sroa.0.0.copyload.us.i178.2.i store <4 x double> %158, ptr %_3.i.i.i.i.i.i.us.i175.2.i, align 8, !alias.scope !3468, !noalias !3474 %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.2.i, %b.sroa.0.0.copyload.us.i178.2.i %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %147, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %159, <4 x double> %161) #23 store <4 x double> %162, ptr %_3.i.i.i.i.us.i176.2.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i174.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 3 %_3.i.i.i.i.i.i.us.i175.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 3 %_3.i.i.i.i.us.i176.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 19 %a.sroa.0.0.copyload.us.i177.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.3.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.3.i, align 8, !alias.scope !3465, !noalias !3473 %163 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.3.i, %b.sroa.0.0.copyload.us.i178.3.i store <4 x double> %163, ptr %_3.i.i.i.i.i.i.us.i175.3.i, align 8, !alias.scope !3468, !noalias !3474 %164 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.3.i, %b.sroa.0.0.copyload.us.i178.3.i %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %147, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %164, <4 x double> %166) #23 store <4 x double> %167, ptr %_3.i.i.i.i.us.i176.3.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i174.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 4 %_3.i.i.i.i.i.i.us.i175.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 4 %_3.i.i.i.i.us.i176.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 20 %a.sroa.0.0.copyload.us.i177.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.4.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.4.i, align 8, !alias.scope !3465, !noalias !3473 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.4.i, %b.sroa.0.0.copyload.us.i178.4.i store <4 x double> %168, ptr %_3.i.i.i.i.i.i.us.i175.4.i, align 8, !alias.scope !3468, !noalias !3474 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.4.i, %b.sroa.0.0.copyload.us.i178.4.i %170 = shufflevector <4 x double> %169, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %147, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %169, <4 x double> %171) #23 store <4 x double> %172, ptr %_3.i.i.i.i.us.i176.4.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i174.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 5 %_3.i.i.i.i.i.i.us.i175.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 5 %_3.i.i.i.i.us.i176.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 21 %a.sroa.0.0.copyload.us.i177.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.5.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.5.i, align 8, !alias.scope !3465, !noalias !3473 %173 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.5.i, %b.sroa.0.0.copyload.us.i178.5.i store <4 x double> %173, ptr %_3.i.i.i.i.i.i.us.i175.5.i, align 8, !alias.scope !3468, !noalias !3474 %174 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.5.i, %b.sroa.0.0.copyload.us.i178.5.i %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %147, %175 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %174, <4 x double> %176) #23 store <4 x double> %177, ptr %_3.i.i.i.i.us.i176.5.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i174.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 6 %_3.i.i.i.i.i.i.us.i175.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 6 %_3.i.i.i.i.us.i176.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 22 %a.sroa.0.0.copyload.us.i177.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.6.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.6.i, align 8, !alias.scope !3465, !noalias !3473 %178 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.6.i, %b.sroa.0.0.copyload.us.i178.6.i store <4 x double> %178, ptr %_3.i.i.i.i.i.i.us.i175.6.i, align 8, !alias.scope !3468, !noalias !3474 %179 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.6.i, %b.sroa.0.0.copyload.us.i178.6.i %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %147, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.us.i176.6.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i174.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 7 %_3.i.i.i.i.i.i.us.i175.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 7 %_3.i.i.i.i.us.i176.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 23 %a.sroa.0.0.copyload.us.i177.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.7.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.7.i, align 8, !alias.scope !3465, !noalias !3473 %183 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.7.i, %b.sroa.0.0.copyload.us.i178.7.i store <4 x double> %183, ptr %_3.i.i.i.i.i.i.us.i175.7.i, align 8, !alias.scope !3468, !noalias !3474 %184 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.7.i, %b.sroa.0.0.copyload.us.i178.7.i %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %147, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %184, <4 x double> %186) #23 store <4 x double> %187, ptr %_3.i.i.i.i.us.i176.7.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i174.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 8 %_3.i.i.i.i.i.i.us.i175.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 8 %_3.i.i.i.i.us.i176.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 24 %a.sroa.0.0.copyload.us.i177.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.8.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.8.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.8.i, align 8, !alias.scope !3465, !noalias !3473 %188 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.8.i, %b.sroa.0.0.copyload.us.i178.8.i store <4 x double> %188, ptr %_3.i.i.i.i.i.i.us.i175.8.i, align 8, !alias.scope !3468, !noalias !3474 %189 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.8.i, %b.sroa.0.0.copyload.us.i178.8.i %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %147, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %189, <4 x double> %191) #23 store <4 x double> %192, ptr %_3.i.i.i.i.us.i176.8.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i174.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 9 %_3.i.i.i.i.i.i.us.i175.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 9 %_3.i.i.i.i.us.i176.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 25 %a.sroa.0.0.copyload.us.i177.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.9.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.9.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.9.i, align 8, !alias.scope !3465, !noalias !3473 %193 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.9.i, %b.sroa.0.0.copyload.us.i178.9.i store <4 x double> %193, ptr %_3.i.i.i.i.i.i.us.i175.9.i, align 8, !alias.scope !3468, !noalias !3474 %194 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.9.i, %b.sroa.0.0.copyload.us.i178.9.i %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %147, %195 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %194, <4 x double> %196) #23 store <4 x double> %197, ptr %_3.i.i.i.i.us.i176.9.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i174.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 10 %_3.i.i.i.i.i.i.us.i175.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 10 %_3.i.i.i.i.us.i176.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 26 %a.sroa.0.0.copyload.us.i177.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.10.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.10.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.10.i, align 8, !alias.scope !3465, !noalias !3473 %198 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.10.i, %b.sroa.0.0.copyload.us.i178.10.i store <4 x double> %198, ptr %_3.i.i.i.i.i.i.us.i175.10.i, align 8, !alias.scope !3468, !noalias !3474 %199 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.10.i, %b.sroa.0.0.copyload.us.i178.10.i %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %147, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %199, <4 x double> %201) #23 store <4 x double> %202, ptr %_3.i.i.i.i.us.i176.10.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i174.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 11 %_3.i.i.i.i.i.i.us.i175.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 11 %_3.i.i.i.i.us.i176.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 27 %a.sroa.0.0.copyload.us.i177.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.11.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.11.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.11.i, align 8, !alias.scope !3465, !noalias !3473 %203 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.11.i, %b.sroa.0.0.copyload.us.i178.11.i store <4 x double> %203, ptr %_3.i.i.i.i.i.i.us.i175.11.i, align 8, !alias.scope !3468, !noalias !3474 %204 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.11.i, %b.sroa.0.0.copyload.us.i178.11.i %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %147, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %204, <4 x double> %206) #23 store <4 x double> %207, ptr %_3.i.i.i.i.us.i176.11.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i174.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 12 %_3.i.i.i.i.i.i.us.i175.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 12 %_3.i.i.i.i.us.i176.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 28 %a.sroa.0.0.copyload.us.i177.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.12.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.12.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.12.i, align 8, !alias.scope !3465, !noalias !3473 %208 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.12.i, %b.sroa.0.0.copyload.us.i178.12.i store <4 x double> %208, ptr %_3.i.i.i.i.i.i.us.i175.12.i, align 8, !alias.scope !3468, !noalias !3474 %209 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.12.i, %b.sroa.0.0.copyload.us.i178.12.i %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = fmul <4 x double> %147, %210 %212 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %209, <4 x double> %211) #23 store <4 x double> %212, ptr %_3.i.i.i.i.us.i176.12.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i174.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 13 %_3.i.i.i.i.i.i.us.i175.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 13 %_3.i.i.i.i.us.i176.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 29 %a.sroa.0.0.copyload.us.i177.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.13.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.13.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.13.i, align 8, !alias.scope !3465, !noalias !3473 %213 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.13.i, %b.sroa.0.0.copyload.us.i178.13.i store <4 x double> %213, ptr %_3.i.i.i.i.i.i.us.i175.13.i, align 8, !alias.scope !3468, !noalias !3474 %214 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.13.i, %b.sroa.0.0.copyload.us.i178.13.i %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %147, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.us.i176.13.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i174.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 14 %_3.i.i.i.i.i.i.us.i175.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 14 %_3.i.i.i.i.us.i176.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 30 %a.sroa.0.0.copyload.us.i177.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.14.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.14.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.14.i, align 8, !alias.scope !3465, !noalias !3473 %218 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.14.i, %b.sroa.0.0.copyload.us.i178.14.i store <4 x double> %218, ptr %_3.i.i.i.i.i.i.us.i175.14.i, align 8, !alias.scope !3468, !noalias !3474 %219 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.14.i, %b.sroa.0.0.copyload.us.i178.14.i %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %147, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.us.i176.14.i, align 8, !alias.scope !3468, !noalias !3474 %_3.i.i.i.i.i.i.i.i.us.i173.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i164.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i174.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i165.i, i64 15 %_3.i.i.i.i.i.i.us.i175.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 15 %_3.i.i.i.i.us.i176.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i167.i, i64 31 %a.sroa.0.0.copyload.us.i177.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i173.15.i, align 8, !alias.scope !3465, !noalias !3473 %b.sroa.0.0.copyload.us.i178.15.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i174.15.i, align 8, !alias.scope !3465, !noalias !3473 %223 = fadd <4 x double> %a.sroa.0.0.copyload.us.i177.15.i, %b.sroa.0.0.copyload.us.i178.15.i store <4 x double> %223, ptr %_3.i.i.i.i.i.i.us.i175.15.i, align 8, !alias.scope !3468, !noalias !3474 %224 = fsub <4 x double> %a.sroa.0.0.copyload.us.i177.15.i, %b.sroa.0.0.copyload.us.i178.15.i %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %147, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %224, <4 x double> %226) #23 store <4 x double> %227, ptr %_3.i.i.i.i.us.i176.15.i, align 8, !alias.scope !3468, !noalias !3474 %228 = add nuw nsw i64 %iter.sroa.38.0207.us.i162.i, 1 %exitcond421.not.i = icmp eq i64 %228, 16 br i1 %exitcond421.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit182.i, label %bb17.us.i161.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit182.i: ; preds = %bb17.us.i161.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3475) tail call void @llvm.experimental.noalias.scope.decl(metadata !3478) tail call void @llvm.experimental.noalias.scope.decl(metadata !3480) %229 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i203.i = load double, ptr %229, align 8, !noalias !3417, !noundef !3 %230 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i204.i = load double, ptr %230, align 8, !noalias !3417, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.i = insertelement <2 x double> poison, double %w1.0.us.i203.i, i64 0 %231 = insertelement <4 x double> poison, double %w1.1.us.i204.i, i64 0 %232 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %233 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.i, <2 x double> poison, <4 x i32> zeroinitializer %234 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.i bb26.us.i206.i: ; preds = %bb26.us.i206.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit182.i %iter6.sroa.22.0205.us.i207.i = phi i64 [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit182.i ], [ %241, %bb26.us.i206.i ] %235 = or disjoint i64 %iter6.sroa.22.0205.us.i207.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0205.us.i207.i %_3.i2.i.i.i.i.i.i.i.us.i209.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0205.us.i207.i %_3.i.i.i.i.i.i.us.i210.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0205.us.i207.i %_3.i.i.i.i.us.i211.i = getelementptr inbounds %"fft_simd::c64x2", ptr %232, i64 %iter6.sroa.22.0205.us.i207.i %a.sroa.0.0.copyload.us.i212.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.i, align 8, !alias.scope !3475, !noalias !3482 %236 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.i, %b.sroa.0.0.copyload.us.i213.i store <4 x double> %236, ptr %_3.i.i.i.i.i.i.us.i210.i, align 8, !alias.scope !3478, !noalias !3483 %237 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.i, %b.sroa.0.0.copyload.us.i213.i %238 = shufflevector <4 x double> %237, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %234, %238 %240 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %237, <4 x double> %239) #23 store <4 x double> %240, ptr %_3.i.i.i.i.us.i211.i, align 8, !alias.scope !3478, !noalias !3483 %241 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %235 %_3.i2.i.i.i.i.i.i.i.us.i209.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %235 %_3.i.i.i.i.i.i.us.i210.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %235 %_3.i.i.i.i.us.i211.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %232, i64 %235 %a.sroa.0.0.copyload.us.i212.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.i.1, align 8, !alias.scope !3475, !noalias !3482 %242 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.i.1, %b.sroa.0.0.copyload.us.i213.i.1 store <4 x double> %242, ptr %_3.i.i.i.i.i.i.us.i210.i.1, align 8, !alias.scope !3478, !noalias !3483 %243 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.i.1, %b.sroa.0.0.copyload.us.i213.i.1 %244 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> %245 = fmul <4 x double> %234, %244 %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %243, <4 x double> %245) #23 store <4 x double> %246, ptr %_3.i.i.i.i.us.i211.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.i.1 = icmp eq i64 %241, 32 br i1 %exitcond.not.i214.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.i, label %bb26.us.i206.i bb24.bb15.loopexit_crit_edge.us.i215.i: ; preds = %bb26.us.i206.i %data.i.i.i.i.i.i.i.i.us.i199.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i.us.i200.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %data.i.i.i.i.i.i.us.i202.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %247 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i203.1.i = load double, ptr %247, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %248 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i204.1.i = load double, ptr %248, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.1.i = insertelement <2 x double> poison, double %w1.0.us.i203.1.i, i64 0 %249 = insertelement <4 x double> poison, double %w1.1.us.i204.1.i, i64 0 %250 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %251 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.1.i, <2 x double> poison, <4 x i32> zeroinitializer %252 = shufflevector <4 x double> %249, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.1.i bb26.us.i206.1.i: ; preds = %bb26.us.i206.1.i, %bb24.bb15.loopexit_crit_edge.us.i215.i %iter6.sroa.22.0205.us.i207.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.i ], [ %259, %bb26.us.i206.1.i ] %253 = or disjoint i64 %iter6.sroa.22.0205.us.i207.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.1.i, i64 %iter6.sroa.22.0205.us.i207.1.i %_3.i2.i.i.i.i.i.i.i.us.i209.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.1.i, i64 %iter6.sroa.22.0205.us.i207.1.i %_3.i.i.i.i.i.i.us.i210.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.1.i, i64 %iter6.sroa.22.0205.us.i207.1.i %_3.i.i.i.i.us.i211.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %iter6.sroa.22.0205.us.i207.1.i %a.sroa.0.0.copyload.us.i212.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.1.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.1.i, align 8, !alias.scope !3475, !noalias !3482 %254 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.1.i, %b.sroa.0.0.copyload.us.i213.1.i store <4 x double> %254, ptr %_3.i.i.i.i.i.i.us.i210.1.i, align 8, !alias.scope !3478, !noalias !3483 %255 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.1.i, %b.sroa.0.0.copyload.us.i213.1.i %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %252, %256 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %251, <4 x double> %255, <4 x double> %257) #23 store <4 x double> %258, ptr %_3.i.i.i.i.us.i211.1.i, align 8, !alias.scope !3478, !noalias !3483 %259 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.1.i, i64 %253 %_3.i2.i.i.i.i.i.i.i.us.i209.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.1.i, i64 %253 %_3.i.i.i.i.i.i.us.i210.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.1.i, i64 %253 %_3.i.i.i.i.us.i211.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %253 %a.sroa.0.0.copyload.us.i212.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.1.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.1.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.1.i.1, align 8, !alias.scope !3475, !noalias !3482 %260 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.1.i.1, %b.sroa.0.0.copyload.us.i213.1.i.1 store <4 x double> %260, ptr %_3.i.i.i.i.i.i.us.i210.1.i.1, align 8, !alias.scope !3478, !noalias !3483 %261 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.1.i.1, %b.sroa.0.0.copyload.us.i213.1.i.1 %262 = shufflevector <4 x double> %261, <4 x double> poison, <4 x i32> %263 = fmul <4 x double> %252, %262 %264 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %251, <4 x double> %261, <4 x double> %263) #23 store <4 x double> %264, ptr %_3.i.i.i.i.us.i211.1.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.1.i.1 = icmp eq i64 %259, 32 br i1 %exitcond.not.i214.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.1.i, label %bb26.us.i206.1.i bb24.bb15.loopexit_crit_edge.us.i215.1.i: ; preds = %bb26.us.i206.1.i %data.i.i.i.i.i.i.i.i.us.i199.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i.us.i200.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %data.i.i.i.i.i.i.us.i202.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %265 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i203.2.i = load double, ptr %265, align 8, !noalias !3417, !noundef !3 %266 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i204.2.i = load double, ptr %266, align 8, !noalias !3417, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.2.i = insertelement <2 x double> poison, double %w1.0.us.i203.2.i, i64 0 %267 = insertelement <4 x double> poison, double %w1.1.us.i204.2.i, i64 0 %268 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %269 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.2.i, <2 x double> poison, <4 x i32> zeroinitializer %270 = shufflevector <4 x double> %267, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.2.i bb26.us.i206.2.i: ; preds = %bb26.us.i206.2.i, %bb24.bb15.loopexit_crit_edge.us.i215.1.i %iter6.sroa.22.0205.us.i207.2.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.1.i ], [ %277, %bb26.us.i206.2.i ] %271 = or disjoint i64 %iter6.sroa.22.0205.us.i207.2.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.2.i, i64 %iter6.sroa.22.0205.us.i207.2.i %_3.i2.i.i.i.i.i.i.i.us.i209.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.2.i, i64 %iter6.sroa.22.0205.us.i207.2.i %_3.i.i.i.i.i.i.us.i210.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.2.i, i64 %iter6.sroa.22.0205.us.i207.2.i %_3.i.i.i.i.us.i211.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %268, i64 %iter6.sroa.22.0205.us.i207.2.i %a.sroa.0.0.copyload.us.i212.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.2.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.2.i, align 8, !alias.scope !3475, !noalias !3482 %272 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.2.i, %b.sroa.0.0.copyload.us.i213.2.i store <4 x double> %272, ptr %_3.i.i.i.i.i.i.us.i210.2.i, align 8, !alias.scope !3478, !noalias !3483 %273 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.2.i, %b.sroa.0.0.copyload.us.i213.2.i %274 = shufflevector <4 x double> %273, <4 x double> poison, <4 x i32> %275 = fmul <4 x double> %270, %274 %276 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %273, <4 x double> %275) #23 store <4 x double> %276, ptr %_3.i.i.i.i.us.i211.2.i, align 8, !alias.scope !3478, !noalias !3483 %277 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.2.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.2.i, i64 %271 %_3.i2.i.i.i.i.i.i.i.us.i209.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.2.i, i64 %271 %_3.i.i.i.i.i.i.us.i210.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.2.i, i64 %271 %_3.i.i.i.i.us.i211.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %268, i64 %271 %a.sroa.0.0.copyload.us.i212.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.2.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.2.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.2.i.1, align 8, !alias.scope !3475, !noalias !3482 %278 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.2.i.1, %b.sroa.0.0.copyload.us.i213.2.i.1 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.us.i210.2.i.1, align 8, !alias.scope !3478, !noalias !3483 %279 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.2.i.1, %b.sroa.0.0.copyload.us.i213.2.i.1 %280 = shufflevector <4 x double> %279, <4 x double> poison, <4 x i32> %281 = fmul <4 x double> %270, %280 %282 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %279, <4 x double> %281) #23 store <4 x double> %282, ptr %_3.i.i.i.i.us.i211.2.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.2.i.1 = icmp eq i64 %277, 32 br i1 %exitcond.not.i214.2.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.2.i, label %bb26.us.i206.2.i bb24.bb15.loopexit_crit_edge.us.i215.2.i: ; preds = %bb26.us.i206.2.i %data.i.i.i.i.i.i.i.i.us.i199.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i.us.i200.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %data.i.i.i.i.i.i.us.i202.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %283 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i203.3.i = load double, ptr %283, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %284 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i204.3.i = load double, ptr %284, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.3.i = insertelement <2 x double> poison, double %w1.0.us.i203.3.i, i64 0 %285 = insertelement <4 x double> poison, double %w1.1.us.i204.3.i, i64 0 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %287 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.3.i, <2 x double> poison, <4 x i32> zeroinitializer %288 = shufflevector <4 x double> %285, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.3.i bb26.us.i206.3.i: ; preds = %bb26.us.i206.3.i, %bb24.bb15.loopexit_crit_edge.us.i215.2.i %iter6.sroa.22.0205.us.i207.3.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.2.i ], [ %295, %bb26.us.i206.3.i ] %289 = or disjoint i64 %iter6.sroa.22.0205.us.i207.3.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.3.i, i64 %iter6.sroa.22.0205.us.i207.3.i %_3.i2.i.i.i.i.i.i.i.us.i209.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.3.i, i64 %iter6.sroa.22.0205.us.i207.3.i %_3.i.i.i.i.i.i.us.i210.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.3.i, i64 %iter6.sroa.22.0205.us.i207.3.i %_3.i.i.i.i.us.i211.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %iter6.sroa.22.0205.us.i207.3.i %a.sroa.0.0.copyload.us.i212.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.3.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.3.i, align 8, !alias.scope !3475, !noalias !3482 %290 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.3.i, %b.sroa.0.0.copyload.us.i213.3.i store <4 x double> %290, ptr %_3.i.i.i.i.i.i.us.i210.3.i, align 8, !alias.scope !3478, !noalias !3483 %291 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.3.i, %b.sroa.0.0.copyload.us.i213.3.i %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = fmul <4 x double> %288, %292 %294 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %287, <4 x double> %291, <4 x double> %293) #23 store <4 x double> %294, ptr %_3.i.i.i.i.us.i211.3.i, align 8, !alias.scope !3478, !noalias !3483 %295 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.3.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.3.i, i64 %289 %_3.i2.i.i.i.i.i.i.i.us.i209.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.3.i, i64 %289 %_3.i.i.i.i.i.i.us.i210.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.3.i, i64 %289 %_3.i.i.i.i.us.i211.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %289 %a.sroa.0.0.copyload.us.i212.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.3.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.3.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.3.i.1, align 8, !alias.scope !3475, !noalias !3482 %296 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.3.i.1, %b.sroa.0.0.copyload.us.i213.3.i.1 store <4 x double> %296, ptr %_3.i.i.i.i.i.i.us.i210.3.i.1, align 8, !alias.scope !3478, !noalias !3483 %297 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.3.i.1, %b.sroa.0.0.copyload.us.i213.3.i.1 %298 = shufflevector <4 x double> %297, <4 x double> poison, <4 x i32> %299 = fmul <4 x double> %288, %298 %300 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %287, <4 x double> %297, <4 x double> %299) #23 store <4 x double> %300, ptr %_3.i.i.i.i.us.i211.3.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.3.i.1 = icmp eq i64 %295, 32 br i1 %exitcond.not.i214.3.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.3.i, label %bb26.us.i206.3.i bb24.bb15.loopexit_crit_edge.us.i215.3.i: ; preds = %bb26.us.i206.3.i %data.i.i.i.i.i.i.i.i.us.i199.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %data.i5.i.i.i.i.i.i.i.us.i200.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %301 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1 %w1.0.us.i203.4.i = load double, ptr %301, align 8, !noalias !3417, !noundef !3 %302 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1, i32 1 %w1.1.us.i204.4.i = load double, ptr %302, align 8, !noalias !3417, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.4.i = insertelement <2 x double> poison, double %w1.0.us.i203.4.i, i64 0 %303 = insertelement <4 x double> poison, double %w1.1.us.i204.4.i, i64 0 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %305 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.4.i, <2 x double> poison, <4 x i32> zeroinitializer %306 = shufflevector <4 x double> %303, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.4.i bb26.us.i206.4.i: ; preds = %bb26.us.i206.4.i, %bb24.bb15.loopexit_crit_edge.us.i215.3.i %iter6.sroa.22.0205.us.i207.4.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.3.i ], [ %313, %bb26.us.i206.4.i ] %307 = or disjoint i64 %iter6.sroa.22.0205.us.i207.4.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.4.i, i64 %iter6.sroa.22.0205.us.i207.4.i %_3.i2.i.i.i.i.i.i.i.us.i209.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.4.i, i64 %iter6.sroa.22.0205.us.i207.4.i %_3.i.i.i.i.i.i.us.i210.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.sroa.22.0205.us.i207.4.i %_3.i.i.i.i.us.i211.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter6.sroa.22.0205.us.i207.4.i %a.sroa.0.0.copyload.us.i212.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.4.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.4.i, align 8, !alias.scope !3475, !noalias !3482 %308 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.4.i, %b.sroa.0.0.copyload.us.i213.4.i store <4 x double> %308, ptr %_3.i.i.i.i.i.i.us.i210.4.i, align 8, !alias.scope !3478, !noalias !3483 %309 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.4.i, %b.sroa.0.0.copyload.us.i213.4.i %310 = shufflevector <4 x double> %309, <4 x double> poison, <4 x i32> %311 = fmul <4 x double> %306, %310 %312 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %309, <4 x double> %311) #23 store <4 x double> %312, ptr %_3.i.i.i.i.us.i211.4.i, align 8, !alias.scope !3478, !noalias !3483 %313 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.4.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.4.i, i64 %307 %_3.i2.i.i.i.i.i.i.i.us.i209.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.4.i, i64 %307 %_3.i.i.i.i.i.i.us.i210.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %307 %_3.i.i.i.i.us.i211.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %307 %a.sroa.0.0.copyload.us.i212.4.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.4.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.4.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.4.i.1, align 8, !alias.scope !3475, !noalias !3482 %314 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.4.i.1, %b.sroa.0.0.copyload.us.i213.4.i.1 store <4 x double> %314, ptr %_3.i.i.i.i.i.i.us.i210.4.i.1, align 8, !alias.scope !3478, !noalias !3483 %315 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.4.i.1, %b.sroa.0.0.copyload.us.i213.4.i.1 %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fmul <4 x double> %306, %316 %318 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %315, <4 x double> %317) #23 store <4 x double> %318, ptr %_3.i.i.i.i.us.i211.4.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.4.i.1 = icmp eq i64 %313, 32 br i1 %exitcond.not.i214.4.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.4.i, label %bb26.us.i206.4.i bb24.bb15.loopexit_crit_edge.us.i215.4.i: ; preds = %bb26.us.i206.4.i %data.i.i.i.i.i.i.i.i.us.i199.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %data.i5.i.i.i.i.i.i.i.us.i200.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %data.i.i.i.i.i.i.us.i202.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %319 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1 %w1.0.us.i203.5.i = load double, ptr %319, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %320 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1, i32 1 %w1.1.us.i204.5.i = load double, ptr %320, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.5.i = insertelement <2 x double> poison, double %w1.0.us.i203.5.i, i64 0 %321 = insertelement <4 x double> poison, double %w1.1.us.i204.5.i, i64 0 %322 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %323 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.5.i, <2 x double> poison, <4 x i32> zeroinitializer %324 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.5.i bb26.us.i206.5.i: ; preds = %bb26.us.i206.5.i, %bb24.bb15.loopexit_crit_edge.us.i215.4.i %iter6.sroa.22.0205.us.i207.5.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.4.i ], [ %331, %bb26.us.i206.5.i ] %325 = or disjoint i64 %iter6.sroa.22.0205.us.i207.5.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.5.i, i64 %iter6.sroa.22.0205.us.i207.5.i %_3.i2.i.i.i.i.i.i.i.us.i209.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.5.i, i64 %iter6.sroa.22.0205.us.i207.5.i %_3.i.i.i.i.i.i.us.i210.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.5.i, i64 %iter6.sroa.22.0205.us.i207.5.i %_3.i.i.i.i.us.i211.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %322, i64 %iter6.sroa.22.0205.us.i207.5.i %a.sroa.0.0.copyload.us.i212.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.5.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.5.i, align 8, !alias.scope !3475, !noalias !3482 %326 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.5.i, %b.sroa.0.0.copyload.us.i213.5.i store <4 x double> %326, ptr %_3.i.i.i.i.i.i.us.i210.5.i, align 8, !alias.scope !3478, !noalias !3483 %327 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.5.i, %b.sroa.0.0.copyload.us.i213.5.i %328 = shufflevector <4 x double> %327, <4 x double> poison, <4 x i32> %329 = fmul <4 x double> %324, %328 %330 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %327, <4 x double> %329) #23 store <4 x double> %330, ptr %_3.i.i.i.i.us.i211.5.i, align 8, !alias.scope !3478, !noalias !3483 %331 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.5.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.5.i, i64 %325 %_3.i2.i.i.i.i.i.i.i.us.i209.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.5.i, i64 %325 %_3.i.i.i.i.i.i.us.i210.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.5.i, i64 %325 %_3.i.i.i.i.us.i211.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %322, i64 %325 %a.sroa.0.0.copyload.us.i212.5.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.5.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.5.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.5.i.1, align 8, !alias.scope !3475, !noalias !3482 %332 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.5.i.1, %b.sroa.0.0.copyload.us.i213.5.i.1 store <4 x double> %332, ptr %_3.i.i.i.i.i.i.us.i210.5.i.1, align 8, !alias.scope !3478, !noalias !3483 %333 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.5.i.1, %b.sroa.0.0.copyload.us.i213.5.i.1 %334 = shufflevector <4 x double> %333, <4 x double> poison, <4 x i32> %335 = fmul <4 x double> %324, %334 %336 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %333, <4 x double> %335) #23 store <4 x double> %336, ptr %_3.i.i.i.i.us.i211.5.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.5.i.1 = icmp eq i64 %331, 32 br i1 %exitcond.not.i214.5.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.5.i, label %bb26.us.i206.5.i bb24.bb15.loopexit_crit_edge.us.i215.5.i: ; preds = %bb26.us.i206.5.i %data.i.i.i.i.i.i.i.i.us.i199.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %data.i5.i.i.i.i.i.i.i.us.i200.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %data.i.i.i.i.i.i.us.i202.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %337 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1 %w1.0.us.i203.6.i = load double, ptr %337, align 8, !noalias !3417, !noundef !3 %338 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1, i32 1 %w1.1.us.i204.6.i = load double, ptr %338, align 8, !noalias !3417, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.6.i = insertelement <2 x double> poison, double %w1.0.us.i203.6.i, i64 0 %339 = insertelement <4 x double> poison, double %w1.1.us.i204.6.i, i64 0 %340 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %341 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.6.i, <2 x double> poison, <4 x i32> zeroinitializer %342 = shufflevector <4 x double> %339, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.6.i bb26.us.i206.6.i: ; preds = %bb26.us.i206.6.i, %bb24.bb15.loopexit_crit_edge.us.i215.5.i %iter6.sroa.22.0205.us.i207.6.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.5.i ], [ %349, %bb26.us.i206.6.i ] %343 = or disjoint i64 %iter6.sroa.22.0205.us.i207.6.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.6.i, i64 %iter6.sroa.22.0205.us.i207.6.i %_3.i2.i.i.i.i.i.i.i.us.i209.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.6.i, i64 %iter6.sroa.22.0205.us.i207.6.i %_3.i.i.i.i.i.i.us.i210.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.6.i, i64 %iter6.sroa.22.0205.us.i207.6.i %_3.i.i.i.i.us.i211.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %340, i64 %iter6.sroa.22.0205.us.i207.6.i %a.sroa.0.0.copyload.us.i212.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.6.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.6.i, align 8, !alias.scope !3475, !noalias !3482 %344 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.6.i, %b.sroa.0.0.copyload.us.i213.6.i store <4 x double> %344, ptr %_3.i.i.i.i.i.i.us.i210.6.i, align 8, !alias.scope !3478, !noalias !3483 %345 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.6.i, %b.sroa.0.0.copyload.us.i213.6.i %346 = shufflevector <4 x double> %345, <4 x double> poison, <4 x i32> %347 = fmul <4 x double> %342, %346 %348 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %341, <4 x double> %345, <4 x double> %347) #23 store <4 x double> %348, ptr %_3.i.i.i.i.us.i211.6.i, align 8, !alias.scope !3478, !noalias !3483 %349 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.6.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.6.i, i64 %343 %_3.i2.i.i.i.i.i.i.i.us.i209.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.6.i, i64 %343 %_3.i.i.i.i.i.i.us.i210.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.6.i, i64 %343 %_3.i.i.i.i.us.i211.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %340, i64 %343 %a.sroa.0.0.copyload.us.i212.6.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.6.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.6.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.6.i.1, align 8, !alias.scope !3475, !noalias !3482 %350 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.6.i.1, %b.sroa.0.0.copyload.us.i213.6.i.1 store <4 x double> %350, ptr %_3.i.i.i.i.i.i.us.i210.6.i.1, align 8, !alias.scope !3478, !noalias !3483 %351 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.6.i.1, %b.sroa.0.0.copyload.us.i213.6.i.1 %352 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> %353 = fmul <4 x double> %342, %352 %354 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %341, <4 x double> %351, <4 x double> %353) #23 store <4 x double> %354, ptr %_3.i.i.i.i.us.i211.6.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.6.i.1 = icmp eq i64 %349, 32 br i1 %exitcond.not.i214.6.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.6.i, label %bb26.us.i206.6.i bb24.bb15.loopexit_crit_edge.us.i215.6.i: ; preds = %bb26.us.i206.6.i %data.i.i.i.i.i.i.i.i.us.i199.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %data.i5.i.i.i.i.i.i.i.us.i200.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %data.i.i.i.i.i.i.us.i202.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %355 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1 %w1.0.us.i203.7.i = load double, ptr %355, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %356 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1, i32 1 %w1.1.us.i204.7.i = load double, ptr %356, align 8, !alias.scope !3480, !noalias !3484, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i205.7.i = insertelement <2 x double> poison, double %w1.0.us.i203.7.i, i64 0 %357 = insertelement <4 x double> poison, double %w1.1.us.i204.7.i, i64 0 %358 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 %359 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i205.7.i, <2 x double> poison, <4 x i32> zeroinitializer %360 = shufflevector <4 x double> %357, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i206.7.i bb26.us.i206.7.i: ; preds = %bb26.us.i206.7.i, %bb24.bb15.loopexit_crit_edge.us.i215.6.i %iter6.sroa.22.0205.us.i207.7.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.6.i ], [ %367, %bb26.us.i206.7.i ] %361 = or disjoint i64 %iter6.sroa.22.0205.us.i207.7.i, 1 %_3.i.i.i.i.i.i.i.i.us.i208.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.7.i, i64 %iter6.sroa.22.0205.us.i207.7.i %_3.i2.i.i.i.i.i.i.i.us.i209.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.7.i, i64 %iter6.sroa.22.0205.us.i207.7.i %_3.i.i.i.i.i.i.us.i210.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.7.i, i64 %iter6.sroa.22.0205.us.i207.7.i %_3.i.i.i.i.us.i211.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %358, i64 %iter6.sroa.22.0205.us.i207.7.i %a.sroa.0.0.copyload.us.i212.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.7.i, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.7.i, align 8, !alias.scope !3475, !noalias !3482 %362 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.7.i, %b.sroa.0.0.copyload.us.i213.7.i store <4 x double> %362, ptr %_3.i.i.i.i.i.i.us.i210.7.i, align 8, !alias.scope !3478, !noalias !3483 %363 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.7.i, %b.sroa.0.0.copyload.us.i213.7.i %364 = shufflevector <4 x double> %363, <4 x double> poison, <4 x i32> %365 = fmul <4 x double> %360, %364 %366 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %359, <4 x double> %363, <4 x double> %365) #23 store <4 x double> %366, ptr %_3.i.i.i.i.us.i211.7.i, align 8, !alias.scope !3478, !noalias !3483 %367 = add nuw nsw i64 %iter6.sroa.22.0205.us.i207.7.i, 2 %_3.i.i.i.i.i.i.i.i.us.i208.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.7.i, i64 %361 %_3.i2.i.i.i.i.i.i.i.us.i209.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.7.i, i64 %361 %_3.i.i.i.i.i.i.us.i210.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.7.i, i64 %361 %_3.i.i.i.i.us.i211.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %358, i64 %361 %a.sroa.0.0.copyload.us.i212.7.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i208.7.i.1, align 8, !alias.scope !3475, !noalias !3482 %b.sroa.0.0.copyload.us.i213.7.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i209.7.i.1, align 8, !alias.scope !3475, !noalias !3482 %368 = fadd <4 x double> %a.sroa.0.0.copyload.us.i212.7.i.1, %b.sroa.0.0.copyload.us.i213.7.i.1 store <4 x double> %368, ptr %_3.i.i.i.i.i.i.us.i210.7.i.1, align 8, !alias.scope !3478, !noalias !3483 %369 = fsub <4 x double> %a.sroa.0.0.copyload.us.i212.7.i.1, %b.sroa.0.0.copyload.us.i213.7.i.1 %370 = shufflevector <4 x double> %369, <4 x double> poison, <4 x i32> %371 = fmul <4 x double> %360, %370 %372 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %359, <4 x double> %369, <4 x double> %371) #23 store <4 x double> %372, ptr %_3.i.i.i.i.us.i211.7.i.1, align 8, !alias.scope !3478, !noalias !3483 %exitcond.not.i214.7.i.1 = icmp eq i64 %367, 32 br i1 %exitcond.not.i214.7.i.1, label %bb24.bb15.loopexit_crit_edge.us.i215.7.i, label %bb26.us.i206.7.i bb24.bb15.loopexit_crit_edge.us.i215.7.i: ; preds = %bb26.us.i206.7.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3485) tail call void @llvm.experimental.noalias.scope.decl(metadata !3488) br label %bb26.us.i241.i bb26.us.i241.i: ; preds = %bb26.us.i241.i, %bb24.bb15.loopexit_crit_edge.us.i215.7.i %iter6.sroa.22.0205.us.i242.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i215.7.i ], [ %379, %bb26.us.i241.i ] %373 = or disjoint i64 %iter6.sroa.22.0205.us.i242.i, 1 %_3.i.i.i.i.i.i.i.i.us.i243.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0205.us.i242.i %_3.i2.i.i.i.i.i.i.i.us.i244.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.sroa.22.0205.us.i242.i %_3.i.i.i.i.i.i.us.i245.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0205.us.i242.i %_3.i.i.i.i.us.i246.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.2.i, i64 %iter6.sroa.22.0205.us.i242.i %a.sroa.0.0.copyload.us.i247.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.i, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.i, align 8, !alias.scope !3485, !noalias !3490 %374 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.i, %b.sroa.0.0.copyload.us.i248.i store <4 x double> %374, ptr %_3.i.i.i.i.i.i.us.i245.i, align 8, !alias.scope !3488, !noalias !3492 %375 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.i, %b.sroa.0.0.copyload.us.i248.i %376 = shufflevector <4 x double> %375, <4 x double> poison, <4 x i32> %377 = fmul <4 x double> %234, %376 %378 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %375, <4 x double> %377) #23 store <4 x double> %378, ptr %_3.i.i.i.i.us.i246.i, align 8, !alias.scope !3488, !noalias !3492 %379 = add nuw nsw i64 %iter6.sroa.22.0205.us.i242.i, 2 %_3.i.i.i.i.i.i.i.i.us.i243.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %373 %_3.i2.i.i.i.i.i.i.i.us.i244.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %373 %_3.i.i.i.i.i.i.us.i245.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %373 %_3.i.i.i.i.us.i246.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.2.i, i64 %373 %a.sroa.0.0.copyload.us.i247.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.i.1, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.i.1, align 8, !alias.scope !3485, !noalias !3490 %380 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.i.1, %b.sroa.0.0.copyload.us.i248.i.1 store <4 x double> %380, ptr %_3.i.i.i.i.i.i.us.i245.i.1, align 8, !alias.scope !3488, !noalias !3492 %381 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.i.1, %b.sroa.0.0.copyload.us.i248.i.1 %382 = shufflevector <4 x double> %381, <4 x double> poison, <4 x i32> %383 = fmul <4 x double> %234, %382 %384 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %381, <4 x double> %383) #23 store <4 x double> %384, ptr %_3.i.i.i.i.us.i246.i.1, align 8, !alias.scope !3488, !noalias !3492 %exitcond.not.i249.i.1 = icmp eq i64 %379, 64 br i1 %exitcond.not.i249.i.1, label %bb26.us.i241.1.i, label %bb26.us.i241.i bb26.us.i241.1.i: ; preds = %bb26.us.i241.i, %bb26.us.i241.1.i %iter6.sroa.22.0205.us.i242.1.i = phi i64 [ %391, %bb26.us.i241.1.i ], [ 0, %bb26.us.i241.i ] %385 = or disjoint i64 %iter6.sroa.22.0205.us.i242.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i243.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.1.i, i64 %iter6.sroa.22.0205.us.i242.1.i %_3.i2.i.i.i.i.i.i.i.us.i244.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.5.i, i64 %iter6.sroa.22.0205.us.i242.1.i %_3.i.i.i.i.i.i.us.i245.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.4.i, i64 %iter6.sroa.22.0205.us.i242.1.i %_3.i.i.i.i.us.i246.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.6.i, i64 %iter6.sroa.22.0205.us.i242.1.i %a.sroa.0.0.copyload.us.i247.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.1.i, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.1.i, align 8, !alias.scope !3485, !noalias !3490 %386 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.1.i, %b.sroa.0.0.copyload.us.i248.1.i store <4 x double> %386, ptr %_3.i.i.i.i.i.i.us.i245.1.i, align 8, !alias.scope !3488, !noalias !3492 %387 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.1.i, %b.sroa.0.0.copyload.us.i248.1.i %388 = shufflevector <4 x double> %387, <4 x double> poison, <4 x i32> %389 = fmul <4 x double> %270, %388 %390 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %387, <4 x double> %389) #23 store <4 x double> %390, ptr %_3.i.i.i.i.us.i246.1.i, align 8, !alias.scope !3488, !noalias !3492 %391 = add nuw nsw i64 %iter6.sroa.22.0205.us.i242.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i243.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.1.i, i64 %385 %_3.i2.i.i.i.i.i.i.i.us.i244.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.5.i, i64 %385 %_3.i.i.i.i.i.i.us.i245.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.4.i, i64 %385 %_3.i.i.i.i.us.i246.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.6.i, i64 %385 %a.sroa.0.0.copyload.us.i247.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.1.i.1, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.1.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.1.i.1, align 8, !alias.scope !3485, !noalias !3490 %392 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.1.i.1, %b.sroa.0.0.copyload.us.i248.1.i.1 store <4 x double> %392, ptr %_3.i.i.i.i.i.i.us.i245.1.i.1, align 8, !alias.scope !3488, !noalias !3492 %393 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.1.i.1, %b.sroa.0.0.copyload.us.i248.1.i.1 %394 = shufflevector <4 x double> %393, <4 x double> poison, <4 x i32> %395 = fmul <4 x double> %270, %394 %396 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %393, <4 x double> %395) #23 store <4 x double> %396, ptr %_3.i.i.i.i.us.i246.1.i.1, align 8, !alias.scope !3488, !noalias !3492 %exitcond.not.i249.1.i.1 = icmp eq i64 %391, 64 br i1 %exitcond.not.i249.1.i.1, label %bb26.us.i241.2.i, label %bb26.us.i241.1.i bb26.us.i241.2.i: ; preds = %bb26.us.i241.1.i, %bb26.us.i241.2.i %iter6.sroa.22.0205.us.i242.2.i = phi i64 [ %403, %bb26.us.i241.2.i ], [ 0, %bb26.us.i241.1.i ] %397 = or disjoint i64 %iter6.sroa.22.0205.us.i242.2.i, 1 %_3.i.i.i.i.i.i.i.i.us.i243.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.2.i, i64 %iter6.sroa.22.0205.us.i242.2.i %_3.i2.i.i.i.i.i.i.i.us.i244.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.6.i, i64 %iter6.sroa.22.0205.us.i242.2.i %_3.i.i.i.i.i.i.us.i245.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0205.us.i242.2.i %_3.i.i.i.i.us.i246.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.2.i, i64 %iter6.sroa.22.0205.us.i242.2.i %a.sroa.0.0.copyload.us.i247.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.2.i, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.2.i, align 8, !alias.scope !3485, !noalias !3490 %398 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.2.i, %b.sroa.0.0.copyload.us.i248.2.i store <4 x double> %398, ptr %_3.i.i.i.i.i.i.us.i245.2.i, align 8, !alias.scope !3488, !noalias !3492 %399 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.2.i, %b.sroa.0.0.copyload.us.i248.2.i %400 = shufflevector <4 x double> %399, <4 x double> poison, <4 x i32> %401 = fmul <4 x double> %306, %400 %402 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %399, <4 x double> %401) #23 store <4 x double> %402, ptr %_3.i.i.i.i.us.i246.2.i, align 8, !alias.scope !3488, !noalias !3492 %403 = add nuw nsw i64 %iter6.sroa.22.0205.us.i242.2.i, 2 %_3.i.i.i.i.i.i.i.i.us.i243.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.2.i, i64 %397 %_3.i2.i.i.i.i.i.i.i.us.i244.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.6.i, i64 %397 %_3.i.i.i.i.i.i.us.i245.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %397 %_3.i.i.i.i.us.i246.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.2.i, i64 %397 %a.sroa.0.0.copyload.us.i247.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.2.i.1, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.2.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.2.i.1, align 8, !alias.scope !3485, !noalias !3490 %404 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.2.i.1, %b.sroa.0.0.copyload.us.i248.2.i.1 store <4 x double> %404, ptr %_3.i.i.i.i.i.i.us.i245.2.i.1, align 8, !alias.scope !3488, !noalias !3492 %405 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.2.i.1, %b.sroa.0.0.copyload.us.i248.2.i.1 %406 = shufflevector <4 x double> %405, <4 x double> poison, <4 x i32> %407 = fmul <4 x double> %306, %406 %408 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %405, <4 x double> %407) #23 store <4 x double> %408, ptr %_3.i.i.i.i.us.i246.2.i.1, align 8, !alias.scope !3488, !noalias !3492 %exitcond.not.i249.2.i.1 = icmp eq i64 %403, 64 br i1 %exitcond.not.i249.2.i.1, label %bb26.us.i241.3.i, label %bb26.us.i241.2.i bb26.us.i241.3.i: ; preds = %bb26.us.i241.2.i, %bb26.us.i241.3.i %iter6.sroa.22.0205.us.i242.3.i = phi i64 [ %415, %bb26.us.i241.3.i ], [ 0, %bb26.us.i241.2.i ] %409 = or disjoint i64 %iter6.sroa.22.0205.us.i242.3.i, 1 %_3.i.i.i.i.i.i.i.i.us.i243.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.3.i, i64 %iter6.sroa.22.0205.us.i242.3.i %_3.i2.i.i.i.i.i.i.i.us.i244.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.7.i, i64 %iter6.sroa.22.0205.us.i242.3.i %_3.i.i.i.i.i.i.us.i245.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.4.i, i64 %iter6.sroa.22.0205.us.i242.3.i %_3.i.i.i.i.us.i246.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.6.i, i64 %iter6.sroa.22.0205.us.i242.3.i %a.sroa.0.0.copyload.us.i247.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.3.i, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.3.i, align 8, !alias.scope !3485, !noalias !3490 %410 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.3.i, %b.sroa.0.0.copyload.us.i248.3.i store <4 x double> %410, ptr %_3.i.i.i.i.i.i.us.i245.3.i, align 8, !alias.scope !3488, !noalias !3492 %411 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.3.i, %b.sroa.0.0.copyload.us.i248.3.i %412 = shufflevector <4 x double> %411, <4 x double> poison, <4 x i32> %413 = fmul <4 x double> %342, %412 %414 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %341, <4 x double> %411, <4 x double> %413) #23 store <4 x double> %414, ptr %_3.i.i.i.i.us.i246.3.i, align 8, !alias.scope !3488, !noalias !3492 %415 = add nuw nsw i64 %iter6.sroa.22.0205.us.i242.3.i, 2 %_3.i.i.i.i.i.i.i.i.us.i243.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.3.i, i64 %409 %_3.i2.i.i.i.i.i.i.i.us.i244.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.7.i, i64 %409 %_3.i.i.i.i.i.i.us.i245.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.4.i, i64 %409 %_3.i.i.i.i.us.i246.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.6.i, i64 %409 %a.sroa.0.0.copyload.us.i247.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i243.3.i.1, align 8, !alias.scope !3485, !noalias !3490 %b.sroa.0.0.copyload.us.i248.3.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i244.3.i.1, align 8, !alias.scope !3485, !noalias !3490 %416 = fadd <4 x double> %a.sroa.0.0.copyload.us.i247.3.i.1, %b.sroa.0.0.copyload.us.i248.3.i.1 store <4 x double> %416, ptr %_3.i.i.i.i.i.i.us.i245.3.i.1, align 8, !alias.scope !3488, !noalias !3492 %417 = fsub <4 x double> %a.sroa.0.0.copyload.us.i247.3.i.1, %b.sroa.0.0.copyload.us.i248.3.i.1 %418 = shufflevector <4 x double> %417, <4 x double> poison, <4 x i32> %419 = fmul <4 x double> %342, %418 %420 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %341, <4 x double> %417, <4 x double> %419) #23 store <4 x double> %420, ptr %_3.i.i.i.i.us.i246.3.i.1, align 8, !alias.scope !3488, !noalias !3492 %exitcond.not.i249.3.i.1 = icmp eq i64 %415, 64 br i1 %exitcond.not.i249.3.i.1, label %bb24.bb15.loopexit_crit_edge.us.i250.3.i, label %bb26.us.i241.3.i bb24.bb15.loopexit_crit_edge.us.i250.3.i: ; preds = %bb26.us.i241.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3493) tail call void @llvm.experimental.noalias.scope.decl(metadata !3496) br label %bb26.us.i276.i bb26.us.i276.i: ; preds = %bb26.us.i276.i, %bb24.bb15.loopexit_crit_edge.us.i250.3.i %iter6.sroa.22.0205.us.i277.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i250.3.i ], [ %427, %bb26.us.i276.i ] %421 = or disjoint i64 %iter6.sroa.22.0205.us.i277.i, 1 %_3.i.i.i.i.i.i.i.i.us.i278.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0205.us.i277.i %_3.i2.i.i.i.i.i.i.i.us.i279.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0205.us.i277.i %_3.i.i.i.i.i.i.us.i280.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0205.us.i277.i %_3.i.i.i.i.us.i281.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.2.i, i64 %iter6.sroa.22.0205.us.i277.i %a.sroa.0.0.copyload.us.i282.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i278.i, align 8, !alias.scope !3493, !noalias !3498 %b.sroa.0.0.copyload.us.i283.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i279.i, align 8, !alias.scope !3493, !noalias !3498 %422 = fadd <4 x double> %a.sroa.0.0.copyload.us.i282.i, %b.sroa.0.0.copyload.us.i283.i store <4 x double> %422, ptr %_3.i.i.i.i.i.i.us.i280.i, align 8, !alias.scope !3496, !noalias !3500 %423 = fsub <4 x double> %a.sroa.0.0.copyload.us.i282.i, %b.sroa.0.0.copyload.us.i283.i %424 = shufflevector <4 x double> %423, <4 x double> poison, <4 x i32> %425 = fmul <4 x double> %234, %424 %426 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %423, <4 x double> %425) #23 store <4 x double> %426, ptr %_3.i.i.i.i.us.i281.i, align 8, !alias.scope !3496, !noalias !3500 %427 = add nuw nsw i64 %iter6.sroa.22.0205.us.i277.i, 2 %_3.i.i.i.i.i.i.i.i.us.i278.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %421 %_3.i2.i.i.i.i.i.i.i.us.i279.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %421 %_3.i.i.i.i.i.i.us.i280.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %421 %_3.i.i.i.i.us.i281.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.2.i, i64 %421 %a.sroa.0.0.copyload.us.i282.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i278.i.1, align 8, !alias.scope !3493, !noalias !3498 %b.sroa.0.0.copyload.us.i283.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i279.i.1, align 8, !alias.scope !3493, !noalias !3498 %428 = fadd <4 x double> %a.sroa.0.0.copyload.us.i282.i.1, %b.sroa.0.0.copyload.us.i283.i.1 store <4 x double> %428, ptr %_3.i.i.i.i.i.i.us.i280.i.1, align 8, !alias.scope !3496, !noalias !3500 %429 = fsub <4 x double> %a.sroa.0.0.copyload.us.i282.i.1, %b.sroa.0.0.copyload.us.i283.i.1 %430 = shufflevector <4 x double> %429, <4 x double> poison, <4 x i32> %431 = fmul <4 x double> %234, %430 %432 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %429, <4 x double> %431) #23 store <4 x double> %432, ptr %_3.i.i.i.i.us.i281.i.1, align 8, !alias.scope !3496, !noalias !3500 %exitcond.not.i284.i.1 = icmp eq i64 %427, 128 br i1 %exitcond.not.i284.i.1, label %bb26.us.i276.1.i, label %bb26.us.i276.i bb26.us.i276.1.i: ; preds = %bb26.us.i276.i, %bb26.us.i276.1.i %iter6.sroa.22.0205.us.i277.1.i = phi i64 [ %439, %bb26.us.i276.1.i ], [ 0, %bb26.us.i276.i ] %433 = or disjoint i64 %iter6.sroa.22.0205.us.i277.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i278.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.4.i, i64 %iter6.sroa.22.0205.us.i277.1.i %_3.i2.i.i.i.i.i.i.i.us.i279.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.4.i, i64 %iter6.sroa.22.0205.us.i277.1.i %_3.i.i.i.i.i.i.us.i280.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.sroa.22.0205.us.i277.1.i %_3.i.i.i.i.us.i281.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.6.i, i64 %iter6.sroa.22.0205.us.i277.1.i %a.sroa.0.0.copyload.us.i282.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i278.1.i, align 8, !alias.scope !3493, !noalias !3498 %b.sroa.0.0.copyload.us.i283.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i279.1.i, align 8, !alias.scope !3493, !noalias !3498 %434 = fadd <4 x double> %a.sroa.0.0.copyload.us.i282.1.i, %b.sroa.0.0.copyload.us.i283.1.i store <4 x double> %434, ptr %_3.i.i.i.i.i.i.us.i280.1.i, align 8, !alias.scope !3496, !noalias !3500 %435 = fsub <4 x double> %a.sroa.0.0.copyload.us.i282.1.i, %b.sroa.0.0.copyload.us.i283.1.i %436 = shufflevector <4 x double> %435, <4 x double> poison, <4 x i32> %437 = fmul <4 x double> %306, %436 %438 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %435, <4 x double> %437) #23 store <4 x double> %438, ptr %_3.i.i.i.i.us.i281.1.i, align 8, !alias.scope !3496, !noalias !3500 %439 = add nuw nsw i64 %iter6.sroa.22.0205.us.i277.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i278.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i199.4.i, i64 %433 %_3.i2.i.i.i.i.i.i.i.us.i279.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i200.4.i, i64 %433 %_3.i.i.i.i.i.i.us.i280.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %433 %_3.i.i.i.i.us.i281.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i202.6.i, i64 %433 %a.sroa.0.0.copyload.us.i282.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i278.1.i.1, align 8, !alias.scope !3493, !noalias !3498 %b.sroa.0.0.copyload.us.i283.1.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i279.1.i.1, align 8, !alias.scope !3493, !noalias !3498 %440 = fadd <4 x double> %a.sroa.0.0.copyload.us.i282.1.i.1, %b.sroa.0.0.copyload.us.i283.1.i.1 store <4 x double> %440, ptr %_3.i.i.i.i.i.i.us.i280.1.i.1, align 8, !alias.scope !3496, !noalias !3500 %441 = fsub <4 x double> %a.sroa.0.0.copyload.us.i282.1.i.1, %b.sroa.0.0.copyload.us.i283.1.i.1 %442 = shufflevector <4 x double> %441, <4 x double> poison, <4 x i32> %443 = fmul <4 x double> %306, %442 %444 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %441, <4 x double> %443) #23 store <4 x double> %444, ptr %_3.i.i.i.i.us.i281.1.i.1, align 8, !alias.scope !3496, !noalias !3500 %exitcond.not.i284.1.i.1 = icmp eq i64 %439, 128 br i1 %exitcond.not.i284.1.i.1, label %bb18.i.i.i.i.i.i, label %bb26.us.i276.1.i bb18.i.i.i.i.i.i: ; preds = %bb26.us.i276.1.i, %bb18.i.i.i.i.i.i %iter6.i.i.i.i.i.sroa.22.0416.i = phi i64 [ %448, %bb18.i.i.i.i.i.i ], [ 0, %bb26.us.i276.1.i ] %445 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.0416.i, 1 %_3.i.i.i.i.i.i.i.i322.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.i.sroa.22.0416.i %_3.i2.i.i.i.i.i.i.i325.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.i.i.i.i.i.sroa.22.0416.i %_3.i.i.i.i.i.i328.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.i.sroa.22.0416.i %_3.i.i.i.i331.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.i.sroa.22.0416.i %_51.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i322.i, align 8, !noalias !3417 %_52.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i325.i, align 8, !noalias !3417 %446 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i %447 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %446, ptr %_3.i.i.i.i.i.i328.i, align 8, !noalias !3417 store <4 x double> %447, ptr %_3.i.i.i.i331.i, align 8, !noalias !3417 %448 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.0416.i, 2 %_3.i.i.i.i.i.i.i.i322.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %445 %_3.i2.i.i.i.i.i.i.i325.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %445 %_3.i.i.i.i.i.i328.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %445 %_3.i.i.i.i331.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %445 %_51.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i322.i.1, align 8, !noalias !3417 %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i325.i.1, align 8, !noalias !3417 %449 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 %450 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %449, ptr %_3.i.i.i.i.i.i328.i.1, align 8, !noalias !3417 store <4 x double> %450, ptr %_3.i.i.i.i331.i.1, align 8, !noalias !3417 %exitcond424.not.i.1 = icmp eq i64 %448, 256 br i1 %exitcond424.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17ha8aff4275509000fE.exit, label %bb18.i.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17ha8aff4275509000fE.exit: ; preds = %bb18.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3417 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h58daaaedc595e503E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3501 store i64 128, ptr %n.i.i, align 8, !noalias !3501 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3501 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3501 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3501 store ptr null, ptr %_16.i.i, align 8, !noalias !3501 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3501 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3501 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3501 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3501 store ptr null, ptr %_24.i.i, align 8, !noalias !3501 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3501 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3501 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3501 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3501 store ptr null, ptr %_32.i.i, align 8, !noalias !3501 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3501 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3501 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3501 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81a66a975f34401dE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3501 store ptr null, ptr %_40.i.i, align 8, !noalias !3501 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81a66a975f34401dE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3501 tail call void @llvm.experimental.noalias.scope.decl(metadata !3506) tail call void @llvm.experimental.noalias.scope.decl(metadata !3509) tail call void @llvm.experimental.noalias.scope.decl(metadata !3511) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81a66a975f34401dE.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81a66a975f34401dE.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3511, !noalias !3513 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3511, !noalias !3513 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3511, !noalias !3513 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3506, !noalias !3514 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3506, !noalias !3514 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3506, !noalias !3514 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3506, !noalias !3514 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3509, !noalias !3515 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !3509, !noalias !3515 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !3509, !noalias !3515 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !3509, !noalias !3515 %exitcond.not.i.i = icmp eq i64 %8, 16 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3516) tail call void @llvm.experimental.noalias.scope.decl(metadata !3519) tail call void @llvm.experimental.noalias.scope.decl(metadata !3521) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !3521, !noalias !3523, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !3521, !noalias !3523, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !3521, !noalias !3523, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !3521, !noalias !3523, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !3521, !noalias !3523, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !3521, !noalias !3523, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3516, !noalias !3524 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3516, !noalias !3524 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3516, !noalias !3524 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3516, !noalias !3524 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3519, !noalias !3525 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !3519, !noalias !3525 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !3519, !noalias !3525 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !3519, !noalias !3525 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3516, !noalias !3524 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3516, !noalias !3524 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3516, !noalias !3524 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3516, !noalias !3524 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3519, !noalias !3525 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3519, !noalias !3525 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3519, !noalias !3525 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !3519, !noalias !3525 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 8 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3526) tail call void @llvm.experimental.noalias.scope.decl(metadata !3529) tail call void @llvm.experimental.noalias.scope.decl(metadata !3531) %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %118 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ], [ %124, %bb38.us.i59.i ] %124 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !3526, !noalias !3534 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !3526, !noalias !3534 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !3526, !noalias !3534 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !3526, !noalias !3534 %125 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %126 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %128 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = bitcast <4 x double> %128 to <4 x i64> %130 = xor <4 x i64> %129, %131 = bitcast <4 x i64> %130 to <4 x double> %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fadd <4 x double> %125, %127 store <4 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !3529, !noalias !3535 %134 = fsub <4 x double> %126, %132 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %119, %135 %137 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %134, <4 x double> %136) #23 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !3529, !noalias !3535 %138 = fsub <4 x double> %125, %127 %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %121, %139 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %138, <4 x double> %140) #23 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !3529, !noalias !3535 %142 = fadd <4 x double> %126, %132 %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %123, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %122, <4 x double> %142, <4 x double> %144) #23 store <4 x double> %145, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !3529, !noalias !3535 %exitcond.not.i73.i = icmp eq i64 %124, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %data.i.i.i.i.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i50.1.i = load double, ptr %146, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i51.1.i = load double, ptr %147, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i52.1.i = load double, ptr %148, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i53.1.i = load double, ptr %149, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i54.1.i = load double, ptr %150, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i55.1.i = load double, ptr %151, align 8, !alias.scope !3531, !noalias !3533, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.1.i = insertelement <2 x double> poison, double %w1.0.us.i50.1.i, i64 0 %152 = insertelement <4 x double> poison, double %w1.1.us.i51.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.1.i = insertelement <2 x double> poison, double %w2.0.us.i52.1.i, i64 0 %153 = insertelement <4 x double> poison, double %w2.1.us.i53.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.1.i = insertelement <2 x double> poison, double %w3.0.us.i54.1.i, i64 0 %154 = insertelement <4 x double> poison, double %w3.1.us.i55.1.i, i64 0 %155 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %156 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %157 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.1.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.1.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.1.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.1.i bb38.us.i59.1.i: ; preds = %bb38.us.i59.1.i, %bb36.bb20.loopexit_crit_edge.us.i74.i %iter5.sroa.50.0697.us.i60.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ %163, %bb38.us.i59.1.i ] %163 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.us.i66.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %155, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.us.i67.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.us.i68.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %156, i64 %iter5.sroa.50.0697.us.i60.1.i %a.sroa.0.0.copyload.us.i69.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i, align 8, !alias.scope !3526, !noalias !3534 %b.sroa.0.0.copyload.us.i70.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i, align 8, !alias.scope !3526, !noalias !3534 %c.sroa.0.0.copyload.us.i71.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i, align 8, !alias.scope !3526, !noalias !3534 %d.sroa.0.0.copyload.us.i72.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i, align 8, !alias.scope !3526, !noalias !3534 %164 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %165 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %166 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %167 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %168 = bitcast <4 x double> %167 to <4 x i64> %169 = xor <4 x i64> %168, %170 = bitcast <4 x i64> %169 to <4 x double> %171 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %172 = fadd <4 x double> %164, %166 store <4 x double> %172, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i, align 8, !alias.scope !3529, !noalias !3535 %173 = fsub <4 x double> %165, %171 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %158, %174 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %173, <4 x double> %175) #23 store <4 x double> %176, ptr %_3.i.i.i.i.i.i.i.i.us.i66.1.i, align 8, !alias.scope !3529, !noalias !3535 %177 = fsub <4 x double> %164, %166 %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %160, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %177, <4 x double> %179) #23 store <4 x double> %180, ptr %_3.i.i.i.i.i.i.us.i67.1.i, align 8, !alias.scope !3529, !noalias !3535 %181 = fadd <4 x double> %165, %171 %182 = shufflevector <4 x double> %181, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %162, %182 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %181, <4 x double> %183) #23 store <4 x double> %184, ptr %_3.i.i.i.i.us.i68.1.i, align 8, !alias.scope !3529, !noalias !3535 %exitcond.not.i73.1.i = icmp eq i64 %163, 8 br i1 %exitcond.not.i73.1.i, label %bb18.i.i.i.i.i, label %bb38.us.i59.1.i bb18.i.i.i.i.i: ; preds = %bb38.us.i59.1.i, %bb18.i.i.i.i.i %iter6.i.i.i.i.sroa.22.0115.i = phi i64 [ %188, %bb18.i.i.i.i.i ], [ 0, %bb38.us.i59.1.i ] %185 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0115.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.sroa.22.0115.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter6.i.i.i.i.sroa.22.0115.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.sroa.22.0115.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.sroa.22.0115.i %_51.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3501 %_52.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3501 %186 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %187 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %186, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3501 store <4 x double> %187, ptr %_3.i.i.i.i.i, align 8, !noalias !3501 %188 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0115.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %185 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %185 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %185 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %185 %_51.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3501 %_52.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !3501 %189 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 %190 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !3501 store <4 x double> %190, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3501 %exitcond116.not.i.1 = icmp eq i64 %188, 32 br i1 %exitcond116.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h3d9781e7a5da917cE.exit, label %bb18.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h3d9781e7a5da917cE.exit: ; preds = %bb18.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3501 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h58eeb456e8a9b012E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3536 store i64 64, ptr %n.i.i, align 8, !noalias !3536 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3536 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3536 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3536 store ptr null, ptr %_16.i.i, align 8, !noalias !3536 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3536 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3536 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3536 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3536 store ptr null, ptr %_24.i.i, align 8, !noalias !3536 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3536 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3536 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3536 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3536 store ptr null, ptr %_32.i.i, align 8, !noalias !3536 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3536 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3536 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3536 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h766ef5da6f59b75cE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3536 store ptr null, ptr %_40.i.i, align 8, !noalias !3536 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h766ef5da6f59b75cE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3536 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %6, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %5, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %7, align 8, !noalias !3541 %8 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = fsub <4 x double> %8, %10 %19 = fadd <4 x double> %9, %15 store <4 x double> %16, ptr %scratch.0, align 8, !noalias !3541 store <4 x double> %17, ptr %3, align 8, !noalias !3541 store <4 x double> %18, ptr %2, align 8, !noalias !3541 store <4 x double> %19, ptr %4, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3541 %20 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %21 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %22 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %23 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = fsub <4 x double> %20, %22 %31 = fadd <4 x double> %21, %27 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3541 store <4 x double> %29, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3541 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3541 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 26 %_3.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_73.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3541 %32 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %33 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %34 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %35 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %36 = bitcast <4 x double> %35 to <4 x i64> %37 = xor <4 x i64> %36, %38 = bitcast <4 x i64> %37 to <4 x double> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = fadd <4 x double> %32, %34 %41 = fsub <4 x double> %33, %39 %42 = fsub <4 x double> %32, %34 %43 = fadd <4 x double> %33, %39 store <4 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3541 store <4 x double> %41, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3541 store <4 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3541 store <4 x double> %43, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_73.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3541 %44 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %45 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %46 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %47 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %48 = bitcast <4 x double> %47 to <4 x i64> %49 = xor <4 x i64> %48, %50 = bitcast <4 x i64> %49 to <4 x double> %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = fadd <4 x double> %44, %46 %53 = fsub <4 x double> %45, %51 %54 = fsub <4 x double> %44, %46 %55 = fadd <4 x double> %45, %51 store <4 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3541 store <4 x double> %53, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3541 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3541 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %_3.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_73.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !3541 %56 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %57 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %58 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %59 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %60 = bitcast <4 x double> %59 to <4 x i64> %61 = xor <4 x i64> %60, %62 = bitcast <4 x i64> %61 to <4 x double> %63 = shufflevector <4 x double> %62, <4 x double> poison, <4 x i32> %64 = fadd <4 x double> %56, %58 %65 = fsub <4 x double> %57, %63 %66 = fsub <4 x double> %56, %58 %67 = fadd <4 x double> %57, %63 store <4 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3541 store <4 x double> %65, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3541 store <4 x double> %66, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3541 store <4 x double> %67, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_73.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !3541 %68 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %69 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %70 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %71 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %72 = bitcast <4 x double> %71 to <4 x i64> %73 = xor <4 x i64> %72, %74 = bitcast <4 x i64> %73 to <4 x double> %75 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> %76 = fadd <4 x double> %68, %70 %77 = fsub <4 x double> %69, %75 %78 = fsub <4 x double> %68, %70 %79 = fadd <4 x double> %69, %75 store <4 x double> %76, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3541 store <4 x double> %77, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3541 store <4 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3541 store <4 x double> %79, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_73.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !3541 %80 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %81 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %82 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %83 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %84 = bitcast <4 x double> %83 to <4 x i64> %85 = xor <4 x i64> %84, %86 = bitcast <4 x i64> %85 to <4 x double> %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fadd <4 x double> %80, %82 %89 = fsub <4 x double> %81, %87 %90 = fsub <4 x double> %80, %82 %91 = fadd <4 x double> %81, %87 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3541 store <4 x double> %89, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3541 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3541 store <4 x double> %91, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3541 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_73.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3541 %_74.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3541 %_75.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !3541 %_76.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !3541 %92 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %93 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %94 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %95 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %96 = bitcast <4 x double> %95 to <4 x i64> %97 = xor <4 x i64> %96, %98 = bitcast <4 x i64> %97 to <4 x double> %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fadd <4 x double> %92, %94 %101 = fsub <4 x double> %93, %99 %102 = fsub <4 x double> %92, %94 %103 = fadd <4 x double> %93, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3541 store <4 x double> %101, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3541 store <4 x double> %102, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3541 store <4 x double> %103, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3541 tail call void @llvm.experimental.noalias.scope.decl(metadata !3545) tail call void @llvm.experimental.noalias.scope.decl(metadata !3548) tail call void @llvm.experimental.noalias.scope.decl(metadata !3550) %104 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %105 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %106 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %107 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %108 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %109 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %110 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %111 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %112 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %113 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %114 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 18 %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 22 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 26 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 30 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h766ef5da6f59b75cE.exit.i" %iter.sroa.218.05279.i.i = phi i64 [ %119, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h766ef5da6f59b75cE.exit.i" ] %119 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %107, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %106, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %108, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %105, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %110, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %109, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %111, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %104, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %114, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %113, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %112, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3550, !noalias !3552 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3548, !noalias !3553 %120 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %120, align 8, !alias.scope !3548, !noalias !3553 %121 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %121, align 8, !alias.scope !3548, !noalias !3553 %122 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %122, align 8, !alias.scope !3548, !noalias !3553 %123 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %123, align 8, !alias.scope !3548, !noalias !3553 %124 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %124, align 8, !alias.scope !3548, !noalias !3553 %125 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %125, align 8, !alias.scope !3548, !noalias !3553 %126 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %126, align 8, !alias.scope !3548, !noalias !3553 %127 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %127, align 8, !alias.scope !3548, !noalias !3553 %128 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %128, align 8, !alias.scope !3548, !noalias !3553 %129 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %129, align 8, !alias.scope !3548, !noalias !3553 %130 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %130, align 8, !alias.scope !3548, !noalias !3553 %131 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %131, align 8, !alias.scope !3548, !noalias !3553 %132 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %132, align 8, !alias.scope !3548, !noalias !3553 %133 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %133, align 8, !alias.scope !3548, !noalias !3553 %134 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %134, align 8, !alias.scope !3548, !noalias !3553 %135 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %136 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %139 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %139, %137 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %138, <4 x double> %136, <4 x double> %140) #23 %142 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %145 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %146 = fmul <4 x double> %145, %143 %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %144, <4 x double> %142, <4 x double> %146) #23 %148 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %151 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %152 = fmul <4 x double> %151, %149 %153 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %150, <4 x double> %148, <4 x double> %152) #23 %154 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %158 = fmul <4 x double> %157, %155 %159 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %156, <4 x double> %154, <4 x double> %158) #23 %160 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %161 = shufflevector <4 x double> %160, <4 x double> poison, <4 x i32> %162 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %163, %161 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %162, <4 x double> %160, <4 x double> %164) #23 %166 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %167 = shufflevector <4 x double> %166, <4 x double> poison, <4 x i32> %168 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %170 = fmul <4 x double> %169, %167 %171 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %168, <4 x double> %166, <4 x double> %170) #23 %172 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %175, %173 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %174, <4 x double> %172, <4 x double> %176) #23 %178 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %179 = shufflevector <4 x double> %178, <4 x double> poison, <4 x i32> %180 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %181, %179 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %180, <4 x double> %178, <4 x double> %182) #23 %184 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %188 = fmul <4 x double> %187, %185 %189 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %186, <4 x double> %184, <4 x double> %188) #23 %190 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %192 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %194 = fmul <4 x double> %193, %191 %195 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %192, <4 x double> %190, <4 x double> %194) #23 %196 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %199 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %200 = fmul <4 x double> %199, %197 %201 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %198, <4 x double> %196, <4 x double> %200) #23 %202 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %205 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %205, %203 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %204, <4 x double> %202, <4 x double> %206) #23 %208 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %211, %209 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %208, <4 x double> %212) #23 %214 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %217, %215 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %216, <4 x double> %214, <4 x double> %218) #23 %220 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %223, %221 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %222, <4 x double> %220, <4 x double> %224) #23 %226 = fadd <4 x double> %135, %183 %227 = fsub <4 x double> %135, %183 %228 = fadd <4 x double> %159, %207 %229 = fsub <4 x double> %159, %207 %230 = fadd <4 x double> %147, %195 %231 = fsub <4 x double> %147, %195 %232 = fadd <4 x double> %171, %219 %233 = fsub <4 x double> %171, %219 %234 = fadd <4 x double> %141, %189 %235 = fsub <4 x double> %141, %189 %236 = fadd <4 x double> %165, %213 %237 = fsub <4 x double> %165, %213 %238 = fadd <4 x double> %153, %201 %239 = fsub <4 x double> %153, %201 %240 = fadd <4 x double> %177, %225 %241 = fsub <4 x double> %177, %225 %242 = bitcast <4 x double> %229 to <4 x i64> %243 = bitcast <4 x double> %233 to <4 x i64> %244 = bitcast <4 x double> %237 to <4 x i64> %245 = bitcast <4 x double> %241 to <4 x i64> %246 = xor <4 x i64> %242, %247 = bitcast <4 x i64> %246 to <4 x double> %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = xor <4 x i64> %243, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = xor <4 x i64> %244, %253 = bitcast <4 x i64> %252 to <4 x double> %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = xor <4 x i64> %245, %256 = bitcast <4 x i64> %255 to <4 x double> %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = fadd <4 x double> %226, %228 %259 = fsub <4 x double> %227, %248 %260 = fsub <4 x double> %226, %228 %261 = fadd <4 x double> %227, %248 %262 = fadd <4 x double> %230, %232 %263 = fsub <4 x double> %231, %251 %264 = fsub <4 x double> %230, %232 %265 = fadd <4 x double> %231, %251 %266 = fadd <4 x double> %234, %236 %267 = fsub <4 x double> %235, %254 %268 = fsub <4 x double> %234, %236 %269 = fadd <4 x double> %235, %254 %270 = fadd <4 x double> %238, %240 %271 = fsub <4 x double> %239, %257 %272 = fsub <4 x double> %238, %240 %273 = fadd <4 x double> %239, %257 %274 = bitcast <4 x double> %263 to <4 x i64> %275 = xor <4 x i64> %274, %276 = bitcast <4 x i64> %275 to <4 x double> %277 = shufflevector <4 x double> %276, <4 x double> poison, <4 x i32> %278 = fadd <4 x double> %263, %277 %279 = fmul <4 x double> %278, %280 = bitcast <4 x double> %264 to <4 x i64> %281 = xor <4 x i64> %280, %282 = bitcast <4 x i64> %281 to <4 x double> %283 = shufflevector <4 x double> %282, <4 x double> poison, <4 x i32> %284 = bitcast <4 x double> %265 to <4 x i64> %285 = xor <4 x i64> %284, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = fadd <4 x double> %265, %287 %289 = fmul <4 x double> %288, %290 = fadd <4 x double> %258, %262 %291 = fadd <4 x double> %259, %279 %292 = fsub <4 x double> %260, %283 %293 = fsub <4 x double> %261, %289 %294 = fsub <4 x double> %258, %262 %295 = fsub <4 x double> %259, %279 %296 = fadd <4 x double> %260, %283 %297 = fadd <4 x double> %261, %289 %298 = bitcast <4 x double> %271 to <4 x i64> %299 = xor <4 x i64> %298, %300 = bitcast <4 x i64> %299 to <4 x double> %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fadd <4 x double> %271, %301 %303 = fmul <4 x double> %302, %304 = bitcast <4 x double> %272 to <4 x i64> %305 = xor <4 x i64> %304, %306 = bitcast <4 x i64> %305 to <4 x double> %307 = shufflevector <4 x double> %306, <4 x double> poison, <4 x i32> %308 = bitcast <4 x double> %273 to <4 x i64> %309 = xor <4 x i64> %308, %310 = bitcast <4 x i64> %309 to <4 x double> %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = fadd <4 x double> %273, %311 %313 = fmul <4 x double> %312, %314 = fadd <4 x double> %266, %270 %315 = fadd <4 x double> %267, %303 %316 = fsub <4 x double> %268, %307 %317 = fsub <4 x double> %269, %313 %318 = fsub <4 x double> %266, %270 %319 = fsub <4 x double> %267, %303 %320 = fadd <4 x double> %268, %307 %321 = fadd <4 x double> %269, %313 %322 = fadd <4 x double> %290, %314 store <4 x double> %322, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %323 = fsub <4 x double> %290, %314 store <4 x double> %323, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %324 = fmul <4 x double> %315, %325 = shufflevector <4 x double> %324, <4 x double> poison, <4 x i32> %326 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %315, <4 x double> %325) #23 %327 = fadd <4 x double> %326, %291 store <4 x double> %327, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %328 = fsub <4 x double> %291, %326 store <4 x double> %328, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %329 = bitcast <4 x double> %316 to <4 x i64> %330 = xor <4 x i64> %329, %331 = bitcast <4 x i64> %330 to <4 x double> %332 = shufflevector <4 x double> %331, <4 x double> poison, <4 x i32> %333 = fadd <4 x double> %316, %332 %334 = fmul <4 x double> %333, %335 = fadd <4 x double> %292, %334 store <4 x double> %335, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %336 = fsub <4 x double> %292, %334 store <4 x double> %336, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %337 = fmul <4 x double> %317, %338 = shufflevector <4 x double> %337, <4 x double> poison, <4 x i32> %339 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %317, <4 x double> %338) #23 %340 = bitcast <4 x double> %318 to <4 x i64> %341 = xor <4 x i64> %340, %342 = bitcast <4 x i64> %341 to <4 x double> %343 = shufflevector <4 x double> %342, <4 x double> poison, <4 x i32> %344 = fmul <4 x double> %319, %345 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> %346 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %319, <4 x double> %345) #23 %.sink.i94.i = fadd <4 x double> %294, %343 %.sink5280.i.i = fsub <4 x double> %294, %343 %.sink5281.i.i = fsub <4 x double> %293, %339 %.sink5282.i.i = fadd <4 x double> %339, %293 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 store <4 x double> %.sink.i94.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %347 = fsub <4 x double> %295, %346 store <4 x double> %347, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %348 = fadd <4 x double> %346, %295 store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %349 = bitcast <4 x double> %320 to <4 x i64> %350 = xor <4 x i64> %349, %351 = bitcast <4 x i64> %350 to <4 x double> %352 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> %353 = fmul <4 x double> %321, %354 = shufflevector <4 x double> %353, <4 x double> poison, <4 x i32> %355 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %321, <4 x double> %354) #23 %.pn5288.in.i.i = fadd <4 x double> %320, %352 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %296, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %296, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %356 = fsub <4 x double> %297, %355 store <4 x double> %356, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %357 = fadd <4 x double> %297, %355 store <4 x double> %357, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3545, !noalias !3554 %exitcond.not.i.i = icmp eq i64 %119, 2 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h1cc6be3f739dd34dE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17h1cc6be3f739dd34dE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3536 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h59d4b4fffcf96db2E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3555 store i64 1024, ptr %n.i, align 8, !noalias !3555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3555 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3555 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3555 store ptr null, ptr %_16.i, align 8, !noalias !3555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3555 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3555 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3555 store ptr null, ptr %_24.i, align 8, !noalias !3555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3555 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3555 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3555 store ptr null, ptr %_32.i, align 8, !noalias !3555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3555 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3555 store i64 %w.1, ptr %_34.i, align 8, !noalias !3555 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3555 store ptr null, ptr %_40.i, align 8, !noalias !3555 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3555 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 br label %vector.body vector.body: ; preds = %vector.body, %bb18.i.i.i.i.preheader %index = phi i64 [ 0, %bb18.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %3 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %wide.vec = load <8 x double>, ptr %2, align 8, !noalias !3558 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %3, align 8, !noalias !3558 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %4 = fadd <4 x double> %strided.vec, %strided.vec3 %5 = fadd <4 x double> %strided.vec1, %strided.vec4 %6 = fsub <4 x double> %strided.vec, %strided.vec3 %7 = fsub <4 x double> %strided.vec1, %strided.vec4 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !3558 %9 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec5 = shufflevector <4 x double> %6, <4 x double> %7, <8 x i32> store <8 x double> %interleaved.vec5, ptr %9, align 8, !noalias !3558 %index.next = or disjoint i64 %index, 4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %11 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %10, align 8, !noalias !3558 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %11, align 8, !noalias !3558 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %13 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %14 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %15 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next %interleaved.vec.1 = shufflevector <4 x double> %12, <4 x double> %13, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %16, align 8, !noalias !3558 %17 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %interleaved.vec5.1 = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %17, align 8, !noalias !3558 %index.next.1 = add nuw nsw i64 %index, 8 %18 = icmp eq i64 %index.next.1, 512 br i1 %18, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !3561 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %21 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 br label %bb32.i.i.i.i bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block6 %_2.i.i.i623 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ false, %middle.block6 ] %iter.i.i.i.i.sroa.104.0178 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ 1, %middle.block6 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 9 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %25 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 256 %26 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %27 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %28 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %29 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 384 %30 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 320 %31 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 448 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %32, align 8, !noalias !3555, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %33, align 8, !noalias !3555, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %34, align 8, !noalias !3555, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %35, align 8, !noalias !3555, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %36, align 8, !noalias !3555, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %37, align 8, !noalias !3555, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %38, align 8, !noalias !3555, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %39, align 8, !noalias !3555, !noundef !3 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %40, align 8, !noalias !3555, !noundef !3 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %41, align 8, !noalias !3555, !noundef !3 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %42, align 8, !noalias !3555, !noundef !3 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %43, align 8, !noalias !3555, !noundef !3 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %44, align 8, !noalias !3555, !noundef !3 %45 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %45, align 8, !noalias !3555, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert43 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat44 = shufflevector <4 x double> %broadcast.splatinsert43, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert45 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat46 = shufflevector <4 x double> %broadcast.splatinsert45, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert47 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat48 = shufflevector <4 x double> %broadcast.splatinsert47, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert52 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat53 = shufflevector <4 x double> %broadcast.splatinsert52, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert54 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat55 = shufflevector <4 x double> %broadcast.splatinsert54, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert56 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat57 = shufflevector <4 x double> %broadcast.splatinsert56, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert65 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert72 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat73 = shufflevector <4 x double> %broadcast.splatinsert72, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert74 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb32.i.i.i.i %index11 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next84, %vector.body10 ] %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index11 %47 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index11 %48 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index11 %49 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index11 %50 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index11 %51 = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %index11 %52 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index11 %53 = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %index11 %wide.vec12 = load <8 x double>, ptr %46, align 8, !noalias !3555 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %47, align 8, !noalias !3555 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %54 = fmul <4 x double> %strided.vec17, %broadcast.splat %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %54) %56 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %57 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %56) %wide.vec22 = load <8 x double>, ptr %48, align 8, !noalias !3555 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %58 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %59 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %58) %60 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %60) %wide.vec31 = load <8 x double>, ptr %49, align 8, !noalias !3555 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %64) %wide.vec40 = load <8 x double>, ptr %50, align 8, !noalias !3555 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec42, %broadcast.splat44 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec41, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat48, %strided.vec41 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec42, <4 x double> %68) %wide.vec49 = load <8 x double>, ptr %51, align 8, !noalias !3555 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec51, %broadcast.splat53 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec50, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat57, %strided.vec50 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec51, <4 x double> %72) %wide.vec58 = load <8 x double>, ptr %52, align 8, !noalias !3555 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %74 = fmul <4 x double> %strided.vec60, %broadcast.splat62 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec59, <4 x double> %74) %76 = fmul <4 x double> %broadcast.splat66, %strided.vec59 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec60, <4 x double> %76) %wide.vec67 = load <8 x double>, ptr %53, align 8, !noalias !3555 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %78 = fmul <4 x double> %strided.vec69, %broadcast.splat71 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec68, <4 x double> %78) %80 = fmul <4 x double> %broadcast.splat75, %strided.vec68 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec69, <4 x double> %80) %82 = fadd <4 x double> %strided.vec13, %67 %83 = fadd <4 x double> %strided.vec14, %69 %84 = fsub <4 x double> %strided.vec13, %67 %85 = fsub <4 x double> %strided.vec14, %69 %86 = fadd <4 x double> %59, %75 %87 = fadd <4 x double> %61, %77 %88 = fsub <4 x double> %59, %75 %89 = fsub <4 x double> %61, %77 %90 = fadd <4 x double> %55, %71 %91 = fadd <4 x double> %57, %73 %92 = fsub <4 x double> %55, %71 %93 = fsub <4 x double> %57, %73 %94 = fadd <4 x double> %63, %79 %95 = fadd <4 x double> %65, %81 %96 = fsub <4 x double> %63, %79 %97 = fsub <4 x double> %65, %81 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %87 %100 = fadd <4 x double> %90, %94 %101 = fadd <4 x double> %91, %95 %102 = fadd <4 x double> %98, %100 %103 = fadd <4 x double> %99, %101 %104 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec76 = shufflevector <4 x double> %102, <4 x double> %103, <8 x i32> store <8 x double> %interleaved.vec76, ptr %104, align 8, !noalias !3555 %105 = fsub <4 x double> %98, %100 %106 = fsub <4 x double> %99, %101 %107 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec77 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec77, ptr %107, align 8, !noalias !3555 %108 = fadd <4 x double> %84, %89 %109 = fsub <4 x double> %85, %88 %110 = fadd <4 x double> %92, %97 %111 = fsub <4 x double> %93, %96 %112 = fadd <4 x double> %110, %111 %113 = fsub <4 x double> %111, %110 %114 = fmul <4 x double> %112, %115 = fmul <4 x double> %113, %116 = fadd <4 x double> %108, %114 %117 = fadd <4 x double> %109, %115 %118 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec78 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> store <8 x double> %interleaved.vec78, ptr %118, align 8, !noalias !3555 %119 = fsub <4 x double> %108, %114 %120 = fsub <4 x double> %109, %115 %121 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec79 = shufflevector <4 x double> %119, <4 x double> %120, <8 x i32> store <8 x double> %interleaved.vec79, ptr %121, align 8, !noalias !3555 %122 = fsub <4 x double> %82, %86 %123 = fsub <4 x double> %83, %87 %124 = fsub <4 x double> %90, %94 %125 = fsub <4 x double> %91, %95 %126 = fadd <4 x double> %122, %125 %127 = fsub <4 x double> %123, %124 %128 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec80 = shufflevector <4 x double> %126, <4 x double> %127, <8 x i32> store <8 x double> %interleaved.vec80, ptr %128, align 8, !noalias !3555 %129 = fsub <4 x double> %122, %125 %130 = fadd <4 x double> %123, %124 %131 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec81 = shufflevector <4 x double> %129, <4 x double> %130, <8 x i32> store <8 x double> %interleaved.vec81, ptr %131, align 8, !noalias !3555 %132 = fsub <4 x double> %84, %89 %133 = fadd <4 x double> %85, %88 %134 = fsub <4 x double> %92, %97 %135 = fadd <4 x double> %93, %96 %136 = fsub <4 x double> %134, %135 %137 = fadd <4 x double> %134, %135 %138 = fmul <4 x double> %136, %139 = fmul <4 x double> %137, %140 = fsub <4 x double> %132, %138 %141 = fsub <4 x double> %133, %139 %142 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec82 = shufflevector <4 x double> %140, <4 x double> %141, <8 x i32> store <8 x double> %interleaved.vec82, ptr %142, align 8, !noalias !3555 %143 = fadd <4 x double> %132, %138 %144 = fadd <4 x double> %133, %139 %145 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec83 = shufflevector <4 x double> %143, <4 x double> %144, <8 x i32> store <8 x double> %interleaved.vec83, ptr %145, align 8, !noalias !3555 %index.next84 = add nuw i64 %index11, 4 %146 = icmp eq i64 %index.next84, 64 br i1 %146, label %middle.block6, label %vector.body10, !llvm.loop !3562 middle.block6: ; preds = %vector.body10 br i1 %_2.i.i.i623, label %bb32.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117: ; preds = %middle.block6 %147 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %152 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 br label %bb32.i.i.i154 vector.body170: ; preds = %middle.block85, %vector.body170 %index171 = phi i64 [ %index.next209, %vector.body170 ], [ 0, %middle.block85 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body170 ], [ , %middle.block85 ] %153 = shl <4 x i64> %vec.ind, %154 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %153 %155 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather172 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather173 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %158 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather174 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %159 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather175 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather176 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather177 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather178 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather179 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather180 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %165 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather181 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %166 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather182 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %167 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %168 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %169 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 4 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 2 %171 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 1 %172 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 3 %173 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 6 %174 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 5 %175 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 7 %176 = fneg <4 x double> %wide.masked.gather172 %177 = fneg <4 x double> %wide.masked.gather174 %178 = fneg <4 x double> %wide.masked.gather176 %179 = fneg <4 x double> %wide.masked.gather178 %180 = fneg <4 x double> %wide.masked.gather180 %181 = fneg <4 x double> %wide.masked.gather182 %182 = fneg <4 x double> %wide.masked.gather184 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %183 = getelementptr inbounds i8, <4 x ptr> %154, i64 8 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %184 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 1, i32 1 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %184, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %185 = fmul <4 x double> %wide.masked.gather188, %176 %186 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather187, <4 x double> %185) %187 = fmul <4 x double> %wide.masked.gather172, %wide.masked.gather187 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather188, <4 x double> %187) %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %189 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 2, i32 1 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %189, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %190 = fmul <4 x double> %wide.masked.gather190, %177 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather173, <4 x double> %wide.masked.gather189, <4 x double> %190) %192 = fmul <4 x double> %wide.masked.gather174, %wide.masked.gather189 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather173, <4 x double> %wide.masked.gather190, <4 x double> %192) %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %194 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 3, i32 1 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %194, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %195 = fmul <4 x double> %wide.masked.gather192, %178 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather175, <4 x double> %wide.masked.gather191, <4 x double> %195) %197 = fmul <4 x double> %wide.masked.gather176, %wide.masked.gather191 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather175, <4 x double> %wide.masked.gather192, <4 x double> %197) %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %169, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 4, i32 1 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %200 = fmul <4 x double> %wide.masked.gather194, %179 %201 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather177, <4 x double> %wide.masked.gather193, <4 x double> %200) %202 = fmul <4 x double> %wide.masked.gather178, %wide.masked.gather193 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather177, <4 x double> %wide.masked.gather194, <4 x double> %202) %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %174, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %204 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 5, i32 1 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %204, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %205 = fmul <4 x double> %wide.masked.gather196, %180 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather179, <4 x double> %wide.masked.gather195, <4 x double> %205) %207 = fmul <4 x double> %wide.masked.gather180, %wide.masked.gather195 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather179, <4 x double> %wide.masked.gather196, <4 x double> %207) %wide.masked.gather197 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %209 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 6, i32 1 %wide.masked.gather198 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %209, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %210 = fmul <4 x double> %wide.masked.gather198, %181 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather181, <4 x double> %wide.masked.gather197, <4 x double> %210) %212 = fmul <4 x double> %wide.masked.gather182, %wide.masked.gather197 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather181, <4 x double> %wide.masked.gather198, <4 x double> %212) %wide.masked.gather199 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %175, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %214 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 7, i32 1 %wide.masked.gather200 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %214, i32 8, <4 x i1> , <4 x double> poison), !noalias !3555 %215 = fmul <4 x double> %wide.masked.gather200, %182 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather199, <4 x double> %215) %217 = fmul <4 x double> %wide.masked.gather184, %wide.masked.gather199 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather200, <4 x double> %217) %219 = fadd <4 x double> %wide.masked.gather185, %201 %220 = fadd <4 x double> %wide.masked.gather186, %203 %221 = fsub <4 x double> %wide.masked.gather185, %201 %222 = fsub <4 x double> %wide.masked.gather186, %203 %223 = fadd <4 x double> %191, %211 %224 = fadd <4 x double> %193, %213 %225 = fsub <4 x double> %191, %211 %226 = fsub <4 x double> %193, %213 %227 = fadd <4 x double> %186, %206 %228 = fadd <4 x double> %188, %208 %229 = fsub <4 x double> %186, %206 %230 = fsub <4 x double> %188, %208 %231 = fadd <4 x double> %196, %216 %232 = fadd <4 x double> %198, %218 %233 = fsub <4 x double> %196, %216 %234 = fsub <4 x double> %198, %218 %235 = fadd <4 x double> %219, %223 %236 = fadd <4 x double> %220, %224 %237 = fadd <4 x double> %227, %231 %238 = fadd <4 x double> %228, %232 %239 = fadd <4 x double> %235, %237 %240 = fadd <4 x double> %236, %238 %241 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index171 %interleaved.vec201 = shufflevector <4 x double> %239, <4 x double> %240, <8 x i32> store <8 x double> %interleaved.vec201, ptr %241, align 8, !noalias !3555 %242 = fsub <4 x double> %235, %237 %243 = fsub <4 x double> %236, %238 %244 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index171 %interleaved.vec202 = shufflevector <4 x double> %242, <4 x double> %243, <8 x i32> store <8 x double> %interleaved.vec202, ptr %244, align 8, !noalias !3555 %245 = fadd <4 x double> %221, %226 %246 = fsub <4 x double> %222, %225 %247 = fadd <4 x double> %229, %234 %248 = fsub <4 x double> %230, %233 %249 = fadd <4 x double> %247, %248 %250 = fsub <4 x double> %248, %247 %251 = fmul <4 x double> %249, %252 = fmul <4 x double> %250, %253 = fadd <4 x double> %245, %251 %254 = fadd <4 x double> %246, %252 %255 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index171 %interleaved.vec203 = shufflevector <4 x double> %253, <4 x double> %254, <8 x i32> store <8 x double> %interleaved.vec203, ptr %255, align 8, !noalias !3555 %256 = fsub <4 x double> %245, %251 %257 = fsub <4 x double> %246, %252 %258 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index171 %interleaved.vec204 = shufflevector <4 x double> %256, <4 x double> %257, <8 x i32> store <8 x double> %interleaved.vec204, ptr %258, align 8, !noalias !3555 %259 = fsub <4 x double> %219, %223 %260 = fsub <4 x double> %220, %224 %261 = fsub <4 x double> %227, %231 %262 = fsub <4 x double> %228, %232 %263 = fadd <4 x double> %259, %262 %264 = fsub <4 x double> %260, %261 %265 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index171 %interleaved.vec205 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec205, ptr %265, align 8, !noalias !3555 %266 = fsub <4 x double> %259, %262 %267 = fadd <4 x double> %260, %261 %268 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index171 %interleaved.vec206 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec206, ptr %268, align 8, !noalias !3555 %269 = fsub <4 x double> %221, %226 %270 = fadd <4 x double> %222, %225 %271 = fsub <4 x double> %229, %234 %272 = fadd <4 x double> %230, %233 %273 = fsub <4 x double> %271, %272 %274 = fadd <4 x double> %271, %272 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fsub <4 x double> %269, %275 %278 = fsub <4 x double> %270, %276 %279 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index171 %interleaved.vec207 = shufflevector <4 x double> %277, <4 x double> %278, <8 x i32> store <8 x double> %interleaved.vec207, ptr %279, align 8, !noalias !3555 %280 = fadd <4 x double> %269, %275 %281 = fadd <4 x double> %270, %276 %282 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index171 %interleaved.vec208 = shufflevector <4 x double> %280, <4 x double> %281, <8 x i32> store <8 x double> %interleaved.vec208, ptr %282, align 8, !noalias !3555 %index.next209 = add nuw i64 %index171, 4 %vec.ind.next = add <4 x i64> %vec.ind, %283 = icmp eq i64 %index.next209, 128 br i1 %283, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7b51d942c94a82e4E.exit", label %vector.body170, !llvm.loop !3563 bb32.i.i.i154: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117, %middle.block85 %iter.i.i.i56.sroa.104.0180 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117 ], [ %406, %middle.block85 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0180, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %start1.i.i.i.i.i.i1153 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0180, 6 %data.i.i.i.i.i.i1154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1153 %data.i.i.i.i.i.i.i.i1158 = getelementptr inbounds %"num_complex::Complex", ptr %152, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i1162 = getelementptr inbounds %"num_complex::Complex", ptr %150, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i1166 = getelementptr inbounds %"num_complex::Complex", ptr %151, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1170 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1174 = getelementptr inbounds %"num_complex::Complex", ptr %149, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1178 = getelementptr inbounds %"num_complex::Complex", ptr %147, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1182 = getelementptr inbounds %"num_complex::Complex", ptr %148, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 32 %285 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 16 %286 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 8 %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 24 %288 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 48 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 40 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 56 %291 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 7, i32 1 %w7.1.i.i.i186 = load double, ptr %291, align 8, !noalias !3555, !noundef !3 %_6.i.i.i.i306 = fneg double %w7.1.i.i.i186 %292 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 6, i32 1 %w6.1.i.i.i184 = load double, ptr %292, align 8, !noalias !3555, !noundef !3 %_6.i166.i.i.i301 = fneg double %w6.1.i.i.i184 %293 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 5, i32 1 %w5.1.i.i.i182 = load double, ptr %293, align 8, !noalias !3555, !noundef !3 %_6.i169.i.i.i296 = fneg double %w5.1.i.i.i182 %294 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 4, i32 1 %w4.1.i.i.i180 = load double, ptr %294, align 8, !noalias !3555, !noundef !3 %_6.i172.i.i.i291 = fneg double %w4.1.i.i.i180 %295 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 3, i32 1 %w3.1.i.i.i178 = load double, ptr %295, align 8, !noalias !3555, !noundef !3 %_6.i175.i.i.i286 = fneg double %w3.1.i.i.i178 %296 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 2, i32 1 %w2.1.i.i.i176 = load double, ptr %296, align 8, !noalias !3555, !noundef !3 %_6.i178.i.i.i281 = fneg double %w2.1.i.i.i176 %297 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 1, i32 1 %w1.1.i.i.i174 = load double, ptr %297, align 8, !noalias !3555, !noundef !3 %_6.i181.i.i.i276 = fneg double %w1.1.i.i.i174 %298 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 7 %w7.0.i.i.i185 = load double, ptr %298, align 8, !noalias !3555, !noundef !3 %299 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 6 %w6.0.i.i.i183 = load double, ptr %299, align 8, !noalias !3555, !noundef !3 %300 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 5 %w5.0.i.i.i181 = load double, ptr %300, align 8, !noalias !3555, !noundef !3 %301 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 4 %w4.0.i.i.i179 = load double, ptr %301, align 8, !noalias !3555, !noundef !3 %302 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 3 %w3.0.i.i.i177 = load double, ptr %302, align 8, !noalias !3555, !noundef !3 %303 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 2 %w2.0.i.i.i175 = load double, ptr %303, align 8, !noalias !3555, !noundef !3 %304 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 1 %w1.0.i.i.i173 = load double, ptr %304, align 8, !noalias !3555, !noundef !3 %broadcast.splatinsert97 = insertelement <4 x double> poison, double %_6.i181.i.i.i276, i64 0 %broadcast.splat98 = shufflevector <4 x double> %broadcast.splatinsert97, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %w1.0.i.i.i173, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w1.1.i.i.i174, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i178.i.i.i281, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w2.0.i.i.i175, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w2.1.i.i.i176, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert115 = insertelement <4 x double> poison, double %_6.i175.i.i.i286, i64 0 %broadcast.splat116 = shufflevector <4 x double> %broadcast.splatinsert115, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert117 = insertelement <4 x double> poison, double %w3.0.i.i.i177, i64 0 %broadcast.splat118 = shufflevector <4 x double> %broadcast.splatinsert117, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert119 = insertelement <4 x double> poison, double %w3.1.i.i.i178, i64 0 %broadcast.splat120 = shufflevector <4 x double> %broadcast.splatinsert119, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %_6.i172.i.i.i291, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert126 = insertelement <4 x double> poison, double %w4.0.i.i.i179, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %w4.1.i.i.i180, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert133 = insertelement <4 x double> poison, double %_6.i169.i.i.i296, i64 0 %broadcast.splat134 = shufflevector <4 x double> %broadcast.splatinsert133, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %w5.0.i.i.i181, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w5.1.i.i.i182, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i166.i.i.i301, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w6.0.i.i.i183, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w6.1.i.i.i184, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert151 = insertelement <4 x double> poison, double %_6.i.i.i.i306, i64 0 %broadcast.splat152 = shufflevector <4 x double> %broadcast.splatinsert151, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert153 = insertelement <4 x double> poison, double %w7.0.i.i.i185, i64 0 %broadcast.splat154 = shufflevector <4 x double> %broadcast.splatinsert153, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert155 = insertelement <4 x double> poison, double %w7.1.i.i.i186, i64 0 %broadcast.splat156 = shufflevector <4 x double> %broadcast.splatinsert155, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body89 vector.body89: ; preds = %vector.body89, %bb32.i.i.i154 %index90 = phi i64 [ 0, %bb32.i.i.i154 ], [ %index.next165, %vector.body89 ] %305 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 %index90 %306 = getelementptr inbounds %"num_complex::Complex", ptr %286, i64 %index90 %307 = getelementptr inbounds %"num_complex::Complex", ptr %285, i64 %index90 %308 = getelementptr inbounds %"num_complex::Complex", ptr %287, i64 %index90 %309 = getelementptr inbounds %"num_complex::Complex", ptr %284, i64 %index90 %310 = getelementptr inbounds %"num_complex::Complex", ptr %289, i64 %index90 %311 = getelementptr inbounds %"num_complex::Complex", ptr %288, i64 %index90 %312 = getelementptr inbounds %"num_complex::Complex", ptr %290, i64 %index90 %wide.vec91 = load <8 x double>, ptr %305, align 8, !noalias !3555 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %306, align 8, !noalias !3555 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %313 = fmul <4 x double> %strided.vec96, %broadcast.splat98 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec95, <4 x double> %313) %315 = fmul <4 x double> %broadcast.splat102, %strided.vec95 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec96, <4 x double> %315) %wide.vec103 = load <8 x double>, ptr %307, align 8, !noalias !3555 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %317 = fmul <4 x double> %strided.vec105, %broadcast.splat107 %318 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec104, <4 x double> %317) %319 = fmul <4 x double> %broadcast.splat111, %strided.vec104 %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec105, <4 x double> %319) %wide.vec112 = load <8 x double>, ptr %308, align 8, !noalias !3555 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %321 = fmul <4 x double> %strided.vec114, %broadcast.splat116 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec113, <4 x double> %321) %323 = fmul <4 x double> %broadcast.splat120, %strided.vec113 %324 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec114, <4 x double> %323) %wide.vec121 = load <8 x double>, ptr %309, align 8, !noalias !3555 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %325 = fmul <4 x double> %strided.vec123, %broadcast.splat125 %326 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec122, <4 x double> %325) %327 = fmul <4 x double> %broadcast.splat129, %strided.vec122 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec123, <4 x double> %327) %wide.vec130 = load <8 x double>, ptr %310, align 8, !noalias !3555 %strided.vec131 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %strided.vec132 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %329 = fmul <4 x double> %strided.vec132, %broadcast.splat134 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec131, <4 x double> %329) %331 = fmul <4 x double> %broadcast.splat138, %strided.vec131 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec132, <4 x double> %331) %wide.vec139 = load <8 x double>, ptr %311, align 8, !noalias !3555 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %333 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %335) %wide.vec148 = load <8 x double>, ptr %312, align 8, !noalias !3555 %strided.vec149 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %strided.vec150 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %337 = fmul <4 x double> %strided.vec150, %broadcast.splat152 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat154, <4 x double> %strided.vec149, <4 x double> %337) %339 = fmul <4 x double> %broadcast.splat156, %strided.vec149 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat154, <4 x double> %strided.vec150, <4 x double> %339) %341 = fadd <4 x double> %strided.vec92, %326 %342 = fadd <4 x double> %strided.vec93, %328 %343 = fsub <4 x double> %strided.vec92, %326 %344 = fsub <4 x double> %strided.vec93, %328 %345 = fadd <4 x double> %318, %334 %346 = fadd <4 x double> %320, %336 %347 = fsub <4 x double> %318, %334 %348 = fsub <4 x double> %320, %336 %349 = fadd <4 x double> %314, %330 %350 = fadd <4 x double> %316, %332 %351 = fsub <4 x double> %314, %330 %352 = fsub <4 x double> %316, %332 %353 = fadd <4 x double> %322, %338 %354 = fadd <4 x double> %324, %340 %355 = fsub <4 x double> %322, %338 %356 = fsub <4 x double> %324, %340 %357 = fadd <4 x double> %341, %345 %358 = fadd <4 x double> %342, %346 %359 = fadd <4 x double> %349, %353 %360 = fadd <4 x double> %350, %354 %361 = fadd <4 x double> %357, %359 %362 = fadd <4 x double> %358, %360 %363 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1144, i64 %index90 %interleaved.vec157 = shufflevector <4 x double> %361, <4 x double> %362, <8 x i32> store <8 x double> %interleaved.vec157, ptr %363, align 8, !noalias !3555 %364 = fsub <4 x double> %357, %359 %365 = fsub <4 x double> %358, %360 %366 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1170, i64 %index90 %interleaved.vec158 = shufflevector <4 x double> %364, <4 x double> %365, <8 x i32> store <8 x double> %interleaved.vec158, ptr %366, align 8, !noalias !3555 %367 = fadd <4 x double> %343, %348 %368 = fsub <4 x double> %344, %347 %369 = fadd <4 x double> %351, %356 %370 = fsub <4 x double> %352, %355 %371 = fadd <4 x double> %369, %370 %372 = fsub <4 x double> %370, %369 %373 = fmul <4 x double> %371, %374 = fmul <4 x double> %372, %375 = fadd <4 x double> %367, %373 %376 = fadd <4 x double> %368, %374 %377 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1182, i64 %index90 %interleaved.vec159 = shufflevector <4 x double> %375, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec159, ptr %377, align 8, !noalias !3555 %378 = fsub <4 x double> %367, %373 %379 = fsub <4 x double> %368, %374 %380 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1166, i64 %index90 %interleaved.vec160 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec160, ptr %380, align 8, !noalias !3555 %381 = fsub <4 x double> %341, %345 %382 = fsub <4 x double> %342, %346 %383 = fsub <4 x double> %349, %353 %384 = fsub <4 x double> %350, %354 %385 = fadd <4 x double> %381, %384 %386 = fsub <4 x double> %382, %383 %387 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1178, i64 %index90 %interleaved.vec161 = shufflevector <4 x double> %385, <4 x double> %386, <8 x i32> store <8 x double> %interleaved.vec161, ptr %387, align 8, !noalias !3555 %388 = fsub <4 x double> %381, %384 %389 = fadd <4 x double> %382, %383 %390 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1162, i64 %index90 %interleaved.vec162 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> store <8 x double> %interleaved.vec162, ptr %390, align 8, !noalias !3555 %391 = fsub <4 x double> %343, %348 %392 = fadd <4 x double> %344, %347 %393 = fsub <4 x double> %351, %356 %394 = fadd <4 x double> %352, %355 %395 = fsub <4 x double> %393, %394 %396 = fadd <4 x double> %393, %394 %397 = fmul <4 x double> %395, %398 = fmul <4 x double> %396, %399 = fsub <4 x double> %391, %397 %400 = fsub <4 x double> %392, %398 %401 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1174, i64 %index90 %interleaved.vec163 = shufflevector <4 x double> %399, <4 x double> %400, <8 x i32> store <8 x double> %interleaved.vec163, ptr %401, align 8, !noalias !3555 %402 = fadd <4 x double> %391, %397 %403 = fadd <4 x double> %392, %398 %404 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1158, i64 %index90 %interleaved.vec164 = shufflevector <4 x double> %402, <4 x double> %403, <8 x i32> store <8 x double> %interleaved.vec164, ptr %404, align 8, !noalias !3555 %index.next165 = add nuw i64 %index90, 4 %405 = icmp eq i64 %index.next165, 8 br i1 %405, label %middle.block85, label %vector.body89, !llvm.loop !3564 middle.block85: ; preds = %vector.body89 %406 = add nuw nsw i64 %iter.i.i.i56.sroa.104.0180, 1 %exitcond186.not = icmp eq i64 %406, 16 br i1 %exitcond186.not, label %vector.body170, label %bb32.i.i.i154 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7b51d942c94a82e4E.exit": ; preds = %vector.body170 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3555 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5a041deee86b33fdE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9f52c6d2a07c0441E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5c25f45fc9b933ccE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3565 store i64 8, ptr %n.i, align 8, !noalias !3565 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3565 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3565 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3565 store ptr null, ptr %_16.i, align 8, !noalias !3565 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3565 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3565 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3565 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3565 store ptr null, ptr %_24.i, align 8, !noalias !3565 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3565 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3565 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3565 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3565 store ptr null, ptr %_32.i, align 8, !noalias !3565 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3565 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3565 store i64 %w.1, ptr %_34.i, align 8, !noalias !3565 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h12f3bfc3fb0f60d1E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3565 store ptr null, ptr %_40.i, align 8, !noalias !3565 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h12f3bfc3fb0f60d1E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3565 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1, i32 1 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5, i32 1 %9 = load <2 x double>, ptr %buf.0, align 8, !noalias !3565 %10 = load <2 x double>, ptr %2, align 8, !noalias !3565 %11 = load <2 x double>, ptr %1, align 8, !noalias !3565 %12 = load <2 x double>, ptr %3, align 8, !noalias !3565 %13 = load <2 x double>, ptr %0, align 8, !noalias !3565 %14 = load <2 x double>, ptr %5, align 8, !noalias !3565 %15 = load <2 x double>, ptr %4, align 8, !noalias !3565 %16 = load <2 x double>, ptr %6, align 8, !noalias !3565 %17 = fadd <2 x double> %9, %13 %18 = fadd <2 x double> %11, %15 %19 = fadd <2 x double> %10, %14 %20 = fsub <2 x double> %10, %14 %_0.i.i72 = extractelement <2 x double> %20, i64 0 %21 = fsub <2 x double> %10, %14 %_0.i3.i73 = extractelement <2 x double> %21, i64 1 %22 = fadd <2 x double> %12, %16 %23 = fsub <2 x double> %12, %16 %_0.i.i76 = extractelement <2 x double> %23, i64 0 %24 = fsub <2 x double> %12, %16 %_0.i3.i77 = extractelement <2 x double> %24, i64 1 %25 = fadd <2 x double> %17, %18 %26 = fadd <2 x double> %19, %22 %_0.i.i88 = fadd double %_0.i.i72, %_0.i3.i77 %_0.i3.i89 = fsub double %_0.i3.i73, %_0.i.i76 %_0.i.i90 = fadd double %_0.i3.i89, %_0.i.i88 %_0.i3.i91 = fsub double %_0.i3.i89, %_0.i.i88 %_4.i.i.i.i = fmul double %_0.i.i90, 0x3FE6A09E667F3BCD %_7.i.i.i.i = fmul double %_0.i3.i91, 0x3FE6A09E667F3BCD %_0.i.i94 = fsub double %_0.i.i72, %_0.i3.i77 %_0.i3.i95 = fadd double %_0.i3.i73, %_0.i.i76 %27 = fadd <2 x double> %25, %26 store <2 x double> %27, ptr %buf.0, align 8, !noalias !3565 %28 = fsub <2 x double> %17, %18 %29 = fsub <2 x double> %19, %22 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> %31 = fadd <2 x double> %28, %30 %32 = fsub <2 x double> %28, %30 %33 = shufflevector <2 x double> %31, <2 x double> %32, <2 x i32> store <2 x double> %33, ptr %1, align 8, !noalias !3565 %34 = fsub <2 x double> %9, %13 %35 = fsub <2 x double> %11, %15 %36 = shufflevector <2 x double> %35, <2 x double> poison, <2 x i32> %37 = fadd <2 x double> %34, %36 %_0.i.i80 = extractelement <2 x double> %37, i64 0 %38 = fsub <2 x double> %34, %36 %_0.i3.i81 = extractelement <2 x double> %38, i64 1 %39 = fsub <2 x double> %34, %36 %40 = fadd <2 x double> %34, %36 %41 = shufflevector <2 x double> %39, <2 x double> %40, <2 x i32> %42 = insertelement <2 x double> poison, double %_0.i.i94, i64 0 %43 = insertelement <2 x double> poison, double %_0.i.i94, i64 0 %44 = insertelement <2 x double> poison, double %_0.i3.i95, i64 0 %45 = insertelement <2 x double> poison, double %_0.i3.i95, i64 0 %46 = fsub <2 x double> %43, %45 %47 = fadd <2 x double> %42, %44 %48 = shufflevector <2 x double> %46, <2 x double> %47, <2 x i32> %49 = fmul <2 x double> %48, %_0.i.i100 = fadd double %_0.i.i80, %_4.i.i.i.i %_0.i3.i101 = fadd double %_0.i3.i81, %_7.i.i.i.i %50 = fsub <2 x double> %41, %49 %_0.i.i108 = fsub double %_0.i.i80, %_4.i.i.i.i %_0.i3.i109 = fsub double %_0.i3.i81, %_7.i.i.i.i store double %_0.i.i100, ptr %2, align 8, !noalias !3565 store double %_0.i3.i101, ptr %7, align 8, !noalias !3565 store <2 x double> %50, ptr %3, align 8, !noalias !3565 %51 = fsub <2 x double> %25, %26 store <2 x double> %51, ptr %0, align 8, !noalias !3565 store double %_0.i.i108, ptr %5, align 8, !noalias !3565 store double %_0.i3.i109, ptr %8, align 8, !noalias !3565 %52 = shufflevector <2 x double> %32, <2 x double> %31, <2 x i32> store <2 x double> %52, ptr %4, align 8, !noalias !3565 %53 = fadd <2 x double> %41, %49 store <2 x double> %53, ptr %6, align 8, !noalias !3565 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3565 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5d224818129f5e6eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3568 store i64 64, ptr %n.i.i, align 8, !noalias !3568 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3568 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3568 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3568 store ptr null, ptr %_16.i.i, align 8, !noalias !3568 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3568 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3568 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3568 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3568 store ptr null, ptr %_24.i.i, align 8, !noalias !3568 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3568 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3568 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3568 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3568 store ptr null, ptr %_32.i.i, align 8, !noalias !3568 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3568 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3568 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3568 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cea042f0332dfa5E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3568 store ptr null, ptr %_40.i.i, align 8, !noalias !3568 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cea042f0332dfa5E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3568 tail call void @llvm.experimental.noalias.scope.decl(metadata !3573) tail call void @llvm.experimental.noalias.scope.decl(metadata !3576) tail call void @llvm.experimental.noalias.scope.decl(metadata !3578) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cea042f0332dfa5E.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cea042f0332dfa5E.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3578, !noalias !3580 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3578, !noalias !3580 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3578, !noalias !3580 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3573, !noalias !3581 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3573, !noalias !3581 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3573, !noalias !3581 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3573, !noalias !3581 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3576, !noalias !3582 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !3576, !noalias !3582 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !3576, !noalias !3582 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !3576, !noalias !3582 %exitcond.not.i.i = icmp eq i64 %8, 8 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3583) tail call void @llvm.experimental.noalias.scope.decl(metadata !3586) tail call void @llvm.experimental.noalias.scope.decl(metadata !3588) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !3588, !noalias !3590, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !3588, !noalias !3590, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !3588, !noalias !3590, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !3588, !noalias !3590, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !3588, !noalias !3590, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !3588, !noalias !3590, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3583, !noalias !3591 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3583, !noalias !3591 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3583, !noalias !3591 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3583, !noalias !3591 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3586, !noalias !3592 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !3586, !noalias !3592 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !3586, !noalias !3592 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !3586, !noalias !3592 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3583, !noalias !3591 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3583, !noalias !3591 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3583, !noalias !3591 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3583, !noalias !3591 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3586, !noalias !3592 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3586, !noalias !3592 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3586, !noalias !3592 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !3586, !noalias !3592 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 4 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h1ecf167b25455729E.exit, label %bb22.us.i.i _ZN4pulp3x862V39vectorize6__impl17h1ecf167b25455729E.exit: ; preds = %bb22.us.i.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %4, align 8, !noalias !3568 %107 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %108 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %109 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %110 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %111 = bitcast <4 x double> %110 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = fadd <4 x double> %107, %109 %116 = fsub <4 x double> %108, %114 %117 = fsub <4 x double> %107, %109 %118 = fadd <4 x double> %108, %114 store <4 x double> %115, ptr %buf.0, align 8, !noalias !3568 store <4 x double> %116, ptr %3, align 8, !noalias !3568 store <4 x double> %117, ptr %2, align 8, !noalias !3568 store <4 x double> %118, ptr %4, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_43.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3568 %119 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %120 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %121 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %122 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %123 = bitcast <4 x double> %122 to <4 x i64> %124 = xor <4 x i64> %123, %125 = bitcast <4 x i64> %124 to <4 x double> %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = fadd <4 x double> %119, %121 %128 = fsub <4 x double> %120, %126 %129 = fsub <4 x double> %119, %121 %130 = fadd <4 x double> %120, %126 store <4 x double> %127, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3568 store <4 x double> %128, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !3568 store <4 x double> %129, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3568 store <4 x double> %130, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_43.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3568 %131 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %132 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %133 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %134 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %135 = bitcast <4 x double> %134 to <4 x i64> %136 = xor <4 x i64> %135, %137 = bitcast <4 x i64> %136 to <4 x double> %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fadd <4 x double> %131, %133 %140 = fsub <4 x double> %132, %138 %141 = fsub <4 x double> %131, %133 %142 = fadd <4 x double> %132, %138 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3568 store <4 x double> %140, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !3568 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !3568 store <4 x double> %142, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_43.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3568 %143 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %144 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %145 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %146 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %147 = bitcast <4 x double> %146 to <4 x i64> %148 = xor <4 x i64> %147, %149 = bitcast <4 x i64> %148 to <4 x double> %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = fadd <4 x double> %143, %145 %152 = fsub <4 x double> %144, %150 %153 = fsub <4 x double> %143, %145 %154 = fadd <4 x double> %144, %150 store <4 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3568 store <4 x double> %152, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !3568 store <4 x double> %153, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !3568 store <4 x double> %154, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_43.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !3568 %155 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %156 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %157 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %158 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %159 = bitcast <4 x double> %158 to <4 x i64> %160 = xor <4 x i64> %159, %161 = bitcast <4 x i64> %160 to <4 x double> %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fadd <4 x double> %155, %157 %164 = fsub <4 x double> %156, %162 %165 = fsub <4 x double> %155, %157 %166 = fadd <4 x double> %156, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3568 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !3568 store <4 x double> %165, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !3568 store <4 x double> %166, ptr %_3.i.i.i.i.4.i, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_43.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !3568 %167 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %168 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %169 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %170 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %171 = bitcast <4 x double> %170 to <4 x i64> %172 = xor <4 x i64> %171, %173 = bitcast <4 x i64> %172 to <4 x double> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = fadd <4 x double> %167, %169 %176 = fsub <4 x double> %168, %174 %177 = fsub <4 x double> %167, %169 %178 = fadd <4 x double> %168, %174 store <4 x double> %175, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3568 store <4 x double> %176, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !3568 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !3568 store <4 x double> %178, ptr %_3.i.i.i.i.5.i, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_43.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !3568 %179 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %180 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %181 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %182 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %183 = bitcast <4 x double> %182 to <4 x i64> %184 = xor <4 x i64> %183, %185 = bitcast <4 x i64> %184 to <4 x double> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fadd <4 x double> %179, %181 %188 = fsub <4 x double> %180, %186 %189 = fsub <4 x double> %179, %181 %190 = fadd <4 x double> %180, %186 store <4 x double> %187, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3568 store <4 x double> %188, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !3568 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !3568 store <4 x double> %190, ptr %_3.i.i.i.i.6.i, align 8, !noalias !3568 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_43.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3568 %_44.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !3568 %_45.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !3568 %_46.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !3568 %191 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %192 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %193 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %194 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %195 = bitcast <4 x double> %194 to <4 x i64> %196 = xor <4 x i64> %195, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = fadd <4 x double> %191, %193 %200 = fsub <4 x double> %192, %198 %201 = fsub <4 x double> %191, %193 %202 = fadd <4 x double> %192, %198 store <4 x double> %199, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3568 store <4 x double> %200, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !3568 store <4 x double> %201, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !3568 store <4 x double> %202, ptr %_3.i.i.i.i.7.i, align 8, !noalias !3568 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3568 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5d665fddc0e82355E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3593 store i64 64, ptr %n.i.i, align 8, !noalias !3593 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3593 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3593 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3593 store ptr null, ptr %_16.i.i, align 8, !noalias !3593 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3593 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3593 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3593 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3593 store ptr null, ptr %_24.i.i, align 8, !noalias !3593 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3593 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3593 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3593 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3593 store ptr null, ptr %_32.i.i, align 8, !noalias !3593 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3593 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3593 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3593 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f01a5240591ea3fE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3593 store ptr null, ptr %_40.i.i, align 8, !noalias !3593 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f01a5240591ea3fE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3593 tail call void @llvm.experimental.noalias.scope.decl(metadata !3598) tail call void @llvm.experimental.noalias.scope.decl(metadata !3601) tail call void @llvm.experimental.noalias.scope.decl(metadata !3603) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f01a5240591ea3fE.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f01a5240591ea3fE.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3598, !noalias !3605 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3603, !noalias !3606 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3601, !noalias !3607 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !3601, !noalias !3607 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !3601, !noalias !3607 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !3601, !noalias !3607 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !3601, !noalias !3607 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !3601, !noalias !3607 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !3601, !noalias !3607 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !3601, !noalias !3607 %exitcond.not.i.i = icmp eq i64 %16, 4 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter14.i.i.i.sroa.106.0522.i = phi i64 [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ], [ %122, %bb38.i.i.i.i ] %122 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter14.i.i.i.sroa.106.0522.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3593 %123 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %124 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %125 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %126 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %127 = bitcast <4 x double> %126 to <4 x i64> %128 = xor <4 x i64> %127, %129 = bitcast <4 x i64> %128 to <4 x double> %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %132 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %133 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %134 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %135 = bitcast <4 x double> %134 to <4 x i64> %136 = xor <4 x i64> %135, %137 = bitcast <4 x i64> %136 to <4 x double> %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fadd <4 x double> %123, %125 %140 = fsub <4 x double> %124, %130 %141 = fsub <4 x double> %123, %125 %142 = fadd <4 x double> %124, %130 %143 = fadd <4 x double> %131, %133 %144 = fsub <4 x double> %132, %138 %145 = bitcast <4 x double> %144 to <4 x i64> %146 = xor <4 x i64> %145, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = fadd <4 x double> %144, %148 %150 = fmul <4 x double> %149, %151 = fsub <4 x double> %131, %133 %152 = bitcast <4 x double> %151 to <4 x i64> %153 = xor <4 x i64> %152, %154 = bitcast <4 x i64> %153 to <4 x double> %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fadd <4 x double> %132, %138 %157 = bitcast <4 x double> %156 to <4 x i64> %158 = xor <4 x i64> %157, %159 = bitcast <4 x i64> %158 to <4 x double> %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fadd <4 x double> %156, %160 %162 = fmul <4 x double> %161, %163 = fadd <4 x double> %139, %143 %164 = fadd <4 x double> %140, %150 %165 = fsub <4 x double> %141, %155 %166 = fsub <4 x double> %142, %162 %167 = fsub <4 x double> %139, %143 %168 = fsub <4 x double> %140, %150 %169 = fadd <4 x double> %141, %155 %170 = fadd <4 x double> %142, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !3593 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !3593 store <4 x double> %165, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !3593 store <4 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !3593 store <4 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !3593 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !3593 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !3593 store <4 x double> %170, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !3593 %exitcond.not.i = icmp eq i64 %122, 4 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h744a7d1c7a23bc18E.exit, label %bb38.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h744a7d1c7a23bc18E.exit: ; preds = %bb38.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3593 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5e21de5145f866f6E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3608 store i64 16, ptr %n.i, align 8, !noalias !3608 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3608 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3608 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3608 store ptr null, ptr %_16.i, align 8, !noalias !3608 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3608 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3608 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3608 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3608 store ptr null, ptr %_24.i, align 8, !noalias !3608 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3608 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3608 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3608 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3608 store ptr null, ptr %_32.i, align 8, !noalias !3608 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3608 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3608 store i64 %w.1, ptr %_34.i, align 8, !noalias !3608 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3608 store ptr null, ptr %_40.i, align 8, !noalias !3608 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3608 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !3611 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !3611 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %2 = fadd <4 x double> %strided.vec, %strided.vec3 %3 = fadd <4 x double> %strided.vec1, %strided.vec4 %4 = fsub <4 x double> %strided.vec, %strided.vec3 %5 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %2, <4 x double> %3, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !3611 %interleaved.vec5 = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec5, ptr %1, align 8, !noalias !3611 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %wide.vec.1 = load <8 x double>, ptr %6, align 8, !noalias !3611 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %7, align 8, !noalias !3611 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %8 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %9 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %10 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %11 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %8, <4 x double> %9, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %12, align 8, !noalias !3611 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec5.1 = shufflevector <4 x double> %10, <4 x double> %11, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %13, align 8, !noalias !3611 %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <2 x i64> %15 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %15, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %16 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %16, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %17 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2 %wide.masked.gather13 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %17, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %18 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %18, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %19 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3 %wide.masked.gather15 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %19, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %20 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %20, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %21 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4 %wide.masked.gather17 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %21, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %22 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4, i32 1 %wide.masked.gather18 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %22, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %23 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5 %wide.masked.gather19 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %23, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5, i32 1 %wide.masked.gather20 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %24, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6 %wide.masked.gather21 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %25, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6, i32 1 %wide.masked.gather22 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %26, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7 %wide.masked.gather23 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %27, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7, i32 1 %wide.masked.gather24 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %28, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %29 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 4 %30 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 2 %31 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 1 %32 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 3 %33 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 6 %34 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 5 %35 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 7 %36 = fneg <2 x double> %wide.masked.gather12 %37 = fneg <2 x double> %wide.masked.gather14 %38 = fneg <2 x double> %wide.masked.gather16 %39 = fneg <2 x double> %wide.masked.gather18 %40 = fneg <2 x double> %wide.masked.gather20 %41 = fneg <2 x double> %wide.masked.gather22 %42 = fneg <2 x double> %wide.masked.gather24 %wide.masked.gather25 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %14, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %43 = getelementptr inbounds i8, <2 x ptr> %14, i64 8 %wide.masked.gather26 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %43, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %wide.masked.gather27 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %31, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %44 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 1, i32 1 %wide.masked.gather28 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %44, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %45 = fmul <2 x double> %wide.masked.gather28, %36 %46 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather27, <2 x double> %45) %47 = fmul <2 x double> %wide.masked.gather12, %wide.masked.gather27 %48 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather28, <2 x double> %47) %wide.masked.gather29 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %30, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %49 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 2, i32 1 %wide.masked.gather30 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %49, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %50 = fmul <2 x double> %wide.masked.gather30, %37 %51 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather29, <2 x double> %50) %52 = fmul <2 x double> %wide.masked.gather14, %wide.masked.gather29 %53 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather30, <2 x double> %52) %wide.masked.gather31 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %32, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %54 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 3, i32 1 %wide.masked.gather32 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %54, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %55 = fmul <2 x double> %wide.masked.gather32, %38 %56 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather31, <2 x double> %55) %57 = fmul <2 x double> %wide.masked.gather16, %wide.masked.gather31 %58 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather32, <2 x double> %57) %wide.masked.gather33 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %29, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %59 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 4, i32 1 %wide.masked.gather34 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %59, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %60 = fmul <2 x double> %wide.masked.gather34, %39 %61 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather33, <2 x double> %60) %62 = fmul <2 x double> %wide.masked.gather18, %wide.masked.gather33 %63 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather34, <2 x double> %62) %wide.masked.gather35 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %34, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %64 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 5, i32 1 %wide.masked.gather36 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %64, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %65 = fmul <2 x double> %wide.masked.gather36, %40 %66 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather35, <2 x double> %65) %67 = fmul <2 x double> %wide.masked.gather20, %wide.masked.gather35 %68 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather36, <2 x double> %67) %wide.masked.gather37 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %33, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %69 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 6, i32 1 %wide.masked.gather38 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %69, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %70 = fmul <2 x double> %wide.masked.gather38, %41 %71 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather37, <2 x double> %70) %72 = fmul <2 x double> %wide.masked.gather22, %wide.masked.gather37 %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather38, <2 x double> %72) %wide.masked.gather39 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %35, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %74 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %14, i64 7, i32 1 %wide.masked.gather40 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %74, i32 8, <2 x i1> , <2 x double> poison), !noalias !3608 %75 = fmul <2 x double> %wide.masked.gather40, %42 %76 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather39, <2 x double> %75) %77 = fmul <2 x double> %wide.masked.gather24, %wide.masked.gather39 %78 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather40, <2 x double> %77) %79 = fadd <2 x double> %wide.masked.gather25, %61 %80 = fadd <2 x double> %wide.masked.gather26, %63 %81 = fsub <2 x double> %wide.masked.gather25, %61 %82 = fsub <2 x double> %wide.masked.gather26, %63 %83 = fadd <2 x double> %51, %71 %84 = fadd <2 x double> %53, %73 %85 = fsub <2 x double> %51, %71 %86 = fsub <2 x double> %53, %73 %87 = fadd <2 x double> %46, %66 %88 = fadd <2 x double> %48, %68 %89 = fsub <2 x double> %46, %66 %90 = fsub <2 x double> %48, %68 %91 = fadd <2 x double> %56, %76 %92 = fadd <2 x double> %58, %78 %93 = fsub <2 x double> %56, %76 %94 = fsub <2 x double> %58, %78 %95 = fadd <2 x double> %79, %83 %96 = fadd <2 x double> %80, %84 %97 = fadd <2 x double> %87, %91 %98 = fadd <2 x double> %88, %92 %99 = fadd <2 x double> %95, %97 %100 = fadd <2 x double> %96, %98 %interleaved.vec41 = shufflevector <2 x double> %99, <2 x double> %100, <4 x i32> store <4 x double> %interleaved.vec41, ptr %buf.0, align 8, !noalias !3608 %101 = fsub <2 x double> %95, %97 %102 = fsub <2 x double> %96, %98 %103 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec42 = shufflevector <2 x double> %101, <2 x double> %102, <4 x i32> store <4 x double> %interleaved.vec42, ptr %103, align 8, !noalias !3608 %104 = fsub <2 x double> %81, %86 %105 = fadd <2 x double> %82, %85 %106 = fsub <2 x double> %89, %94 %107 = fadd <2 x double> %90, %93 %108 = fsub <2 x double> %106, %107 %109 = fadd <2 x double> %106, %107 %110 = fmul <2 x double> %108, %111 = fmul <2 x double> %109, %112 = fadd <2 x double> %104, %110 %113 = fadd <2 x double> %105, %111 %114 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec43 = shufflevector <2 x double> %112, <2 x double> %113, <4 x i32> store <4 x double> %interleaved.vec43, ptr %114, align 8, !noalias !3608 %115 = fsub <2 x double> %104, %110 %116 = fsub <2 x double> %105, %111 %117 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %interleaved.vec44 = shufflevector <2 x double> %115, <2 x double> %116, <4 x i32> store <4 x double> %interleaved.vec44, ptr %117, align 8, !noalias !3608 %118 = fsub <2 x double> %79, %83 %119 = fsub <2 x double> %80, %84 %120 = fsub <2 x double> %87, %91 %121 = fsub <2 x double> %88, %92 %122 = fsub <2 x double> %118, %121 %123 = fadd <2 x double> %119, %120 %124 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec45 = shufflevector <2 x double> %122, <2 x double> %123, <4 x i32> store <4 x double> %interleaved.vec45, ptr %124, align 8, !noalias !3608 %125 = fadd <2 x double> %118, %121 %126 = fsub <2 x double> %119, %120 %127 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec46 = shufflevector <2 x double> %125, <2 x double> %126, <4 x i32> store <4 x double> %interleaved.vec46, ptr %127, align 8, !noalias !3608 %128 = fadd <2 x double> %81, %86 %129 = fsub <2 x double> %82, %85 %130 = fadd <2 x double> %89, %94 %131 = fsub <2 x double> %90, %93 %132 = fadd <2 x double> %130, %131 %133 = fsub <2 x double> %131, %130 %134 = fmul <2 x double> %132, %135 = fmul <2 x double> %133, %136 = fsub <2 x double> %128, %134 %137 = fsub <2 x double> %129, %135 %138 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %interleaved.vec47 = shufflevector <2 x double> %136, <2 x double> %137, <4 x i32> store <4 x double> %interleaved.vec47, ptr %138, align 8, !noalias !3608 %139 = fadd <2 x double> %128, %134 %140 = fadd <2 x double> %129, %135 %141 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %interleaved.vec48 = shufflevector <2 x double> %139, <2 x double> %140, <4 x i32> store <4 x double> %interleaved.vec48, ptr %141, align 8, !noalias !3608 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3608 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5e39f01dfe4737d5E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3614 store i64 512, ptr %n.i.i, align 8, !noalias !3614 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3614 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3614 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3614 store ptr null, ptr %_16.i.i, align 8, !noalias !3614 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3614 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3614 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3614 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3614 store ptr null, ptr %_24.i.i, align 8, !noalias !3614 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3614 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3614 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3614 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3614 store ptr null, ptr %_32.i.i, align 8, !noalias !3614 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3614 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3614 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3614 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04878fbf1b9f1b1bE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3614 store ptr null, ptr %_40.i.i, align 8, !noalias !3614 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04878fbf1b9f1b1bE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3614 tail call void @llvm.experimental.noalias.scope.decl(metadata !3619) tail call void @llvm.experimental.noalias.scope.decl(metadata !3622) tail call void @llvm.experimental.noalias.scope.decl(metadata !3624) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04878fbf1b9f1b1bE.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04878fbf1b9f1b1bE.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3624, !noalias !3626 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3624, !noalias !3626 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3624, !noalias !3626 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3619, !noalias !3627 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3619, !noalias !3627 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3619, !noalias !3627 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3619, !noalias !3627 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3622, !noalias !3628 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !3622, !noalias !3628 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !3622, !noalias !3628 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !3622, !noalias !3628 %exitcond.not.i.i = icmp eq i64 %8, 64 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3629) tail call void @llvm.experimental.noalias.scope.decl(metadata !3632) tail call void @llvm.experimental.noalias.scope.decl(metadata !3634) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !3634, !noalias !3636, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !3634, !noalias !3636, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !3634, !noalias !3636, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !3634, !noalias !3636, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !3634, !noalias !3636, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !3634, !noalias !3636, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3629, !noalias !3637 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3629, !noalias !3637 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3629, !noalias !3637 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3629, !noalias !3637 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3632, !noalias !3638 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !3632, !noalias !3638 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !3632, !noalias !3638 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !3632, !noalias !3638 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3629, !noalias !3637 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3629, !noalias !3637 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3629, !noalias !3637 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3629, !noalias !3637 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3632, !noalias !3638 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3632, !noalias !3638 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !3632, !noalias !3638 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !3632, !noalias !3638 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 32 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3639) tail call void @llvm.experimental.noalias.scope.decl(metadata !3642) tail call void @llvm.experimental.noalias.scope.decl(metadata !3644) br label %bb22.us.i40.i bb22.us.i40.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter.sroa.60.0710.us.i41.i = phi i64 [ %147, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i = shl i64 %iter.sroa.60.0710.us.i41.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.us.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %start1.i.i.i.i.i.i.us.i47.i = shl i64 %iter.sroa.60.0710.us.i41.i, 5 %data.i.i.i.i.i.i.us.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i47.i %start1.i.i.i.i.us.i49.i = shl i64 %iter.sroa.60.0710.us.i41.i, 4 %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !3644, !noalias !3646, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !3644, !noalias !3646, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !3644, !noalias !3646, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !3644, !noalias !3646, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !3644, !noalias !3646, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !3644, !noalias !3646, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 24 %119 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %124 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %bb22.us.i40.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %bb22.us.i40.i ], [ %125, %bb38.us.i59.i ] %125 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !3639, !noalias !3647 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !3639, !noalias !3647 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !3639, !noalias !3647 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !3639, !noalias !3647 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %128 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !3642, !noalias !3648 %135 = fsub <4 x double> %127, %133 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %120, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %135, <4 x double> %137) #23 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !3642, !noalias !3648 %139 = fsub <4 x double> %126, %128 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %122, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %139, <4 x double> %141) #23 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !3642, !noalias !3648 %143 = fadd <4 x double> %127, %133 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %124, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %123, <4 x double> %143, <4 x double> %145) #23 store <4 x double> %146, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !3642, !noalias !3648 %exitcond.not.i73.i = icmp eq i64 %125, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %147 = add nuw nsw i64 %iter.sroa.60.0710.us.i41.i, 1 %exitcond157.not.i = icmp eq i64 %147, 8 br i1 %exitcond157.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i, label %bb22.us.i40.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3649) tail call void @llvm.experimental.noalias.scope.decl(metadata !3652) tail call void @llvm.experimental.noalias.scope.decl(metadata !3654) %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i106.i = load double, ptr %148, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i107.i = load double, ptr %149, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i108.i = load double, ptr %150, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i109.i = load double, ptr %151, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %152 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i110.i = load double, ptr %152, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %153 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i111.i = load double, ptr %153, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.i = insertelement <2 x double> poison, double %w1.0.us.i106.i, i64 0 %154 = insertelement <4 x double> poison, double %w1.1.us.i107.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.i = insertelement <2 x double> poison, double %w2.0.us.i108.i, i64 0 %155 = insertelement <4 x double> poison, double %w2.1.us.i109.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.i = insertelement <2 x double> poison, double %w3.0.us.i110.i, i64 0 %156 = insertelement <4 x double> poison, double %w3.1.us.i111.i, i64 0 %157 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %158 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %159 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.i bb38.us.i115.i: ; preds = %bb38.us.i115.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i %iter5.sroa.50.0697.us.i116.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i ], [ %165, %bb38.us.i115.i ] %165 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.us.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %157, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.us.i123.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.us.i124.i = getelementptr inbounds %"fft_simd::c64x2", ptr %158, i64 %iter5.sroa.50.0697.us.i116.i %a.sroa.0.0.copyload.us.i125.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !3649, !noalias !3657 %b.sroa.0.0.copyload.us.i126.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, align 8, !alias.scope !3649, !noalias !3657 %c.sroa.0.0.copyload.us.i127.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i, align 8, !alias.scope !3649, !noalias !3657 %d.sroa.0.0.copyload.us.i128.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i, align 8, !alias.scope !3649, !noalias !3657 %166 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %167 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %168 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %169 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %166, %168 store <4 x double> %174, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i, align 8, !alias.scope !3652, !noalias !3658 %175 = fsub <4 x double> %167, %173 %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %160, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %175, <4 x double> %177) #23 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.us.i122.i, align 8, !alias.scope !3652, !noalias !3658 %179 = fsub <4 x double> %166, %168 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %162, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.i.i.us.i123.i, align 8, !alias.scope !3652, !noalias !3658 %183 = fadd <4 x double> %167, %173 %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %164, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %183, <4 x double> %185) #23 store <4 x double> %186, ptr %_3.i.i.i.i.us.i124.i, align 8, !alias.scope !3652, !noalias !3658 %exitcond.not.i129.i = icmp eq i64 %165, 32 br i1 %exitcond.not.i129.i, label %bb36.bb20.loopexit_crit_edge.us.i130.i, label %bb38.us.i115.i bb36.bb20.loopexit_crit_edge.us.i130.i: ; preds = %bb38.us.i115.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %data.i.i.i.i.i.i.i.i.us.i102.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i106.1.i = load double, ptr %187, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i107.1.i = load double, ptr %188, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i108.1.i = load double, ptr %189, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i109.1.i = load double, ptr %190, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i110.1.i = load double, ptr %191, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i111.1.i = load double, ptr %192, align 8, !alias.scope !3654, !noalias !3656, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.1.i = insertelement <2 x double> poison, double %w1.0.us.i106.1.i, i64 0 %193 = insertelement <4 x double> poison, double %w1.1.us.i107.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.1.i = insertelement <2 x double> poison, double %w2.0.us.i108.1.i, i64 0 %194 = insertelement <4 x double> poison, double %w2.1.us.i109.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.1.i = insertelement <2 x double> poison, double %w3.0.us.i110.1.i, i64 0 %195 = insertelement <4 x double> poison, double %w3.1.us.i111.1.i, i64 0 %196 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %197 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %198 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.1.i, <2 x double> poison, <4 x i32> zeroinitializer %199 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> zeroinitializer %200 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.1.i, <2 x double> poison, <4 x i32> zeroinitializer %201 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> zeroinitializer %202 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.1.i, <2 x double> poison, <4 x i32> zeroinitializer %203 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.1.i bb38.us.i115.1.i: ; preds = %bb38.us.i115.1.i, %bb36.bb20.loopexit_crit_edge.us.i130.i %iter5.sroa.50.0697.us.i116.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.i ], [ %204, %bb38.us.i115.1.i ] %204 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.us.i122.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %196, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.us.i123.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.us.i124.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %197, i64 %iter5.sroa.50.0697.us.i116.1.i %a.sroa.0.0.copyload.us.i125.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !3649, !noalias !3657 %b.sroa.0.0.copyload.us.i126.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !3649, !noalias !3657 %c.sroa.0.0.copyload.us.i127.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i, align 8, !alias.scope !3649, !noalias !3657 %d.sroa.0.0.copyload.us.i128.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i, align 8, !alias.scope !3649, !noalias !3657 %205 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %206 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %207 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %208 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %209 = bitcast <4 x double> %208 to <4 x i64> %210 = xor <4 x i64> %209, %211 = bitcast <4 x i64> %210 to <4 x double> %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fadd <4 x double> %205, %207 store <4 x double> %213, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i, align 8, !alias.scope !3652, !noalias !3658 %214 = fsub <4 x double> %206, %212 %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %199, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %198, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.us.i122.1.i, align 8, !alias.scope !3652, !noalias !3658 %218 = fsub <4 x double> %205, %207 %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %201, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %218, <4 x double> %220) #23 store <4 x double> %221, ptr %_3.i.i.i.i.i.i.us.i123.1.i, align 8, !alias.scope !3652, !noalias !3658 %222 = fadd <4 x double> %206, %212 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %203, %223 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %222, <4 x double> %224) #23 store <4 x double> %225, ptr %_3.i.i.i.i.us.i124.1.i, align 8, !alias.scope !3652, !noalias !3658 %exitcond.not.i129.1.i = icmp eq i64 %204, 32 br i1 %exitcond.not.i129.1.i, label %bb9.i.i.i.i.i.i, label %bb38.us.i115.1.i bb9.i.i.i.i.i.i: ; preds = %bb38.us.i115.1.i, %bb9.i.i.i.i.i.i %iter.i.i.i.i.i.sroa.8.0156.i = phi i64 [ %235, %bb9.i.i.i.i.i.i ], [ 0, %bb38.us.i115.1.i ] %226 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0156.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0156.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0156.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3614 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !3614 %227 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %228 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %227, ptr %_3.i.i.i.i.i, align 8, !noalias !3614 store <4 x double> %228, ptr %_3.i2.i.i.i.i, align 8, !noalias !3614 %229 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0156.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %226 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %226 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3614 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3614 %230 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %231 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %230, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3614 store <4 x double> %231, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !3614 %232 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0156.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %229 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %229 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3614 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3614 %233 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %234 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %233, ptr %_3.i.i.i.i.i.2, align 8, !noalias !3614 store <4 x double> %234, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !3614 %235 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0156.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %232 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %232 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3614 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3614 %236 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %237 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %236, ptr %_3.i.i.i.i.i.3, align 8, !noalias !3614 store <4 x double> %237, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !3614 %exitcond158.not.i.3 = icmp eq i64 %235, 128 br i1 %exitcond158.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17hdf4a87c0df2b2670E.exit, label %bb9.i.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17hdf4a87c0df2b2670E.exit: ; preds = %bb9.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3614 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5edef8ff99ff72edE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3659 store i64 64, ptr %n.i, align 8, !noalias !3659 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3659 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3659 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3659 store ptr null, ptr %_16.i, align 8, !noalias !3659 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3659 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3659 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3659 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3659 store ptr null, ptr %_24.i, align 8, !noalias !3659 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3659 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3659 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3659 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3659 store ptr null, ptr %_32.i, align 8, !noalias !3659 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3659 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3659 store i64 %w.1, ptr %_34.i, align 8, !noalias !3659 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3659 store ptr null, ptr %_40.i, align 8, !noalias !3659 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3659 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %17 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %17, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %18 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %18, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %19 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %19, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %20 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %20, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %21 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %21, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %22 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %22, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %23 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %23, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %24 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %25 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %26 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %27 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %28 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %29 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %30 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %38, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %39, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !3659 %47 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %49 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %50 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %51 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %52 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %53 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %54 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %55 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34 %56 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %57 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17 %58 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 33 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 35 %62 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %63 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %64 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38 %65 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %66 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21 %67 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 37 %68 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %69 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23 %70 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 39 %71 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %72 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %75 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %76 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %78 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25 %79 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 41 %80 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %81 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27 %82 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 43 %83 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %84 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %85 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46 %86 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %87 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29 %88 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 45 %89 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %90 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31 %91 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 47 %92 = fneg <4 x double> %wide.masked.gather1 %93 = fneg <4 x double> %wide.masked.gather3 %94 = fneg <4 x double> %wide.masked.gather5 %95 = fneg <4 x double> %wide.masked.gather7 %96 = fneg <4 x double> %wide.masked.gather9 %97 = fneg <4 x double> %wide.masked.gather11 %98 = fneg <4 x double> %wide.masked.gather13 %99 = fneg <4 x double> %wide.masked.gather15 %100 = fneg <4 x double> %wide.masked.gather17 %101 = fneg <4 x double> %wide.masked.gather19 %102 = fneg <4 x double> %wide.masked.gather21 %103 = fneg <4 x double> %wide.masked.gather23 %104 = fneg <4 x double> %wide.masked.gather25 %105 = fneg <4 x double> %wide.masked.gather27 %106 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !3659 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %3, align 8, !noalias !3659 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %2, align 8, !noalias !3659 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %4, align 8, !noalias !3659 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %1, align 8, !noalias !3659 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %6, align 8, !noalias !3659 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %5, align 8, !noalias !3659 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %7, align 8, !noalias !3659 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %0, align 8, !noalias !3659 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %10, align 8, !noalias !3659 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %9, align 8, !noalias !3659 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %11, align 8, !noalias !3659 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %8, align 8, !noalias !3659 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %13, align 8, !noalias !3659 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %12, align 8, !noalias !3659 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %14, align 8, !noalias !3659 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %107 = fadd <4 x double> %strided.vec, %strided.vec53 %108 = fadd <4 x double> %strided.vec30, %strided.vec54 %109 = fsub <4 x double> %strided.vec, %strided.vec53 %110 = fsub <4 x double> %strided.vec30, %strided.vec54 %111 = fadd <4 x double> %strided.vec41, %strided.vec65 %112 = fadd <4 x double> %strided.vec42, %strided.vec66 %113 = fsub <4 x double> %strided.vec41, %strided.vec65 %114 = fsub <4 x double> %strided.vec42, %strided.vec66 %115 = fadd <4 x double> %strided.vec35, %strided.vec59 %116 = fadd <4 x double> %strided.vec36, %strided.vec60 %117 = fsub <4 x double> %strided.vec35, %strided.vec59 %118 = fsub <4 x double> %strided.vec36, %strided.vec60 %119 = fadd <4 x double> %strided.vec47, %strided.vec71 %120 = fadd <4 x double> %strided.vec48, %strided.vec72 %121 = fsub <4 x double> %strided.vec47, %strided.vec71 %122 = fsub <4 x double> %strided.vec48, %strided.vec72 %123 = fadd <4 x double> %strided.vec32, %strided.vec56 %124 = fadd <4 x double> %strided.vec33, %strided.vec57 %125 = fsub <4 x double> %strided.vec32, %strided.vec56 %126 = fsub <4 x double> %strided.vec33, %strided.vec57 %127 = fadd <4 x double> %strided.vec44, %strided.vec68 %128 = fadd <4 x double> %strided.vec45, %strided.vec69 %129 = fsub <4 x double> %strided.vec44, %strided.vec68 %130 = fsub <4 x double> %strided.vec45, %strided.vec69 %131 = fadd <4 x double> %strided.vec38, %strided.vec62 %132 = fadd <4 x double> %strided.vec39, %strided.vec63 %133 = fsub <4 x double> %strided.vec38, %strided.vec62 %134 = fsub <4 x double> %strided.vec39, %strided.vec63 %135 = fadd <4 x double> %strided.vec50, %strided.vec74 %136 = fadd <4 x double> %strided.vec51, %strided.vec75 %137 = fsub <4 x double> %strided.vec50, %strided.vec74 %138 = fsub <4 x double> %strided.vec51, %strided.vec75 %139 = fadd <4 x double> %107, %111 %140 = fadd <4 x double> %108, %112 %141 = fadd <4 x double> %109, %114 %142 = fsub <4 x double> %110, %113 %143 = fsub <4 x double> %107, %111 %144 = fsub <4 x double> %108, %112 %145 = fsub <4 x double> %109, %114 %146 = fadd <4 x double> %110, %113 %147 = fadd <4 x double> %115, %119 %148 = fadd <4 x double> %116, %120 %149 = fadd <4 x double> %117, %122 %150 = fsub <4 x double> %118, %121 %151 = fsub <4 x double> %115, %119 %152 = fsub <4 x double> %116, %120 %153 = fsub <4 x double> %117, %122 %154 = fadd <4 x double> %118, %121 %155 = fadd <4 x double> %123, %127 %156 = fadd <4 x double> %124, %128 %157 = fadd <4 x double> %125, %130 %158 = fsub <4 x double> %126, %129 %159 = fsub <4 x double> %123, %127 %160 = fsub <4 x double> %124, %128 %161 = fsub <4 x double> %125, %130 %162 = fadd <4 x double> %126, %129 %163 = fadd <4 x double> %131, %135 %164 = fadd <4 x double> %132, %136 %165 = fadd <4 x double> %133, %138 %166 = fsub <4 x double> %134, %137 %167 = fsub <4 x double> %131, %135 %168 = fsub <4 x double> %132, %136 %169 = fsub <4 x double> %133, %138 %170 = fadd <4 x double> %134, %137 %171 = fadd <4 x double> %150, %149 %172 = fsub <4 x double> %150, %149 %173 = fmul <4 x double> %171, %174 = fmul <4 x double> %172, %175 = fsub <4 x double> %153, %154 %176 = fadd <4 x double> %154, %153 %177 = fmul <4 x double> %175, %178 = fmul <4 x double> %176, %179 = fadd <4 x double> %139, %147 %180 = fadd <4 x double> %140, %148 %181 = fadd <4 x double> %141, %173 %182 = fadd <4 x double> %142, %174 %183 = fadd <4 x double> %143, %152 %184 = fsub <4 x double> %144, %151 %185 = fsub <4 x double> %145, %177 %186 = fsub <4 x double> %146, %178 %187 = fsub <4 x double> %139, %147 %188 = fsub <4 x double> %140, %148 %189 = fsub <4 x double> %141, %173 %190 = fsub <4 x double> %142, %174 %191 = fsub <4 x double> %143, %152 %192 = fadd <4 x double> %144, %151 %193 = fadd <4 x double> %145, %177 %194 = fadd <4 x double> %146, %178 %195 = fadd <4 x double> %166, %165 %196 = fsub <4 x double> %166, %165 %197 = fmul <4 x double> %195, %198 = fmul <4 x double> %196, %199 = fsub <4 x double> %169, %170 %200 = fadd <4 x double> %170, %169 %201 = fmul <4 x double> %199, %202 = fmul <4 x double> %200, %203 = fadd <4 x double> %155, %163 %204 = fadd <4 x double> %156, %164 %205 = fadd <4 x double> %157, %197 %206 = fadd <4 x double> %158, %198 %207 = fadd <4 x double> %159, %168 %208 = fsub <4 x double> %160, %167 %209 = fsub <4 x double> %161, %201 %210 = fsub <4 x double> %162, %202 %211 = fsub <4 x double> %155, %163 %212 = fsub <4 x double> %156, %164 %213 = fsub <4 x double> %157, %197 %214 = fsub <4 x double> %158, %198 %215 = fsub <4 x double> %159, %168 %216 = fadd <4 x double> %160, %167 %217 = fadd <4 x double> %161, %201 %218 = fadd <4 x double> %162, %202 %219 = fmul <4 x double> %206, %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %205, <4 x double> , <4 x double> %219) %221 = fmul <4 x double> %205, %222 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %206, <4 x double> , <4 x double> %221) %223 = fadd <4 x double> %208, %207 %224 = fsub <4 x double> %208, %207 %225 = fmul <4 x double> %223, %226 = fmul <4 x double> %224, %227 = fmul <4 x double> %210, %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %209, <4 x double> , <4 x double> %227) %229 = fmul <4 x double> %209, %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %210, <4 x double> , <4 x double> %229) %231 = fmul <4 x double> %214, %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %213, <4 x double> , <4 x double> %231) %233 = fmul <4 x double> %213, %234 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %214, <4 x double> , <4 x double> %233) %235 = fsub <4 x double> %215, %216 %236 = fadd <4 x double> %216, %215 %237 = fmul <4 x double> %235, %238 = fmul <4 x double> %236, %239 = fmul <4 x double> %218, %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %217, <4 x double> , <4 x double> %239) %241 = fmul <4 x double> %217, %242 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %218, <4 x double> , <4 x double> %241) %243 = fadd <4 x double> %179, %203 %244 = fadd <4 x double> %180, %204 %245 = extractelement <4 x double> %243, i64 0 store double %245, ptr %scratch.0, align 8, !noalias !3659 %246 = extractelement <4 x double> %243, i64 1 store double %246, ptr %15, align 8, !noalias !3659 %247 = extractelement <4 x double> %243, i64 2 store double %247, ptr %16, align 8, !noalias !3659 %248 = getelementptr inbounds i8, ptr %scratch.0, i64 8 %249 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16, i32 1 %250 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32, i32 1 %251 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48, i32 1 %252 = extractelement <4 x double> %244, i64 0 store double %252, ptr %248, align 8, !noalias !3659 %253 = extractelement <4 x double> %244, i64 1 store double %253, ptr %249, align 8, !noalias !3659 %254 = extractelement <4 x double> %244, i64 2 store double %254, ptr %250, align 8, !noalias !3659 %255 = fadd <4 x double> %181, %220 %256 = fadd <4 x double> %182, %222 %257 = fmul <4 x double> %256, %92 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %255, <4 x double> %257) %259 = fmul <4 x double> %wide.masked.gather1, %255 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %256, <4 x double> %259) %261 = extractelement <4 x double> %258, i64 0 store double %261, ptr %56, align 8, !noalias !3659 %262 = extractelement <4 x double> %258, i64 1 store double %262, ptr %57, align 8, !noalias !3659 %263 = extractelement <4 x double> %258, i64 2 store double %263, ptr %58, align 8, !noalias !3659 %264 = shufflevector <4 x double> %244, <4 x double> %258, <2 x i32> store <2 x double> %264, ptr %251, align 8, !noalias !3659 %265 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1, i32 1 %266 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17, i32 1 %267 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 33, i32 1 %268 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49, i32 1 %269 = extractelement <4 x double> %260, i64 0 store double %269, ptr %265, align 8, !noalias !3659 %270 = extractelement <4 x double> %260, i64 1 store double %270, ptr %266, align 8, !noalias !3659 %271 = extractelement <4 x double> %260, i64 2 store double %271, ptr %267, align 8, !noalias !3659 %272 = fadd <4 x double> %183, %225 %273 = fadd <4 x double> %184, %226 %274 = fmul <4 x double> %273, %93 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %272, <4 x double> %274) %276 = fmul <4 x double> %wide.masked.gather3, %272 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %273, <4 x double> %276) %278 = extractelement <4 x double> %275, i64 0 store double %278, ptr %53, align 8, !noalias !3659 %279 = extractelement <4 x double> %275, i64 1 store double %279, ptr %54, align 8, !noalias !3659 %280 = extractelement <4 x double> %275, i64 2 store double %280, ptr %55, align 8, !noalias !3659 %281 = shufflevector <4 x double> %260, <4 x double> %275, <2 x i32> store <2 x double> %281, ptr %268, align 8, !noalias !3659 %282 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2, i32 1 %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18, i32 1 %284 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34, i32 1 %285 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50, i32 1 %286 = extractelement <4 x double> %277, i64 0 store double %286, ptr %282, align 8, !noalias !3659 %287 = extractelement <4 x double> %277, i64 1 store double %287, ptr %283, align 8, !noalias !3659 %288 = extractelement <4 x double> %277, i64 2 store double %288, ptr %284, align 8, !noalias !3659 %289 = fadd <4 x double> %185, %228 %290 = fadd <4 x double> %186, %230 %291 = fmul <4 x double> %290, %94 %292 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %289, <4 x double> %291) %293 = fmul <4 x double> %wide.masked.gather5, %289 %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %290, <4 x double> %293) %295 = extractelement <4 x double> %292, i64 0 store double %295, ptr %59, align 8, !noalias !3659 %296 = extractelement <4 x double> %292, i64 1 store double %296, ptr %60, align 8, !noalias !3659 %297 = extractelement <4 x double> %292, i64 2 store double %297, ptr %61, align 8, !noalias !3659 %298 = shufflevector <4 x double> %277, <4 x double> %292, <2 x i32> store <2 x double> %298, ptr %285, align 8, !noalias !3659 %299 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3, i32 1 %300 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19, i32 1 %301 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 35, i32 1 %302 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51, i32 1 %303 = extractelement <4 x double> %294, i64 0 store double %303, ptr %299, align 8, !noalias !3659 %304 = extractelement <4 x double> %294, i64 1 store double %304, ptr %300, align 8, !noalias !3659 %305 = extractelement <4 x double> %294, i64 2 store double %305, ptr %301, align 8, !noalias !3659 %306 = fadd <4 x double> %187, %212 %307 = fsub <4 x double> %188, %211 %308 = fmul <4 x double> %307, %95 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %306, <4 x double> %308) %310 = fmul <4 x double> %wide.masked.gather7, %306 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %307, <4 x double> %310) %312 = extractelement <4 x double> %309, i64 0 store double %312, ptr %50, align 8, !noalias !3659 %313 = extractelement <4 x double> %309, i64 1 store double %313, ptr %51, align 8, !noalias !3659 %314 = extractelement <4 x double> %309, i64 2 store double %314, ptr %52, align 8, !noalias !3659 %315 = shufflevector <4 x double> %294, <4 x double> %309, <2 x i32> store <2 x double> %315, ptr %302, align 8, !noalias !3659 %316 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4, i32 1 %317 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20, i32 1 %318 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52, i32 1 %320 = extractelement <4 x double> %311, i64 0 store double %320, ptr %316, align 8, !noalias !3659 %321 = extractelement <4 x double> %311, i64 1 store double %321, ptr %317, align 8, !noalias !3659 %322 = extractelement <4 x double> %311, i64 2 store double %322, ptr %318, align 8, !noalias !3659 %323 = fsub <4 x double> %189, %232 %324 = fsub <4 x double> %190, %234 %325 = fmul <4 x double> %324, %96 %326 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %323, <4 x double> %325) %327 = fmul <4 x double> %wide.masked.gather9, %323 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %324, <4 x double> %327) %329 = extractelement <4 x double> %326, i64 0 store double %329, ptr %65, align 8, !noalias !3659 %330 = extractelement <4 x double> %326, i64 1 store double %330, ptr %66, align 8, !noalias !3659 %331 = extractelement <4 x double> %326, i64 2 store double %331, ptr %67, align 8, !noalias !3659 %332 = shufflevector <4 x double> %311, <4 x double> %326, <2 x i32> store <2 x double> %332, ptr %319, align 8, !noalias !3659 %333 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5, i32 1 %334 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 37, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53, i32 1 %337 = extractelement <4 x double> %328, i64 0 store double %337, ptr %333, align 8, !noalias !3659 %338 = extractelement <4 x double> %328, i64 1 store double %338, ptr %334, align 8, !noalias !3659 %339 = extractelement <4 x double> %328, i64 2 store double %339, ptr %335, align 8, !noalias !3659 %340 = fsub <4 x double> %191, %237 %341 = fsub <4 x double> %192, %238 %342 = fmul <4 x double> %341, %97 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %340, <4 x double> %342) %344 = fmul <4 x double> %wide.masked.gather11, %340 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %341, <4 x double> %344) %346 = extractelement <4 x double> %343, i64 0 store double %346, ptr %62, align 8, !noalias !3659 %347 = extractelement <4 x double> %343, i64 1 store double %347, ptr %63, align 8, !noalias !3659 %348 = extractelement <4 x double> %343, i64 2 store double %348, ptr %64, align 8, !noalias !3659 %349 = shufflevector <4 x double> %328, <4 x double> %343, <2 x i32> store <2 x double> %349, ptr %336, align 8, !noalias !3659 %350 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38, i32 1 %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54, i32 1 %354 = extractelement <4 x double> %345, i64 0 store double %354, ptr %350, align 8, !noalias !3659 %355 = extractelement <4 x double> %345, i64 1 store double %355, ptr %351, align 8, !noalias !3659 %356 = extractelement <4 x double> %345, i64 2 store double %356, ptr %352, align 8, !noalias !3659 %357 = fsub <4 x double> %193, %240 %358 = fsub <4 x double> %194, %242 %359 = fmul <4 x double> %358, %98 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather13, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %68, align 8, !noalias !3659 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %69, align 8, !noalias !3659 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %70, align 8, !noalias !3659 %366 = shufflevector <4 x double> %345, <4 x double> %360, <2 x i32> store <2 x double> %366, ptr %353, align 8, !noalias !3659 %367 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23, i32 1 %369 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 39, i32 1 %370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55, i32 1 %371 = extractelement <4 x double> %362, i64 0 store double %371, ptr %367, align 8, !noalias !3659 %372 = extractelement <4 x double> %362, i64 1 store double %372, ptr %368, align 8, !noalias !3659 %373 = extractelement <4 x double> %362, i64 2 store double %373, ptr %369, align 8, !noalias !3659 %374 = fsub <4 x double> %179, %203 %375 = fsub <4 x double> %180, %204 %376 = fmul <4 x double> %375, %99 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %374, <4 x double> %376) %378 = fmul <4 x double> %wide.masked.gather15, %374 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %375, <4 x double> %378) %380 = extractelement <4 x double> %377, i64 0 store double %380, ptr %47, align 8, !noalias !3659 %381 = extractelement <4 x double> %377, i64 1 store double %381, ptr %48, align 8, !noalias !3659 %382 = extractelement <4 x double> %377, i64 2 store double %382, ptr %49, align 8, !noalias !3659 %383 = shufflevector <4 x double> %362, <4 x double> %377, <2 x i32> store <2 x double> %383, ptr %370, align 8, !noalias !3659 %384 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8, i32 1 %385 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24, i32 1 %386 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40, i32 1 %387 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56, i32 1 %388 = extractelement <4 x double> %379, i64 0 store double %388, ptr %384, align 8, !noalias !3659 %389 = extractelement <4 x double> %379, i64 1 store double %389, ptr %385, align 8, !noalias !3659 %390 = extractelement <4 x double> %379, i64 2 store double %390, ptr %386, align 8, !noalias !3659 %391 = fsub <4 x double> %181, %220 %392 = fsub <4 x double> %182, %222 %393 = fmul <4 x double> %392, %100 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %391, <4 x double> %393) %395 = fmul <4 x double> %wide.masked.gather17, %391 %396 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %392, <4 x double> %395) %397 = extractelement <4 x double> %394, i64 0 store double %397, ptr %77, align 8, !noalias !3659 %398 = extractelement <4 x double> %394, i64 1 store double %398, ptr %78, align 8, !noalias !3659 %399 = extractelement <4 x double> %394, i64 2 store double %399, ptr %79, align 8, !noalias !3659 %400 = shufflevector <4 x double> %379, <4 x double> %394, <2 x i32> store <2 x double> %400, ptr %387, align 8, !noalias !3659 %401 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9, i32 1 %402 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25, i32 1 %403 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 41, i32 1 %404 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57, i32 1 %405 = extractelement <4 x double> %396, i64 0 store double %405, ptr %401, align 8, !noalias !3659 %406 = extractelement <4 x double> %396, i64 1 store double %406, ptr %402, align 8, !noalias !3659 %407 = extractelement <4 x double> %396, i64 2 store double %407, ptr %403, align 8, !noalias !3659 %408 = fsub <4 x double> %183, %225 %409 = fsub <4 x double> %184, %226 %410 = fmul <4 x double> %409, %101 %411 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %408, <4 x double> %410) %412 = fmul <4 x double> %wide.masked.gather19, %408 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %409, <4 x double> %412) %414 = extractelement <4 x double> %411, i64 0 store double %414, ptr %74, align 8, !noalias !3659 %415 = extractelement <4 x double> %411, i64 1 store double %415, ptr %75, align 8, !noalias !3659 %416 = extractelement <4 x double> %411, i64 2 store double %416, ptr %76, align 8, !noalias !3659 %417 = shufflevector <4 x double> %396, <4 x double> %411, <2 x i32> store <2 x double> %417, ptr %404, align 8, !noalias !3659 %418 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10, i32 1 %419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26, i32 1 %420 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42, i32 1 %421 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58, i32 1 %422 = extractelement <4 x double> %413, i64 0 store double %422, ptr %418, align 8, !noalias !3659 %423 = extractelement <4 x double> %413, i64 1 store double %423, ptr %419, align 8, !noalias !3659 %424 = extractelement <4 x double> %413, i64 2 store double %424, ptr %420, align 8, !noalias !3659 %425 = fsub <4 x double> %185, %228 %426 = fsub <4 x double> %186, %230 %427 = fmul <4 x double> %426, %102 %428 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %425, <4 x double> %427) %429 = fmul <4 x double> %wide.masked.gather21, %425 %430 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %426, <4 x double> %429) %431 = extractelement <4 x double> %428, i64 0 store double %431, ptr %80, align 8, !noalias !3659 %432 = extractelement <4 x double> %428, i64 1 store double %432, ptr %81, align 8, !noalias !3659 %433 = extractelement <4 x double> %428, i64 2 store double %433, ptr %82, align 8, !noalias !3659 %434 = shufflevector <4 x double> %413, <4 x double> %428, <2 x i32> store <2 x double> %434, ptr %421, align 8, !noalias !3659 %435 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11, i32 1 %436 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27, i32 1 %437 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 43, i32 1 %438 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59, i32 1 %439 = extractelement <4 x double> %430, i64 0 store double %439, ptr %435, align 8, !noalias !3659 %440 = extractelement <4 x double> %430, i64 1 store double %440, ptr %436, align 8, !noalias !3659 %441 = extractelement <4 x double> %430, i64 2 store double %441, ptr %437, align 8, !noalias !3659 %442 = fsub <4 x double> %187, %212 %443 = fadd <4 x double> %188, %211 %444 = fmul <4 x double> %443, %103 %445 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %442, <4 x double> %444) %446 = fmul <4 x double> %wide.masked.gather23, %442 %447 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %443, <4 x double> %446) %448 = extractelement <4 x double> %445, i64 0 store double %448, ptr %71, align 8, !noalias !3659 %449 = extractelement <4 x double> %445, i64 1 store double %449, ptr %72, align 8, !noalias !3659 %450 = extractelement <4 x double> %445, i64 2 store double %450, ptr %73, align 8, !noalias !3659 %451 = shufflevector <4 x double> %430, <4 x double> %445, <2 x i32> store <2 x double> %451, ptr %438, align 8, !noalias !3659 %452 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12, i32 1 %453 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28, i32 1 %454 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44, i32 1 %455 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60, i32 1 %456 = extractelement <4 x double> %447, i64 0 store double %456, ptr %452, align 8, !noalias !3659 %457 = extractelement <4 x double> %447, i64 1 store double %457, ptr %453, align 8, !noalias !3659 %458 = extractelement <4 x double> %447, i64 2 store double %458, ptr %454, align 8, !noalias !3659 %459 = fadd <4 x double> %189, %232 %460 = fadd <4 x double> %190, %234 %461 = fmul <4 x double> %460, %104 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %459, <4 x double> %461) %463 = fmul <4 x double> %wide.masked.gather25, %459 %464 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %460, <4 x double> %463) %465 = extractelement <4 x double> %462, i64 0 store double %465, ptr %86, align 8, !noalias !3659 %466 = extractelement <4 x double> %462, i64 1 store double %466, ptr %87, align 8, !noalias !3659 %467 = extractelement <4 x double> %462, i64 2 store double %467, ptr %88, align 8, !noalias !3659 %468 = shufflevector <4 x double> %447, <4 x double> %462, <2 x i32> store <2 x double> %468, ptr %455, align 8, !noalias !3659 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13, i32 1 %470 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29, i32 1 %471 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 45, i32 1 %472 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61, i32 1 %473 = extractelement <4 x double> %464, i64 0 store double %473, ptr %469, align 8, !noalias !3659 %474 = extractelement <4 x double> %464, i64 1 store double %474, ptr %470, align 8, !noalias !3659 %475 = extractelement <4 x double> %464, i64 2 store double %475, ptr %471, align 8, !noalias !3659 %476 = fadd <4 x double> %191, %237 %477 = fadd <4 x double> %192, %238 %478 = fmul <4 x double> %477, %105 %479 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %476, <4 x double> %478) %480 = fmul <4 x double> %wide.masked.gather27, %476 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %477, <4 x double> %480) %482 = extractelement <4 x double> %479, i64 0 store double %482, ptr %83, align 8, !noalias !3659 %483 = extractelement <4 x double> %479, i64 1 store double %483, ptr %84, align 8, !noalias !3659 %484 = extractelement <4 x double> %479, i64 2 store double %484, ptr %85, align 8, !noalias !3659 %485 = shufflevector <4 x double> %464, <4 x double> %479, <2 x i32> store <2 x double> %485, ptr %472, align 8, !noalias !3659 %486 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14, i32 1 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30, i32 1 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62, i32 1 %490 = extractelement <4 x double> %481, i64 0 store double %490, ptr %486, align 8, !noalias !3659 %491 = extractelement <4 x double> %481, i64 1 store double %491, ptr %487, align 8, !noalias !3659 %492 = extractelement <4 x double> %481, i64 2 store double %492, ptr %488, align 8, !noalias !3659 %493 = fadd <4 x double> %193, %240 %494 = fadd <4 x double> %194, %242 %495 = fmul <4 x double> %494, %106 %496 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %493, <4 x double> %495) %497 = fmul <4 x double> %wide.masked.gather29, %493 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %494, <4 x double> %497) %499 = extractelement <4 x double> %496, i64 0 store double %499, ptr %89, align 8, !noalias !3659 %500 = extractelement <4 x double> %496, i64 1 store double %500, ptr %90, align 8, !noalias !3659 %501 = extractelement <4 x double> %496, i64 2 store double %501, ptr %91, align 8, !noalias !3659 %502 = shufflevector <4 x double> %481, <4 x double> %496, <2 x i32> store <2 x double> %502, ptr %489, align 8, !noalias !3659 %503 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15, i32 1 %504 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 47, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63, i32 1 %507 = extractelement <4 x double> %498, i64 0 store double %507, ptr %503, align 8, !noalias !3659 %508 = extractelement <4 x double> %498, i64 1 store double %508, ptr %504, align 8, !noalias !3659 %509 = shufflevector <4 x double> %498, <4 x double> %243, <2 x i32> store <2 x double> %509, ptr %505, align 8, !noalias !3659 %510 = extractelement <4 x double> %498, i64 3 store double %510, ptr %506, align 8, !noalias !3659 %511 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %512 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %513 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec82 = load <8 x double>, ptr %scratch.0, align 8, !noalias !3659 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %512, align 8, !noalias !3659 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %513, align 8, !noalias !3659 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %511, align 8, !noalias !3659 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %514 = fadd <4 x double> %strided.vec83, %strided.vec89 %515 = fadd <4 x double> %strided.vec84, %strided.vec90 %516 = fsub <4 x double> %strided.vec83, %strided.vec89 %517 = fsub <4 x double> %strided.vec84, %strided.vec90 %518 = fadd <4 x double> %strided.vec86, %strided.vec92 %519 = fadd <4 x double> %strided.vec87, %strided.vec93 %520 = fsub <4 x double> %strided.vec86, %strided.vec92 %521 = fsub <4 x double> %strided.vec87, %strided.vec93 %522 = fadd <4 x double> %514, %518 %523 = fadd <4 x double> %515, %519 %524 = fadd <4 x double> %516, %521 %525 = fsub <4 x double> %517, %520 %526 = fsub <4 x double> %514, %518 %527 = fsub <4 x double> %515, %519 %528 = fsub <4 x double> %516, %521 %529 = fadd <4 x double> %517, %520 %interleaved.vec = shufflevector <4 x double> %522, <4 x double> %523, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !3659 %interleaved.vec94 = shufflevector <4 x double> %524, <4 x double> %525, <8 x i32> store <8 x double> %interleaved.vec94, ptr %1, align 8, !noalias !3659 %interleaved.vec95 = shufflevector <4 x double> %526, <4 x double> %527, <8 x i32> store <8 x double> %interleaved.vec95, ptr %0, align 8, !noalias !3659 %interleaved.vec96 = shufflevector <4 x double> %528, <4 x double> %529, <8 x i32> store <8 x double> %interleaved.vec96, ptr %8, align 8, !noalias !3659 %530 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %531 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %532 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %533 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec82.1 = load <8 x double>, ptr %530, align 8, !noalias !3659 %strided.vec83.1 = shufflevector <8 x double> %wide.vec82.1, <8 x double> poison, <4 x i32> %strided.vec84.1 = shufflevector <8 x double> %wide.vec82.1, <8 x double> poison, <4 x i32> %wide.vec85.1 = load <8 x double>, ptr %531, align 8, !noalias !3659 %strided.vec86.1 = shufflevector <8 x double> %wide.vec85.1, <8 x double> poison, <4 x i32> %strided.vec87.1 = shufflevector <8 x double> %wide.vec85.1, <8 x double> poison, <4 x i32> %wide.vec88.1 = load <8 x double>, ptr %532, align 8, !noalias !3659 %strided.vec89.1 = shufflevector <8 x double> %wide.vec88.1, <8 x double> poison, <4 x i32> %strided.vec90.1 = shufflevector <8 x double> %wide.vec88.1, <8 x double> poison, <4 x i32> %wide.vec91.1 = load <8 x double>, ptr %533, align 8, !noalias !3659 %strided.vec92.1 = shufflevector <8 x double> %wide.vec91.1, <8 x double> poison, <4 x i32> %strided.vec93.1 = shufflevector <8 x double> %wide.vec91.1, <8 x double> poison, <4 x i32> %534 = fadd <4 x double> %strided.vec83.1, %strided.vec89.1 %535 = fadd <4 x double> %strided.vec84.1, %strided.vec90.1 %536 = fsub <4 x double> %strided.vec83.1, %strided.vec89.1 %537 = fsub <4 x double> %strided.vec84.1, %strided.vec90.1 %538 = fadd <4 x double> %strided.vec86.1, %strided.vec92.1 %539 = fadd <4 x double> %strided.vec87.1, %strided.vec93.1 %540 = fsub <4 x double> %strided.vec86.1, %strided.vec92.1 %541 = fsub <4 x double> %strided.vec87.1, %strided.vec93.1 %542 = fadd <4 x double> %534, %538 %543 = fadd <4 x double> %535, %539 %544 = fadd <4 x double> %536, %541 %545 = fsub <4 x double> %537, %540 %546 = fsub <4 x double> %534, %538 %547 = fsub <4 x double> %535, %539 %548 = fsub <4 x double> %536, %541 %549 = fadd <4 x double> %537, %540 %550 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %542, <4 x double> %543, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %550, align 8, !noalias !3659 %551 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec94.1 = shufflevector <4 x double> %544, <4 x double> %545, <8 x i32> store <8 x double> %interleaved.vec94.1, ptr %551, align 8, !noalias !3659 %552 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec95.1 = shufflevector <4 x double> %546, <4 x double> %547, <8 x i32> store <8 x double> %interleaved.vec95.1, ptr %552, align 8, !noalias !3659 %553 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec96.1 = shufflevector <4 x double> %548, <4 x double> %549, <8 x i32> store <8 x double> %interleaved.vec96.1, ptr %553, align 8, !noalias !3659 %554 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %555 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %556 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %557 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec82.2 = load <8 x double>, ptr %554, align 8, !noalias !3659 %strided.vec83.2 = shufflevector <8 x double> %wide.vec82.2, <8 x double> poison, <4 x i32> %strided.vec84.2 = shufflevector <8 x double> %wide.vec82.2, <8 x double> poison, <4 x i32> %wide.vec85.2 = load <8 x double>, ptr %555, align 8, !noalias !3659 %strided.vec86.2 = shufflevector <8 x double> %wide.vec85.2, <8 x double> poison, <4 x i32> %strided.vec87.2 = shufflevector <8 x double> %wide.vec85.2, <8 x double> poison, <4 x i32> %wide.vec88.2 = load <8 x double>, ptr %556, align 8, !noalias !3659 %strided.vec89.2 = shufflevector <8 x double> %wide.vec88.2, <8 x double> poison, <4 x i32> %strided.vec90.2 = shufflevector <8 x double> %wide.vec88.2, <8 x double> poison, <4 x i32> %wide.vec91.2 = load <8 x double>, ptr %557, align 8, !noalias !3659 %strided.vec92.2 = shufflevector <8 x double> %wide.vec91.2, <8 x double> poison, <4 x i32> %strided.vec93.2 = shufflevector <8 x double> %wide.vec91.2, <8 x double> poison, <4 x i32> %558 = fadd <4 x double> %strided.vec83.2, %strided.vec89.2 %559 = fadd <4 x double> %strided.vec84.2, %strided.vec90.2 %560 = fsub <4 x double> %strided.vec83.2, %strided.vec89.2 %561 = fsub <4 x double> %strided.vec84.2, %strided.vec90.2 %562 = fadd <4 x double> %strided.vec86.2, %strided.vec92.2 %563 = fadd <4 x double> %strided.vec87.2, %strided.vec93.2 %564 = fsub <4 x double> %strided.vec86.2, %strided.vec92.2 %565 = fsub <4 x double> %strided.vec87.2, %strided.vec93.2 %566 = fadd <4 x double> %558, %562 %567 = fadd <4 x double> %559, %563 %568 = fadd <4 x double> %560, %565 %569 = fsub <4 x double> %561, %564 %570 = fsub <4 x double> %558, %562 %571 = fsub <4 x double> %559, %563 %572 = fsub <4 x double> %560, %565 %573 = fadd <4 x double> %561, %564 %574 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %566, <4 x double> %567, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %574, align 8, !noalias !3659 %575 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec94.2 = shufflevector <4 x double> %568, <4 x double> %569, <8 x i32> store <8 x double> %interleaved.vec94.2, ptr %575, align 8, !noalias !3659 %576 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec95.2 = shufflevector <4 x double> %570, <4 x double> %571, <8 x i32> store <8 x double> %interleaved.vec95.2, ptr %576, align 8, !noalias !3659 %577 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec96.2 = shufflevector <4 x double> %572, <4 x double> %573, <8 x i32> store <8 x double> %interleaved.vec96.2, ptr %577, align 8, !noalias !3659 %578 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %579 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %580 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %581 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec82.3 = load <8 x double>, ptr %578, align 8, !noalias !3659 %strided.vec83.3 = shufflevector <8 x double> %wide.vec82.3, <8 x double> poison, <4 x i32> %strided.vec84.3 = shufflevector <8 x double> %wide.vec82.3, <8 x double> poison, <4 x i32> %wide.vec85.3 = load <8 x double>, ptr %579, align 8, !noalias !3659 %strided.vec86.3 = shufflevector <8 x double> %wide.vec85.3, <8 x double> poison, <4 x i32> %strided.vec87.3 = shufflevector <8 x double> %wide.vec85.3, <8 x double> poison, <4 x i32> %wide.vec88.3 = load <8 x double>, ptr %580, align 8, !noalias !3659 %strided.vec89.3 = shufflevector <8 x double> %wide.vec88.3, <8 x double> poison, <4 x i32> %strided.vec90.3 = shufflevector <8 x double> %wide.vec88.3, <8 x double> poison, <4 x i32> %wide.vec91.3 = load <8 x double>, ptr %581, align 8, !noalias !3659 %strided.vec92.3 = shufflevector <8 x double> %wide.vec91.3, <8 x double> poison, <4 x i32> %strided.vec93.3 = shufflevector <8 x double> %wide.vec91.3, <8 x double> poison, <4 x i32> %582 = fadd <4 x double> %strided.vec83.3, %strided.vec89.3 %583 = fadd <4 x double> %strided.vec84.3, %strided.vec90.3 %584 = fsub <4 x double> %strided.vec83.3, %strided.vec89.3 %585 = fsub <4 x double> %strided.vec84.3, %strided.vec90.3 %586 = fadd <4 x double> %strided.vec86.3, %strided.vec92.3 %587 = fadd <4 x double> %strided.vec87.3, %strided.vec93.3 %588 = fsub <4 x double> %strided.vec86.3, %strided.vec92.3 %589 = fsub <4 x double> %strided.vec87.3, %strided.vec93.3 %590 = fadd <4 x double> %582, %586 %591 = fadd <4 x double> %583, %587 %592 = fadd <4 x double> %584, %589 %593 = fsub <4 x double> %585, %588 %594 = fsub <4 x double> %582, %586 %595 = fsub <4 x double> %583, %587 %596 = fsub <4 x double> %584, %589 %597 = fadd <4 x double> %585, %588 %598 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %590, <4 x double> %591, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %598, align 8, !noalias !3659 %599 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec94.3 = shufflevector <4 x double> %592, <4 x double> %593, <8 x i32> store <8 x double> %interleaved.vec94.3, ptr %599, align 8, !noalias !3659 %600 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec95.3 = shufflevector <4 x double> %594, <4 x double> %595, <8 x i32> store <8 x double> %interleaved.vec95.3, ptr %600, align 8, !noalias !3659 %601 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec96.3 = shufflevector <4 x double> %596, <4 x double> %597, <8 x i32> store <8 x double> %interleaved.vec96.3, ptr %601, align 8, !noalias !3659 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3659 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5ef0a115ddd16686E"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3662 store i64 8, ptr %n.i.i, align 8, !noalias !3662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3662 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3662 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3662 store ptr null, ptr %_16.i.i, align 8, !noalias !3662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3662 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3662 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3662 store ptr null, ptr %_24.i.i, align 8, !noalias !3662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3662 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3662 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3662 store ptr null, ptr %_32.i.i, align 8, !noalias !3662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3662 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3662 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1a50cc573f07fb7E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3662 store ptr null, ptr %_40.i.i, align 8, !noalias !3662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1a50cc573f07fb7E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !3667 store i64 1, ptr %_8.i.i.i, align 8, !noalias !3667 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !3667 store ptr null, ptr %_13.i.i.i, align 8, !noalias !3667 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3394413369392750f968ae9ebbb95188) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5f2b7d84865b23adE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3674 store i64 512, ptr %n.i.i, align 8, !noalias !3674 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3674 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3674 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3674 store ptr null, ptr %_16.i.i, align 8, !noalias !3674 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3674 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3674 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3674 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3674 store ptr null, ptr %_24.i.i, align 8, !noalias !3674 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3674 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3674 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3674 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3674 store ptr null, ptr %_32.i.i, align 8, !noalias !3674 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3674 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3674 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3674 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc78a0adcd7165209E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3674 store ptr null, ptr %_40.i.i, align 8, !noalias !3674 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc78a0adcd7165209E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3674 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 br label %bb17.i.i.i.i bb17.i.i.i.i: ; preds = %bb17.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc78a0adcd7165209E.exit.i" %iter.i.i.i.sroa.50.0448.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc78a0adcd7165209E.exit.i" ], [ %9, %bb17.i.i.i.i ] %9 = add nuw nsw i64 %iter.i.i.i.sroa.50.0448.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.50.0448.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.50.0448.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.50.0448.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.i.i.i.sroa.50.0448.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.50.0448.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.i.i.i.sroa.50.0448.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.i.i.i.sroa.50.0448.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.i.i.i.sroa.50.0448.i %_63.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 %_64.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 %_65.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 %_66.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 %_67.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 %_68.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 %_69.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3679 %_70.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3679 %10 = fadd <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %12 = fadd <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %13 = fsub <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %14 = bitcast <4 x double> %13 to <4 x i64> %15 = xor <4 x i64> %14, %16 = bitcast <4 x i64> %15 to <4 x double> %17 = shufflevector <4 x double> %16, <4 x double> poison, <4 x i32> %18 = fadd <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %19 = fsub <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %20 = fadd <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %21 = fsub <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %22 = bitcast <4 x double> %21 to <4 x i64> %23 = xor <4 x i64> %22, %24 = bitcast <4 x i64> %23 to <4 x double> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = fadd <4 x double> %10, %12 %27 = fsub <4 x double> %11, %17 %28 = fsub <4 x double> %10, %12 %29 = fadd <4 x double> %11, %17 %30 = fadd <4 x double> %18, %20 %31 = fsub <4 x double> %19, %25 %32 = bitcast <4 x double> %31 to <4 x i64> %33 = xor <4 x i64> %32, %34 = bitcast <4 x i64> %33 to <4 x double> %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fadd <4 x double> %31, %35 %37 = fmul <4 x double> %36, %38 = fsub <4 x double> %18, %20 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %19, %25 %44 = bitcast <4 x double> %43 to <4 x i64> %45 = xor <4 x i64> %44, %46 = bitcast <4 x i64> %45 to <4 x double> %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fadd <4 x double> %43, %47 %49 = fmul <4 x double> %48, %50 = fadd <4 x double> %26, %30 %51 = fadd <4 x double> %27, %37 %52 = fsub <4 x double> %28, %42 %53 = fsub <4 x double> %29, %49 %54 = fsub <4 x double> %26, %30 %55 = fsub <4 x double> %27, %37 %56 = fadd <4 x double> %28, %42 %57 = fadd <4 x double> %29, %49 store <4 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %51, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %53, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %56, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3679 store <4 x double> %57, ptr %_3.i.i.i.i.i, align 8, !noalias !3679 %exitcond.not.i = icmp eq i64 %9, 32 br i1 %exitcond.not.i, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i", label %bb17.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i": ; preds = %bb17.i.i.i.i %58 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %59 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 tail call void @llvm.experimental.noalias.scope.decl(metadata !3683) tail call void @llvm.experimental.noalias.scope.decl(metadata !3686) tail call void @llvm.experimental.noalias.scope.decl(metadata !3688) %60 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %61 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %63 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %64 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %65 = add nuw nsw i64 %iter.sroa.104.02127.i.i, 1 %exitcond449.not.i = icmp eq i64 %65, 8 br i1 %exitcond449.not.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" %iter.sroa.104.02127.i.i = phi i64 [ %65, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %64, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %59, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %63, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %58, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %60, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %61, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %66 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 3 %73 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %73, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %74 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %75 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %75, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %76 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %76, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %77 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %78 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %78, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %79 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %79, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %80 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %81 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %81, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %82 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %82, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %83 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %84 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %84, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %85 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %85, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %86 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %87 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %87, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %88 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %88, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %89 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %90 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %90, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %91 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %91, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %92 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %93 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %93, align 8, !alias.scope !3688, !noalias !3690, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %94 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> zeroinitializer %96 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %97 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %99 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> zeroinitializer %102 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %103 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %108, %bb58.i.i ] %108 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %66, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %109 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %110 = fmul <4 x double> %95, %109 %111 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %110) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %112 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %113 = fmul <4 x double> %97, %112 %114 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %113) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %115 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %116 = fmul <4 x double> %99, %115 %117 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %116) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %118 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %101, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %119) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %121 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %103, %121 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %122) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %124 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %125 = fmul <4 x double> %105, %124 %126 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %125) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !3686, !noalias !3691 %127 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %128 = fmul <4 x double> %107, %127 %129 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %128) #23 %130 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %120 %131 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %120 %132 = fadd <4 x double> %114, %126 %133 = fsub <4 x double> %114, %126 %134 = bitcast <4 x double> %133 to <4 x i64> %135 = fsub <4 x double> %117, %129 %136 = bitcast <4 x double> %135 to <4 x i64> %137 = xor <4 x i64> %134, %138 = bitcast <4 x i64> %137 to <4 x double> %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = xor <4 x i64> %136, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fadd <4 x double> %111, %123 %144 = fsub <4 x double> %111, %123 %145 = fadd <4 x double> %117, %129 %146 = fadd <4 x double> %130, %132 %147 = fadd <4 x double> %143, %145 %148 = fadd <4 x double> %146, %147 store <4 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %149 = fsub <4 x double> %146, %147 store <4 x double> %149, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %150 = fsub <4 x double> %131, %139 %151 = fsub <4 x double> %144, %142 %152 = bitcast <4 x double> %151 to <4 x i64> %153 = xor <4 x i64> %152, %154 = bitcast <4 x i64> %153 to <4 x double> %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fadd <4 x double> %151, %155 %157 = fmul <4 x double> %156, %158 = fadd <4 x double> %150, %157 store <4 x double> %158, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %159 = fsub <4 x double> %150, %157 store <4 x double> %159, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %160 = fsub <4 x double> %130, %132 %161 = fsub <4 x double> %143, %145 %162 = bitcast <4 x double> %161 to <4 x i64> %163 = fadd <4 x double> %131, %139 %164 = fadd <4 x double> %144, %142 %165 = xor <4 x i64> %162, %166 = bitcast <4 x i64> %165 to <4 x double> %167 = shufflevector <4 x double> %166, <4 x double> poison, <4 x i32> %168 = fsub <4 x double> %160, %167 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %169 = fadd <4 x double> %160, %167 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %170 = bitcast <4 x double> %164 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %164, %173 %175 = fmul <4 x double> %174, %176 = fsub <4 x double> %163, %175 store <4 x double> %176, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %177 = fadd <4 x double> %163, %175 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3683, !noalias !3692 %exitcond.not.i.i = icmp eq i64 %108, 4 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3693) tail call void @llvm.experimental.noalias.scope.decl(metadata !3696) tail call void @llvm.experimental.noalias.scope.decl(metadata !3698) %178 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %179 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %180 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %181 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %182 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %183 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %184 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.106.01794.i.i = phi i64 [ %185, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %185 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i157.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i158.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i159.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i160.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %180, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %179, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %181, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %178, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %183, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %182, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i161.i = getelementptr inbounds %"fft_simd::c64x2", ptr %184, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !3698, !noalias !3700 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3698, !noalias !3700 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3698, !noalias !3700 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3698, !noalias !3700 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3698, !noalias !3700 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3698, !noalias !3700 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i161.i, align 8, !alias.scope !3698, !noalias !3700 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3696, !noalias !3701 %186 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %186, align 8, !alias.scope !3696, !noalias !3701 %187 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %187, align 8, !alias.scope !3696, !noalias !3701 %188 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %188, align 8, !alias.scope !3696, !noalias !3701 %189 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %189, align 8, !alias.scope !3696, !noalias !3701 %190 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %190, align 8, !alias.scope !3696, !noalias !3701 %191 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %191, align 8, !alias.scope !3696, !noalias !3701 %192 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %192, align 8, !alias.scope !3696, !noalias !3701 %193 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %194 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %197 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %198 = fmul <4 x double> %197, %195 %199 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %196, <4 x double> %194, <4 x double> %198) #23 %200 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %203 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %204 = fmul <4 x double> %203, %201 %205 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %200, <4 x double> %204) #23 %206 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %209 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %210 = fmul <4 x double> %209, %207 %211 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %208, <4 x double> %206, <4 x double> %210) #23 %212 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %213 = shufflevector <4 x double> %212, <4 x double> poison, <4 x i32> %214 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %215 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %215, %213 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %214, <4 x double> %212, <4 x double> %216) #23 %218 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %221 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %221, %219 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %220, <4 x double> %218, <4 x double> %222) #23 %224 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %227 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %228 = fmul <4 x double> %227, %225 %229 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %226, <4 x double> %224, <4 x double> %228) #23 %230 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %233 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %234 = fmul <4 x double> %233, %231 %235 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %232, <4 x double> %230, <4 x double> %234) #23 %236 = fadd <4 x double> %193, %217 %237 = fsub <4 x double> %193, %217 %238 = fadd <4 x double> %205, %229 %239 = fsub <4 x double> %205, %229 %240 = bitcast <4 x double> %239 to <4 x i64> %241 = fsub <4 x double> %211, %235 %242 = bitcast <4 x double> %241 to <4 x i64> %243 = xor <4 x i64> %240, %244 = bitcast <4 x i64> %243 to <4 x double> %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = xor <4 x i64> %242, %247 = bitcast <4 x i64> %246 to <4 x double> %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = fadd <4 x double> %199, %223 %250 = fsub <4 x double> %199, %223 %251 = fadd <4 x double> %211, %235 %252 = fadd <4 x double> %236, %238 %253 = fadd <4 x double> %249, %251 %254 = fadd <4 x double> %252, %253 store <4 x double> %254, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3693, !noalias !3702 %255 = fsub <4 x double> %252, %253 store <4 x double> %255, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i157.i, align 8, !alias.scope !3693, !noalias !3702 %256 = fsub <4 x double> %237, %245 %257 = fsub <4 x double> %250, %248 %258 = bitcast <4 x double> %257 to <4 x i64> %259 = xor <4 x i64> %258, %260 = bitcast <4 x i64> %259 to <4 x double> %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fadd <4 x double> %257, %261 %263 = fmul <4 x double> %262, %264 = fadd <4 x double> %256, %263 store <4 x double> %264, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3693, !noalias !3702 %265 = fsub <4 x double> %256, %263 store <4 x double> %265, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i158.i, align 8, !alias.scope !3693, !noalias !3702 %266 = fsub <4 x double> %236, %238 %267 = fsub <4 x double> %249, %251 %268 = bitcast <4 x double> %267 to <4 x i64> %269 = fadd <4 x double> %237, %245 %270 = fadd <4 x double> %250, %248 %271 = xor <4 x i64> %268, %272 = bitcast <4 x i64> %271 to <4 x double> %273 = shufflevector <4 x double> %272, <4 x double> poison, <4 x i32> %274 = fsub <4 x double> %266, %273 store <4 x double> %274, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155.i, align 8, !alias.scope !3693, !noalias !3702 %275 = fadd <4 x double> %266, %273 store <4 x double> %275, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i159.i, align 8, !alias.scope !3693, !noalias !3702 %276 = bitcast <4 x double> %270 to <4 x i64> %277 = xor <4 x i64> %276, %278 = bitcast <4 x i64> %277 to <4 x double> %279 = shufflevector <4 x double> %278, <4 x double> poison, <4 x i32> %280 = fadd <4 x double> %270, %279 %281 = fmul <4 x double> %280, %282 = fsub <4 x double> %269, %281 store <4 x double> %282, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156.i, align 8, !alias.scope !3693, !noalias !3702 %283 = fadd <4 x double> %269, %281 store <4 x double> %283, ptr %_3.i.i.i.i.i.i.i.i.i.i.i160.i, align 8, !alias.scope !3693, !noalias !3702 %exitcond.not.i162.i = icmp eq i64 %185, 32 br i1 %exitcond.not.i162.i, label %_ZN4pulp3x862V39vectorize6__impl17h803752b2deee81d8E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17h803752b2deee81d8E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3674 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h5f5b78b604fe31ecE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3703 store i64 1024, ptr %n.i.i, align 8, !noalias !3703 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3703 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3703 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3703 store ptr null, ptr %_16.i.i, align 8, !noalias !3703 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3703 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3703 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3703 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3703 store ptr null, ptr %_24.i.i, align 8, !noalias !3703 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3703 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3703 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3703 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3703 store ptr null, ptr %_32.i.i, align 8, !noalias !3703 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3703 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3703 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3703 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeb566c3bb86e4a5E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3703 store ptr null, ptr %_40.i.i, align 8, !noalias !3703 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeb566c3bb86e4a5E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3703 tail call void @llvm.experimental.noalias.scope.decl(metadata !3708) tail call void @llvm.experimental.noalias.scope.decl(metadata !3711) tail call void @llvm.experimental.noalias.scope.decl(metadata !3713) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeb566c3bb86e4a5E.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeb566c3bb86e4a5E.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3708, !noalias !3715 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3713, !noalias !3716 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3711, !noalias !3717 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !3711, !noalias !3717 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !3711, !noalias !3717 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !3711, !noalias !3717 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !3711, !noalias !3717 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !3711, !noalias !3717 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !3711, !noalias !3717 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !3711, !noalias !3717 %exitcond.not.i.i = icmp eq i64 %16, 64 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3718) tail call void @llvm.experimental.noalias.scope.decl(metadata !3721) tail call void @llvm.experimental.noalias.scope.decl(metadata !3723) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %122 = add nuw nsw i64 %iter.sroa.104.02174.i.i, 1 %exitcond.not.i = icmp eq i64 %122, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter.sroa.104.02174.i.i = phi i64 [ %122, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %130, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %131 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %132, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %133, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %134 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %135, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %136, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %137 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %138, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %139, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %140 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %141, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %142, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %143 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %144, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %145, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %146 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %147, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %148, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %149 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %150, align 8, !alias.scope !3723, !noalias !3725, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %151 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %165, %bb58.i.i ] %165 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !3718, !noalias !3726 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3718, !noalias !3726 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !3718, !noalias !3726 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !3718, !noalias !3726 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !3718, !noalias !3726 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !3718, !noalias !3726 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !3718, !noalias !3726 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !3718, !noalias !3726 %166 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %168 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %172 = bitcast <4 x double> %171 to <4 x i64> %173 = xor <4 x i64> %170, %174 = bitcast <4 x i64> %173 to <4 x double> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = xor <4 x i64> %172, %177 = bitcast <4 x i64> %176 to <4 x double> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %181 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %182 = fadd <4 x double> %166, %168 %183 = fsub <4 x double> %167, %175 %184 = fsub <4 x double> %166, %168 %185 = fadd <4 x double> %167, %175 %186 = fadd <4 x double> %179, %181 %187 = fsub <4 x double> %180, %178 %188 = bitcast <4 x double> %187 to <4 x i64> %189 = fsub <4 x double> %179, %181 %190 = bitcast <4 x double> %189 to <4 x i64> %191 = fadd <4 x double> %180, %178 %192 = xor <4 x i64> %188, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %194 %196 = fmul <4 x double> %195, %197 = xor <4 x i64> %190, %198 = bitcast <4 x i64> %197 to <4 x double> %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = bitcast <4 x double> %191 to <4 x i64> %201 = xor <4 x i64> %200, %202 = bitcast <4 x i64> %201 to <4 x double> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fadd <4 x double> %191, %203 %205 = fmul <4 x double> %204, %206 = fadd <4 x double> %182, %186 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %207 = fadd <4 x double> %183, %196 %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %152, %208 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %207, <4 x double> %209) #23 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %211 = fsub <4 x double> %184, %199 %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %154, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %211, <4 x double> %213) #23 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %215 = fsub <4 x double> %185, %205 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %156, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %219 = fsub <4 x double> %182, %186 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %158, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %223 = fsub <4 x double> %183, %196 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %160, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %227 = fadd <4 x double> %184, %199 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %162, %228 %230 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %227, <4 x double> %229) #23 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %231 = fadd <4 x double> %185, %205 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %164, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %231, <4 x double> %233) #23 store <4 x double> %234, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !3721, !noalias !3727 %exitcond.not.i38.i = icmp eq i64 %165, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3728) tail call void @llvm.experimental.noalias.scope.decl(metadata !3731) tail call void @llvm.experimental.noalias.scope.decl(metadata !3733) br label %bb30.i70.i bb28.loopexit.i132.i: ; preds = %bb58.i105.i br i1 %_2.i.i.i.i133.i, label %bb30.i70.i, label %bb18.i.i.i.i.i bb30.i70.i: ; preds = %bb28.loopexit.i132.i, %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i %_2.i.i.i.i133.i = phi i1 [ false, %bb28.loopexit.i132.i ], [ true, %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i ] %iter.sroa.104.02174.i71.i = phi i64 [ 1, %bb28.loopexit.i132.i ], [ 0, %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i = shl nuw nsw i64 %iter.sroa.104.02174.i71.i, 5 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i75.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i76.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i77.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i78.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i79.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i80.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %start1.i.i.i.i.i.i.i81.i = shl nuw nsw i64 %iter.sroa.104.02174.i71.i, 8 %data.i.i.i.i.i.i.i82.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i81.i %235 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 128 %236 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 64 %237 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 32 %238 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 96 %239 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 192 %240 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 160 %241 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 224 %start1.i.i.i.i.i83.i = shl nuw nsw i64 %iter.sroa.104.02174.i71.i, 6 %242 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 7, i32 1 %w7.1.i84.i = load double, ptr %242, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %243 = insertelement <4 x double> poison, double %w7.1.i84.i, i64 0 %244 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 7 %w7.0.i85.i = load double, ptr %244, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i114.sroa.0.0.vec.insert.i86.i = insertelement <2 x double> poison, double %w7.0.i85.i, i64 0 %245 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 6, i32 1 %w6.1.i87.i = load double, ptr %245, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %246 = insertelement <4 x double> poison, double %w6.1.i87.i, i64 0 %247 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 6 %w6.0.i88.i = load double, ptr %247, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i118.sroa.0.0.vec.insert.i89.i = insertelement <2 x double> poison, double %w6.0.i88.i, i64 0 %248 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 5, i32 1 %w5.1.i90.i = load double, ptr %248, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %249 = insertelement <4 x double> poison, double %w5.1.i90.i, i64 0 %250 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 5 %w5.0.i91.i = load double, ptr %250, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i122.sroa.0.0.vec.insert.i92.i = insertelement <2 x double> poison, double %w5.0.i91.i, i64 0 %251 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 4, i32 1 %w4.1.i93.i = load double, ptr %251, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %252 = insertelement <4 x double> poison, double %w4.1.i93.i, i64 0 %253 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 4 %w4.0.i94.i = load double, ptr %253, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i126.sroa.0.0.vec.insert.i95.i = insertelement <2 x double> poison, double %w4.0.i94.i, i64 0 %254 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 3, i32 1 %w3.1.i96.i = load double, ptr %254, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %255 = insertelement <4 x double> poison, double %w3.1.i96.i, i64 0 %256 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 3 %w3.0.i97.i = load double, ptr %256, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i130.sroa.0.0.vec.insert.i98.i = insertelement <2 x double> poison, double %w3.0.i97.i, i64 0 %257 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 2, i32 1 %w2.1.i99.i = load double, ptr %257, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %258 = insertelement <4 x double> poison, double %w2.1.i99.i, i64 0 %259 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 2 %w2.0.i100.i = load double, ptr %259, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i134.sroa.0.0.vec.insert.i101.i = insertelement <2 x double> poison, double %w2.0.i100.i, i64 0 %260 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 1, i32 1 %w1.1.i102.i = load double, ptr %260, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %261 = insertelement <4 x double> poison, double %w1.1.i102.i, i64 0 %262 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 1 %w1.0.i103.i = load double, ptr %262, align 8, !alias.scope !3733, !noalias !3735, !noundef !3 %value.i138.sroa.0.0.vec.insert.i104.i = insertelement <2 x double> poison, double %w1.0.i103.i, i64 0 %263 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i104.i, <2 x double> poison, <4 x i32> zeroinitializer %264 = shufflevector <4 x double> %261, <4 x double> poison, <4 x i32> zeroinitializer %265 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i101.i, <2 x double> poison, <4 x i32> zeroinitializer %266 = shufflevector <4 x double> %258, <4 x double> poison, <4 x i32> zeroinitializer %267 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i98.i, <2 x double> poison, <4 x i32> zeroinitializer %268 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> zeroinitializer %269 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i95.i, <2 x double> poison, <4 x i32> zeroinitializer %270 = shufflevector <4 x double> %252, <4 x double> poison, <4 x i32> zeroinitializer %271 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i92.i, <2 x double> poison, <4 x i32> zeroinitializer %272 = shufflevector <4 x double> %249, <4 x double> poison, <4 x i32> zeroinitializer %273 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i89.i, <2 x double> poison, <4 x i32> zeroinitializer %274 = shufflevector <4 x double> %246, <4 x double> poison, <4 x i32> zeroinitializer %275 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i86.i, <2 x double> poison, <4 x i32> zeroinitializer %276 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i105.i bb58.i105.i: ; preds = %bb58.i105.i, %bb30.i70.i %iter8.sroa.106.02113.i106.i = phi i64 [ 0, %bb30.i70.i ], [ %277, %bb58.i105.i ] %277 = add nuw nsw i64 %iter8.sroa.106.02113.i106.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i107.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i, i64 %iter8.sroa.106.02113.i106.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i108.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i109.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i75.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i110.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i76.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i111.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i77.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i112.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i78.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i113.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i79.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i114.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i80.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i115.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 %iter8.sroa.106.02113.i106.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i116.i = getelementptr inbounds %"fft_simd::c64x2", ptr %237, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %236, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %238, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %235, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %240, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i35.i.i.i.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %239, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i38.i.i.i.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %241, i64 %iter8.sroa.106.02113.i106.i %x0.sroa.0.0.copyload.i123.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i107.i, align 8, !alias.scope !3728, !noalias !3736 %x1.sroa.0.0.copyload.i124.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i108.i, align 8, !alias.scope !3728, !noalias !3736 %x2.sroa.0.0.copyload.i125.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i109.i, align 8, !alias.scope !3728, !noalias !3736 %x3.sroa.0.0.copyload.i126.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i110.i, align 8, !alias.scope !3728, !noalias !3736 %x4.sroa.0.0.copyload.i127.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i111.i, align 8, !alias.scope !3728, !noalias !3736 %x5.sroa.0.0.copyload.i128.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i112.i, align 8, !alias.scope !3728, !noalias !3736 %x6.sroa.0.0.copyload.i129.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i113.i, align 8, !alias.scope !3728, !noalias !3736 %x7.sroa.0.0.copyload.i130.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i114.i, align 8, !alias.scope !3728, !noalias !3736 %278 = fadd <4 x double> %x0.sroa.0.0.copyload.i123.i, %x4.sroa.0.0.copyload.i127.i %279 = fsub <4 x double> %x0.sroa.0.0.copyload.i123.i, %x4.sroa.0.0.copyload.i127.i %280 = fadd <4 x double> %x2.sroa.0.0.copyload.i125.i, %x6.sroa.0.0.copyload.i129.i %281 = fsub <4 x double> %x2.sroa.0.0.copyload.i125.i, %x6.sroa.0.0.copyload.i129.i %282 = bitcast <4 x double> %281 to <4 x i64> %283 = fsub <4 x double> %x3.sroa.0.0.copyload.i126.i, %x7.sroa.0.0.copyload.i130.i %284 = bitcast <4 x double> %283 to <4 x i64> %285 = xor <4 x i64> %282, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = xor <4 x i64> %284, %289 = bitcast <4 x i64> %288 to <4 x double> %290 = shufflevector <4 x double> %289, <4 x double> poison, <4 x i32> %291 = fadd <4 x double> %x1.sroa.0.0.copyload.i124.i, %x5.sroa.0.0.copyload.i128.i %292 = fsub <4 x double> %x1.sroa.0.0.copyload.i124.i, %x5.sroa.0.0.copyload.i128.i %293 = fadd <4 x double> %x3.sroa.0.0.copyload.i126.i, %x7.sroa.0.0.copyload.i130.i %294 = fadd <4 x double> %278, %280 %295 = fsub <4 x double> %279, %287 %296 = fsub <4 x double> %278, %280 %297 = fadd <4 x double> %279, %287 %298 = fadd <4 x double> %291, %293 %299 = fsub <4 x double> %292, %290 %300 = bitcast <4 x double> %299 to <4 x i64> %301 = fsub <4 x double> %291, %293 %302 = bitcast <4 x double> %301 to <4 x i64> %303 = fadd <4 x double> %292, %290 %304 = xor <4 x i64> %300, %305 = bitcast <4 x i64> %304 to <4 x double> %306 = shufflevector <4 x double> %305, <4 x double> poison, <4 x i32> %307 = fadd <4 x double> %299, %306 %308 = fmul <4 x double> %307, %309 = xor <4 x i64> %302, %310 = bitcast <4 x i64> %309 to <4 x double> %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = bitcast <4 x double> %303 to <4 x i64> %313 = xor <4 x i64> %312, %314 = bitcast <4 x i64> %313 to <4 x double> %315 = shufflevector <4 x double> %314, <4 x double> poison, <4 x i32> %316 = fadd <4 x double> %303, %315 %317 = fmul <4 x double> %316, %318 = fadd <4 x double> %294, %298 store <4 x double> %318, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i115.i, align 8, !alias.scope !3731, !noalias !3737 %319 = fadd <4 x double> %295, %308 %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = fmul <4 x double> %264, %320 %322 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %263, <4 x double> %319, <4 x double> %321) #23 store <4 x double> %322, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i116.i, align 8, !alias.scope !3731, !noalias !3737 %323 = fsub <4 x double> %296, %311 %324 = shufflevector <4 x double> %323, <4 x double> poison, <4 x i32> %325 = fmul <4 x double> %266, %324 %326 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %265, <4 x double> %323, <4 x double> %325) #23 store <4 x double> %326, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i117.i, align 8, !alias.scope !3731, !noalias !3737 %327 = fsub <4 x double> %297, %317 %328 = shufflevector <4 x double> %327, <4 x double> poison, <4 x i32> %329 = fmul <4 x double> %268, %328 %330 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %267, <4 x double> %327, <4 x double> %329) #23 store <4 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i118.i, align 8, !alias.scope !3731, !noalias !3737 %331 = fsub <4 x double> %294, %298 %332 = shufflevector <4 x double> %331, <4 x double> poison, <4 x i32> %333 = fmul <4 x double> %270, %332 %334 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %331, <4 x double> %333) #23 store <4 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i119.i, align 8, !alias.scope !3731, !noalias !3737 %335 = fsub <4 x double> %295, %308 %336 = shufflevector <4 x double> %335, <4 x double> poison, <4 x i32> %337 = fmul <4 x double> %272, %336 %338 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %271, <4 x double> %335, <4 x double> %337) #23 store <4 x double> %338, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i120.i, align 8, !alias.scope !3731, !noalias !3737 %339 = fadd <4 x double> %296, %311 %340 = shufflevector <4 x double> %339, <4 x double> poison, <4 x i32> %341 = fmul <4 x double> %274, %340 %342 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %273, <4 x double> %339, <4 x double> %341) #23 store <4 x double> %342, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i121.i, align 8, !alias.scope !3731, !noalias !3737 %343 = fadd <4 x double> %297, %317 %344 = shufflevector <4 x double> %343, <4 x double> poison, <4 x i32> %345 = fmul <4 x double> %276, %344 %346 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %275, <4 x double> %343, <4 x double> %345) #23 store <4 x double> %346, ptr %_3.i.i.i.i.i38.i.i.i.i122.i, align 8, !alias.scope !3731, !noalias !3737 %exitcond.not.i131.i = icmp eq i64 %277, 32 br i1 %exitcond.not.i131.i, label %bb28.loopexit.i132.i, label %bb58.i105.i bb18.i.i.i.i.i: ; preds = %bb28.loopexit.i132.i, %bb18.i.i.i.i.i %iter6.i.i.i.i.sroa.22.0173.i = phi i64 [ %350, %bb18.i.i.i.i.i ], [ 0, %bb28.loopexit.i132.i ] %347 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0173.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.sroa.22.0173.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %iter6.i.i.i.i.sroa.22.0173.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.sroa.22.0173.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.sroa.22.0173.i %_51.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3703 %_52.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3703 %348 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %349 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3703 store <4 x double> %349, ptr %_3.i.i.i.i.i, align 8, !noalias !3703 %350 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0173.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %347 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %347 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %347 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %347 %_51.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3703 %_52.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !3703 %351 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 %352 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %351, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !3703 store <4 x double> %352, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3703 %exitcond174.not.i.1 = icmp eq i64 %350, 256 br i1 %exitcond174.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h707ef9a59e52df58E.exit, label %bb18.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h707ef9a59e52df58E.exit: ; preds = %bb18.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3703 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h61bd9f57997153b2E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3738 store i64 1024, ptr %n.i.i, align 8, !noalias !3738 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3738 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3738 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3738 store ptr null, ptr %_16.i.i, align 8, !noalias !3738 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3738 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3738 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3738 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3738 store ptr null, ptr %_24.i.i, align 8, !noalias !3738 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3738 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3738 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3738 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3738 store ptr null, ptr %_32.i.i, align 8, !noalias !3738 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3738 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3738 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3738 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h19fb94144ffe64a3E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3738 store ptr null, ptr %_40.i.i, align 8, !noalias !3738 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h19fb94144ffe64a3E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3738 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 br label %bb13.i.i.i.i.i bb13.i.i.i.i.i: ; preds = %bb13.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h19fb94144ffe64a3E.exit.i" %iter.i.i.i.i.sroa.22.0145.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h19fb94144ffe64a3E.exit.i" ], [ %5, %bb13.i.i.i.i.i ] %5 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.0145.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.sroa.22.0145.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.i.sroa.22.0145.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.sroa.22.0145.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.i.sroa.22.0145.i %_43.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3743 %_44.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3743 %_45.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3743 %_46.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3743 %6 = fadd <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %7 = fsub <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %8 = fadd <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %10 = bitcast <4 x double> %9 to <4 x i64> %11 = xor <4 x i64> %10, %12 = bitcast <4 x i64> %11 to <4 x double> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = fadd <4 x double> %6, %8 %15 = fsub <4 x double> %7, %13 %16 = fsub <4 x double> %6, %8 %17 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3743 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3743 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3743 store <4 x double> %17, ptr %_3.i.i.i.i.i, align 8, !noalias !3743 %exitcond.not.i = icmp eq i64 %5, 128 br i1 %exitcond.not.i, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i", label %bb13.i.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i": ; preds = %bb13.i.i.i.i.i %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 tail call void @llvm.experimental.noalias.scope.decl(metadata !3750) tail call void @llvm.experimental.noalias.scope.decl(metadata !3753) tail call void @llvm.experimental.noalias.scope.decl(metadata !3755) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i %33 = add nuw nsw i64 %iter.sroa.208.05943.i.i, 1 %exitcond146.not.i = icmp eq i64 %33, 4 br i1 %exitcond146.not.i, label %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i, label %bb46.i.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i" %iter.sroa.208.05943.i.i = phi i64 [ %33, %bb44.loopexit.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05943.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05943.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %35 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %36 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %37 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %38 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %39 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %40 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %41 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %46 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %47 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %48 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.208.05943.i.i, 4 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %49, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %50 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %51, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %52, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %53 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %54, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %55, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %56 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %57, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %58, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %59 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %60, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %61, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %62 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %63, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %64, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %65 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %66, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %67, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %68 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %69, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %70 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %70, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %71 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %72, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %73 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %73, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %74 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %75 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %75, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %76 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %76, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %77 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %78 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %78, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %79 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %79, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %80 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %81 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %81, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %82 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %82, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %83 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %84 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %84, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %85 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %85, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %86 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %87 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %87, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %88 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %88, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %89 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %90 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %90, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %91 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %91, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %92 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %93 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %93, align 8, !alias.scope !3755, !noalias !3757, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %94 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> zeroinitializer %96 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %97 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %99 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> zeroinitializer %102 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %103 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %71, <4 x double> poison, <4 x i32> zeroinitializer %110 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %111 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> zeroinitializer %112 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %113 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <4 x double> %62, <4 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.05770.i.i = phi i64 [ 0, %bb46.i.i ], [ %124, %bb98.i.i ] %124 = add nuw nsw i64 %iter10.sroa.218.05770.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %36, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %38, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %35, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %40, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %39, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %41, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %34, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %42, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %47, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %46, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %48, i64 %iter10.sroa.218.05770.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %_220.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %125 = shufflevector <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %126 = fmul <4 x double> %95, %125 %127 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> %126) #23 %_222.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %128 = shufflevector <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %97, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> %129) #23 %_224.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %131 = shufflevector <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %132 = fmul <4 x double> %99, %131 %133 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> %132) #23 %_226.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %134 = shufflevector <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %101, %134 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> %135) #23 %_228.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %137 = shufflevector <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %138 = fmul <4 x double> %103, %137 %139 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> %138) #23 %_230.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %140 = shufflevector <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %105, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> %141) #23 %_232.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %143 = shufflevector <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %107, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> %144) #23 %_234.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %146 = shufflevector <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %147 = fmul <4 x double> %109, %146 %148 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> %147) #23 %_236.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %149 = shufflevector <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %111, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> %150) #23 %_238.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %152 = shufflevector <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %153 = fmul <4 x double> %113, %152 %154 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %112, <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> %153) #23 %_240.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %155 = shufflevector <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %115, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %114, <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> %156) #23 %_242.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %158 = shufflevector <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %117, %158 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> %159) #23 %_244.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %161 = shufflevector <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %162 = fmul <4 x double> %119, %161 %163 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> %162) #23 %_246.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %164 = shufflevector <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %121, %164 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> %165) #23 %_248.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !3753, !noalias !3758 %167 = shufflevector <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %168 = fmul <4 x double> %123, %167 %169 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %122, <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> %168) #23 %170 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %148 %171 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %148 %172 = fadd <4 x double> %136, %160 %173 = fsub <4 x double> %136, %160 %174 = fadd <4 x double> %130, %154 %175 = fsub <4 x double> %130, %154 %176 = fadd <4 x double> %142, %166 %177 = fsub <4 x double> %142, %166 %178 = fadd <4 x double> %127, %151 %179 = fsub <4 x double> %127, %151 %180 = fadd <4 x double> %139, %163 %181 = fsub <4 x double> %139, %163 %182 = fadd <4 x double> %133, %157 %183 = fsub <4 x double> %133, %157 %184 = fadd <4 x double> %145, %169 %185 = fsub <4 x double> %145, %169 %186 = bitcast <4 x double> %173 to <4 x i64> %187 = bitcast <4 x double> %177 to <4 x i64> %188 = bitcast <4 x double> %181 to <4 x i64> %189 = bitcast <4 x double> %185 to <4 x i64> %190 = xor <4 x i64> %186, %191 = bitcast <4 x i64> %190 to <4 x double> %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = xor <4 x i64> %187, %194 = bitcast <4 x i64> %193 to <4 x double> %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = xor <4 x i64> %188, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = xor <4 x i64> %189, %200 = bitcast <4 x i64> %199 to <4 x double> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = fadd <4 x double> %170, %172 %203 = fsub <4 x double> %171, %192 %204 = fsub <4 x double> %170, %172 %205 = fadd <4 x double> %171, %192 %206 = fadd <4 x double> %174, %176 %207 = fsub <4 x double> %175, %195 %208 = fsub <4 x double> %174, %176 %209 = fadd <4 x double> %175, %195 %210 = fadd <4 x double> %178, %180 %211 = fsub <4 x double> %179, %198 %212 = fsub <4 x double> %178, %180 %213 = fadd <4 x double> %179, %198 %214 = fadd <4 x double> %182, %184 %215 = fsub <4 x double> %183, %201 %216 = fsub <4 x double> %182, %184 %217 = fadd <4 x double> %183, %201 %218 = bitcast <4 x double> %207 to <4 x i64> %219 = xor <4 x i64> %218, %220 = bitcast <4 x i64> %219 to <4 x double> %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = fadd <4 x double> %207, %221 %223 = fmul <4 x double> %222, %224 = bitcast <4 x double> %208 to <4 x i64> %225 = xor <4 x i64> %224, %226 = bitcast <4 x i64> %225 to <4 x double> %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = bitcast <4 x double> %209 to <4 x i64> %229 = xor <4 x i64> %228, %230 = bitcast <4 x i64> %229 to <4 x double> %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fadd <4 x double> %209, %231 %233 = fmul <4 x double> %232, %234 = fadd <4 x double> %202, %206 %235 = fadd <4 x double> %203, %223 %236 = fsub <4 x double> %204, %227 %237 = fsub <4 x double> %205, %233 %238 = fsub <4 x double> %202, %206 %239 = fsub <4 x double> %203, %223 %240 = fadd <4 x double> %204, %227 %241 = fadd <4 x double> %205, %233 %242 = bitcast <4 x double> %215 to <4 x i64> %243 = xor <4 x i64> %242, %244 = bitcast <4 x i64> %243 to <4 x double> %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = fadd <4 x double> %215, %245 %247 = fmul <4 x double> %246, %248 = bitcast <4 x double> %216 to <4 x i64> %249 = xor <4 x i64> %248, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = bitcast <4 x double> %217 to <4 x i64> %253 = xor <4 x i64> %252, %254 = bitcast <4 x i64> %253 to <4 x double> %255 = shufflevector <4 x double> %254, <4 x double> poison, <4 x i32> %256 = fadd <4 x double> %217, %255 %257 = fmul <4 x double> %256, %258 = fadd <4 x double> %210, %214 %259 = fadd <4 x double> %211, %247 %260 = fsub <4 x double> %212, %251 %261 = fsub <4 x double> %213, %257 %262 = fsub <4 x double> %210, %214 %263 = fsub <4 x double> %211, %247 %264 = fadd <4 x double> %212, %251 %265 = fadd <4 x double> %213, %257 %266 = fadd <4 x double> %234, %258 store <4 x double> %266, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %267 = fsub <4 x double> %234, %258 store <4 x double> %267, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %268 = fmul <4 x double> %259, %269 = shufflevector <4 x double> %268, <4 x double> poison, <4 x i32> %270 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %259, <4 x double> %269) #23 %271 = fadd <4 x double> %270, %235 store <4 x double> %271, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %272 = fsub <4 x double> %235, %270 store <4 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %273 = bitcast <4 x double> %260 to <4 x i64> %274 = xor <4 x i64> %273, %275 = bitcast <4 x i64> %274 to <4 x double> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = fadd <4 x double> %260, %276 %278 = fmul <4 x double> %277, %279 = fadd <4 x double> %236, %278 store <4 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %280 = fsub <4 x double> %236, %278 store <4 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %281 = fmul <4 x double> %261, %282 = shufflevector <4 x double> %281, <4 x double> poison, <4 x i32> %283 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %261, <4 x double> %282) #23 %284 = bitcast <4 x double> %262 to <4 x i64> %285 = xor <4 x i64> %284, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = fmul <4 x double> %263, %289 = shufflevector <4 x double> %288, <4 x double> poison, <4 x i32> %290 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %263, <4 x double> %289) #23 %.sink.i47.i = fadd <4 x double> %238, %287 %.sink6030.i.i = fsub <4 x double> %238, %287 %.sink6031.i.i = fsub <4 x double> %237, %283 %.sink6032.i.i = fadd <4 x double> %283, %237 store <4 x double> %.sink6032.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 store <4 x double> %.sink6031.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 store <4 x double> %.sink6030.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 store <4 x double> %.sink.i47.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %291 = fsub <4 x double> %239, %290 store <4 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %292 = fadd <4 x double> %290, %239 store <4 x double> %292, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %293 = bitcast <4 x double> %264 to <4 x i64> %294 = xor <4 x i64> %293, %295 = bitcast <4 x i64> %294 to <4 x double> %296 = shufflevector <4 x double> %295, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %265, %298 = shufflevector <4 x double> %297, <4 x double> poison, <4 x i32> %299 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %265, <4 x double> %298) #23 %.pn6038.in.i.i = fadd <4 x double> %264, %296 %.pn6038.i.i = fmul <4 x double> %.pn6038.in.i.i, %.sink6033.i.i = fadd <4 x double> %240, %.pn6038.i.i %.sink6034.i.i = fsub <4 x double> %240, %.pn6038.i.i store <4 x double> %.sink6034.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 store <4 x double> %.sink6033.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %300 = fsub <4 x double> %241, %299 store <4 x double> %300, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %301 = fadd <4 x double> %241, %299 store <4 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3750, !noalias !3759 %exitcond.not.i.i = icmp eq i64 %124, 8 br i1 %exitcond.not.i.i, label %bb44.loopexit.i.i, label %bb98.i.i _ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i: ; preds = %bb44.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3760) tail call void @llvm.experimental.noalias.scope.decl(metadata !3763) tail call void @llvm.experimental.noalias.scope.decl(metadata !3765) %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %308 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %309 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %310 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %311 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %312 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %313 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %314 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %315 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %316 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %317 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %318 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %319 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %320 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %321 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %322 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %323 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %324 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 288 %325 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 352 %326 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 %327 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 416 %328 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 480 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i %iter.sroa.218.05279.i.i = phi i64 [ %329, %bb39.i.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i ] %329 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i = getelementptr inbounds %"fft_simd::c64x2", ptr %307, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %309, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i = getelementptr inbounds %"fft_simd::c64x2", ptr %308, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %310, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %312, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %311, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %313, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %317, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %316, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %318, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %315, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %320, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %319, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %321, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %314, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %324, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %323, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %325, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %322, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %327, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %326, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %328, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3765, !noalias !3767 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i66.i, align 8, !alias.scope !3765, !noalias !3767 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3763, !noalias !3768 %330 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %330, align 8, !alias.scope !3763, !noalias !3768 %331 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %331, align 8, !alias.scope !3763, !noalias !3768 %332 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %332, align 8, !alias.scope !3763, !noalias !3768 %333 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %333, align 8, !alias.scope !3763, !noalias !3768 %334 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %334, align 8, !alias.scope !3763, !noalias !3768 %335 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %335, align 8, !alias.scope !3763, !noalias !3768 %336 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %336, align 8, !alias.scope !3763, !noalias !3768 %337 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %337, align 8, !alias.scope !3763, !noalias !3768 %338 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %338, align 8, !alias.scope !3763, !noalias !3768 %339 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %339, align 8, !alias.scope !3763, !noalias !3768 %340 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %340, align 8, !alias.scope !3763, !noalias !3768 %341 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %341, align 8, !alias.scope !3763, !noalias !3768 %342 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %342, align 8, !alias.scope !3763, !noalias !3768 %343 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %343, align 8, !alias.scope !3763, !noalias !3768 %344 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %344, align 8, !alias.scope !3763, !noalias !3768 %345 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %346 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %347 = shufflevector <4 x double> %346, <4 x double> poison, <4 x i32> %348 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %349 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %350 = fmul <4 x double> %349, %347 %351 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %348, <4 x double> %346, <4 x double> %350) #23 %352 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %353 = shufflevector <4 x double> %352, <4 x double> poison, <4 x i32> %354 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %355 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %356 = fmul <4 x double> %355, %353 %357 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %354, <4 x double> %352, <4 x double> %356) #23 %358 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %359 = shufflevector <4 x double> %358, <4 x double> poison, <4 x i32> %360 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %361 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %362 = fmul <4 x double> %361, %359 %363 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %360, <4 x double> %358, <4 x double> %362) #23 %364 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %365 = shufflevector <4 x double> %364, <4 x double> poison, <4 x i32> %366 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %367 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %368 = fmul <4 x double> %367, %365 %369 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %366, <4 x double> %364, <4 x double> %368) #23 %370 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %371 = shufflevector <4 x double> %370, <4 x double> poison, <4 x i32> %372 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %373 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %374 = fmul <4 x double> %373, %371 %375 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %372, <4 x double> %370, <4 x double> %374) #23 %376 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %377 = shufflevector <4 x double> %376, <4 x double> poison, <4 x i32> %378 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %379 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %380 = fmul <4 x double> %379, %377 %381 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %378, <4 x double> %376, <4 x double> %380) #23 %382 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %383 = shufflevector <4 x double> %382, <4 x double> poison, <4 x i32> %384 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %385 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %386 = fmul <4 x double> %385, %383 %387 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %384, <4 x double> %382, <4 x double> %386) #23 %388 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %389 = shufflevector <4 x double> %388, <4 x double> poison, <4 x i32> %390 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %391 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %392 = fmul <4 x double> %391, %389 %393 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %390, <4 x double> %388, <4 x double> %392) #23 %394 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %395 = shufflevector <4 x double> %394, <4 x double> poison, <4 x i32> %396 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %397 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %398 = fmul <4 x double> %397, %395 %399 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %396, <4 x double> %394, <4 x double> %398) #23 %400 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %401 = shufflevector <4 x double> %400, <4 x double> poison, <4 x i32> %402 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %403 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %404 = fmul <4 x double> %403, %401 %405 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %402, <4 x double> %400, <4 x double> %404) #23 %406 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %407 = shufflevector <4 x double> %406, <4 x double> poison, <4 x i32> %408 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %409 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %410 = fmul <4 x double> %409, %407 %411 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %408, <4 x double> %406, <4 x double> %410) #23 %412 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %413 = shufflevector <4 x double> %412, <4 x double> poison, <4 x i32> %414 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %415 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %416 = fmul <4 x double> %415, %413 %417 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %414, <4 x double> %412, <4 x double> %416) #23 %418 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %419 = shufflevector <4 x double> %418, <4 x double> poison, <4 x i32> %420 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %421 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %422 = fmul <4 x double> %421, %419 %423 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %420, <4 x double> %418, <4 x double> %422) #23 %424 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %425 = shufflevector <4 x double> %424, <4 x double> poison, <4 x i32> %426 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %427 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %428 = fmul <4 x double> %427, %425 %429 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %426, <4 x double> %424, <4 x double> %428) #23 %430 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %431 = shufflevector <4 x double> %430, <4 x double> poison, <4 x i32> %432 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %433 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %434 = fmul <4 x double> %433, %431 %435 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %432, <4 x double> %430, <4 x double> %434) #23 %436 = fadd <4 x double> %345, %393 %437 = fsub <4 x double> %345, %393 %438 = fadd <4 x double> %369, %417 %439 = fsub <4 x double> %369, %417 %440 = fadd <4 x double> %357, %405 %441 = fsub <4 x double> %357, %405 %442 = fadd <4 x double> %381, %429 %443 = fsub <4 x double> %381, %429 %444 = fadd <4 x double> %351, %399 %445 = fsub <4 x double> %351, %399 %446 = fadd <4 x double> %375, %423 %447 = fsub <4 x double> %375, %423 %448 = fadd <4 x double> %363, %411 %449 = fsub <4 x double> %363, %411 %450 = fadd <4 x double> %387, %435 %451 = fsub <4 x double> %387, %435 %452 = bitcast <4 x double> %439 to <4 x i64> %453 = bitcast <4 x double> %443 to <4 x i64> %454 = bitcast <4 x double> %447 to <4 x i64> %455 = bitcast <4 x double> %451 to <4 x i64> %456 = xor <4 x i64> %452, %457 = bitcast <4 x i64> %456 to <4 x double> %458 = shufflevector <4 x double> %457, <4 x double> poison, <4 x i32> %459 = xor <4 x i64> %453, %460 = bitcast <4 x i64> %459 to <4 x double> %461 = shufflevector <4 x double> %460, <4 x double> poison, <4 x i32> %462 = xor <4 x i64> %454, %463 = bitcast <4 x i64> %462 to <4 x double> %464 = shufflevector <4 x double> %463, <4 x double> poison, <4 x i32> %465 = xor <4 x i64> %455, %466 = bitcast <4 x i64> %465 to <4 x double> %467 = shufflevector <4 x double> %466, <4 x double> poison, <4 x i32> %468 = fadd <4 x double> %436, %438 %469 = fsub <4 x double> %437, %458 %470 = fsub <4 x double> %436, %438 %471 = fadd <4 x double> %437, %458 %472 = fadd <4 x double> %440, %442 %473 = fsub <4 x double> %441, %461 %474 = fsub <4 x double> %440, %442 %475 = fadd <4 x double> %441, %461 %476 = fadd <4 x double> %444, %446 %477 = fsub <4 x double> %445, %464 %478 = fsub <4 x double> %444, %446 %479 = fadd <4 x double> %445, %464 %480 = fadd <4 x double> %448, %450 %481 = fsub <4 x double> %449, %467 %482 = fsub <4 x double> %448, %450 %483 = fadd <4 x double> %449, %467 %484 = bitcast <4 x double> %473 to <4 x i64> %485 = xor <4 x i64> %484, %486 = bitcast <4 x i64> %485 to <4 x double> %487 = shufflevector <4 x double> %486, <4 x double> poison, <4 x i32> %488 = fadd <4 x double> %473, %487 %489 = fmul <4 x double> %488, %490 = bitcast <4 x double> %474 to <4 x i64> %491 = xor <4 x i64> %490, %492 = bitcast <4 x i64> %491 to <4 x double> %493 = shufflevector <4 x double> %492, <4 x double> poison, <4 x i32> %494 = bitcast <4 x double> %475 to <4 x i64> %495 = xor <4 x i64> %494, %496 = bitcast <4 x i64> %495 to <4 x double> %497 = shufflevector <4 x double> %496, <4 x double> poison, <4 x i32> %498 = fadd <4 x double> %475, %497 %499 = fmul <4 x double> %498, %500 = fadd <4 x double> %468, %472 %501 = fadd <4 x double> %469, %489 %502 = fsub <4 x double> %470, %493 %503 = fsub <4 x double> %471, %499 %504 = fsub <4 x double> %468, %472 %505 = fsub <4 x double> %469, %489 %506 = fadd <4 x double> %470, %493 %507 = fadd <4 x double> %471, %499 %508 = bitcast <4 x double> %481 to <4 x i64> %509 = xor <4 x i64> %508, %510 = bitcast <4 x i64> %509 to <4 x double> %511 = shufflevector <4 x double> %510, <4 x double> poison, <4 x i32> %512 = fadd <4 x double> %481, %511 %513 = fmul <4 x double> %512, %514 = bitcast <4 x double> %482 to <4 x i64> %515 = xor <4 x i64> %514, %516 = bitcast <4 x i64> %515 to <4 x double> %517 = shufflevector <4 x double> %516, <4 x double> poison, <4 x i32> %518 = bitcast <4 x double> %483 to <4 x i64> %519 = xor <4 x i64> %518, %520 = bitcast <4 x i64> %519 to <4 x double> %521 = shufflevector <4 x double> %520, <4 x double> poison, <4 x i32> %522 = fadd <4 x double> %483, %521 %523 = fmul <4 x double> %522, %524 = fadd <4 x double> %476, %480 %525 = fadd <4 x double> %477, %513 %526 = fsub <4 x double> %478, %517 %527 = fsub <4 x double> %479, %523 %528 = fsub <4 x double> %476, %480 %529 = fsub <4 x double> %477, %513 %530 = fadd <4 x double> %478, %517 %531 = fadd <4 x double> %479, %523 %532 = fadd <4 x double> %500, %524 store <4 x double> %532, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3760, !noalias !3769 %533 = fsub <4 x double> %500, %524 store <4 x double> %533, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58.i, align 8, !alias.scope !3760, !noalias !3769 %534 = fmul <4 x double> %525, %535 = shufflevector <4 x double> %534, <4 x double> poison, <4 x i32> %536 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %525, <4 x double> %535) #23 %537 = fadd <4 x double> %536, %501 store <4 x double> %537, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3760, !noalias !3769 %538 = fsub <4 x double> %501, %536 store <4 x double> %538, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59.i, align 8, !alias.scope !3760, !noalias !3769 %539 = bitcast <4 x double> %526 to <4 x i64> %540 = xor <4 x i64> %539, %541 = bitcast <4 x i64> %540 to <4 x double> %542 = shufflevector <4 x double> %541, <4 x double> poison, <4 x i32> %543 = fadd <4 x double> %526, %542 %544 = fmul <4 x double> %543, %545 = fadd <4 x double> %502, %544 store <4 x double> %545, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i, align 8, !alias.scope !3760, !noalias !3769 %546 = fsub <4 x double> %502, %544 store <4 x double> %546, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i, align 8, !alias.scope !3760, !noalias !3769 %547 = fmul <4 x double> %527, %548 = shufflevector <4 x double> %547, <4 x double> poison, <4 x i32> %549 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %527, <4 x double> %548) #23 %550 = bitcast <4 x double> %528 to <4 x i64> %551 = xor <4 x i64> %550, %552 = bitcast <4 x i64> %551 to <4 x double> %553 = shufflevector <4 x double> %552, <4 x double> poison, <4 x i32> %554 = fmul <4 x double> %529, %555 = shufflevector <4 x double> %554, <4 x double> poison, <4 x i32> %556 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %529, <4 x double> %555) #23 %.sink.i67.i = fadd <4 x double> %504, %553 %.sink5280.i.i = fsub <4 x double> %504, %553 %.sink5281.i.i = fsub <4 x double> %503, %549 %.sink5282.i.i = fadd <4 x double> %549, %503 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i, align 8, !alias.scope !3760, !noalias !3769 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61.i, align 8, !alias.scope !3760, !noalias !3769 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i, align 8, !alias.scope !3760, !noalias !3769 store <4 x double> %.sink.i67.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i62.i, align 8, !alias.scope !3760, !noalias !3769 %557 = fsub <4 x double> %505, %556 store <4 x double> %557, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55.i, align 8, !alias.scope !3760, !noalias !3769 %558 = fadd <4 x double> %556, %505 store <4 x double> %558, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i, align 8, !alias.scope !3760, !noalias !3769 %559 = bitcast <4 x double> %530 to <4 x i64> %560 = xor <4 x i64> %559, %561 = bitcast <4 x i64> %560 to <4 x double> %562 = shufflevector <4 x double> %561, <4 x double> poison, <4 x i32> %563 = fmul <4 x double> %531, %564 = shufflevector <4 x double> %563, <4 x double> poison, <4 x i32> %565 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %531, <4 x double> %564) #23 %.pn5288.in.i.i = fadd <4 x double> %530, %562 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %506, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %506, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56.i, align 8, !alias.scope !3760, !noalias !3769 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i64.i, align 8, !alias.scope !3760, !noalias !3769 %566 = fsub <4 x double> %507, %565 store <4 x double> %566, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i, align 8, !alias.scope !3760, !noalias !3769 %567 = fadd <4 x double> %507, %565 store <4 x double> %567, ptr %_3.i.i.i.i.i.i.i.i.i.i.i65.i, align 8, !alias.scope !3760, !noalias !3769 %exitcond.not.i68.i = icmp eq i64 %329, 32 br i1 %exitcond.not.i68.i, label %_ZN4pulp3x862V39vectorize6__impl17h7c5ceb1e421f218fE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17h7c5ceb1e421f218fE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3738 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h63242b55b12176b9E"(i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #9 { start: %_13.i.i.i = alloca %"core::option::Option>", align 8 %_8.i.i.i = alloca i64, align 8 %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3770 store i64 16, ptr %n.i.i, align 8, !noalias !3770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3770 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3770 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3770 store ptr null, ptr %_16.i.i, align 8, !noalias !3770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3770 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3770 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3770 store ptr null, ptr %_24.i.i, align 8, !noalias !3770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3770 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3770 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3770 store ptr null, ptr %_32.i.i, align 8, !noalias !3770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3770 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3770 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h732d02817a6ce6d4E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3770 store ptr null, ptr %_40.i.i, align 8, !noalias !3770 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h732d02817a6ce6d4E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3770 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i.i.i), !noalias !3775 store i64 1, ptr %_8.i.i.i, align 8, !noalias !3775 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_13.i.i.i), !noalias !3775 store ptr null, ptr %_13.i.i.i, align 8, !noalias !3775 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @alloc_53973d2fe29b4adba8bb7390b5678745, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_13.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9f9c1a2fba17fd436f6db33315954035) #22 unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h63b12b65e5d9cb28E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3782 store i64 64, ptr %n.i, align 8, !noalias !3782 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3782 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3782 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3782 store ptr null, ptr %_16.i, align 8, !noalias !3782 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3782 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3782 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3782 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3782 store ptr null, ptr %_24.i, align 8, !noalias !3782 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3782 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3782 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3782 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3782 store ptr null, ptr %_32.i, align 8, !noalias !3782 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3782 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3782 store i64 %w.1, ptr %_34.i, align 8, !noalias !3782 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f830c567d47de59E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3782 store ptr null, ptr %_40.i, align 8, !noalias !3782 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f830c567d47de59E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3782 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !3785 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !3785 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %0, align 8, !noalias !3785 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %2, align 8, !noalias !3785 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec6 %4 = fadd <4 x double> %strided.vec1, %strided.vec7 %5 = fsub <4 x double> %strided.vec, %strided.vec6 %6 = fsub <4 x double> %strided.vec1, %strided.vec7 %7 = fadd <4 x double> %strided.vec3, %strided.vec9 %8 = fadd <4 x double> %strided.vec4, %strided.vec10 %9 = fsub <4 x double> %strided.vec3, %strided.vec9 %10 = fsub <4 x double> %strided.vec4, %strided.vec10 %11 = fadd <4 x double> %3, %7 %12 = fadd <4 x double> %4, %8 %13 = fadd <4 x double> %5, %10 %14 = fsub <4 x double> %6, %9 %15 = fsub <4 x double> %3, %7 %16 = fsub <4 x double> %4, %8 %17 = fsub <4 x double> %5, %10 %18 = fadd <4 x double> %6, %9 %interleaved.vec = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !3785 %interleaved.vec11 = shufflevector <4 x double> %13, <4 x double> %14, <8 x i32> store <8 x double> %interleaved.vec11, ptr %1, align 8, !noalias !3785 %interleaved.vec12 = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec12, ptr %0, align 8, !noalias !3785 %interleaved.vec13 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec13, ptr %2, align 8, !noalias !3785 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %21 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec.1 = load <8 x double>, ptr %19, align 8, !noalias !3785 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %20, align 8, !noalias !3785 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %21, align 8, !noalias !3785 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %22, align 8, !noalias !3785 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %23 = fadd <4 x double> %strided.vec.1, %strided.vec6.1 %24 = fadd <4 x double> %strided.vec1.1, %strided.vec7.1 %25 = fsub <4 x double> %strided.vec.1, %strided.vec6.1 %26 = fsub <4 x double> %strided.vec1.1, %strided.vec7.1 %27 = fadd <4 x double> %strided.vec3.1, %strided.vec9.1 %28 = fadd <4 x double> %strided.vec4.1, %strided.vec10.1 %29 = fsub <4 x double> %strided.vec3.1, %strided.vec9.1 %30 = fsub <4 x double> %strided.vec4.1, %strided.vec10.1 %31 = fadd <4 x double> %23, %27 %32 = fadd <4 x double> %24, %28 %33 = fadd <4 x double> %25, %30 %34 = fsub <4 x double> %26, %29 %35 = fsub <4 x double> %23, %27 %36 = fsub <4 x double> %24, %28 %37 = fsub <4 x double> %25, %30 %38 = fadd <4 x double> %26, %29 %interleaved.vec.1 = shufflevector <4 x double> %31, <4 x double> %32, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %19, align 8, !noalias !3785 %interleaved.vec11.1 = shufflevector <4 x double> %33, <4 x double> %34, <8 x i32> store <8 x double> %interleaved.vec11.1, ptr %20, align 8, !noalias !3785 %interleaved.vec12.1 = shufflevector <4 x double> %35, <4 x double> %36, <8 x i32> store <8 x double> %interleaved.vec12.1, ptr %21, align 8, !noalias !3785 %interleaved.vec13.1 = shufflevector <4 x double> %37, <4 x double> %38, <8 x i32> store <8 x double> %interleaved.vec13.1, ptr %22, align 8, !noalias !3785 %39 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %40 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %41 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %42 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec.2 = load <8 x double>, ptr %39, align 8, !noalias !3785 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %40, align 8, !noalias !3785 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %wide.vec5.2 = load <8 x double>, ptr %41, align 8, !noalias !3785 %strided.vec6.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %strided.vec7.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %wide.vec8.2 = load <8 x double>, ptr %42, align 8, !noalias !3785 %strided.vec9.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %strided.vec10.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %43 = fadd <4 x double> %strided.vec.2, %strided.vec6.2 %44 = fadd <4 x double> %strided.vec1.2, %strided.vec7.2 %45 = fsub <4 x double> %strided.vec.2, %strided.vec6.2 %46 = fsub <4 x double> %strided.vec1.2, %strided.vec7.2 %47 = fadd <4 x double> %strided.vec3.2, %strided.vec9.2 %48 = fadd <4 x double> %strided.vec4.2, %strided.vec10.2 %49 = fsub <4 x double> %strided.vec3.2, %strided.vec9.2 %50 = fsub <4 x double> %strided.vec4.2, %strided.vec10.2 %51 = fadd <4 x double> %43, %47 %52 = fadd <4 x double> %44, %48 %53 = fadd <4 x double> %45, %50 %54 = fsub <4 x double> %46, %49 %55 = fsub <4 x double> %43, %47 %56 = fsub <4 x double> %44, %48 %57 = fsub <4 x double> %45, %50 %58 = fadd <4 x double> %46, %49 %interleaved.vec.2 = shufflevector <4 x double> %51, <4 x double> %52, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %39, align 8, !noalias !3785 %interleaved.vec11.2 = shufflevector <4 x double> %53, <4 x double> %54, <8 x i32> store <8 x double> %interleaved.vec11.2, ptr %40, align 8, !noalias !3785 %interleaved.vec12.2 = shufflevector <4 x double> %55, <4 x double> %56, <8 x i32> store <8 x double> %interleaved.vec12.2, ptr %41, align 8, !noalias !3785 %interleaved.vec13.2 = shufflevector <4 x double> %57, <4 x double> %58, <8 x i32> store <8 x double> %interleaved.vec13.2, ptr %42, align 8, !noalias !3785 %59 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %60 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %61 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %62 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.3 = load <8 x double>, ptr %59, align 8, !noalias !3785 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %60, align 8, !noalias !3785 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %wide.vec5.3 = load <8 x double>, ptr %61, align 8, !noalias !3785 %strided.vec6.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %strided.vec7.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %wide.vec8.3 = load <8 x double>, ptr %62, align 8, !noalias !3785 %strided.vec9.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %strided.vec10.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %63 = fadd <4 x double> %strided.vec.3, %strided.vec6.3 %64 = fadd <4 x double> %strided.vec1.3, %strided.vec7.3 %65 = fsub <4 x double> %strided.vec.3, %strided.vec6.3 %66 = fsub <4 x double> %strided.vec1.3, %strided.vec7.3 %67 = fadd <4 x double> %strided.vec3.3, %strided.vec9.3 %68 = fadd <4 x double> %strided.vec4.3, %strided.vec10.3 %69 = fsub <4 x double> %strided.vec3.3, %strided.vec9.3 %70 = fsub <4 x double> %strided.vec4.3, %strided.vec10.3 %71 = fadd <4 x double> %63, %67 %72 = fadd <4 x double> %64, %68 %73 = fadd <4 x double> %65, %70 %74 = fsub <4 x double> %66, %69 %75 = fsub <4 x double> %63, %67 %76 = fsub <4 x double> %64, %68 %77 = fsub <4 x double> %65, %70 %78 = fadd <4 x double> %66, %69 %interleaved.vec.3 = shufflevector <4 x double> %71, <4 x double> %72, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %59, align 8, !noalias !3785 %interleaved.vec11.3 = shufflevector <4 x double> %73, <4 x double> %74, <8 x i32> store <8 x double> %interleaved.vec11.3, ptr %60, align 8, !noalias !3785 %interleaved.vec12.3 = shufflevector <4 x double> %75, <4 x double> %76, <8 x i32> store <8 x double> %interleaved.vec12.3, ptr %61, align 8, !noalias !3785 %interleaved.vec13.3 = shufflevector <4 x double> %77, <4 x double> %78, <8 x i32> store <8 x double> %interleaved.vec13.3, ptr %62, align 8, !noalias !3785 %79 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %80 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %80, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %81 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %82 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %85 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %86 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 8 %87 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 4 %88 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 12 %89 = fneg <4 x double> %wide.masked.gather20 %90 = fneg <4 x double> %wide.masked.gather22 %91 = fneg <4 x double> %wide.masked.gather24 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %79, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %92 = getelementptr inbounds i8, <4 x ptr> %79, i64 8 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %92, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %93 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 4, i32 1 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %94 = fmul <4 x double> %wide.masked.gather28, %89 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather27, <4 x double> %94) %96 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather27 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather28, <4 x double> %96) %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %98 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 8, i32 1 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %99 = fmul <4 x double> %wide.masked.gather30, %90 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather29, <4 x double> %99) %101 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather29 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather30, <4 x double> %101) %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %103 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 12, i32 1 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %104 = fmul <4 x double> %wide.masked.gather32, %91 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather31, <4 x double> %104) %106 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather31 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather32, <4 x double> %106) %108 = fadd <4 x double> %wide.masked.gather25, %100 %109 = fadd <4 x double> %wide.masked.gather26, %102 %110 = fsub <4 x double> %wide.masked.gather25, %100 %111 = fsub <4 x double> %wide.masked.gather26, %102 %112 = fadd <4 x double> %95, %105 %113 = fadd <4 x double> %97, %107 %114 = fsub <4 x double> %95, %105 %115 = fsub <4 x double> %97, %107 %116 = fadd <4 x double> %108, %112 %117 = fadd <4 x double> %109, %113 %118 = fadd <4 x double> %110, %115 %119 = fsub <4 x double> %111, %114 %120 = fsub <4 x double> %108, %112 %121 = fsub <4 x double> %109, %113 %122 = fsub <4 x double> %110, %115 %123 = fadd <4 x double> %111, %114 %124 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 1 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 5 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 9 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 13 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 1, i32 1 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 5, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %130 = fmul <4 x double> %wide.masked.gather36, %89 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather35, <4 x double> %130) %132 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather35 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather36, <4 x double> %132) %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 9, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %135 = fmul <4 x double> %wide.masked.gather38, %90 %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather37, <4 x double> %135) %137 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather37 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather38, <4 x double> %137) %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %139 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 13, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %140 = fmul <4 x double> %wide.masked.gather40, %91 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather39, <4 x double> %140) %142 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather39 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather40, <4 x double> %142) %144 = fadd <4 x double> %wide.masked.gather33, %136 %145 = fadd <4 x double> %wide.masked.gather34, %138 %146 = fsub <4 x double> %wide.masked.gather33, %136 %147 = fsub <4 x double> %wide.masked.gather34, %138 %148 = fadd <4 x double> %131, %141 %149 = fadd <4 x double> %133, %143 %150 = fsub <4 x double> %131, %141 %151 = fsub <4 x double> %133, %143 %152 = fadd <4 x double> %144, %148 %153 = fadd <4 x double> %145, %149 %154 = fadd <4 x double> %146, %151 %155 = fsub <4 x double> %147, %150 %156 = fsub <4 x double> %144, %148 %157 = fsub <4 x double> %145, %149 %158 = fsub <4 x double> %146, %151 %159 = fadd <4 x double> %147, %150 %160 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 2 %161 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 6 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 10 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 14 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 2, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 6, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %166 = fmul <4 x double> %wide.masked.gather44, %89 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather43, <4 x double> %166) %168 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather43 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather44, <4 x double> %168) %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 10, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %171 = fmul <4 x double> %wide.masked.gather46, %90 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather45, <4 x double> %171) %173 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather45 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather46, <4 x double> %173) %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %175 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 14, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %175, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %176 = fmul <4 x double> %wide.masked.gather48, %91 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather47, <4 x double> %176) %178 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather47 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather48, <4 x double> %178) %180 = fadd <4 x double> %wide.masked.gather41, %172 %181 = fadd <4 x double> %wide.masked.gather42, %174 %182 = fsub <4 x double> %wide.masked.gather41, %172 %183 = fsub <4 x double> %wide.masked.gather42, %174 %184 = fadd <4 x double> %167, %177 %185 = fadd <4 x double> %169, %179 %186 = fsub <4 x double> %167, %177 %187 = fsub <4 x double> %169, %179 %188 = fadd <4 x double> %180, %184 %189 = fadd <4 x double> %181, %185 %190 = fadd <4 x double> %182, %187 %191 = fsub <4 x double> %183, %186 %192 = fsub <4 x double> %180, %184 %193 = fsub <4 x double> %181, %185 %194 = fsub <4 x double> %182, %187 %195 = fadd <4 x double> %183, %186 %196 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 3 %197 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 7 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 11 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 15 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %196, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 3, i32 1 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %197, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 7, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %202 = fmul <4 x double> %wide.masked.gather52, %89 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather51, <4 x double> %202) %204 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather51 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather52, <4 x double> %204) %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %206 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 11, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %206, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %207 = fmul <4 x double> %wide.masked.gather54, %90 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather53, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather53 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather54, <4 x double> %209) %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %211 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 15, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %211, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %212 = fmul <4 x double> %wide.masked.gather56, %91 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather55, <4 x double> %212) %214 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather55 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather56, <4 x double> %214) %216 = fadd <4 x double> %wide.masked.gather49, %208 %217 = fadd <4 x double> %wide.masked.gather50, %210 %218 = fsub <4 x double> %wide.masked.gather49, %208 %219 = fsub <4 x double> %wide.masked.gather50, %210 %220 = fadd <4 x double> %203, %213 %221 = fadd <4 x double> %205, %215 %222 = fsub <4 x double> %203, %213 %223 = fsub <4 x double> %205, %215 %224 = fadd <4 x double> %216, %220 %225 = fadd <4 x double> %217, %221 %226 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> %227 = shufflevector <4 x double> %152, <4 x double> %153, <8 x i32> %228 = shufflevector <4 x double> %188, <4 x double> %189, <8 x i32> %229 = shufflevector <4 x double> %224, <4 x double> %225, <8 x i32> %230 = shufflevector <8 x double> %226, <8 x double> %227, <16 x i32> %231 = shufflevector <8 x double> %228, <8 x double> %229, <16 x i32> %interleaved.vec57 = shufflevector <16 x double> %230, <16 x double> %231, <32 x i32> store <32 x double> %interleaved.vec57, ptr %scratch.0, align 8, !noalias !3782 %232 = fadd <4 x double> %218, %223 %233 = fsub <4 x double> %219, %222 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %235 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> %236 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> %237 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %238 = shufflevector <4 x double> %232, <4 x double> %233, <8 x i32> %239 = shufflevector <8 x double> %235, <8 x double> %236, <16 x i32> %240 = shufflevector <8 x double> %237, <8 x double> %238, <16 x i32> %interleaved.vec58 = shufflevector <16 x double> %239, <16 x double> %240, <32 x i32> store <32 x double> %interleaved.vec58, ptr %234, align 8, !noalias !3782 %241 = fsub <4 x double> %216, %220 %242 = fsub <4 x double> %217, %221 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %244 = shufflevector <4 x double> %120, <4 x double> %121, <8 x i32> %245 = shufflevector <4 x double> %156, <4 x double> %157, <8 x i32> %246 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> %247 = shufflevector <4 x double> %241, <4 x double> %242, <8 x i32> %248 = shufflevector <8 x double> %244, <8 x double> %245, <16 x i32> %249 = shufflevector <8 x double> %246, <8 x double> %247, <16 x i32> %interleaved.vec59 = shufflevector <16 x double> %248, <16 x double> %249, <32 x i32> store <32 x double> %interleaved.vec59, ptr %243, align 8, !noalias !3782 %250 = fsub <4 x double> %218, %223 %251 = fadd <4 x double> %219, %222 %252 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %253 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> %254 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> %255 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> %256 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> %257 = shufflevector <8 x double> %253, <8 x double> %254, <16 x i32> %258 = shufflevector <8 x double> %255, <8 x double> %256, <16 x i32> %interleaved.vec60 = shufflevector <16 x double> %257, <16 x double> %258, <32 x i32> store <32 x double> %interleaved.vec60, ptr %252, align 8, !noalias !3782 %259 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %260 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %260, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %261 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %261, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %262 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %262, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %263 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %263, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %264 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %264, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %265 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %265, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %266 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 2 %267 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 1 %268 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 3 %269 = fneg <4 x double> %wide.masked.gather71 %270 = fneg <4 x double> %wide.masked.gather73 %271 = fneg <4 x double> %wide.masked.gather75 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %259, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %272 = getelementptr inbounds i8, <4 x ptr> %259, i64 8 %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %267, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %273 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 1, i32 1 %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %274 = fmul <4 x double> %wide.masked.gather79, %269 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70, <4 x double> %wide.masked.gather78, <4 x double> %274) %276 = fmul <4 x double> %wide.masked.gather71, %wide.masked.gather78 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70, <4 x double> %wide.masked.gather79, <4 x double> %276) %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %266, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %278 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 2, i32 1 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %278, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %279 = fmul <4 x double> %wide.masked.gather81, %270 %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72, <4 x double> %wide.masked.gather80, <4 x double> %279) %281 = fmul <4 x double> %wide.masked.gather73, %wide.masked.gather80 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72, <4 x double> %wide.masked.gather81, <4 x double> %281) %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %268, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %283 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 3, i32 1 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %283, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %284 = fmul <4 x double> %wide.masked.gather83, %271 %285 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74, <4 x double> %wide.masked.gather82, <4 x double> %284) %286 = fmul <4 x double> %wide.masked.gather75, %wide.masked.gather82 %287 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74, <4 x double> %wide.masked.gather83, <4 x double> %286) %288 = fadd <4 x double> %wide.masked.gather76, %280 %289 = fadd <4 x double> %wide.masked.gather77, %282 %290 = fsub <4 x double> %wide.masked.gather76, %280 %291 = fsub <4 x double> %wide.masked.gather77, %282 %292 = fadd <4 x double> %275, %285 %293 = fadd <4 x double> %277, %287 %294 = fsub <4 x double> %275, %285 %295 = fsub <4 x double> %277, %287 %296 = fadd <4 x double> %288, %292 %297 = fadd <4 x double> %289, %293 %interleaved.vec84 = shufflevector <4 x double> %296, <4 x double> %297, <8 x i32> store <8 x double> %interleaved.vec84, ptr %buf.0, align 8, !noalias !3782 %298 = fadd <4 x double> %290, %295 %299 = fsub <4 x double> %291, %294 %interleaved.vec85 = shufflevector <4 x double> %298, <4 x double> %299, <8 x i32> store <8 x double> %interleaved.vec85, ptr %1, align 8, !noalias !3782 %300 = fsub <4 x double> %288, %292 %301 = fsub <4 x double> %289, %293 %interleaved.vec86 = shufflevector <4 x double> %300, <4 x double> %301, <8 x i32> store <8 x double> %interleaved.vec86, ptr %0, align 8, !noalias !3782 %302 = fsub <4 x double> %290, %295 %303 = fadd <4 x double> %291, %294 %interleaved.vec87 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec87, ptr %2, align 8, !noalias !3782 %304 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %305 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather70.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %305, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %306 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather71.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %306, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %307 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather72.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %307, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %308 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather73.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %308, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %309 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather74.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %309, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %310 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather75.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %310, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %311 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 2 %312 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 1 %313 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 3 %314 = fneg <4 x double> %wide.masked.gather71.1 %315 = fneg <4 x double> %wide.masked.gather73.1 %316 = fneg <4 x double> %wide.masked.gather75.1 %wide.masked.gather76.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %304, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %317 = getelementptr inbounds i8, <4 x ptr> %304, i64 8 %wide.masked.gather77.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %317, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather78.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %312, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %318 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 1, i32 1 %wide.masked.gather79.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %318, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %319 = fmul <4 x double> %wide.masked.gather79.1, %314 %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.1, <4 x double> %wide.masked.gather78.1, <4 x double> %319) %321 = fmul <4 x double> %wide.masked.gather71.1, %wide.masked.gather78.1 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.1, <4 x double> %wide.masked.gather79.1, <4 x double> %321) %wide.masked.gather80.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %311, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %323 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 2, i32 1 %wide.masked.gather81.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %323, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %324 = fmul <4 x double> %wide.masked.gather81.1, %315 %325 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.1, <4 x double> %wide.masked.gather80.1, <4 x double> %324) %326 = fmul <4 x double> %wide.masked.gather73.1, %wide.masked.gather80.1 %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.1, <4 x double> %wide.masked.gather81.1, <4 x double> %326) %wide.masked.gather82.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %313, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %328 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 3, i32 1 %wide.masked.gather83.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %329 = fmul <4 x double> %wide.masked.gather83.1, %316 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.1, <4 x double> %wide.masked.gather82.1, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather75.1, %wide.masked.gather82.1 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.1, <4 x double> %wide.masked.gather83.1, <4 x double> %331) %333 = fadd <4 x double> %wide.masked.gather76.1, %325 %334 = fadd <4 x double> %wide.masked.gather77.1, %327 %335 = fsub <4 x double> %wide.masked.gather76.1, %325 %336 = fsub <4 x double> %wide.masked.gather77.1, %327 %337 = fadd <4 x double> %320, %330 %338 = fadd <4 x double> %322, %332 %339 = fsub <4 x double> %320, %330 %340 = fsub <4 x double> %322, %332 %341 = fadd <4 x double> %333, %337 %342 = fadd <4 x double> %334, %338 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec84.1 = shufflevector <4 x double> %341, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec84.1, ptr %343, align 8, !noalias !3782 %344 = fadd <4 x double> %335, %340 %345 = fsub <4 x double> %336, %339 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec85.1 = shufflevector <4 x double> %344, <4 x double> %345, <8 x i32> store <8 x double> %interleaved.vec85.1, ptr %346, align 8, !noalias !3782 %347 = fsub <4 x double> %333, %337 %348 = fsub <4 x double> %334, %338 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec86.1 = shufflevector <4 x double> %347, <4 x double> %348, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %349, align 8, !noalias !3782 %350 = fsub <4 x double> %335, %340 %351 = fadd <4 x double> %336, %339 %352 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec87.1 = shufflevector <4 x double> %350, <4 x double> %351, <8 x i32> store <8 x double> %interleaved.vec87.1, ptr %352, align 8, !noalias !3782 %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %354 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather70.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %355 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather71.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %355, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %356 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather72.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %356, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %357 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather73.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %357, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %358 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather74.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %358, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %359 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather75.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %360 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 2 %361 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 1 %362 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 3 %363 = fneg <4 x double> %wide.masked.gather71.2 %364 = fneg <4 x double> %wide.masked.gather73.2 %365 = fneg <4 x double> %wide.masked.gather75.2 %wide.masked.gather76.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %353, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %366 = getelementptr inbounds i8, <4 x ptr> %353, i64 8 %wide.masked.gather77.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %wide.masked.gather78.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %361, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %367 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 1, i32 1 %wide.masked.gather79.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %368 = fmul <4 x double> %wide.masked.gather79.2, %363 %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.2, <4 x double> %wide.masked.gather78.2, <4 x double> %368) %370 = fmul <4 x double> %wide.masked.gather71.2, %wide.masked.gather78.2 %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.2, <4 x double> %wide.masked.gather79.2, <4 x double> %370) %wide.masked.gather80.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %360, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %372 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 2, i32 1 %wide.masked.gather81.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %373 = fmul <4 x double> %wide.masked.gather81.2, %364 %374 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.2, <4 x double> %wide.masked.gather80.2, <4 x double> %373) %375 = fmul <4 x double> %wide.masked.gather73.2, %wide.masked.gather80.2 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.2, <4 x double> %wide.masked.gather81.2, <4 x double> %375) %wide.masked.gather82.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %362, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %377 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 3, i32 1 %wide.masked.gather83.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !3782 %378 = fmul <4 x double> %wide.masked.gather83.2, %365 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.2, <4 x double> %wide.masked.gather82.2, <4 x double> %378) %380 = fmul <4 x double> %wide.masked.gather75.2, %wide.masked.gather82.2 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.2, <4 x double> %wide.masked.gather83.2, <4 x double> %380) %382 = fadd <4 x double> %wide.masked.gather76.2, %374 %383 = fadd <4 x double> %wide.masked.gather77.2, %376 %384 = fsub <4 x double> %wide.masked.gather76.2, %374 %385 = fsub <4 x double> %wide.masked.gather77.2, %376 %386 = fadd <4 x double> %369, %379 %387 = fadd <4 x double> %371, %381 %388 = fsub <4 x double> %369, %379 %389 = fsub <4 x double> %371, %381 %390 = fadd <4 x double> %382, %386 %391 = fadd <4 x double> %383, %387 %392 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec84.2 = shufflevector <4 x double> %390, <4 x double> %391, <8 x i32> store <8 x double> %interleaved.vec84.2, ptr %392, align 8, !noalias !3782 %393 = fadd <4 x double> %384, %389 %394 = fsub <4 x double> %385, %388 %395 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec85.2 = shufflevector <4 x double> %393, <4 x double> %394, <8 x i32> store <8 x double> %interleaved.vec85.2, ptr %395, align 8, !noalias !3782 %396 = fsub <4 x double> %382, %386 %397 = fsub <4 x double> %383, %387 %398 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec86.2 = shufflevector <4 x double> %396, <4 x double> %397, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %398, align 8, !noalias !3782 %399 = fsub <4 x double> %384, %389 %400 = fadd <4 x double> %385, %388 %401 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec87.2 = shufflevector <4 x double> %399, <4 x double> %400, <8 x i32> store <8 x double> %interleaved.vec87.2, ptr %401, align 8, !noalias !3782 %data.i.i.i.i.i.i.i.i.i.i.i.i410 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i.i.i.i.i.i420 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i.i.i.i.i.i.i.i424 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i.i.i.i.i428 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %data.i5.i.i.i.i.i.i.i.i.i.i.i432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %402 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i.i = load double, ptr %402, align 8, !noalias !3782, !noundef !3 %403 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %403, align 8, !noalias !3782, !noundef !3 %404 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2 %w2.0.i.i.i = load double, ptr %404, align 8, !noalias !3782, !noundef !3 %405 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %405, align 8, !noalias !3782, !noundef !3 %406 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3 %w3.0.i.i.i = load double, ptr %406, align 8, !noalias !3782, !noundef !3 %407 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %407, align 8, !noalias !3782, !noundef !3 %408 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %409 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49 %410 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i420, align 8, !noalias !3782, !noundef !3 %411 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48, i32 1 %a.1.i.i.i = load double, ptr %411, align 8, !noalias !3782, !noundef !3 %_84.0.i.i.i = load double, ptr %409, align 8, !noalias !3782, !noundef !3 %412 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49, i32 1 %_84.1.i.i.i = load double, ptr %412, align 8, !noalias !3782, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %413 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %414 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %408, align 8, !noalias !3782, !noundef !3 %415 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50, i32 1 %_86.1.i.i.i = load double, ptr %415, align 8, !noalias !3782, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %416 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %417 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %410, align 8, !noalias !3782, !noundef !3 %418 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51, i32 1 %_88.1.i.i.i = load double, ptr %418, align 8, !noalias !3782, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %419 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %420 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i565 = fadd double %a.0.i.i.i, %416 %_0.i3.i566 = fadd double %a.1.i.i.i, %417 %_0.i.i567 = fsub double %a.0.i.i.i, %416 %_0.i3.i568 = fsub double %a.1.i.i.i, %417 %_0.i.i569 = fadd double %413, %419 %_0.i3.i570 = fadd double %414, %420 %_0.i.i571 = fsub double %413, %419 %_0.i3.i572 = fsub double %414, %420 %_0.i.i573 = fadd double %_0.i.i565, %_0.i.i569 %_0.i3.i574 = fadd double %_0.i3.i566, %_0.i3.i570 store double %_0.i.i573, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410, align 8, !noalias !3782 %421 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12, i32 1 store double %_0.i3.i574, ptr %421, align 8, !noalias !3782 %_0.i.i575 = fadd double %_0.i.i567, %_0.i3.i572 %_0.i3.i576 = fsub double %_0.i3.i568, %_0.i.i571 store double %_0.i.i575, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432, align 8, !noalias !3782 %422 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28, i32 1 store double %_0.i3.i576, ptr %422, align 8, !noalias !3782 %_0.i.i577 = fsub double %_0.i.i565, %_0.i.i569 %_0.i3.i578 = fsub double %_0.i3.i566, %_0.i3.i570 store double %_0.i.i577, ptr %data.i.i.i.i.i.i.i.i.i.i428, align 8, !noalias !3782 %423 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44, i32 1 store double %_0.i3.i578, ptr %423, align 8, !noalias !3782 %_0.i.i579 = fsub double %_0.i.i567, %_0.i3.i572 %_0.i3.i580 = fadd double %_0.i3.i568, %_0.i.i571 store double %_0.i.i579, ptr %data.i.i.i.i.i.i.i.i424, align 8, !noalias !3782 %424 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60, i32 1 store double %_0.i3.i580, ptr %424, align 8, !noalias !3782 %data.i.i.i.i.i.i.i.i.i.i.i.i410.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i420.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %data.i.i.i.i.i.i.i.i424.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.i.i.i.i428.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45 %data.i5.i.i.i.i.i.i.i.i.i.i.i432.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %425 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1 %w1.0.i.i.i.1 = load double, ptr %425, align 8, !noalias !3782, !noundef !3 %426 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %426, align 8, !noalias !3782, !noundef !3 %427 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2 %w2.0.i.i.i.1 = load double, ptr %427, align 8, !noalias !3782, !noundef !3 %428 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %428, align 8, !noalias !3782, !noundef !3 %429 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3 %w3.0.i.i.i.1 = load double, ptr %429, align 8, !noalias !3782, !noundef !3 %430 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %430, align 8, !noalias !3782, !noundef !3 %431 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %432 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53 %433 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i420.1, align 8, !noalias !3782, !noundef !3 %434 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52, i32 1 %a.1.i.i.i.1 = load double, ptr %434, align 8, !noalias !3782, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %432, align 8, !noalias !3782, !noundef !3 %435 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53, i32 1 %_84.1.i.i.i.1 = load double, ptr %435, align 8, !noalias !3782, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %436 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %437 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %431, align 8, !noalias !3782, !noundef !3 %438 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54, i32 1 %_86.1.i.i.i.1 = load double, ptr %438, align 8, !noalias !3782, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %439 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %440 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %433, align 8, !noalias !3782, !noundef !3 %441 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55, i32 1 %_88.1.i.i.i.1 = load double, ptr %441, align 8, !noalias !3782, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %442 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %443 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i565.1 = fadd double %a.0.i.i.i.1, %439 %_0.i3.i566.1 = fadd double %a.1.i.i.i.1, %440 %_0.i.i567.1 = fsub double %a.0.i.i.i.1, %439 %_0.i3.i568.1 = fsub double %a.1.i.i.i.1, %440 %_0.i.i569.1 = fadd double %436, %442 %_0.i3.i570.1 = fadd double %437, %443 %_0.i.i571.1 = fsub double %436, %442 %_0.i3.i572.1 = fsub double %437, %443 %_0.i.i573.1 = fadd double %_0.i.i565.1, %_0.i.i569.1 %_0.i3.i574.1 = fadd double %_0.i3.i566.1, %_0.i3.i570.1 store double %_0.i.i573.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410.1, align 8, !noalias !3782 %444 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13, i32 1 store double %_0.i3.i574.1, ptr %444, align 8, !noalias !3782 %_0.i.i575.1 = fadd double %_0.i.i567.1, %_0.i3.i572.1 %_0.i3.i576.1 = fsub double %_0.i3.i568.1, %_0.i.i571.1 store double %_0.i.i575.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432.1, align 8, !noalias !3782 %445 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29, i32 1 store double %_0.i3.i576.1, ptr %445, align 8, !noalias !3782 %_0.i.i577.1 = fsub double %_0.i.i565.1, %_0.i.i569.1 %_0.i3.i578.1 = fsub double %_0.i3.i566.1, %_0.i3.i570.1 store double %_0.i.i577.1, ptr %data.i.i.i.i.i.i.i.i.i.i428.1, align 8, !noalias !3782 %446 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45, i32 1 store double %_0.i3.i578.1, ptr %446, align 8, !noalias !3782 %_0.i.i579.1 = fsub double %_0.i.i567.1, %_0.i3.i572.1 %_0.i3.i580.1 = fadd double %_0.i3.i568.1, %_0.i.i571.1 store double %_0.i.i579.1, ptr %data.i.i.i.i.i.i.i.i424.1, align 8, !noalias !3782 %447 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61, i32 1 store double %_0.i3.i580.1, ptr %447, align 8, !noalias !3782 %data.i.i.i.i.i.i.i.i.i.i.i.i410.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i.i.i.i.i.i420.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i.i.i.i.i.i.i.i424.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.i.i.i.i428.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %data.i5.i.i.i.i.i.i.i.i.i.i.i432.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %448 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.i.i.i.2 = load double, ptr %448, align 8, !noalias !3782, !noundef !3 %449 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %449, align 8, !noalias !3782, !noundef !3 %450 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2 %w2.0.i.i.i.2 = load double, ptr %450, align 8, !noalias !3782, !noundef !3 %451 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %451, align 8, !noalias !3782, !noundef !3 %452 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3 %w3.0.i.i.i.2 = load double, ptr %452, align 8, !noalias !3782, !noundef !3 %453 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %453, align 8, !noalias !3782, !noundef !3 %454 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %455 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57 %456 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i420.2, align 8, !noalias !3782, !noundef !3 %457 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56, i32 1 %a.1.i.i.i.2 = load double, ptr %457, align 8, !noalias !3782, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %455, align 8, !noalias !3782, !noundef !3 %458 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57, i32 1 %_84.1.i.i.i.2 = load double, ptr %458, align 8, !noalias !3782, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %459 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %460 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %454, align 8, !noalias !3782, !noundef !3 %461 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58, i32 1 %_86.1.i.i.i.2 = load double, ptr %461, align 8, !noalias !3782, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %462 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %463 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %456, align 8, !noalias !3782, !noundef !3 %464 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59, i32 1 %_88.1.i.i.i.2 = load double, ptr %464, align 8, !noalias !3782, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %465 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %466 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i565.2 = fadd double %a.0.i.i.i.2, %462 %_0.i3.i566.2 = fadd double %a.1.i.i.i.2, %463 %_0.i.i567.2 = fsub double %a.0.i.i.i.2, %462 %_0.i3.i568.2 = fsub double %a.1.i.i.i.2, %463 %_0.i.i569.2 = fadd double %459, %465 %_0.i3.i570.2 = fadd double %460, %466 %_0.i.i571.2 = fsub double %459, %465 %_0.i3.i572.2 = fsub double %460, %466 %_0.i.i573.2 = fadd double %_0.i.i565.2, %_0.i.i569.2 %_0.i3.i574.2 = fadd double %_0.i3.i566.2, %_0.i3.i570.2 store double %_0.i.i573.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410.2, align 8, !noalias !3782 %467 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14, i32 1 store double %_0.i3.i574.2, ptr %467, align 8, !noalias !3782 %_0.i.i575.2 = fadd double %_0.i.i567.2, %_0.i3.i572.2 %_0.i3.i576.2 = fsub double %_0.i3.i568.2, %_0.i.i571.2 store double %_0.i.i575.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432.2, align 8, !noalias !3782 %468 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30, i32 1 store double %_0.i3.i576.2, ptr %468, align 8, !noalias !3782 %_0.i.i577.2 = fsub double %_0.i.i565.2, %_0.i.i569.2 %_0.i3.i578.2 = fsub double %_0.i3.i566.2, %_0.i3.i570.2 store double %_0.i.i577.2, ptr %data.i.i.i.i.i.i.i.i.i.i428.2, align 8, !noalias !3782 %469 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46, i32 1 store double %_0.i3.i578.2, ptr %469, align 8, !noalias !3782 %_0.i.i579.2 = fsub double %_0.i.i567.2, %_0.i3.i572.2 %_0.i3.i580.2 = fadd double %_0.i3.i568.2, %_0.i.i571.2 store double %_0.i.i579.2, ptr %data.i.i.i.i.i.i.i.i424.2, align 8, !noalias !3782 %470 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62, i32 1 store double %_0.i3.i580.2, ptr %470, align 8, !noalias !3782 %data.i.i.i.i.i.i.i.i.i.i.i.i410.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i420.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %data.i.i.i.i.i.i.i.i424.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.i.i.i.i428.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47 %data.i5.i.i.i.i.i.i.i.i.i.i.i432.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %471 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1 %w1.0.i.i.i.3 = load double, ptr %471, align 8, !noalias !3782, !noundef !3 %472 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %472, align 8, !noalias !3782, !noundef !3 %473 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2 %w2.0.i.i.i.3 = load double, ptr %473, align 8, !noalias !3782, !noundef !3 %474 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %474, align 8, !noalias !3782, !noundef !3 %475 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3 %w3.0.i.i.i.3 = load double, ptr %475, align 8, !noalias !3782, !noundef !3 %476 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %476, align 8, !noalias !3782, !noundef !3 %477 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %478 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61 %479 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i420.3, align 8, !noalias !3782, !noundef !3 %480 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60, i32 1 %a.1.i.i.i.3 = load double, ptr %480, align 8, !noalias !3782, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %478, align 8, !noalias !3782, !noundef !3 %481 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61, i32 1 %_84.1.i.i.i.3 = load double, ptr %481, align 8, !noalias !3782, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %482 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %483 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %477, align 8, !noalias !3782, !noundef !3 %484 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62, i32 1 %_86.1.i.i.i.3 = load double, ptr %484, align 8, !noalias !3782, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %485 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %486 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %479, align 8, !noalias !3782, !noundef !3 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63, i32 1 %_88.1.i.i.i.3 = load double, ptr %487, align 8, !noalias !3782, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %488 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %489 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i565.3 = fadd double %a.0.i.i.i.3, %485 %_0.i3.i566.3 = fadd double %a.1.i.i.i.3, %486 %_0.i.i567.3 = fsub double %a.0.i.i.i.3, %485 %_0.i3.i568.3 = fsub double %a.1.i.i.i.3, %486 %_0.i.i569.3 = fadd double %482, %488 %_0.i3.i570.3 = fadd double %483, %489 %_0.i.i571.3 = fsub double %482, %488 %_0.i3.i572.3 = fsub double %483, %489 %_0.i.i573.3 = fadd double %_0.i.i565.3, %_0.i.i569.3 %_0.i3.i574.3 = fadd double %_0.i3.i566.3, %_0.i3.i570.3 store double %_0.i.i573.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410.3, align 8, !noalias !3782 %490 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15, i32 1 store double %_0.i3.i574.3, ptr %490, align 8, !noalias !3782 %_0.i.i575.3 = fadd double %_0.i.i567.3, %_0.i3.i572.3 %_0.i3.i576.3 = fsub double %_0.i3.i568.3, %_0.i.i571.3 store double %_0.i.i575.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432.3, align 8, !noalias !3782 %491 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31, i32 1 store double %_0.i3.i576.3, ptr %491, align 8, !noalias !3782 %_0.i.i577.3 = fsub double %_0.i.i565.3, %_0.i.i569.3 %_0.i3.i578.3 = fsub double %_0.i3.i566.3, %_0.i3.i570.3 store double %_0.i.i577.3, ptr %data.i.i.i.i.i.i.i.i.i.i428.3, align 8, !noalias !3782 %492 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47, i32 1 store double %_0.i3.i578.3, ptr %492, align 8, !noalias !3782 %_0.i.i579.3 = fsub double %_0.i.i567.3, %_0.i3.i572.3 %_0.i3.i580.3 = fadd double %_0.i3.i568.3, %_0.i.i571.3 store double %_0.i.i579.3, ptr %data.i.i.i.i.i.i.i.i424.3, align 8, !noalias !3782 %493 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63, i32 1 store double %_0.i3.i580.3, ptr %493, align 8, !noalias !3782 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3782 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h64c937deb5fe8905E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h74e12f59a395334cE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h64f43a13d277049fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3790 store i64 256, ptr %n.i, align 8, !noalias !3790 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3790 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3790 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3790 store ptr null, ptr %_16.i, align 8, !noalias !3790 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3790 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3790 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3790 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3790 store ptr null, ptr %_24.i, align 8, !noalias !3790 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3790 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3790 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3790 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3790 store ptr null, ptr %_32.i, align 8, !noalias !3790 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3790 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3790 store i64 %w.1, ptr %_34.i, align 8, !noalias !3790 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3790 store ptr null, ptr %_40.i, align 8, !noalias !3790 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3790 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !3793 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !3793 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !3793 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !3793 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !3793 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !3793 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !3793 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !3793 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !3793 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fadd <4 x double> %75, %80 %92 = fsub <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fsub <4 x double> %75, %80 %96 = fadd <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %88 %100 = fsub <4 x double> %84, %87 %101 = fadd <4 x double> %100, %99 %102 = fsub <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fsub <4 x double> %83, %88 %108 = fadd <4 x double> %84, %87 %109 = fsub <4 x double> %107, %108 %110 = fadd <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !3793 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !3793 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !3793 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !3793 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !3793 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !3793 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !3793 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !3793 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !3793 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !3793 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !3793 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !3793 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !3793 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !3793 %141 = fadd <4 x double> %93, %106 %142 = fsub <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !3793 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !3793 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !3793 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !3793 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !3793 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !3793 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !3793 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !3793 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !3793 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !3793 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !3793 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !3793 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !3793 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !3793 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !3793 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !3793 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !3793 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !3793 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !3793 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !3793 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !3793 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !3793 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !3793 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !3793 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !3793 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !3793 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !3793 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !3793 %205 = fsub <4 x double> %93, %106 %206 = fadd <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !3793 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !3793 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !3793 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !3793 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !3793 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !3793 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !3793 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !3793 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !3793 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !3793 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !3793 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !3793 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !3793 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !3793 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 32 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089, label %vector.body, !llvm.loop !3796 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 br label %bb32.i.i.i154 vector.body118: ; preds = %middle.block36, %vector.body118 %index119 = phi i64 [ %index.next136, %vector.body118 ], [ 0, %middle.block36 ] %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index119 %246 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index119 %247 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index119 %248 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index119 %wide.vec120 = load <8 x double>, ptr %245, align 8, !noalias !3790 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %246, align 8, !noalias !3790 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %wide.vec126 = load <8 x double>, ptr %247, align 8, !noalias !3790 %strided.vec127 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %strided.vec128 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %wide.vec129 = load <8 x double>, ptr %248, align 8, !noalias !3790 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %249 = fadd <4 x double> %strided.vec121, %strided.vec127 %250 = fadd <4 x double> %strided.vec122, %strided.vec128 %251 = fsub <4 x double> %strided.vec121, %strided.vec127 %252 = fsub <4 x double> %strided.vec122, %strided.vec128 %253 = fadd <4 x double> %strided.vec124, %strided.vec130 %254 = fadd <4 x double> %strided.vec125, %strided.vec131 %255 = fsub <4 x double> %strided.vec124, %strided.vec130 %256 = fsub <4 x double> %strided.vec125, %strided.vec131 %257 = fadd <4 x double> %249, %253 %258 = fadd <4 x double> %250, %254 %259 = fadd <4 x double> %251, %256 %260 = fsub <4 x double> %252, %255 %261 = fsub <4 x double> %249, %253 %262 = fsub <4 x double> %250, %254 %263 = fsub <4 x double> %251, %256 %264 = fadd <4 x double> %252, %255 %interleaved.vec132 = shufflevector <4 x double> %257, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec132, ptr %245, align 8, !noalias !3790 %interleaved.vec133 = shufflevector <4 x double> %259, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec133, ptr %246, align 8, !noalias !3790 %interleaved.vec134 = shufflevector <4 x double> %261, <4 x double> %262, <8 x i32> store <8 x double> %interleaved.vec134, ptr %247, align 8, !noalias !3790 %interleaved.vec135 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec135, ptr %248, align 8, !noalias !3790 %index.next136 = add nuw i64 %index119, 4 %265 = icmp eq i64 %index.next136, 64 br i1 %265, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h5abb7de73f460705E.exit", label %vector.body118, !llvm.loop !3797 bb32.i.i.i154: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089, %middle.block36 %iter.i.i.i56.sroa.104.0123 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit1089 ], [ %388, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0123, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1115 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1120 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1125 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1130 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1135 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i.i.i1140 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i.i.i1145 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %data.i.i.i.i.i.i.i.i1150 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114 %start1.i.i.i.i.i.i1153 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0123, 6 %data.i.i.i.i.i.i1154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1153 %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 32 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 16 %268 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 8 %269 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 24 %270 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 48 %271 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 40 %272 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 56 %273 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 7, i32 1 %w7.1.i.i.i186 = load double, ptr %273, align 8, !noalias !3790, !noundef !3 %_6.i.i.i.i387 = fneg double %w7.1.i.i.i186 %274 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 6, i32 1 %w6.1.i.i.i184 = load double, ptr %274, align 8, !noalias !3790, !noundef !3 %_6.i166.i.i.i382 = fneg double %w6.1.i.i.i184 %275 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 5, i32 1 %w5.1.i.i.i182 = load double, ptr %275, align 8, !noalias !3790, !noundef !3 %_6.i169.i.i.i377 = fneg double %w5.1.i.i.i182 %276 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 4, i32 1 %w4.1.i.i.i180 = load double, ptr %276, align 8, !noalias !3790, !noundef !3 %_6.i172.i.i.i372 = fneg double %w4.1.i.i.i180 %277 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 3, i32 1 %w3.1.i.i.i178 = load double, ptr %277, align 8, !noalias !3790, !noundef !3 %_6.i175.i.i.i367 = fneg double %w3.1.i.i.i178 %278 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 2, i32 1 %w2.1.i.i.i176 = load double, ptr %278, align 8, !noalias !3790, !noundef !3 %_6.i178.i.i.i362 = fneg double %w2.1.i.i.i176 %279 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 1, i32 1 %w1.1.i.i.i174 = load double, ptr %279, align 8, !noalias !3790, !noundef !3 %_6.i181.i.i.i357 = fneg double %w1.1.i.i.i174 %280 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 7 %w7.0.i.i.i185 = load double, ptr %280, align 8, !noalias !3790, !noundef !3 %281 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 6 %w6.0.i.i.i183 = load double, ptr %281, align 8, !noalias !3790, !noundef !3 %282 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 5 %w5.0.i.i.i181 = load double, ptr %282, align 8, !noalias !3790, !noundef !3 %283 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 4 %w4.0.i.i.i179 = load double, ptr %283, align 8, !noalias !3790, !noundef !3 %284 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 3 %w3.0.i.i.i177 = load double, ptr %284, align 8, !noalias !3790, !noundef !3 %285 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 2 %w2.0.i.i.i175 = load double, ptr %285, align 8, !noalias !3790, !noundef !3 %286 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1114, i64 1 %w1.0.i.i.i173 = load double, ptr %286, align 8, !noalias !3790, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i357, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i173, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i174, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i362, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i175, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i176, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i367, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i177, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i178, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i372, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i179, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i180, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i377, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i181, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i182, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i382, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i183, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i184, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i387, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i185, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i186, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i154 %index41 = phi i64 [ 0, %bb32.i.i.i154 ], [ %index.next113, %vector.body40 ] %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1115, i64 %index41 %288 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1120, i64 %index41 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1125, i64 %index41 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1130, i64 %index41 %291 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1135, i64 %index41 %292 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1140, i64 %index41 %293 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1145, i64 %index41 %294 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1150, i64 %index41 %wide.vec42 = load <8 x double>, ptr %287, align 8, !noalias !3790 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %288, align 8, !noalias !3790 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %289, align 8, !noalias !3790 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %290, align 8, !noalias !3790 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %291, align 8, !noalias !3790 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %292, align 8, !noalias !3790 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %293, align 8, !noalias !3790 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %294, align 8, !noalias !3790 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %295 = fadd <4 x double> %strided.vec43, %strided.vec55 %296 = fadd <4 x double> %strided.vec44, %strided.vec56 %297 = fsub <4 x double> %strided.vec43, %strided.vec55 %298 = fsub <4 x double> %strided.vec44, %strided.vec56 %299 = fadd <4 x double> %strided.vec49, %strided.vec61 %300 = fadd <4 x double> %strided.vec50, %strided.vec62 %301 = fsub <4 x double> %strided.vec49, %strided.vec61 %302 = fsub <4 x double> %strided.vec50, %strided.vec62 %303 = fadd <4 x double> %strided.vec46, %strided.vec58 %304 = fadd <4 x double> %strided.vec47, %strided.vec59 %305 = fsub <4 x double> %strided.vec46, %strided.vec58 %306 = fsub <4 x double> %strided.vec47, %strided.vec59 %307 = fadd <4 x double> %strided.vec52, %strided.vec64 %308 = fadd <4 x double> %strided.vec53, %strided.vec65 %309 = fsub <4 x double> %strided.vec52, %strided.vec64 %310 = fsub <4 x double> %strided.vec53, %strided.vec65 %311 = fadd <4 x double> %295, %299 %312 = fadd <4 x double> %296, %300 %313 = fadd <4 x double> %297, %302 %314 = fsub <4 x double> %298, %301 %315 = fsub <4 x double> %295, %299 %316 = fsub <4 x double> %296, %300 %317 = fsub <4 x double> %297, %302 %318 = fadd <4 x double> %298, %301 %319 = fadd <4 x double> %303, %307 %320 = fadd <4 x double> %304, %308 %321 = fadd <4 x double> %305, %310 %322 = fsub <4 x double> %306, %309 %323 = fadd <4 x double> %322, %321 %324 = fsub <4 x double> %322, %321 %325 = fmul <4 x double> %323, %326 = fmul <4 x double> %324, %327 = fsub <4 x double> %303, %307 %328 = fsub <4 x double> %304, %308 %329 = fsub <4 x double> %305, %310 %330 = fadd <4 x double> %306, %309 %331 = fsub <4 x double> %329, %330 %332 = fadd <4 x double> %330, %329 %333 = fmul <4 x double> %331, %334 = fmul <4 x double> %332, %335 = fadd <4 x double> %311, %319 %336 = fadd <4 x double> %312, %320 %337 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 %index41 %interleaved.vec = shufflevector <4 x double> %335, <4 x double> %336, <8 x i32> store <8 x double> %interleaved.vec, ptr %337, align 8, !noalias !3790 %338 = fadd <4 x double> %313, %325 %339 = fadd <4 x double> %314, %326 %340 = fmul <4 x double> %339, %broadcast.splat %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %338, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat69, %338 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %339, <4 x double> %342) %344 = getelementptr inbounds %"num_complex::Complex", ptr %268, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %341, <4 x double> %343, <8 x i32> store <8 x double> %interleaved.vec70, ptr %344, align 8, !noalias !3790 %345 = fadd <4 x double> %315, %328 %346 = fsub <4 x double> %316, %327 %347 = fmul <4 x double> %346, %broadcast.splat72 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %345, <4 x double> %347) %349 = fmul <4 x double> %broadcast.splat76, %345 %350 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %346, <4 x double> %349) %351 = getelementptr inbounds %"num_complex::Complex", ptr %267, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %348, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec77, ptr %351, align 8, !noalias !3790 %352 = fsub <4 x double> %317, %333 %353 = fsub <4 x double> %318, %334 %354 = fmul <4 x double> %353, %broadcast.splat79 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %352, <4 x double> %354) %356 = fmul <4 x double> %broadcast.splat83, %352 %357 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %353, <4 x double> %356) %358 = getelementptr inbounds %"num_complex::Complex", ptr %269, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %355, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec84, ptr %358, align 8, !noalias !3790 %359 = fsub <4 x double> %311, %319 %360 = fsub <4 x double> %312, %320 %361 = fmul <4 x double> %360, %broadcast.splat86 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %359, <4 x double> %361) %363 = fmul <4 x double> %broadcast.splat90, %359 %364 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %360, <4 x double> %363) %365 = getelementptr inbounds %"num_complex::Complex", ptr %266, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %362, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec91, ptr %365, align 8, !noalias !3790 %366 = fsub <4 x double> %313, %325 %367 = fsub <4 x double> %314, %326 %368 = fmul <4 x double> %367, %broadcast.splat93 %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %366, <4 x double> %368) %370 = fmul <4 x double> %broadcast.splat97, %366 %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %367, <4 x double> %370) %372 = getelementptr inbounds %"num_complex::Complex", ptr %271, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %369, <4 x double> %371, <8 x i32> store <8 x double> %interleaved.vec98, ptr %372, align 8, !noalias !3790 %373 = fsub <4 x double> %315, %328 %374 = fadd <4 x double> %316, %327 %375 = fmul <4 x double> %374, %broadcast.splat100 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %broadcast.splat104, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %374, <4 x double> %377) %379 = getelementptr inbounds %"num_complex::Complex", ptr %270, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %376, <4 x double> %378, <8 x i32> store <8 x double> %interleaved.vec105, ptr %379, align 8, !noalias !3790 %380 = fadd <4 x double> %317, %333 %381 = fadd <4 x double> %318, %334 %382 = fmul <4 x double> %381, %broadcast.splat107 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %380, <4 x double> %382) %384 = fmul <4 x double> %broadcast.splat111, %380 %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %381, <4 x double> %384) %386 = getelementptr inbounds %"num_complex::Complex", ptr %272, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %383, <4 x double> %385, <8 x i32> store <8 x double> %interleaved.vec112, ptr %386, align 8, !noalias !3790 %index.next113 = add nuw i64 %index41, 4 %387 = icmp eq i64 %index.next113, 8 br i1 %387, label %middle.block36, label %vector.body40, !llvm.loop !3798 middle.block36: ; preds = %vector.body40 %388 = add nuw nsw i64 %iter.i.i.i56.sroa.104.0123, 1 %exitcond127.not = icmp eq i64 %388, 4 br i1 %exitcond127.not, label %vector.body118, label %bb32.i.i.i154 "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h5abb7de73f460705E.exit": ; preds = %vector.body118 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3790 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6614edcb417f9413E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3799 store i64 64, ptr %n.i.i, align 8, !noalias !3799 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3799 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3799 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3799 store ptr null, ptr %_16.i.i, align 8, !noalias !3799 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3799 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3799 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3799 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3799 store ptr null, ptr %_24.i.i, align 8, !noalias !3799 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3799 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3799 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3799 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3799 store ptr null, ptr %_32.i.i, align 8, !noalias !3799 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3799 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3799 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3799 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha4ee790aede61fa9E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3799 store ptr null, ptr %_40.i.i, align 8, !noalias !3799 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha4ee790aede61fa9E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3799 tail call void @llvm.experimental.noalias.scope.decl(metadata !3804) tail call void @llvm.experimental.noalias.scope.decl(metadata !3807) tail call void @llvm.experimental.noalias.scope.decl(metadata !3809) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha4ee790aede61fa9E.exit.i" %iter.sroa.22.0124.i.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha4ee790aede61fa9E.exit.i" ], [ %15, %bb9.i.i ] %4 = or disjoint i64 %iter.sroa.22.0124.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0124.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.22.0124.i.i %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3804, !noalias !3811 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3804, !noalias !3811 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !3809, !noalias !3812 %5 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %7 = shufflevector <4 x double> %6, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %10 = fmul <4 x double> %9, %7 %11 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %8, <4 x double> %6, <4 x double> %10) #23 %12 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3807, !noalias !3813 %13 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> %14 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i, i64 1 store <4 x double> %13, ptr %14, align 8, !alias.scope !3807, !noalias !3813 %15 = add nuw nsw i64 %iter.sroa.22.0124.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %a.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !3804, !noalias !3811 %b.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !3804, !noalias !3811 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !3809, !noalias !3812 %16 = fadd <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %17 = fsub <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> store <4 x double> %23, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !3807, !noalias !3813 %24 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %25 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4, i64 1 store <4 x double> %24, ptr %25, align 8, !alias.scope !3807, !noalias !3813 %exitcond.not.i.i.1 = icmp eq i64 %15, 16 br i1 %exitcond.not.i.i.1, label %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i, label %bb9.i.i _ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i: ; preds = %bb9.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3814) tail call void @llvm.experimental.noalias.scope.decl(metadata !3817) tail call void @llvm.experimental.noalias.scope.decl(metadata !3819) %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 br label %bb17.us.i.i bb17.us.i.i: ; preds = %bb17.us.i.i, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i %iter.sroa.38.0207.us.i.i = phi i64 [ 0, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i ], [ %50, %bb17.us.i.i ] %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0207.us.i.i %data.i5.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.38.0207.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %27 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %27, align 8, !alias.scope !3819, !noalias !3821, !noundef !3 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %28, align 8, !alias.scope !3819, !noalias !3821, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %31 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3814, !noalias !3822 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3814, !noalias !3822 %33 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i store <4 x double> %33, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !3817, !noalias !3823 %34 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %32, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %34, <4 x double> %36) #23 store <4 x double> %37, ptr %30, align 8, !alias.scope !3817, !noalias !3823 %38 = or disjoint i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %38 %data.i5.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %38 %start1.i.i.i.i.i.i.us.i.i.1 = shl nuw i64 %38, 1 %data.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i.1 %39 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1 %w1.0.us.i.i.1 = load double, ptr %39, align 8, !alias.scope !3819, !noalias !3821, !noundef !3 %40 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1, i32 1 %w1.1.us.i.i.1 = load double, ptr %40, align 8, !alias.scope !3819, !noalias !3821, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i.1 = insertelement <2 x double> poison, double %w1.0.us.i.i.1, i64 0 %41 = insertelement <4 x double> poison, double %w1.1.us.i.i.1, i64 0 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i.1, i64 1 %43 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i.1, <2 x double> poison, <4 x i32> zeroinitializer %44 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3814, !noalias !3822 %b.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3814, !noalias !3822 %45 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 store <4 x double> %45, ptr %data.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !3817, !noalias !3823 %46 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %44, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %46, <4 x double> %48) #23 store <4 x double> %49, ptr %42, align 8, !alias.scope !3817, !noalias !3823 %50 = add nuw nsw i64 %iter.sroa.38.0207.us.i.i, 2 %exitcond.not.i.1 = icmp eq i64 %50, 16 br i1 %exitcond.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h5fda561623a94ad7E.exit, label %bb17.us.i.i _ZN4pulp3x862V39vectorize6__impl17h5fda561623a94ad7E.exit: ; preds = %bb17.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3824) tail call void @llvm.experimental.noalias.scope.decl(metadata !3827) %51 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i37.i = load double, ptr %51, align 8, !noalias !3799, !noundef !3 %52 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i38.i = load double, ptr %52, align 8, !noalias !3799, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.i = insertelement <2 x double> poison, double %w1.0.us.i37.i, i64 0 %53 = insertelement <4 x double> poison, double %w1.1.us.i38.i, i64 0 %54 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %55 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.i, <2 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.i = load <4 x double>, ptr %2, align 8, !alias.scope !3824, !noalias !3829 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.i, %b.sroa.0.0.copyload.us.i47.i %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.i, %b.sroa.0.0.copyload.us.i47.i %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %56, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %58, <4 x double> %60) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %a.sroa.0.0.copyload.us.i46.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.i, align 8, !alias.scope !3824, !noalias !3829 %62 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.i, %b.sroa.0.0.copyload.us.i47.1.i %63 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.i, %b.sroa.0.0.copyload.us.i47.1.i %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %56, %64 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %63, <4 x double> %65) #23 %data.i.i.i.i.i.i.i.i.us.i33.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %data.i5.i.i.i.i.i.i.i.us.i34.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %data.i.i.i.i.i.i.us.i36.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %67 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i37.1.i = load double, ptr %67, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %68 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i38.1.i = load double, ptr %68, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.1.i = insertelement <2 x double> poison, double %w1.0.us.i37.1.i, i64 0 %69 = insertelement <4 x double> poison, double %w1.1.us.i38.1.i, i64 0 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %71 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.1.i, <2 x double> poison, <4 x i32> zeroinitializer %72 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.1163.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.1.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1164.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.1.i, align 8, !alias.scope !3824, !noalias !3829 %73 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1163.i, %b.sroa.0.0.copyload.us.i47.1164.i %74 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1163.i, %b.sroa.0.0.copyload.us.i47.1164.i %75 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> %76 = fmul <4 x double> %72, %75 %77 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %71, <4 x double> %74, <4 x double> %76) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i43.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.i.i.us.i44.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.us.i45.1.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %a.sroa.0.0.copyload.us.i46.1.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.1.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.1.i, align 8, !alias.scope !3824, !noalias !3829 %78 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.1.i, %b.sroa.0.0.copyload.us.i47.1.1.i %79 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.1.i, %b.sroa.0.0.copyload.us.i47.1.1.i %80 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %72, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %71, <4 x double> %79, <4 x double> %81) #23 %data.i.i.i.i.i.i.i.i.us.i33.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %data.i5.i.i.i.i.i.i.i.us.i34.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %data.i.i.i.i.i.i.us.i36.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %83 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.us.i37.2.i = load double, ptr %83, align 8, !noalias !3799, !noundef !3 %84 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.us.i38.2.i = load double, ptr %84, align 8, !noalias !3799, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.2.i = insertelement <2 x double> poison, double %w1.0.us.i37.2.i, i64 0 %85 = insertelement <4 x double> poison, double %w1.1.us.i38.2.i, i64 0 %86 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %87 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.2.i, <2 x double> poison, <4 x i32> zeroinitializer %88 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.2.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.2.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.2.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.2.i, align 8, !alias.scope !3824, !noalias !3829 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.2.i, %b.sroa.0.0.copyload.us.i47.2.i %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.2.i, %b.sroa.0.0.copyload.us.i47.2.i %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %88, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %90, <4 x double> %92) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i43.1.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.i.i.us.i44.1.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.us.i45.1.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %a.sroa.0.0.copyload.us.i46.1.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.2.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.2.i, align 8, !alias.scope !3824, !noalias !3829 %94 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.2.i, %b.sroa.0.0.copyload.us.i47.1.2.i %95 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.2.i, %b.sroa.0.0.copyload.us.i47.1.2.i %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %88, %96 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %95, <4 x double> %97) #23 %data.i.i.i.i.i.i.i.i.us.i33.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %data.i5.i.i.i.i.i.i.i.us.i34.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %data.i.i.i.i.i.i.us.i36.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %99 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.us.i37.3.i = load double, ptr %99, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %100 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.us.i38.3.i = load double, ptr %100, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.3.i = insertelement <2 x double> poison, double %w1.0.us.i37.3.i, i64 0 %101 = insertelement <4 x double> poison, double %w1.1.us.i38.3.i, i64 0 %102 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %103 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.3.i, <2 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <4 x double> %101, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.3.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.3.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.3.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.3.i, align 8, !alias.scope !3824, !noalias !3829 %105 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.3.i, %b.sroa.0.0.copyload.us.i47.3.i %106 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.3.i, %b.sroa.0.0.copyload.us.i47.3.i %107 = shufflevector <4 x double> %106, <4 x double> poison, <4 x i32> %108 = fmul <4 x double> %104, %107 %109 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %103, <4 x double> %106, <4 x double> %108) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i43.1.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.i.i.us.i44.1.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.us.i45.1.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %a.sroa.0.0.copyload.us.i46.1.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.3.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.3.i, align 8, !alias.scope !3824, !noalias !3829 %110 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.3.i, %b.sroa.0.0.copyload.us.i47.1.3.i %111 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.3.i, %b.sroa.0.0.copyload.us.i47.1.3.i %112 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> %113 = fmul <4 x double> %104, %112 %114 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %103, <4 x double> %111, <4 x double> %113) #23 %data.i.i.i.i.i.i.i.i.us.i33.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i.us.i34.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %115 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i37.4.i = load double, ptr %115, align 8, !noalias !3799, !noundef !3 %116 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i38.4.i = load double, ptr %116, align 8, !noalias !3799, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.4.i = insertelement <2 x double> poison, double %w1.0.us.i37.4.i, i64 0 %117 = insertelement <4 x double> poison, double %w1.1.us.i38.4.i, i64 0 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 18 %119 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.4.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.4.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.4.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.4.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.4.i, align 8, !alias.scope !3824, !noalias !3829 %121 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.4.i, %b.sroa.0.0.copyload.us.i47.4.i %122 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.4.i, %b.sroa.0.0.copyload.us.i47.4.i %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %120, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %122, <4 x double> %124) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i43.1.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_3.i.i.i.i.i.i.us.i44.1.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 17 %_3.i.i.i.i.us.i45.1.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 19 %a.sroa.0.0.copyload.us.i46.1.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.4.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.4.i, align 8, !alias.scope !3824, !noalias !3829 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.4.i, %b.sroa.0.0.copyload.us.i47.1.4.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.4.i, %b.sroa.0.0.copyload.us.i47.1.4.i %128 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %120, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %127, <4 x double> %129) #23 %data.i.i.i.i.i.i.i.i.us.i33.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %data.i5.i.i.i.i.i.i.i.us.i34.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %data.i.i.i.i.i.i.us.i36.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %131 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1 %w1.0.us.i37.5.i = load double, ptr %131, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %132 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1, i32 1 %w1.1.us.i38.5.i = load double, ptr %132, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.5.i = insertelement <2 x double> poison, double %w1.0.us.i37.5.i, i64 0 %133 = insertelement <4 x double> poison, double %w1.1.us.i38.5.i, i64 0 %134 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 22 %135 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.5.i, <2 x double> poison, <4 x i32> zeroinitializer %136 = shufflevector <4 x double> %133, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.5.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.5.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.5.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.5.i, align 8, !alias.scope !3824, !noalias !3829 %137 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.5.i, %b.sroa.0.0.copyload.us.i47.5.i %138 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.5.i, %b.sroa.0.0.copyload.us.i47.5.i %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %136, %139 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %135, <4 x double> %138, <4 x double> %140) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i43.1.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_3.i.i.i.i.i.i.us.i44.1.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 21 %_3.i.i.i.i.us.i45.1.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 23 %a.sroa.0.0.copyload.us.i46.1.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.5.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.5.i, align 8, !alias.scope !3824, !noalias !3829 %142 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.5.i, %b.sroa.0.0.copyload.us.i47.1.5.i %143 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.5.i, %b.sroa.0.0.copyload.us.i47.1.5.i %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %136, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %135, <4 x double> %143, <4 x double> %145) #23 %data.i.i.i.i.i.i.i.i.us.i33.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %data.i5.i.i.i.i.i.i.i.us.i34.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %data.i.i.i.i.i.i.us.i36.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %147 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.us.i37.6.i = load double, ptr %147, align 8, !noalias !3799, !noundef !3 %148 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.us.i38.6.i = load double, ptr %148, align 8, !noalias !3799, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.6.i = insertelement <2 x double> poison, double %w1.0.us.i37.6.i, i64 0 %149 = insertelement <4 x double> poison, double %w1.1.us.i38.6.i, i64 0 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 26 %151 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.6.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.6.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.6.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.6.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.6.i, align 8, !alias.scope !3824, !noalias !3829 %153 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.6.i, %b.sroa.0.0.copyload.us.i47.6.i %154 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.6.i, %b.sroa.0.0.copyload.us.i47.6.i %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %152, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %154, <4 x double> %156) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i43.1.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_3.i.i.i.i.i.i.us.i44.1.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 25 %_3.i.i.i.i.us.i45.1.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 27 %a.sroa.0.0.copyload.us.i46.1.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.6.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.6.i, align 8, !alias.scope !3824, !noalias !3829 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.6.i, %b.sroa.0.0.copyload.us.i47.1.6.i %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.6.i, %b.sroa.0.0.copyload.us.i47.1.6.i %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %152, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %159, <4 x double> %161) #23 %data.i.i.i.i.i.i.i.i.us.i33.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %data.i5.i.i.i.i.i.i.i.us.i34.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %data.i.i.i.i.i.i.us.i36.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %163 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.us.i37.7.i = load double, ptr %163, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %164 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.us.i38.7.i = load double, ptr %164, align 8, !alias.scope !3827, !noalias !3831, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.7.i = insertelement <2 x double> poison, double %w1.0.us.i37.7.i, i64 0 %165 = insertelement <4 x double> poison, double %w1.1.us.i38.7.i, i64 0 %166 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 30 %167 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.7.i, <2 x double> poison, <4 x i32> zeroinitializer %168 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.7.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.7.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.7.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.7.i, align 8, !alias.scope !3824, !noalias !3829 %169 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.7.i, %b.sroa.0.0.copyload.us.i47.7.i %170 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.7.i, %b.sroa.0.0.copyload.us.i47.7.i %171 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %168, %171 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %167, <4 x double> %170, <4 x double> %172) #23 %_3.i.i.i.i.i.i.i.i.us.i42.1.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i43.1.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_3.i.i.i.i.i.i.us.i44.1.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 29 %_3.i.i.i.i.us.i45.1.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 31 %a.sroa.0.0.copyload.us.i46.1.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.7.i, align 8, !alias.scope !3824, !noalias !3829 %b.sroa.0.0.copyload.us.i47.1.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.7.i, align 8, !alias.scope !3824, !noalias !3829 %174 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.7.i, %b.sroa.0.0.copyload.us.i47.1.7.i %175 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.7.i, %b.sroa.0.0.copyload.us.i47.1.7.i %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %168, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %167, <4 x double> %175, <4 x double> %177) #23 %179 = fadd <4 x double> %57, %121 %180 = fsub <4 x double> %57, %121 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %56, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %180, <4 x double> %182) #23 %184 = fadd <4 x double> %62, %126 %185 = fsub <4 x double> %62, %126 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %56, %186 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %185, <4 x double> %187) #23 %189 = fadd <4 x double> %61, %125 %190 = fsub <4 x double> %61, %125 %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %192 = fmul <4 x double> %56, %191 %193 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %190, <4 x double> %192) #23 %194 = fadd <4 x double> %66, %130 %195 = fsub <4 x double> %66, %130 %196 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %56, %196 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %195, <4 x double> %197) #23 %199 = fadd <4 x double> %73, %137 %200 = fsub <4 x double> %73, %137 %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %88, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %200, <4 x double> %202) #23 %204 = fadd <4 x double> %78, %142 %205 = fsub <4 x double> %78, %142 %206 = shufflevector <4 x double> %205, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %88, %206 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %205, <4 x double> %207) #23 %209 = fadd <4 x double> %77, %141 %210 = fsub <4 x double> %77, %141 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %88, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %210, <4 x double> %212) #23 %214 = fadd <4 x double> %82, %146 %215 = fsub <4 x double> %82, %146 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %88, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %87, <4 x double> %215, <4 x double> %217) #23 %219 = fadd <4 x double> %89, %153 %220 = fsub <4 x double> %89, %153 %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %120, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %220, <4 x double> %222) #23 %224 = fadd <4 x double> %94, %158 %225 = fsub <4 x double> %94, %158 %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %120, %226 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %225, <4 x double> %227) #23 %229 = fadd <4 x double> %93, %157 %230 = fsub <4 x double> %93, %157 %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %120, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %230, <4 x double> %232) #23 %234 = fadd <4 x double> %98, %162 %235 = fsub <4 x double> %98, %162 %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %120, %236 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %235, <4 x double> %237) #23 %239 = fadd <4 x double> %105, %169 %240 = fsub <4 x double> %105, %169 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = fmul <4 x double> %152, %241 %243 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %240, <4 x double> %242) #23 %244 = fadd <4 x double> %110, %174 %245 = fsub <4 x double> %110, %174 %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = fmul <4 x double> %152, %246 %248 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %245, <4 x double> %247) #23 %249 = fadd <4 x double> %109, %173 %250 = fsub <4 x double> %109, %173 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fmul <4 x double> %152, %251 %253 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %250, <4 x double> %252) #23 %254 = fadd <4 x double> %114, %178 %255 = fsub <4 x double> %114, %178 %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %152, %256 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %255, <4 x double> %257) #23 %259 = fadd <4 x double> %179, %219 store <4 x double> %259, ptr %scratch.0, align 8, !alias.scope !3832, !noalias !3835 %260 = fsub <4 x double> %179, %219 %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fmul <4 x double> %56, %261 %263 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %260, <4 x double> %262) #23 store <4 x double> %263, ptr %data.i.i.i.i.i.i.us.i36.2.i, align 8, !alias.scope !3832, !noalias !3835 %264 = fadd <4 x double> %184, %224 store <4 x double> %264, ptr %_3.i.i.i.i.i.i.us.i44.1.i, align 8, !alias.scope !3832, !noalias !3835 %265 = fsub <4 x double> %184, %224 %266 = shufflevector <4 x double> %265, <4 x double> poison, <4 x i32> %267 = fmul <4 x double> %56, %266 %268 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %265, <4 x double> %267) #23 store <4 x double> %268, ptr %_3.i.i.i.i.i.i.us.i44.1.2.i, align 8, !alias.scope !3832, !noalias !3835 %269 = fadd <4 x double> %189, %229 store <4 x double> %269, ptr %54, align 8, !alias.scope !3832, !noalias !3835 %270 = fsub <4 x double> %189, %229 %271 = shufflevector <4 x double> %270, <4 x double> poison, <4 x i32> %272 = fmul <4 x double> %56, %271 %273 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %270, <4 x double> %272) #23 store <4 x double> %273, ptr %86, align 8, !alias.scope !3832, !noalias !3835 %274 = fadd <4 x double> %194, %234 store <4 x double> %274, ptr %_3.i.i.i.i.us.i45.1.i, align 8, !alias.scope !3832, !noalias !3835 %275 = fsub <4 x double> %194, %234 %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = fmul <4 x double> %56, %276 %278 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %275, <4 x double> %277) #23 store <4 x double> %278, ptr %_3.i.i.i.i.us.i45.1.2.i, align 8, !alias.scope !3832, !noalias !3835 %279 = fadd <4 x double> %183, %223 store <4 x double> %279, ptr %data.i.i.i.i.i.i.us.i36.1.i, align 8, !alias.scope !3832, !noalias !3835 %280 = fsub <4 x double> %183, %223 %281 = shufflevector <4 x double> %280, <4 x double> poison, <4 x i32> %282 = fmul <4 x double> %56, %281 %283 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %280, <4 x double> %282) #23 store <4 x double> %283, ptr %data.i.i.i.i.i.i.us.i36.3.i, align 8, !alias.scope !3832, !noalias !3835 %284 = fadd <4 x double> %188, %228 store <4 x double> %284, ptr %_3.i.i.i.i.i.i.us.i44.1.1.i, align 8, !alias.scope !3832, !noalias !3835 %285 = fsub <4 x double> %188, %228 %286 = shufflevector <4 x double> %285, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %56, %286 %288 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %285, <4 x double> %287) #23 store <4 x double> %288, ptr %_3.i.i.i.i.i.i.us.i44.1.3.i, align 8, !alias.scope !3832, !noalias !3835 %289 = fadd <4 x double> %193, %233 store <4 x double> %289, ptr %70, align 8, !alias.scope !3832, !noalias !3835 %290 = fsub <4 x double> %193, %233 %291 = shufflevector <4 x double> %290, <4 x double> poison, <4 x i32> %292 = fmul <4 x double> %56, %291 %293 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %290, <4 x double> %292) #23 store <4 x double> %293, ptr %102, align 8, !alias.scope !3832, !noalias !3835 %294 = fadd <4 x double> %198, %238 store <4 x double> %294, ptr %_3.i.i.i.i.us.i45.1.1.i, align 8, !alias.scope !3832, !noalias !3835 %295 = fsub <4 x double> %198, %238 %296 = shufflevector <4 x double> %295, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %56, %296 %298 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %295, <4 x double> %297) #23 store <4 x double> %298, ptr %_3.i.i.i.i.us.i45.1.3.i, align 8, !alias.scope !3832, !noalias !3835 %299 = fadd <4 x double> %199, %239 store <4 x double> %299, ptr %26, align 8, !alias.scope !3832, !noalias !3835 %300 = fsub <4 x double> %199, %239 %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fmul <4 x double> %120, %301 %303 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %300, <4 x double> %302) #23 store <4 x double> %303, ptr %data.i.i.i.i.i.i.us.i36.6.i, align 8, !alias.scope !3832, !noalias !3835 %304 = fadd <4 x double> %204, %244 store <4 x double> %304, ptr %_3.i.i.i.i.i.i.us.i44.1.4.i, align 8, !alias.scope !3832, !noalias !3835 %305 = fsub <4 x double> %204, %244 %306 = shufflevector <4 x double> %305, <4 x double> poison, <4 x i32> %307 = fmul <4 x double> %120, %306 %308 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %305, <4 x double> %307) #23 store <4 x double> %308, ptr %_3.i.i.i.i.i.i.us.i44.1.6.i, align 8, !alias.scope !3832, !noalias !3835 %309 = fadd <4 x double> %209, %249 store <4 x double> %309, ptr %118, align 8, !alias.scope !3832, !noalias !3835 %310 = fsub <4 x double> %209, %249 %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = fmul <4 x double> %120, %311 %313 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %310, <4 x double> %312) #23 store <4 x double> %313, ptr %150, align 8, !alias.scope !3832, !noalias !3835 %314 = fadd <4 x double> %214, %254 store <4 x double> %314, ptr %_3.i.i.i.i.us.i45.1.4.i, align 8, !alias.scope !3832, !noalias !3835 %315 = fsub <4 x double> %214, %254 %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fmul <4 x double> %120, %316 %318 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %315, <4 x double> %317) #23 store <4 x double> %318, ptr %_3.i.i.i.i.us.i45.1.6.i, align 8, !alias.scope !3832, !noalias !3835 %319 = fadd <4 x double> %203, %243 store <4 x double> %319, ptr %data.i.i.i.i.i.i.us.i36.5.i, align 8, !alias.scope !3832, !noalias !3835 %320 = fsub <4 x double> %203, %243 %321 = shufflevector <4 x double> %320, <4 x double> poison, <4 x i32> %322 = fmul <4 x double> %120, %321 %323 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %320, <4 x double> %322) #23 store <4 x double> %323, ptr %data.i.i.i.i.i.i.us.i36.7.i, align 8, !alias.scope !3832, !noalias !3835 %324 = fadd <4 x double> %208, %248 store <4 x double> %324, ptr %_3.i.i.i.i.i.i.us.i44.1.5.i, align 8, !alias.scope !3832, !noalias !3835 %325 = fsub <4 x double> %208, %248 %326 = shufflevector <4 x double> %325, <4 x double> poison, <4 x i32> %327 = fmul <4 x double> %120, %326 %328 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %325, <4 x double> %327) #23 store <4 x double> %328, ptr %_3.i.i.i.i.i.i.us.i44.1.7.i, align 8, !alias.scope !3832, !noalias !3835 %329 = fadd <4 x double> %213, %253 store <4 x double> %329, ptr %134, align 8, !alias.scope !3832, !noalias !3835 %330 = fsub <4 x double> %213, %253 %331 = shufflevector <4 x double> %330, <4 x double> poison, <4 x i32> %332 = fmul <4 x double> %120, %331 %333 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %330, <4 x double> %332) #23 store <4 x double> %333, ptr %166, align 8, !alias.scope !3832, !noalias !3835 %334 = fadd <4 x double> %218, %258 store <4 x double> %334, ptr %_3.i.i.i.i.us.i45.1.5.i, align 8, !alias.scope !3832, !noalias !3835 %335 = fsub <4 x double> %218, %258 %336 = shufflevector <4 x double> %335, <4 x double> poison, <4 x i32> %337 = fmul <4 x double> %120, %336 %338 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %335, <4 x double> %337) #23 store <4 x double> %338, ptr %_3.i.i.i.i.us.i45.1.7.i, align 8, !alias.scope !3832, !noalias !3835 %339 = fadd <4 x double> %259, %299 %340 = fsub <4 x double> %259, %299 store <4 x double> %339, ptr %buf.0, align 8, !noalias !3799 store <4 x double> %340, ptr %2, align 8, !noalias !3799 %341 = fadd <4 x double> %264, %304 %342 = fsub <4 x double> %264, %304 store <4 x double> %341, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.i, align 8, !noalias !3799 store <4 x double> %342, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.i, align 8, !noalias !3799 %343 = fadd <4 x double> %269, %309 %344 = fsub <4 x double> %269, %309 store <4 x double> %343, ptr %data.i.i.i.i.i.i.i.i.us.i33.1.i, align 8, !noalias !3799 store <4 x double> %344, ptr %data.i5.i.i.i.i.i.i.i.us.i34.1.i, align 8, !noalias !3799 %345 = fadd <4 x double> %274, %314 %346 = fsub <4 x double> %274, %314 store <4 x double> %345, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.1.i, align 8, !noalias !3799 store <4 x double> %346, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.1.i, align 8, !noalias !3799 %347 = fadd <4 x double> %279, %319 %348 = fsub <4 x double> %279, %319 store <4 x double> %347, ptr %data.i.i.i.i.i.i.i.i.us.i33.2.i, align 8, !noalias !3799 store <4 x double> %348, ptr %data.i5.i.i.i.i.i.i.i.us.i34.2.i, align 8, !noalias !3799 %349 = fadd <4 x double> %284, %324 %350 = fsub <4 x double> %284, %324 store <4 x double> %349, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.2.i, align 8, !noalias !3799 store <4 x double> %350, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.2.i, align 8, !noalias !3799 %351 = fadd <4 x double> %289, %329 %352 = fsub <4 x double> %289, %329 store <4 x double> %351, ptr %data.i.i.i.i.i.i.i.i.us.i33.3.i, align 8, !noalias !3799 store <4 x double> %352, ptr %data.i5.i.i.i.i.i.i.i.us.i34.3.i, align 8, !noalias !3799 %353 = fadd <4 x double> %294, %334 %354 = fsub <4 x double> %294, %334 store <4 x double> %353, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.3.i, align 8, !noalias !3799 store <4 x double> %354, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.3.i, align 8, !noalias !3799 %355 = fadd <4 x double> %263, %303 %356 = fsub <4 x double> %263, %303 store <4 x double> %355, ptr %data.i.i.i.i.i.i.i.i.us.i33.4.i, align 8, !noalias !3799 store <4 x double> %356, ptr %data.i5.i.i.i.i.i.i.i.us.i34.4.i, align 8, !noalias !3799 %357 = fadd <4 x double> %268, %308 %358 = fsub <4 x double> %268, %308 store <4 x double> %357, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.4.i, align 8, !noalias !3799 store <4 x double> %358, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.4.i, align 8, !noalias !3799 %359 = fadd <4 x double> %273, %313 %360 = fsub <4 x double> %273, %313 store <4 x double> %359, ptr %data.i.i.i.i.i.i.i.i.us.i33.5.i, align 8, !noalias !3799 store <4 x double> %360, ptr %data.i5.i.i.i.i.i.i.i.us.i34.5.i, align 8, !noalias !3799 %361 = fadd <4 x double> %278, %318 %362 = fsub <4 x double> %278, %318 store <4 x double> %361, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.5.i, align 8, !noalias !3799 store <4 x double> %362, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.5.i, align 8, !noalias !3799 %363 = fadd <4 x double> %283, %323 %364 = fsub <4 x double> %283, %323 store <4 x double> %363, ptr %data.i.i.i.i.i.i.i.i.us.i33.6.i, align 8, !noalias !3799 store <4 x double> %364, ptr %data.i5.i.i.i.i.i.i.i.us.i34.6.i, align 8, !noalias !3799 %365 = fadd <4 x double> %288, %328 %366 = fsub <4 x double> %288, %328 store <4 x double> %365, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.6.i, align 8, !noalias !3799 store <4 x double> %366, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.6.i, align 8, !noalias !3799 %367 = fadd <4 x double> %293, %333 %368 = fsub <4 x double> %293, %333 store <4 x double> %367, ptr %data.i.i.i.i.i.i.i.i.us.i33.7.i, align 8, !noalias !3799 store <4 x double> %368, ptr %data.i5.i.i.i.i.i.i.i.us.i34.7.i, align 8, !noalias !3799 %369 = fadd <4 x double> %298, %338 %370 = fsub <4 x double> %298, %338 store <4 x double> %369, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.7.i, align 8, !noalias !3799 store <4 x double> %370, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.7.i, align 8, !noalias !3799 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3799 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h67606ca2ea1bfbb5E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3838 store i64 16, ptr %n.i, align 8, !noalias !3838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3838 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3838 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3838 store ptr null, ptr %_16.i, align 8, !noalias !3838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3838 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3838 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3838 store ptr null, ptr %_24.i, align 8, !noalias !3838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3838 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3838 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3838 store ptr null, ptr %_32.i, align 8, !noalias !3838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3838 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3838 store i64 %w.1, ptr %_34.i, align 8, !noalias !3838 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3838 store ptr null, ptr %_40.i, align 8, !noalias !3838 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3838 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %7, align 8, !noalias !3838, !noundef !3 %8 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %8, align 8, !noalias !3838, !noundef !3 %9 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i = load double, ptr %9, align 8, !noalias !3838, !noundef !3 %10 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %10, align 8, !noalias !3838, !noundef !3 %11 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i = load double, ptr %11, align 8, !noalias !3838, !noundef !3 %12 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %12, align 8, !noalias !3838, !noundef !3 %13 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 4 %w4.0.i.i.i = load double, ptr %13, align 8, !noalias !3838, !noundef !3 %14 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 4, i32 1 %w4.1.i.i.i = load double, ptr %14, align 8, !noalias !3838, !noundef !3 %15 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 5 %w5.0.i.i.i = load double, ptr %15, align 8, !noalias !3838, !noundef !3 %16 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 5, i32 1 %w5.1.i.i.i = load double, ptr %16, align 8, !noalias !3838, !noundef !3 %17 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 6 %w6.0.i.i.i = load double, ptr %17, align 8, !noalias !3838, !noundef !3 %18 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 6, i32 1 %w6.1.i.i.i = load double, ptr %18, align 8, !noalias !3838, !noundef !3 %19 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 7 %w7.0.i.i.i = load double, ptr %19, align 8, !noalias !3838, !noundef !3 %20 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 7, i32 1 %w7.1.i.i.i = load double, ptr %20, align 8, !noalias !3838, !noundef !3 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %22 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i181.i.i.i = fneg double %w1.1.i.i.i %_6.i178.i.i.i = fneg double %w2.1.i.i.i %_6.i175.i.i.i = fneg double %w3.1.i.i.i %_6.i172.i.i.i = fneg double %w4.1.i.i.i %_6.i169.i.i.i = fneg double %w5.1.i.i.i %_6.i166.i.i.i = fneg double %w6.1.i.i.i %_6.i.i.i.i = fneg double %w7.1.i.i.i %27 = load <2 x double>, ptr %buf.0, align 8, !noalias !3838 %28 = load <2 x double>, ptr %5, align 8, !noalias !3838 %29 = load <2 x double>, ptr %6, align 8, !noalias !3838 %30 = load <2 x double>, ptr %4, align 8, !noalias !3838 %31 = load <2 x double>, ptr %0, align 8, !noalias !3838 %32 = load <2 x double>, ptr %2, align 8, !noalias !3838 %33 = load <2 x double>, ptr %3, align 8, !noalias !3838 %34 = load <2 x double>, ptr %1, align 8, !noalias !3838 %35 = fadd <2 x double> %27, %31 %36 = fadd <2 x double> %29, %33 %37 = fadd <2 x double> %28, %32 %38 = fsub <2 x double> %28, %32 %_0.i.i405 = extractelement <2 x double> %38, i64 0 %39 = fsub <2 x double> %28, %32 %_0.i3.i406 = extractelement <2 x double> %39, i64 1 %40 = fadd <2 x double> %30, %34 %41 = fsub <2 x double> %30, %34 %_0.i.i409 = extractelement <2 x double> %41, i64 0 %42 = fsub <2 x double> %30, %34 %_0.i3.i410 = extractelement <2 x double> %42, i64 1 %43 = fadd <2 x double> %35, %36 %44 = fadd <2 x double> %37, %40 %_0.i.i421 = fadd double %_0.i.i405, %_0.i3.i410 %_0.i3.i422 = fsub double %_0.i3.i406, %_0.i.i409 %_0.i.i423 = fadd double %_0.i3.i422, %_0.i.i421 %_0.i3.i424 = fsub double %_0.i3.i422, %_0.i.i421 %_4.i.i.i.i = fmul double %_0.i.i423, 0x3FE6A09E667F3BCD %_7.i.i.i.i = fmul double %_0.i3.i424, 0x3FE6A09E667F3BCD %_0.i.i427 = fsub double %_0.i.i405, %_0.i3.i410 %_0.i3.i428 = fadd double %_0.i3.i406, %_0.i.i409 %45 = fadd <2 x double> %43, %44 store <2 x double> %45, ptr %scratch.0, align 8, !noalias !3838 %46 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1, i32 1 %47 = fsub <2 x double> %35, %36 %48 = fsub <2 x double> %37, %40 %49 = shufflevector <2 x double> %48, <2 x double> poison, <2 x i32> %50 = fadd <2 x double> %47, %49 %51 = fsub <2 x double> %47, %49 %52 = shufflevector <2 x double> %50, <2 x double> %51, <2 x i32> %53 = shufflevector <2 x double> %52, <2 x double> poison, <2 x i32> %54 = insertelement <2 x double> poison, double %_6.i178.i.i.i, i64 0 %55 = insertelement <2 x double> %54, double %w2.1.i.i.i, i64 1 %56 = fmul <2 x double> %53, %55 %57 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %58 = shufflevector <2 x double> %57, <2 x double> poison, <2 x i32> zeroinitializer %59 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %58, <2 x double> %52, <2 x double> %56) store <2 x double> %59, ptr %21, align 8, !noalias !3838 %60 = insertelement <4 x double> poison, double %_6.i175.i.i.i, i64 0 %61 = insertelement <4 x double> %60, double %w3.1.i.i.i, i64 1 %62 = insertelement <4 x double> %61, double %_6.i172.i.i.i, i64 2 %63 = insertelement <4 x double> %62, double %w4.1.i.i.i, i64 3 %64 = insertelement <4 x double> poison, double %w3.0.i.i.i, i64 0 %65 = insertelement <4 x double> %64, double %w4.0.i.i.i, i64 1 %66 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> %67 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5, i32 1 %68 = shufflevector <2 x double> %51, <2 x double> %50, <2 x i32> %69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> %70 = insertelement <2 x double> poison, double %_6.i166.i.i.i, i64 0 %71 = insertelement <2 x double> %70, double %w6.1.i.i.i, i64 1 %72 = fmul <2 x double> %69, %71 %73 = insertelement <2 x double> poison, double %w6.0.i.i.i, i64 0 %74 = shufflevector <2 x double> %73, <2 x double> poison, <2 x i32> zeroinitializer %75 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %74, <2 x double> %68, <2 x double> %72) store <2 x double> %75, ptr %24, align 8, !noalias !3838 %76 = fsub <2 x double> %27, %31 %77 = fsub <2 x double> %29, %33 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = fadd <2 x double> %76, %78 %_0.i.i413 = extractelement <2 x double> %79, i64 0 %80 = fsub <2 x double> %76, %78 %_0.i3.i414 = extractelement <2 x double> %80, i64 1 %81 = fsub <2 x double> %76, %78 %82 = fadd <2 x double> %76, %78 %83 = shufflevector <2 x double> %81, <2 x double> %82, <2 x i32> %84 = insertelement <2 x double> poison, double %_0.i.i427, i64 0 %85 = insertelement <2 x double> poison, double %_0.i.i427, i64 0 %86 = insertelement <2 x double> poison, double %_0.i3.i428, i64 0 %87 = insertelement <2 x double> poison, double %_0.i3.i428, i64 0 %88 = fsub <2 x double> %85, %87 %89 = fadd <2 x double> %84, %86 %90 = shufflevector <2 x double> %88, <2 x double> %89, <2 x i32> %91 = fmul <2 x double> %90, %_0.i.i433 = fadd double %_0.i.i413, %_4.i.i.i.i %_0.i3.i434 = fadd double %_0.i3.i414, %_7.i.i.i.i %b.i182.i.i.i = fmul double %_0.i3.i434, %_6.i181.i.i.i %92 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_0.i.i433, double %b.i182.i.i.i) %b1.i183.i.i.i = fmul double %w1.1.i.i.i, %_0.i.i433 %93 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_0.i3.i434, double %b1.i183.i.i.i) store double %92, ptr %22, align 8, !noalias !3838 store double %93, ptr %46, align 8, !noalias !3838 %94 = shufflevector <2 x double> %43, <2 x double> %83, <4 x i32> %95 = shufflevector <2 x double> %44, <2 x double> %91, <4 x i32> %96 = fsub <4 x double> %94, %95 %97 = shufflevector <4 x double> %96, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %63 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %66, <4 x double> %96, <4 x double> %98) store <4 x double> %99, ptr %23, align 8, !noalias !3838 %_0.i.i441 = fsub double %_0.i.i413, %_4.i.i.i.i %_0.i3.i442 = fsub double %_0.i3.i414, %_7.i.i.i.i %b.i170.i.i.i = fmul double %_0.i3.i442, %_6.i169.i.i.i %100 = tail call double @llvm.fma.f64(double %w5.0.i.i.i, double %_0.i.i441, double %b.i170.i.i.i) %b1.i171.i.i.i = fmul double %w5.1.i.i.i, %_0.i.i441 %101 = tail call double @llvm.fma.f64(double %w5.0.i.i.i, double %_0.i3.i442, double %b1.i171.i.i.i) store double %100, ptr %25, align 8, !noalias !3838 store double %101, ptr %67, align 8, !noalias !3838 %102 = fadd <2 x double> %83, %91 %103 = shufflevector <2 x double> %102, <2 x double> poison, <2 x i32> %104 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %105 = insertelement <2 x double> %104, double %w7.1.i.i.i, i64 1 %106 = fmul <2 x double> %103, %105 %107 = insertelement <2 x double> poison, double %w7.0.i.i.i, i64 0 %108 = shufflevector <2 x double> %107, <2 x double> poison, <2 x i32> zeroinitializer %109 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %108, <2 x double> %102, <2 x double> %106) store <2 x double> %109, ptr %26, align 8, !noalias !3838 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %110 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.i.1 = load double, ptr %110, align 8, !noalias !3838, !noundef !3 %111 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %111, align 8, !noalias !3838, !noundef !3 %112 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2 %w2.0.i.i.i.1 = load double, ptr %112, align 8, !noalias !3838, !noundef !3 %113 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %113, align 8, !noalias !3838, !noundef !3 %114 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3 %w3.0.i.i.i.1 = load double, ptr %114, align 8, !noalias !3838, !noundef !3 %115 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %115, align 8, !noalias !3838, !noundef !3 %116 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 4 %w4.0.i.i.i.1 = load double, ptr %116, align 8, !noalias !3838, !noundef !3 %117 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 4, i32 1 %w4.1.i.i.i.1 = load double, ptr %117, align 8, !noalias !3838, !noundef !3 %118 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 5 %w5.0.i.i.i.1 = load double, ptr %118, align 8, !noalias !3838, !noundef !3 %119 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 5, i32 1 %w5.1.i.i.i.1 = load double, ptr %119, align 8, !noalias !3838, !noundef !3 %120 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 6 %w6.0.i.i.i.1 = load double, ptr %120, align 8, !noalias !3838, !noundef !3 %121 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 6, i32 1 %w6.1.i.i.i.1 = load double, ptr %121, align 8, !noalias !3838, !noundef !3 %122 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 7 %w7.0.i.i.i.1 = load double, ptr %122, align 8, !noalias !3838, !noundef !3 %123 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 7, i32 1 %w7.1.i.i.i.1 = load double, ptr %123, align 8, !noalias !3838, !noundef !3 %124 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %125 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %126 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %127 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %128 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %129 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_6.i181.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i178.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i175.i.i.i.1 = fneg double %w3.1.i.i.i.1 %_6.i172.i.i.i.1 = fneg double %w4.1.i.i.i.1 %_6.i169.i.i.i.1 = fneg double %w5.1.i.i.i.1 %_6.i166.i.i.i.1 = fneg double %w6.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w7.1.i.i.i.1 %130 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %131 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %132 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %133 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %134 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %135 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %136 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %137 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !3838 %138 = fadd <2 x double> %130, %134 %139 = fadd <2 x double> %132, %136 %140 = fadd <2 x double> %131, %135 %141 = fsub <2 x double> %131, %135 %_0.i.i405.1 = extractelement <2 x double> %141, i64 0 %142 = fsub <2 x double> %131, %135 %_0.i3.i406.1 = extractelement <2 x double> %142, i64 1 %143 = fadd <2 x double> %133, %137 %144 = fsub <2 x double> %133, %137 %_0.i.i409.1 = extractelement <2 x double> %144, i64 0 %145 = fsub <2 x double> %133, %137 %_0.i3.i410.1 = extractelement <2 x double> %145, i64 1 %146 = fadd <2 x double> %138, %139 %147 = fadd <2 x double> %140, %143 %_0.i.i421.1 = fadd double %_0.i.i405.1, %_0.i3.i410.1 %_0.i3.i422.1 = fsub double %_0.i3.i406.1, %_0.i.i409.1 %_0.i.i423.1 = fadd double %_0.i3.i422.1, %_0.i.i421.1 %_0.i3.i424.1 = fsub double %_0.i3.i422.1, %_0.i.i421.1 %_4.i.i.i.i.1 = fmul double %_0.i.i423.1, 0x3FE6A09E667F3BCD %_7.i.i.i.i.1 = fmul double %_0.i3.i424.1, 0x3FE6A09E667F3BCD %_0.i.i427.1 = fsub double %_0.i.i405.1, %_0.i3.i410.1 %_0.i3.i428.1 = fadd double %_0.i3.i406.1, %_0.i.i409.1 %148 = fadd <2 x double> %146, %147 store <2 x double> %148, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !3838 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9, i32 1 %150 = fsub <2 x double> %138, %139 %151 = fsub <2 x double> %140, %143 %152 = shufflevector <2 x double> %151, <2 x double> poison, <2 x i32> %153 = fadd <2 x double> %150, %152 %154 = fsub <2 x double> %150, %152 %155 = shufflevector <2 x double> %153, <2 x double> %154, <2 x i32> %156 = shufflevector <2 x double> %155, <2 x double> poison, <2 x i32> %157 = insertelement <2 x double> poison, double %_6.i178.i.i.i.1, i64 0 %158 = insertelement <2 x double> %157, double %w2.1.i.i.i.1, i64 1 %159 = fmul <2 x double> %156, %158 %160 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> zeroinitializer %162 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %161, <2 x double> %155, <2 x double> %159) store <2 x double> %162, ptr %124, align 8, !noalias !3838 %163 = insertelement <4 x double> poison, double %_6.i175.i.i.i.1, i64 0 %164 = insertelement <4 x double> %163, double %w3.1.i.i.i.1, i64 1 %165 = insertelement <4 x double> %164, double %_6.i172.i.i.i.1, i64 2 %166 = insertelement <4 x double> %165, double %w4.1.i.i.i.1, i64 3 %167 = insertelement <4 x double> poison, double %w3.0.i.i.i.1, i64 0 %168 = insertelement <4 x double> %167, double %w4.0.i.i.i.1, i64 1 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13, i32 1 %171 = shufflevector <2 x double> %154, <2 x double> %153, <2 x i32> %172 = shufflevector <2 x double> %171, <2 x double> poison, <2 x i32> %173 = insertelement <2 x double> poison, double %_6.i166.i.i.i.1, i64 0 %174 = insertelement <2 x double> %173, double %w6.1.i.i.i.1, i64 1 %175 = fmul <2 x double> %172, %174 %176 = insertelement <2 x double> poison, double %w6.0.i.i.i.1, i64 0 %177 = shufflevector <2 x double> %176, <2 x double> poison, <2 x i32> zeroinitializer %178 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %177, <2 x double> %171, <2 x double> %175) store <2 x double> %178, ptr %127, align 8, !noalias !3838 %179 = fsub <2 x double> %130, %134 %180 = fsub <2 x double> %132, %136 %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = fadd <2 x double> %179, %181 %_0.i.i413.1 = extractelement <2 x double> %182, i64 0 %183 = fsub <2 x double> %179, %181 %_0.i3.i414.1 = extractelement <2 x double> %183, i64 1 %184 = fsub <2 x double> %179, %181 %185 = fadd <2 x double> %179, %181 %186 = shufflevector <2 x double> %184, <2 x double> %185, <2 x i32> %187 = insertelement <2 x double> poison, double %_0.i.i427.1, i64 0 %188 = insertelement <2 x double> poison, double %_0.i.i427.1, i64 0 %189 = insertelement <2 x double> poison, double %_0.i3.i428.1, i64 0 %190 = insertelement <2 x double> poison, double %_0.i3.i428.1, i64 0 %191 = fsub <2 x double> %188, %190 %192 = fadd <2 x double> %187, %189 %193 = shufflevector <2 x double> %191, <2 x double> %192, <2 x i32> %194 = fmul <2 x double> %193, %_0.i.i433.1 = fadd double %_0.i.i413.1, %_4.i.i.i.i.1 %_0.i3.i434.1 = fadd double %_0.i3.i414.1, %_7.i.i.i.i.1 %b.i182.i.i.i.1 = fmul double %_0.i3.i434.1, %_6.i181.i.i.i.1 %195 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_0.i.i433.1, double %b.i182.i.i.i.1) %b1.i183.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_0.i.i433.1 %196 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_0.i3.i434.1, double %b1.i183.i.i.i.1) store double %195, ptr %125, align 8, !noalias !3838 store double %196, ptr %149, align 8, !noalias !3838 %197 = shufflevector <2 x double> %146, <2 x double> %186, <4 x i32> %198 = shufflevector <2 x double> %147, <2 x double> %194, <4 x i32> %199 = fsub <4 x double> %197, %198 %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %200, %166 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %169, <4 x double> %199, <4 x double> %201) store <4 x double> %202, ptr %126, align 8, !noalias !3838 %_0.i.i441.1 = fsub double %_0.i.i413.1, %_4.i.i.i.i.1 %_0.i3.i442.1 = fsub double %_0.i3.i414.1, %_7.i.i.i.i.1 %b.i170.i.i.i.1 = fmul double %_0.i3.i442.1, %_6.i169.i.i.i.1 %203 = tail call double @llvm.fma.f64(double %w5.0.i.i.i.1, double %_0.i.i441.1, double %b.i170.i.i.i.1) %b1.i171.i.i.i.1 = fmul double %w5.1.i.i.i.1, %_0.i.i441.1 %204 = tail call double @llvm.fma.f64(double %w5.0.i.i.i.1, double %_0.i3.i442.1, double %b1.i171.i.i.i.1) store double %203, ptr %128, align 8, !noalias !3838 store double %204, ptr %170, align 8, !noalias !3838 %205 = fadd <2 x double> %186, %194 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %208 = insertelement <2 x double> %207, double %w7.1.i.i.i.1, i64 1 %209 = fmul <2 x double> %206, %208 %210 = insertelement <2 x double> poison, double %w7.0.i.i.i.1, i64 0 %211 = shufflevector <2 x double> %210, <2 x double> poison, <2 x i32> zeroinitializer %212 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %211, <2 x double> %205, <2 x double> %209) store <2 x double> %212, ptr %129, align 8, !noalias !3838 %213 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !3838 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %213, align 8, !noalias !3838 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %214 = fadd <4 x double> %strided.vec, %strided.vec3 %215 = fadd <4 x double> %strided.vec1, %strided.vec4 %216 = fsub <4 x double> %strided.vec, %strided.vec3 %217 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %214, <4 x double> %215, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !3838 %interleaved.vec5 = shufflevector <4 x double> %216, <4 x double> %217, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !3838 %218 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %219 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %wide.vec.1 = load <8 x double>, ptr %218, align 8, !noalias !3838 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %219, align 8, !noalias !3838 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %220 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %221 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %222 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %223 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %224 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %220, <4 x double> %221, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %224, align 8, !noalias !3838 %225 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec5.1 = shufflevector <4 x double> %222, <4 x double> %223, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %225, align 8, !noalias !3838 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3838 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h67adc6148f484afdE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc8f4f6e5b2e7b1b3E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6852785f28bfe246E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3841 store i64 1024, ptr %n.i, align 8, !noalias !3841 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3841 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3841 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3841 store ptr null, ptr %_16.i, align 8, !noalias !3841 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3841 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3841 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3841 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3841 store ptr null, ptr %_24.i, align 8, !noalias !3841 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3841 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3841 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3841 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3841 store ptr null, ptr %_32.i, align 8, !noalias !3841 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3841 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3841 store i64 %w.1, ptr %_34.i, align 8, !noalias !3841 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0927c7a61c68d3d1E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3841 store ptr null, ptr %_40.i, align 8, !noalias !3841 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0927c7a61c68d3d1E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3841 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0927c7a61c68d3d1E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0927c7a61c68d3d1E.exit" ], [ %index.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !3844 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %4, align 8, !noalias !3844 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %5, align 8, !noalias !3844 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %6, align 8, !noalias !3844 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec, %strided.vec6 %8 = fadd <4 x double> %strided.vec1, %strided.vec7 %9 = fsub <4 x double> %strided.vec, %strided.vec6 %10 = fsub <4 x double> %strided.vec1, %strided.vec7 %11 = fadd <4 x double> %strided.vec3, %strided.vec9 %12 = fadd <4 x double> %strided.vec4, %strided.vec10 %13 = fsub <4 x double> %strided.vec3, %strided.vec9 %14 = fsub <4 x double> %strided.vec4, %strided.vec10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %12 %17 = fadd <4 x double> %9, %14 %18 = fsub <4 x double> %10, %13 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %12 %21 = fsub <4 x double> %9, %14 %22 = fadd <4 x double> %10, %13 %interleaved.vec = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec, ptr %3, align 8, !noalias !3844 %interleaved.vec11 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !3844 %interleaved.vec12 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !3844 %interleaved.vec13 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec13, ptr %6, align 8, !noalias !3844 %index.next = add nuw i64 %index, 4 %23 = icmp eq i64 %index.next, 256 br i1 %23, label %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, label %vector.body, !llvm.loop !3849 _ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit: ; preds = %vector.body %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 br label %bb24.i.i.i.i104 bb24.i.i.i.i104: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, %middle.block14 %iter.i.i.i.i22.sroa.60.0133 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %73, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i22.sroa.60.0133, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i22.sroa.60.0133, 8 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %27 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %28 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %29 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i120 = load double, ptr %30, align 8, !noalias !3841, !noundef !3 %_6.i.i.i.i.i167 = fneg double %w3.1.i.i.i.i120 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i118 = load double, ptr %31, align 8, !noalias !3841, !noundef !3 %_6.i36.i.i.i.i162 = fneg double %w2.1.i.i.i.i118 %32 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i116 = load double, ptr %32, align 8, !noalias !3841, !noundef !3 %_6.i39.i.i.i.i157 = fneg double %w1.1.i.i.i.i116 %33 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i119 = load double, ptr %33, align 8, !noalias !3841, !noundef !3 %34 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i117 = load double, ptr %34, align 8, !noalias !3841, !noundef !3 %35 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i115 = load double, ptr %35, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i157, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i.i115, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i.i116, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i162, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i.i117, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i.i118, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i.i.i.i.i167, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i.i119, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i.i120, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body18 vector.body18: ; preds = %vector.body18, %bb24.i.i.i.i104 %index19 = phi i64 [ 0, %bb24.i.i.i.i104 ], [ %index.next52, %vector.body18 ] %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index19 %37 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index19 %38 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index19 %39 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index19 %wide.vec20 = load <8 x double>, ptr %36, align 8, !noalias !3841 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %37, align 8, !noalias !3841 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %40 = fmul <4 x double> %strided.vec25, %broadcast.splat %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %40) %42 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %42) %wide.vec30 = load <8 x double>, ptr %38, align 8, !noalias !3841 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %44 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %44) %46 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %47 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %46) %wide.vec39 = load <8 x double>, ptr %39, align 8, !noalias !3841 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %48 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %49 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %48) %50 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %51 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %50) %52 = fadd <4 x double> %strided.vec21, %45 %53 = fadd <4 x double> %strided.vec22, %47 %54 = fsub <4 x double> %strided.vec21, %45 %55 = fsub <4 x double> %strided.vec22, %47 %56 = fadd <4 x double> %41, %49 %57 = fadd <4 x double> %43, %51 %58 = fsub <4 x double> %41, %49 %59 = fsub <4 x double> %43, %51 %60 = fadd <4 x double> %52, %56 %61 = fadd <4 x double> %53, %57 %62 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec48 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec48, ptr %62, align 8, !noalias !3841 %63 = fadd <4 x double> %54, %59 %64 = fsub <4 x double> %55, %58 %65 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec49 = shufflevector <4 x double> %63, <4 x double> %64, <8 x i32> store <8 x double> %interleaved.vec49, ptr %65, align 8, !noalias !3841 %66 = fsub <4 x double> %52, %56 %67 = fsub <4 x double> %53, %57 %68 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec50 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec50, ptr %68, align 8, !noalias !3841 %69 = fsub <4 x double> %54, %59 %70 = fadd <4 x double> %55, %58 %71 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec51 = shufflevector <4 x double> %69, <4 x double> %70, <8 x i32> store <8 x double> %interleaved.vec51, ptr %71, align 8, !noalias !3841 %index.next52 = add nuw i64 %index19, 4 %72 = icmp eq i64 %index.next52, 64 br i1 %72, label %middle.block14, label %vector.body18, !llvm.loop !3850 middle.block14: ; preds = %vector.body18 %73 = add nuw nsw i64 %iter.i.i.i.i22.sroa.60.0133, 1 %exitcond142.not = icmp eq i64 %73, 4 br i1 %exitcond142.not, label %bb24.i.i.i224, label %bb24.i.i.i.i104 vector.body98: ; preds = %bb24.i.i.i224, %vector.body98 %index99 = phi i64 [ %index.next141, %vector.body98 ], [ 0, %bb24.i.i.i224 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body98 ], [ , %bb24.i.i.i224 ] %74 = shl nuw nsw <4 x i64> %vec.ind, %75 = extractelement <4 x i64> %74, i64 0 %76 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %75 %77 = shl nuw nsw <4 x i64> %vec.ind, %78 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %77 %79 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %75 %80 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %75 %81 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %75 %82 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 1, i32 1 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 2 %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %85 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 2, i32 1 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %86 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 3 %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %87 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %74, i64 3, i32 1 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %88 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 8 %89 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 4 %90 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 12 %91 = fneg <4 x double> %wide.masked.gather100 %92 = fneg <4 x double> %wide.masked.gather102 %93 = fneg <4 x double> %wide.masked.gather104 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %78, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %94 = getelementptr inbounds i8, <4 x ptr> %78, i64 8 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %89, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %95 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 4, i32 1 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %96 = fmul <4 x double> %wide.masked.gather108, %91 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather107, <4 x double> %96) %98 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather107 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather108, <4 x double> %98) %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %100 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 8, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %101 = fmul <4 x double> %wide.masked.gather110, %92 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather109, <4 x double> %101) %103 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather109 %104 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather110, <4 x double> %103) %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %90, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %105 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 12, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %105, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %106 = fmul <4 x double> %wide.masked.gather112, %93 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather111, <4 x double> %106) %108 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather111 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather112, <4 x double> %108) %110 = fadd <4 x double> %wide.masked.gather105, %102 %111 = fadd <4 x double> %wide.masked.gather106, %104 %112 = fsub <4 x double> %wide.masked.gather105, %102 %113 = fsub <4 x double> %wide.masked.gather106, %104 %114 = fadd <4 x double> %97, %107 %115 = fadd <4 x double> %99, %109 %116 = fsub <4 x double> %97, %107 %117 = fsub <4 x double> %99, %109 %118 = fadd <4 x double> %110, %114 %119 = fadd <4 x double> %111, %115 %120 = fadd <4 x double> %112, %117 %121 = fsub <4 x double> %113, %116 %122 = fsub <4 x double> %110, %114 %123 = fsub <4 x double> %111, %115 %124 = fsub <4 x double> %112, %117 %125 = fadd <4 x double> %113, %116 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 1 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 5 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 9 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 13 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 1, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 5, i32 1 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %132 = fmul <4 x double> %wide.masked.gather116, %91 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather115, <4 x double> %132) %134 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather115 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather116, <4 x double> %134) %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 9, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %137 = fmul <4 x double> %wide.masked.gather118, %92 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather117, <4 x double> %137) %139 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather117 %140 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather118, <4 x double> %139) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %141 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 13, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %142 = fmul <4 x double> %wide.masked.gather120, %93 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather119, <4 x double> %142) %144 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather119 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather120, <4 x double> %144) %146 = fadd <4 x double> %wide.masked.gather113, %138 %147 = fadd <4 x double> %wide.masked.gather114, %140 %148 = fsub <4 x double> %wide.masked.gather113, %138 %149 = fsub <4 x double> %wide.masked.gather114, %140 %150 = fadd <4 x double> %133, %143 %151 = fadd <4 x double> %135, %145 %152 = fsub <4 x double> %133, %143 %153 = fsub <4 x double> %135, %145 %154 = fadd <4 x double> %146, %150 %155 = fadd <4 x double> %147, %151 %156 = fadd <4 x double> %148, %153 %157 = fsub <4 x double> %149, %152 %158 = fsub <4 x double> %146, %150 %159 = fsub <4 x double> %147, %151 %160 = fsub <4 x double> %148, %153 %161 = fadd <4 x double> %149, %152 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 2 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 6 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 10 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 14 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 2, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %167 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 6, i32 1 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %168 = fmul <4 x double> %wide.masked.gather124, %91 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather123, <4 x double> %168) %170 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather123 %171 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather124, <4 x double> %170) %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %172 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 10, i32 1 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %173 = fmul <4 x double> %wide.masked.gather126, %92 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather125, <4 x double> %173) %175 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather125 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather126, <4 x double> %175) %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %177 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 14, i32 1 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %178 = fmul <4 x double> %wide.masked.gather128, %93 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather127, <4 x double> %178) %180 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather127 %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather128, <4 x double> %180) %182 = fadd <4 x double> %wide.masked.gather121, %174 %183 = fadd <4 x double> %wide.masked.gather122, %176 %184 = fsub <4 x double> %wide.masked.gather121, %174 %185 = fsub <4 x double> %wide.masked.gather122, %176 %186 = fadd <4 x double> %169, %179 %187 = fadd <4 x double> %171, %181 %188 = fsub <4 x double> %169, %179 %189 = fsub <4 x double> %171, %181 %190 = fadd <4 x double> %182, %186 %191 = fadd <4 x double> %183, %187 %192 = fadd <4 x double> %184, %189 %193 = fsub <4 x double> %185, %188 %194 = fsub <4 x double> %182, %186 %195 = fsub <4 x double> %183, %187 %196 = fsub <4 x double> %184, %189 %197 = fadd <4 x double> %185, %188 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 3 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 7 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 11 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 15 %wide.masked.gather129 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %202 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 3, i32 1 %wide.masked.gather130 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %202, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %wide.masked.gather131 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 7, i32 1 %wide.masked.gather132 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %204 = fmul <4 x double> %wide.masked.gather132, %91 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather131, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather100, %wide.masked.gather131 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather132, <4 x double> %206) %wide.masked.gather133 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %208 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 11, i32 1 %wide.masked.gather134 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %208, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %209 = fmul <4 x double> %wide.masked.gather134, %92 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather133, <4 x double> %209) %211 = fmul <4 x double> %wide.masked.gather102, %wide.masked.gather133 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather101, <4 x double> %wide.masked.gather134, <4 x double> %211) %wide.masked.gather135 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %78, i64 15, i32 1 %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %214 = fmul <4 x double> %wide.masked.gather136, %93 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather135, <4 x double> %214) %216 = fmul <4 x double> %wide.masked.gather104, %wide.masked.gather135 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather103, <4 x double> %wide.masked.gather136, <4 x double> %216) %218 = fadd <4 x double> %wide.masked.gather129, %210 %219 = fadd <4 x double> %wide.masked.gather130, %212 %220 = fsub <4 x double> %wide.masked.gather129, %210 %221 = fsub <4 x double> %wide.masked.gather130, %212 %222 = fadd <4 x double> %205, %215 %223 = fadd <4 x double> %207, %217 %224 = fsub <4 x double> %205, %215 %225 = fsub <4 x double> %207, %217 %226 = fadd <4 x double> %218, %222 %227 = fadd <4 x double> %219, %223 %228 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> %229 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> %230 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %231 = shufflevector <4 x double> %226, <4 x double> %227, <8 x i32> %232 = shufflevector <8 x double> %228, <8 x double> %229, <16 x i32> %233 = shufflevector <8 x double> %230, <8 x double> %231, <16 x i32> %interleaved.vec137 = shufflevector <16 x double> %232, <16 x double> %233, <32 x i32> store <32 x double> %interleaved.vec137, ptr %76, align 8, !noalias !3841 %234 = fadd <4 x double> %220, %225 %235 = fsub <4 x double> %221, %224 %236 = shufflevector <4 x double> %120, <4 x double> %121, <8 x i32> %237 = shufflevector <4 x double> %156, <4 x double> %157, <8 x i32> %238 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> %239 = shufflevector <4 x double> %234, <4 x double> %235, <8 x i32> %240 = shufflevector <8 x double> %236, <8 x double> %237, <16 x i32> %241 = shufflevector <8 x double> %238, <8 x double> %239, <16 x i32> %interleaved.vec138 = shufflevector <16 x double> %240, <16 x double> %241, <32 x i32> store <32 x double> %interleaved.vec138, ptr %81, align 8, !noalias !3841 %242 = fsub <4 x double> %218, %222 %243 = fsub <4 x double> %219, %223 %244 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> %245 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> %246 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> %247 = shufflevector <4 x double> %242, <4 x double> %243, <8 x i32> %248 = shufflevector <8 x double> %244, <8 x double> %245, <16 x i32> %249 = shufflevector <8 x double> %246, <8 x double> %247, <16 x i32> %interleaved.vec139 = shufflevector <16 x double> %248, <16 x double> %249, <32 x i32> store <32 x double> %interleaved.vec139, ptr %80, align 8, !noalias !3841 %250 = fsub <4 x double> %220, %225 %251 = fadd <4 x double> %221, %224 %252 = shufflevector <4 x double> %124, <4 x double> %125, <8 x i32> %253 = shufflevector <4 x double> %160, <4 x double> %161, <8 x i32> %254 = shufflevector <4 x double> %196, <4 x double> %197, <8 x i32> %255 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> %256 = shufflevector <8 x double> %252, <8 x double> %253, <16 x i32> %257 = shufflevector <8 x double> %254, <8 x double> %255, <16 x i32> %interleaved.vec140 = shufflevector <16 x double> %256, <16 x double> %257, <32 x i32> store <32 x double> %interleaved.vec140, ptr %79, align 8, !noalias !3841 %index.next141 = add nuw i64 %index99, 4 %vec.ind.next = add <4 x i64> %vec.ind, %258 = icmp eq i64 %index.next141, 64 br i1 %258, label %vector.body146, label %vector.body98, !llvm.loop !3851 bb24.i.i.i224: ; preds = %middle.block14, %bb24.i.i.i224 %iter.i.i.i58.sroa.60.0135 = phi i64 [ %404, %bb24.i.i.i224 ], [ 0, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i733 = shl nuw nsw i64 %iter.i.i.i58.sroa.60.0135, 4 %259 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 3, i32 1 %w3.1.i.i.i240 = load double, ptr %259, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w3.1.i.i.i240, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %260 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 3 %w3.0.i.i.i239 = load double, ptr %260, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert85 = insertelement <4 x double> poison, double %w3.0.i.i.i239, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i287 = fneg double %w3.1.i.i.i240 %broadcast.splatinsert83 = insertelement <4 x double> poison, double %_6.i.i.i.i287, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer %261 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 2, i32 1 %w2.1.i.i.i238 = load double, ptr %261, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert78 = insertelement <4 x double> poison, double %w2.1.i.i.i238, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %262 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 2 %w2.0.i.i.i237 = load double, ptr %262, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert76 = insertelement <4 x double> poison, double %w2.0.i.i.i237, i64 0 %broadcast.splat77 = shufflevector <4 x double> %broadcast.splatinsert76, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i282 = fneg double %w2.1.i.i.i238 %broadcast.splatinsert74 = insertelement <4 x double> poison, double %_6.i36.i.i.i282, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer %263 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 1, i32 1 %w1.1.i.i.i236 = load double, ptr %263, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert69 = insertelement <4 x double> poison, double %w1.1.i.i.i236, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %264 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733, i64 1 %w1.0.i.i.i235 = load double, ptr %264, align 8, !noalias !3841, !noundef !3 %broadcast.splatinsert67 = insertelement <4 x double> poison, double %w1.0.i.i.i235, i64 0 %broadcast.splat68 = shufflevector <4 x double> %broadcast.splatinsert67, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i277 = fneg double %w1.1.i.i.i236 %broadcast.splatinsert65 = insertelement <4 x double> poison, double %_6.i39.i.i.i277, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i743 = shl nuw nsw i64 %iter.i.i.i58.sroa.60.0135, 6 %data.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i743 %265 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 48 %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 16 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i756 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %data.i.i.i.i.i.i.i.i.i.i752 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %data.i.i.i.i.i.i.i.i748 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %data.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i733 %wide.vec59 = load <8 x double>, ptr %data.i.i.i.i.i.i744, align 8, !noalias !3841 %strided.vec60 = shufflevector <8 x double> %wide.vec59, <8 x double> poison, <4 x i32> %strided.vec61 = shufflevector <8 x double> %wide.vec59, <8 x double> poison, <4 x i32> %wide.vec62 = load <8 x double>, ptr %266, align 8, !noalias !3841 %strided.vec63 = shufflevector <8 x double> %wide.vec62, <8 x double> poison, <4 x i32> %strided.vec64 = shufflevector <8 x double> %wide.vec62, <8 x double> poison, <4 x i32> %268 = fmul <4 x double> %strided.vec64, %broadcast.splat66 %269 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63, <4 x double> %268) %270 = fmul <4 x double> %broadcast.splat70, %strided.vec63 %271 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64, <4 x double> %270) %wide.vec71 = load <8 x double>, ptr %267, align 8, !noalias !3841 %strided.vec72 = shufflevector <8 x double> %wide.vec71, <8 x double> poison, <4 x i32> %strided.vec73 = shufflevector <8 x double> %wide.vec71, <8 x double> poison, <4 x i32> %272 = fmul <4 x double> %strided.vec73, %broadcast.splat75 %273 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72, <4 x double> %272) %274 = fmul <4 x double> %broadcast.splat79, %strided.vec72 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73, <4 x double> %274) %wide.vec80 = load <8 x double>, ptr %265, align 8, !noalias !3841 %strided.vec81 = shufflevector <8 x double> %wide.vec80, <8 x double> poison, <4 x i32> %strided.vec82 = shufflevector <8 x double> %wide.vec80, <8 x double> poison, <4 x i32> %276 = fmul <4 x double> %strided.vec82, %broadcast.splat84 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81, <4 x double> %276) %278 = fmul <4 x double> %broadcast.splat88, %strided.vec81 %279 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82, <4 x double> %278) %280 = fadd <4 x double> %strided.vec60, %273 %281 = fadd <4 x double> %strided.vec61, %275 %282 = fsub <4 x double> %strided.vec60, %273 %283 = fsub <4 x double> %strided.vec61, %275 %284 = fadd <4 x double> %269, %277 %285 = fadd <4 x double> %271, %279 %286 = fsub <4 x double> %269, %277 %287 = fsub <4 x double> %271, %279 %288 = fadd <4 x double> %280, %284 %289 = fadd <4 x double> %281, %285 %interleaved.vec89 = shufflevector <4 x double> %288, <4 x double> %289, <8 x i32> store <8 x double> %interleaved.vec89, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, align 8, !noalias !3841 %290 = fadd <4 x double> %282, %287 %291 = fsub <4 x double> %283, %286 %interleaved.vec90 = shufflevector <4 x double> %290, <4 x double> %291, <8 x i32> store <8 x double> %interleaved.vec90, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, align 8, !noalias !3841 %292 = fsub <4 x double> %280, %284 %293 = fsub <4 x double> %281, %285 %interleaved.vec91 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec91, ptr %data.i.i.i.i.i.i.i.i.i.i752, align 8, !noalias !3841 %294 = fsub <4 x double> %282, %287 %295 = fadd <4 x double> %283, %286 %interleaved.vec92 = shufflevector <4 x double> %294, <4 x double> %295, <8 x i32> store <8 x double> %interleaved.vec92, ptr %data.i.i.i.i.i.i.i.i748, align 8, !noalias !3841 %296 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 4 %297 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 20 %298 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 36 %299 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 52 %wide.vec59.1 = load <8 x double>, ptr %296, align 8, !noalias !3841 %strided.vec60.1 = shufflevector <8 x double> %wide.vec59.1, <8 x double> poison, <4 x i32> %strided.vec61.1 = shufflevector <8 x double> %wide.vec59.1, <8 x double> poison, <4 x i32> %wide.vec62.1 = load <8 x double>, ptr %297, align 8, !noalias !3841 %strided.vec63.1 = shufflevector <8 x double> %wide.vec62.1, <8 x double> poison, <4 x i32> %strided.vec64.1 = shufflevector <8 x double> %wide.vec62.1, <8 x double> poison, <4 x i32> %300 = fmul <4 x double> %strided.vec64.1, %broadcast.splat66 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63.1, <4 x double> %300) %302 = fmul <4 x double> %broadcast.splat70, %strided.vec63.1 %303 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64.1, <4 x double> %302) %wide.vec71.1 = load <8 x double>, ptr %298, align 8, !noalias !3841 %strided.vec72.1 = shufflevector <8 x double> %wide.vec71.1, <8 x double> poison, <4 x i32> %strided.vec73.1 = shufflevector <8 x double> %wide.vec71.1, <8 x double> poison, <4 x i32> %304 = fmul <4 x double> %strided.vec73.1, %broadcast.splat75 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72.1, <4 x double> %304) %306 = fmul <4 x double> %broadcast.splat79, %strided.vec72.1 %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73.1, <4 x double> %306) %wide.vec80.1 = load <8 x double>, ptr %299, align 8, !noalias !3841 %strided.vec81.1 = shufflevector <8 x double> %wide.vec80.1, <8 x double> poison, <4 x i32> %strided.vec82.1 = shufflevector <8 x double> %wide.vec80.1, <8 x double> poison, <4 x i32> %308 = fmul <4 x double> %strided.vec82.1, %broadcast.splat84 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81.1, <4 x double> %308) %310 = fmul <4 x double> %broadcast.splat88, %strided.vec81.1 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82.1, <4 x double> %310) %312 = fadd <4 x double> %strided.vec60.1, %305 %313 = fadd <4 x double> %strided.vec61.1, %307 %314 = fsub <4 x double> %strided.vec60.1, %305 %315 = fsub <4 x double> %strided.vec61.1, %307 %316 = fadd <4 x double> %301, %309 %317 = fadd <4 x double> %303, %311 %318 = fsub <4 x double> %301, %309 %319 = fsub <4 x double> %303, %311 %320 = fadd <4 x double> %312, %316 %321 = fadd <4 x double> %313, %317 %322 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, i64 4 %interleaved.vec89.1 = shufflevector <4 x double> %320, <4 x double> %321, <8 x i32> store <8 x double> %interleaved.vec89.1, ptr %322, align 8, !noalias !3841 %323 = fadd <4 x double> %314, %319 %324 = fsub <4 x double> %315, %318 %325 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, i64 4 %interleaved.vec90.1 = shufflevector <4 x double> %323, <4 x double> %324, <8 x i32> store <8 x double> %interleaved.vec90.1, ptr %325, align 8, !noalias !3841 %326 = fsub <4 x double> %312, %316 %327 = fsub <4 x double> %313, %317 %328 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i752, i64 4 %interleaved.vec91.1 = shufflevector <4 x double> %326, <4 x double> %327, <8 x i32> store <8 x double> %interleaved.vec91.1, ptr %328, align 8, !noalias !3841 %329 = fsub <4 x double> %314, %319 %330 = fadd <4 x double> %315, %318 %331 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i748, i64 4 %interleaved.vec92.1 = shufflevector <4 x double> %329, <4 x double> %330, <8 x i32> store <8 x double> %interleaved.vec92.1, ptr %331, align 8, !noalias !3841 %332 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 8 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 24 %334 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 40 %335 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 56 %wide.vec59.2 = load <8 x double>, ptr %332, align 8, !noalias !3841 %strided.vec60.2 = shufflevector <8 x double> %wide.vec59.2, <8 x double> poison, <4 x i32> %strided.vec61.2 = shufflevector <8 x double> %wide.vec59.2, <8 x double> poison, <4 x i32> %wide.vec62.2 = load <8 x double>, ptr %333, align 8, !noalias !3841 %strided.vec63.2 = shufflevector <8 x double> %wide.vec62.2, <8 x double> poison, <4 x i32> %strided.vec64.2 = shufflevector <8 x double> %wide.vec62.2, <8 x double> poison, <4 x i32> %336 = fmul <4 x double> %strided.vec64.2, %broadcast.splat66 %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63.2, <4 x double> %336) %338 = fmul <4 x double> %broadcast.splat70, %strided.vec63.2 %339 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64.2, <4 x double> %338) %wide.vec71.2 = load <8 x double>, ptr %334, align 8, !noalias !3841 %strided.vec72.2 = shufflevector <8 x double> %wide.vec71.2, <8 x double> poison, <4 x i32> %strided.vec73.2 = shufflevector <8 x double> %wide.vec71.2, <8 x double> poison, <4 x i32> %340 = fmul <4 x double> %strided.vec73.2, %broadcast.splat75 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72.2, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat79, %strided.vec72.2 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73.2, <4 x double> %342) %wide.vec80.2 = load <8 x double>, ptr %335, align 8, !noalias !3841 %strided.vec81.2 = shufflevector <8 x double> %wide.vec80.2, <8 x double> poison, <4 x i32> %strided.vec82.2 = shufflevector <8 x double> %wide.vec80.2, <8 x double> poison, <4 x i32> %344 = fmul <4 x double> %strided.vec82.2, %broadcast.splat84 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81.2, <4 x double> %344) %346 = fmul <4 x double> %broadcast.splat88, %strided.vec81.2 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82.2, <4 x double> %346) %348 = fadd <4 x double> %strided.vec60.2, %341 %349 = fadd <4 x double> %strided.vec61.2, %343 %350 = fsub <4 x double> %strided.vec60.2, %341 %351 = fsub <4 x double> %strided.vec61.2, %343 %352 = fadd <4 x double> %337, %345 %353 = fadd <4 x double> %339, %347 %354 = fsub <4 x double> %337, %345 %355 = fsub <4 x double> %339, %347 %356 = fadd <4 x double> %348, %352 %357 = fadd <4 x double> %349, %353 %358 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, i64 8 %interleaved.vec89.2 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec89.2, ptr %358, align 8, !noalias !3841 %359 = fadd <4 x double> %350, %355 %360 = fsub <4 x double> %351, %354 %361 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, i64 8 %interleaved.vec90.2 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec90.2, ptr %361, align 8, !noalias !3841 %362 = fsub <4 x double> %348, %352 %363 = fsub <4 x double> %349, %353 %364 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i752, i64 8 %interleaved.vec91.2 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec91.2, ptr %364, align 8, !noalias !3841 %365 = fsub <4 x double> %350, %355 %366 = fadd <4 x double> %351, %354 %367 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i748, i64 8 %interleaved.vec92.2 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec92.2, ptr %367, align 8, !noalias !3841 %368 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 12 %369 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 28 %370 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 44 %371 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i744, i64 60 %wide.vec59.3 = load <8 x double>, ptr %368, align 8, !noalias !3841 %strided.vec60.3 = shufflevector <8 x double> %wide.vec59.3, <8 x double> poison, <4 x i32> %strided.vec61.3 = shufflevector <8 x double> %wide.vec59.3, <8 x double> poison, <4 x i32> %wide.vec62.3 = load <8 x double>, ptr %369, align 8, !noalias !3841 %strided.vec63.3 = shufflevector <8 x double> %wide.vec62.3, <8 x double> poison, <4 x i32> %strided.vec64.3 = shufflevector <8 x double> %wide.vec62.3, <8 x double> poison, <4 x i32> %372 = fmul <4 x double> %strided.vec64.3, %broadcast.splat66 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec63.3, <4 x double> %372) %374 = fmul <4 x double> %broadcast.splat70, %strided.vec63.3 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat68, <4 x double> %strided.vec64.3, <4 x double> %374) %wide.vec71.3 = load <8 x double>, ptr %370, align 8, !noalias !3841 %strided.vec72.3 = shufflevector <8 x double> %wide.vec71.3, <8 x double> poison, <4 x i32> %strided.vec73.3 = shufflevector <8 x double> %wide.vec71.3, <8 x double> poison, <4 x i32> %376 = fmul <4 x double> %strided.vec73.3, %broadcast.splat75 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec72.3, <4 x double> %376) %378 = fmul <4 x double> %broadcast.splat79, %strided.vec72.3 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat77, <4 x double> %strided.vec73.3, <4 x double> %378) %wide.vec80.3 = load <8 x double>, ptr %371, align 8, !noalias !3841 %strided.vec81.3 = shufflevector <8 x double> %wide.vec80.3, <8 x double> poison, <4 x i32> %strided.vec82.3 = shufflevector <8 x double> %wide.vec80.3, <8 x double> poison, <4 x i32> %380 = fmul <4 x double> %strided.vec82.3, %broadcast.splat84 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec81.3, <4 x double> %380) %382 = fmul <4 x double> %broadcast.splat88, %strided.vec81.3 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat86, <4 x double> %strided.vec82.3, <4 x double> %382) %384 = fadd <4 x double> %strided.vec60.3, %377 %385 = fadd <4 x double> %strided.vec61.3, %379 %386 = fsub <4 x double> %strided.vec60.3, %377 %387 = fsub <4 x double> %strided.vec61.3, %379 %388 = fadd <4 x double> %373, %381 %389 = fadd <4 x double> %375, %383 %390 = fsub <4 x double> %373, %381 %391 = fsub <4 x double> %375, %383 %392 = fadd <4 x double> %384, %388 %393 = fadd <4 x double> %385, %389 %394 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i734, i64 12 %interleaved.vec89.3 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> store <8 x double> %interleaved.vec89.3, ptr %394, align 8, !noalias !3841 %395 = fadd <4 x double> %386, %391 %396 = fsub <4 x double> %387, %390 %397 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i756, i64 12 %interleaved.vec90.3 = shufflevector <4 x double> %395, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec90.3, ptr %397, align 8, !noalias !3841 %398 = fsub <4 x double> %384, %388 %399 = fsub <4 x double> %385, %389 %400 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i752, i64 12 %interleaved.vec91.3 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec91.3, ptr %400, align 8, !noalias !3841 %401 = fsub <4 x double> %386, %391 %402 = fadd <4 x double> %387, %390 %403 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i748, i64 12 %interleaved.vec92.3 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec92.3, ptr %403, align 8, !noalias !3841 %404 = add nuw nsw i64 %iter.i.i.i58.sroa.60.0135, 1 %exitcond144.not = icmp eq i64 %404, 16 br i1 %exitcond144.not, label %vector.body98, label %bb24.i.i.i224 vector.body146: ; preds = %vector.body98, %vector.body146 %index147 = phi i64 [ %index.next168, %vector.body146 ], [ 0, %vector.body98 ] %vec.ind148 = phi <4 x i64> [ %vec.ind.next149, %vector.body146 ], [ , %vector.body98 ] %405 = shl <4 x i64> %vec.ind148, %406 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %405 %407 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 1 %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %407, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %408 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 1, i32 1 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %408, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %409 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 2 %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %409, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %410 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 2, i32 1 %wide.masked.gather153 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %410, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %411 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 3 %wide.masked.gather154 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %411, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %412 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind148, i64 3, i32 1 %wide.masked.gather155 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %412, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %413 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 2 %414 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 1 %415 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 3 %416 = fneg <4 x double> %wide.masked.gather151 %417 = fneg <4 x double> %wide.masked.gather153 %418 = fneg <4 x double> %wide.masked.gather155 %wide.masked.gather156 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %406, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %419 = getelementptr inbounds i8, <4 x ptr> %406, i64 8 %wide.masked.gather157 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %419, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %wide.masked.gather158 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %414, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %420 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 1, i32 1 %wide.masked.gather159 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %420, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %421 = fmul <4 x double> %wide.masked.gather159, %416 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather150, <4 x double> %wide.masked.gather158, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather151, %wide.masked.gather158 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather150, <4 x double> %wide.masked.gather159, <4 x double> %423) %wide.masked.gather160 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %413, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %425 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 2, i32 1 %wide.masked.gather161 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %425, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %426 = fmul <4 x double> %wide.masked.gather161, %417 %427 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather152, <4 x double> %wide.masked.gather160, <4 x double> %426) %428 = fmul <4 x double> %wide.masked.gather153, %wide.masked.gather160 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather152, <4 x double> %wide.masked.gather161, <4 x double> %428) %wide.masked.gather162 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %415, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %430 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %406, i64 3, i32 1 %wide.masked.gather163 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %430, i32 8, <4 x i1> , <4 x double> poison), !noalias !3841 %431 = fmul <4 x double> %wide.masked.gather163, %418 %432 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather154, <4 x double> %wide.masked.gather162, <4 x double> %431) %433 = fmul <4 x double> %wide.masked.gather155, %wide.masked.gather162 %434 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather154, <4 x double> %wide.masked.gather163, <4 x double> %433) %435 = fadd <4 x double> %wide.masked.gather156, %427 %436 = fadd <4 x double> %wide.masked.gather157, %429 %437 = fsub <4 x double> %wide.masked.gather156, %427 %438 = fsub <4 x double> %wide.masked.gather157, %429 %439 = fadd <4 x double> %422, %432 %440 = fadd <4 x double> %424, %434 %441 = fsub <4 x double> %422, %432 %442 = fsub <4 x double> %424, %434 %443 = fadd <4 x double> %435, %439 %444 = fadd <4 x double> %436, %440 %445 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index147 %interleaved.vec164 = shufflevector <4 x double> %443, <4 x double> %444, <8 x i32> store <8 x double> %interleaved.vec164, ptr %445, align 8, !noalias !3841 %446 = fadd <4 x double> %437, %442 %447 = fsub <4 x double> %438, %441 %448 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index147 %interleaved.vec165 = shufflevector <4 x double> %446, <4 x double> %447, <8 x i32> store <8 x double> %interleaved.vec165, ptr %448, align 8, !noalias !3841 %449 = fsub <4 x double> %435, %439 %450 = fsub <4 x double> %436, %440 %451 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index147 %interleaved.vec166 = shufflevector <4 x double> %449, <4 x double> %450, <8 x i32> store <8 x double> %interleaved.vec166, ptr %451, align 8, !noalias !3841 %452 = fsub <4 x double> %437, %442 %453 = fadd <4 x double> %438, %441 %454 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index147 %interleaved.vec167 = shufflevector <4 x double> %452, <4 x double> %453, <8 x i32> store <8 x double> %interleaved.vec167, ptr %454, align 8, !noalias !3841 %index.next168 = add nuw i64 %index147, 4 %vec.ind.next149 = add <4 x i64> %vec.ind148, %455 = icmp eq i64 %index.next168, 252 br i1 %455, label %bb24.i.i.i, label %vector.body146, !llvm.loop !3852 bb24.i.i.i: ; preds = %vector.body146 %data.i.i.i.i.i.i.i.i.i.i.i.i1360 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i1370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1008 %data.i.i.i.i.i.i.i.i1374 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %data.i.i.i.i.i.i.i.i.i.i1378 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 764 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %456 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i.i = load double, ptr %456, align 8, !noalias !3841, !noundef !3 %457 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %457, align 8, !noalias !3841, !noundef !3 %458 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2 %w2.0.i.i.i = load double, ptr %458, align 8, !noalias !3841, !noundef !3 %459 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %459, align 8, !noalias !3841, !noundef !3 %460 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3 %w3.0.i.i.i = load double, ptr %460, align 8, !noalias !3841, !noundef !3 %461 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %461, align 8, !noalias !3841, !noundef !3 %462 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1010 %463 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1009 %464 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1011 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i1370, align 8, !noalias !3841, !noundef !3 %465 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1008, i32 1 %a.1.i.i.i = load double, ptr %465, align 8, !noalias !3841, !noundef !3 %_84.0.i.i.i = load double, ptr %463, align 8, !noalias !3841, !noundef !3 %466 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1009, i32 1 %_84.1.i.i.i = load double, ptr %466, align 8, !noalias !3841, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %467 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %468 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %462, align 8, !noalias !3841, !noundef !3 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1010, i32 1 %_86.1.i.i.i = load double, ptr %469, align 8, !noalias !3841, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %470 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %471 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %464, align 8, !noalias !3841, !noundef !3 %472 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1011, i32 1 %_88.1.i.i.i = load double, ptr %472, align 8, !noalias !3841, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %473 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %474 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i1515 = fadd double %a.0.i.i.i, %470 %_0.i3.i1516 = fadd double %a.1.i.i.i, %471 %_0.i.i1517 = fsub double %a.0.i.i.i, %470 %_0.i3.i1518 = fsub double %a.1.i.i.i, %471 %_0.i.i1519 = fadd double %467, %473 %_0.i3.i1520 = fadd double %468, %474 %_0.i.i1521 = fsub double %467, %473 %_0.i3.i1522 = fsub double %468, %474 %_0.i.i1523 = fadd double %_0.i.i1515, %_0.i.i1519 %_0.i3.i1524 = fadd double %_0.i3.i1516, %_0.i3.i1520 store double %_0.i.i1523, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360, align 8, !noalias !3841 %475 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252, i32 1 store double %_0.i3.i1524, ptr %475, align 8, !noalias !3841 %_0.i.i1525 = fadd double %_0.i.i1517, %_0.i3.i1522 %_0.i3.i1526 = fsub double %_0.i3.i1518, %_0.i.i1521 store double %_0.i.i1525, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382, align 8, !noalias !3841 %476 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508, i32 1 store double %_0.i3.i1526, ptr %476, align 8, !noalias !3841 %_0.i.i1527 = fsub double %_0.i.i1515, %_0.i.i1519 %_0.i3.i1528 = fsub double %_0.i3.i1516, %_0.i3.i1520 store double %_0.i.i1527, ptr %data.i.i.i.i.i.i.i.i.i.i1378, align 8, !noalias !3841 %477 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 764, i32 1 store double %_0.i3.i1528, ptr %477, align 8, !noalias !3841 %_0.i.i1529 = fsub double %_0.i.i1517, %_0.i3.i1522 %_0.i3.i1530 = fadd double %_0.i3.i1518, %_0.i.i1521 store double %_0.i.i1529, ptr %data.i.i.i.i.i.i.i.i1374, align 8, !noalias !3841 %478 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020, i32 1 store double %_0.i3.i1530, ptr %478, align 8, !noalias !3841 %data.i.i.i.i.i.i.i.i.i.i.i.i1360.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i1370.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1012 %data.i.i.i.i.i.i.i.i1374.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021 %data.i.i.i.i.i.i.i.i.i.i1378.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 765 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %479 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1 %w1.0.i.i.i.1 = load double, ptr %479, align 8, !noalias !3841, !noundef !3 %480 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %480, align 8, !noalias !3841, !noundef !3 %481 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2 %w2.0.i.i.i.1 = load double, ptr %481, align 8, !noalias !3841, !noundef !3 %482 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %482, align 8, !noalias !3841, !noundef !3 %483 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3 %w3.0.i.i.i.1 = load double, ptr %483, align 8, !noalias !3841, !noundef !3 %484 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %484, align 8, !noalias !3841, !noundef !3 %485 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1014 %486 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1013 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1015 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i1370.1, align 8, !noalias !3841, !noundef !3 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1012, i32 1 %a.1.i.i.i.1 = load double, ptr %488, align 8, !noalias !3841, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %486, align 8, !noalias !3841, !noundef !3 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1013, i32 1 %_84.1.i.i.i.1 = load double, ptr %489, align 8, !noalias !3841, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %490 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %491 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %485, align 8, !noalias !3841, !noundef !3 %492 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1014, i32 1 %_86.1.i.i.i.1 = load double, ptr %492, align 8, !noalias !3841, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %493 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %494 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %487, align 8, !noalias !3841, !noundef !3 %495 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1015, i32 1 %_88.1.i.i.i.1 = load double, ptr %495, align 8, !noalias !3841, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %496 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %497 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i1515.1 = fadd double %a.0.i.i.i.1, %493 %_0.i3.i1516.1 = fadd double %a.1.i.i.i.1, %494 %_0.i.i1517.1 = fsub double %a.0.i.i.i.1, %493 %_0.i3.i1518.1 = fsub double %a.1.i.i.i.1, %494 %_0.i.i1519.1 = fadd double %490, %496 %_0.i3.i1520.1 = fadd double %491, %497 %_0.i.i1521.1 = fsub double %490, %496 %_0.i3.i1522.1 = fsub double %491, %497 %_0.i.i1523.1 = fadd double %_0.i.i1515.1, %_0.i.i1519.1 %_0.i3.i1524.1 = fadd double %_0.i3.i1516.1, %_0.i3.i1520.1 store double %_0.i.i1523.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360.1, align 8, !noalias !3841 %498 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253, i32 1 store double %_0.i3.i1524.1, ptr %498, align 8, !noalias !3841 %_0.i.i1525.1 = fadd double %_0.i.i1517.1, %_0.i3.i1522.1 %_0.i3.i1526.1 = fsub double %_0.i3.i1518.1, %_0.i.i1521.1 store double %_0.i.i1525.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.1, align 8, !noalias !3841 %499 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509, i32 1 store double %_0.i3.i1526.1, ptr %499, align 8, !noalias !3841 %_0.i.i1527.1 = fsub double %_0.i.i1515.1, %_0.i.i1519.1 %_0.i3.i1528.1 = fsub double %_0.i3.i1516.1, %_0.i3.i1520.1 store double %_0.i.i1527.1, ptr %data.i.i.i.i.i.i.i.i.i.i1378.1, align 8, !noalias !3841 %500 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 765, i32 1 store double %_0.i3.i1528.1, ptr %500, align 8, !noalias !3841 %_0.i.i1529.1 = fsub double %_0.i.i1517.1, %_0.i3.i1522.1 %_0.i3.i1530.1 = fadd double %_0.i3.i1518.1, %_0.i.i1521.1 store double %_0.i.i1529.1, ptr %data.i.i.i.i.i.i.i.i1374.1, align 8, !noalias !3841 %501 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021, i32 1 store double %_0.i3.i1530.1, ptr %501, align 8, !noalias !3841 %data.i.i.i.i.i.i.i.i.i.i.i.i1360.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i1370.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %data.i.i.i.i.i.i.i.i1374.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %data.i.i.i.i.i.i.i.i.i.i1378.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 766 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %502 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.i.2 = load double, ptr %502, align 8, !noalias !3841, !noundef !3 %503 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %503, align 8, !noalias !3841, !noundef !3 %504 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2 %w2.0.i.i.i.2 = load double, ptr %504, align 8, !noalias !3841, !noundef !3 %505 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %505, align 8, !noalias !3841, !noundef !3 %506 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3 %w3.0.i.i.i.2 = load double, ptr %506, align 8, !noalias !3841, !noundef !3 %507 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %507, align 8, !noalias !3841, !noundef !3 %508 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %509 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017 %510 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i1370.2, align 8, !noalias !3841, !noundef !3 %511 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016, i32 1 %a.1.i.i.i.2 = load double, ptr %511, align 8, !noalias !3841, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %509, align 8, !noalias !3841, !noundef !3 %512 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017, i32 1 %_84.1.i.i.i.2 = load double, ptr %512, align 8, !noalias !3841, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %513 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %514 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %508, align 8, !noalias !3841, !noundef !3 %515 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018, i32 1 %_86.1.i.i.i.2 = load double, ptr %515, align 8, !noalias !3841, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %516 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %517 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %510, align 8, !noalias !3841, !noundef !3 %518 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019, i32 1 %_88.1.i.i.i.2 = load double, ptr %518, align 8, !noalias !3841, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %519 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %520 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i1515.2 = fadd double %a.0.i.i.i.2, %516 %_0.i3.i1516.2 = fadd double %a.1.i.i.i.2, %517 %_0.i.i1517.2 = fsub double %a.0.i.i.i.2, %516 %_0.i3.i1518.2 = fsub double %a.1.i.i.i.2, %517 %_0.i.i1519.2 = fadd double %513, %519 %_0.i3.i1520.2 = fadd double %514, %520 %_0.i.i1521.2 = fsub double %513, %519 %_0.i3.i1522.2 = fsub double %514, %520 %_0.i.i1523.2 = fadd double %_0.i.i1515.2, %_0.i.i1519.2 %_0.i3.i1524.2 = fadd double %_0.i3.i1516.2, %_0.i3.i1520.2 store double %_0.i.i1523.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360.2, align 8, !noalias !3841 %521 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254, i32 1 store double %_0.i3.i1524.2, ptr %521, align 8, !noalias !3841 %_0.i.i1525.2 = fadd double %_0.i.i1517.2, %_0.i3.i1522.2 %_0.i3.i1526.2 = fsub double %_0.i3.i1518.2, %_0.i.i1521.2 store double %_0.i.i1525.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.2, align 8, !noalias !3841 %522 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510, i32 1 store double %_0.i3.i1526.2, ptr %522, align 8, !noalias !3841 %_0.i.i1527.2 = fsub double %_0.i.i1515.2, %_0.i.i1519.2 %_0.i3.i1528.2 = fsub double %_0.i3.i1516.2, %_0.i3.i1520.2 store double %_0.i.i1527.2, ptr %data.i.i.i.i.i.i.i.i.i.i1378.2, align 8, !noalias !3841 %523 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 766, i32 1 store double %_0.i3.i1528.2, ptr %523, align 8, !noalias !3841 %_0.i.i1529.2 = fsub double %_0.i.i1517.2, %_0.i3.i1522.2 %_0.i3.i1530.2 = fadd double %_0.i3.i1518.2, %_0.i.i1521.2 store double %_0.i.i1529.2, ptr %data.i.i.i.i.i.i.i.i1374.2, align 8, !noalias !3841 %524 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022, i32 1 store double %_0.i3.i1530.2, ptr %524, align 8, !noalias !3841 %data.i.i.i.i.i.i.i.i.i.i.i.i1360.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i1370.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %data.i.i.i.i.i.i.i.i1374.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023 %data.i.i.i.i.i.i.i.i.i.i1378.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 767 %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %525 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1 %w1.0.i.i.i.3 = load double, ptr %525, align 8, !noalias !3841, !noundef !3 %526 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %526, align 8, !noalias !3841, !noundef !3 %527 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2 %w2.0.i.i.i.3 = load double, ptr %527, align 8, !noalias !3841, !noundef !3 %528 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %528, align 8, !noalias !3841, !noundef !3 %529 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3 %w3.0.i.i.i.3 = load double, ptr %529, align 8, !noalias !3841, !noundef !3 %530 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %530, align 8, !noalias !3841, !noundef !3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %532 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021 %533 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i1370.3, align 8, !noalias !3841, !noundef !3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020, i32 1 %a.1.i.i.i.3 = load double, ptr %534, align 8, !noalias !3841, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %532, align 8, !noalias !3841, !noundef !3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021, i32 1 %_84.1.i.i.i.3 = load double, ptr %535, align 8, !noalias !3841, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %536 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %537 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %531, align 8, !noalias !3841, !noundef !3 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022, i32 1 %_86.1.i.i.i.3 = load double, ptr %538, align 8, !noalias !3841, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %539 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %540 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %533, align 8, !noalias !3841, !noundef !3 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023, i32 1 %_88.1.i.i.i.3 = load double, ptr %541, align 8, !noalias !3841, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %542 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %543 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i1515.3 = fadd double %a.0.i.i.i.3, %539 %_0.i3.i1516.3 = fadd double %a.1.i.i.i.3, %540 %_0.i.i1517.3 = fsub double %a.0.i.i.i.3, %539 %_0.i3.i1518.3 = fsub double %a.1.i.i.i.3, %540 %_0.i.i1519.3 = fadd double %536, %542 %_0.i3.i1520.3 = fadd double %537, %543 %_0.i.i1521.3 = fsub double %536, %542 %_0.i3.i1522.3 = fsub double %537, %543 %_0.i.i1523.3 = fadd double %_0.i.i1515.3, %_0.i.i1519.3 %_0.i3.i1524.3 = fadd double %_0.i3.i1516.3, %_0.i3.i1520.3 store double %_0.i.i1523.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1360.3, align 8, !noalias !3841 %544 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255, i32 1 store double %_0.i3.i1524.3, ptr %544, align 8, !noalias !3841 %_0.i.i1525.3 = fadd double %_0.i.i1517.3, %_0.i3.i1522.3 %_0.i3.i1526.3 = fsub double %_0.i3.i1518.3, %_0.i.i1521.3 store double %_0.i.i1525.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1382.3, align 8, !noalias !3841 %545 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511, i32 1 store double %_0.i3.i1526.3, ptr %545, align 8, !noalias !3841 %_0.i.i1527.3 = fsub double %_0.i.i1515.3, %_0.i.i1519.3 %_0.i3.i1528.3 = fsub double %_0.i3.i1516.3, %_0.i3.i1520.3 store double %_0.i.i1527.3, ptr %data.i.i.i.i.i.i.i.i.i.i1378.3, align 8, !noalias !3841 %546 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 767, i32 1 store double %_0.i3.i1528.3, ptr %546, align 8, !noalias !3841 %_0.i.i1529.3 = fsub double %_0.i.i1517.3, %_0.i3.i1522.3 %_0.i3.i1530.3 = fadd double %_0.i3.i1518.3, %_0.i.i1521.3 store double %_0.i.i1529.3, ptr %data.i.i.i.i.i.i.i.i1374.3, align 8, !noalias !3841 %547 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023, i32 1 store double %_0.i3.i1530.3, ptr %547, align 8, !noalias !3841 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3841 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h69e5069eddcaebebE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4b1fe0c1c6e6fe76E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6a1949af3e51ace7E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3853 store i64 64, ptr %n.i.i, align 8, !noalias !3853 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3853 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3853 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3853 store ptr null, ptr %_16.i.i, align 8, !noalias !3853 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3853 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3853 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3853 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3853 store ptr null, ptr %_24.i.i, align 8, !noalias !3853 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3853 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3853 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3853 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3853 store ptr null, ptr %_32.i.i, align 8, !noalias !3853 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3853 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3853 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3853 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1adc2f5204063020E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3853 store ptr null, ptr %_40.i.i, align 8, !noalias !3853 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1adc2f5204063020E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3853 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %6, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %5, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %7, align 8, !noalias !3858 %8 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = fsub <4 x double> %8, %10 %19 = fadd <4 x double> %9, %15 store <4 x double> %16, ptr %scratch.0, align 8, !noalias !3858 store <4 x double> %17, ptr %3, align 8, !noalias !3858 store <4 x double> %18, ptr %2, align 8, !noalias !3858 store <4 x double> %19, ptr %4, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3858 %20 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %21 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %22 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %23 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = fsub <4 x double> %20, %22 %31 = fadd <4 x double> %21, %27 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3858 store <4 x double> %29, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3858 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3858 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 26 %_3.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_73.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !3858 %32 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %33 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %34 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %35 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %36 = bitcast <4 x double> %35 to <4 x i64> %37 = xor <4 x i64> %36, %38 = bitcast <4 x i64> %37 to <4 x double> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = fadd <4 x double> %32, %34 %41 = fsub <4 x double> %33, %39 %42 = fsub <4 x double> %32, %34 %43 = fadd <4 x double> %33, %39 store <4 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3858 store <4 x double> %41, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3858 store <4 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3858 store <4 x double> %43, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_73.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !3858 %44 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %45 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %46 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %47 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %48 = bitcast <4 x double> %47 to <4 x i64> %49 = xor <4 x i64> %48, %50 = bitcast <4 x i64> %49 to <4 x double> %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = fadd <4 x double> %44, %46 %53 = fsub <4 x double> %45, %51 %54 = fsub <4 x double> %44, %46 %55 = fadd <4 x double> %45, %51 store <4 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3858 store <4 x double> %53, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3858 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3858 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %_3.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_73.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !3858 %56 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %57 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %58 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %59 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %60 = bitcast <4 x double> %59 to <4 x i64> %61 = xor <4 x i64> %60, %62 = bitcast <4 x i64> %61 to <4 x double> %63 = shufflevector <4 x double> %62, <4 x double> poison, <4 x i32> %64 = fadd <4 x double> %56, %58 %65 = fsub <4 x double> %57, %63 %66 = fsub <4 x double> %56, %58 %67 = fadd <4 x double> %57, %63 store <4 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3858 store <4 x double> %65, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3858 store <4 x double> %66, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3858 store <4 x double> %67, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_73.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !3858 %68 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %69 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %70 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %71 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %72 = bitcast <4 x double> %71 to <4 x i64> %73 = xor <4 x i64> %72, %74 = bitcast <4 x i64> %73 to <4 x double> %75 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> %76 = fadd <4 x double> %68, %70 %77 = fsub <4 x double> %69, %75 %78 = fsub <4 x double> %68, %70 %79 = fadd <4 x double> %69, %75 store <4 x double> %76, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3858 store <4 x double> %77, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3858 store <4 x double> %78, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3858 store <4 x double> %79, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_73.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !3858 %80 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %81 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %82 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %83 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %84 = bitcast <4 x double> %83 to <4 x i64> %85 = xor <4 x i64> %84, %86 = bitcast <4 x i64> %85 to <4 x double> %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fadd <4 x double> %80, %82 %89 = fsub <4 x double> %81, %87 %90 = fsub <4 x double> %80, %82 %91 = fadd <4 x double> %81, %87 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3858 store <4 x double> %89, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3858 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3858 store <4 x double> %91, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !3858 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_73.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3858 %_74.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3858 %_75.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !3858 %_76.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !3858 %92 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %93 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %94 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %95 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %96 = bitcast <4 x double> %95 to <4 x i64> %97 = xor <4 x i64> %96, %98 = bitcast <4 x i64> %97 to <4 x double> %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fadd <4 x double> %92, %94 %101 = fsub <4 x double> %93, %99 %102 = fsub <4 x double> %92, %94 %103 = fadd <4 x double> %93, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3858 store <4 x double> %101, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3858 store <4 x double> %102, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3858 store <4 x double> %103, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !3858 tail call void @llvm.experimental.noalias.scope.decl(metadata !3862) tail call void @llvm.experimental.noalias.scope.decl(metadata !3865) tail call void @llvm.experimental.noalias.scope.decl(metadata !3867) %104 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %105 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %106 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %107 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %108 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %109 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %110 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %111 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %112 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %113 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %114 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 18 %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 22 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 26 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 30 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1adc2f5204063020E.exit.i" %iter.sroa.218.05279.i.i = phi i64 [ %119, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1adc2f5204063020E.exit.i" ] %119 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.2.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.4.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %_3.i.i.i.i.6.i, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %107, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %106, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %108, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %105, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %110, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %109, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %111, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %104, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %114, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %113, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %112, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3867, !noalias !3869 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3865, !noalias !3870 %120 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %120, align 8, !alias.scope !3865, !noalias !3870 %121 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %121, align 8, !alias.scope !3865, !noalias !3870 %122 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %122, align 8, !alias.scope !3865, !noalias !3870 %123 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %123, align 8, !alias.scope !3865, !noalias !3870 %124 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %124, align 8, !alias.scope !3865, !noalias !3870 %125 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %125, align 8, !alias.scope !3865, !noalias !3870 %126 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %126, align 8, !alias.scope !3865, !noalias !3870 %127 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %127, align 8, !alias.scope !3865, !noalias !3870 %128 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %128, align 8, !alias.scope !3865, !noalias !3870 %129 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %129, align 8, !alias.scope !3865, !noalias !3870 %130 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %130, align 8, !alias.scope !3865, !noalias !3870 %131 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %131, align 8, !alias.scope !3865, !noalias !3870 %132 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %132, align 8, !alias.scope !3865, !noalias !3870 %133 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %133, align 8, !alias.scope !3865, !noalias !3870 %134 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %134, align 8, !alias.scope !3865, !noalias !3870 %135 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %136 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %139 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %139, %137 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %138, <4 x double> %136, <4 x double> %140) #23 %142 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %145 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %146 = fmul <4 x double> %145, %143 %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %144, <4 x double> %142, <4 x double> %146) #23 %148 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %151 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %152 = fmul <4 x double> %151, %149 %153 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %150, <4 x double> %148, <4 x double> %152) #23 %154 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %158 = fmul <4 x double> %157, %155 %159 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %156, <4 x double> %154, <4 x double> %158) #23 %160 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %161 = shufflevector <4 x double> %160, <4 x double> poison, <4 x i32> %162 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %163, %161 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %162, <4 x double> %160, <4 x double> %164) #23 %166 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %167 = shufflevector <4 x double> %166, <4 x double> poison, <4 x i32> %168 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %170 = fmul <4 x double> %169, %167 %171 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %168, <4 x double> %166, <4 x double> %170) #23 %172 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %175, %173 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %174, <4 x double> %172, <4 x double> %176) #23 %178 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %179 = shufflevector <4 x double> %178, <4 x double> poison, <4 x i32> %180 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %181, %179 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %180, <4 x double> %178, <4 x double> %182) #23 %184 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %188 = fmul <4 x double> %187, %185 %189 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %186, <4 x double> %184, <4 x double> %188) #23 %190 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %192 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %194 = fmul <4 x double> %193, %191 %195 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %192, <4 x double> %190, <4 x double> %194) #23 %196 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %199 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %200 = fmul <4 x double> %199, %197 %201 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %198, <4 x double> %196, <4 x double> %200) #23 %202 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %205 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %205, %203 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %204, <4 x double> %202, <4 x double> %206) #23 %208 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %211, %209 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %210, <4 x double> %208, <4 x double> %212) #23 %214 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %217, %215 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %216, <4 x double> %214, <4 x double> %218) #23 %220 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %223, %221 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %222, <4 x double> %220, <4 x double> %224) #23 %226 = fadd <4 x double> %135, %183 %227 = fsub <4 x double> %135, %183 %228 = fadd <4 x double> %159, %207 %229 = fsub <4 x double> %159, %207 %230 = fadd <4 x double> %147, %195 %231 = fsub <4 x double> %147, %195 %232 = fadd <4 x double> %171, %219 %233 = fsub <4 x double> %171, %219 %234 = fadd <4 x double> %141, %189 %235 = fsub <4 x double> %141, %189 %236 = fadd <4 x double> %165, %213 %237 = fsub <4 x double> %165, %213 %238 = fadd <4 x double> %153, %201 %239 = fsub <4 x double> %153, %201 %240 = fadd <4 x double> %177, %225 %241 = fsub <4 x double> %177, %225 %242 = bitcast <4 x double> %229 to <4 x i64> %243 = bitcast <4 x double> %233 to <4 x i64> %244 = bitcast <4 x double> %237 to <4 x i64> %245 = bitcast <4 x double> %241 to <4 x i64> %246 = xor <4 x i64> %242, %247 = bitcast <4 x i64> %246 to <4 x double> %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = xor <4 x i64> %243, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = xor <4 x i64> %244, %253 = bitcast <4 x i64> %252 to <4 x double> %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = xor <4 x i64> %245, %256 = bitcast <4 x i64> %255 to <4 x double> %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = fadd <4 x double> %226, %228 %259 = fsub <4 x double> %227, %248 %260 = fsub <4 x double> %226, %228 %261 = fadd <4 x double> %227, %248 %262 = fadd <4 x double> %230, %232 %263 = fsub <4 x double> %231, %251 %264 = fsub <4 x double> %230, %232 %265 = fadd <4 x double> %231, %251 %266 = fadd <4 x double> %234, %236 %267 = fsub <4 x double> %235, %254 %268 = fsub <4 x double> %234, %236 %269 = fadd <4 x double> %235, %254 %270 = fadd <4 x double> %238, %240 %271 = fsub <4 x double> %239, %257 %272 = fsub <4 x double> %238, %240 %273 = fadd <4 x double> %239, %257 %274 = bitcast <4 x double> %263 to <4 x i64> %275 = xor <4 x i64> %274, %276 = bitcast <4 x i64> %275 to <4 x double> %277 = shufflevector <4 x double> %276, <4 x double> poison, <4 x i32> %278 = fadd <4 x double> %263, %277 %279 = fmul <4 x double> %278, %280 = bitcast <4 x double> %264 to <4 x i64> %281 = xor <4 x i64> %280, %282 = bitcast <4 x i64> %281 to <4 x double> %283 = shufflevector <4 x double> %282, <4 x double> poison, <4 x i32> %284 = bitcast <4 x double> %265 to <4 x i64> %285 = xor <4 x i64> %284, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = fadd <4 x double> %265, %287 %289 = fmul <4 x double> %288, %290 = fadd <4 x double> %258, %262 %291 = fadd <4 x double> %259, %279 %292 = fsub <4 x double> %260, %283 %293 = fsub <4 x double> %261, %289 %294 = fsub <4 x double> %258, %262 %295 = fsub <4 x double> %259, %279 %296 = fadd <4 x double> %260, %283 %297 = fadd <4 x double> %261, %289 %298 = bitcast <4 x double> %271 to <4 x i64> %299 = xor <4 x i64> %298, %300 = bitcast <4 x i64> %299 to <4 x double> %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fadd <4 x double> %271, %301 %303 = fmul <4 x double> %302, %304 = bitcast <4 x double> %272 to <4 x i64> %305 = xor <4 x i64> %304, %306 = bitcast <4 x i64> %305 to <4 x double> %307 = shufflevector <4 x double> %306, <4 x double> poison, <4 x i32> %308 = bitcast <4 x double> %273 to <4 x i64> %309 = xor <4 x i64> %308, %310 = bitcast <4 x i64> %309 to <4 x double> %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = fadd <4 x double> %273, %311 %313 = fmul <4 x double> %312, %314 = fadd <4 x double> %266, %270 %315 = fadd <4 x double> %267, %303 %316 = fsub <4 x double> %268, %307 %317 = fsub <4 x double> %269, %313 %318 = fsub <4 x double> %266, %270 %319 = fsub <4 x double> %267, %303 %320 = fadd <4 x double> %268, %307 %321 = fadd <4 x double> %269, %313 %322 = fadd <4 x double> %290, %314 store <4 x double> %322, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %323 = fsub <4 x double> %290, %314 store <4 x double> %323, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %324 = fmul <4 x double> %315, %325 = shufflevector <4 x double> %324, <4 x double> poison, <4 x i32> %326 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %315, <4 x double> %325) #23 %327 = fadd <4 x double> %326, %291 store <4 x double> %327, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %328 = fsub <4 x double> %291, %326 store <4 x double> %328, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %329 = bitcast <4 x double> %316 to <4 x i64> %330 = xor <4 x i64> %329, %331 = bitcast <4 x i64> %330 to <4 x double> %332 = shufflevector <4 x double> %331, <4 x double> poison, <4 x i32> %333 = fadd <4 x double> %316, %332 %334 = fmul <4 x double> %333, %335 = fadd <4 x double> %292, %334 store <4 x double> %335, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %336 = fsub <4 x double> %292, %334 store <4 x double> %336, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %337 = fmul <4 x double> %317, %338 = shufflevector <4 x double> %337, <4 x double> poison, <4 x i32> %339 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %317, <4 x double> %338) #23 %340 = bitcast <4 x double> %318 to <4 x i64> %341 = xor <4 x i64> %340, %342 = bitcast <4 x i64> %341 to <4 x double> %343 = shufflevector <4 x double> %342, <4 x double> poison, <4 x i32> %344 = fmul <4 x double> %319, %345 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> %346 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %319, <4 x double> %345) #23 %.sink.i94.i = fadd <4 x double> %294, %343 %.sink5280.i.i = fsub <4 x double> %294, %343 %.sink5281.i.i = fsub <4 x double> %293, %339 %.sink5282.i.i = fadd <4 x double> %339, %293 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 store <4 x double> %.sink.i94.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %347 = fsub <4 x double> %295, %346 store <4 x double> %347, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %348 = fadd <4 x double> %346, %295 store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %349 = bitcast <4 x double> %320 to <4 x i64> %350 = xor <4 x i64> %349, %351 = bitcast <4 x i64> %350 to <4 x double> %352 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> %353 = fmul <4 x double> %321, %354 = shufflevector <4 x double> %353, <4 x double> poison, <4 x i32> %355 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %321, <4 x double> %354) #23 %.pn5288.in.i.i = fadd <4 x double> %320, %352 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %296, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %296, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %356 = fsub <4 x double> %297, %355 store <4 x double> %356, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %357 = fadd <4 x double> %297, %355 store <4 x double> %357, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3862, !noalias !3871 %exitcond.not.i.i = icmp eq i64 %119, 2 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hf765d98339f1b60fE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17hf765d98339f1b60fE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3853 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6a739394c90834d8E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3872 store i64 1024, ptr %n.i.i, align 8, !noalias !3872 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3872 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3872 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3872 store ptr null, ptr %_16.i.i, align 8, !noalias !3872 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3872 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3872 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3872 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3872 store ptr null, ptr %_24.i.i, align 8, !noalias !3872 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3872 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3872 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3872 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3872 store ptr null, ptr %_32.i.i, align 8, !noalias !3872 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3872 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3872 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3872 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85739ce8b1294261E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3872 store ptr null, ptr %_40.i.i, align 8, !noalias !3872 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85739ce8b1294261E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3872 tail call void @llvm.experimental.noalias.scope.decl(metadata !3877) tail call void @llvm.experimental.noalias.scope.decl(metadata !3880) tail call void @llvm.experimental.noalias.scope.decl(metadata !3882) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85739ce8b1294261E.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85739ce8b1294261E.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3877, !noalias !3884 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3882, !noalias !3885 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3880, !noalias !3886 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !3880, !noalias !3886 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !3880, !noalias !3886 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !3880, !noalias !3886 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !3880, !noalias !3886 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !3880, !noalias !3886 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !3880, !noalias !3886 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !3880, !noalias !3886 %exitcond.not.i.i = icmp eq i64 %16, 64 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3887) tail call void @llvm.experimental.noalias.scope.decl(metadata !3890) tail call void @llvm.experimental.noalias.scope.decl(metadata !3892) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %122 = add nuw nsw i64 %iter.sroa.104.02174.i.i, 1 %exitcond.not.i = icmp eq i64 %122, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter.sroa.104.02174.i.i = phi i64 [ %122, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %130, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %131 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %132, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %133, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %134 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %135, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %136, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %137 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %138, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %139, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %140 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %141, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %142, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %143 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %144, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %145, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %146 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %147, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %148, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %149 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %150, align 8, !alias.scope !3892, !noalias !3894, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %151 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %165, %bb58.i.i ] %165 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !3887, !noalias !3895 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3887, !noalias !3895 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !3887, !noalias !3895 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !3887, !noalias !3895 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !3887, !noalias !3895 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !3887, !noalias !3895 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !3887, !noalias !3895 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !3887, !noalias !3895 %166 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %168 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %172 = bitcast <4 x double> %171 to <4 x i64> %173 = xor <4 x i64> %170, %174 = bitcast <4 x i64> %173 to <4 x double> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = xor <4 x i64> %172, %177 = bitcast <4 x i64> %176 to <4 x double> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %181 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %182 = fadd <4 x double> %166, %168 %183 = fsub <4 x double> %167, %175 %184 = fsub <4 x double> %166, %168 %185 = fadd <4 x double> %167, %175 %186 = fadd <4 x double> %179, %181 %187 = fsub <4 x double> %180, %178 %188 = bitcast <4 x double> %187 to <4 x i64> %189 = fsub <4 x double> %179, %181 %190 = bitcast <4 x double> %189 to <4 x i64> %191 = fadd <4 x double> %180, %178 %192 = xor <4 x i64> %188, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %194 %196 = fmul <4 x double> %195, %197 = xor <4 x i64> %190, %198 = bitcast <4 x i64> %197 to <4 x double> %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = bitcast <4 x double> %191 to <4 x i64> %201 = xor <4 x i64> %200, %202 = bitcast <4 x i64> %201 to <4 x double> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fadd <4 x double> %191, %203 %205 = fmul <4 x double> %204, %206 = fadd <4 x double> %182, %186 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %207 = fadd <4 x double> %183, %196 %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %152, %208 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %207, <4 x double> %209) #23 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %211 = fsub <4 x double> %184, %199 %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %154, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %211, <4 x double> %213) #23 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %215 = fsub <4 x double> %185, %205 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %156, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %219 = fsub <4 x double> %182, %186 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %158, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %223 = fsub <4 x double> %183, %196 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %160, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %227 = fadd <4 x double> %184, %199 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %162, %228 %230 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %227, <4 x double> %229) #23 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %231 = fadd <4 x double> %185, %205 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %164, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %231, <4 x double> %233) #23 store <4 x double> %234, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !3890, !noalias !3896 %exitcond.not.i38.i = icmp eq i64 %165, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3897) tail call void @llvm.experimental.noalias.scope.decl(metadata !3900) tail call void @llvm.experimental.noalias.scope.decl(metadata !3902) br label %bb30.i70.i bb28.loopexit.i132.i: ; preds = %bb58.i105.i br i1 %_2.i.i.i.i133.i, label %bb30.i70.i, label %bb18.i.i.i.i.i bb30.i70.i: ; preds = %bb28.loopexit.i132.i, %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i %_2.i.i.i.i133.i = phi i1 [ false, %bb28.loopexit.i132.i ], [ true, %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i ] %iter.sroa.104.02174.i71.i = phi i64 [ 1, %bb28.loopexit.i132.i ], [ 0, %_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i = shl nuw nsw i64 %iter.sroa.104.02174.i71.i, 5 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i75.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i76.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i77.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i78.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i.i.i79.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %data.i.i.i.i.i.i.i.i.i80.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i %start1.i.i.i.i.i.i.i81.i = shl nuw nsw i64 %iter.sroa.104.02174.i71.i, 8 %data.i.i.i.i.i.i.i82.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i81.i %235 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 128 %236 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 64 %237 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 32 %238 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 96 %239 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 192 %240 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 160 %241 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 224 %start1.i.i.i.i.i83.i = shl nuw nsw i64 %iter.sroa.104.02174.i71.i, 6 %242 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 7, i32 1 %w7.1.i84.i = load double, ptr %242, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %243 = insertelement <4 x double> poison, double %w7.1.i84.i, i64 0 %244 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 7 %w7.0.i85.i = load double, ptr %244, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i114.sroa.0.0.vec.insert.i86.i = insertelement <2 x double> poison, double %w7.0.i85.i, i64 0 %245 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 6, i32 1 %w6.1.i87.i = load double, ptr %245, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %246 = insertelement <4 x double> poison, double %w6.1.i87.i, i64 0 %247 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 6 %w6.0.i88.i = load double, ptr %247, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i118.sroa.0.0.vec.insert.i89.i = insertelement <2 x double> poison, double %w6.0.i88.i, i64 0 %248 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 5, i32 1 %w5.1.i90.i = load double, ptr %248, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %249 = insertelement <4 x double> poison, double %w5.1.i90.i, i64 0 %250 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 5 %w5.0.i91.i = load double, ptr %250, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i122.sroa.0.0.vec.insert.i92.i = insertelement <2 x double> poison, double %w5.0.i91.i, i64 0 %251 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 4, i32 1 %w4.1.i93.i = load double, ptr %251, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %252 = insertelement <4 x double> poison, double %w4.1.i93.i, i64 0 %253 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 4 %w4.0.i94.i = load double, ptr %253, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i126.sroa.0.0.vec.insert.i95.i = insertelement <2 x double> poison, double %w4.0.i94.i, i64 0 %254 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 3, i32 1 %w3.1.i96.i = load double, ptr %254, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %255 = insertelement <4 x double> poison, double %w3.1.i96.i, i64 0 %256 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 3 %w3.0.i97.i = load double, ptr %256, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i130.sroa.0.0.vec.insert.i98.i = insertelement <2 x double> poison, double %w3.0.i97.i, i64 0 %257 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 2, i32 1 %w2.1.i99.i = load double, ptr %257, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %258 = insertelement <4 x double> poison, double %w2.1.i99.i, i64 0 %259 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 2 %w2.0.i100.i = load double, ptr %259, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i134.sroa.0.0.vec.insert.i101.i = insertelement <2 x double> poison, double %w2.0.i100.i, i64 0 %260 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 1, i32 1 %w1.1.i102.i = load double, ptr %260, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %261 = insertelement <4 x double> poison, double %w1.1.i102.i, i64 0 %262 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i83.i, i64 1 %w1.0.i103.i = load double, ptr %262, align 8, !alias.scope !3902, !noalias !3904, !noundef !3 %value.i138.sroa.0.0.vec.insert.i104.i = insertelement <2 x double> poison, double %w1.0.i103.i, i64 0 %263 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i104.i, <2 x double> poison, <4 x i32> zeroinitializer %264 = shufflevector <4 x double> %261, <4 x double> poison, <4 x i32> zeroinitializer %265 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i101.i, <2 x double> poison, <4 x i32> zeroinitializer %266 = shufflevector <4 x double> %258, <4 x double> poison, <4 x i32> zeroinitializer %267 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i98.i, <2 x double> poison, <4 x i32> zeroinitializer %268 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> zeroinitializer %269 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i95.i, <2 x double> poison, <4 x i32> zeroinitializer %270 = shufflevector <4 x double> %252, <4 x double> poison, <4 x i32> zeroinitializer %271 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i92.i, <2 x double> poison, <4 x i32> zeroinitializer %272 = shufflevector <4 x double> %249, <4 x double> poison, <4 x i32> zeroinitializer %273 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i89.i, <2 x double> poison, <4 x i32> zeroinitializer %274 = shufflevector <4 x double> %246, <4 x double> poison, <4 x i32> zeroinitializer %275 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i86.i, <2 x double> poison, <4 x i32> zeroinitializer %276 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i105.i bb58.i105.i: ; preds = %bb58.i105.i, %bb30.i70.i %iter8.sroa.106.02113.i106.i = phi i64 [ 0, %bb30.i70.i ], [ %277, %bb58.i105.i ] %277 = add nuw nsw i64 %iter8.sroa.106.02113.i106.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i107.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i, i64 %iter8.sroa.106.02113.i106.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i108.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i109.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i75.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i110.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i76.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i111.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i77.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i112.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i78.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i113.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i79.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i114.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i80.i, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i115.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i82.i, i64 %iter8.sroa.106.02113.i106.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i116.i = getelementptr inbounds %"fft_simd::c64x2", ptr %237, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %236, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %238, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %235, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %240, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i.i.i35.i.i.i.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %239, i64 %iter8.sroa.106.02113.i106.i %_3.i.i.i.i.i38.i.i.i.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %241, i64 %iter8.sroa.106.02113.i106.i %x0.sroa.0.0.copyload.i123.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i107.i, align 8, !alias.scope !3897, !noalias !3905 %x1.sroa.0.0.copyload.i124.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i108.i, align 8, !alias.scope !3897, !noalias !3905 %x2.sroa.0.0.copyload.i125.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i109.i, align 8, !alias.scope !3897, !noalias !3905 %x3.sroa.0.0.copyload.i126.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i110.i, align 8, !alias.scope !3897, !noalias !3905 %x4.sroa.0.0.copyload.i127.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i111.i, align 8, !alias.scope !3897, !noalias !3905 %x5.sroa.0.0.copyload.i128.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i112.i, align 8, !alias.scope !3897, !noalias !3905 %x6.sroa.0.0.copyload.i129.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i113.i, align 8, !alias.scope !3897, !noalias !3905 %x7.sroa.0.0.copyload.i130.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i114.i, align 8, !alias.scope !3897, !noalias !3905 %278 = fadd <4 x double> %x0.sroa.0.0.copyload.i123.i, %x4.sroa.0.0.copyload.i127.i %279 = fsub <4 x double> %x0.sroa.0.0.copyload.i123.i, %x4.sroa.0.0.copyload.i127.i %280 = fadd <4 x double> %x2.sroa.0.0.copyload.i125.i, %x6.sroa.0.0.copyload.i129.i %281 = fsub <4 x double> %x2.sroa.0.0.copyload.i125.i, %x6.sroa.0.0.copyload.i129.i %282 = bitcast <4 x double> %281 to <4 x i64> %283 = fsub <4 x double> %x3.sroa.0.0.copyload.i126.i, %x7.sroa.0.0.copyload.i130.i %284 = bitcast <4 x double> %283 to <4 x i64> %285 = xor <4 x i64> %282, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = xor <4 x i64> %284, %289 = bitcast <4 x i64> %288 to <4 x double> %290 = shufflevector <4 x double> %289, <4 x double> poison, <4 x i32> %291 = fadd <4 x double> %x1.sroa.0.0.copyload.i124.i, %x5.sroa.0.0.copyload.i128.i %292 = fsub <4 x double> %x1.sroa.0.0.copyload.i124.i, %x5.sroa.0.0.copyload.i128.i %293 = fadd <4 x double> %x3.sroa.0.0.copyload.i126.i, %x7.sroa.0.0.copyload.i130.i %294 = fadd <4 x double> %278, %280 %295 = fsub <4 x double> %279, %287 %296 = fsub <4 x double> %278, %280 %297 = fadd <4 x double> %279, %287 %298 = fadd <4 x double> %291, %293 %299 = fsub <4 x double> %292, %290 %300 = bitcast <4 x double> %299 to <4 x i64> %301 = fsub <4 x double> %291, %293 %302 = bitcast <4 x double> %301 to <4 x i64> %303 = fadd <4 x double> %292, %290 %304 = xor <4 x i64> %300, %305 = bitcast <4 x i64> %304 to <4 x double> %306 = shufflevector <4 x double> %305, <4 x double> poison, <4 x i32> %307 = fadd <4 x double> %299, %306 %308 = fmul <4 x double> %307, %309 = xor <4 x i64> %302, %310 = bitcast <4 x i64> %309 to <4 x double> %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = bitcast <4 x double> %303 to <4 x i64> %313 = xor <4 x i64> %312, %314 = bitcast <4 x i64> %313 to <4 x double> %315 = shufflevector <4 x double> %314, <4 x double> poison, <4 x i32> %316 = fadd <4 x double> %303, %315 %317 = fmul <4 x double> %316, %318 = fadd <4 x double> %294, %298 store <4 x double> %318, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i115.i, align 8, !alias.scope !3900, !noalias !3906 %319 = fadd <4 x double> %295, %308 %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = fmul <4 x double> %264, %320 %322 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %263, <4 x double> %319, <4 x double> %321) #23 store <4 x double> %322, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i116.i, align 8, !alias.scope !3900, !noalias !3906 %323 = fsub <4 x double> %296, %311 %324 = shufflevector <4 x double> %323, <4 x double> poison, <4 x i32> %325 = fmul <4 x double> %266, %324 %326 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %265, <4 x double> %323, <4 x double> %325) #23 store <4 x double> %326, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i117.i, align 8, !alias.scope !3900, !noalias !3906 %327 = fsub <4 x double> %297, %317 %328 = shufflevector <4 x double> %327, <4 x double> poison, <4 x i32> %329 = fmul <4 x double> %268, %328 %330 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %267, <4 x double> %327, <4 x double> %329) #23 store <4 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i118.i, align 8, !alias.scope !3900, !noalias !3906 %331 = fsub <4 x double> %294, %298 %332 = shufflevector <4 x double> %331, <4 x double> poison, <4 x i32> %333 = fmul <4 x double> %270, %332 %334 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %269, <4 x double> %331, <4 x double> %333) #23 store <4 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i119.i, align 8, !alias.scope !3900, !noalias !3906 %335 = fsub <4 x double> %295, %308 %336 = shufflevector <4 x double> %335, <4 x double> poison, <4 x i32> %337 = fmul <4 x double> %272, %336 %338 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %271, <4 x double> %335, <4 x double> %337) #23 store <4 x double> %338, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i120.i, align 8, !alias.scope !3900, !noalias !3906 %339 = fadd <4 x double> %296, %311 %340 = shufflevector <4 x double> %339, <4 x double> poison, <4 x i32> %341 = fmul <4 x double> %274, %340 %342 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %273, <4 x double> %339, <4 x double> %341) #23 store <4 x double> %342, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i121.i, align 8, !alias.scope !3900, !noalias !3906 %343 = fadd <4 x double> %297, %317 %344 = shufflevector <4 x double> %343, <4 x double> poison, <4 x i32> %345 = fmul <4 x double> %276, %344 %346 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %275, <4 x double> %343, <4 x double> %345) #23 store <4 x double> %346, ptr %_3.i.i.i.i.i38.i.i.i.i122.i, align 8, !alias.scope !3900, !noalias !3906 %exitcond.not.i131.i = icmp eq i64 %277, 32 br i1 %exitcond.not.i131.i, label %bb28.loopexit.i132.i, label %bb58.i105.i bb18.i.i.i.i.i: ; preds = %bb28.loopexit.i132.i, %bb18.i.i.i.i.i %iter6.i.i.i.i.sroa.22.0173.i = phi i64 [ %350, %bb18.i.i.i.i.i ], [ 0, %bb28.loopexit.i132.i ] %347 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0173.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.sroa.22.0173.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %iter6.i.i.i.i.sroa.22.0173.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.sroa.22.0173.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.sroa.22.0173.i %_51.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3872 %_52.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3872 %348 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %349 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3872 store <4 x double> %349, ptr %_3.i.i.i.i.i, align 8, !noalias !3872 %350 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0173.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %347 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %347 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %347 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %347 %_51.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3872 %_52.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !3872 %351 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 %352 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %351, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !3872 store <4 x double> %352, ptr %_3.i.i.i.i.i.1, align 8, !noalias !3872 %exitcond174.not.i.1 = icmp eq i64 %350, 256 br i1 %exitcond174.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h21df8e805f61acafE.exit, label %bb18.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h21df8e805f61acafE.exit: ; preds = %bb18.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3872 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6a92029e72d6b48aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3907 store i64 16, ptr %n.i, align 8, !noalias !3907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3907 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3907 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3907 store ptr null, ptr %_16.i, align 8, !noalias !3907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3907 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3907 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3907 store ptr null, ptr %_24.i, align 8, !noalias !3907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3907 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3907 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3907 store ptr null, ptr %_32.i, align 8, !noalias !3907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3907 store i64 %w.1, ptr %_34.i, align 8, !noalias !3907 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb24.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3907 store ptr null, ptr %_40.i, align 8, !noalias !3907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb24.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3907 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %6 = load <2 x double>, ptr %buf.0, align 8, !noalias !3910 %7 = load <2 x double>, ptr %4, align 8, !noalias !3910 %8 = load <2 x double>, ptr %3, align 8, !noalias !3910 %9 = load <2 x double>, ptr %5, align 8, !noalias !3910 %10 = fadd <2 x double> %6, %8 %11 = fadd <2 x double> %7, %9 %12 = fadd <2 x double> %10, %11 store <2 x double> %12, ptr %scratch.0, align 8, !noalias !3910 %13 = fsub <2 x double> %6, %8 %14 = fsub <2 x double> %7, %9 %15 = shufflevector <2 x double> %14, <2 x double> poison, <2 x i32> %16 = fsub <2 x double> %13, %15 %17 = fadd <2 x double> %13, %15 %18 = shufflevector <2 x double> %16, <2 x double> %17, <2 x i32> store <2 x double> %18, ptr %1, align 8, !noalias !3910 %19 = fsub <2 x double> %10, %11 store <2 x double> %19, ptr %0, align 8, !noalias !3910 %20 = shufflevector <2 x double> %17, <2 x double> %16, <2 x i32> store <2 x double> %20, ptr %2, align 8, !noalias !3910 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %_3.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %21 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3910 %22 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !3910 %23 = load <2 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !3910 %24 = load <2 x double>, ptr %_3.i.i.i.i.1, align 8, !noalias !3910 %25 = fadd <2 x double> %21, %23 %26 = fadd <2 x double> %22, %24 %27 = fadd <2 x double> %25, %26 store <2 x double> %27, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3910 %28 = fsub <2 x double> %21, %23 %29 = fsub <2 x double> %22, %24 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> %31 = fsub <2 x double> %28, %30 %32 = fadd <2 x double> %28, %30 %33 = shufflevector <2 x double> %31, <2 x double> %32, <2 x i32> store <2 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3910 %34 = fsub <2 x double> %25, %26 store <2 x double> %34, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3910 %35 = shufflevector <2 x double> %32, <2 x double> %31, <2 x i32> store <2 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !3910 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %36 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3910 %37 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !3910 %38 = load <2 x double>, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !3910 %39 = load <2 x double>, ptr %_3.i.i.i.i.2, align 8, !noalias !3910 %40 = fadd <2 x double> %36, %38 %41 = fadd <2 x double> %37, %39 %42 = fadd <2 x double> %40, %41 store <2 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3910 %43 = fsub <2 x double> %36, %38 %44 = fsub <2 x double> %37, %39 %45 = shufflevector <2 x double> %44, <2 x double> poison, <2 x i32> %46 = fsub <2 x double> %43, %45 %47 = fadd <2 x double> %43, %45 %48 = shufflevector <2 x double> %46, <2 x double> %47, <2 x i32> store <2 x double> %48, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3910 %49 = fsub <2 x double> %40, %41 store <2 x double> %49, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3910 %50 = shufflevector <2 x double> %47, <2 x double> %46, <2 x i32> store <2 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !3910 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %_3.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %51 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3910 %52 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !3910 %53 = load <2 x double>, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !3910 %54 = load <2 x double>, ptr %_3.i.i.i.i.3, align 8, !noalias !3910 %55 = fadd <2 x double> %51, %53 %56 = fadd <2 x double> %52, %54 %57 = fadd <2 x double> %55, %56 store <2 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3910 %58 = fsub <2 x double> %51, %53 %59 = fsub <2 x double> %52, %54 %60 = shufflevector <2 x double> %59, <2 x double> poison, <2 x i32> %61 = fsub <2 x double> %58, %60 %62 = fadd <2 x double> %58, %60 %63 = shufflevector <2 x double> %61, <2 x double> %62, <2 x i32> store <2 x double> %63, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3910 %64 = fsub <2 x double> %55, %56 store <2 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3910 %65 = shufflevector <2 x double> %62, <2 x double> %61, <2 x i32> store <2 x double> %65, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !3910 %66 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %67 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %68 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %69 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %70 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %70, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %71 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %71, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %72 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %72, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %73 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 2 %74 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 1 %75 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 3 %76 = fneg <4 x double> %wide.masked.gather1 %77 = fneg <4 x double> %wide.masked.gather3 %78 = fneg <4 x double> %wide.masked.gather5 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %79 = getelementptr inbounds i8, <4 x ptr> %66, i64 8 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %79, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %74, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %80 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 1, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %80, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %81 = fmul <4 x double> %wide.masked.gather9, %76 %82 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather8, <4 x double> %81) %83 = fmul <4 x double> %wide.masked.gather1, %wide.masked.gather8 %84 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather9, <4 x double> %83) %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %73, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %85 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 2, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %86 = fmul <4 x double> %wide.masked.gather11, %77 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %wide.masked.gather10, <4 x double> %86) %88 = fmul <4 x double> %wide.masked.gather3, %wide.masked.gather10 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %wide.masked.gather11, <4 x double> %88) %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %75, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %90 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %66, i64 3, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %90, i32 8, <4 x i1> , <4 x double> poison), !noalias !3907 %91 = fmul <4 x double> %wide.masked.gather13, %78 %92 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %wide.masked.gather12, <4 x double> %91) %93 = fmul <4 x double> %wide.masked.gather5, %wide.masked.gather12 %94 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %wide.masked.gather13, <4 x double> %93) %95 = fadd <4 x double> %wide.masked.gather6, %87 %96 = fadd <4 x double> %wide.masked.gather7, %89 %97 = fsub <4 x double> %wide.masked.gather6, %87 %98 = fsub <4 x double> %wide.masked.gather7, %89 %99 = fadd <4 x double> %82, %92 %100 = fadd <4 x double> %84, %94 %101 = fsub <4 x double> %82, %92 %102 = fsub <4 x double> %84, %94 %103 = fadd <4 x double> %95, %99 %104 = fadd <4 x double> %96, %100 %interleaved.vec = shufflevector <4 x double> %103, <4 x double> %104, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !3907 %105 = fsub <4 x double> %97, %102 %106 = fadd <4 x double> %98, %101 %107 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec14 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec14, ptr %107, align 8, !noalias !3907 %108 = fsub <4 x double> %95, %99 %109 = fsub <4 x double> %96, %100 %110 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec15 = shufflevector <4 x double> %108, <4 x double> %109, <8 x i32> store <8 x double> %interleaved.vec15, ptr %110, align 8, !noalias !3907 %111 = fadd <4 x double> %97, %102 %112 = fsub <4 x double> %98, %101 %113 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec16 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> store <8 x double> %interleaved.vec16, ptr %113, align 8, !noalias !3907 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3907 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6b0f5a7e3979ea8bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3913 store i64 256, ptr %n.i.i, align 8, !noalias !3913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3913 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3913 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3913 store ptr null, ptr %_16.i.i, align 8, !noalias !3913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3913 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3913 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3913 store ptr null, ptr %_24.i.i, align 8, !noalias !3913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3913 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3913 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3913 store ptr null, ptr %_32.i.i, align 8, !noalias !3913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3913 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3913 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88104d1e3637d1bcE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3913 store ptr null, ptr %_40.i.i, align 8, !noalias !3913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88104d1e3637d1bcE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3913 tail call void @llvm.experimental.noalias.scope.decl(metadata !3918) tail call void @llvm.experimental.noalias.scope.decl(metadata !3921) tail call void @llvm.experimental.noalias.scope.decl(metadata !3923) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88104d1e3637d1bcE.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88104d1e3637d1bcE.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3918, !noalias !3925 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3923, !noalias !3926 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3921, !noalias !3927 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !3921, !noalias !3927 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !3921, !noalias !3927 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !3921, !noalias !3927 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !3921, !noalias !3927 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !3921, !noalias !3927 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !3921, !noalias !3927 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !3921, !noalias !3927 %exitcond.not.i.i = icmp eq i64 %16, 16 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3928) tail call void @llvm.experimental.noalias.scope.decl(metadata !3931) tail call void @llvm.experimental.noalias.scope.decl(metadata !3933) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %122 = add nuw nsw i64 %iter.sroa.104.02174.i.i, 1 %exitcond.not.i = icmp eq i64 %122, 4 br i1 %exitcond.not.i, label %bb13.i.i.i.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter.sroa.104.02174.i.i = phi i64 [ %122, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %130, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %131 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %132, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %133, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %134 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %135, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %136, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %137 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %138, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %139, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %140 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %141, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %142, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %143 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %144, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %145, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %146 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %147, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %148, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %149 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %150, align 8, !alias.scope !3933, !noalias !3935, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %151 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %165, %bb58.i.i ] %165 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !3928, !noalias !3936 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3928, !noalias !3936 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !3928, !noalias !3936 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !3928, !noalias !3936 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !3928, !noalias !3936 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !3928, !noalias !3936 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !3928, !noalias !3936 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !3928, !noalias !3936 %166 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %168 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %172 = bitcast <4 x double> %171 to <4 x i64> %173 = xor <4 x i64> %170, %174 = bitcast <4 x i64> %173 to <4 x double> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = xor <4 x i64> %172, %177 = bitcast <4 x i64> %176 to <4 x double> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %181 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %182 = fadd <4 x double> %166, %168 %183 = fsub <4 x double> %167, %175 %184 = fsub <4 x double> %166, %168 %185 = fadd <4 x double> %167, %175 %186 = fadd <4 x double> %179, %181 %187 = fsub <4 x double> %180, %178 %188 = bitcast <4 x double> %187 to <4 x i64> %189 = fsub <4 x double> %179, %181 %190 = bitcast <4 x double> %189 to <4 x i64> %191 = fadd <4 x double> %180, %178 %192 = xor <4 x i64> %188, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %194 %196 = fmul <4 x double> %195, %197 = xor <4 x i64> %190, %198 = bitcast <4 x i64> %197 to <4 x double> %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = bitcast <4 x double> %191 to <4 x i64> %201 = xor <4 x i64> %200, %202 = bitcast <4 x i64> %201 to <4 x double> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fadd <4 x double> %191, %203 %205 = fmul <4 x double> %204, %206 = fadd <4 x double> %182, %186 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %207 = fadd <4 x double> %183, %196 %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %152, %208 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %207, <4 x double> %209) #23 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %211 = fsub <4 x double> %184, %199 %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %154, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %211, <4 x double> %213) #23 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %215 = fsub <4 x double> %185, %205 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %156, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %219 = fsub <4 x double> %182, %186 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %158, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %223 = fsub <4 x double> %183, %196 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %160, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %227 = fadd <4 x double> %184, %199 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %162, %228 %230 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %227, <4 x double> %229) #23 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %231 = fadd <4 x double> %185, %205 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %164, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %231, <4 x double> %233) #23 store <4 x double> %234, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !3931, !noalias !3937 %exitcond.not.i38.i = icmp eq i64 %165, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i bb13.i.i.i.i: ; preds = %bb28.loopexit.i.i, %bb13.i.i.i.i %iter.i.i.i.sroa.22.0149.i = phi i64 [ %235, %bb13.i.i.i.i ], [ 0, %bb28.loopexit.i.i ] %235 = add nuw nsw i64 %iter.i.i.i.sroa.22.0149.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0149.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0149.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0149.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.i.i.i.sroa.22.0149.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3913 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3913 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3913 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3913 %236 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %237 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %238 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %239 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %240 = bitcast <4 x double> %239 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %236, %238 %245 = fsub <4 x double> %237, %243 %246 = fsub <4 x double> %236, %238 %247 = fadd <4 x double> %237, %243 store <4 x double> %244, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3913 store <4 x double> %245, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3913 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3913 store <4 x double> %247, ptr %_3.i.i.i.i.i, align 8, !noalias !3913 %exitcond150.not.i = icmp eq i64 %235, 32 br i1 %exitcond150.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h074367c7ba5a48c3E.exit, label %bb13.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h074367c7ba5a48c3E.exit: ; preds = %bb13.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3913 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6b129e5dae0ddb8fE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3938 store i64 64, ptr %n.i, align 8, !noalias !3938 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3938 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3938 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3938 store ptr null, ptr %_16.i, align 8, !noalias !3938 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3938 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3938 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3938 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3938 store ptr null, ptr %_24.i, align 8, !noalias !3938 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3938 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3938 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3938 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3938 store ptr null, ptr %_32.i, align 8, !noalias !3938 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3938 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3938 store i64 %w.1, ptr %_34.i, align 8, !noalias !3938 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3938 store ptr null, ptr %_40.i, align 8, !noalias !3938 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3938 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !3938 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !3938 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !3938 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !3938 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !3938 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !3938 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !3938 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !3938 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !3938 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fadd <4 x double> %75, %80 %92 = fsub <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fsub <4 x double> %75, %80 %96 = fadd <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %88 %100 = fsub <4 x double> %84, %87 %101 = fadd <4 x double> %100, %99 %102 = fsub <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fsub <4 x double> %83, %88 %108 = fadd <4 x double> %84, %87 %109 = fsub <4 x double> %107, %108 %110 = fadd <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !3938 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !3938 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !3938 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !3938 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !3938 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !3938 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !3938 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !3938 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !3938 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !3938 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !3938 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !3938 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !3938 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !3938 %141 = fadd <4 x double> %93, %106 %142 = fsub <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !3938 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !3938 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !3938 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !3938 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !3938 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !3938 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !3938 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !3938 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !3938 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !3938 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !3938 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !3938 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !3938 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !3938 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !3938 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !3938 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !3938 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !3938 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !3938 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !3938 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !3938 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !3938 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !3938 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !3938 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !3938 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !3938 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !3938 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !3938 %205 = fsub <4 x double> %93, %106 %206 = fadd <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !3938 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !3938 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !3938 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !3938 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !3938 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !3938 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !3938 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !3938 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !3938 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !3938 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !3938 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !3938 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !3938 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !3938 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 8 br i1 %237, label %vector.body40, label %vector.body, !llvm.loop !3941 vector.body40: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec42 = load <8 x double>, ptr %scratch.0, align 8, !noalias !3938 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %242, align 8, !noalias !3938 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %243, align 8, !noalias !3938 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %241, align 8, !noalias !3938 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %244, align 8, !noalias !3938 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %239, align 8, !noalias !3938 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %240, align 8, !noalias !3938 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %238, align 8, !noalias !3938 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %245 = fadd <4 x double> %strided.vec43, %strided.vec55 %246 = fadd <4 x double> %strided.vec44, %strided.vec56 %247 = fsub <4 x double> %strided.vec43, %strided.vec55 %248 = fsub <4 x double> %strided.vec44, %strided.vec56 %249 = fadd <4 x double> %strided.vec49, %strided.vec61 %250 = fadd <4 x double> %strided.vec50, %strided.vec62 %251 = fsub <4 x double> %strided.vec49, %strided.vec61 %252 = fsub <4 x double> %strided.vec50, %strided.vec62 %253 = fadd <4 x double> %strided.vec46, %strided.vec58 %254 = fadd <4 x double> %strided.vec47, %strided.vec59 %255 = fsub <4 x double> %strided.vec46, %strided.vec58 %256 = fsub <4 x double> %strided.vec47, %strided.vec59 %257 = fadd <4 x double> %strided.vec52, %strided.vec64 %258 = fadd <4 x double> %strided.vec53, %strided.vec65 %259 = fsub <4 x double> %strided.vec52, %strided.vec64 %260 = fsub <4 x double> %strided.vec53, %strided.vec65 %261 = fadd <4 x double> %245, %249 %262 = fadd <4 x double> %246, %250 %263 = fadd <4 x double> %247, %252 %264 = fsub <4 x double> %248, %251 %265 = fsub <4 x double> %245, %249 %266 = fsub <4 x double> %246, %250 %267 = fsub <4 x double> %247, %252 %268 = fadd <4 x double> %248, %251 %269 = fadd <4 x double> %253, %257 %270 = fadd <4 x double> %254, %258 %271 = fadd <4 x double> %255, %260 %272 = fsub <4 x double> %256, %259 %273 = fadd <4 x double> %272, %271 %274 = fsub <4 x double> %272, %271 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fsub <4 x double> %253, %257 %278 = fsub <4 x double> %254, %258 %279 = fsub <4 x double> %255, %260 %280 = fadd <4 x double> %256, %259 %281 = fsub <4 x double> %279, %280 %282 = fadd <4 x double> %280, %279 %283 = fmul <4 x double> %281, %284 = fmul <4 x double> %282, %285 = fadd <4 x double> %261, %269 %286 = fadd <4 x double> %262, %270 %287 = fadd <4 x double> %263, %275 %288 = fadd <4 x double> %264, %276 %289 = fadd <4 x double> %265, %278 %290 = fsub <4 x double> %266, %277 %291 = fsub <4 x double> %267, %283 %292 = fsub <4 x double> %268, %284 %293 = fsub <4 x double> %261, %269 %294 = fsub <4 x double> %262, %270 %295 = fsub <4 x double> %263, %275 %296 = fsub <4 x double> %264, %276 %297 = fsub <4 x double> %265, %278 %298 = fadd <4 x double> %266, %277 %299 = fadd <4 x double> %267, %283 %300 = fadd <4 x double> %268, %284 %interleaved.vec = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !3938 %interleaved.vec66 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec66, ptr %2, align 8, !noalias !3938 %interleaved.vec67 = shufflevector <4 x double> %289, <4 x double> %290, <8 x i32> store <8 x double> %interleaved.vec67, ptr %1, align 8, !noalias !3938 %interleaved.vec68 = shufflevector <4 x double> %291, <4 x double> %292, <8 x i32> store <8 x double> %interleaved.vec68, ptr %3, align 8, !noalias !3938 %interleaved.vec69 = shufflevector <4 x double> %293, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec69, ptr %0, align 8, !noalias !3938 %interleaved.vec70 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec70, ptr %5, align 8, !noalias !3938 %interleaved.vec71 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec71, ptr %4, align 8, !noalias !3938 %interleaved.vec72 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec72, ptr %6, align 8, !noalias !3938 %301 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %302 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %303 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %304 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %305 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %306 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %307 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %308 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec42.1 = load <8 x double>, ptr %301, align 8, !noalias !3938 %strided.vec43.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %strided.vec44.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %wide.vec45.1 = load <8 x double>, ptr %302, align 8, !noalias !3938 %strided.vec46.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %strided.vec47.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %wide.vec48.1 = load <8 x double>, ptr %303, align 8, !noalias !3938 %strided.vec49.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %strided.vec50.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %wide.vec51.1 = load <8 x double>, ptr %304, align 8, !noalias !3938 %strided.vec52.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %strided.vec53.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %wide.vec54.1 = load <8 x double>, ptr %305, align 8, !noalias !3938 %strided.vec55.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %strided.vec56.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %wide.vec57.1 = load <8 x double>, ptr %306, align 8, !noalias !3938 %strided.vec58.1 = shufflevector <8 x double> %wide.vec57.1, <8 x double> poison, <4 x i32> %strided.vec59.1 = shufflevector <8 x double> %wide.vec57.1, <8 x double> poison, <4 x i32> %wide.vec60.1 = load <8 x double>, ptr %307, align 8, !noalias !3938 %strided.vec61.1 = shufflevector <8 x double> %wide.vec60.1, <8 x double> poison, <4 x i32> %strided.vec62.1 = shufflevector <8 x double> %wide.vec60.1, <8 x double> poison, <4 x i32> %wide.vec63.1 = load <8 x double>, ptr %308, align 8, !noalias !3938 %strided.vec64.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %strided.vec65.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %309 = fadd <4 x double> %strided.vec43.1, %strided.vec55.1 %310 = fadd <4 x double> %strided.vec44.1, %strided.vec56.1 %311 = fsub <4 x double> %strided.vec43.1, %strided.vec55.1 %312 = fsub <4 x double> %strided.vec44.1, %strided.vec56.1 %313 = fadd <4 x double> %strided.vec49.1, %strided.vec61.1 %314 = fadd <4 x double> %strided.vec50.1, %strided.vec62.1 %315 = fsub <4 x double> %strided.vec49.1, %strided.vec61.1 %316 = fsub <4 x double> %strided.vec50.1, %strided.vec62.1 %317 = fadd <4 x double> %strided.vec46.1, %strided.vec58.1 %318 = fadd <4 x double> %strided.vec47.1, %strided.vec59.1 %319 = fsub <4 x double> %strided.vec46.1, %strided.vec58.1 %320 = fsub <4 x double> %strided.vec47.1, %strided.vec59.1 %321 = fadd <4 x double> %strided.vec52.1, %strided.vec64.1 %322 = fadd <4 x double> %strided.vec53.1, %strided.vec65.1 %323 = fsub <4 x double> %strided.vec52.1, %strided.vec64.1 %324 = fsub <4 x double> %strided.vec53.1, %strided.vec65.1 %325 = fadd <4 x double> %309, %313 %326 = fadd <4 x double> %310, %314 %327 = fadd <4 x double> %311, %316 %328 = fsub <4 x double> %312, %315 %329 = fsub <4 x double> %309, %313 %330 = fsub <4 x double> %310, %314 %331 = fsub <4 x double> %311, %316 %332 = fadd <4 x double> %312, %315 %333 = fadd <4 x double> %317, %321 %334 = fadd <4 x double> %318, %322 %335 = fadd <4 x double> %319, %324 %336 = fsub <4 x double> %320, %323 %337 = fadd <4 x double> %336, %335 %338 = fsub <4 x double> %336, %335 %339 = fmul <4 x double> %337, %340 = fmul <4 x double> %338, %341 = fsub <4 x double> %317, %321 %342 = fsub <4 x double> %318, %322 %343 = fsub <4 x double> %319, %324 %344 = fadd <4 x double> %320, %323 %345 = fsub <4 x double> %343, %344 %346 = fadd <4 x double> %344, %343 %347 = fmul <4 x double> %345, %348 = fmul <4 x double> %346, %349 = fadd <4 x double> %325, %333 %350 = fadd <4 x double> %326, %334 %351 = fadd <4 x double> %327, %339 %352 = fadd <4 x double> %328, %340 %353 = fadd <4 x double> %329, %342 %354 = fsub <4 x double> %330, %341 %355 = fsub <4 x double> %331, %347 %356 = fsub <4 x double> %332, %348 %357 = fsub <4 x double> %325, %333 %358 = fsub <4 x double> %326, %334 %359 = fsub <4 x double> %327, %339 %360 = fsub <4 x double> %328, %340 %361 = fsub <4 x double> %329, %342 %362 = fadd <4 x double> %330, %341 %363 = fadd <4 x double> %331, %347 %364 = fadd <4 x double> %332, %348 %365 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %365, align 8, !noalias !3938 %366 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec66.1 = shufflevector <4 x double> %351, <4 x double> %352, <8 x i32> store <8 x double> %interleaved.vec66.1, ptr %366, align 8, !noalias !3938 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec67.1 = shufflevector <4 x double> %353, <4 x double> %354, <8 x i32> store <8 x double> %interleaved.vec67.1, ptr %367, align 8, !noalias !3938 %368 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec68.1 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec68.1, ptr %368, align 8, !noalias !3938 %369 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec69.1 = shufflevector <4 x double> %357, <4 x double> %358, <8 x i32> store <8 x double> %interleaved.vec69.1, ptr %369, align 8, !noalias !3938 %370 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec70.1 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec70.1, ptr %370, align 8, !noalias !3938 %371 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec71.1 = shufflevector <4 x double> %361, <4 x double> %362, <8 x i32> store <8 x double> %interleaved.vec71.1, ptr %371, align 8, !noalias !3938 %372 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec72.1 = shufflevector <4 x double> %363, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec72.1, ptr %372, align 8, !noalias !3938 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3938 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6ca26ab6ccf454dcE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3942 store i64 128, ptr %n.i, align 8, !noalias !3942 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3942 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3942 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3942 store ptr null, ptr %_16.i, align 8, !noalias !3942 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3942 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3942 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3942 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3942 store ptr null, ptr %_24.i, align 8, !noalias !3942 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3942 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3942 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3942 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3942 store ptr null, ptr %_32.i, align 8, !noalias !3942 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3942 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3942 store i64 %w.1, ptr %_34.i, align 8, !noalias !3942 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3942 store ptr null, ptr %_40.i, align 8, !noalias !3942 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3942 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !3942 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !3942 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !3942 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !3942 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !3942 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !3942 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !3942 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !3942 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !3942 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !3942 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !3942 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !3942 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !3942 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !3942 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !3942 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !3942 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !3942 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fsub <4 x double> %147, %152 %180 = fadd <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fadd <4 x double> %147, %152 %184 = fsub <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fsub <4 x double> %155, %160 %188 = fadd <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fadd <4 x double> %155, %160 %192 = fsub <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fsub <4 x double> %163, %168 %196 = fadd <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fadd <4 x double> %163, %168 %200 = fsub <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fsub <4 x double> %171, %176 %204 = fadd <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fadd <4 x double> %171, %176 %208 = fsub <4 x double> %172, %175 %209 = fsub <4 x double> %187, %188 %210 = fadd <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fadd <4 x double> %192, %191 %214 = fsub <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fsub <4 x double> %181, %190 %222 = fadd <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fadd <4 x double> %181, %190 %230 = fsub <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fsub <4 x double> %203, %204 %234 = fadd <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fadd <4 x double> %208, %207 %238 = fsub <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fsub <4 x double> %197, %206 %246 = fadd <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fadd <4 x double> %197, %206 %254 = fsub <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fsub <4 x double> %245, %246 %262 = fadd <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fadd <4 x double> %254, %253 %274 = fsub <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !3942 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !3942 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !3942 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !3942 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !3942 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !3942 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !3942 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !3942 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !3942 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !3942 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !3942 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !3942 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !3942 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !3942 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !3942 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !3942 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !3942 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !3942 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !3942 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !3942 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !3942 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !3942 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !3942 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !3942 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !3942 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !3942 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !3942 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !3942 %341 = fsub <4 x double> %225, %250 %342 = fadd <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !3942 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !3942 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !3942 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !3942 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !3942 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !3942 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !3942 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !3942 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !3942 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !3942 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !3942 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !3942 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !3942 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !3942 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !3942 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !3942 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !3942 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !3942 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !3942 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !3942 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !3942 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !3942 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !3942 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !3942 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !3942 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !3942 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !3942 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !3942 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !3942 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !3942 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !3942 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !3942 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !3942 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !3942 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !3942 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !3942 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !3942 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !3942 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !3942 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !3942 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !3942 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !3942 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !3942 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !3942 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !3942 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !3942 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !3942 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !3942 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !3942 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !3942 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !3942 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !3942 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !3942 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !3942 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !3942 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !3942 %469 = fadd <4 x double> %225, %250 %470 = fsub <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !3942 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !3942 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !3942 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !3942 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !3942 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !3942 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !3942 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !3942 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !3942 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !3942 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !3942 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !3942 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !3942 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !3942 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !3942 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !3942 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !3942 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !3942 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !3942 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !3942 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !3942 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !3942 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !3942 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !3942 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !3942 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !3942 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !3942 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !3942 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 8 br i1 %533, label %bb38.i.i.i.preheader, label %vector.body, !llvm.loop !3945 bb38.i.i.i.preheader: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb38.i.i.i.preheader %index81 = phi i64 [ 0, %bb38.i.i.i.preheader ], [ %index.next113, %vector.body80 ] %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index81 %542 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %index81 %543 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %index81 %544 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %index81 %545 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %index81 %546 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %index81 %547 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %index81 %548 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %index81 %wide.vec82 = load <8 x double>, ptr %541, align 8, !noalias !3942 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %542, align 8, !noalias !3942 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %543, align 8, !noalias !3942 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %544, align 8, !noalias !3942 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %545, align 8, !noalias !3942 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %546, align 8, !noalias !3942 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %547, align 8, !noalias !3942 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %548, align 8, !noalias !3942 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %549 = fadd <4 x double> %strided.vec83, %strided.vec95 %550 = fadd <4 x double> %strided.vec84, %strided.vec96 %551 = fsub <4 x double> %strided.vec83, %strided.vec95 %552 = fsub <4 x double> %strided.vec84, %strided.vec96 %553 = fadd <4 x double> %strided.vec89, %strided.vec101 %554 = fadd <4 x double> %strided.vec90, %strided.vec102 %555 = fsub <4 x double> %strided.vec89, %strided.vec101 %556 = fsub <4 x double> %strided.vec90, %strided.vec102 %557 = fadd <4 x double> %strided.vec86, %strided.vec98 %558 = fadd <4 x double> %strided.vec87, %strided.vec99 %559 = fsub <4 x double> %strided.vec86, %strided.vec98 %560 = fsub <4 x double> %strided.vec87, %strided.vec99 %561 = fadd <4 x double> %strided.vec92, %strided.vec104 %562 = fadd <4 x double> %strided.vec93, %strided.vec105 %563 = fsub <4 x double> %strided.vec92, %strided.vec104 %564 = fsub <4 x double> %strided.vec93, %strided.vec105 %565 = fadd <4 x double> %549, %553 %566 = fadd <4 x double> %550, %554 %567 = fsub <4 x double> %551, %556 %568 = fadd <4 x double> %552, %555 %569 = fsub <4 x double> %549, %553 %570 = fsub <4 x double> %550, %554 %571 = fadd <4 x double> %551, %556 %572 = fsub <4 x double> %552, %555 %573 = fadd <4 x double> %557, %561 %574 = fadd <4 x double> %558, %562 %575 = fsub <4 x double> %559, %564 %576 = fadd <4 x double> %560, %563 %577 = fsub <4 x double> %575, %576 %578 = fadd <4 x double> %576, %575 %579 = fmul <4 x double> %577, %580 = fmul <4 x double> %578, %581 = fsub <4 x double> %557, %561 %582 = fsub <4 x double> %558, %562 %583 = fadd <4 x double> %559, %564 %584 = fsub <4 x double> %560, %563 %585 = fadd <4 x double> %584, %583 %586 = fsub <4 x double> %584, %583 %587 = fmul <4 x double> %585, %588 = fmul <4 x double> %586, %589 = fadd <4 x double> %565, %573 %590 = fadd <4 x double> %566, %574 %591 = fadd <4 x double> %567, %579 %592 = fadd <4 x double> %568, %580 %593 = fsub <4 x double> %569, %582 %594 = fadd <4 x double> %570, %581 %595 = fsub <4 x double> %571, %587 %596 = fsub <4 x double> %572, %588 %597 = fsub <4 x double> %565, %573 %598 = fsub <4 x double> %566, %574 %599 = fsub <4 x double> %567, %579 %600 = fsub <4 x double> %568, %580 %601 = fadd <4 x double> %569, %582 %602 = fsub <4 x double> %570, %581 %603 = fadd <4 x double> %571, %587 %604 = fadd <4 x double> %572, %588 %605 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index81 %interleaved.vec = shufflevector <4 x double> %589, <4 x double> %590, <8 x i32> store <8 x double> %interleaved.vec, ptr %605, align 8, !noalias !3942 %606 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index81 %interleaved.vec106 = shufflevector <4 x double> %591, <4 x double> %592, <8 x i32> store <8 x double> %interleaved.vec106, ptr %606, align 8, !noalias !3942 %607 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index81 %interleaved.vec107 = shufflevector <4 x double> %593, <4 x double> %594, <8 x i32> store <8 x double> %interleaved.vec107, ptr %607, align 8, !noalias !3942 %608 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index81 %interleaved.vec108 = shufflevector <4 x double> %595, <4 x double> %596, <8 x i32> store <8 x double> %interleaved.vec108, ptr %608, align 8, !noalias !3942 %609 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index81 %interleaved.vec109 = shufflevector <4 x double> %597, <4 x double> %598, <8 x i32> store <8 x double> %interleaved.vec109, ptr %609, align 8, !noalias !3942 %610 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index81 %interleaved.vec110 = shufflevector <4 x double> %599, <4 x double> %600, <8 x i32> store <8 x double> %interleaved.vec110, ptr %610, align 8, !noalias !3942 %611 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index81 %interleaved.vec111 = shufflevector <4 x double> %601, <4 x double> %602, <8 x i32> store <8 x double> %interleaved.vec111, ptr %611, align 8, !noalias !3942 %612 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index81 %interleaved.vec112 = shufflevector <4 x double> %603, <4 x double> %604, <8 x i32> store <8 x double> %interleaved.vec112, ptr %612, align 8, !noalias !3942 %index.next113 = add nuw i64 %index81, 4 %613 = icmp eq i64 %index.next113, 16 br i1 %613, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb97096a5a9d1dfa8E.exit", label %vector.body80, !llvm.loop !3946 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb97096a5a9d1dfa8E.exit": ; preds = %vector.body80 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3942 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h6ebda98d311b7d5eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3947 store i64 1024, ptr %n.i.i, align 8, !noalias !3947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3947 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3947 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3947 store ptr null, ptr %_16.i.i, align 8, !noalias !3947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3947 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3947 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3947 store ptr null, ptr %_24.i.i, align 8, !noalias !3947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3947 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3947 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3947 store ptr null, ptr %_32.i.i, align 8, !noalias !3947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3947 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3947 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3947 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h86280e01578e7513E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3947 store ptr null, ptr %_40.i.i, align 8, !noalias !3947 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h86280e01578e7513E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3947 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 br label %bb13.i.i.i.i.i bb13.i.i.i.i.i: ; preds = %bb13.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h86280e01578e7513E.exit.i" %iter.i.i.i.i.sroa.22.0145.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h86280e01578e7513E.exit.i" ], [ %5, %bb13.i.i.i.i.i ] %5 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.0145.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.sroa.22.0145.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.i.sroa.22.0145.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.sroa.22.0145.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.i.sroa.22.0145.i %_43.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3952 %_44.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3952 %_45.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3952 %_46.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !3952 %6 = fadd <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %7 = fsub <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %8 = fadd <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %10 = bitcast <4 x double> %9 to <4 x i64> %11 = xor <4 x i64> %10, %12 = bitcast <4 x i64> %11 to <4 x double> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = fadd <4 x double> %6, %8 %15 = fsub <4 x double> %7, %13 %16 = fsub <4 x double> %6, %8 %17 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !3952 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !3952 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !3952 store <4 x double> %17, ptr %_3.i.i.i.i.i, align 8, !noalias !3952 %exitcond.not.i = icmp eq i64 %5, 128 br i1 %exitcond.not.i, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i", label %bb13.i.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i": ; preds = %bb13.i.i.i.i.i %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 tail call void @llvm.experimental.noalias.scope.decl(metadata !3959) tail call void @llvm.experimental.noalias.scope.decl(metadata !3962) tail call void @llvm.experimental.noalias.scope.decl(metadata !3964) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i %33 = add nuw nsw i64 %iter.sroa.208.05943.i.i, 1 %exitcond146.not.i = icmp eq i64 %33, 4 br i1 %exitcond146.not.i, label %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i, label %bb46.i.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i" %iter.sroa.208.05943.i.i = phi i64 [ %33, %bb44.loopexit.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05943.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.208.05943.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %35 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %36 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %37 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %38 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %39 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %40 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %41 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %46 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %47 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %48 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.208.05943.i.i, 4 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %49, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %50 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %51, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %52, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %53 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %54, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %55, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %56 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %57, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %58, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %59 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %60, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %61, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %62 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %63, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %64, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %65 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %66, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %67, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %68 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %69, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %70 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %70, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %71 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %72, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %73 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %73, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %74 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %75 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %75, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %76 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %76, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %77 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %78 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %78, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %79 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %79, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %80 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %81 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %81, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %82 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %82, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %83 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %84 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %84, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %85 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %85, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %86 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %87 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %87, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %88 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %88, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %89 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %90 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %90, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %91 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %91, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %92 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %93 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %93, align 8, !alias.scope !3964, !noalias !3966, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %94 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> zeroinitializer %96 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %97 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %99 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> zeroinitializer %102 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %103 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %71, <4 x double> poison, <4 x i32> zeroinitializer %110 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %111 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> zeroinitializer %112 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %113 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <4 x double> %62, <4 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.05770.i.i = phi i64 [ 0, %bb46.i.i ], [ %124, %bb98.i.i ] %124 = add nuw nsw i64 %iter10.sroa.218.05770.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %36, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %38, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %35, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %40, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %39, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %41, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %34, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %42, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %47, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %46, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %48, i64 %iter10.sroa.218.05770.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %_220.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %125 = shufflevector <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %126 = fmul <4 x double> %95, %125 %127 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> %126) #23 %_222.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %128 = shufflevector <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %97, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> %129) #23 %_224.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %131 = shufflevector <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %132 = fmul <4 x double> %99, %131 %133 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> %132) #23 %_226.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %134 = shufflevector <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %101, %134 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> %135) #23 %_228.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %137 = shufflevector <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %138 = fmul <4 x double> %103, %137 %139 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> %138) #23 %_230.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %140 = shufflevector <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %105, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> %141) #23 %_232.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %143 = shufflevector <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %107, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> %144) #23 %_234.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %146 = shufflevector <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %147 = fmul <4 x double> %109, %146 %148 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> %147) #23 %_236.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %149 = shufflevector <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %111, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> %150) #23 %_238.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %152 = shufflevector <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %153 = fmul <4 x double> %113, %152 %154 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %112, <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> %153) #23 %_240.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %155 = shufflevector <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %115, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %114, <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> %156) #23 %_242.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %158 = shufflevector <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %117, %158 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> %159) #23 %_244.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %161 = shufflevector <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %162 = fmul <4 x double> %119, %161 %163 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> %162) #23 %_246.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %164 = shufflevector <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %121, %164 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> %165) #23 %_248.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !3962, !noalias !3967 %167 = shufflevector <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %168 = fmul <4 x double> %123, %167 %169 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %122, <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> %168) #23 %170 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %148 %171 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %148 %172 = fadd <4 x double> %136, %160 %173 = fsub <4 x double> %136, %160 %174 = fadd <4 x double> %130, %154 %175 = fsub <4 x double> %130, %154 %176 = fadd <4 x double> %142, %166 %177 = fsub <4 x double> %142, %166 %178 = fadd <4 x double> %127, %151 %179 = fsub <4 x double> %127, %151 %180 = fadd <4 x double> %139, %163 %181 = fsub <4 x double> %139, %163 %182 = fadd <4 x double> %133, %157 %183 = fsub <4 x double> %133, %157 %184 = fadd <4 x double> %145, %169 %185 = fsub <4 x double> %145, %169 %186 = bitcast <4 x double> %173 to <4 x i64> %187 = bitcast <4 x double> %177 to <4 x i64> %188 = bitcast <4 x double> %181 to <4 x i64> %189 = bitcast <4 x double> %185 to <4 x i64> %190 = xor <4 x i64> %186, %191 = bitcast <4 x i64> %190 to <4 x double> %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = xor <4 x i64> %187, %194 = bitcast <4 x i64> %193 to <4 x double> %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = xor <4 x i64> %188, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = xor <4 x i64> %189, %200 = bitcast <4 x i64> %199 to <4 x double> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = fadd <4 x double> %170, %172 %203 = fsub <4 x double> %171, %192 %204 = fsub <4 x double> %170, %172 %205 = fadd <4 x double> %171, %192 %206 = fadd <4 x double> %174, %176 %207 = fsub <4 x double> %175, %195 %208 = fsub <4 x double> %174, %176 %209 = fadd <4 x double> %175, %195 %210 = fadd <4 x double> %178, %180 %211 = fsub <4 x double> %179, %198 %212 = fsub <4 x double> %178, %180 %213 = fadd <4 x double> %179, %198 %214 = fadd <4 x double> %182, %184 %215 = fsub <4 x double> %183, %201 %216 = fsub <4 x double> %182, %184 %217 = fadd <4 x double> %183, %201 %218 = bitcast <4 x double> %207 to <4 x i64> %219 = xor <4 x i64> %218, %220 = bitcast <4 x i64> %219 to <4 x double> %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = fadd <4 x double> %207, %221 %223 = fmul <4 x double> %222, %224 = bitcast <4 x double> %208 to <4 x i64> %225 = xor <4 x i64> %224, %226 = bitcast <4 x i64> %225 to <4 x double> %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = bitcast <4 x double> %209 to <4 x i64> %229 = xor <4 x i64> %228, %230 = bitcast <4 x i64> %229 to <4 x double> %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fadd <4 x double> %209, %231 %233 = fmul <4 x double> %232, %234 = fadd <4 x double> %202, %206 %235 = fadd <4 x double> %203, %223 %236 = fsub <4 x double> %204, %227 %237 = fsub <4 x double> %205, %233 %238 = fsub <4 x double> %202, %206 %239 = fsub <4 x double> %203, %223 %240 = fadd <4 x double> %204, %227 %241 = fadd <4 x double> %205, %233 %242 = bitcast <4 x double> %215 to <4 x i64> %243 = xor <4 x i64> %242, %244 = bitcast <4 x i64> %243 to <4 x double> %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = fadd <4 x double> %215, %245 %247 = fmul <4 x double> %246, %248 = bitcast <4 x double> %216 to <4 x i64> %249 = xor <4 x i64> %248, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = bitcast <4 x double> %217 to <4 x i64> %253 = xor <4 x i64> %252, %254 = bitcast <4 x i64> %253 to <4 x double> %255 = shufflevector <4 x double> %254, <4 x double> poison, <4 x i32> %256 = fadd <4 x double> %217, %255 %257 = fmul <4 x double> %256, %258 = fadd <4 x double> %210, %214 %259 = fadd <4 x double> %211, %247 %260 = fsub <4 x double> %212, %251 %261 = fsub <4 x double> %213, %257 %262 = fsub <4 x double> %210, %214 %263 = fsub <4 x double> %211, %247 %264 = fadd <4 x double> %212, %251 %265 = fadd <4 x double> %213, %257 %266 = fadd <4 x double> %234, %258 store <4 x double> %266, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %267 = fsub <4 x double> %234, %258 store <4 x double> %267, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %268 = fmul <4 x double> %259, %269 = shufflevector <4 x double> %268, <4 x double> poison, <4 x i32> %270 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %259, <4 x double> %269) #23 %271 = fadd <4 x double> %270, %235 store <4 x double> %271, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %272 = fsub <4 x double> %235, %270 store <4 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %273 = bitcast <4 x double> %260 to <4 x i64> %274 = xor <4 x i64> %273, %275 = bitcast <4 x i64> %274 to <4 x double> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = fadd <4 x double> %260, %276 %278 = fmul <4 x double> %277, %279 = fadd <4 x double> %236, %278 store <4 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %280 = fsub <4 x double> %236, %278 store <4 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %281 = fmul <4 x double> %261, %282 = shufflevector <4 x double> %281, <4 x double> poison, <4 x i32> %283 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %261, <4 x double> %282) #23 %284 = bitcast <4 x double> %262 to <4 x i64> %285 = xor <4 x i64> %284, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = fmul <4 x double> %263, %289 = shufflevector <4 x double> %288, <4 x double> poison, <4 x i32> %290 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %263, <4 x double> %289) #23 %.sink.i47.i = fadd <4 x double> %238, %287 %.sink6030.i.i = fsub <4 x double> %238, %287 %.sink6031.i.i = fsub <4 x double> %237, %283 %.sink6032.i.i = fadd <4 x double> %283, %237 store <4 x double> %.sink6032.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 store <4 x double> %.sink6031.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 store <4 x double> %.sink6030.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 store <4 x double> %.sink.i47.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %291 = fsub <4 x double> %239, %290 store <4 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %292 = fadd <4 x double> %290, %239 store <4 x double> %292, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %293 = bitcast <4 x double> %264 to <4 x i64> %294 = xor <4 x i64> %293, %295 = bitcast <4 x i64> %294 to <4 x double> %296 = shufflevector <4 x double> %295, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %265, %298 = shufflevector <4 x double> %297, <4 x double> poison, <4 x i32> %299 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %265, <4 x double> %298) #23 %.pn6038.in.i.i = fadd <4 x double> %264, %296 %.pn6038.i.i = fmul <4 x double> %.pn6038.in.i.i, %.sink6033.i.i = fadd <4 x double> %240, %.pn6038.i.i %.sink6034.i.i = fsub <4 x double> %240, %.pn6038.i.i store <4 x double> %.sink6034.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 store <4 x double> %.sink6033.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %300 = fsub <4 x double> %241, %299 store <4 x double> %300, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %301 = fadd <4 x double> %241, %299 store <4 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3959, !noalias !3968 %exitcond.not.i.i = icmp eq i64 %124, 8 br i1 %exitcond.not.i.i, label %bb44.loopexit.i.i, label %bb98.i.i _ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i: ; preds = %bb44.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !3969) tail call void @llvm.experimental.noalias.scope.decl(metadata !3972) tail call void @llvm.experimental.noalias.scope.decl(metadata !3974) %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %308 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %309 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %310 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %311 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %312 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %313 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %314 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %315 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %316 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %317 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %318 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %319 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %320 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %321 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %322 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %323 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %324 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 288 %325 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 352 %326 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 %327 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 416 %328 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 480 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i %iter.sroa.218.05279.i.i = phi i64 [ %329, %bb39.i.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i ] %329 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i = getelementptr inbounds %"fft_simd::c64x2", ptr %307, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %309, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i = getelementptr inbounds %"fft_simd::c64x2", ptr %308, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %310, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %312, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %311, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %313, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %317, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %316, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %318, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %315, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %320, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %319, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %321, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %314, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %324, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %323, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %325, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %322, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %327, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %326, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %328, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !3974, !noalias !3976 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i66.i, align 8, !alias.scope !3974, !noalias !3976 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !3972, !noalias !3977 %330 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %330, align 8, !alias.scope !3972, !noalias !3977 %331 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %331, align 8, !alias.scope !3972, !noalias !3977 %332 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %332, align 8, !alias.scope !3972, !noalias !3977 %333 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %333, align 8, !alias.scope !3972, !noalias !3977 %334 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %334, align 8, !alias.scope !3972, !noalias !3977 %335 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %335, align 8, !alias.scope !3972, !noalias !3977 %336 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %336, align 8, !alias.scope !3972, !noalias !3977 %337 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %337, align 8, !alias.scope !3972, !noalias !3977 %338 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %338, align 8, !alias.scope !3972, !noalias !3977 %339 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %339, align 8, !alias.scope !3972, !noalias !3977 %340 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %340, align 8, !alias.scope !3972, !noalias !3977 %341 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %341, align 8, !alias.scope !3972, !noalias !3977 %342 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %342, align 8, !alias.scope !3972, !noalias !3977 %343 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %343, align 8, !alias.scope !3972, !noalias !3977 %344 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %344, align 8, !alias.scope !3972, !noalias !3977 %345 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %346 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %347 = shufflevector <4 x double> %346, <4 x double> poison, <4 x i32> %348 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %349 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %350 = fmul <4 x double> %349, %347 %351 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %348, <4 x double> %346, <4 x double> %350) #23 %352 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %353 = shufflevector <4 x double> %352, <4 x double> poison, <4 x i32> %354 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %355 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %356 = fmul <4 x double> %355, %353 %357 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %354, <4 x double> %352, <4 x double> %356) #23 %358 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %359 = shufflevector <4 x double> %358, <4 x double> poison, <4 x i32> %360 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %361 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %362 = fmul <4 x double> %361, %359 %363 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %360, <4 x double> %358, <4 x double> %362) #23 %364 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %365 = shufflevector <4 x double> %364, <4 x double> poison, <4 x i32> %366 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %367 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %368 = fmul <4 x double> %367, %365 %369 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %366, <4 x double> %364, <4 x double> %368) #23 %370 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %371 = shufflevector <4 x double> %370, <4 x double> poison, <4 x i32> %372 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %373 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %374 = fmul <4 x double> %373, %371 %375 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %372, <4 x double> %370, <4 x double> %374) #23 %376 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %377 = shufflevector <4 x double> %376, <4 x double> poison, <4 x i32> %378 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %379 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %380 = fmul <4 x double> %379, %377 %381 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %378, <4 x double> %376, <4 x double> %380) #23 %382 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %383 = shufflevector <4 x double> %382, <4 x double> poison, <4 x i32> %384 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %385 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %386 = fmul <4 x double> %385, %383 %387 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %384, <4 x double> %382, <4 x double> %386) #23 %388 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %389 = shufflevector <4 x double> %388, <4 x double> poison, <4 x i32> %390 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %391 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %392 = fmul <4 x double> %391, %389 %393 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %390, <4 x double> %388, <4 x double> %392) #23 %394 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %395 = shufflevector <4 x double> %394, <4 x double> poison, <4 x i32> %396 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %397 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %398 = fmul <4 x double> %397, %395 %399 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %396, <4 x double> %394, <4 x double> %398) #23 %400 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %401 = shufflevector <4 x double> %400, <4 x double> poison, <4 x i32> %402 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %403 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %404 = fmul <4 x double> %403, %401 %405 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %402, <4 x double> %400, <4 x double> %404) #23 %406 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %407 = shufflevector <4 x double> %406, <4 x double> poison, <4 x i32> %408 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %409 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %410 = fmul <4 x double> %409, %407 %411 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %408, <4 x double> %406, <4 x double> %410) #23 %412 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %413 = shufflevector <4 x double> %412, <4 x double> poison, <4 x i32> %414 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %415 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %416 = fmul <4 x double> %415, %413 %417 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %414, <4 x double> %412, <4 x double> %416) #23 %418 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %419 = shufflevector <4 x double> %418, <4 x double> poison, <4 x i32> %420 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %421 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %422 = fmul <4 x double> %421, %419 %423 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %420, <4 x double> %418, <4 x double> %422) #23 %424 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %425 = shufflevector <4 x double> %424, <4 x double> poison, <4 x i32> %426 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %427 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %428 = fmul <4 x double> %427, %425 %429 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %426, <4 x double> %424, <4 x double> %428) #23 %430 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %431 = shufflevector <4 x double> %430, <4 x double> poison, <4 x i32> %432 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %433 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %434 = fmul <4 x double> %433, %431 %435 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %432, <4 x double> %430, <4 x double> %434) #23 %436 = fadd <4 x double> %345, %393 %437 = fsub <4 x double> %345, %393 %438 = fadd <4 x double> %369, %417 %439 = fsub <4 x double> %369, %417 %440 = fadd <4 x double> %357, %405 %441 = fsub <4 x double> %357, %405 %442 = fadd <4 x double> %381, %429 %443 = fsub <4 x double> %381, %429 %444 = fadd <4 x double> %351, %399 %445 = fsub <4 x double> %351, %399 %446 = fadd <4 x double> %375, %423 %447 = fsub <4 x double> %375, %423 %448 = fadd <4 x double> %363, %411 %449 = fsub <4 x double> %363, %411 %450 = fadd <4 x double> %387, %435 %451 = fsub <4 x double> %387, %435 %452 = bitcast <4 x double> %439 to <4 x i64> %453 = bitcast <4 x double> %443 to <4 x i64> %454 = bitcast <4 x double> %447 to <4 x i64> %455 = bitcast <4 x double> %451 to <4 x i64> %456 = xor <4 x i64> %452, %457 = bitcast <4 x i64> %456 to <4 x double> %458 = shufflevector <4 x double> %457, <4 x double> poison, <4 x i32> %459 = xor <4 x i64> %453, %460 = bitcast <4 x i64> %459 to <4 x double> %461 = shufflevector <4 x double> %460, <4 x double> poison, <4 x i32> %462 = xor <4 x i64> %454, %463 = bitcast <4 x i64> %462 to <4 x double> %464 = shufflevector <4 x double> %463, <4 x double> poison, <4 x i32> %465 = xor <4 x i64> %455, %466 = bitcast <4 x i64> %465 to <4 x double> %467 = shufflevector <4 x double> %466, <4 x double> poison, <4 x i32> %468 = fadd <4 x double> %436, %438 %469 = fsub <4 x double> %437, %458 %470 = fsub <4 x double> %436, %438 %471 = fadd <4 x double> %437, %458 %472 = fadd <4 x double> %440, %442 %473 = fsub <4 x double> %441, %461 %474 = fsub <4 x double> %440, %442 %475 = fadd <4 x double> %441, %461 %476 = fadd <4 x double> %444, %446 %477 = fsub <4 x double> %445, %464 %478 = fsub <4 x double> %444, %446 %479 = fadd <4 x double> %445, %464 %480 = fadd <4 x double> %448, %450 %481 = fsub <4 x double> %449, %467 %482 = fsub <4 x double> %448, %450 %483 = fadd <4 x double> %449, %467 %484 = bitcast <4 x double> %473 to <4 x i64> %485 = xor <4 x i64> %484, %486 = bitcast <4 x i64> %485 to <4 x double> %487 = shufflevector <4 x double> %486, <4 x double> poison, <4 x i32> %488 = fadd <4 x double> %473, %487 %489 = fmul <4 x double> %488, %490 = bitcast <4 x double> %474 to <4 x i64> %491 = xor <4 x i64> %490, %492 = bitcast <4 x i64> %491 to <4 x double> %493 = shufflevector <4 x double> %492, <4 x double> poison, <4 x i32> %494 = bitcast <4 x double> %475 to <4 x i64> %495 = xor <4 x i64> %494, %496 = bitcast <4 x i64> %495 to <4 x double> %497 = shufflevector <4 x double> %496, <4 x double> poison, <4 x i32> %498 = fadd <4 x double> %475, %497 %499 = fmul <4 x double> %498, %500 = fadd <4 x double> %468, %472 %501 = fadd <4 x double> %469, %489 %502 = fsub <4 x double> %470, %493 %503 = fsub <4 x double> %471, %499 %504 = fsub <4 x double> %468, %472 %505 = fsub <4 x double> %469, %489 %506 = fadd <4 x double> %470, %493 %507 = fadd <4 x double> %471, %499 %508 = bitcast <4 x double> %481 to <4 x i64> %509 = xor <4 x i64> %508, %510 = bitcast <4 x i64> %509 to <4 x double> %511 = shufflevector <4 x double> %510, <4 x double> poison, <4 x i32> %512 = fadd <4 x double> %481, %511 %513 = fmul <4 x double> %512, %514 = bitcast <4 x double> %482 to <4 x i64> %515 = xor <4 x i64> %514, %516 = bitcast <4 x i64> %515 to <4 x double> %517 = shufflevector <4 x double> %516, <4 x double> poison, <4 x i32> %518 = bitcast <4 x double> %483 to <4 x i64> %519 = xor <4 x i64> %518, %520 = bitcast <4 x i64> %519 to <4 x double> %521 = shufflevector <4 x double> %520, <4 x double> poison, <4 x i32> %522 = fadd <4 x double> %483, %521 %523 = fmul <4 x double> %522, %524 = fadd <4 x double> %476, %480 %525 = fadd <4 x double> %477, %513 %526 = fsub <4 x double> %478, %517 %527 = fsub <4 x double> %479, %523 %528 = fsub <4 x double> %476, %480 %529 = fsub <4 x double> %477, %513 %530 = fadd <4 x double> %478, %517 %531 = fadd <4 x double> %479, %523 %532 = fadd <4 x double> %500, %524 store <4 x double> %532, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3969, !noalias !3978 %533 = fsub <4 x double> %500, %524 store <4 x double> %533, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i58.i, align 8, !alias.scope !3969, !noalias !3978 %534 = fmul <4 x double> %525, %535 = shufflevector <4 x double> %534, <4 x double> poison, <4 x i32> %536 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %525, <4 x double> %535) #23 %537 = fadd <4 x double> %536, %501 store <4 x double> %537, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !3969, !noalias !3978 %538 = fsub <4 x double> %501, %536 store <4 x double> %538, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i59.i, align 8, !alias.scope !3969, !noalias !3978 %539 = bitcast <4 x double> %526 to <4 x i64> %540 = xor <4 x i64> %539, %541 = bitcast <4 x i64> %540 to <4 x double> %542 = shufflevector <4 x double> %541, <4 x double> poison, <4 x i32> %543 = fadd <4 x double> %526, %542 %544 = fmul <4 x double> %543, %545 = fadd <4 x double> %502, %544 store <4 x double> %545, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i, align 8, !alias.scope !3969, !noalias !3978 %546 = fsub <4 x double> %502, %544 store <4 x double> %546, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i, align 8, !alias.scope !3969, !noalias !3978 %547 = fmul <4 x double> %527, %548 = shufflevector <4 x double> %547, <4 x double> poison, <4 x i32> %549 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %527, <4 x double> %548) #23 %550 = bitcast <4 x double> %528 to <4 x i64> %551 = xor <4 x i64> %550, %552 = bitcast <4 x i64> %551 to <4 x double> %553 = shufflevector <4 x double> %552, <4 x double> poison, <4 x i32> %554 = fmul <4 x double> %529, %555 = shufflevector <4 x double> %554, <4 x double> poison, <4 x i32> %556 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %529, <4 x double> %555) #23 %.sink.i67.i = fadd <4 x double> %504, %553 %.sink5280.i.i = fsub <4 x double> %504, %553 %.sink5281.i.i = fsub <4 x double> %503, %549 %.sink5282.i.i = fadd <4 x double> %549, %503 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i, align 8, !alias.scope !3969, !noalias !3978 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i61.i, align 8, !alias.scope !3969, !noalias !3978 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i, align 8, !alias.scope !3969, !noalias !3978 store <4 x double> %.sink.i67.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i62.i, align 8, !alias.scope !3969, !noalias !3978 %557 = fsub <4 x double> %505, %556 store <4 x double> %557, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i55.i, align 8, !alias.scope !3969, !noalias !3978 %558 = fadd <4 x double> %556, %505 store <4 x double> %558, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i, align 8, !alias.scope !3969, !noalias !3978 %559 = bitcast <4 x double> %530 to <4 x i64> %560 = xor <4 x i64> %559, %561 = bitcast <4 x i64> %560 to <4 x double> %562 = shufflevector <4 x double> %561, <4 x double> poison, <4 x i32> %563 = fmul <4 x double> %531, %564 = shufflevector <4 x double> %563, <4 x double> poison, <4 x i32> %565 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %531, <4 x double> %564) #23 %.pn5288.in.i.i = fadd <4 x double> %530, %562 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %506, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %506, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i56.i, align 8, !alias.scope !3969, !noalias !3978 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i64.i, align 8, !alias.scope !3969, !noalias !3978 %566 = fsub <4 x double> %507, %565 store <4 x double> %566, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i, align 8, !alias.scope !3969, !noalias !3978 %567 = fadd <4 x double> %507, %565 store <4 x double> %567, ptr %_3.i.i.i.i.i.i.i.i.i.i.i65.i, align 8, !alias.scope !3969, !noalias !3978 %exitcond.not.i68.i = icmp eq i64 %329, 32 br i1 %exitcond.not.i68.i, label %_ZN4pulp3x862V39vectorize6__impl17h73c521489e4fb7d8E.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17h73c521489e4fb7d8E.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3947 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7073cb222a4bdfecE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !3979 store i64 256, ptr %n.i, align 8, !noalias !3979 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !3979 store i64 %buf.1, ptr %_10.i, align 8, !noalias !3979 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !3979 store ptr null, ptr %_16.i, align 8, !noalias !3979 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !3979 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !3979 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !3979 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !3979 store ptr null, ptr %_24.i, align 8, !noalias !3979 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !3979 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !3979 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !3979 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !3979 store ptr null, ptr %_32.i, align 8, !noalias !3979 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !3979 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !3979 store i64 %w.1, ptr %_34.i, align 8, !noalias !3979 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648c5fb9f49f8abaE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !3979 store ptr null, ptr %_40.i, align 8, !noalias !3979 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648c5fb9f49f8abaE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !3979 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648c5fb9f49f8abaE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648c5fb9f49f8abaE.exit" ], [ %index.next, %vector.body ] %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %7 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %wide.vec = load <8 x double>, ptr %6, align 8, !noalias !3982 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %7, align 8, !noalias !3982 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %8, align 8, !noalias !3982 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %9, align 8, !noalias !3982 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %10 = fadd <4 x double> %strided.vec, %strided.vec6 %11 = fadd <4 x double> %strided.vec1, %strided.vec7 %12 = fsub <4 x double> %strided.vec, %strided.vec6 %13 = fsub <4 x double> %strided.vec1, %strided.vec7 %14 = fadd <4 x double> %strided.vec3, %strided.vec9 %15 = fadd <4 x double> %strided.vec4, %strided.vec10 %16 = fsub <4 x double> %strided.vec3, %strided.vec9 %17 = fsub <4 x double> %strided.vec4, %strided.vec10 %18 = fadd <4 x double> %10, %14 %19 = fadd <4 x double> %11, %15 %20 = fadd <4 x double> %12, %17 %21 = fsub <4 x double> %13, %16 %22 = fsub <4 x double> %10, %14 %23 = fsub <4 x double> %11, %15 %24 = fsub <4 x double> %12, %17 %25 = fadd <4 x double> %13, %16 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec, ptr %26, align 8, !noalias !3982 %27 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %interleaved.vec11 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> store <8 x double> %interleaved.vec11, ptr %27, align 8, !noalias !3982 %28 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec12 = shufflevector <4 x double> %22, <4 x double> %23, <8 x i32> store <8 x double> %interleaved.vec12, ptr %28, align 8, !noalias !3982 %29 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %interleaved.vec13 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec13, ptr %29, align 8, !noalias !3982 %index.next = add nuw i64 %index, 4 %30 = icmp eq i64 %index.next, 64 br i1 %30, label %bb24.i.i.i.i, label %vector.body, !llvm.loop !3987 vector.body57: ; preds = %bb24.i.i.i.i, %vector.body57 %index58 = phi i64 [ %index.next100, %vector.body57 ], [ 0, %bb24.i.i.i.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body57 ], [ , %bb24.i.i.i.i ] %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = shl nuw nsw <4 x i64> %vec.ind, %35 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %34 %36 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %32 %37 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %32 %38 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %32 %39 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %39, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %40 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 1, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %41 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 2 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %42 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 2, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %43 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 3 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %44 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 3, i32 1 %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %45 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 8 %46 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 4 %47 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 12 %48 = fneg <4 x double> %wide.masked.gather59 %49 = fneg <4 x double> %wide.masked.gather61 %50 = fneg <4 x double> %wide.masked.gather63 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %51 = getelementptr inbounds i8, <4 x ptr> %35, i64 8 %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %52 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 4, i32 1 %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %53 = fmul <4 x double> %wide.masked.gather67, %48 %54 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather66, <4 x double> %53) %55 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather66 %56 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather67, <4 x double> %55) %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %57 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 8, i32 1 %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %58 = fmul <4 x double> %wide.masked.gather69, %49 %59 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather68, <4 x double> %58) %60 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather68 %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather69, <4 x double> %60) %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %62 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 12, i32 1 %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %63 = fmul <4 x double> %wide.masked.gather71, %50 %64 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather70, <4 x double> %63) %65 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather70 %66 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather71, <4 x double> %65) %67 = fadd <4 x double> %wide.masked.gather64, %59 %68 = fadd <4 x double> %wide.masked.gather65, %61 %69 = fsub <4 x double> %wide.masked.gather64, %59 %70 = fsub <4 x double> %wide.masked.gather65, %61 %71 = fadd <4 x double> %54, %64 %72 = fadd <4 x double> %56, %66 %73 = fsub <4 x double> %54, %64 %74 = fsub <4 x double> %56, %66 %75 = fadd <4 x double> %67, %71 %76 = fadd <4 x double> %68, %72 %77 = fadd <4 x double> %69, %74 %78 = fsub <4 x double> %70, %73 %79 = fsub <4 x double> %67, %71 %80 = fsub <4 x double> %68, %72 %81 = fsub <4 x double> %69, %74 %82 = fadd <4 x double> %70, %73 %83 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 5 %85 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 9 %86 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 13 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %87 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 1, i32 1 %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %88 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 5, i32 1 %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %89 = fmul <4 x double> %wide.masked.gather75, %48 %90 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather74, <4 x double> %89) %91 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather74 %92 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather75, <4 x double> %91) %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %93 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 9, i32 1 %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %94 = fmul <4 x double> %wide.masked.gather77, %49 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather76, <4 x double> %94) %96 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather76 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather77, <4 x double> %96) %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %98 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 13, i32 1 %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %99 = fmul <4 x double> %wide.masked.gather79, %50 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather78, <4 x double> %99) %101 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather78 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather79, <4 x double> %101) %103 = fadd <4 x double> %wide.masked.gather72, %95 %104 = fadd <4 x double> %wide.masked.gather73, %97 %105 = fsub <4 x double> %wide.masked.gather72, %95 %106 = fsub <4 x double> %wide.masked.gather73, %97 %107 = fadd <4 x double> %90, %100 %108 = fadd <4 x double> %92, %102 %109 = fsub <4 x double> %90, %100 %110 = fsub <4 x double> %92, %102 %111 = fadd <4 x double> %103, %107 %112 = fadd <4 x double> %104, %108 %113 = fadd <4 x double> %105, %110 %114 = fsub <4 x double> %106, %109 %115 = fsub <4 x double> %103, %107 %116 = fsub <4 x double> %104, %108 %117 = fsub <4 x double> %105, %110 %118 = fadd <4 x double> %106, %109 %119 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 2 %120 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 6 %121 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 10 %122 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 14 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %123 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 2, i32 1 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %124 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 6, i32 1 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %125 = fmul <4 x double> %wide.masked.gather83, %48 %126 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather82, <4 x double> %125) %127 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather82 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather83, <4 x double> %127) %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 10, i32 1 %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %130 = fmul <4 x double> %wide.masked.gather85, %49 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather84, <4 x double> %130) %132 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather84 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather85, <4 x double> %132) %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 14, i32 1 %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %135 = fmul <4 x double> %wide.masked.gather87, %50 %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather86, <4 x double> %135) %137 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather86 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather87, <4 x double> %137) %139 = fadd <4 x double> %wide.masked.gather80, %131 %140 = fadd <4 x double> %wide.masked.gather81, %133 %141 = fsub <4 x double> %wide.masked.gather80, %131 %142 = fsub <4 x double> %wide.masked.gather81, %133 %143 = fadd <4 x double> %126, %136 %144 = fadd <4 x double> %128, %138 %145 = fsub <4 x double> %126, %136 %146 = fsub <4 x double> %128, %138 %147 = fadd <4 x double> %139, %143 %148 = fadd <4 x double> %140, %144 %149 = fadd <4 x double> %141, %146 %150 = fsub <4 x double> %142, %145 %151 = fsub <4 x double> %139, %143 %152 = fsub <4 x double> %140, %144 %153 = fsub <4 x double> %141, %146 %154 = fadd <4 x double> %142, %145 %155 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 3 %156 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 7 %157 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 11 %158 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 15 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %159 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 3, i32 1 %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %wide.masked.gather90 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %160 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 7, i32 1 %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %161 = fmul <4 x double> %wide.masked.gather91, %48 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather90, <4 x double> %161) %163 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather90 %164 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather91, <4 x double> %163) %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 11, i32 1 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %166 = fmul <4 x double> %wide.masked.gather93, %49 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather92, <4 x double> %166) %168 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather92 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather93, <4 x double> %168) %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 15, i32 1 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %171 = fmul <4 x double> %wide.masked.gather95, %50 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather94, <4 x double> %171) %173 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather94 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather95, <4 x double> %173) %175 = fadd <4 x double> %wide.masked.gather88, %167 %176 = fadd <4 x double> %wide.masked.gather89, %169 %177 = fsub <4 x double> %wide.masked.gather88, %167 %178 = fsub <4 x double> %wide.masked.gather89, %169 %179 = fadd <4 x double> %162, %172 %180 = fadd <4 x double> %164, %174 %181 = fsub <4 x double> %162, %172 %182 = fsub <4 x double> %164, %174 %183 = fadd <4 x double> %175, %179 %184 = fadd <4 x double> %176, %180 %185 = shufflevector <4 x double> %75, <4 x double> %76, <8 x i32> %186 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> %187 = shufflevector <4 x double> %147, <4 x double> %148, <8 x i32> %188 = shufflevector <4 x double> %183, <4 x double> %184, <8 x i32> %189 = shufflevector <8 x double> %185, <8 x double> %186, <16 x i32> %190 = shufflevector <8 x double> %187, <8 x double> %188, <16 x i32> %interleaved.vec96 = shufflevector <16 x double> %189, <16 x double> %190, <32 x i32> store <32 x double> %interleaved.vec96, ptr %33, align 8, !noalias !3979 %191 = fadd <4 x double> %177, %182 %192 = fsub <4 x double> %178, %181 %193 = shufflevector <4 x double> %77, <4 x double> %78, <8 x i32> %194 = shufflevector <4 x double> %113, <4 x double> %114, <8 x i32> %195 = shufflevector <4 x double> %149, <4 x double> %150, <8 x i32> %196 = shufflevector <4 x double> %191, <4 x double> %192, <8 x i32> %197 = shufflevector <8 x double> %193, <8 x double> %194, <16 x i32> %198 = shufflevector <8 x double> %195, <8 x double> %196, <16 x i32> %interleaved.vec97 = shufflevector <16 x double> %197, <16 x double> %198, <32 x i32> store <32 x double> %interleaved.vec97, ptr %38, align 8, !noalias !3979 %199 = fsub <4 x double> %175, %179 %200 = fsub <4 x double> %176, %180 %201 = shufflevector <4 x double> %79, <4 x double> %80, <8 x i32> %202 = shufflevector <4 x double> %115, <4 x double> %116, <8 x i32> %203 = shufflevector <4 x double> %151, <4 x double> %152, <8 x i32> %204 = shufflevector <4 x double> %199, <4 x double> %200, <8 x i32> %205 = shufflevector <8 x double> %201, <8 x double> %202, <16 x i32> %206 = shufflevector <8 x double> %203, <8 x double> %204, <16 x i32> %interleaved.vec98 = shufflevector <16 x double> %205, <16 x double> %206, <32 x i32> store <32 x double> %interleaved.vec98, ptr %37, align 8, !noalias !3979 %207 = fsub <4 x double> %177, %182 %208 = fadd <4 x double> %178, %181 %209 = shufflevector <4 x double> %81, <4 x double> %82, <8 x i32> %210 = shufflevector <4 x double> %117, <4 x double> %118, <8 x i32> %211 = shufflevector <4 x double> %153, <4 x double> %154, <8 x i32> %212 = shufflevector <4 x double> %207, <4 x double> %208, <8 x i32> %213 = shufflevector <8 x double> %209, <8 x double> %210, <16 x i32> %214 = shufflevector <8 x double> %211, <8 x double> %212, <16 x i32> %interleaved.vec99 = shufflevector <16 x double> %213, <16 x double> %214, <32 x i32> store <32 x double> %interleaved.vec99, ptr %36, align 8, !noalias !3979 %index.next100 = add nuw i64 %index58, 4 %vec.ind.next = add <4 x i64> %vec.ind, %215 = icmp eq i64 %index.next100, 16 br i1 %215, label %vector.body105, label %vector.body57, !llvm.loop !3988 bb24.i.i.i.i: ; preds = %vector.body, %bb24.i.i.i.i %iter.i.i.i.i.sroa.60.0106 = phi i64 [ %361, %bb24.i.i.i.i ], [ 0, %vector.body ] %start1.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0106, 4 %216 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %216, align 8, !noalias !3979, !noundef !3 %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer %217 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %217, align 8, !noalias !3979, !noundef !3 %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w3.1.i.i.i.i %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %218 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %218, align 8, !noalias !3979, !noundef !3 %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %219 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %219, align 8, !noalias !3979, !noundef !3 %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i = fneg double %w2.1.i.i.i.i %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %220 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %220, align 8, !noalias !3979, !noundef !3 %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %221 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %221, align 8, !noalias !3979, !noundef !3 %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0106, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i %222 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %223 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %224 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %wide.vec20 = load <8 x double>, ptr %data.i.i.i.i.i.i, align 8, !noalias !3979 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %223, align 8, !noalias !3979 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %225 = fmul <4 x double> %strided.vec25, %broadcast.splat %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %225) %227 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %227) %wide.vec30 = load <8 x double>, ptr %224, align 8, !noalias !3979 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %229 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %229) %231 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %231) %wide.vec39 = load <8 x double>, ptr %222, align 8, !noalias !3979 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %233 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %234 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %233) %235 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %236 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %235) %237 = fadd <4 x double> %strided.vec21, %230 %238 = fadd <4 x double> %strided.vec22, %232 %239 = fsub <4 x double> %strided.vec21, %230 %240 = fsub <4 x double> %strided.vec22, %232 %241 = fadd <4 x double> %226, %234 %242 = fadd <4 x double> %228, %236 %243 = fsub <4 x double> %226, %234 %244 = fsub <4 x double> %228, %236 %245 = fadd <4 x double> %237, %241 %246 = fadd <4 x double> %238, %242 %interleaved.vec48 = shufflevector <4 x double> %245, <4 x double> %246, <8 x i32> store <8 x double> %interleaved.vec48, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3979 %247 = fadd <4 x double> %239, %244 %248 = fsub <4 x double> %240, %243 %interleaved.vec49 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec49, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3979 %249 = fsub <4 x double> %237, %241 %250 = fsub <4 x double> %238, %242 %interleaved.vec50 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec50, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !3979 %251 = fsub <4 x double> %239, %244 %252 = fadd <4 x double> %240, %243 %interleaved.vec51 = shufflevector <4 x double> %251, <4 x double> %252, <8 x i32> store <8 x double> %interleaved.vec51, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !3979 %253 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4 %254 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 20 %255 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 36 %256 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 52 %wide.vec20.1 = load <8 x double>, ptr %253, align 8, !noalias !3979 %strided.vec21.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %strided.vec22.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %wide.vec23.1 = load <8 x double>, ptr %254, align 8, !noalias !3979 %strided.vec24.1 = shufflevector <8 x double> %wide.vec23.1, <8 x double> poison, <4 x i32> %strided.vec25.1 = shufflevector <8 x double> %wide.vec23.1, <8 x double> poison, <4 x i32> %257 = fmul <4 x double> %strided.vec25.1, %broadcast.splat %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24.1, <4 x double> %257) %259 = fmul <4 x double> %broadcast.splat29, %strided.vec24.1 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25.1, <4 x double> %259) %wide.vec30.1 = load <8 x double>, ptr %255, align 8, !noalias !3979 %strided.vec31.1 = shufflevector <8 x double> %wide.vec30.1, <8 x double> poison, <4 x i32> %strided.vec32.1 = shufflevector <8 x double> %wide.vec30.1, <8 x double> poison, <4 x i32> %261 = fmul <4 x double> %strided.vec32.1, %broadcast.splat34 %262 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31.1, <4 x double> %261) %263 = fmul <4 x double> %broadcast.splat38, %strided.vec31.1 %264 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32.1, <4 x double> %263) %wide.vec39.1 = load <8 x double>, ptr %256, align 8, !noalias !3979 %strided.vec40.1 = shufflevector <8 x double> %wide.vec39.1, <8 x double> poison, <4 x i32> %strided.vec41.1 = shufflevector <8 x double> %wide.vec39.1, <8 x double> poison, <4 x i32> %265 = fmul <4 x double> %strided.vec41.1, %broadcast.splat43 %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40.1, <4 x double> %265) %267 = fmul <4 x double> %broadcast.splat47, %strided.vec40.1 %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41.1, <4 x double> %267) %269 = fadd <4 x double> %strided.vec21.1, %262 %270 = fadd <4 x double> %strided.vec22.1, %264 %271 = fsub <4 x double> %strided.vec21.1, %262 %272 = fsub <4 x double> %strided.vec22.1, %264 %273 = fadd <4 x double> %258, %266 %274 = fadd <4 x double> %260, %268 %275 = fsub <4 x double> %258, %266 %276 = fsub <4 x double> %260, %268 %277 = fadd <4 x double> %269, %273 %278 = fadd <4 x double> %270, %274 %279 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec48.1 = shufflevector <4 x double> %277, <4 x double> %278, <8 x i32> store <8 x double> %interleaved.vec48.1, ptr %279, align 8, !noalias !3979 %280 = fadd <4 x double> %271, %276 %281 = fsub <4 x double> %272, %275 %282 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec49.1 = shufflevector <4 x double> %280, <4 x double> %281, <8 x i32> store <8 x double> %interleaved.vec49.1, ptr %282, align 8, !noalias !3979 %283 = fsub <4 x double> %269, %273 %284 = fsub <4 x double> %270, %274 %285 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec50.1 = shufflevector <4 x double> %283, <4 x double> %284, <8 x i32> store <8 x double> %interleaved.vec50.1, ptr %285, align 8, !noalias !3979 %286 = fsub <4 x double> %271, %276 %287 = fadd <4 x double> %272, %275 %288 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec51.1 = shufflevector <4 x double> %286, <4 x double> %287, <8 x i32> store <8 x double> %interleaved.vec51.1, ptr %288, align 8, !noalias !3979 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %291 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %292 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %wide.vec20.2 = load <8 x double>, ptr %289, align 8, !noalias !3979 %strided.vec21.2 = shufflevector <8 x double> %wide.vec20.2, <8 x double> poison, <4 x i32> %strided.vec22.2 = shufflevector <8 x double> %wide.vec20.2, <8 x double> poison, <4 x i32> %wide.vec23.2 = load <8 x double>, ptr %290, align 8, !noalias !3979 %strided.vec24.2 = shufflevector <8 x double> %wide.vec23.2, <8 x double> poison, <4 x i32> %strided.vec25.2 = shufflevector <8 x double> %wide.vec23.2, <8 x double> poison, <4 x i32> %293 = fmul <4 x double> %strided.vec25.2, %broadcast.splat %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24.2, <4 x double> %293) %295 = fmul <4 x double> %broadcast.splat29, %strided.vec24.2 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25.2, <4 x double> %295) %wide.vec30.2 = load <8 x double>, ptr %291, align 8, !noalias !3979 %strided.vec31.2 = shufflevector <8 x double> %wide.vec30.2, <8 x double> poison, <4 x i32> %strided.vec32.2 = shufflevector <8 x double> %wide.vec30.2, <8 x double> poison, <4 x i32> %297 = fmul <4 x double> %strided.vec32.2, %broadcast.splat34 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31.2, <4 x double> %297) %299 = fmul <4 x double> %broadcast.splat38, %strided.vec31.2 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32.2, <4 x double> %299) %wide.vec39.2 = load <8 x double>, ptr %292, align 8, !noalias !3979 %strided.vec40.2 = shufflevector <8 x double> %wide.vec39.2, <8 x double> poison, <4 x i32> %strided.vec41.2 = shufflevector <8 x double> %wide.vec39.2, <8 x double> poison, <4 x i32> %301 = fmul <4 x double> %strided.vec41.2, %broadcast.splat43 %302 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40.2, <4 x double> %301) %303 = fmul <4 x double> %broadcast.splat47, %strided.vec40.2 %304 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41.2, <4 x double> %303) %305 = fadd <4 x double> %strided.vec21.2, %298 %306 = fadd <4 x double> %strided.vec22.2, %300 %307 = fsub <4 x double> %strided.vec21.2, %298 %308 = fsub <4 x double> %strided.vec22.2, %300 %309 = fadd <4 x double> %294, %302 %310 = fadd <4 x double> %296, %304 %311 = fsub <4 x double> %294, %302 %312 = fsub <4 x double> %296, %304 %313 = fadd <4 x double> %305, %309 %314 = fadd <4 x double> %306, %310 %315 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec48.2 = shufflevector <4 x double> %313, <4 x double> %314, <8 x i32> store <8 x double> %interleaved.vec48.2, ptr %315, align 8, !noalias !3979 %316 = fadd <4 x double> %307, %312 %317 = fsub <4 x double> %308, %311 %318 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec49.2 = shufflevector <4 x double> %316, <4 x double> %317, <8 x i32> store <8 x double> %interleaved.vec49.2, ptr %318, align 8, !noalias !3979 %319 = fsub <4 x double> %305, %309 %320 = fsub <4 x double> %306, %310 %321 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec50.2 = shufflevector <4 x double> %319, <4 x double> %320, <8 x i32> store <8 x double> %interleaved.vec50.2, ptr %321, align 8, !noalias !3979 %322 = fsub <4 x double> %307, %312 %323 = fadd <4 x double> %308, %311 %324 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec51.2 = shufflevector <4 x double> %322, <4 x double> %323, <8 x i32> store <8 x double> %interleaved.vec51.2, ptr %324, align 8, !noalias !3979 %325 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12 %326 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 28 %327 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 44 %328 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 60 %wide.vec20.3 = load <8 x double>, ptr %325, align 8, !noalias !3979 %strided.vec21.3 = shufflevector <8 x double> %wide.vec20.3, <8 x double> poison, <4 x i32> %strided.vec22.3 = shufflevector <8 x double> %wide.vec20.3, <8 x double> poison, <4 x i32> %wide.vec23.3 = load <8 x double>, ptr %326, align 8, !noalias !3979 %strided.vec24.3 = shufflevector <8 x double> %wide.vec23.3, <8 x double> poison, <4 x i32> %strided.vec25.3 = shufflevector <8 x double> %wide.vec23.3, <8 x double> poison, <4 x i32> %329 = fmul <4 x double> %strided.vec25.3, %broadcast.splat %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24.3, <4 x double> %329) %331 = fmul <4 x double> %broadcast.splat29, %strided.vec24.3 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25.3, <4 x double> %331) %wide.vec30.3 = load <8 x double>, ptr %327, align 8, !noalias !3979 %strided.vec31.3 = shufflevector <8 x double> %wide.vec30.3, <8 x double> poison, <4 x i32> %strided.vec32.3 = shufflevector <8 x double> %wide.vec30.3, <8 x double> poison, <4 x i32> %333 = fmul <4 x double> %strided.vec32.3, %broadcast.splat34 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31.3, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat38, %strided.vec31.3 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32.3, <4 x double> %335) %wide.vec39.3 = load <8 x double>, ptr %328, align 8, !noalias !3979 %strided.vec40.3 = shufflevector <8 x double> %wide.vec39.3, <8 x double> poison, <4 x i32> %strided.vec41.3 = shufflevector <8 x double> %wide.vec39.3, <8 x double> poison, <4 x i32> %337 = fmul <4 x double> %strided.vec41.3, %broadcast.splat43 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40.3, <4 x double> %337) %339 = fmul <4 x double> %broadcast.splat47, %strided.vec40.3 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41.3, <4 x double> %339) %341 = fadd <4 x double> %strided.vec21.3, %334 %342 = fadd <4 x double> %strided.vec22.3, %336 %343 = fsub <4 x double> %strided.vec21.3, %334 %344 = fsub <4 x double> %strided.vec22.3, %336 %345 = fadd <4 x double> %330, %338 %346 = fadd <4 x double> %332, %340 %347 = fsub <4 x double> %330, %338 %348 = fsub <4 x double> %332, %340 %349 = fadd <4 x double> %341, %345 %350 = fadd <4 x double> %342, %346 %351 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec48.3 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec48.3, ptr %351, align 8, !noalias !3979 %352 = fadd <4 x double> %343, %348 %353 = fsub <4 x double> %344, %347 %354 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec49.3 = shufflevector <4 x double> %352, <4 x double> %353, <8 x i32> store <8 x double> %interleaved.vec49.3, ptr %354, align 8, !noalias !3979 %355 = fsub <4 x double> %341, %345 %356 = fsub <4 x double> %342, %346 %357 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec50.3 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec50.3, ptr %357, align 8, !noalias !3979 %358 = fsub <4 x double> %343, %348 %359 = fadd <4 x double> %344, %347 %360 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec51.3 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> store <8 x double> %interleaved.vec51.3, ptr %360, align 8, !noalias !3979 %361 = add nuw nsw i64 %iter.i.i.i.i.sroa.60.0106, 1 %exitcond113.not = icmp eq i64 %361, 4 br i1 %exitcond113.not, label %vector.body57, label %bb24.i.i.i.i vector.body105: ; preds = %vector.body57, %vector.body105 %index106 = phi i64 [ %index.next127, %vector.body105 ], [ 0, %vector.body57 ] %vec.ind107 = phi <4 x i64> [ %vec.ind.next108, %vector.body105 ], [ , %vector.body57 ] %362 = shl <4 x i64> %vec.ind107, %363 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %362 %364 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 1 %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %365 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 1, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %366 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 2 %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %367 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 2, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %368 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 3 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %369 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 3, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %370 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 2 %371 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 1 %372 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 3 %373 = fneg <4 x double> %wide.masked.gather110 %374 = fneg <4 x double> %wide.masked.gather112 %375 = fneg <4 x double> %wide.masked.gather114 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %376 = getelementptr inbounds i8, <4 x ptr> %363, i64 8 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %376, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %377 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 1, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %378 = fmul <4 x double> %wide.masked.gather118, %373 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather109, <4 x double> %wide.masked.gather117, <4 x double> %378) %380 = fmul <4 x double> %wide.masked.gather110, %wide.masked.gather117 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather109, <4 x double> %wide.masked.gather118, <4 x double> %380) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %382 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 2, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %383 = fmul <4 x double> %wide.masked.gather120, %374 %384 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather111, <4 x double> %wide.masked.gather119, <4 x double> %383) %385 = fmul <4 x double> %wide.masked.gather112, %wide.masked.gather119 %386 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather111, <4 x double> %wide.masked.gather120, <4 x double> %385) %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %387 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 3, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %387, i32 8, <4 x i1> , <4 x double> poison), !noalias !3979 %388 = fmul <4 x double> %wide.masked.gather122, %375 %389 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather113, <4 x double> %wide.masked.gather121, <4 x double> %388) %390 = fmul <4 x double> %wide.masked.gather114, %wide.masked.gather121 %391 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather113, <4 x double> %wide.masked.gather122, <4 x double> %390) %392 = fadd <4 x double> %wide.masked.gather115, %384 %393 = fadd <4 x double> %wide.masked.gather116, %386 %394 = fsub <4 x double> %wide.masked.gather115, %384 %395 = fsub <4 x double> %wide.masked.gather116, %386 %396 = fadd <4 x double> %379, %389 %397 = fadd <4 x double> %381, %391 %398 = fsub <4 x double> %379, %389 %399 = fsub <4 x double> %381, %391 %400 = fadd <4 x double> %392, %396 %401 = fadd <4 x double> %393, %397 %402 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index106 %interleaved.vec123 = shufflevector <4 x double> %400, <4 x double> %401, <8 x i32> store <8 x double> %interleaved.vec123, ptr %402, align 8, !noalias !3979 %403 = fadd <4 x double> %394, %399 %404 = fsub <4 x double> %395, %398 %405 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index106 %interleaved.vec124 = shufflevector <4 x double> %403, <4 x double> %404, <8 x i32> store <8 x double> %interleaved.vec124, ptr %405, align 8, !noalias !3979 %406 = fsub <4 x double> %392, %396 %407 = fsub <4 x double> %393, %397 %408 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index106 %interleaved.vec125 = shufflevector <4 x double> %406, <4 x double> %407, <8 x i32> store <8 x double> %interleaved.vec125, ptr %408, align 8, !noalias !3979 %409 = fsub <4 x double> %394, %399 %410 = fadd <4 x double> %395, %398 %411 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index106 %interleaved.vec126 = shufflevector <4 x double> %409, <4 x double> %410, <8 x i32> store <8 x double> %interleaved.vec126, ptr %411, align 8, !noalias !3979 %index.next127 = add nuw i64 %index106, 4 %vec.ind.next108 = add <4 x i64> %vec.ind107, %412 = icmp eq i64 %index.next127, 60 br i1 %412, label %bb24.i.i.i, label %vector.body105, !llvm.loop !3989 bb24.i.i.i: ; preds = %vector.body105 %data.i.i.i.i.i.i.i.i.i.i.i.i955 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i965 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %data.i.i.i.i.i.i.i.i969 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i.i.i.i.i973 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %data.i5.i.i.i.i.i.i.i.i.i.i.i977 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %413 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i.i = load double, ptr %413, align 8, !noalias !3979, !noundef !3 %414 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %414, align 8, !noalias !3979, !noundef !3 %415 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2 %w2.0.i.i.i = load double, ptr %415, align 8, !noalias !3979, !noundef !3 %416 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %416, align 8, !noalias !3979, !noundef !3 %417 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3 %w3.0.i.i.i = load double, ptr %417, align 8, !noalias !3979, !noundef !3 %418 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %418, align 8, !noalias !3979, !noundef !3 %419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 242 %420 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 241 %421 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 243 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i965, align 8, !noalias !3979, !noundef !3 %422 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240, i32 1 %a.1.i.i.i = load double, ptr %422, align 8, !noalias !3979, !noundef !3 %_84.0.i.i.i = load double, ptr %420, align 8, !noalias !3979, !noundef !3 %423 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 241, i32 1 %_84.1.i.i.i = load double, ptr %423, align 8, !noalias !3979, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %424 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %425 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %419, align 8, !noalias !3979, !noundef !3 %426 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 242, i32 1 %_86.1.i.i.i = load double, ptr %426, align 8, !noalias !3979, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %427 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %428 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %421, align 8, !noalias !3979, !noundef !3 %429 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 243, i32 1 %_88.1.i.i.i = load double, ptr %429, align 8, !noalias !3979, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %430 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %431 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i1110 = fadd double %a.0.i.i.i, %427 %_0.i3.i1111 = fadd double %a.1.i.i.i, %428 %_0.i.i1112 = fsub double %a.0.i.i.i, %427 %_0.i3.i1113 = fsub double %a.1.i.i.i, %428 %_0.i.i1114 = fadd double %424, %430 %_0.i3.i1115 = fadd double %425, %431 %_0.i.i1116 = fsub double %424, %430 %_0.i3.i1117 = fsub double %425, %431 %_0.i.i1118 = fadd double %_0.i.i1110, %_0.i.i1114 %_0.i3.i1119 = fadd double %_0.i3.i1111, %_0.i3.i1115 store double %_0.i.i1118, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955, align 8, !noalias !3979 %432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60, i32 1 store double %_0.i3.i1119, ptr %432, align 8, !noalias !3979 %_0.i.i1120 = fadd double %_0.i.i1112, %_0.i3.i1117 %_0.i3.i1121 = fsub double %_0.i3.i1113, %_0.i.i1116 store double %_0.i.i1120, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977, align 8, !noalias !3979 %433 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124, i32 1 store double %_0.i3.i1121, ptr %433, align 8, !noalias !3979 %_0.i.i1122 = fsub double %_0.i.i1110, %_0.i.i1114 %_0.i3.i1123 = fsub double %_0.i3.i1111, %_0.i3.i1115 store double %_0.i.i1122, ptr %data.i.i.i.i.i.i.i.i.i.i973, align 8, !noalias !3979 %434 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188, i32 1 store double %_0.i3.i1123, ptr %434, align 8, !noalias !3979 %_0.i.i1124 = fsub double %_0.i.i1112, %_0.i3.i1117 %_0.i3.i1125 = fadd double %_0.i3.i1113, %_0.i.i1116 store double %_0.i.i1124, ptr %data.i.i.i.i.i.i.i.i969, align 8, !noalias !3979 %435 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252, i32 1 store double %_0.i3.i1125, ptr %435, align 8, !noalias !3979 %data.i.i.i.i.i.i.i.i.i.i.i.i955.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i965.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %data.i.i.i.i.i.i.i.i969.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.i.i.i.i973.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 189 %data.i5.i.i.i.i.i.i.i.i.i.i.i977.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %436 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1 %w1.0.i.i.i.1 = load double, ptr %436, align 8, !noalias !3979, !noundef !3 %437 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %437, align 8, !noalias !3979, !noundef !3 %438 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2 %w2.0.i.i.i.1 = load double, ptr %438, align 8, !noalias !3979, !noundef !3 %439 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %439, align 8, !noalias !3979, !noundef !3 %440 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3 %w3.0.i.i.i.1 = load double, ptr %440, align 8, !noalias !3979, !noundef !3 %441 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %441, align 8, !noalias !3979, !noundef !3 %442 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 246 %443 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 245 %444 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 247 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i965.1, align 8, !noalias !3979, !noundef !3 %445 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244, i32 1 %a.1.i.i.i.1 = load double, ptr %445, align 8, !noalias !3979, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %443, align 8, !noalias !3979, !noundef !3 %446 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 245, i32 1 %_84.1.i.i.i.1 = load double, ptr %446, align 8, !noalias !3979, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %447 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %448 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %442, align 8, !noalias !3979, !noundef !3 %449 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 246, i32 1 %_86.1.i.i.i.1 = load double, ptr %449, align 8, !noalias !3979, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %450 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %451 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %444, align 8, !noalias !3979, !noundef !3 %452 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 247, i32 1 %_88.1.i.i.i.1 = load double, ptr %452, align 8, !noalias !3979, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %453 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %454 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i1110.1 = fadd double %a.0.i.i.i.1, %450 %_0.i3.i1111.1 = fadd double %a.1.i.i.i.1, %451 %_0.i.i1112.1 = fsub double %a.0.i.i.i.1, %450 %_0.i3.i1113.1 = fsub double %a.1.i.i.i.1, %451 %_0.i.i1114.1 = fadd double %447, %453 %_0.i3.i1115.1 = fadd double %448, %454 %_0.i.i1116.1 = fsub double %447, %453 %_0.i3.i1117.1 = fsub double %448, %454 %_0.i.i1118.1 = fadd double %_0.i.i1110.1, %_0.i.i1114.1 %_0.i3.i1119.1 = fadd double %_0.i3.i1111.1, %_0.i3.i1115.1 store double %_0.i.i1118.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955.1, align 8, !noalias !3979 %455 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61, i32 1 store double %_0.i3.i1119.1, ptr %455, align 8, !noalias !3979 %_0.i.i1120.1 = fadd double %_0.i.i1112.1, %_0.i3.i1117.1 %_0.i3.i1121.1 = fsub double %_0.i3.i1113.1, %_0.i.i1116.1 store double %_0.i.i1120.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977.1, align 8, !noalias !3979 %456 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125, i32 1 store double %_0.i3.i1121.1, ptr %456, align 8, !noalias !3979 %_0.i.i1122.1 = fsub double %_0.i.i1110.1, %_0.i.i1114.1 %_0.i3.i1123.1 = fsub double %_0.i3.i1111.1, %_0.i3.i1115.1 store double %_0.i.i1122.1, ptr %data.i.i.i.i.i.i.i.i.i.i973.1, align 8, !noalias !3979 %457 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 189, i32 1 store double %_0.i3.i1123.1, ptr %457, align 8, !noalias !3979 %_0.i.i1124.1 = fsub double %_0.i.i1112.1, %_0.i3.i1117.1 %_0.i3.i1125.1 = fadd double %_0.i3.i1113.1, %_0.i.i1116.1 store double %_0.i.i1124.1, ptr %data.i.i.i.i.i.i.i.i969.1, align 8, !noalias !3979 %458 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253, i32 1 store double %_0.i3.i1125.1, ptr %458, align 8, !noalias !3979 %data.i.i.i.i.i.i.i.i.i.i.i.i955.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i965.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %data.i.i.i.i.i.i.i.i969.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.i.i.i.i973.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 190 %data.i5.i.i.i.i.i.i.i.i.i.i.i977.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %459 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.i.2 = load double, ptr %459, align 8, !noalias !3979, !noundef !3 %460 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %460, align 8, !noalias !3979, !noundef !3 %461 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2 %w2.0.i.i.i.2 = load double, ptr %461, align 8, !noalias !3979, !noundef !3 %462 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %462, align 8, !noalias !3979, !noundef !3 %463 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3 %w3.0.i.i.i.2 = load double, ptr %463, align 8, !noalias !3979, !noundef !3 %464 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %464, align 8, !noalias !3979, !noundef !3 %465 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %466 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249 %467 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i965.2, align 8, !noalias !3979, !noundef !3 %468 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248, i32 1 %a.1.i.i.i.2 = load double, ptr %468, align 8, !noalias !3979, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %466, align 8, !noalias !3979, !noundef !3 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249, i32 1 %_84.1.i.i.i.2 = load double, ptr %469, align 8, !noalias !3979, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %470 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %471 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %465, align 8, !noalias !3979, !noundef !3 %472 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250, i32 1 %_86.1.i.i.i.2 = load double, ptr %472, align 8, !noalias !3979, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %473 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %474 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %467, align 8, !noalias !3979, !noundef !3 %475 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251, i32 1 %_88.1.i.i.i.2 = load double, ptr %475, align 8, !noalias !3979, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %476 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %477 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i1110.2 = fadd double %a.0.i.i.i.2, %473 %_0.i3.i1111.2 = fadd double %a.1.i.i.i.2, %474 %_0.i.i1112.2 = fsub double %a.0.i.i.i.2, %473 %_0.i3.i1113.2 = fsub double %a.1.i.i.i.2, %474 %_0.i.i1114.2 = fadd double %470, %476 %_0.i3.i1115.2 = fadd double %471, %477 %_0.i.i1116.2 = fsub double %470, %476 %_0.i3.i1117.2 = fsub double %471, %477 %_0.i.i1118.2 = fadd double %_0.i.i1110.2, %_0.i.i1114.2 %_0.i3.i1119.2 = fadd double %_0.i3.i1111.2, %_0.i3.i1115.2 store double %_0.i.i1118.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955.2, align 8, !noalias !3979 %478 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62, i32 1 store double %_0.i3.i1119.2, ptr %478, align 8, !noalias !3979 %_0.i.i1120.2 = fadd double %_0.i.i1112.2, %_0.i3.i1117.2 %_0.i3.i1121.2 = fsub double %_0.i3.i1113.2, %_0.i.i1116.2 store double %_0.i.i1120.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977.2, align 8, !noalias !3979 %479 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126, i32 1 store double %_0.i3.i1121.2, ptr %479, align 8, !noalias !3979 %_0.i.i1122.2 = fsub double %_0.i.i1110.2, %_0.i.i1114.2 %_0.i3.i1123.2 = fsub double %_0.i3.i1111.2, %_0.i3.i1115.2 store double %_0.i.i1122.2, ptr %data.i.i.i.i.i.i.i.i.i.i973.2, align 8, !noalias !3979 %480 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 190, i32 1 store double %_0.i3.i1123.2, ptr %480, align 8, !noalias !3979 %_0.i.i1124.2 = fsub double %_0.i.i1112.2, %_0.i3.i1117.2 %_0.i3.i1125.2 = fadd double %_0.i3.i1113.2, %_0.i.i1116.2 store double %_0.i.i1124.2, ptr %data.i.i.i.i.i.i.i.i969.2, align 8, !noalias !3979 %481 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254, i32 1 store double %_0.i3.i1125.2, ptr %481, align 8, !noalias !3979 %data.i.i.i.i.i.i.i.i.i.i.i.i955.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i965.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %data.i.i.i.i.i.i.i.i969.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.i.i.i.i973.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 191 %data.i5.i.i.i.i.i.i.i.i.i.i.i977.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %482 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1 %w1.0.i.i.i.3 = load double, ptr %482, align 8, !noalias !3979, !noundef !3 %483 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %483, align 8, !noalias !3979, !noundef !3 %484 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2 %w2.0.i.i.i.3 = load double, ptr %484, align 8, !noalias !3979, !noundef !3 %485 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %485, align 8, !noalias !3979, !noundef !3 %486 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3 %w3.0.i.i.i.3 = load double, ptr %486, align 8, !noalias !3979, !noundef !3 %487 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %487, align 8, !noalias !3979, !noundef !3 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253 %490 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i965.3, align 8, !noalias !3979, !noundef !3 %491 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252, i32 1 %a.1.i.i.i.3 = load double, ptr %491, align 8, !noalias !3979, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %489, align 8, !noalias !3979, !noundef !3 %492 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253, i32 1 %_84.1.i.i.i.3 = load double, ptr %492, align 8, !noalias !3979, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %493 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %494 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %488, align 8, !noalias !3979, !noundef !3 %495 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254, i32 1 %_86.1.i.i.i.3 = load double, ptr %495, align 8, !noalias !3979, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %496 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %497 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %490, align 8, !noalias !3979, !noundef !3 %498 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255, i32 1 %_88.1.i.i.i.3 = load double, ptr %498, align 8, !noalias !3979, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %499 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %500 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i1110.3 = fadd double %a.0.i.i.i.3, %496 %_0.i3.i1111.3 = fadd double %a.1.i.i.i.3, %497 %_0.i.i1112.3 = fsub double %a.0.i.i.i.3, %496 %_0.i3.i1113.3 = fsub double %a.1.i.i.i.3, %497 %_0.i.i1114.3 = fadd double %493, %499 %_0.i3.i1115.3 = fadd double %494, %500 %_0.i.i1116.3 = fsub double %493, %499 %_0.i3.i1117.3 = fsub double %494, %500 %_0.i.i1118.3 = fadd double %_0.i.i1110.3, %_0.i.i1114.3 %_0.i3.i1119.3 = fadd double %_0.i3.i1111.3, %_0.i3.i1115.3 store double %_0.i.i1118.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955.3, align 8, !noalias !3979 %501 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63, i32 1 store double %_0.i3.i1119.3, ptr %501, align 8, !noalias !3979 %_0.i.i1120.3 = fadd double %_0.i.i1112.3, %_0.i3.i1117.3 %_0.i3.i1121.3 = fsub double %_0.i3.i1113.3, %_0.i.i1116.3 store double %_0.i.i1120.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977.3, align 8, !noalias !3979 %502 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127, i32 1 store double %_0.i3.i1121.3, ptr %502, align 8, !noalias !3979 %_0.i.i1122.3 = fsub double %_0.i.i1110.3, %_0.i.i1114.3 %_0.i3.i1123.3 = fsub double %_0.i3.i1111.3, %_0.i3.i1115.3 store double %_0.i.i1122.3, ptr %data.i.i.i.i.i.i.i.i.i.i973.3, align 8, !noalias !3979 %503 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 191, i32 1 store double %_0.i3.i1123.3, ptr %503, align 8, !noalias !3979 %_0.i.i1124.3 = fsub double %_0.i.i1112.3, %_0.i3.i1117.3 %_0.i3.i1125.3 = fadd double %_0.i3.i1113.3, %_0.i.i1116.3 store double %_0.i.i1124.3, ptr %data.i.i.i.i.i.i.i.i969.3, align 8, !noalias !3979 %504 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255, i32 1 store double %_0.i3.i1125.3, ptr %504, align 8, !noalias !3979 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !3979 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h70f0ea5152c99060E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !3990 store i64 8, ptr %n.i.i, align 8, !noalias !3990 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3990 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !3990 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !3990 store ptr null, ptr %_16.i.i, align 8, !noalias !3990 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !3990 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3990 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !3990 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !3990 store ptr null, ptr %_24.i.i, align 8, !noalias !3990 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !3990 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3990 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !3990 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !3990 store ptr null, ptr %_32.i.i, align 8, !noalias !3990 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !3990 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3990 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !3990 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hd976fc2696daa6e0E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !3990 store ptr null, ptr %_40.i.i, align 8, !noalias !3990 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17hd976fc2696daa6e0E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !3990 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !3995 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !3995 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !3995 store <4 x double> %5, ptr %2, align 8, !noalias !3995 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !3995 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !3995 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i store <4 x double> %6, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !3995 store <4 x double> %7, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !3995 tail call void @llvm.experimental.noalias.scope.decl(metadata !3999) tail call void @llvm.experimental.noalias.scope.decl(metadata !4002) %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !4002, !noalias !4004 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !4002, !noalias !4004 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !4002, !noalias !4004 %11 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %12 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %15 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %16 = fmul <4 x double> %13, %15 %17 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %12, <4 x double> %16) #23 %18 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %19, %21 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %25, %27 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %11, %23 %31 = fsub <4 x double> %11, %23 %32 = fadd <4 x double> %17, %29 %33 = fsub <4 x double> %17, %29 %34 = bitcast <4 x double> %33 to <4 x i64> %35 = xor <4 x i64> %34, %36 = bitcast <4 x i64> %35 to <4 x double> %37 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> %38 = fadd <4 x double> %30, %32 store <4 x double> %38, ptr %buf.0, align 8, !alias.scope !3999, !noalias !4006 %39 = fsub <4 x double> %31, %37 store <4 x double> %39, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !3999, !noalias !4006 %40 = fsub <4 x double> %30, %32 store <4 x double> %40, ptr %3, align 8, !alias.scope !3999, !noalias !4006 %41 = fadd <4 x double> %31, %37 store <4 x double> %41, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !3999, !noalias !4006 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !3990 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h73ceb613b3247c39E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4007 store i64 16, ptr %n.i, align 8, !noalias !4007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4007 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4007 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4007 store ptr null, ptr %_16.i, align 8, !noalias !4007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4007 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4007 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4007 store ptr null, ptr %_24.i, align 8, !noalias !4007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4007 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4007 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4007 store ptr null, ptr %_32.i, align 8, !noalias !4007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4007 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4007 store i64 %w.1, ptr %_34.i, align 8, !noalias !4007 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4007 store ptr null, ptr %_40.i, align 8, !noalias !4007 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4007 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %7, align 8, !noalias !4007, !noundef !3 %8 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %8, align 8, !noalias !4007, !noundef !3 %9 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i = load double, ptr %9, align 8, !noalias !4007, !noundef !3 %10 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %10, align 8, !noalias !4007, !noundef !3 %11 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i = load double, ptr %11, align 8, !noalias !4007, !noundef !3 %12 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %12, align 8, !noalias !4007, !noundef !3 %13 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 4 %w4.0.i.i.i = load double, ptr %13, align 8, !noalias !4007, !noundef !3 %14 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 4, i32 1 %w4.1.i.i.i = load double, ptr %14, align 8, !noalias !4007, !noundef !3 %15 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 5 %w5.0.i.i.i = load double, ptr %15, align 8, !noalias !4007, !noundef !3 %16 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 5, i32 1 %w5.1.i.i.i = load double, ptr %16, align 8, !noalias !4007, !noundef !3 %17 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 6 %w6.0.i.i.i = load double, ptr %17, align 8, !noalias !4007, !noundef !3 %18 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 6, i32 1 %w6.1.i.i.i = load double, ptr %18, align 8, !noalias !4007, !noundef !3 %19 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 7 %w7.0.i.i.i = load double, ptr %19, align 8, !noalias !4007, !noundef !3 %20 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 7, i32 1 %w7.1.i.i.i = load double, ptr %20, align 8, !noalias !4007, !noundef !3 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %22 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i181.i.i.i = fneg double %w1.1.i.i.i %_6.i178.i.i.i = fneg double %w2.1.i.i.i %_6.i175.i.i.i = fneg double %w3.1.i.i.i %_6.i172.i.i.i = fneg double %w4.1.i.i.i %_6.i169.i.i.i = fneg double %w5.1.i.i.i %_6.i166.i.i.i = fneg double %w6.1.i.i.i %_6.i.i.i.i = fneg double %w7.1.i.i.i %27 = load <2 x double>, ptr %buf.0, align 8, !noalias !4007 %28 = load <2 x double>, ptr %5, align 8, !noalias !4007 %29 = load <2 x double>, ptr %6, align 8, !noalias !4007 %30 = load <2 x double>, ptr %4, align 8, !noalias !4007 %31 = load <2 x double>, ptr %0, align 8, !noalias !4007 %32 = load <2 x double>, ptr %2, align 8, !noalias !4007 %33 = load <2 x double>, ptr %3, align 8, !noalias !4007 %34 = load <2 x double>, ptr %1, align 8, !noalias !4007 %35 = fadd <2 x double> %27, %31 %36 = fadd <2 x double> %29, %33 %37 = fadd <2 x double> %28, %32 %38 = fsub <2 x double> %28, %32 %_0.i.i405 = extractelement <2 x double> %38, i64 0 %39 = fsub <2 x double> %28, %32 %_0.i3.i406 = extractelement <2 x double> %39, i64 1 %40 = fadd <2 x double> %30, %34 %41 = fsub <2 x double> %30, %34 %_0.i.i409 = extractelement <2 x double> %41, i64 0 %42 = fsub <2 x double> %30, %34 %_0.i3.i410 = extractelement <2 x double> %42, i64 1 %43 = fadd <2 x double> %35, %36 %44 = fadd <2 x double> %37, %40 %_0.i.i421 = fsub double %_0.i.i405, %_0.i3.i410 %_0.i3.i422 = fadd double %_0.i3.i406, %_0.i.i409 %_0.i.i427 = fadd double %_0.i.i405, %_0.i3.i410 %_0.i3.i428 = fsub double %_0.i3.i406, %_0.i.i409 %45 = fadd <2 x double> %43, %44 store <2 x double> %45, ptr %scratch.0, align 8, !noalias !4007 %46 = fsub <2 x double> %27, %31 %47 = fsub <2 x double> %29, %33 %48 = shufflevector <2 x double> %47, <2 x double> poison, <2 x i32> %49 = fsub <2 x double> %46, %48 %50 = fadd <2 x double> %46, %48 %51 = shufflevector <2 x double> %49, <2 x double> %50, <2 x i32> %52 = insertelement <2 x double> poison, double %_0.i.i421, i64 0 %53 = insertelement <2 x double> poison, double %_0.i.i421, i64 0 %54 = insertelement <2 x double> poison, double %_0.i3.i422, i64 0 %55 = insertelement <2 x double> poison, double %_0.i3.i422, i64 0 %56 = fsub <2 x double> %53, %55 %57 = fadd <2 x double> %52, %54 %58 = shufflevector <2 x double> %56, <2 x double> %57, <2 x i32> %59 = fmul <2 x double> %58, %60 = fadd <2 x double> %51, %59 %61 = shufflevector <2 x double> %60, <2 x double> poison, <2 x i32> %62 = insertelement <2 x double> poison, double %_6.i181.i.i.i, i64 0 %63 = insertelement <2 x double> %62, double %w1.1.i.i.i, i64 1 %64 = fmul <2 x double> %61, %63 %65 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> zeroinitializer %67 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %66, <2 x double> %60, <2 x double> %64) store <2 x double> %67, ptr %22, align 8, !noalias !4007 %68 = fsub <2 x double> %35, %36 %69 = fsub <2 x double> %37, %40 %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> %71 = fsub <2 x double> %68, %70 %72 = fadd <2 x double> %68, %70 %73 = shufflevector <2 x double> %71, <2 x double> %72, <2 x i32> %74 = shufflevector <2 x double> %73, <2 x double> poison, <2 x i32> %75 = insertelement <2 x double> poison, double %_6.i178.i.i.i, i64 0 %76 = insertelement <2 x double> %75, double %w2.1.i.i.i, i64 1 %77 = fmul <2 x double> %74, %76 %78 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %79 = shufflevector <2 x double> %78, <2 x double> poison, <2 x i32> zeroinitializer %80 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %79, <2 x double> %73, <2 x double> %77) store <2 x double> %80, ptr %21, align 8, !noalias !4007 %81 = insertelement <4 x double> poison, double %_6.i175.i.i.i, i64 0 %82 = insertelement <4 x double> %81, double %w3.1.i.i.i, i64 1 %83 = insertelement <4 x double> %82, double %_6.i172.i.i.i, i64 2 %84 = insertelement <4 x double> %83, double %w4.1.i.i.i, i64 3 %85 = insertelement <4 x double> poison, double %w3.0.i.i.i, i64 0 %86 = insertelement <4 x double> %85, double %w4.0.i.i.i, i64 1 %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fsub <2 x double> %51, %59 %89 = shufflevector <2 x double> %88, <2 x double> poison, <2 x i32> %90 = insertelement <2 x double> poison, double %_6.i169.i.i.i, i64 0 %91 = insertelement <2 x double> %90, double %w5.1.i.i.i, i64 1 %92 = fmul <2 x double> %89, %91 %93 = insertelement <2 x double> poison, double %w5.0.i.i.i, i64 0 %94 = shufflevector <2 x double> %93, <2 x double> poison, <2 x i32> zeroinitializer %95 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %94, <2 x double> %88, <2 x double> %92) store <2 x double> %95, ptr %25, align 8, !noalias !4007 %96 = shufflevector <2 x double> %72, <2 x double> %71, <2 x i32> %97 = shufflevector <2 x double> %96, <2 x double> poison, <2 x i32> %98 = insertelement <2 x double> poison, double %_6.i166.i.i.i, i64 0 %99 = insertelement <2 x double> %98, double %w6.1.i.i.i, i64 1 %100 = fmul <2 x double> %97, %99 %101 = insertelement <2 x double> poison, double %w6.0.i.i.i, i64 0 %102 = shufflevector <2 x double> %101, <2 x double> poison, <2 x i32> zeroinitializer %103 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %102, <2 x double> %96, <2 x double> %100) store <2 x double> %103, ptr %24, align 8, !noalias !4007 %104 = insertelement <2 x double> poison, double %_0.i3.i428, i64 0 %105 = insertelement <2 x double> poison, double %_0.i3.i428, i64 0 %106 = insertelement <2 x double> poison, double %_0.i.i427, i64 0 %107 = insertelement <2 x double> poison, double %_0.i.i427, i64 0 %108 = fadd <2 x double> %105, %107 %109 = fsub <2 x double> %104, %106 %110 = shufflevector <2 x double> %108, <2 x double> %109, <2 x i32> %111 = fmul <2 x double> %110, %112 = shufflevector <2 x double> %50, <2 x double> %49, <2 x i32> %113 = shufflevector <2 x double> %43, <2 x double> %112, <4 x i32> %114 = shufflevector <2 x double> %44, <2 x double> %111, <4 x i32> %115 = fsub <4 x double> %113, %114 %116 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> %117 = fmul <4 x double> %116, %84 %118 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %87, <4 x double> %115, <4 x double> %117) store <4 x double> %118, ptr %23, align 8, !noalias !4007 %119 = fadd <2 x double> %112, %111 %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %122 = insertelement <2 x double> %121, double %w7.1.i.i.i, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w7.0.i.i.i, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %26, align 8, !noalias !4007 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %127 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.i.1 = load double, ptr %127, align 8, !noalias !4007, !noundef !3 %128 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %128, align 8, !noalias !4007, !noundef !3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2 %w2.0.i.i.i.1 = load double, ptr %129, align 8, !noalias !4007, !noundef !3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %130, align 8, !noalias !4007, !noundef !3 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3 %w3.0.i.i.i.1 = load double, ptr %131, align 8, !noalias !4007, !noundef !3 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %132, align 8, !noalias !4007, !noundef !3 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 4 %w4.0.i.i.i.1 = load double, ptr %133, align 8, !noalias !4007, !noundef !3 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 4, i32 1 %w4.1.i.i.i.1 = load double, ptr %134, align 8, !noalias !4007, !noundef !3 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 5 %w5.0.i.i.i.1 = load double, ptr %135, align 8, !noalias !4007, !noundef !3 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 5, i32 1 %w5.1.i.i.i.1 = load double, ptr %136, align 8, !noalias !4007, !noundef !3 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 6 %w6.0.i.i.i.1 = load double, ptr %137, align 8, !noalias !4007, !noundef !3 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 6, i32 1 %w6.1.i.i.i.1 = load double, ptr %138, align 8, !noalias !4007, !noundef !3 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 7 %w7.0.i.i.i.1 = load double, ptr %139, align 8, !noalias !4007, !noundef !3 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 7, i32 1 %w7.1.i.i.i.1 = load double, ptr %140, align 8, !noalias !4007, !noundef !3 %141 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %142 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %143 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %145 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %146 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_6.i181.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i178.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i175.i.i.i.1 = fneg double %w3.1.i.i.i.1 %_6.i172.i.i.i.1 = fneg double %w4.1.i.i.i.1 %_6.i169.i.i.i.1 = fneg double %w5.1.i.i.i.1 %_6.i166.i.i.i.1 = fneg double %w6.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w7.1.i.i.i.1 %147 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %148 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %149 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %150 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %151 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %153 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4007 %155 = fadd <2 x double> %147, %151 %156 = fadd <2 x double> %149, %153 %157 = fadd <2 x double> %148, %152 %158 = fsub <2 x double> %148, %152 %_0.i.i405.1 = extractelement <2 x double> %158, i64 0 %159 = fsub <2 x double> %148, %152 %_0.i3.i406.1 = extractelement <2 x double> %159, i64 1 %160 = fadd <2 x double> %150, %154 %161 = fsub <2 x double> %150, %154 %_0.i.i409.1 = extractelement <2 x double> %161, i64 0 %162 = fsub <2 x double> %150, %154 %_0.i3.i410.1 = extractelement <2 x double> %162, i64 1 %163 = fadd <2 x double> %155, %156 %164 = fadd <2 x double> %157, %160 %_0.i.i421.1 = fsub double %_0.i.i405.1, %_0.i3.i410.1 %_0.i3.i422.1 = fadd double %_0.i3.i406.1, %_0.i.i409.1 %_0.i.i427.1 = fadd double %_0.i.i405.1, %_0.i3.i410.1 %_0.i3.i428.1 = fsub double %_0.i3.i406.1, %_0.i.i409.1 %165 = fadd <2 x double> %163, %164 store <2 x double> %165, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4007 %166 = fsub <2 x double> %147, %151 %167 = fsub <2 x double> %149, %153 %168 = shufflevector <2 x double> %167, <2 x double> poison, <2 x i32> %169 = fsub <2 x double> %166, %168 %170 = fadd <2 x double> %166, %168 %171 = shufflevector <2 x double> %169, <2 x double> %170, <2 x i32> %172 = insertelement <2 x double> poison, double %_0.i.i421.1, i64 0 %173 = insertelement <2 x double> poison, double %_0.i.i421.1, i64 0 %174 = insertelement <2 x double> poison, double %_0.i3.i422.1, i64 0 %175 = insertelement <2 x double> poison, double %_0.i3.i422.1, i64 0 %176 = fsub <2 x double> %173, %175 %177 = fadd <2 x double> %172, %174 %178 = shufflevector <2 x double> %176, <2 x double> %177, <2 x i32> %179 = fmul <2 x double> %178, %180 = fadd <2 x double> %171, %179 %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i181.i.i.i.1, i64 0 %183 = insertelement <2 x double> %182, double %w1.1.i.i.i.1, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %142, align 8, !noalias !4007 %188 = fsub <2 x double> %155, %156 %189 = fsub <2 x double> %157, %160 %190 = shufflevector <2 x double> %189, <2 x double> poison, <2 x i32> %191 = fsub <2 x double> %188, %190 %192 = fadd <2 x double> %188, %190 %193 = shufflevector <2 x double> %191, <2 x double> %192, <2 x i32> %194 = shufflevector <2 x double> %193, <2 x double> poison, <2 x i32> %195 = insertelement <2 x double> poison, double %_6.i178.i.i.i.1, i64 0 %196 = insertelement <2 x double> %195, double %w2.1.i.i.i.1, i64 1 %197 = fmul <2 x double> %194, %196 %198 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %199 = shufflevector <2 x double> %198, <2 x double> poison, <2 x i32> zeroinitializer %200 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %199, <2 x double> %193, <2 x double> %197) store <2 x double> %200, ptr %141, align 8, !noalias !4007 %201 = insertelement <4 x double> poison, double %_6.i175.i.i.i.1, i64 0 %202 = insertelement <4 x double> %201, double %w3.1.i.i.i.1, i64 1 %203 = insertelement <4 x double> %202, double %_6.i172.i.i.i.1, i64 2 %204 = insertelement <4 x double> %203, double %w4.1.i.i.i.1, i64 3 %205 = insertelement <4 x double> poison, double %w3.0.i.i.i.1, i64 0 %206 = insertelement <4 x double> %205, double %w4.0.i.i.i.1, i64 1 %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = fsub <2 x double> %171, %179 %209 = shufflevector <2 x double> %208, <2 x double> poison, <2 x i32> %210 = insertelement <2 x double> poison, double %_6.i169.i.i.i.1, i64 0 %211 = insertelement <2 x double> %210, double %w5.1.i.i.i.1, i64 1 %212 = fmul <2 x double> %209, %211 %213 = insertelement <2 x double> poison, double %w5.0.i.i.i.1, i64 0 %214 = shufflevector <2 x double> %213, <2 x double> poison, <2 x i32> zeroinitializer %215 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %214, <2 x double> %208, <2 x double> %212) store <2 x double> %215, ptr %145, align 8, !noalias !4007 %216 = shufflevector <2 x double> %192, <2 x double> %191, <2 x i32> %217 = shufflevector <2 x double> %216, <2 x double> poison, <2 x i32> %218 = insertelement <2 x double> poison, double %_6.i166.i.i.i.1, i64 0 %219 = insertelement <2 x double> %218, double %w6.1.i.i.i.1, i64 1 %220 = fmul <2 x double> %217, %219 %221 = insertelement <2 x double> poison, double %w6.0.i.i.i.1, i64 0 %222 = shufflevector <2 x double> %221, <2 x double> poison, <2 x i32> zeroinitializer %223 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %222, <2 x double> %216, <2 x double> %220) store <2 x double> %223, ptr %144, align 8, !noalias !4007 %224 = insertelement <2 x double> poison, double %_0.i3.i428.1, i64 0 %225 = insertelement <2 x double> poison, double %_0.i3.i428.1, i64 0 %226 = insertelement <2 x double> poison, double %_0.i.i427.1, i64 0 %227 = insertelement <2 x double> poison, double %_0.i.i427.1, i64 0 %228 = fadd <2 x double> %225, %227 %229 = fsub <2 x double> %224, %226 %230 = shufflevector <2 x double> %228, <2 x double> %229, <2 x i32> %231 = fmul <2 x double> %230, %232 = shufflevector <2 x double> %170, <2 x double> %169, <2 x i32> %233 = shufflevector <2 x double> %163, <2 x double> %232, <4 x i32> %234 = shufflevector <2 x double> %164, <2 x double> %231, <4 x i32> %235 = fsub <4 x double> %233, %234 %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %236, %204 %238 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %207, <4 x double> %235, <4 x double> %237) store <4 x double> %238, ptr %143, align 8, !noalias !4007 %239 = fadd <2 x double> %232, %231 %240 = shufflevector <2 x double> %239, <2 x double> poison, <2 x i32> %241 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %242 = insertelement <2 x double> %241, double %w7.1.i.i.i.1, i64 1 %243 = fmul <2 x double> %240, %242 %244 = insertelement <2 x double> poison, double %w7.0.i.i.i.1, i64 0 %245 = shufflevector <2 x double> %244, <2 x double> poison, <2 x i32> zeroinitializer %246 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %245, <2 x double> %239, <2 x double> %243) store <2 x double> %246, ptr %146, align 8, !noalias !4007 %247 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !4007 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %247, align 8, !noalias !4007 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %248 = fadd <4 x double> %strided.vec, %strided.vec3 %249 = fadd <4 x double> %strided.vec1, %strided.vec4 %250 = fsub <4 x double> %strided.vec, %strided.vec3 %251 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %248, <4 x double> %249, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4007 %interleaved.vec5 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !4007 %252 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %253 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %wide.vec.1 = load <8 x double>, ptr %252, align 8, !noalias !4007 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %253, align 8, !noalias !4007 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %254 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %255 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %256 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %257 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %258 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %254, <4 x double> %255, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %258, align 8, !noalias !4007 %259 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec5.1 = shufflevector <4 x double> %256, <4 x double> %257, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %259, align 8, !noalias !4007 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4007 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h73e0adf05228675bE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4010 store i64 1024, ptr %n.i, align 8, !noalias !4010 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4010 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4010 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4010 store ptr null, ptr %_16.i, align 8, !noalias !4010 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4010 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4010 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4010 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4010 store ptr null, ptr %_24.i, align 8, !noalias !4010 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4010 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4010 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4010 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4010 store ptr null, ptr %_32.i, align 8, !noalias !4010 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4010 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4010 store i64 %w.1, ptr %_34.i, align 8, !noalias !4010 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4010 store ptr null, ptr %_40.i, align 8, !noalias !4010 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4010 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !4013 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !4013 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !4013 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !4013 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !4013 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !4013 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !4013 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !4013 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !4013 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !4013 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fadd <4 x double> %20, %25 %29 = fsub <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fsub <4 x double> %20, %25 %41 = fadd <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !4013 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 252 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !4016 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 764 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1008 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !4013, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !4013, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !4013, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !4013, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !4013, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !4013, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1010 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1009 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1011 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4013 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4013 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4013 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4013 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !4013 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fadd <2 x double> %69, %71 %73 = fsub <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !4013 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !4013 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !4013 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 765 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1012 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !4013, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !4013, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !4013, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !4013, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !4013, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !4013, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1014 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1013 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1015 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4013 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4013 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4013 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4013 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4013 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fadd <2 x double> %114, %116 %118 = fsub <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !4013 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !4013 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !4013 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 766 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !4013, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !4013, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !4013, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !4013, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !4013, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !4013, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4013 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4013 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4013 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4013 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4013 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fadd <2 x double> %159, %161 %163 = fsub <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !4013 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !4013 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !4013 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 767 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !4013, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !4013, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !4013, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !4013, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !4013, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !4013, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4013 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4013 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4013 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4013 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4013 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fadd <2 x double> %204, %206 %208 = fsub <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !4013 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !4013 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !4013 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !4010 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !4010 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !4010 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !4010 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !4010 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !4010 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !4010 %295 = fadd <4 x double> %277, %282 %296 = fsub <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !4010 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !4010 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !4010 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !4010 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !4010 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !4010 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !4010 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !4010 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !4010 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !4010 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !4010 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !4010 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !4010 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !4010 %327 = fsub <4 x double> %277, %282 %328 = fadd <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !4010 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !4010 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !4010 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !4010 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !4010 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !4010 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !4010 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !4010 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !4010 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !4010 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !4010 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !4010 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !4010 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !4010 %387 = fadd <4 x double> %369, %374 %388 = fsub <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !4010 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !4010 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !4010 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !4010 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !4010 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !4010 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !4010 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !4010 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !4010 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !4010 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !4010 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !4010 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !4010 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !4010 %419 = fsub <4 x double> %369, %374 %420 = fadd <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !4010 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !4010 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !4010 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !4010 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !4010 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !4010 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !4010 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !4010 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !4010 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !4010 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !4010 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !4010 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !4010 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !4010 %479 = fadd <4 x double> %461, %466 %480 = fsub <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !4010 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !4010 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !4010 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !4010 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !4010 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !4010 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !4010 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !4010 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !4010 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !4010 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !4010 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !4010 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !4010 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !4010 %511 = fsub <4 x double> %461, %466 %512 = fadd <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !4010 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !4010 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !4010 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !4010 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !4010 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !4010 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !4010 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !4010 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !4010 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !4010 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !4010 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !4010 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !4010 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !4010 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !4010 %571 = fadd <4 x double> %553, %558 %572 = fsub <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !4010 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !4010 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !4010 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !4010 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !4010 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !4010 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !4010 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !4010 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !4010 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !4010 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !4010 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !4010 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !4010 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !4010 %603 = fsub <4 x double> %553, %558 %604 = fadd <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !4010 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !4010 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !4010 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !4010 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !4010 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !4010 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !4010 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 64 br i1 %619, label %bb24.i.i.i.i, label %vector.body20, !llvm.loop !4017 bb24.i.i.i.i: ; preds = %vector.body20, %bb24.i.i.i.i %iter.i.i.i.i.sroa.60.0137 = phi i64 [ %765, %bb24.i.i.i.i ], [ 0, %vector.body20 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i845 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0137, 4 %620 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %620, align 8, !noalias !4018, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %621 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 3 %w3.0.i.i.i.i = load double, ptr %621, align 8, !noalias !4018, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w3.1.i.i.i.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %622, align 8, !noalias !4018, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %623 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 2 %w2.0.i.i.i.i = load double, ptr %623, align 8, !noalias !4018, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i = fneg double %w2.1.i.i.i.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %624 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %624, align 8, !noalias !4018, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %625 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 1 %w1.0.i.i.i.i = load double, ptr %625, align 8, !noalias !4018, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i864 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0137, 6 %data.i.i.i.i.i.i865 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i864 %626 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 48 %627 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 16 %628 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 32 %data.i.i.i.i.i.i.i.i861 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %data.i.i.i.i.i.i.i.i.i.i856 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %data.i5.i.i.i.i.i.i.i.i.i.i.i851 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %data.i.i.i.i.i.i.i.i.i.i.i.i846 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %wide.vec69 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, align 8, !noalias !4018 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, align 8, !noalias !4018 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i856, align 8, !noalias !4018 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i861, align 8, !noalias !4018 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %629 = fadd <4 x double> %strided.vec70, %strided.vec76 %630 = fadd <4 x double> %strided.vec71, %strided.vec77 %631 = fsub <4 x double> %strided.vec70, %strided.vec76 %632 = fsub <4 x double> %strided.vec71, %strided.vec77 %633 = fadd <4 x double> %strided.vec73, %strided.vec79 %634 = fadd <4 x double> %strided.vec74, %strided.vec80 %635 = fsub <4 x double> %strided.vec73, %strided.vec79 %636 = fsub <4 x double> %strided.vec74, %strided.vec80 %637 = fadd <4 x double> %629, %633 %638 = fadd <4 x double> %630, %634 %interleaved.vec81 = shufflevector <4 x double> %637, <4 x double> %638, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i865, align 8, !noalias !4018 %639 = fadd <4 x double> %631, %636 %640 = fsub <4 x double> %632, %635 %641 = fmul <4 x double> %640, %broadcast.splat %642 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %639, <4 x double> %641) %643 = fmul <4 x double> %broadcast.splat85, %639 %644 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %640, <4 x double> %643) %interleaved.vec86 = shufflevector <4 x double> %642, <4 x double> %644, <8 x i32> store <8 x double> %interleaved.vec86, ptr %627, align 8, !noalias !4018 %645 = fsub <4 x double> %629, %633 %646 = fsub <4 x double> %630, %634 %647 = fmul <4 x double> %646, %broadcast.splat88 %648 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %645, <4 x double> %647) %649 = fmul <4 x double> %broadcast.splat92, %645 %650 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %646, <4 x double> %649) %interleaved.vec93 = shufflevector <4 x double> %648, <4 x double> %650, <8 x i32> store <8 x double> %interleaved.vec93, ptr %628, align 8, !noalias !4018 %651 = fsub <4 x double> %631, %636 %652 = fadd <4 x double> %632, %635 %653 = fmul <4 x double> %652, %broadcast.splat95 %654 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %651, <4 x double> %653) %655 = fmul <4 x double> %broadcast.splat99, %651 %656 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %652, <4 x double> %655) %interleaved.vec100 = shufflevector <4 x double> %654, <4 x double> %656, <8 x i32> store <8 x double> %interleaved.vec100, ptr %626, align 8, !noalias !4018 %657 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, i64 4 %658 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, i64 4 %659 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i856, i64 4 %660 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i861, i64 4 %wide.vec69.1 = load <8 x double>, ptr %657, align 8, !noalias !4018 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %658, align 8, !noalias !4018 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %659, align 8, !noalias !4018 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %660, align 8, !noalias !4018 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %661 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %662 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %663 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %664 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %665 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %666 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %667 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %668 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %669 = fadd <4 x double> %661, %665 %670 = fadd <4 x double> %662, %666 %671 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %669, <4 x double> %670, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %671, align 8, !noalias !4018 %672 = fadd <4 x double> %663, %668 %673 = fsub <4 x double> %664, %667 %674 = fmul <4 x double> %673, %broadcast.splat %675 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %672, <4 x double> %674) %676 = fmul <4 x double> %broadcast.splat85, %672 %677 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %673, <4 x double> %676) %678 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %675, <4 x double> %677, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %678, align 8, !noalias !4018 %679 = fsub <4 x double> %661, %665 %680 = fsub <4 x double> %662, %666 %681 = fmul <4 x double> %680, %broadcast.splat88 %682 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %679, <4 x double> %681) %683 = fmul <4 x double> %broadcast.splat92, %679 %684 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %680, <4 x double> %683) %685 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %682, <4 x double> %684, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %685, align 8, !noalias !4018 %686 = fsub <4 x double> %663, %668 %687 = fadd <4 x double> %664, %667 %688 = fmul <4 x double> %687, %broadcast.splat95 %689 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %686, <4 x double> %688) %690 = fmul <4 x double> %broadcast.splat99, %686 %691 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %687, <4 x double> %690) %692 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %689, <4 x double> %691, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %692, align 8, !noalias !4018 %693 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, i64 8 %694 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, i64 8 %695 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i856, i64 8 %696 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i861, i64 8 %wide.vec69.2 = load <8 x double>, ptr %693, align 8, !noalias !4018 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %694, align 8, !noalias !4018 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %695, align 8, !noalias !4018 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %696, align 8, !noalias !4018 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %697 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %698 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %699 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %700 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %701 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %702 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %703 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %704 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %705 = fadd <4 x double> %697, %701 %706 = fadd <4 x double> %698, %702 %707 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %707, align 8, !noalias !4018 %708 = fadd <4 x double> %699, %704 %709 = fsub <4 x double> %700, %703 %710 = fmul <4 x double> %709, %broadcast.splat %711 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %708, <4 x double> %710) %712 = fmul <4 x double> %broadcast.splat85, %708 %713 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %709, <4 x double> %712) %714 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %711, <4 x double> %713, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %714, align 8, !noalias !4018 %715 = fsub <4 x double> %697, %701 %716 = fsub <4 x double> %698, %702 %717 = fmul <4 x double> %716, %broadcast.splat88 %718 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %715, <4 x double> %717) %719 = fmul <4 x double> %broadcast.splat92, %715 %720 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %716, <4 x double> %719) %721 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %718, <4 x double> %720, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %721, align 8, !noalias !4018 %722 = fsub <4 x double> %699, %704 %723 = fadd <4 x double> %700, %703 %724 = fmul <4 x double> %723, %broadcast.splat95 %725 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %722, <4 x double> %724) %726 = fmul <4 x double> %broadcast.splat99, %722 %727 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %723, <4 x double> %726) %728 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %725, <4 x double> %727, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %728, align 8, !noalias !4018 %729 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, i64 12 %730 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, i64 12 %731 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i856, i64 12 %732 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i861, i64 12 %wide.vec69.3 = load <8 x double>, ptr %729, align 8, !noalias !4018 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %730, align 8, !noalias !4018 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %731, align 8, !noalias !4018 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %732, align 8, !noalias !4018 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %733 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %734 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %735 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %736 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %737 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %738 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %739 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %740 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %741 = fadd <4 x double> %733, %737 %742 = fadd <4 x double> %734, %738 %743 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %741, <4 x double> %742, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %743, align 8, !noalias !4018 %744 = fadd <4 x double> %735, %740 %745 = fsub <4 x double> %736, %739 %746 = fmul <4 x double> %745, %broadcast.splat %747 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %744, <4 x double> %746) %748 = fmul <4 x double> %broadcast.splat85, %744 %749 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %745, <4 x double> %748) %750 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %747, <4 x double> %749, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %750, align 8, !noalias !4018 %751 = fsub <4 x double> %733, %737 %752 = fsub <4 x double> %734, %738 %753 = fmul <4 x double> %752, %broadcast.splat88 %754 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %751, <4 x double> %753) %755 = fmul <4 x double> %broadcast.splat92, %751 %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %752, <4 x double> %755) %757 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %754, <4 x double> %756, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %757, align 8, !noalias !4018 %758 = fsub <4 x double> %735, %740 %759 = fadd <4 x double> %736, %739 %760 = fmul <4 x double> %759, %broadcast.splat95 %761 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %758, <4 x double> %760) %762 = fmul <4 x double> %broadcast.splat99, %758 %763 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %759, <4 x double> %762) %764 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %761, <4 x double> %763, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %764, align 8, !noalias !4018 %765 = add nuw nsw i64 %iter.i.i.i.i.sroa.60.0137, 1 %exitcond145.not = icmp eq i64 %765, 16 br i1 %exitcond145.not, label %bb24.i.i.i72.i, label %bb24.i.i.i.i vector.body147: ; preds = %middle.block102, %vector.body147 %index148 = phi i64 [ %index.next165, %vector.body147 ], [ 0, %middle.block102 ] %766 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index148 %767 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index148 %768 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index148 %769 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index148 %wide.vec149 = load <8 x double>, ptr %766, align 8, !noalias !4010 %strided.vec150 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %strided.vec151 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %wide.vec152 = load <8 x double>, ptr %767, align 8, !noalias !4010 %strided.vec153 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %strided.vec154 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %wide.vec155 = load <8 x double>, ptr %768, align 8, !noalias !4010 %strided.vec156 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %strided.vec157 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %wide.vec158 = load <8 x double>, ptr %769, align 8, !noalias !4010 %strided.vec159 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %strided.vec160 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %770 = fadd <4 x double> %strided.vec150, %strided.vec156 %771 = fadd <4 x double> %strided.vec151, %strided.vec157 %772 = fsub <4 x double> %strided.vec150, %strided.vec156 %773 = fsub <4 x double> %strided.vec151, %strided.vec157 %774 = fadd <4 x double> %strided.vec153, %strided.vec159 %775 = fadd <4 x double> %strided.vec154, %strided.vec160 %776 = fsub <4 x double> %strided.vec153, %strided.vec159 %777 = fsub <4 x double> %strided.vec154, %strided.vec160 %778 = fadd <4 x double> %770, %774 %779 = fadd <4 x double> %771, %775 %780 = fadd <4 x double> %772, %777 %781 = fsub <4 x double> %773, %776 %782 = fsub <4 x double> %770, %774 %783 = fsub <4 x double> %771, %775 %784 = fsub <4 x double> %772, %777 %785 = fadd <4 x double> %773, %776 %interleaved.vec161 = shufflevector <4 x double> %778, <4 x double> %779, <8 x i32> store <8 x double> %interleaved.vec161, ptr %766, align 8, !noalias !4010 %interleaved.vec162 = shufflevector <4 x double> %780, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec162, ptr %767, align 8, !noalias !4010 %interleaved.vec163 = shufflevector <4 x double> %782, <4 x double> %783, <8 x i32> store <8 x double> %interleaved.vec163, ptr %768, align 8, !noalias !4010 %interleaved.vec164 = shufflevector <4 x double> %784, <4 x double> %785, <8 x i32> store <8 x double> %interleaved.vec164, ptr %769, align 8, !noalias !4010 %index.next165 = add nuw i64 %index148, 4 %786 = icmp eq i64 %index.next165, 256 br i1 %786, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit", label %vector.body147, !llvm.loop !4021 bb24.i.i.i72.i: ; preds = %bb24.i.i.i.i, %middle.block102 %iter.i.i.i25.i.sroa.60.0139 = phi i64 [ %833, %middle.block102 ], [ 0, %bb24.i.i.i.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0139, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i1173 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %data.i5.i.i.i.i.i.i.i.i.i.i.i1178 = getelementptr inbounds %"num_complex::Complex", ptr %234, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %data.i.i.i.i.i.i.i.i.i.i1183 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %data.i.i.i.i.i.i.i.i1188 = getelementptr inbounds %"num_complex::Complex", ptr %235, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %start1.i.i.i.i.i.i1191 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0139, 8 %data.i.i.i.i.i.i1192 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1191 %787 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 128 %788 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 64 %789 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 192 %790 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 3, i32 1 %w3.1.i.i.i88.i = load double, ptr %790, align 8, !noalias !4010, !noundef !3 %_6.i.i.i.i160.i = fneg double %w3.1.i.i.i88.i %791 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 2, i32 1 %w2.1.i.i.i86.i = load double, ptr %791, align 8, !noalias !4010, !noundef !3 %_6.i36.i.i.i155.i = fneg double %w2.1.i.i.i86.i %792 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 1, i32 1 %w1.1.i.i.i84.i = load double, ptr %792, align 8, !noalias !4010, !noundef !3 %_6.i39.i.i.i150.i = fneg double %w1.1.i.i.i84.i %793 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 3 %w3.0.i.i.i87.i = load double, ptr %793, align 8, !noalias !4010, !noundef !3 %794 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 2 %w2.0.i.i.i85.i = load double, ptr %794, align 8, !noalias !4010, !noundef !3 %795 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 1 %w1.0.i.i.i83.i = load double, ptr %795, align 8, !noalias !4010, !noundef !3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i39.i.i.i150.i, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i83.i, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i84.i, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %_6.i36.i.i.i155.i, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w2.0.i.i.i85.i, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w2.1.i.i.i86.i, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i.i.i.i160.i, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w3.0.i.i.i87.i, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w3.1.i.i.i88.i, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body106 vector.body106: ; preds = %vector.body106, %bb24.i.i.i72.i %index107 = phi i64 [ 0, %bb24.i.i.i72.i ], [ %index.next142, %vector.body106 ] %796 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1173, i64 %index107 %797 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1178, i64 %index107 %798 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1183, i64 %index107 %799 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1188, i64 %index107 %wide.vec108 = load <8 x double>, ptr %796, align 8, !noalias !4010 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %797, align 8, !noalias !4010 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %798, align 8, !noalias !4010 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %799, align 8, !noalias !4010 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %800 = fadd <4 x double> %strided.vec109, %strided.vec115 %801 = fadd <4 x double> %strided.vec110, %strided.vec116 %802 = fsub <4 x double> %strided.vec109, %strided.vec115 %803 = fsub <4 x double> %strided.vec110, %strided.vec116 %804 = fadd <4 x double> %strided.vec112, %strided.vec118 %805 = fadd <4 x double> %strided.vec113, %strided.vec119 %806 = fsub <4 x double> %strided.vec112, %strided.vec118 %807 = fsub <4 x double> %strided.vec113, %strided.vec119 %808 = fadd <4 x double> %800, %804 %809 = fadd <4 x double> %801, %805 %810 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 %index107 %interleaved.vec120 = shufflevector <4 x double> %808, <4 x double> %809, <8 x i32> store <8 x double> %interleaved.vec120, ptr %810, align 8, !noalias !4010 %811 = fadd <4 x double> %802, %807 %812 = fsub <4 x double> %803, %806 %813 = fmul <4 x double> %812, %broadcast.splat122 %814 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %811, <4 x double> %813) %815 = fmul <4 x double> %broadcast.splat126, %811 %816 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %812, <4 x double> %815) %817 = getelementptr inbounds %"num_complex::Complex", ptr %788, i64 %index107 %interleaved.vec127 = shufflevector <4 x double> %814, <4 x double> %816, <8 x i32> store <8 x double> %interleaved.vec127, ptr %817, align 8, !noalias !4010 %818 = fsub <4 x double> %800, %804 %819 = fsub <4 x double> %801, %805 %820 = fmul <4 x double> %819, %broadcast.splat129 %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %818, <4 x double> %820) %822 = fmul <4 x double> %broadcast.splat133, %818 %823 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %819, <4 x double> %822) %824 = getelementptr inbounds %"num_complex::Complex", ptr %787, i64 %index107 %interleaved.vec134 = shufflevector <4 x double> %821, <4 x double> %823, <8 x i32> store <8 x double> %interleaved.vec134, ptr %824, align 8, !noalias !4010 %825 = fsub <4 x double> %802, %807 %826 = fadd <4 x double> %803, %806 %827 = fmul <4 x double> %826, %broadcast.splat136 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %825, <4 x double> %827) %829 = fmul <4 x double> %broadcast.splat140, %825 %830 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %826, <4 x double> %829) %831 = getelementptr inbounds %"num_complex::Complex", ptr %789, i64 %index107 %interleaved.vec141 = shufflevector <4 x double> %828, <4 x double> %830, <8 x i32> store <8 x double> %interleaved.vec141, ptr %831, align 8, !noalias !4010 %index.next142 = add nuw i64 %index107, 4 %832 = icmp eq i64 %index.next142, 64 br i1 %832, label %middle.block102, label %vector.body106, !llvm.loop !4022 middle.block102: ; preds = %vector.body106 %833 = add nuw nsw i64 %iter.i.i.i25.i.sroa.60.0139, 1 %exitcond147.not = icmp eq i64 %833, 4 br i1 %exitcond147.not, label %vector.body147, label %bb24.i.i.i72.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit": ; preds = %vector.body147 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4010 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h74299e8062a7f1e0E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4023 store i64 16, ptr %n.i.i, align 8, !noalias !4023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4023 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4023 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4023 store ptr null, ptr %_16.i.i, align 8, !noalias !4023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4023 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4023 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4023 store ptr null, ptr %_24.i.i, align 8, !noalias !4023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4023 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4023 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4023 store ptr null, ptr %_32.i.i, align 8, !noalias !4023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4023 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4023 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h795de192162edd78E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4023 store ptr null, ptr %_40.i.i, align 8, !noalias !4023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h795de192162edd78E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4023 tail call void @llvm.experimental.noalias.scope.decl(metadata !4028) tail call void @llvm.experimental.noalias.scope.decl(metadata !4031) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !4028, !noalias !4033 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !4028, !noalias !4033 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !4031, !noalias !4035 %4 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %5 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = shufflevector <4 x double> %5, <4 x double> poison, <4 x i32> %7 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = fmul <4 x double> %8, %6 %10 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %7, <4 x double> %5, <4 x double> %9) #23 %11 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> %12 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> %13 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4028, !noalias !4033 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4028, !noalias !4033 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !4031, !noalias !4035 %14 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %b.sroa.0.0.copyload.i.1.i %15 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %b.sroa.0.0.copyload.i.1.i %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %18 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %19 = fmul <4 x double> %18, %16 %20 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %17, <4 x double> %15, <4 x double> %19) #23 %21 = shufflevector <4 x double> %14, <4 x double> %20, <4 x i32> %22 = shufflevector <4 x double> %14, <4 x double> %20, <4 x i32> %23 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 %_3.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.i.2.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %a.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4028, !noalias !4033 %b.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4028, !noalias !4033 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !4031, !noalias !4035 %24 = fadd <4 x double> %a.sroa.0.0.copyload.i.2.i, %b.sroa.0.0.copyload.i.2.i %25 = fsub <4 x double> %a.sroa.0.0.copyload.i.2.i, %b.sroa.0.0.copyload.i.2.i %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %28 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %29 = fmul <4 x double> %28, %26 %30 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %27, <4 x double> %25, <4 x double> %29) #23 %31 = shufflevector <4 x double> %24, <4 x double> %30, <4 x i32> %32 = shufflevector <4 x double> %24, <4 x double> %30, <4 x i32> %33 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 2, i64 1 %_3.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.3.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %a.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4028, !noalias !4033 %b.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4028, !noalias !4033 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !4031, !noalias !4035 %34 = fadd <4 x double> %a.sroa.0.0.copyload.i.3.i, %b.sroa.0.0.copyload.i.3.i %35 = fsub <4 x double> %a.sroa.0.0.copyload.i.3.i, %b.sroa.0.0.copyload.i.3.i %36 = shufflevector <4 x double> %35, <4 x double> poison, <4 x i32> %37 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %39 = fmul <4 x double> %38, %36 %40 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %35, <4 x double> %39) #23 %41 = shufflevector <4 x double> %34, <4 x double> %40, <4 x i32> %42 = shufflevector <4 x double> %34, <4 x double> %40, <4 x i32> %43 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 3, i64 1 %44 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %44, align 8, !noalias !4023, !noundef !3 %45 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %45, align 8, !noalias !4023, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %46 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %47 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %48 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> zeroinitializer %49 = fadd <4 x double> %11, %31 %50 = fsub <4 x double> %11, %31 %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = fmul <4 x double> %51, %48 %53 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %47, <4 x double> %50, <4 x double> %52) #23 %54 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.us.i.1.i = load double, ptr %54, align 8, !alias.scope !4036, !noalias !4039, !noundef !3 %55 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %55, align 8, !alias.scope !4036, !noalias !4039, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %56 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %57 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %58 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> zeroinitializer %59 = fadd <4 x double> %12, %32 %60 = fsub <4 x double> %12, %32 %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %58 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %57, <4 x double> %60, <4 x double> %62) #23 %64 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.2.i = load double, ptr %64, align 8, !noalias !4023, !noundef !3 %65 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.2.i = load double, ptr %65, align 8, !noalias !4023, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w1.0.us.i.2.i, i64 0 %66 = insertelement <4 x double> poison, double %w1.1.us.i.2.i, i64 0 %67 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %68 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> zeroinitializer %69 = fadd <4 x double> %21, %41 %70 = fsub <4 x double> %21, %41 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %71, %68 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %67, <4 x double> %70, <4 x double> %72) #23 %74 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1 %w1.0.us.i.3.i = load double, ptr %74, align 8, !alias.scope !4036, !noalias !4039, !noundef !3 %75 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1, i32 1 %w1.1.us.i.3.i = load double, ptr %75, align 8, !alias.scope !4036, !noalias !4039, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w1.0.us.i.3.i, i64 0 %76 = insertelement <4 x double> poison, double %w1.1.us.i.3.i, i64 0 %77 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %78 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> zeroinitializer %79 = fadd <4 x double> %22, %42 %80 = fsub <4 x double> %22, %42 %81 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %81, %78 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %80, <4 x double> %82) #23 %84 = fadd <4 x double> %49, %69 store <4 x double> %84, ptr %scratch.0, align 8, !alias.scope !4042, !noalias !4045 %85 = fsub <4 x double> %49, %69 %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %86, %48 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %47, <4 x double> %85, <4 x double> %87) #23 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4042, !noalias !4045 %89 = fadd <4 x double> %53, %73 store <4 x double> %89, ptr %13, align 8, !alias.scope !4042, !noalias !4045 %90 = fsub <4 x double> %53, %73 %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %48, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %47, <4 x double> %90, <4 x double> %92) #23 store <4 x double> %93, ptr %23, align 8, !alias.scope !4042, !noalias !4045 %94 = fadd <4 x double> %59, %79 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4042, !noalias !4045 %95 = fsub <4 x double> %59, %79 %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %68 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %67, <4 x double> %95, <4 x double> %97) #23 store <4 x double> %98, ptr %_3.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4042, !noalias !4045 %99 = fadd <4 x double> %63, %83 store <4 x double> %99, ptr %33, align 8, !alias.scope !4042, !noalias !4045 %100 = fsub <4 x double> %63, %83 %101 = shufflevector <4 x double> %100, <4 x double> poison, <4 x i32> %102 = fmul <4 x double> %68, %101 %103 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %67, <4 x double> %100, <4 x double> %102) #23 store <4 x double> %103, ptr %43, align 8, !alias.scope !4042, !noalias !4045 %104 = fadd <4 x double> %84, %94 %105 = fsub <4 x double> %84, %94 store <4 x double> %104, ptr %buf.0, align 8, !noalias !4023 store <4 x double> %105, ptr %2, align 8, !noalias !4023 %106 = fadd <4 x double> %89, %99 %107 = fsub <4 x double> %89, %99 store <4 x double> %106, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4023 store <4 x double> %107, ptr %_3.i2.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4023 %108 = fadd <4 x double> %88, %98 %109 = fsub <4 x double> %88, %98 store <4 x double> %108, ptr %_3.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4023 store <4 x double> %109, ptr %_3.i2.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4023 %110 = fadd <4 x double> %93, %103 %111 = fsub <4 x double> %93, %103 store <4 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4023 store <4 x double> %111, ptr %_3.i2.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4023 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4023 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h74c8d2a3925a3e29E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4048 store i64 16, ptr %n.i.i, align 8, !noalias !4048 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4048 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4048 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4048 store ptr null, ptr %_16.i.i, align 8, !noalias !4048 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4048 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4048 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4048 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4048 store ptr null, ptr %_24.i.i, align 8, !noalias !4048 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4048 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4048 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4048 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4048 store ptr null, ptr %_32.i.i, align 8, !noalias !4048 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4048 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4048 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4048 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h58d0f958afc52a3bE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4048 store ptr null, ptr %_40.i.i, align 8, !noalias !4048 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h58d0f958afc52a3bE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4048 tail call void @llvm.experimental.noalias.scope.decl(metadata !4053) tail call void @llvm.experimental.noalias.scope.decl(metadata !4056) tail call void @llvm.experimental.noalias.scope.decl(metadata !4058) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !4058, !noalias !4060 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !4058, !noalias !4060 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !4058, !noalias !4060 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !4053, !noalias !4061 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !4053, !noalias !4061 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !4053, !noalias !4061 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !4053, !noalias !4061 %8 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %9 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %11 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = fsub <4 x double> %8, %10 %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %23, <4 x double> %27) #23 %29 = fadd <4 x double> %9, %15 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %36 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> store <4 x double> %35, ptr %scratch.0, align 8, !alias.scope !4056, !noalias !4062 %37 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %36, ptr %37, align 8, !alias.scope !4056, !noalias !4062 %38 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %39 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> %40 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %38, ptr %40, align 8, !alias.scope !4056, !noalias !4062 %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %39, ptr %41, align 8, !alias.scope !4056, !noalias !4062 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4058, !noalias !4060 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4058, !noalias !4060 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !4058, !noalias !4060 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4053, !noalias !4061 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4053, !noalias !4061 %c.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4053, !noalias !4061 %d.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4053, !noalias !4061 %42 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %43 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %44 = fadd <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %45 = fsub <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %42, %44 %51 = fsub <4 x double> %43, %49 %52 = shufflevector <4 x double> %51, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %54 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %54, %52 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %53, <4 x double> %51, <4 x double> %55) #23 %57 = fsub <4 x double> %42, %44 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fadd <4 x double> %43, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %70 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> store <4 x double> %69, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4056, !noalias !4062 %71 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %70, ptr %71, align 8, !alias.scope !4056, !noalias !4062 %72 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %73 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> %74 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 2 store <4 x double> %72, ptr %74, align 8, !alias.scope !4056, !noalias !4062 %75 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 3 store <4 x double> %73, ptr %75, align 8, !alias.scope !4056, !noalias !4062 %76 = fadd <4 x double> %35, %69 %77 = fsub <4 x double> %35, %69 %78 = fadd <4 x double> %38, %72 %79 = fsub <4 x double> %38, %72 %80 = bitcast <4 x double> %79 to <4 x i64> %81 = xor <4 x i64> %80, %82 = bitcast <4 x i64> %81 to <4 x double> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = fadd <4 x double> %76, %78 %85 = fsub <4 x double> %77, %83 %86 = fsub <4 x double> %76, %78 %87 = fadd <4 x double> %77, %83 store <4 x double> %84, ptr %buf.0, align 8, !noalias !4048 store <4 x double> %85, ptr %3, align 8, !noalias !4048 store <4 x double> %86, ptr %2, align 8, !noalias !4048 store <4 x double> %87, ptr %4, align 8, !noalias !4048 %88 = fadd <4 x double> %36, %70 %89 = fsub <4 x double> %36, %70 %90 = fadd <4 x double> %39, %73 %91 = fsub <4 x double> %39, %73 %92 = bitcast <4 x double> %91 to <4 x i64> %93 = xor <4 x i64> %92, %94 = bitcast <4 x i64> %93 to <4 x double> %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fadd <4 x double> %88, %90 %97 = fsub <4 x double> %89, %95 %98 = fsub <4 x double> %88, %90 %99 = fadd <4 x double> %89, %95 store <4 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4048 store <4 x double> %97, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4048 store <4 x double> %98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4048 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4048 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4048 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7536f9f83072bd22E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h2e3680d0509f4c1aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7593309efa0596eeE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h0af9123df861e0abE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h771272ce831d4a4fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h411abca536432d45E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h79d73806784543c0E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4063 store i64 64, ptr %n.i.i, align 8, !noalias !4063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4063 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4063 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4063 store ptr null, ptr %_16.i.i, align 8, !noalias !4063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4063 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4063 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4063 store ptr null, ptr %_24.i.i, align 8, !noalias !4063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4063 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4063 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4063 store ptr null, ptr %_32.i.i, align 8, !noalias !4063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4063 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4063 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4063 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h78cce769f95956c4E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4063 store ptr null, ptr %_40.i.i, align 8, !noalias !4063 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h78cce769f95956c4E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4063 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %4, align 8, !noalias !4068 %5 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %7 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %8 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %9 = bitcast <4 x double> %8 to <4 x i64> %10 = xor <4 x i64> %9, %11 = bitcast <4 x i64> %10 to <4 x double> %12 = shufflevector <4 x double> %11, <4 x double> poison, <4 x i32> %13 = fadd <4 x double> %5, %7 %14 = fsub <4 x double> %6, %12 %15 = fsub <4 x double> %5, %7 %16 = fadd <4 x double> %6, %12 store <4 x double> %13, ptr %buf.0, align 8, !noalias !4068 store <4 x double> %14, ptr %3, align 8, !noalias !4068 store <4 x double> %15, ptr %2, align 8, !noalias !4068 store <4 x double> %16, ptr %4, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_43.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4068 %17 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %18 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %19 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %20 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = xor <4 x i64> %21, %23 = bitcast <4 x i64> %22 to <4 x double> %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = fadd <4 x double> %17, %19 %26 = fsub <4 x double> %18, %24 %27 = fsub <4 x double> %17, %19 %28 = fadd <4 x double> %18, %24 store <4 x double> %25, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4068 store <4 x double> %26, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !4068 store <4 x double> %27, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4068 store <4 x double> %28, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_43.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4068 %29 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %30 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %31 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %32 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %33 = bitcast <4 x double> %32 to <4 x i64> %34 = xor <4 x i64> %33, %35 = bitcast <4 x i64> %34 to <4 x double> %36 = shufflevector <4 x double> %35, <4 x double> poison, <4 x i32> %37 = fadd <4 x double> %29, %31 %38 = fsub <4 x double> %30, %36 %39 = fsub <4 x double> %29, %31 %40 = fadd <4 x double> %30, %36 store <4 x double> %37, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4068 store <4 x double> %38, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !4068 store <4 x double> %39, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4068 store <4 x double> %40, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_43.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4068 %41 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %42 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %43 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %44 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %45 = bitcast <4 x double> %44 to <4 x i64> %46 = xor <4 x i64> %45, %47 = bitcast <4 x i64> %46 to <4 x double> %48 = shufflevector <4 x double> %47, <4 x double> poison, <4 x i32> %49 = fadd <4 x double> %41, %43 %50 = fsub <4 x double> %42, %48 %51 = fsub <4 x double> %41, %43 %52 = fadd <4 x double> %42, %48 store <4 x double> %49, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4068 store <4 x double> %50, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !4068 store <4 x double> %51, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4068 store <4 x double> %52, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_43.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !4068 %53 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %54 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %55 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %56 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %57 = bitcast <4 x double> %56 to <4 x i64> %58 = xor <4 x i64> %57, %59 = bitcast <4 x i64> %58 to <4 x double> %60 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> %61 = fadd <4 x double> %53, %55 %62 = fsub <4 x double> %54, %60 %63 = fsub <4 x double> %53, %55 %64 = fadd <4 x double> %54, %60 store <4 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4068 store <4 x double> %62, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !4068 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !4068 store <4 x double> %64, ptr %_3.i.i.i.i.4.i, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_43.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !4068 %65 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %66 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %67 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %68 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %69 = bitcast <4 x double> %68 to <4 x i64> %70 = xor <4 x i64> %69, %71 = bitcast <4 x i64> %70 to <4 x double> %72 = shufflevector <4 x double> %71, <4 x double> poison, <4 x i32> %73 = fadd <4 x double> %65, %67 %74 = fsub <4 x double> %66, %72 %75 = fsub <4 x double> %65, %67 %76 = fadd <4 x double> %66, %72 store <4 x double> %73, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4068 store <4 x double> %74, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !4068 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !4068 store <4 x double> %76, ptr %_3.i.i.i.i.5.i, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_43.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !4068 %77 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %78 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %79 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %80 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %81 = bitcast <4 x double> %80 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %77, %79 %86 = fsub <4 x double> %78, %84 %87 = fsub <4 x double> %77, %79 %88 = fadd <4 x double> %78, %84 store <4 x double> %85, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4068 store <4 x double> %86, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !4068 store <4 x double> %87, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !4068 store <4 x double> %88, ptr %_3.i.i.i.i.6.i, align 8, !noalias !4068 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_43.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4068 %_44.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !4068 %_45.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !4068 %_46.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !4068 %89 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %90 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %91 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %92 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %89, %91 %98 = fsub <4 x double> %90, %96 %99 = fsub <4 x double> %89, %91 %100 = fadd <4 x double> %90, %96 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4068 store <4 x double> %98, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !4068 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !4068 store <4 x double> %100, ptr %_3.i.i.i.i.7.i, align 8, !noalias !4068 %101 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 tail call void @llvm.experimental.noalias.scope.decl(metadata !4072) tail call void @llvm.experimental.noalias.scope.decl(metadata !4075) tail call void @llvm.experimental.noalias.scope.decl(metadata !4077) %102 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %103 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h78cce769f95956c4E.exit.i" %iter.sroa.60.0707.us.i.i = phi i64 [ %164, %bb22.us.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h78cce769f95956c4E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0707.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0707.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %103, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %101, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %102, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0707.us.i.i, 2 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %104, align 8, !alias.scope !4077, !noalias !4079, !noundef !3 %105 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %105, align 8, !alias.scope !4077, !noalias !4079, !noundef !3 %106 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %106, align 8, !alias.scope !4077, !noalias !4079, !noundef !3 %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %107, align 8, !alias.scope !4077, !noalias !4079, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %108, align 8, !alias.scope !4077, !noalias !4079, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %109, align 8, !alias.scope !4077, !noalias !4079, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %110 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %111 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %112 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %113 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %114 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %116 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4075, !noalias !4080 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %114, align 8, !alias.scope !4075, !noalias !4080 %122 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %123 = fmul <4 x double> %117, %122 %124 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %123) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %113, align 8, !alias.scope !4075, !noalias !4080 %125 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %126 = fmul <4 x double> %119, %125 %127 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %126) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %115, align 8, !alias.scope !4075, !noalias !4080 %128 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %121, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %129) #23 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %127 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %127 %133 = fadd <4 x double> %124, %130 %134 = fsub <4 x double> %124, %130 %135 = bitcast <4 x double> %134 to <4 x i64> %136 = xor <4 x i64> %135, %137 = bitcast <4 x i64> %136 to <4 x double> %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fadd <4 x double> %131, %133 store <4 x double> %139, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4072, !noalias !4081 %140 = fsub <4 x double> %132, %138 store <4 x double> %140, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4072, !noalias !4081 %141 = fsub <4 x double> %131, %133 store <4 x double> %141, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4072, !noalias !4081 %142 = fadd <4 x double> %132, %138 store <4 x double> %142, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4072, !noalias !4081 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4075, !noalias !4080 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4075, !noalias !4080 %143 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %117, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %144) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4075, !noalias !4080 %146 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %147 = fmul <4 x double> %119, %146 %148 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %147) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !4075, !noalias !4080 %149 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %121, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %150) #23 %152 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %148 %153 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %148 %154 = fadd <4 x double> %145, %151 %155 = fsub <4 x double> %145, %151 %156 = bitcast <4 x double> %155 to <4 x i64> %157 = xor <4 x i64> %156, %158 = bitcast <4 x i64> %157 to <4 x double> %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = fadd <4 x double> %152, %154 store <4 x double> %160, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4072, !noalias !4081 %161 = fsub <4 x double> %153, %159 store <4 x double> %161, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4072, !noalias !4081 %162 = fsub <4 x double> %152, %154 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4072, !noalias !4081 %163 = fadd <4 x double> %153, %159 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4072, !noalias !4081 %164 = add nuw nsw i64 %iter.sroa.60.0707.us.i.i, 1 %exitcond.not.i = icmp eq i64 %164, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4082) tail call void @llvm.experimental.noalias.scope.decl(metadata !4085) tail call void @llvm.experimental.noalias.scope.decl(metadata !4087) %165 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %166 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %167 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 br label %bb15.i50.i bb15.i50.i: ; preds = %bb15.i50.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i %iter.sroa.50.0547.i.i = phi i64 [ %168, %bb15.i50.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i ] %168 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %166, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %165, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %167, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4087, !noalias !4089 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4087, !noalias !4089 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !4087, !noalias !4089 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4085, !noalias !4090 %169 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %169, align 8, !alias.scope !4085, !noalias !4090 %170 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %170, align 8, !alias.scope !4085, !noalias !4090 %171 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %171, align 8, !alias.scope !4085, !noalias !4090 %172 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %173 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %176, %174 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %182, %180 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %188, %186 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = fadd <4 x double> %172, %184 %192 = fsub <4 x double> %172, %184 %193 = fadd <4 x double> %178, %190 %194 = fsub <4 x double> %178, %190 %195 = bitcast <4 x double> %194 to <4 x i64> %196 = xor <4 x i64> %195, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = fadd <4 x double> %191, %193 store <4 x double> %199, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4082, !noalias !4091 %200 = fsub <4 x double> %192, %198 store <4 x double> %200, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4082, !noalias !4091 %201 = fsub <4 x double> %191, %193 store <4 x double> %201, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4082, !noalias !4091 %202 = fadd <4 x double> %192, %198 store <4 x double> %202, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4082, !noalias !4091 %exitcond.not.i51.i = icmp eq i64 %168, 8 br i1 %exitcond.not.i51.i, label %_ZN4pulp3x862V39vectorize6__impl17hf5527f91c4e3c6c3E.exit, label %bb15.i50.i _ZN4pulp3x862V39vectorize6__impl17hf5527f91c4e3c6c3E.exit: ; preds = %bb15.i50.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4063 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7a2856a0188e6841E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4092 store i64 256, ptr %n.i.i, align 8, !noalias !4092 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4092 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4092 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4092 store ptr null, ptr %_16.i.i, align 8, !noalias !4092 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4092 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4092 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4092 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4092 store ptr null, ptr %_24.i.i, align 8, !noalias !4092 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4092 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4092 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4092 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4092 store ptr null, ptr %_32.i.i, align 8, !noalias !4092 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4092 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4092 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4092 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648ae7d336dbb0e3E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4092 store ptr null, ptr %_40.i.i, align 8, !noalias !4092 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648ae7d336dbb0e3E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4092 tail call void @llvm.experimental.noalias.scope.decl(metadata !4097) tail call void @llvm.experimental.noalias.scope.decl(metadata !4100) tail call void @llvm.experimental.noalias.scope.decl(metadata !4102) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648ae7d336dbb0e3E.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648ae7d336dbb0e3E.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4102, !noalias !4104 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4102, !noalias !4104 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !4102, !noalias !4104 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4097, !noalias !4105 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4097, !noalias !4105 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4097, !noalias !4105 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4097, !noalias !4105 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4100, !noalias !4106 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !4100, !noalias !4106 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !4100, !noalias !4106 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !4100, !noalias !4106 %exitcond.not.i.i = icmp eq i64 %8, 32 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4107) tail call void @llvm.experimental.noalias.scope.decl(metadata !4110) tail call void @llvm.experimental.noalias.scope.decl(metadata !4112) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !4112, !noalias !4114, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !4112, !noalias !4114, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !4112, !noalias !4114, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !4112, !noalias !4114, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !4112, !noalias !4114, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !4112, !noalias !4114, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4107, !noalias !4115 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4107, !noalias !4115 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4107, !noalias !4115 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4107, !noalias !4115 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4110, !noalias !4116 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !4110, !noalias !4116 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !4110, !noalias !4116 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !4110, !noalias !4116 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4107, !noalias !4115 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4107, !noalias !4115 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4107, !noalias !4115 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4107, !noalias !4115 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4110, !noalias !4116 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4110, !noalias !4116 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4110, !noalias !4116 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !4110, !noalias !4116 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 16 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4117) tail call void @llvm.experimental.noalias.scope.decl(metadata !4120) tail call void @llvm.experimental.noalias.scope.decl(metadata !4122) %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %119 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %124 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ], [ %125, %bb38.us.i59.i ] %125 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !4117, !noalias !4125 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !4117, !noalias !4125 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !4117, !noalias !4125 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !4117, !noalias !4125 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %128 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !4120, !noalias !4126 %135 = fsub <4 x double> %127, %133 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %120, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %135, <4 x double> %137) #23 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !4120, !noalias !4126 %139 = fsub <4 x double> %126, %128 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %122, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %139, <4 x double> %141) #23 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !4120, !noalias !4126 %143 = fadd <4 x double> %127, %133 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %124, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %123, <4 x double> %143, <4 x double> %145) #23 store <4 x double> %146, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !4120, !noalias !4126 %exitcond.not.i73.i = icmp eq i64 %125, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %data.i.i.i.i.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i50.1.i = load double, ptr %147, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i51.1.i = load double, ptr %148, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i52.1.i = load double, ptr %149, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i53.1.i = load double, ptr %150, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i54.1.i = load double, ptr %151, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %152 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i55.1.i = load double, ptr %152, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.1.i = insertelement <2 x double> poison, double %w1.0.us.i50.1.i, i64 0 %153 = insertelement <4 x double> poison, double %w1.1.us.i51.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.1.i = insertelement <2 x double> poison, double %w2.0.us.i52.1.i, i64 0 %154 = insertelement <4 x double> poison, double %w2.1.us.i53.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.1.i = insertelement <2 x double> poison, double %w3.0.us.i54.1.i, i64 0 %155 = insertelement <4 x double> poison, double %w3.1.us.i55.1.i, i64 0 %156 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %157 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %158 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %159 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.1.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.1.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.1.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.1.i bb38.us.i59.1.i: ; preds = %bb38.us.i59.1.i, %bb36.bb20.loopexit_crit_edge.us.i74.i %iter5.sroa.50.0697.us.i60.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ %165, %bb38.us.i59.1.i ] %165 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.1.i, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.i.i.us.i66.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %157, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.i.i.us.i67.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %156, i64 %iter5.sroa.50.0697.us.i60.1.i %_3.i.i.i.i.us.i68.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %158, i64 %iter5.sroa.50.0697.us.i60.1.i %a.sroa.0.0.copyload.us.i69.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.1.i, align 8, !alias.scope !4117, !noalias !4125 %b.sroa.0.0.copyload.us.i70.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.1.i, align 8, !alias.scope !4117, !noalias !4125 %c.sroa.0.0.copyload.us.i71.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.1.i, align 8, !alias.scope !4117, !noalias !4125 %d.sroa.0.0.copyload.us.i72.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.1.i, align 8, !alias.scope !4117, !noalias !4125 %166 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %167 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.1.i, %c.sroa.0.0.copyload.us.i71.1.i %168 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %169 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.1.i, %d.sroa.0.0.copyload.us.i72.1.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %166, %168 store <4 x double> %174, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.1.i, align 8, !alias.scope !4120, !noalias !4126 %175 = fsub <4 x double> %167, %173 %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %160, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %175, <4 x double> %177) #23 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.us.i66.1.i, align 8, !alias.scope !4120, !noalias !4126 %179 = fsub <4 x double> %166, %168 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %162, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.i.i.us.i67.1.i, align 8, !alias.scope !4120, !noalias !4126 %183 = fadd <4 x double> %167, %173 %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %164, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %183, <4 x double> %185) #23 store <4 x double> %186, ptr %_3.i.i.i.i.us.i68.1.i, align 8, !alias.scope !4120, !noalias !4126 %exitcond.not.i73.1.i = icmp eq i64 %165, 8 br i1 %exitcond.not.i73.1.i, label %bb36.bb20.loopexit_crit_edge.us.i74.1.i, label %bb38.us.i59.1.i bb36.bb20.loopexit_crit_edge.us.i74.1.i: ; preds = %bb38.us.i59.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.i.i.us.i45.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %data.i.i.i.i.i.i.i.i.us.i46.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.us.i50.2.i = load double, ptr %187, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.us.i51.2.i = load double, ptr %188, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2 %w2.0.us.i52.2.i = load double, ptr %189, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2, i32 1 %w2.1.us.i53.2.i = load double, ptr %190, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3 %w3.0.us.i54.2.i = load double, ptr %191, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3, i32 1 %w3.1.us.i55.2.i = load double, ptr %192, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.2.i = insertelement <2 x double> poison, double %w1.0.us.i50.2.i, i64 0 %193 = insertelement <4 x double> poison, double %w1.1.us.i51.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.2.i = insertelement <2 x double> poison, double %w2.0.us.i52.2.i, i64 0 %194 = insertelement <4 x double> poison, double %w2.1.us.i53.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.2.i = insertelement <2 x double> poison, double %w3.0.us.i54.2.i, i64 0 %195 = insertelement <4 x double> poison, double %w3.1.us.i55.2.i, i64 0 %196 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %197 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %198 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %199 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.2.i, <2 x double> poison, <4 x i32> zeroinitializer %200 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> zeroinitializer %201 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.2.i, <2 x double> poison, <4 x i32> zeroinitializer %202 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> zeroinitializer %203 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.2.i, <2 x double> poison, <4 x i32> zeroinitializer %204 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.2.i bb38.us.i59.2.i: ; preds = %bb38.us.i59.2.i, %bb36.bb20.loopexit_crit_edge.us.i74.1.i %iter5.sroa.50.0697.us.i60.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.1.i ], [ %205, %bb38.us.i59.2.i ] %205 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.2.i, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.i.i.us.i66.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %197, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.i.i.us.i67.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %196, i64 %iter5.sroa.50.0697.us.i60.2.i %_3.i.i.i.i.us.i68.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %198, i64 %iter5.sroa.50.0697.us.i60.2.i %a.sroa.0.0.copyload.us.i69.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.2.i, align 8, !alias.scope !4117, !noalias !4125 %b.sroa.0.0.copyload.us.i70.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.2.i, align 8, !alias.scope !4117, !noalias !4125 %c.sroa.0.0.copyload.us.i71.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.2.i, align 8, !alias.scope !4117, !noalias !4125 %d.sroa.0.0.copyload.us.i72.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.2.i, align 8, !alias.scope !4117, !noalias !4125 %206 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.2.i, %c.sroa.0.0.copyload.us.i71.2.i %207 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.2.i, %c.sroa.0.0.copyload.us.i71.2.i %208 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.2.i, %d.sroa.0.0.copyload.us.i72.2.i %209 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.2.i, %d.sroa.0.0.copyload.us.i72.2.i %210 = bitcast <4 x double> %209 to <4 x i64> %211 = xor <4 x i64> %210, %212 = bitcast <4 x i64> %211 to <4 x double> %213 = shufflevector <4 x double> %212, <4 x double> poison, <4 x i32> %214 = fadd <4 x double> %206, %208 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.2.i, align 8, !alias.scope !4120, !noalias !4126 %215 = fsub <4 x double> %207, %213 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %200, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %199, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.us.i66.2.i, align 8, !alias.scope !4120, !noalias !4126 %219 = fsub <4 x double> %206, %208 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %202, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %201, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.us.i67.2.i, align 8, !alias.scope !4120, !noalias !4126 %223 = fadd <4 x double> %207, %213 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %204, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %203, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.us.i68.2.i, align 8, !alias.scope !4120, !noalias !4126 %exitcond.not.i73.2.i = icmp eq i64 %205, 8 br i1 %exitcond.not.i73.2.i, label %bb36.bb20.loopexit_crit_edge.us.i74.2.i, label %bb38.us.i59.2.i bb36.bb20.loopexit_crit_edge.us.i74.2.i: ; preds = %bb38.us.i59.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %data.i.i.i.i.i.i.i.i.i.i.us.i45.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %data.i.i.i.i.i.i.i.i.us.i46.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 %227 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.us.i50.3.i = load double, ptr %227, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %228 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.us.i51.3.i = load double, ptr %228, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %229 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2 %w2.0.us.i52.3.i = load double, ptr %229, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %230 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2, i32 1 %w2.1.us.i53.3.i = load double, ptr %230, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %231 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3 %w3.0.us.i54.3.i = load double, ptr %231, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %232 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3, i32 1 %w3.1.us.i55.3.i = load double, ptr %232, align 8, !alias.scope !4122, !noalias !4124, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.3.i = insertelement <2 x double> poison, double %w1.0.us.i50.3.i, i64 0 %233 = insertelement <4 x double> poison, double %w1.1.us.i51.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.3.i = insertelement <2 x double> poison, double %w2.0.us.i52.3.i, i64 0 %234 = insertelement <4 x double> poison, double %w2.1.us.i53.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.3.i = insertelement <2 x double> poison, double %w3.0.us.i54.3.i, i64 0 %235 = insertelement <4 x double> poison, double %w3.1.us.i55.3.i, i64 0 %236 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %237 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %238 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 %239 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.3.i, <2 x double> poison, <4 x i32> zeroinitializer %240 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> zeroinitializer %241 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.3.i, <2 x double> poison, <4 x i32> zeroinitializer %242 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> zeroinitializer %243 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.3.i, <2 x double> poison, <4 x i32> zeroinitializer %244 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.3.i bb38.us.i59.3.i: ; preds = %bb38.us.i59.3.i, %bb36.bb20.loopexit_crit_edge.us.i74.2.i %iter5.sroa.50.0697.us.i60.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i74.2.i ], [ %245, %bb38.us.i59.3.i ] %245 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.3.i, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.i.i.us.i66.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %237, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.i.i.us.i67.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %236, i64 %iter5.sroa.50.0697.us.i60.3.i %_3.i.i.i.i.us.i68.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %238, i64 %iter5.sroa.50.0697.us.i60.3.i %a.sroa.0.0.copyload.us.i69.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.3.i, align 8, !alias.scope !4117, !noalias !4125 %b.sroa.0.0.copyload.us.i70.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.3.i, align 8, !alias.scope !4117, !noalias !4125 %c.sroa.0.0.copyload.us.i71.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.3.i, align 8, !alias.scope !4117, !noalias !4125 %d.sroa.0.0.copyload.us.i72.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.3.i, align 8, !alias.scope !4117, !noalias !4125 %246 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.3.i, %c.sroa.0.0.copyload.us.i71.3.i %247 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.3.i, %c.sroa.0.0.copyload.us.i71.3.i %248 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.3.i, %d.sroa.0.0.copyload.us.i72.3.i %249 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.3.i, %d.sroa.0.0.copyload.us.i72.3.i %250 = bitcast <4 x double> %249 to <4 x i64> %251 = xor <4 x i64> %250, %252 = bitcast <4 x i64> %251 to <4 x double> %253 = shufflevector <4 x double> %252, <4 x double> poison, <4 x i32> %254 = fadd <4 x double> %246, %248 store <4 x double> %254, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.3.i, align 8, !alias.scope !4120, !noalias !4126 %255 = fsub <4 x double> %247, %253 %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %240, %256 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %239, <4 x double> %255, <4 x double> %257) #23 store <4 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.us.i66.3.i, align 8, !alias.scope !4120, !noalias !4126 %259 = fsub <4 x double> %246, %248 %260 = shufflevector <4 x double> %259, <4 x double> poison, <4 x i32> %261 = fmul <4 x double> %242, %260 %262 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %241, <4 x double> %259, <4 x double> %261) #23 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.us.i67.3.i, align 8, !alias.scope !4120, !noalias !4126 %263 = fadd <4 x double> %247, %253 %264 = shufflevector <4 x double> %263, <4 x double> poison, <4 x i32> %265 = fmul <4 x double> %244, %264 %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %243, <4 x double> %263, <4 x double> %265) #23 store <4 x double> %266, ptr %_3.i.i.i.i.us.i68.3.i, align 8, !alias.scope !4120, !noalias !4126 %exitcond.not.i73.3.i = icmp eq i64 %245, 8 br i1 %exitcond.not.i73.3.i, label %bb26.i.i.i.i.i, label %bb38.us.i59.3.i bb26.i.i.i.i.i: ; preds = %bb38.us.i59.3.i, %bb26.i.i.i.i.i %iter7.i.i.i.i.sroa.50.0235.i = phi i64 [ %267, %bb26.i.i.i.i.i ], [ 0, %bb38.us.i59.3.i ] %267 = add nuw nsw i64 %iter7.i.i.i.i.sroa.50.0235.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter7.i.i.i.i.sroa.50.0235.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter7.i.i.i.i.sroa.50.0235.i %_73.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4092 %_74.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4092 %_75.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4092 %_76.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4092 %268 = fadd <4 x double> %_73.i.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.i.sroa.0.0.copyload.i %269 = fsub <4 x double> %_73.i.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.i.sroa.0.0.copyload.i %270 = fadd <4 x double> %_74.i.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.i.sroa.0.0.copyload.i %271 = fsub <4 x double> %_74.i.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.i.sroa.0.0.copyload.i %272 = bitcast <4 x double> %271 to <4 x i64> %273 = xor <4 x i64> %272, %274 = bitcast <4 x i64> %273 to <4 x double> %275 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> %276 = fadd <4 x double> %268, %270 %277 = fsub <4 x double> %269, %275 %278 = fsub <4 x double> %268, %270 %279 = fadd <4 x double> %269, %275 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4092 store <4 x double> %277, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4092 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4092 store <4 x double> %279, ptr %_3.i.i.i.i.i, align 8, !noalias !4092 %exitcond237.not.i = icmp eq i64 %267, 32 br i1 %exitcond237.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h37d9d35918ee1bddE.exit, label %bb26.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h37d9d35918ee1bddE.exit: ; preds = %bb26.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4092 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7a29bbc20c13a224E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4127 store i64 128, ptr %n.i, align 8, !noalias !4127 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4127 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4127 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4127 store ptr null, ptr %_16.i, align 8, !noalias !4127 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4127 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4127 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4127 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4127 store ptr null, ptr %_24.i, align 8, !noalias !4127 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4127 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4127 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4127 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4127 store ptr null, ptr %_32.i, align 8, !noalias !4127 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4127 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4127 store i64 %w.1, ptr %_34.i, align 8, !noalias !4127 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4127 store ptr null, ptr %_40.i, align 8, !noalias !4127 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4127 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !4127 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !4127 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !4127 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !4127 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !4127 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !4127 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !4127 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !4127 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !4127 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !4127 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fadd <4 x double> %20, %25 %29 = fsub <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fsub <4 x double> %20, %25 %41 = fadd <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !4127 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 28 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !4130 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !4127, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !4127, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !4127, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !4127, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !4127, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !4127, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 114 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 113 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 115 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4127 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4127 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4127 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4127 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !4127 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fadd <2 x double> %69, %71 %73 = fsub <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !4127 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !4127 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !4127 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 93 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !4127, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !4127, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !4127, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !4127, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !4127, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !4127, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 118 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 117 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 119 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4127 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4127 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4127 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4127 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4127 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fadd <2 x double> %114, %116 %118 = fsub <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !4127 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !4127 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !4127 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 94 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !4127, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !4127, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !4127, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !4127, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !4127, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !4127, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4127 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4127 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4127 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4127 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4127 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fadd <2 x double> %159, %161 %163 = fsub <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !4127 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !4127 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !4127 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 95 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !4127, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !4127, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !4127, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !4127, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !4127, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !4127, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4127 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4127 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4127 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4127 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4127 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fadd <2 x double> %204, %206 %208 = fsub <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !4127 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !4127 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !4127 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !4131 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !4131 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !4131 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !4131 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !4131 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !4131 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !4131 %295 = fadd <4 x double> %277, %282 %296 = fsub <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !4131 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !4131 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !4131 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !4131 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !4131 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !4131 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !4131 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !4131 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !4131 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !4131 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !4131 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !4131 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !4131 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !4131 %327 = fsub <4 x double> %277, %282 %328 = fadd <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !4131 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !4131 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !4131 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !4131 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !4131 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !4131 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !4131 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !4131 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !4131 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !4131 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !4131 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !4131 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !4131 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !4131 %387 = fadd <4 x double> %369, %374 %388 = fsub <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !4131 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !4131 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !4131 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !4131 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !4131 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !4131 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !4131 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !4131 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !4131 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !4131 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !4131 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !4131 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !4131 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !4131 %419 = fsub <4 x double> %369, %374 %420 = fadd <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !4131 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !4131 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !4131 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !4131 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !4131 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !4131 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !4131 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !4131 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !4131 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !4131 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !4131 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !4131 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !4131 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !4131 %479 = fadd <4 x double> %461, %466 %480 = fsub <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !4131 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !4131 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !4131 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !4131 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !4131 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !4131 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !4131 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !4131 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !4131 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !4131 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !4131 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !4131 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !4131 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !4131 %511 = fsub <4 x double> %461, %466 %512 = fadd <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !4131 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !4131 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !4131 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !4131 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !4131 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !4131 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !4131 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !4131 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !4131 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !4131 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !4131 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !4131 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !4131 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !4131 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !4131 %571 = fadd <4 x double> %553, %558 %572 = fsub <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !4131 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !4131 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !4131 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !4131 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !4131 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !4131 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !4131 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !4131 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !4131 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !4131 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !4131 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !4131 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !4131 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !4131 %603 = fsub <4 x double> %553, %558 %604 = fadd <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !4131 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !4131 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !4131 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !4131 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !4131 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !4131 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !4131 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 8 br i1 %619, label %vector.body67, label %vector.body20, !llvm.loop !4134 vector.body67: ; preds = %vector.body20 %620 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i90.i = load double, ptr %620, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %621 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i89.i = load double, ptr %621, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i162.i = fneg double %w3.1.i.i.i90.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i88.i = load double, ptr %622, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %623 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i87.i = load double, ptr %623, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i157.i = fneg double %w2.1.i.i.i88.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %624 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i86.i = load double, ptr %624, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %625 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i85.i = load double, ptr %625, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i152.i = fneg double %w1.1.i.i.i86.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %626 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %627 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec69 = load <8 x double>, ptr %buf.0, align 8, !noalias !4127 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %1, align 8, !noalias !4127 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %0, align 8, !noalias !4127 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %2, align 8, !noalias !4127 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %628 = fadd <4 x double> %strided.vec70, %strided.vec76 %629 = fadd <4 x double> %strided.vec71, %strided.vec77 %630 = fsub <4 x double> %strided.vec70, %strided.vec76 %631 = fsub <4 x double> %strided.vec71, %strided.vec77 %632 = fadd <4 x double> %strided.vec73, %strided.vec79 %633 = fadd <4 x double> %strided.vec74, %strided.vec80 %634 = fsub <4 x double> %strided.vec73, %strided.vec79 %635 = fsub <4 x double> %strided.vec74, %strided.vec80 %636 = fadd <4 x double> %628, %632 %637 = fadd <4 x double> %629, %633 %interleaved.vec81 = shufflevector <4 x double> %636, <4 x double> %637, <8 x i32> store <8 x double> %interleaved.vec81, ptr %scratch.0, align 8, !noalias !4127 %638 = fadd <4 x double> %630, %635 %639 = fsub <4 x double> %631, %634 %640 = fmul <4 x double> %639, %broadcast.splat %641 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %638, <4 x double> %640) %642 = fmul <4 x double> %broadcast.splat85, %638 %643 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %639, <4 x double> %642) %interleaved.vec86 = shufflevector <4 x double> %641, <4 x double> %643, <8 x i32> store <8 x double> %interleaved.vec86, ptr %627, align 8, !noalias !4127 %644 = fsub <4 x double> %628, %632 %645 = fsub <4 x double> %629, %633 %646 = fmul <4 x double> %645, %broadcast.splat88 %647 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %644, <4 x double> %646) %648 = fmul <4 x double> %broadcast.splat92, %644 %649 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %645, <4 x double> %648) %interleaved.vec93 = shufflevector <4 x double> %647, <4 x double> %649, <8 x i32> store <8 x double> %interleaved.vec93, ptr %234, align 8, !noalias !4127 %650 = fsub <4 x double> %630, %635 %651 = fadd <4 x double> %631, %634 %652 = fmul <4 x double> %651, %broadcast.splat95 %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %650, <4 x double> %652) %654 = fmul <4 x double> %broadcast.splat99, %650 %655 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %651, <4 x double> %654) %interleaved.vec100 = shufflevector <4 x double> %653, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec100, ptr %626, align 8, !noalias !4127 %656 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %657 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %658 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %659 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %wide.vec69.1 = load <8 x double>, ptr %656, align 8, !noalias !4127 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %657, align 8, !noalias !4127 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %658, align 8, !noalias !4127 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %659, align 8, !noalias !4127 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %660 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %661 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %662 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %663 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %664 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %665 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %666 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %667 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %668 = fadd <4 x double> %660, %664 %669 = fadd <4 x double> %661, %665 %670 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %668, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %670, align 8, !noalias !4127 %671 = fadd <4 x double> %662, %667 %672 = fsub <4 x double> %663, %666 %673 = fmul <4 x double> %672, %broadcast.splat %674 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %671, <4 x double> %673) %675 = fmul <4 x double> %broadcast.splat85, %671 %676 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %672, <4 x double> %675) %677 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %674, <4 x double> %676, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %677, align 8, !noalias !4127 %678 = fsub <4 x double> %660, %664 %679 = fsub <4 x double> %661, %665 %680 = fmul <4 x double> %679, %broadcast.splat88 %681 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %678, <4 x double> %680) %682 = fmul <4 x double> %broadcast.splat92, %678 %683 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %679, <4 x double> %682) %684 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %681, <4 x double> %683, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %684, align 8, !noalias !4127 %685 = fsub <4 x double> %662, %667 %686 = fadd <4 x double> %663, %666 %687 = fmul <4 x double> %686, %broadcast.splat95 %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %685, <4 x double> %687) %689 = fmul <4 x double> %broadcast.splat99, %685 %690 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %686, <4 x double> %689) %691 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %688, <4 x double> %690, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %691, align 8, !noalias !4127 %692 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %693 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %694 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %695 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %wide.vec69.2 = load <8 x double>, ptr %692, align 8, !noalias !4127 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %693, align 8, !noalias !4127 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %694, align 8, !noalias !4127 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %695, align 8, !noalias !4127 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %696 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %697 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %698 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %699 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %700 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %701 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %702 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %703 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %704 = fadd <4 x double> %696, %700 %705 = fadd <4 x double> %697, %701 %706 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %704, <4 x double> %705, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %706, align 8, !noalias !4127 %707 = fadd <4 x double> %698, %703 %708 = fsub <4 x double> %699, %702 %709 = fmul <4 x double> %708, %broadcast.splat %710 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %707, <4 x double> %709) %711 = fmul <4 x double> %broadcast.splat85, %707 %712 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %708, <4 x double> %711) %713 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %710, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %713, align 8, !noalias !4127 %714 = fsub <4 x double> %696, %700 %715 = fsub <4 x double> %697, %701 %716 = fmul <4 x double> %715, %broadcast.splat88 %717 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %714, <4 x double> %716) %718 = fmul <4 x double> %broadcast.splat92, %714 %719 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %715, <4 x double> %718) %720 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %717, <4 x double> %719, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %720, align 8, !noalias !4127 %721 = fsub <4 x double> %698, %703 %722 = fadd <4 x double> %699, %702 %723 = fmul <4 x double> %722, %broadcast.splat95 %724 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %721, <4 x double> %723) %725 = fmul <4 x double> %broadcast.splat99, %721 %726 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %722, <4 x double> %725) %727 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %724, <4 x double> %726, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %727, align 8, !noalias !4127 %728 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %729 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %730 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %731 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %wide.vec69.3 = load <8 x double>, ptr %728, align 8, !noalias !4127 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %729, align 8, !noalias !4127 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %730, align 8, !noalias !4127 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %731, align 8, !noalias !4127 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %732 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %733 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %734 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %735 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %736 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %737 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %738 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %739 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %740 = fadd <4 x double> %732, %736 %741 = fadd <4 x double> %733, %737 %742 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %740, <4 x double> %741, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %742, align 8, !noalias !4127 %743 = fadd <4 x double> %734, %739 %744 = fsub <4 x double> %735, %738 %745 = fmul <4 x double> %744, %broadcast.splat %746 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %743, <4 x double> %745) %747 = fmul <4 x double> %broadcast.splat85, %743 %748 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %744, <4 x double> %747) %749 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %746, <4 x double> %748, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %749, align 8, !noalias !4127 %750 = fsub <4 x double> %732, %736 %751 = fsub <4 x double> %733, %737 %752 = fmul <4 x double> %751, %broadcast.splat88 %753 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %750, <4 x double> %752) %754 = fmul <4 x double> %broadcast.splat92, %750 %755 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %751, <4 x double> %754) %756 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %753, <4 x double> %755, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %756, align 8, !noalias !4127 %757 = fsub <4 x double> %734, %739 %758 = fadd <4 x double> %735, %738 %759 = fmul <4 x double> %758, %broadcast.splat95 %760 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %757, <4 x double> %759) %761 = fmul <4 x double> %broadcast.splat99, %757 %762 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %758, <4 x double> %761) %763 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %760, <4 x double> %762, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %763, align 8, !noalias !4127 %764 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.i.i.i90.i.1 = load double, ptr %764, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i.1, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer %765 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.i.i.i89.i.1 = load double, ptr %765, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i.1, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i162.i.1 = fneg double %w3.1.i.i.i90.i.1 %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i.1, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %766 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.i.i.i88.i.1 = load double, ptr %766, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i.1, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %767 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.i.i.i87.i.1 = load double, ptr %767, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i.1, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i157.i.1 = fneg double %w2.1.i.i.i88.i.1 %broadcast.splatinsert128 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i.1, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %768 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i86.i.1 = load double, ptr %768, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i.1, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %769 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i85.i.1 = load double, ptr %769, align 8, !noalias !4127, !noundef !3 %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i.1, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i152.i.1 = fneg double %w1.1.i.i.i86.i.1 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i.1, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %770 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %771 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %772 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i702.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i.i.i697.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %data.i5.i.i.i.i.i.i.i.i.i.i.i692.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.i.i.i.i687.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec108 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i687.1, align 8, !noalias !4127 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i692.1, align 8, !noalias !4127 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i697.1, align 8, !noalias !4127 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i702.1, align 8, !noalias !4127 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %773 = fadd <4 x double> %strided.vec109, %strided.vec115 %774 = fadd <4 x double> %strided.vec110, %strided.vec116 %775 = fsub <4 x double> %strided.vec109, %strided.vec115 %776 = fsub <4 x double> %strided.vec110, %strided.vec116 %777 = fadd <4 x double> %strided.vec112, %strided.vec118 %778 = fadd <4 x double> %strided.vec113, %strided.vec119 %779 = fsub <4 x double> %strided.vec112, %strided.vec118 %780 = fsub <4 x double> %strided.vec113, %strided.vec119 %781 = fadd <4 x double> %773, %777 %782 = fadd <4 x double> %774, %778 %interleaved.vec120 = shufflevector <4 x double> %781, <4 x double> %782, <8 x i32> store <8 x double> %interleaved.vec120, ptr %233, align 8, !noalias !4127 %783 = fadd <4 x double> %775, %780 %784 = fsub <4 x double> %776, %779 %785 = fmul <4 x double> %784, %broadcast.splat122 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %783, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat126, %783 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %784, <4 x double> %787) %interleaved.vec127 = shufflevector <4 x double> %786, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec127, ptr %771, align 8, !noalias !4127 %789 = fsub <4 x double> %773, %777 %790 = fsub <4 x double> %774, %778 %791 = fmul <4 x double> %790, %broadcast.splat129 %792 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %789, <4 x double> %791) %793 = fmul <4 x double> %broadcast.splat133, %789 %794 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %790, <4 x double> %793) %interleaved.vec134 = shufflevector <4 x double> %792, <4 x double> %794, <8 x i32> store <8 x double> %interleaved.vec134, ptr %772, align 8, !noalias !4127 %795 = fsub <4 x double> %775, %780 %796 = fadd <4 x double> %776, %779 %797 = fmul <4 x double> %796, %broadcast.splat136 %798 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %795, <4 x double> %797) %799 = fmul <4 x double> %broadcast.splat140, %795 %800 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %796, <4 x double> %799) %interleaved.vec141 = shufflevector <4 x double> %798, <4 x double> %800, <8 x i32> store <8 x double> %interleaved.vec141, ptr %770, align 8, !noalias !4127 %801 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %802 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %803 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %804 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %wide.vec108.1 = load <8 x double>, ptr %801, align 8, !noalias !4127 %strided.vec109.1 = shufflevector <8 x double> %wide.vec108.1, <8 x double> poison, <4 x i32> %strided.vec110.1 = shufflevector <8 x double> %wide.vec108.1, <8 x double> poison, <4 x i32> %wide.vec111.1 = load <8 x double>, ptr %802, align 8, !noalias !4127 %strided.vec112.1 = shufflevector <8 x double> %wide.vec111.1, <8 x double> poison, <4 x i32> %strided.vec113.1 = shufflevector <8 x double> %wide.vec111.1, <8 x double> poison, <4 x i32> %wide.vec114.1 = load <8 x double>, ptr %803, align 8, !noalias !4127 %strided.vec115.1 = shufflevector <8 x double> %wide.vec114.1, <8 x double> poison, <4 x i32> %strided.vec116.1 = shufflevector <8 x double> %wide.vec114.1, <8 x double> poison, <4 x i32> %wide.vec117.1 = load <8 x double>, ptr %804, align 8, !noalias !4127 %strided.vec118.1 = shufflevector <8 x double> %wide.vec117.1, <8 x double> poison, <4 x i32> %strided.vec119.1 = shufflevector <8 x double> %wide.vec117.1, <8 x double> poison, <4 x i32> %805 = fadd <4 x double> %strided.vec109.1, %strided.vec115.1 %806 = fadd <4 x double> %strided.vec110.1, %strided.vec116.1 %807 = fsub <4 x double> %strided.vec109.1, %strided.vec115.1 %808 = fsub <4 x double> %strided.vec110.1, %strided.vec116.1 %809 = fadd <4 x double> %strided.vec112.1, %strided.vec118.1 %810 = fadd <4 x double> %strided.vec113.1, %strided.vec119.1 %811 = fsub <4 x double> %strided.vec112.1, %strided.vec118.1 %812 = fsub <4 x double> %strided.vec113.1, %strided.vec119.1 %813 = fadd <4 x double> %805, %809 %814 = fadd <4 x double> %806, %810 %815 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec120.1 = shufflevector <4 x double> %813, <4 x double> %814, <8 x i32> store <8 x double> %interleaved.vec120.1, ptr %815, align 8, !noalias !4127 %816 = fadd <4 x double> %807, %812 %817 = fsub <4 x double> %808, %811 %818 = fmul <4 x double> %817, %broadcast.splat122 %819 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %816, <4 x double> %818) %820 = fmul <4 x double> %broadcast.splat126, %816 %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %817, <4 x double> %820) %822 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec127.1 = shufflevector <4 x double> %819, <4 x double> %821, <8 x i32> store <8 x double> %interleaved.vec127.1, ptr %822, align 8, !noalias !4127 %823 = fsub <4 x double> %805, %809 %824 = fsub <4 x double> %806, %810 %825 = fmul <4 x double> %824, %broadcast.splat129 %826 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %823, <4 x double> %825) %827 = fmul <4 x double> %broadcast.splat133, %823 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %824, <4 x double> %827) %829 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec134.1 = shufflevector <4 x double> %826, <4 x double> %828, <8 x i32> store <8 x double> %interleaved.vec134.1, ptr %829, align 8, !noalias !4127 %830 = fsub <4 x double> %807, %812 %831 = fadd <4 x double> %808, %811 %832 = fmul <4 x double> %831, %broadcast.splat136 %833 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %830, <4 x double> %832) %834 = fmul <4 x double> %broadcast.splat140, %830 %835 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %831, <4 x double> %834) %836 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec141.1 = shufflevector <4 x double> %833, <4 x double> %835, <8 x i32> store <8 x double> %interleaved.vec141.1, ptr %836, align 8, !noalias !4127 %837 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %838 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %839 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %840 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %wide.vec108.2 = load <8 x double>, ptr %837, align 8, !noalias !4127 %strided.vec109.2 = shufflevector <8 x double> %wide.vec108.2, <8 x double> poison, <4 x i32> %strided.vec110.2 = shufflevector <8 x double> %wide.vec108.2, <8 x double> poison, <4 x i32> %wide.vec111.2 = load <8 x double>, ptr %838, align 8, !noalias !4127 %strided.vec112.2 = shufflevector <8 x double> %wide.vec111.2, <8 x double> poison, <4 x i32> %strided.vec113.2 = shufflevector <8 x double> %wide.vec111.2, <8 x double> poison, <4 x i32> %wide.vec114.2 = load <8 x double>, ptr %839, align 8, !noalias !4127 %strided.vec115.2 = shufflevector <8 x double> %wide.vec114.2, <8 x double> poison, <4 x i32> %strided.vec116.2 = shufflevector <8 x double> %wide.vec114.2, <8 x double> poison, <4 x i32> %wide.vec117.2 = load <8 x double>, ptr %840, align 8, !noalias !4127 %strided.vec118.2 = shufflevector <8 x double> %wide.vec117.2, <8 x double> poison, <4 x i32> %strided.vec119.2 = shufflevector <8 x double> %wide.vec117.2, <8 x double> poison, <4 x i32> %841 = fadd <4 x double> %strided.vec109.2, %strided.vec115.2 %842 = fadd <4 x double> %strided.vec110.2, %strided.vec116.2 %843 = fsub <4 x double> %strided.vec109.2, %strided.vec115.2 %844 = fsub <4 x double> %strided.vec110.2, %strided.vec116.2 %845 = fadd <4 x double> %strided.vec112.2, %strided.vec118.2 %846 = fadd <4 x double> %strided.vec113.2, %strided.vec119.2 %847 = fsub <4 x double> %strided.vec112.2, %strided.vec118.2 %848 = fsub <4 x double> %strided.vec113.2, %strided.vec119.2 %849 = fadd <4 x double> %841, %845 %850 = fadd <4 x double> %842, %846 %851 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec120.2 = shufflevector <4 x double> %849, <4 x double> %850, <8 x i32> store <8 x double> %interleaved.vec120.2, ptr %851, align 8, !noalias !4127 %852 = fadd <4 x double> %843, %848 %853 = fsub <4 x double> %844, %847 %854 = fmul <4 x double> %853, %broadcast.splat122 %855 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %852, <4 x double> %854) %856 = fmul <4 x double> %broadcast.splat126, %852 %857 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %853, <4 x double> %856) %858 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec127.2 = shufflevector <4 x double> %855, <4 x double> %857, <8 x i32> store <8 x double> %interleaved.vec127.2, ptr %858, align 8, !noalias !4127 %859 = fsub <4 x double> %841, %845 %860 = fsub <4 x double> %842, %846 %861 = fmul <4 x double> %860, %broadcast.splat129 %862 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %859, <4 x double> %861) %863 = fmul <4 x double> %broadcast.splat133, %859 %864 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %860, <4 x double> %863) %865 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec134.2 = shufflevector <4 x double> %862, <4 x double> %864, <8 x i32> store <8 x double> %interleaved.vec134.2, ptr %865, align 8, !noalias !4127 %866 = fsub <4 x double> %843, %848 %867 = fadd <4 x double> %844, %847 %868 = fmul <4 x double> %867, %broadcast.splat136 %869 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %866, <4 x double> %868) %870 = fmul <4 x double> %broadcast.splat140, %866 %871 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %867, <4 x double> %870) %872 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec141.2 = shufflevector <4 x double> %869, <4 x double> %871, <8 x i32> store <8 x double> %interleaved.vec141.2, ptr %872, align 8, !noalias !4127 %873 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %874 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %875 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %876 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %wide.vec108.3 = load <8 x double>, ptr %873, align 8, !noalias !4127 %strided.vec109.3 = shufflevector <8 x double> %wide.vec108.3, <8 x double> poison, <4 x i32> %strided.vec110.3 = shufflevector <8 x double> %wide.vec108.3, <8 x double> poison, <4 x i32> %wide.vec111.3 = load <8 x double>, ptr %874, align 8, !noalias !4127 %strided.vec112.3 = shufflevector <8 x double> %wide.vec111.3, <8 x double> poison, <4 x i32> %strided.vec113.3 = shufflevector <8 x double> %wide.vec111.3, <8 x double> poison, <4 x i32> %wide.vec114.3 = load <8 x double>, ptr %875, align 8, !noalias !4127 %strided.vec115.3 = shufflevector <8 x double> %wide.vec114.3, <8 x double> poison, <4 x i32> %strided.vec116.3 = shufflevector <8 x double> %wide.vec114.3, <8 x double> poison, <4 x i32> %wide.vec117.3 = load <8 x double>, ptr %876, align 8, !noalias !4127 %strided.vec118.3 = shufflevector <8 x double> %wide.vec117.3, <8 x double> poison, <4 x i32> %strided.vec119.3 = shufflevector <8 x double> %wide.vec117.3, <8 x double> poison, <4 x i32> %877 = fadd <4 x double> %strided.vec109.3, %strided.vec115.3 %878 = fadd <4 x double> %strided.vec110.3, %strided.vec116.3 %879 = fsub <4 x double> %strided.vec109.3, %strided.vec115.3 %880 = fsub <4 x double> %strided.vec110.3, %strided.vec116.3 %881 = fadd <4 x double> %strided.vec112.3, %strided.vec118.3 %882 = fadd <4 x double> %strided.vec113.3, %strided.vec119.3 %883 = fsub <4 x double> %strided.vec112.3, %strided.vec118.3 %884 = fsub <4 x double> %strided.vec113.3, %strided.vec119.3 %885 = fadd <4 x double> %877, %881 %886 = fadd <4 x double> %878, %882 %887 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec120.3 = shufflevector <4 x double> %885, <4 x double> %886, <8 x i32> store <8 x double> %interleaved.vec120.3, ptr %887, align 8, !noalias !4127 %888 = fadd <4 x double> %879, %884 %889 = fsub <4 x double> %880, %883 %890 = fmul <4 x double> %889, %broadcast.splat122 %891 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %888, <4 x double> %890) %892 = fmul <4 x double> %broadcast.splat126, %888 %893 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %889, <4 x double> %892) %894 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec127.3 = shufflevector <4 x double> %891, <4 x double> %893, <8 x i32> store <8 x double> %interleaved.vec127.3, ptr %894, align 8, !noalias !4127 %895 = fsub <4 x double> %877, %881 %896 = fsub <4 x double> %878, %882 %897 = fmul <4 x double> %896, %broadcast.splat129 %898 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %895, <4 x double> %897) %899 = fmul <4 x double> %broadcast.splat133, %895 %900 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %896, <4 x double> %899) %901 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec134.3 = shufflevector <4 x double> %898, <4 x double> %900, <8 x i32> store <8 x double> %interleaved.vec134.3, ptr %901, align 8, !noalias !4127 %902 = fsub <4 x double> %879, %884 %903 = fadd <4 x double> %880, %883 %904 = fmul <4 x double> %903, %broadcast.splat136 %905 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %902, <4 x double> %904) %906 = fmul <4 x double> %broadcast.splat140, %902 %907 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %903, <4 x double> %906) %908 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec141.3 = shufflevector <4 x double> %905, <4 x double> %907, <8 x i32> store <8 x double> %interleaved.vec141.3, ptr %908, align 8, !noalias !4127 br label %vector.body147 vector.body147: ; preds = %vector.body147, %vector.body67 %index148 = phi i64 [ 0, %vector.body67 ], [ %index.next157.1, %vector.body147 ] %909 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index148 %910 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index148 %wide.vec149 = load <8 x double>, ptr %909, align 8, !noalias !4127 %strided.vec150 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %strided.vec151 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %wide.vec152 = load <8 x double>, ptr %910, align 8, !noalias !4127 %strided.vec153 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %strided.vec154 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %911 = fadd <4 x double> %strided.vec150, %strided.vec153 %912 = fadd <4 x double> %strided.vec151, %strided.vec154 %913 = fsub <4 x double> %strided.vec150, %strided.vec153 %914 = fsub <4 x double> %strided.vec151, %strided.vec154 %915 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index148 %interleaved.vec155 = shufflevector <4 x double> %911, <4 x double> %912, <8 x i32> store <8 x double> %interleaved.vec155, ptr %915, align 8, !noalias !4127 %916 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index148 %interleaved.vec156 = shufflevector <4 x double> %913, <4 x double> %914, <8 x i32> store <8 x double> %interleaved.vec156, ptr %916, align 8, !noalias !4127 %index.next157 = or disjoint i64 %index148, 4 %917 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next157 %918 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index.next157 %wide.vec149.1 = load <8 x double>, ptr %917, align 8, !noalias !4127 %strided.vec150.1 = shufflevector <8 x double> %wide.vec149.1, <8 x double> poison, <4 x i32> %strided.vec151.1 = shufflevector <8 x double> %wide.vec149.1, <8 x double> poison, <4 x i32> %wide.vec152.1 = load <8 x double>, ptr %918, align 8, !noalias !4127 %strided.vec153.1 = shufflevector <8 x double> %wide.vec152.1, <8 x double> poison, <4 x i32> %strided.vec154.1 = shufflevector <8 x double> %wide.vec152.1, <8 x double> poison, <4 x i32> %919 = fadd <4 x double> %strided.vec150.1, %strided.vec153.1 %920 = fadd <4 x double> %strided.vec151.1, %strided.vec154.1 %921 = fsub <4 x double> %strided.vec150.1, %strided.vec153.1 %922 = fsub <4 x double> %strided.vec151.1, %strided.vec154.1 %923 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next157 %interleaved.vec155.1 = shufflevector <4 x double> %919, <4 x double> %920, <8 x i32> store <8 x double> %interleaved.vec155.1, ptr %923, align 8, !noalias !4127 %924 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next157 %interleaved.vec156.1 = shufflevector <4 x double> %921, <4 x double> %922, <8 x i32> store <8 x double> %interleaved.vec156.1, ptr %924, align 8, !noalias !4127 %index.next157.1 = add nuw nsw i64 %index148, 8 %925 = icmp eq i64 %index.next157.1, 64 br i1 %925, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit", label %vector.body147, !llvm.loop !4135 "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit": ; preds = %vector.body147 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4127 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7ab50fe670528430E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4136 store i64 256, ptr %n.i, align 8, !noalias !4136 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4136 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4136 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4136 store ptr null, ptr %_16.i, align 8, !noalias !4136 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4136 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4136 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4136 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4136 store ptr null, ptr %_24.i, align 8, !noalias !4136 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4136 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4136 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4136 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4136 store ptr null, ptr %_32.i, align 8, !noalias !4136 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4136 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4136 store i64 %w.1, ptr %_34.i, align 8, !noalias !4136 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h02a10ddf3b78d13eE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4136 store ptr null, ptr %_40.i, align 8, !noalias !4136 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h02a10ddf3b78d13eE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4136 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %16 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %21 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %25 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %26 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %27 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %28 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %29 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h02a10ddf3b78d13eE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h02a10ddf3b78d13eE.exit" ], [ %index.next, %vector.body ] %30 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %31 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index %32 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index %33 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index %34 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index %35 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index %36 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index %37 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index %38 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %index %39 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index %40 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index %41 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index %42 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index %43 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index %44 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index %45 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index %wide.vec = load <8 x double>, ptr %30, align 8, !noalias !4136 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %31, align 8, !noalias !4136 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %32, align 8, !noalias !4136 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %33, align 8, !noalias !4136 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %34, align 8, !noalias !4136 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %35, align 8, !noalias !4136 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %36, align 8, !noalias !4136 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %37, align 8, !noalias !4136 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %38, align 8, !noalias !4136 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %wide.vec26 = load <8 x double>, ptr %39, align 8, !noalias !4136 %strided.vec27 = shufflevector <8 x double> %wide.vec26, <8 x double> poison, <4 x i32> %strided.vec28 = shufflevector <8 x double> %wide.vec26, <8 x double> poison, <4 x i32> %wide.vec29 = load <8 x double>, ptr %40, align 8, !noalias !4136 %strided.vec30 = shufflevector <8 x double> %wide.vec29, <8 x double> poison, <4 x i32> %strided.vec31 = shufflevector <8 x double> %wide.vec29, <8 x double> poison, <4 x i32> %wide.vec32 = load <8 x double>, ptr %41, align 8, !noalias !4136 %strided.vec33 = shufflevector <8 x double> %wide.vec32, <8 x double> poison, <4 x i32> %strided.vec34 = shufflevector <8 x double> %wide.vec32, <8 x double> poison, <4 x i32> %wide.vec35 = load <8 x double>, ptr %42, align 8, !noalias !4136 %strided.vec36 = shufflevector <8 x double> %wide.vec35, <8 x double> poison, <4 x i32> %strided.vec37 = shufflevector <8 x double> %wide.vec35, <8 x double> poison, <4 x i32> %wide.vec38 = load <8 x double>, ptr %43, align 8, !noalias !4136 %strided.vec39 = shufflevector <8 x double> %wide.vec38, <8 x double> poison, <4 x i32> %strided.vec40 = shufflevector <8 x double> %wide.vec38, <8 x double> poison, <4 x i32> %wide.vec41 = load <8 x double>, ptr %44, align 8, !noalias !4136 %strided.vec42 = shufflevector <8 x double> %wide.vec41, <8 x double> poison, <4 x i32> %strided.vec43 = shufflevector <8 x double> %wide.vec41, <8 x double> poison, <4 x i32> %wide.vec44 = load <8 x double>, ptr %45, align 8, !noalias !4136 %strided.vec45 = shufflevector <8 x double> %wide.vec44, <8 x double> poison, <4 x i32> %strided.vec46 = shufflevector <8 x double> %wide.vec44, <8 x double> poison, <4 x i32> %46 = fadd <4 x double> %strided.vec, %strided.vec24 %47 = fadd <4 x double> %strided.vec1, %strided.vec25 %48 = fsub <4 x double> %strided.vec, %strided.vec24 %49 = fsub <4 x double> %strided.vec1, %strided.vec25 %50 = fadd <4 x double> %strided.vec12, %strided.vec36 %51 = fadd <4 x double> %strided.vec13, %strided.vec37 %52 = fsub <4 x double> %strided.vec12, %strided.vec36 %53 = fsub <4 x double> %strided.vec13, %strided.vec37 %54 = fadd <4 x double> %strided.vec6, %strided.vec30 %55 = fadd <4 x double> %strided.vec7, %strided.vec31 %56 = fsub <4 x double> %strided.vec6, %strided.vec30 %57 = fsub <4 x double> %strided.vec7, %strided.vec31 %58 = fadd <4 x double> %strided.vec18, %strided.vec42 %59 = fadd <4 x double> %strided.vec19, %strided.vec43 %60 = fsub <4 x double> %strided.vec18, %strided.vec42 %61 = fsub <4 x double> %strided.vec19, %strided.vec43 %62 = fadd <4 x double> %strided.vec3, %strided.vec27 %63 = fadd <4 x double> %strided.vec4, %strided.vec28 %64 = fsub <4 x double> %strided.vec3, %strided.vec27 %65 = fsub <4 x double> %strided.vec4, %strided.vec28 %66 = fadd <4 x double> %strided.vec15, %strided.vec39 %67 = fadd <4 x double> %strided.vec16, %strided.vec40 %68 = fsub <4 x double> %strided.vec15, %strided.vec39 %69 = fsub <4 x double> %strided.vec16, %strided.vec40 %70 = fadd <4 x double> %strided.vec9, %strided.vec33 %71 = fadd <4 x double> %strided.vec10, %strided.vec34 %72 = fsub <4 x double> %strided.vec9, %strided.vec33 %73 = fsub <4 x double> %strided.vec10, %strided.vec34 %74 = fadd <4 x double> %strided.vec21, %strided.vec45 %75 = fadd <4 x double> %strided.vec22, %strided.vec46 %76 = fsub <4 x double> %strided.vec21, %strided.vec45 %77 = fsub <4 x double> %strided.vec22, %strided.vec46 %78 = fadd <4 x double> %46, %50 %79 = fadd <4 x double> %47, %51 %80 = fadd <4 x double> %48, %53 %81 = fsub <4 x double> %49, %52 %82 = fsub <4 x double> %46, %50 %83 = fsub <4 x double> %47, %51 %84 = fsub <4 x double> %48, %53 %85 = fadd <4 x double> %49, %52 %86 = fadd <4 x double> %54, %58 %87 = fadd <4 x double> %55, %59 %88 = fadd <4 x double> %56, %61 %89 = fsub <4 x double> %57, %60 %90 = fsub <4 x double> %54, %58 %91 = fsub <4 x double> %55, %59 %92 = fsub <4 x double> %56, %61 %93 = fadd <4 x double> %57, %60 %94 = fadd <4 x double> %62, %66 %95 = fadd <4 x double> %63, %67 %96 = fadd <4 x double> %64, %69 %97 = fsub <4 x double> %65, %68 %98 = fsub <4 x double> %62, %66 %99 = fsub <4 x double> %63, %67 %100 = fsub <4 x double> %64, %69 %101 = fadd <4 x double> %65, %68 %102 = fadd <4 x double> %70, %74 %103 = fadd <4 x double> %71, %75 %104 = fadd <4 x double> %72, %77 %105 = fsub <4 x double> %73, %76 %106 = fsub <4 x double> %70, %74 %107 = fsub <4 x double> %71, %75 %108 = fsub <4 x double> %72, %77 %109 = fadd <4 x double> %73, %76 %110 = fadd <4 x double> %89, %88 %111 = fsub <4 x double> %89, %88 %112 = fmul <4 x double> %110, %113 = fmul <4 x double> %111, %114 = fsub <4 x double> %92, %93 %115 = fadd <4 x double> %93, %92 %116 = fmul <4 x double> %114, %117 = fmul <4 x double> %115, %118 = fadd <4 x double> %78, %86 %119 = fadd <4 x double> %79, %87 %120 = fadd <4 x double> %80, %112 %121 = fadd <4 x double> %81, %113 %122 = fadd <4 x double> %82, %91 %123 = fsub <4 x double> %83, %90 %124 = fsub <4 x double> %84, %116 %125 = fsub <4 x double> %85, %117 %126 = fsub <4 x double> %78, %86 %127 = fsub <4 x double> %79, %87 %128 = fsub <4 x double> %80, %112 %129 = fsub <4 x double> %81, %113 %130 = fsub <4 x double> %82, %91 %131 = fadd <4 x double> %83, %90 %132 = fadd <4 x double> %84, %116 %133 = fadd <4 x double> %85, %117 %134 = fadd <4 x double> %105, %104 %135 = fsub <4 x double> %105, %104 %136 = fmul <4 x double> %134, %137 = fmul <4 x double> %135, %138 = fsub <4 x double> %108, %109 %139 = fadd <4 x double> %109, %108 %140 = fmul <4 x double> %138, %141 = fmul <4 x double> %139, %142 = fadd <4 x double> %94, %102 %143 = fadd <4 x double> %95, %103 %144 = fadd <4 x double> %96, %136 %145 = fadd <4 x double> %97, %137 %146 = fadd <4 x double> %98, %107 %147 = fsub <4 x double> %99, %106 %148 = fsub <4 x double> %100, %140 %149 = fsub <4 x double> %101, %141 %150 = fsub <4 x double> %94, %102 %151 = fsub <4 x double> %95, %103 %152 = fsub <4 x double> %96, %136 %153 = fsub <4 x double> %97, %137 %154 = fsub <4 x double> %98, %107 %155 = fadd <4 x double> %99, %106 %156 = fadd <4 x double> %100, %140 %157 = fadd <4 x double> %101, %141 %158 = fmul <4 x double> %145, %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %144, <4 x double> , <4 x double> %158) %160 = fmul <4 x double> %144, %161 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %145, <4 x double> , <4 x double> %160) %162 = fadd <4 x double> %147, %146 %163 = fsub <4 x double> %147, %146 %164 = fmul <4 x double> %162, %165 = fmul <4 x double> %163, %166 = fmul <4 x double> %149, %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %148, <4 x double> , <4 x double> %166) %168 = fmul <4 x double> %148, %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %149, <4 x double> , <4 x double> %168) %170 = fmul <4 x double> %153, %171 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %152, <4 x double> , <4 x double> %170) %172 = fmul <4 x double> %152, %173 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %153, <4 x double> , <4 x double> %172) %174 = fsub <4 x double> %154, %155 %175 = fadd <4 x double> %155, %154 %176 = fmul <4 x double> %174, %177 = fmul <4 x double> %175, %178 = fmul <4 x double> %157, %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %156, <4 x double> , <4 x double> %178) %180 = fmul <4 x double> %156, %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %157, <4 x double> , <4 x double> %180) %182 = fadd <4 x double> %118, %142 %183 = fadd <4 x double> %119, %143 %184 = fadd <4 x double> %120, %159 %185 = fadd <4 x double> %121, %161 %186 = fadd <4 x double> %122, %164 %187 = fadd <4 x double> %123, %165 %188 = fadd <4 x double> %124, %167 %189 = fadd <4 x double> %125, %169 %190 = fadd <4 x double> %126, %151 %191 = fsub <4 x double> %127, %150 %192 = fsub <4 x double> %128, %171 %193 = fsub <4 x double> %129, %173 %194 = fsub <4 x double> %130, %176 %195 = fsub <4 x double> %131, %177 %196 = fsub <4 x double> %132, %179 %197 = fsub <4 x double> %133, %181 %198 = fsub <4 x double> %118, %142 %199 = fsub <4 x double> %119, %143 %200 = fsub <4 x double> %120, %159 %201 = fsub <4 x double> %121, %161 %202 = fsub <4 x double> %122, %164 %203 = fsub <4 x double> %123, %165 %204 = fsub <4 x double> %124, %167 %205 = fsub <4 x double> %125, %169 %206 = fsub <4 x double> %126, %151 %207 = fadd <4 x double> %127, %150 %208 = fadd <4 x double> %128, %171 %209 = fadd <4 x double> %129, %173 %210 = fadd <4 x double> %130, %176 %211 = fadd <4 x double> %131, %177 %212 = fadd <4 x double> %132, %179 %213 = fadd <4 x double> %133, %181 %214 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %182, <4 x double> %183, <8 x i32> store <8 x double> %interleaved.vec, ptr %214, align 8, !noalias !4136 %215 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %interleaved.vec47 = shufflevector <4 x double> %184, <4 x double> %185, <8 x i32> store <8 x double> %interleaved.vec47, ptr %215, align 8, !noalias !4136 %216 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %interleaved.vec48 = shufflevector <4 x double> %186, <4 x double> %187, <8 x i32> store <8 x double> %interleaved.vec48, ptr %216, align 8, !noalias !4136 %217 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %interleaved.vec49 = shufflevector <4 x double> %188, <4 x double> %189, <8 x i32> store <8 x double> %interleaved.vec49, ptr %217, align 8, !noalias !4136 %218 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %interleaved.vec50 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> store <8 x double> %interleaved.vec50, ptr %218, align 8, !noalias !4136 %219 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %interleaved.vec51 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> store <8 x double> %interleaved.vec51, ptr %219, align 8, !noalias !4136 %220 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %interleaved.vec52 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> store <8 x double> %interleaved.vec52, ptr %220, align 8, !noalias !4136 %221 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %interleaved.vec53 = shufflevector <4 x double> %196, <4 x double> %197, <8 x i32> store <8 x double> %interleaved.vec53, ptr %221, align 8, !noalias !4136 %222 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec54 = shufflevector <4 x double> %198, <4 x double> %199, <8 x i32> store <8 x double> %interleaved.vec54, ptr %222, align 8, !noalias !4136 %223 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %interleaved.vec55 = shufflevector <4 x double> %200, <4 x double> %201, <8 x i32> store <8 x double> %interleaved.vec55, ptr %223, align 8, !noalias !4136 %224 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %interleaved.vec56 = shufflevector <4 x double> %202, <4 x double> %203, <8 x i32> store <8 x double> %interleaved.vec56, ptr %224, align 8, !noalias !4136 %225 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %interleaved.vec57 = shufflevector <4 x double> %204, <4 x double> %205, <8 x i32> store <8 x double> %interleaved.vec57, ptr %225, align 8, !noalias !4136 %226 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %interleaved.vec58 = shufflevector <4 x double> %206, <4 x double> %207, <8 x i32> store <8 x double> %interleaved.vec58, ptr %226, align 8, !noalias !4136 %227 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %interleaved.vec59 = shufflevector <4 x double> %208, <4 x double> %209, <8 x i32> store <8 x double> %interleaved.vec59, ptr %227, align 8, !noalias !4136 %228 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %interleaved.vec60 = shufflevector <4 x double> %210, <4 x double> %211, <8 x i32> store <8 x double> %interleaved.vec60, ptr %228, align 8, !noalias !4136 %229 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %interleaved.vec61 = shufflevector <4 x double> %212, <4 x double> %213, <8 x i32> store <8 x double> %interleaved.vec61, ptr %229, align 8, !noalias !4136 %index.next = add nuw i64 %index, 4 %230 = icmp eq i64 %index.next, 16 br i1 %230, label %vector.body66, label %vector.body, !llvm.loop !4139 vector.body66: ; preds = %vector.body, %vector.body66 %index67 = phi i64 [ %index.next145, %vector.body66 ], [ 0, %vector.body ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body66 ], [ , %vector.body ] %231 = shl <4 x i64> %vec.ind, %232 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %231 %233 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %233, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %234 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %234, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %235 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %235, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %236 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %236, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %237 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %238 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %239 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %240 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %241 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %241, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %242 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %242, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %243 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %243, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %244 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %244, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %245 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %245, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %246 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %246, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %247 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %247, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %248 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %248, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %249 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %249, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %250 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %251 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %252 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %253 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %254 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %255 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %256 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather90 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %256, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %257 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %257, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %258 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %258, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %259 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %259, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %260 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %260, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %261 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %261, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %262 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %262, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %263 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 8 %264 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 4 %265 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 2 %266 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 1 %267 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 3 %268 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 6 %269 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 5 %270 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 7 %271 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 12 %272 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 10 %273 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 9 %274 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 11 %275 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 14 %276 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 13 %277 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 15 %278 = fneg <4 x double> %wide.masked.gather68 %279 = fneg <4 x double> %wide.masked.gather70 %280 = fneg <4 x double> %wide.masked.gather72 %281 = fneg <4 x double> %wide.masked.gather74 %282 = fneg <4 x double> %wide.masked.gather76 %283 = fneg <4 x double> %wide.masked.gather78 %284 = fneg <4 x double> %wide.masked.gather80 %285 = fneg <4 x double> %wide.masked.gather82 %286 = fneg <4 x double> %wide.masked.gather84 %287 = fneg <4 x double> %wide.masked.gather86 %288 = fneg <4 x double> %wide.masked.gather88 %289 = fneg <4 x double> %wide.masked.gather90 %290 = fneg <4 x double> %wide.masked.gather92 %291 = fneg <4 x double> %wide.masked.gather94 %292 = fneg <4 x double> %wide.masked.gather96 %wide.masked.gather97 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %232, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %293 = getelementptr inbounds i8, <4 x ptr> %232, i64 8 %wide.masked.gather98 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %293, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %266, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %294 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 1, i32 1 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %294, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %295 = fmul <4 x double> %wide.masked.gather100, %278 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather99, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather68, %wide.masked.gather99 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather100, <4 x double> %297) %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %265, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %299 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 2, i32 1 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %299, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %300 = fmul <4 x double> %wide.masked.gather102, %279 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather69, <4 x double> %wide.masked.gather101, <4 x double> %300) %302 = fmul <4 x double> %wide.masked.gather70, %wide.masked.gather101 %303 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather69, <4 x double> %wide.masked.gather102, <4 x double> %302) %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %267, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %304 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 3, i32 1 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %304, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %305 = fmul <4 x double> %wide.masked.gather104, %280 %306 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather71, <4 x double> %wide.masked.gather103, <4 x double> %305) %307 = fmul <4 x double> %wide.masked.gather72, %wide.masked.gather103 %308 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather71, <4 x double> %wide.masked.gather104, <4 x double> %307) %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %264, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %309 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 4, i32 1 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %309, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %310 = fmul <4 x double> %wide.masked.gather106, %281 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather73, <4 x double> %wide.masked.gather105, <4 x double> %310) %312 = fmul <4 x double> %wide.masked.gather74, %wide.masked.gather105 %313 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather73, <4 x double> %wide.masked.gather106, <4 x double> %312) %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %269, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %314 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 5, i32 1 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %314, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %315 = fmul <4 x double> %wide.masked.gather108, %282 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather75, <4 x double> %wide.masked.gather107, <4 x double> %315) %317 = fmul <4 x double> %wide.masked.gather76, %wide.masked.gather107 %318 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather75, <4 x double> %wide.masked.gather108, <4 x double> %317) %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %268, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %319 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 6, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %319, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %320 = fmul <4 x double> %wide.masked.gather110, %283 %321 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather77, <4 x double> %wide.masked.gather109, <4 x double> %320) %322 = fmul <4 x double> %wide.masked.gather78, %wide.masked.gather109 %323 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather77, <4 x double> %wide.masked.gather110, <4 x double> %322) %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %270, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %324 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 7, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %324, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %325 = fmul <4 x double> %wide.masked.gather112, %284 %326 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather79, <4 x double> %wide.masked.gather111, <4 x double> %325) %327 = fmul <4 x double> %wide.masked.gather80, %wide.masked.gather111 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather79, <4 x double> %wide.masked.gather112, <4 x double> %327) %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %263, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %329 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 8, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %329, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %330 = fmul <4 x double> %wide.masked.gather114, %285 %331 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather81, <4 x double> %wide.masked.gather113, <4 x double> %330) %332 = fmul <4 x double> %wide.masked.gather82, %wide.masked.gather113 %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather81, <4 x double> %wide.masked.gather114, <4 x double> %332) %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %334 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 9, i32 1 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %334, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %335 = fmul <4 x double> %wide.masked.gather116, %286 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather83, <4 x double> %wide.masked.gather115, <4 x double> %335) %337 = fmul <4 x double> %wide.masked.gather84, %wide.masked.gather115 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather83, <4 x double> %wide.masked.gather116, <4 x double> %337) %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %339 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 10, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %339, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %340 = fmul <4 x double> %wide.masked.gather118, %287 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather85, <4 x double> %wide.masked.gather117, <4 x double> %340) %342 = fmul <4 x double> %wide.masked.gather86, %wide.masked.gather117 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather85, <4 x double> %wide.masked.gather118, <4 x double> %342) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 11, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %345 = fmul <4 x double> %wide.masked.gather120, %288 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather87, <4 x double> %wide.masked.gather119, <4 x double> %345) %347 = fmul <4 x double> %wide.masked.gather88, %wide.masked.gather119 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather87, <4 x double> %wide.masked.gather120, <4 x double> %347) %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %349 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 12, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %349, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %350 = fmul <4 x double> %wide.masked.gather122, %289 %351 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather89, <4 x double> %wide.masked.gather121, <4 x double> %350) %352 = fmul <4 x double> %wide.masked.gather90, %wide.masked.gather121 %353 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather89, <4 x double> %wide.masked.gather122, <4 x double> %352) %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %276, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %354 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 13, i32 1 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %355 = fmul <4 x double> %wide.masked.gather124, %290 %356 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather91, <4 x double> %wide.masked.gather123, <4 x double> %355) %357 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather123 %358 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather91, <4 x double> %wide.masked.gather124, <4 x double> %357) %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %275, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %359 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 14, i32 1 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %360 = fmul <4 x double> %wide.masked.gather126, %291 %361 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather125, <4 x double> %360) %362 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather125 %363 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather126, <4 x double> %362) %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %277, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 15, i32 1 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4136 %365 = fmul <4 x double> %wide.masked.gather128, %292 %366 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather127, <4 x double> %365) %367 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather127 %368 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather128, <4 x double> %367) %369 = fadd <4 x double> %wide.masked.gather97, %331 %370 = fadd <4 x double> %wide.masked.gather98, %333 %371 = fsub <4 x double> %wide.masked.gather97, %331 %372 = fsub <4 x double> %wide.masked.gather98, %333 %373 = fadd <4 x double> %311, %351 %374 = fadd <4 x double> %313, %353 %375 = fsub <4 x double> %311, %351 %376 = fsub <4 x double> %313, %353 %377 = fadd <4 x double> %301, %341 %378 = fadd <4 x double> %303, %343 %379 = fsub <4 x double> %301, %341 %380 = fsub <4 x double> %303, %343 %381 = fadd <4 x double> %321, %361 %382 = fadd <4 x double> %323, %363 %383 = fsub <4 x double> %321, %361 %384 = fsub <4 x double> %323, %363 %385 = fadd <4 x double> %296, %336 %386 = fadd <4 x double> %298, %338 %387 = fsub <4 x double> %296, %336 %388 = fsub <4 x double> %298, %338 %389 = fadd <4 x double> %316, %356 %390 = fadd <4 x double> %318, %358 %391 = fsub <4 x double> %316, %356 %392 = fsub <4 x double> %318, %358 %393 = fadd <4 x double> %306, %346 %394 = fadd <4 x double> %308, %348 %395 = fsub <4 x double> %306, %346 %396 = fsub <4 x double> %308, %348 %397 = fadd <4 x double> %326, %366 %398 = fadd <4 x double> %328, %368 %399 = fsub <4 x double> %326, %366 %400 = fsub <4 x double> %328, %368 %401 = fadd <4 x double> %369, %373 %402 = fadd <4 x double> %370, %374 %403 = fadd <4 x double> %371, %376 %404 = fsub <4 x double> %372, %375 %405 = fsub <4 x double> %369, %373 %406 = fsub <4 x double> %370, %374 %407 = fsub <4 x double> %371, %376 %408 = fadd <4 x double> %372, %375 %409 = fadd <4 x double> %377, %381 %410 = fadd <4 x double> %378, %382 %411 = fadd <4 x double> %379, %384 %412 = fsub <4 x double> %380, %383 %413 = fsub <4 x double> %377, %381 %414 = fsub <4 x double> %378, %382 %415 = fsub <4 x double> %379, %384 %416 = fadd <4 x double> %380, %383 %417 = fadd <4 x double> %385, %389 %418 = fadd <4 x double> %386, %390 %419 = fadd <4 x double> %387, %392 %420 = fsub <4 x double> %388, %391 %421 = fsub <4 x double> %385, %389 %422 = fsub <4 x double> %386, %390 %423 = fsub <4 x double> %387, %392 %424 = fadd <4 x double> %388, %391 %425 = fadd <4 x double> %393, %397 %426 = fadd <4 x double> %394, %398 %427 = fadd <4 x double> %395, %400 %428 = fsub <4 x double> %396, %399 %429 = fsub <4 x double> %393, %397 %430 = fsub <4 x double> %394, %398 %431 = fsub <4 x double> %395, %400 %432 = fadd <4 x double> %396, %399 %433 = fadd <4 x double> %411, %412 %434 = fsub <4 x double> %412, %411 %435 = fmul <4 x double> %433, %436 = fmul <4 x double> %434, %437 = fsub <4 x double> %415, %416 %438 = fadd <4 x double> %415, %416 %439 = fmul <4 x double> %437, %440 = fmul <4 x double> %438, %441 = fadd <4 x double> %401, %409 %442 = fadd <4 x double> %402, %410 %443 = fadd <4 x double> %403, %435 %444 = fadd <4 x double> %404, %436 %445 = fadd <4 x double> %405, %414 %446 = fsub <4 x double> %406, %413 %447 = fsub <4 x double> %407, %439 %448 = fsub <4 x double> %408, %440 %449 = fsub <4 x double> %401, %409 %450 = fsub <4 x double> %402, %410 %451 = fsub <4 x double> %403, %435 %452 = fsub <4 x double> %404, %436 %453 = fsub <4 x double> %405, %414 %454 = fadd <4 x double> %406, %413 %455 = fadd <4 x double> %407, %439 %456 = fadd <4 x double> %408, %440 %457 = fadd <4 x double> %427, %428 %458 = fsub <4 x double> %428, %427 %459 = fmul <4 x double> %457, %460 = fmul <4 x double> %458, %461 = fsub <4 x double> %431, %432 %462 = fadd <4 x double> %431, %432 %463 = fmul <4 x double> %461, %464 = fmul <4 x double> %462, %465 = fadd <4 x double> %417, %425 %466 = fadd <4 x double> %418, %426 %467 = fadd <4 x double> %419, %459 %468 = fadd <4 x double> %420, %460 %469 = fadd <4 x double> %421, %430 %470 = fsub <4 x double> %422, %429 %471 = fsub <4 x double> %423, %463 %472 = fsub <4 x double> %424, %464 %473 = fsub <4 x double> %417, %425 %474 = fsub <4 x double> %418, %426 %475 = fsub <4 x double> %419, %459 %476 = fsub <4 x double> %420, %460 %477 = fsub <4 x double> %421, %430 %478 = fadd <4 x double> %422, %429 %479 = fadd <4 x double> %423, %463 %480 = fadd <4 x double> %424, %464 %481 = fadd <4 x double> %441, %465 %482 = fadd <4 x double> %442, %466 %483 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index67 %interleaved.vec129 = shufflevector <4 x double> %481, <4 x double> %482, <8 x i32> store <8 x double> %interleaved.vec129, ptr %483, align 8, !noalias !4136 %484 = fsub <4 x double> %441, %465 %485 = fsub <4 x double> %442, %466 %486 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %index67 %interleaved.vec130 = shufflevector <4 x double> %484, <4 x double> %485, <8 x i32> store <8 x double> %interleaved.vec130, ptr %486, align 8, !noalias !4136 %487 = fmul <4 x double> %468, %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %467, <4 x double> , <4 x double> %487) %489 = fmul <4 x double> %467, %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %468, <4 x double> , <4 x double> %489) %491 = fadd <4 x double> %443, %488 %492 = fadd <4 x double> %444, %490 %493 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index67 %interleaved.vec131 = shufflevector <4 x double> %491, <4 x double> %492, <8 x i32> store <8 x double> %interleaved.vec131, ptr %493, align 8, !noalias !4136 %494 = fsub <4 x double> %443, %488 %495 = fsub <4 x double> %444, %490 %496 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index67 %interleaved.vec132 = shufflevector <4 x double> %494, <4 x double> %495, <8 x i32> store <8 x double> %interleaved.vec132, ptr %496, align 8, !noalias !4136 %497 = fadd <4 x double> %469, %470 %498 = fsub <4 x double> %470, %469 %499 = fmul <4 x double> %497, %500 = fmul <4 x double> %498, %501 = fadd <4 x double> %445, %499 %502 = fadd <4 x double> %446, %500 %503 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index67 %interleaved.vec133 = shufflevector <4 x double> %501, <4 x double> %502, <8 x i32> store <8 x double> %interleaved.vec133, ptr %503, align 8, !noalias !4136 %504 = fsub <4 x double> %445, %499 %505 = fsub <4 x double> %446, %500 %506 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index67 %interleaved.vec134 = shufflevector <4 x double> %504, <4 x double> %505, <8 x i32> store <8 x double> %interleaved.vec134, ptr %506, align 8, !noalias !4136 %507 = fmul <4 x double> %472, %508 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %471, <4 x double> , <4 x double> %507) %509 = fmul <4 x double> %471, %510 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %472, <4 x double> , <4 x double> %509) %511 = fadd <4 x double> %447, %508 %512 = fadd <4 x double> %448, %510 %513 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index67 %interleaved.vec135 = shufflevector <4 x double> %511, <4 x double> %512, <8 x i32> store <8 x double> %interleaved.vec135, ptr %513, align 8, !noalias !4136 %514 = fsub <4 x double> %447, %508 %515 = fsub <4 x double> %448, %510 %516 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index67 %interleaved.vec136 = shufflevector <4 x double> %514, <4 x double> %515, <8 x i32> store <8 x double> %interleaved.vec136, ptr %516, align 8, !noalias !4136 %517 = fadd <4 x double> %449, %474 %518 = fsub <4 x double> %450, %473 %519 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index67 %interleaved.vec137 = shufflevector <4 x double> %517, <4 x double> %518, <8 x i32> store <8 x double> %interleaved.vec137, ptr %519, align 8, !noalias !4136 %520 = fsub <4 x double> %449, %474 %521 = fadd <4 x double> %450, %473 %522 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index67 %interleaved.vec138 = shufflevector <4 x double> %520, <4 x double> %521, <8 x i32> store <8 x double> %interleaved.vec138, ptr %522, align 8, !noalias !4136 %523 = fmul <4 x double> %476, %524 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %475, <4 x double> , <4 x double> %523) %525 = fmul <4 x double> %475, %526 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %476, <4 x double> , <4 x double> %525) %527 = fsub <4 x double> %451, %524 %528 = fsub <4 x double> %452, %526 %529 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index67 %interleaved.vec139 = shufflevector <4 x double> %527, <4 x double> %528, <8 x i32> store <8 x double> %interleaved.vec139, ptr %529, align 8, !noalias !4136 %530 = fadd <4 x double> %451, %524 %531 = fadd <4 x double> %452, %526 %532 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index67 %interleaved.vec140 = shufflevector <4 x double> %530, <4 x double> %531, <8 x i32> store <8 x double> %interleaved.vec140, ptr %532, align 8, !noalias !4136 %533 = fsub <4 x double> %477, %478 %534 = fadd <4 x double> %477, %478 %535 = fmul <4 x double> %533, %536 = fmul <4 x double> %534, %537 = fsub <4 x double> %453, %535 %538 = fsub <4 x double> %454, %536 %539 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index67 %interleaved.vec141 = shufflevector <4 x double> %537, <4 x double> %538, <8 x i32> store <8 x double> %interleaved.vec141, ptr %539, align 8, !noalias !4136 %540 = fadd <4 x double> %453, %535 %541 = fadd <4 x double> %454, %536 %542 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index67 %interleaved.vec142 = shufflevector <4 x double> %540, <4 x double> %541, <8 x i32> store <8 x double> %interleaved.vec142, ptr %542, align 8, !noalias !4136 %543 = fmul <4 x double> %480, %544 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %479, <4 x double> , <4 x double> %543) %545 = fmul <4 x double> %479, %546 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %480, <4 x double> , <4 x double> %545) %547 = fsub <4 x double> %455, %544 %548 = fsub <4 x double> %456, %546 %549 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index67 %interleaved.vec143 = shufflevector <4 x double> %547, <4 x double> %548, <8 x i32> store <8 x double> %interleaved.vec143, ptr %549, align 8, !noalias !4136 %550 = fadd <4 x double> %455, %544 %551 = fadd <4 x double> %456, %546 %552 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index67 %interleaved.vec144 = shufflevector <4 x double> %550, <4 x double> %551, <8 x i32> store <8 x double> %interleaved.vec144, ptr %552, align 8, !noalias !4136 %index.next145 = add nuw i64 %index67, 4 %vec.ind.next = add <4 x i64> %vec.ind, %553 = icmp eq i64 %index.next145, 16 br i1 %553, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd7fe55eafbf320ddE.exit", label %vector.body66, !llvm.loop !4140 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd7fe55eafbf320ddE.exit": ; preds = %vector.body66 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4136 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7adb7f4faed52aeeE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h3584c747b2bbef68E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7c917178f3783879E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4141 store i64 512, ptr %n.i.i, align 8, !noalias !4141 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4141 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4141 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4141 store ptr null, ptr %_16.i.i, align 8, !noalias !4141 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4141 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4141 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4141 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4141 store ptr null, ptr %_24.i.i, align 8, !noalias !4141 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4141 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4141 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4141 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4141 store ptr null, ptr %_32.i.i, align 8, !noalias !4141 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4141 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4141 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4141 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he7f6dafe6514ea57E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4141 store ptr null, ptr %_40.i.i, align 8, !noalias !4141 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he7f6dafe6514ea57E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4141 tail call void @llvm.experimental.noalias.scope.decl(metadata !4146) tail call void @llvm.experimental.noalias.scope.decl(metadata !4149) tail call void @llvm.experimental.noalias.scope.decl(metadata !4151) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 144 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 176 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 208 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 240 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 144 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 176 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 208 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 240 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he7f6dafe6514ea57E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he7f6dafe6514ea57E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4146, !noalias !4153 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4151, !noalias !4154 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4149, !noalias !4155 store <4 x double> %247, ptr %248, align 8, !alias.scope !4149, !noalias !4155 store <4 x double> %249, ptr %250, align 8, !alias.scope !4149, !noalias !4155 store <4 x double> %251, ptr %252, align 8, !alias.scope !4149, !noalias !4155 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !4149, !noalias !4155 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !4149, !noalias !4155 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !4149, !noalias !4155 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !4149, !noalias !4155 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !4149, !noalias !4155 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !4149, !noalias !4155 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !4149, !noalias !4155 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !4149, !noalias !4155 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !4149, !noalias !4155 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !4149, !noalias !4155 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !4149, !noalias !4155 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !4149, !noalias !4155 %exitcond.not.i.i = icmp eq i64 %32, 16 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4156) tail call void @llvm.experimental.noalias.scope.decl(metadata !4159) tail call void @llvm.experimental.noalias.scope.decl(metadata !4161) %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %287 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 144 %288 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 176 %289 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %290 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 208 %291 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 240 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i br i1 %_2.i.i.i.i.i, label %bb46.i.i, label %bb9.i.i.i.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %_2.i.i.i.i.i = phi i1 [ false, %bb44.loopexit.i.i ], [ true, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ] %iter.sroa.192.06258.i.i = phi i64 [ 1, %bb44.loopexit.i.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.06258.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.06258.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %292 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %293 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %294 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %295 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %296 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %297 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %298 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %299 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %300 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %301 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.192.06258.i.i, 4 %307 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %307, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %308 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %309 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %309, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %310, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %311 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %312 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %312, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %313, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %314 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %315 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %315, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %316, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %317 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %318 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %318, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %319, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %320 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %321 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %321, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %322, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %323 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %324 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %324, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %325, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %326 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %327 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %327, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %328 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %328, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %329 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %330 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %330, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %331 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %331, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %332 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %333 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %333, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %334 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %334, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %335 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %336 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %336, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %337 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %337, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %338 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %339 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %339, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %340 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %340, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %341 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %342 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %342, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %343 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %343, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %344 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %345 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %345, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %346 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %346, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %347 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %348 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %348, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %349 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %349, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %350 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %351 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %351, align 8, !alias.scope !4161, !noalias !4163, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %352 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %353 = shufflevector <4 x double> %350, <4 x double> poison, <4 x i32> zeroinitializer %354 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %355 = shufflevector <4 x double> %347, <4 x double> poison, <4 x i32> zeroinitializer %356 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %357 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> zeroinitializer %358 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %359 = shufflevector <4 x double> %341, <4 x double> poison, <4 x i32> zeroinitializer %360 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %361 = shufflevector <4 x double> %338, <4 x double> poison, <4 x i32> zeroinitializer %362 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %363 = shufflevector <4 x double> %335, <4 x double> poison, <4 x i32> zeroinitializer %364 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %365 = shufflevector <4 x double> %332, <4 x double> poison, <4 x i32> zeroinitializer %366 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %367 = shufflevector <4 x double> %329, <4 x double> poison, <4 x i32> zeroinitializer %368 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %369 = shufflevector <4 x double> %326, <4 x double> poison, <4 x i32> zeroinitializer %370 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %371 = shufflevector <4 x double> %323, <4 x double> poison, <4 x i32> zeroinitializer %372 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %373 = shufflevector <4 x double> %320, <4 x double> poison, <4 x i32> zeroinitializer %374 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %375 = shufflevector <4 x double> %317, <4 x double> poison, <4 x i32> zeroinitializer %376 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %377 = shufflevector <4 x double> %314, <4 x double> poison, <4 x i32> zeroinitializer %378 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %379 = shufflevector <4 x double> %311, <4 x double> poison, <4 x i32> zeroinitializer %380 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %381 = shufflevector <4 x double> %308, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.06085.i.i = phi i64 [ 0, %bb46.i.i ], [ %382, %bb98.i.i ] %382 = add nuw nsw i64 %iter10.sroa.218.06085.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i47.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i49.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %295, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %294, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %296, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %293, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %298, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %297, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %299, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %292, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %301, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %300, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter10.sroa.218.06085.i.i %x0.sroa.0.0.copyload.i50.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i35.i, align 8, !alias.scope !4156, !noalias !4164 %x1.sroa.0.0.copyload.i51.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4156, !noalias !4164 %x2.sroa.0.0.copyload.i52.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i, align 8, !alias.scope !4156, !noalias !4164 %x3.sroa.0.0.copyload.i53.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i37.i, align 8, !alias.scope !4156, !noalias !4164 %x4.sroa.0.0.copyload.i54.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i, align 8, !alias.scope !4156, !noalias !4164 %x5.sroa.0.0.copyload.i55.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i, align 8, !alias.scope !4156, !noalias !4164 %x6.sroa.0.0.copyload.i56.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i, align 8, !alias.scope !4156, !noalias !4164 %x7.sroa.0.0.copyload.i57.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i, align 8, !alias.scope !4156, !noalias !4164 %x8.sroa.0.0.copyload.i58.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i, align 8, !alias.scope !4156, !noalias !4164 %x9.sroa.0.0.copyload.i59.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i, align 8, !alias.scope !4156, !noalias !4164 %xa.sroa.0.0.copyload.i60.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i, align 8, !alias.scope !4156, !noalias !4164 %xb.sroa.0.0.copyload.i61.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i, align 8, !alias.scope !4156, !noalias !4164 %xc.sroa.0.0.copyload.i62.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i, align 8, !alias.scope !4156, !noalias !4164 %xd.sroa.0.0.copyload.i63.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i47.i, align 8, !alias.scope !4156, !noalias !4164 %xe.sroa.0.0.copyload.i64.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i48.i, align 8, !alias.scope !4156, !noalias !4164 %xf.sroa.0.0.copyload.i65.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i49.i, align 8, !alias.scope !4156, !noalias !4164 %383 = fadd <4 x double> %x0.sroa.0.0.copyload.i50.i, %x8.sroa.0.0.copyload.i58.i %384 = fsub <4 x double> %x0.sroa.0.0.copyload.i50.i, %x8.sroa.0.0.copyload.i58.i %385 = fadd <4 x double> %x4.sroa.0.0.copyload.i54.i, %xc.sroa.0.0.copyload.i62.i %386 = fsub <4 x double> %x4.sroa.0.0.copyload.i54.i, %xc.sroa.0.0.copyload.i62.i %387 = fadd <4 x double> %x2.sroa.0.0.copyload.i52.i, %xa.sroa.0.0.copyload.i60.i %388 = fsub <4 x double> %x2.sroa.0.0.copyload.i52.i, %xa.sroa.0.0.copyload.i60.i %389 = fadd <4 x double> %x6.sroa.0.0.copyload.i56.i, %xe.sroa.0.0.copyload.i64.i %390 = fsub <4 x double> %x6.sroa.0.0.copyload.i56.i, %xe.sroa.0.0.copyload.i64.i %391 = fadd <4 x double> %x1.sroa.0.0.copyload.i51.i, %x9.sroa.0.0.copyload.i59.i %392 = fsub <4 x double> %x1.sroa.0.0.copyload.i51.i, %x9.sroa.0.0.copyload.i59.i %393 = fadd <4 x double> %x5.sroa.0.0.copyload.i55.i, %xd.sroa.0.0.copyload.i63.i %394 = fsub <4 x double> %x5.sroa.0.0.copyload.i55.i, %xd.sroa.0.0.copyload.i63.i %395 = fadd <4 x double> %x3.sroa.0.0.copyload.i53.i, %xb.sroa.0.0.copyload.i61.i %396 = fsub <4 x double> %x3.sroa.0.0.copyload.i53.i, %xb.sroa.0.0.copyload.i61.i %397 = fadd <4 x double> %x7.sroa.0.0.copyload.i57.i, %xf.sroa.0.0.copyload.i65.i %398 = fsub <4 x double> %x7.sroa.0.0.copyload.i57.i, %xf.sroa.0.0.copyload.i65.i %399 = bitcast <4 x double> %386 to <4 x i64> %400 = bitcast <4 x double> %390 to <4 x i64> %401 = bitcast <4 x double> %394 to <4 x i64> %402 = bitcast <4 x double> %398 to <4 x i64> %403 = xor <4 x i64> %399, %404 = bitcast <4 x i64> %403 to <4 x double> %405 = shufflevector <4 x double> %404, <4 x double> poison, <4 x i32> %406 = xor <4 x i64> %400, %407 = bitcast <4 x i64> %406 to <4 x double> %408 = shufflevector <4 x double> %407, <4 x double> poison, <4 x i32> %409 = xor <4 x i64> %401, %410 = bitcast <4 x i64> %409 to <4 x double> %411 = shufflevector <4 x double> %410, <4 x double> poison, <4 x i32> %412 = xor <4 x i64> %402, %413 = bitcast <4 x i64> %412 to <4 x double> %414 = shufflevector <4 x double> %413, <4 x double> poison, <4 x i32> %415 = fadd <4 x double> %383, %385 %416 = fsub <4 x double> %384, %405 %417 = fsub <4 x double> %383, %385 %418 = fadd <4 x double> %384, %405 %419 = fadd <4 x double> %387, %389 %420 = fsub <4 x double> %388, %408 %421 = fsub <4 x double> %387, %389 %422 = fadd <4 x double> %388, %408 %423 = fadd <4 x double> %391, %393 %424 = fsub <4 x double> %392, %411 %425 = fsub <4 x double> %391, %393 %426 = fadd <4 x double> %392, %411 %427 = fadd <4 x double> %395, %397 %428 = fsub <4 x double> %396, %414 %429 = fsub <4 x double> %395, %397 %430 = fadd <4 x double> %396, %414 %431 = bitcast <4 x double> %420 to <4 x i64> %432 = xor <4 x i64> %431, %433 = bitcast <4 x i64> %432 to <4 x double> %434 = shufflevector <4 x double> %433, <4 x double> poison, <4 x i32> %435 = fadd <4 x double> %420, %434 %436 = fmul <4 x double> %435, %437 = bitcast <4 x double> %421 to <4 x i64> %438 = xor <4 x i64> %437, %439 = bitcast <4 x i64> %438 to <4 x double> %440 = shufflevector <4 x double> %439, <4 x double> poison, <4 x i32> %441 = bitcast <4 x double> %422 to <4 x i64> %442 = xor <4 x i64> %441, %443 = bitcast <4 x i64> %442 to <4 x double> %444 = shufflevector <4 x double> %443, <4 x double> poison, <4 x i32> %445 = fadd <4 x double> %422, %444 %446 = fmul <4 x double> %445, %447 = fadd <4 x double> %415, %419 %448 = fadd <4 x double> %416, %436 %449 = fsub <4 x double> %417, %440 %450 = fsub <4 x double> %418, %446 %451 = fsub <4 x double> %415, %419 %452 = fsub <4 x double> %416, %436 %453 = fadd <4 x double> %417, %440 %454 = fadd <4 x double> %418, %446 %455 = bitcast <4 x double> %428 to <4 x i64> %456 = xor <4 x i64> %455, %457 = bitcast <4 x i64> %456 to <4 x double> %458 = shufflevector <4 x double> %457, <4 x double> poison, <4 x i32> %459 = fadd <4 x double> %428, %458 %460 = fmul <4 x double> %459, %461 = bitcast <4 x double> %429 to <4 x i64> %462 = xor <4 x i64> %461, %463 = bitcast <4 x i64> %462 to <4 x double> %464 = shufflevector <4 x double> %463, <4 x double> poison, <4 x i32> %465 = bitcast <4 x double> %430 to <4 x i64> %466 = xor <4 x i64> %465, %467 = bitcast <4 x i64> %466 to <4 x double> %468 = shufflevector <4 x double> %467, <4 x double> poison, <4 x i32> %469 = fadd <4 x double> %430, %468 %470 = fmul <4 x double> %469, %471 = fadd <4 x double> %423, %427 %472 = fadd <4 x double> %424, %460 %473 = fsub <4 x double> %425, %464 %474 = fsub <4 x double> %426, %470 %475 = fsub <4 x double> %423, %427 %476 = fsub <4 x double> %424, %460 %477 = fadd <4 x double> %425, %464 %478 = fadd <4 x double> %426, %470 %479 = fmul <4 x double> %472, %480 = shufflevector <4 x double> %479, <4 x double> poison, <4 x i32> %481 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %472, <4 x double> %480) #23 %482 = bitcast <4 x double> %473 to <4 x i64> %483 = xor <4 x i64> %482, %484 = bitcast <4 x i64> %483 to <4 x double> %485 = shufflevector <4 x double> %484, <4 x double> poison, <4 x i32> %486 = fmul <4 x double> %474, %487 = shufflevector <4 x double> %486, <4 x double> poison, <4 x i32> %488 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %474, <4 x double> %487) #23 %489 = bitcast <4 x double> %475 to <4 x i64> %490 = xor <4 x i64> %489, %491 = bitcast <4 x i64> %490 to <4 x double> %492 = shufflevector <4 x double> %491, <4 x double> poison, <4 x i32> %493 = fmul <4 x double> %476, %494 = shufflevector <4 x double> %493, <4 x double> poison, <4 x i32> %495 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %476, <4 x double> %494) #23 %496 = bitcast <4 x double> %477 to <4 x i64> %497 = xor <4 x i64> %496, %498 = bitcast <4 x i64> %497 to <4 x double> %499 = shufflevector <4 x double> %498, <4 x double> poison, <4 x i32> %500 = fmul <4 x double> %478, %501 = shufflevector <4 x double> %500, <4 x double> poison, <4 x i32> %502 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %478, <4 x double> %501) #23 %.in6082.i.i = fadd <4 x double> %473, %485 %503 = fmul <4 x double> %.in6082.i.i, %.in.i66.i = fadd <4 x double> %477, %499 %504 = fmul <4 x double> %.in.i66.i, %505 = fadd <4 x double> %447, %471 store <4 x double> %505, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %506 = fadd <4 x double> %481, %448 %507 = shufflevector <4 x double> %506, <4 x double> poison, <4 x i32> %508 = fmul <4 x double> %353, %507 %509 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %352, <4 x double> %506, <4 x double> %508) #23 store <4 x double> %509, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %510 = fadd <4 x double> %449, %503 %511 = shufflevector <4 x double> %510, <4 x double> poison, <4 x i32> %512 = fmul <4 x double> %355, %511 %513 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %354, <4 x double> %510, <4 x double> %512) #23 store <4 x double> %513, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %514 = fadd <4 x double> %488, %450 %515 = shufflevector <4 x double> %514, <4 x double> poison, <4 x i32> %516 = fmul <4 x double> %357, %515 %517 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %356, <4 x double> %514, <4 x double> %516) #23 store <4 x double> %517, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %518 = fsub <4 x double> %451, %492 %519 = shufflevector <4 x double> %518, <4 x double> poison, <4 x i32> %520 = fmul <4 x double> %359, %519 %521 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %358, <4 x double> %518, <4 x double> %520) #23 store <4 x double> %521, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %522 = fsub <4 x double> %452, %495 %523 = shufflevector <4 x double> %522, <4 x double> poison, <4 x i32> %524 = fmul <4 x double> %361, %523 %525 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %360, <4 x double> %522, <4 x double> %524) #23 store <4 x double> %525, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %526 = fsub <4 x double> %453, %504 %527 = shufflevector <4 x double> %526, <4 x double> poison, <4 x i32> %528 = fmul <4 x double> %363, %527 %529 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %362, <4 x double> %526, <4 x double> %528) #23 store <4 x double> %529, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %530 = fsub <4 x double> %454, %502 %531 = shufflevector <4 x double> %530, <4 x double> poison, <4 x i32> %532 = fmul <4 x double> %365, %531 %533 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %364, <4 x double> %530, <4 x double> %532) #23 store <4 x double> %533, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %534 = fsub <4 x double> %447, %471 %535 = shufflevector <4 x double> %534, <4 x double> poison, <4 x i32> %536 = fmul <4 x double> %367, %535 %537 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %366, <4 x double> %534, <4 x double> %536) #23 store <4 x double> %537, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %538 = fsub <4 x double> %448, %481 %539 = shufflevector <4 x double> %538, <4 x double> poison, <4 x i32> %540 = fmul <4 x double> %369, %539 %541 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %368, <4 x double> %538, <4 x double> %540) #23 store <4 x double> %541, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %542 = fsub <4 x double> %449, %503 %543 = shufflevector <4 x double> %542, <4 x double> poison, <4 x i32> %544 = fmul <4 x double> %371, %543 %545 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %542, <4 x double> %544) #23 store <4 x double> %545, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %546 = fsub <4 x double> %450, %488 %547 = shufflevector <4 x double> %546, <4 x double> poison, <4 x i32> %548 = fmul <4 x double> %373, %547 %549 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %372, <4 x double> %546, <4 x double> %548) #23 store <4 x double> %549, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %550 = fadd <4 x double> %451, %492 %551 = shufflevector <4 x double> %550, <4 x double> poison, <4 x i32> %552 = fmul <4 x double> %375, %551 %553 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %374, <4 x double> %550, <4 x double> %552) #23 store <4 x double> %553, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %554 = fadd <4 x double> %495, %452 %555 = shufflevector <4 x double> %554, <4 x double> poison, <4 x i32> %556 = fmul <4 x double> %377, %555 %557 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %376, <4 x double> %554, <4 x double> %556) #23 store <4 x double> %557, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %558 = fadd <4 x double> %453, %504 %559 = shufflevector <4 x double> %558, <4 x double> poison, <4 x i32> %560 = fmul <4 x double> %379, %559 %561 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %378, <4 x double> %558, <4 x double> %560) #23 store <4 x double> %561, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %562 = fadd <4 x double> %502, %454 %563 = shufflevector <4 x double> %562, <4 x double> poison, <4 x i32> %564 = fmul <4 x double> %381, %563 %565 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %380, <4 x double> %562, <4 x double> %564) #23 store <4 x double> %565, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !4159, !noalias !4165 %exitcond.not.i67.i = icmp eq i64 %382, 8 br i1 %exitcond.not.i67.i, label %bb44.loopexit.i.i, label %bb98.i.i bb9.i.i.i.i: ; preds = %bb44.loopexit.i.i, %bb9.i.i.i.i %iter.i.i.i.sroa.8.091.i = phi i64 [ %575, %bb9.i.i.i.i ], [ 0, %bb44.loopexit.i.i ] %566 = or disjoint i64 %iter.i.i.i.sroa.8.091.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.091.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.091.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4141 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !4141 %567 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %568 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %567, ptr %_3.i.i.i.i.i, align 8, !noalias !4141 store <4 x double> %568, ptr %_3.i2.i.i.i.i, align 8, !noalias !4141 %569 = or disjoint i64 %iter.i.i.i.sroa.8.091.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %566 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %566 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4141 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4141 %570 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %571 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %570, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4141 store <4 x double> %571, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4141 %572 = or disjoint i64 %iter.i.i.i.sroa.8.091.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %569 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %569 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4141 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4141 %573 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %574 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %573, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4141 store <4 x double> %574, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4141 %575 = add nuw nsw i64 %iter.i.i.i.sroa.8.091.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %572 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %572 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4141 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4141 %576 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %577 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %576, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4141 store <4 x double> %577, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4141 %exitcond.not.i.3 = icmp eq i64 %575, 128 br i1 %exitcond.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17h65c4a4e8ee21de48E.exit, label %bb9.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h65c4a4e8ee21de48E.exit: ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4141 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7c982dc63ea08c00E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4166 store i64 1024, ptr %n.i.i, align 8, !noalias !4166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4166 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4166 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4166 store ptr null, ptr %_16.i.i, align 8, !noalias !4166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4166 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4166 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4166 store ptr null, ptr %_24.i.i, align 8, !noalias !4166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4166 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4166 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4166 store ptr null, ptr %_32.i.i, align 8, !noalias !4166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4166 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4166 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4166 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0794a425e21d536eE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4166 store ptr null, ptr %_40.i.i, align 8, !noalias !4166 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0794a425e21d536eE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4166 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 br label %bb18.i.i.i.i.i.i bb18.i.i.i.i.i.i: ; preds = %bb18.i.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0794a425e21d536eE.exit.i" %iter6.i.i.i.i.i.sroa.22.0413.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0794a425e21d536eE.exit.i" ], [ %7, %bb18.i.i.i.i.i.i ] %4 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.0413.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.i.sroa.22.0413.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.i.sroa.22.0413.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.i.sroa.22.0413.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.i.i.i.i.i.sroa.22.0413.i %_51.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4171 %_52.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4171 %5 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %5, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4171 store <4 x double> %6, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4171 %7 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.0413.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %_51.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !4171 %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4171 %8 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 %9 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4171 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !4171 %exitcond.not.i.1 = icmp eq i64 %7, 256 br i1 %exitcond.not.i.1, label %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i", label %bb18.i.i.i.i.i.i "_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i": ; preds = %bb18.i.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4181) tail call void @llvm.experimental.noalias.scope.decl(metadata !4184) %10 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %10, align 8, !noalias !4166, !noundef !3 %11 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %11, align 8, !noalias !4166, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %12 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %14 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %15 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i.i bb26.us.i.i: ; preds = %bb26.us.i.i, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i" %iter6.sroa.22.0209.us.i.i = phi i64 [ 0, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i" ], [ %22, %bb26.us.i.i ] %16 = or disjoint i64 %iter6.sroa.22.0209.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0209.us.i.i %_3.i2.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.sroa.22.0209.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0209.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter6.sroa.22.0209.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4184, !noalias !4186 %_62.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !4184, !noalias !4186 %17 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %18 = fmul <4 x double> %15, %17 %19 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> %18) #23 %20 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %19 store <4 x double> %20, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4181, !noalias !4188 %21 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %19 store <4 x double> %21, ptr %_3.i2.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4181, !noalias !4188 %22 = add nuw nsw i64 %iter6.sroa.22.0209.us.i.i, 2 %_3.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %16 %_3.i2.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %16 %_3.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %16 %_3.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %16 %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !4184, !noalias !4186 %_62.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i.i.1, align 8, !alias.scope !4184, !noalias !4186 %23 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i.1, <4 x double> poison, <4 x i32> %24 = fmul <4 x double> %15, %23 %25 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i.i.1, <4 x double> %24) #23 %26 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %25 store <4 x double> %26, ptr %_3.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !4181, !noalias !4188 %27 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %25 store <4 x double> %27, ptr %_3.i2.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !4181, !noalias !4188 %exitcond.not.i.i.1 = icmp eq i64 %22, 128 br i1 %exitcond.not.i.i.1, label %bb24.bb15.loopexit_crit_edge.us.i.i, label %bb26.us.i.i bb24.bb15.loopexit_crit_edge.us.i.i: ; preds = %bb26.us.i.i %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %data.i5.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1 %w1.0.us.i.1.i = load double, ptr %28, align 8, !noalias !4166, !noundef !3 %29 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %29, align 8, !noalias !4166, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %30 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %32 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %33 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i.1.i bb26.us.i.1.i: ; preds = %bb26.us.i.1.i, %bb24.bb15.loopexit_crit_edge.us.i.i %iter6.sroa.22.0209.us.i.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i.i ], [ %40, %bb26.us.i.1.i ] %34 = or disjoint i64 %iter6.sroa.22.0209.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i2.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter6.sroa.22.0209.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4184, !noalias !4186 %_62.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !4184, !noalias !4186 %35 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %33, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> %36) #23 %38 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %37 store <4 x double> %38, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4181, !noalias !4188 %39 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %37 store <4 x double> %39, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4181, !noalias !4188 %40 = add nuw nsw i64 %iter6.sroa.22.0209.us.i.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %34 %_3.i2.i.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %34 %_3.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %34 %_3.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %34 %a.sroa.0.0.copyload.us.i.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !4184, !noalias !4186 %_62.sroa.0.0.copyload.us.i.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !4184, !noalias !4186 %41 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i.1, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %33, %41 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i.1, <4 x double> %42) #23 %44 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i.1, %43 store <4 x double> %44, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !4181, !noalias !4188 %45 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i.1, %43 store <4 x double> %45, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !4181, !noalias !4188 %exitcond.not.i.1.i.1 = icmp eq i64 %40, 128 br i1 %exitcond.not.i.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i.1.i, label %bb26.us.i.1.i bb24.bb15.loopexit_crit_edge.us.i.1.i: ; preds = %bb26.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4189) tail call void @llvm.experimental.noalias.scope.decl(metadata !4192) %46 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 br label %bb26.us.i56.i bb26.us.i56.i: ; preds = %bb26.us.i56.i, %bb24.bb15.loopexit_crit_edge.us.i.1.i %iter6.sroa.22.0209.us.i57.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i.1.i ], [ %53, %bb26.us.i56.i ] %47 = or disjoint i64 %iter6.sroa.22.0209.us.i57.i, 1 %_3.i.i.i.i.i.i.i.i.us.i58.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0209.us.i57.i %_3.i2.i.i.i.i.i.i.i.us.i59.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0209.us.i57.i %_3.i.i.i.i.i.i.us.i60.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0209.us.i57.i %_3.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %46, i64 %iter6.sroa.22.0209.us.i57.i %a.sroa.0.0.copyload.us.i62.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.i, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.i = load <4 x double>, ptr %_3.i.i.i.i.us.i61.i, align 8, !alias.scope !4192, !noalias !4194 %48 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.i, <4 x double> poison, <4 x i32> %49 = fmul <4 x double> %15, %48 %50 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i63.i, <4 x double> %49) #23 %51 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.i, %50 store <4 x double> %51, ptr %_3.i.i.i.i.i.i.i.i.us.i58.i, align 8, !alias.scope !4189, !noalias !4196 %52 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.i, %50 store <4 x double> %52, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.i, align 8, !alias.scope !4189, !noalias !4196 %53 = add nuw nsw i64 %iter6.sroa.22.0209.us.i57.i, 2 %_3.i.i.i.i.i.i.i.i.us.i58.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %47 %_3.i2.i.i.i.i.i.i.i.us.i59.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %47 %_3.i.i.i.i.i.i.us.i60.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %47 %_3.i.i.i.i.us.i61.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %46, i64 %47 %a.sroa.0.0.copyload.us.i62.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.i.1, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i61.i.1, align 8, !alias.scope !4192, !noalias !4194 %54 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.i.1, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %15, %54 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i63.i.1, <4 x double> %55) #23 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.i.1, %56 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.us.i58.i.1, align 8, !alias.scope !4189, !noalias !4196 %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.i.1, %56 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.i.1, align 8, !alias.scope !4189, !noalias !4196 %exitcond.not.i64.i.1 = icmp eq i64 %53, 64 br i1 %exitcond.not.i64.i.1, label %bb24.bb15.loopexit_crit_edge.us.i65.i, label %bb26.us.i56.i bb24.bb15.loopexit_crit_edge.us.i65.i: ; preds = %bb26.us.i56.i %data.i.i.i.i.i.i.i.i.us.i49.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i.us.i52.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %59 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i53.1.i = load double, ptr %59, align 8, !noalias !4166, !noundef !3 %60 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i54.1.i = load double, ptr %60, align 8, !noalias !4166, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i55.1.i = insertelement <2 x double> poison, double %w1.0.us.i53.1.i, i64 0 %61 = insertelement <4 x double> poison, double %w1.1.us.i54.1.i, i64 0 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %63 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i55.1.i, <2 x double> poison, <4 x i32> zeroinitializer %64 = shufflevector <4 x double> %61, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i56.1.i bb26.us.i56.1.i: ; preds = %bb26.us.i56.1.i, %bb24.bb15.loopexit_crit_edge.us.i65.i %iter6.sroa.22.0209.us.i57.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i65.i ], [ %71, %bb26.us.i56.1.i ] %65 = or disjoint i64 %iter6.sroa.22.0209.us.i57.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i58.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.1.i, i64 %iter6.sroa.22.0209.us.i57.1.i %_3.i2.i.i.i.i.i.i.i.us.i59.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.1.i, i64 %iter6.sroa.22.0209.us.i57.1.i %_3.i.i.i.i.i.i.us.i60.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i57.1.i %_3.i.i.i.i.us.i61.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %iter6.sroa.22.0209.us.i57.1.i %a.sroa.0.0.copyload.us.i62.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.1.i, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i61.1.i, align 8, !alias.scope !4192, !noalias !4194 %66 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.1.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %64, %66 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %63, <4 x double> %_62.sroa.0.0.copyload.us.i63.1.i, <4 x double> %67) #23 %69 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.1.i, %68 store <4 x double> %69, ptr %_3.i.i.i.i.i.i.i.i.us.i58.1.i, align 8, !alias.scope !4189, !noalias !4196 %70 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.1.i, %68 store <4 x double> %70, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.1.i, align 8, !alias.scope !4189, !noalias !4196 %71 = add nuw nsw i64 %iter6.sroa.22.0209.us.i57.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i58.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.1.i, i64 %65 %_3.i2.i.i.i.i.i.i.i.us.i59.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.1.i, i64 %65 %_3.i.i.i.i.i.i.us.i60.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %65 %_3.i.i.i.i.us.i61.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %65 %a.sroa.0.0.copyload.us.i62.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.1.i.1, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i61.1.i.1, align 8, !alias.scope !4192, !noalias !4194 %72 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.1.i.1, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %64, %72 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %63, <4 x double> %_62.sroa.0.0.copyload.us.i63.1.i.1, <4 x double> %73) #23 %75 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.1.i.1, %74 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.i.i.us.i58.1.i.1, align 8, !alias.scope !4189, !noalias !4196 %76 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.1.i.1, %74 store <4 x double> %76, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.1.i.1, align 8, !alias.scope !4189, !noalias !4196 %exitcond.not.i64.1.i.1 = icmp eq i64 %71, 64 br i1 %exitcond.not.i64.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i65.1.i, label %bb26.us.i56.1.i bb24.bb15.loopexit_crit_edge.us.i65.1.i: ; preds = %bb26.us.i56.1.i %77 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 br label %bb26.us.i56.2.i bb26.us.i56.2.i: ; preds = %bb26.us.i56.2.i, %bb24.bb15.loopexit_crit_edge.us.i65.1.i %iter6.sroa.22.0209.us.i57.2.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i65.1.i ], [ %84, %bb26.us.i56.2.i ] %78 = or disjoint i64 %iter6.sroa.22.0209.us.i57.2.i, 1 %_3.i.i.i.i.i.i.i.i.us.i58.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter6.sroa.22.0209.us.i57.2.i %_3.i2.i.i.i.i.i.i.i.us.i59.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter6.sroa.22.0209.us.i57.2.i %_3.i.i.i.i.i.i.us.i60.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.sroa.22.0209.us.i57.2.i %_3.i.i.i.i.us.i61.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %77, i64 %iter6.sroa.22.0209.us.i57.2.i %a.sroa.0.0.copyload.us.i62.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.2.i, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i61.2.i, align 8, !alias.scope !4192, !noalias !4194 %79 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.2.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %33, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i63.2.i, <4 x double> %80) #23 %82 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.2.i, %81 store <4 x double> %82, ptr %_3.i.i.i.i.i.i.i.i.us.i58.2.i, align 8, !alias.scope !4189, !noalias !4196 %83 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.2.i, %81 store <4 x double> %83, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.2.i, align 8, !alias.scope !4189, !noalias !4196 %84 = add nuw nsw i64 %iter6.sroa.22.0209.us.i57.2.i, 2 %_3.i.i.i.i.i.i.i.i.us.i58.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %78 %_3.i2.i.i.i.i.i.i.i.us.i59.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %78 %_3.i.i.i.i.i.i.us.i60.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %78 %_3.i.i.i.i.us.i61.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %77, i64 %78 %a.sroa.0.0.copyload.us.i62.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.2.i.1, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i61.2.i.1, align 8, !alias.scope !4192, !noalias !4194 %85 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.2.i.1, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %33, %85 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i63.2.i.1, <4 x double> %86) #23 %88 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.2.i.1, %87 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.i.us.i58.2.i.1, align 8, !alias.scope !4189, !noalias !4196 %89 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.2.i.1, %87 store <4 x double> %89, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.2.i.1, align 8, !alias.scope !4189, !noalias !4196 %exitcond.not.i64.2.i.1 = icmp eq i64 %84, 64 br i1 %exitcond.not.i64.2.i.1, label %bb24.bb15.loopexit_crit_edge.us.i65.2.i, label %bb26.us.i56.2.i bb24.bb15.loopexit_crit_edge.us.i65.2.i: ; preds = %bb26.us.i56.2.i %data.i.i.i.i.i.i.i.i.us.i49.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %data.i5.i.i.i.i.i.i.i.us.i52.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %90 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1 %w1.0.us.i53.3.i = load double, ptr %90, align 8, !noalias !4166, !noundef !3 %91 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1, i32 1 %w1.1.us.i54.3.i = load double, ptr %91, align 8, !noalias !4166, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i55.3.i = insertelement <2 x double> poison, double %w1.0.us.i53.3.i, i64 0 %92 = insertelement <4 x double> poison, double %w1.1.us.i54.3.i, i64 0 %93 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %94 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i55.3.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i56.3.i bb26.us.i56.3.i: ; preds = %bb26.us.i56.3.i, %bb24.bb15.loopexit_crit_edge.us.i65.2.i %iter6.sroa.22.0209.us.i57.3.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i65.2.i ], [ %102, %bb26.us.i56.3.i ] %96 = or disjoint i64 %iter6.sroa.22.0209.us.i57.3.i, 1 %_3.i.i.i.i.i.i.i.i.us.i58.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.3.i, i64 %iter6.sroa.22.0209.us.i57.3.i %_3.i2.i.i.i.i.i.i.i.us.i59.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.3.i, i64 %iter6.sroa.22.0209.us.i57.3.i %_3.i.i.i.i.i.i.us.i60.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i57.3.i %_3.i.i.i.i.us.i61.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %93, i64 %iter6.sroa.22.0209.us.i57.3.i %a.sroa.0.0.copyload.us.i62.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.3.i, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i61.3.i, align 8, !alias.scope !4192, !noalias !4194 %97 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.3.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %95, %97 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_62.sroa.0.0.copyload.us.i63.3.i, <4 x double> %98) #23 %100 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.3.i, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.us.i58.3.i, align 8, !alias.scope !4189, !noalias !4196 %101 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.3.i, %99 store <4 x double> %101, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.3.i, align 8, !alias.scope !4189, !noalias !4196 %102 = add nuw nsw i64 %iter6.sroa.22.0209.us.i57.3.i, 2 %_3.i.i.i.i.i.i.i.i.us.i58.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.3.i, i64 %96 %_3.i2.i.i.i.i.i.i.i.us.i59.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.3.i, i64 %96 %_3.i.i.i.i.i.i.us.i60.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %96 %_3.i.i.i.i.us.i61.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %93, i64 %96 %a.sroa.0.0.copyload.us.i62.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i60.3.i.1, align 8, !alias.scope !4192, !noalias !4194 %_62.sroa.0.0.copyload.us.i63.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i61.3.i.1, align 8, !alias.scope !4192, !noalias !4194 %103 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i63.3.i.1, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %95, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_62.sroa.0.0.copyload.us.i63.3.i.1, <4 x double> %104) #23 %106 = fadd <4 x double> %a.sroa.0.0.copyload.us.i62.3.i.1, %105 store <4 x double> %106, ptr %_3.i.i.i.i.i.i.i.i.us.i58.3.i.1, align 8, !alias.scope !4189, !noalias !4196 %107 = fsub <4 x double> %a.sroa.0.0.copyload.us.i62.3.i.1, %105 store <4 x double> %107, ptr %_3.i2.i.i.i.i.i.i.i.us.i59.3.i.1, align 8, !alias.scope !4189, !noalias !4196 %exitcond.not.i64.3.i.1 = icmp eq i64 %102, 64 br i1 %exitcond.not.i64.3.i.1, label %bb24.bb15.loopexit_crit_edge.us.i65.3.i, label %bb26.us.i56.3.i bb24.bb15.loopexit_crit_edge.us.i65.3.i: ; preds = %bb26.us.i56.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4197) tail call void @llvm.experimental.noalias.scope.decl(metadata !4200) tail call void @llvm.experimental.noalias.scope.decl(metadata !4202) %108 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 br label %bb26.us.i91.i bb26.us.i91.i: ; preds = %bb26.us.i91.i, %bb24.bb15.loopexit_crit_edge.us.i65.3.i %iter6.sroa.22.0209.us.i92.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i65.3.i ], [ %115, %bb26.us.i91.i ] %109 = or disjoint i64 %iter6.sroa.22.0209.us.i92.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0209.us.i92.i %_3.i2.i.i.i.i.i.i.i.us.i94.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.sroa.22.0209.us.i92.i %_3.i.i.i.i.i.i.us.i95.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0209.us.i92.i %_3.i.i.i.i.us.i96.i = getelementptr inbounds %"fft_simd::c64x2", ptr %108, i64 %iter6.sroa.22.0209.us.i92.i %a.sroa.0.0.copyload.us.i97.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.i, align 8, !alias.scope !4200, !noalias !4204 %110 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.i, <4 x double> poison, <4 x i32> %111 = fmul <4 x double> %15, %110 %112 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i98.i, <4 x double> %111) #23 %113 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.i, %112 store <4 x double> %113, ptr %_3.i.i.i.i.i.i.i.i.us.i93.i, align 8, !alias.scope !4197, !noalias !4205 %114 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.i, %112 store <4 x double> %114, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.i, align 8, !alias.scope !4197, !noalias !4205 %115 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %109 %_3.i2.i.i.i.i.i.i.i.us.i94.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %109 %_3.i.i.i.i.i.i.us.i95.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %109 %_3.i.i.i.i.us.i96.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %108, i64 %109 %a.sroa.0.0.copyload.us.i97.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.i.1, align 8, !alias.scope !4200, !noalias !4204 %116 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.i.1, <4 x double> poison, <4 x i32> %117 = fmul <4 x double> %15, %116 %118 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i98.i.1, <4 x double> %117) #23 %119 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.i.1, %118 store <4 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.us.i93.i.1, align 8, !alias.scope !4197, !noalias !4205 %120 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.i.1, %118 store <4 x double> %120, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.i.1 = icmp eq i64 %115, 32 br i1 %exitcond.not.i99.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.i, label %bb26.us.i91.i bb24.bb15.loopexit_crit_edge.us.i100.i: ; preds = %bb26.us.i91.i %data.i.i.i.i.i.i.i.i.us.i84.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i.us.i87.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %121 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i88.1.i = load double, ptr %121, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %122 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i89.1.i = load double, ptr %122, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i90.1.i = insertelement <2 x double> poison, double %w1.0.us.i88.1.i, i64 0 %123 = insertelement <4 x double> poison, double %w1.1.us.i89.1.i, i64 0 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %125 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i90.1.i, <2 x double> poison, <4 x i32> zeroinitializer %126 = shufflevector <4 x double> %123, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i91.1.i bb26.us.i91.1.i: ; preds = %bb26.us.i91.1.i, %bb24.bb15.loopexit_crit_edge.us.i100.i %iter6.sroa.22.0209.us.i92.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.i ], [ %133, %bb26.us.i91.1.i ] %127 = or disjoint i64 %iter6.sroa.22.0209.us.i92.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.1.i, i64 %iter6.sroa.22.0209.us.i92.1.i %_3.i2.i.i.i.i.i.i.i.us.i94.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.1.i, i64 %iter6.sroa.22.0209.us.i92.1.i %_3.i.i.i.i.i.i.us.i95.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.1.i, i64 %iter6.sroa.22.0209.us.i92.1.i %_3.i.i.i.i.us.i96.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter6.sroa.22.0209.us.i92.1.i %a.sroa.0.0.copyload.us.i97.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.1.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.1.i, align 8, !alias.scope !4200, !noalias !4204 %128 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.1.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %126, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %125, <4 x double> %_62.sroa.0.0.copyload.us.i98.1.i, <4 x double> %129) #23 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.1.i, %130 store <4 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.us.i93.1.i, align 8, !alias.scope !4197, !noalias !4205 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.1.i, %130 store <4 x double> %132, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.1.i, align 8, !alias.scope !4197, !noalias !4205 %133 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.1.i, i64 %127 %_3.i2.i.i.i.i.i.i.i.us.i94.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.1.i, i64 %127 %_3.i.i.i.i.i.i.us.i95.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.1.i, i64 %127 %_3.i.i.i.i.us.i96.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %127 %a.sroa.0.0.copyload.us.i97.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.1.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.1.i.1, align 8, !alias.scope !4200, !noalias !4204 %134 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.1.i.1, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %126, %134 %136 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %125, <4 x double> %_62.sroa.0.0.copyload.us.i98.1.i.1, <4 x double> %135) #23 %137 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.1.i.1, %136 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.us.i93.1.i.1, align 8, !alias.scope !4197, !noalias !4205 %138 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.1.i.1, %136 store <4 x double> %138, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.1.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.1.i.1 = icmp eq i64 %133, 32 br i1 %exitcond.not.i99.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.1.i, label %bb26.us.i91.1.i bb24.bb15.loopexit_crit_edge.us.i100.1.i: ; preds = %bb26.us.i91.1.i %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 br label %bb26.us.i91.2.i bb26.us.i91.2.i: ; preds = %bb26.us.i91.2.i, %bb24.bb15.loopexit_crit_edge.us.i100.1.i %iter6.sroa.22.0209.us.i92.2.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.1.i ], [ %146, %bb26.us.i91.2.i ] %140 = or disjoint i64 %iter6.sroa.22.0209.us.i92.2.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %46, i64 %iter6.sroa.22.0209.us.i92.2.i %_3.i2.i.i.i.i.i.i.i.us.i94.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %77, i64 %iter6.sroa.22.0209.us.i92.2.i %_3.i.i.i.i.i.i.us.i95.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter6.sroa.22.0209.us.i92.2.i %_3.i.i.i.i.us.i96.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter6.sroa.22.0209.us.i92.2.i %a.sroa.0.0.copyload.us.i97.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.2.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.2.i, align 8, !alias.scope !4200, !noalias !4204 %141 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.2.i, <4 x double> poison, <4 x i32> %142 = fmul <4 x double> %64, %141 %143 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %63, <4 x double> %_62.sroa.0.0.copyload.us.i98.2.i, <4 x double> %142) #23 %144 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.2.i, %143 store <4 x double> %144, ptr %_3.i.i.i.i.i.i.i.i.us.i93.2.i, align 8, !alias.scope !4197, !noalias !4205 %145 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.2.i, %143 store <4 x double> %145, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.2.i, align 8, !alias.scope !4197, !noalias !4205 %146 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.2.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %46, i64 %140 %_3.i2.i.i.i.i.i.i.i.us.i94.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %77, i64 %140 %_3.i.i.i.i.i.i.us.i95.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %140 %_3.i.i.i.i.us.i96.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %140 %a.sroa.0.0.copyload.us.i97.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.2.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.2.i.1, align 8, !alias.scope !4200, !noalias !4204 %147 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.2.i.1, <4 x double> poison, <4 x i32> %148 = fmul <4 x double> %64, %147 %149 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %63, <4 x double> %_62.sroa.0.0.copyload.us.i98.2.i.1, <4 x double> %148) #23 %150 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.2.i.1, %149 store <4 x double> %150, ptr %_3.i.i.i.i.i.i.i.i.us.i93.2.i.1, align 8, !alias.scope !4197, !noalias !4205 %151 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.2.i.1, %149 store <4 x double> %151, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.2.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.2.i.1 = icmp eq i64 %146, 32 br i1 %exitcond.not.i99.2.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.2.i, label %bb26.us.i91.2.i bb24.bb15.loopexit_crit_edge.us.i100.2.i: ; preds = %bb26.us.i91.2.i %data.i.i.i.i.i.i.i.i.us.i84.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i.us.i87.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %152 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i88.3.i = load double, ptr %152, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i89.3.i = load double, ptr %153, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i90.3.i = insertelement <2 x double> poison, double %w1.0.us.i88.3.i, i64 0 %154 = insertelement <4 x double> poison, double %w1.1.us.i89.3.i, i64 0 %155 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %156 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i90.3.i, <2 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i91.3.i bb26.us.i91.3.i: ; preds = %bb26.us.i91.3.i, %bb24.bb15.loopexit_crit_edge.us.i100.2.i %iter6.sroa.22.0209.us.i92.3.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.2.i ], [ %164, %bb26.us.i91.3.i ] %158 = or disjoint i64 %iter6.sroa.22.0209.us.i92.3.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.3.i, i64 %iter6.sroa.22.0209.us.i92.3.i %_3.i2.i.i.i.i.i.i.i.us.i94.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.3.i, i64 %iter6.sroa.22.0209.us.i92.3.i %_3.i.i.i.i.i.i.us.i95.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.3.i, i64 %iter6.sroa.22.0209.us.i92.3.i %_3.i.i.i.i.us.i96.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %155, i64 %iter6.sroa.22.0209.us.i92.3.i %a.sroa.0.0.copyload.us.i97.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.3.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.3.i, align 8, !alias.scope !4200, !noalias !4204 %159 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.3.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %157, %159 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %156, <4 x double> %_62.sroa.0.0.copyload.us.i98.3.i, <4 x double> %160) #23 %162 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.3.i, %161 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.us.i93.3.i, align 8, !alias.scope !4197, !noalias !4205 %163 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.3.i, %161 store <4 x double> %163, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.3.i, align 8, !alias.scope !4197, !noalias !4205 %164 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.3.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.3.i, i64 %158 %_3.i2.i.i.i.i.i.i.i.us.i94.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.3.i, i64 %158 %_3.i.i.i.i.i.i.us.i95.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i49.3.i, i64 %158 %_3.i.i.i.i.us.i96.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %155, i64 %158 %a.sroa.0.0.copyload.us.i97.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.3.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.3.i.1, align 8, !alias.scope !4200, !noalias !4204 %165 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.3.i.1, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %157, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %156, <4 x double> %_62.sroa.0.0.copyload.us.i98.3.i.1, <4 x double> %166) #23 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.3.i.1, %167 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.us.i93.3.i.1, align 8, !alias.scope !4197, !noalias !4205 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.3.i.1, %167 store <4 x double> %169, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.3.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.3.i.1 = icmp eq i64 %164, 32 br i1 %exitcond.not.i99.3.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.3.i, label %bb26.us.i91.3.i bb24.bb15.loopexit_crit_edge.us.i100.3.i: ; preds = %bb26.us.i91.3.i %170 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 br label %bb26.us.i91.4.i bb26.us.i91.4.i: ; preds = %bb26.us.i91.4.i, %bb24.bb15.loopexit_crit_edge.us.i100.3.i %iter6.sroa.22.0209.us.i92.4.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.3.i ], [ %177, %bb26.us.i91.4.i ] %171 = or disjoint i64 %iter6.sroa.22.0209.us.i92.4.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i92.4.i %_3.i2.i.i.i.i.i.i.i.us.i94.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i92.4.i %_3.i.i.i.i.i.i.us.i95.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0209.us.i92.4.i %_3.i.i.i.i.us.i96.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %170, i64 %iter6.sroa.22.0209.us.i92.4.i %a.sroa.0.0.copyload.us.i97.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.4.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.4.i, align 8, !alias.scope !4200, !noalias !4204 %172 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.4.i, <4 x double> poison, <4 x i32> %173 = fmul <4 x double> %33, %172 %174 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i98.4.i, <4 x double> %173) #23 %175 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.4.i, %174 store <4 x double> %175, ptr %_3.i.i.i.i.i.i.i.i.us.i93.4.i, align 8, !alias.scope !4197, !noalias !4205 %176 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.4.i, %174 store <4 x double> %176, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.4.i, align 8, !alias.scope !4197, !noalias !4205 %177 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.4.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %171 %_3.i2.i.i.i.i.i.i.i.us.i94.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %171 %_3.i.i.i.i.i.i.us.i95.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %171 %_3.i.i.i.i.us.i96.4.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %170, i64 %171 %a.sroa.0.0.copyload.us.i97.4.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.4.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.4.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.4.i.1, align 8, !alias.scope !4200, !noalias !4204 %178 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.4.i.1, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %33, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i98.4.i.1, <4 x double> %179) #23 %181 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.4.i.1, %180 store <4 x double> %181, ptr %_3.i.i.i.i.i.i.i.i.us.i93.4.i.1, align 8, !alias.scope !4197, !noalias !4205 %182 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.4.i.1, %180 store <4 x double> %182, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.4.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.4.i.1 = icmp eq i64 %177, 32 br i1 %exitcond.not.i99.4.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.4.i, label %bb26.us.i91.4.i bb24.bb15.loopexit_crit_edge.us.i100.4.i: ; preds = %bb26.us.i91.4.i %data.i.i.i.i.i.i.i.i.us.i84.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %data.i5.i.i.i.i.i.i.i.us.i87.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %183 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1 %w1.0.us.i88.5.i = load double, ptr %183, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %184 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1, i32 1 %w1.1.us.i89.5.i = load double, ptr %184, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i90.5.i = insertelement <2 x double> poison, double %w1.0.us.i88.5.i, i64 0 %185 = insertelement <4 x double> poison, double %w1.1.us.i89.5.i, i64 0 %186 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %187 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i90.5.i, <2 x double> poison, <4 x i32> zeroinitializer %188 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i91.5.i bb26.us.i91.5.i: ; preds = %bb26.us.i91.5.i, %bb24.bb15.loopexit_crit_edge.us.i100.4.i %iter6.sroa.22.0209.us.i92.5.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.4.i ], [ %195, %bb26.us.i91.5.i ] %189 = or disjoint i64 %iter6.sroa.22.0209.us.i92.5.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.5.i, i64 %iter6.sroa.22.0209.us.i92.5.i %_3.i2.i.i.i.i.i.i.i.us.i94.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.5.i, i64 %iter6.sroa.22.0209.us.i92.5.i %_3.i.i.i.i.i.i.us.i95.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.1.i, i64 %iter6.sroa.22.0209.us.i92.5.i %_3.i.i.i.i.us.i96.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %186, i64 %iter6.sroa.22.0209.us.i92.5.i %a.sroa.0.0.copyload.us.i97.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.5.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.5.i, align 8, !alias.scope !4200, !noalias !4204 %190 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.5.i, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %188, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %_62.sroa.0.0.copyload.us.i98.5.i, <4 x double> %191) #23 %193 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.5.i, %192 store <4 x double> %193, ptr %_3.i.i.i.i.i.i.i.i.us.i93.5.i, align 8, !alias.scope !4197, !noalias !4205 %194 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.5.i, %192 store <4 x double> %194, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.5.i, align 8, !alias.scope !4197, !noalias !4205 %195 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.5.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.5.i, i64 %189 %_3.i2.i.i.i.i.i.i.i.us.i94.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.5.i, i64 %189 %_3.i.i.i.i.i.i.us.i95.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.1.i, i64 %189 %_3.i.i.i.i.us.i96.5.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %186, i64 %189 %a.sroa.0.0.copyload.us.i97.5.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.5.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.5.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.5.i.1, align 8, !alias.scope !4200, !noalias !4204 %196 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.5.i.1, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %188, %196 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %_62.sroa.0.0.copyload.us.i98.5.i.1, <4 x double> %197) #23 %199 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.5.i.1, %198 store <4 x double> %199, ptr %_3.i.i.i.i.i.i.i.i.us.i93.5.i.1, align 8, !alias.scope !4197, !noalias !4205 %200 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.5.i.1, %198 store <4 x double> %200, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.5.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.5.i.1 = icmp eq i64 %195, 32 br i1 %exitcond.not.i99.5.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.5.i, label %bb26.us.i91.5.i bb24.bb15.loopexit_crit_edge.us.i100.5.i: ; preds = %bb26.us.i91.5.i %201 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 br label %bb26.us.i91.6.i bb26.us.i91.6.i: ; preds = %bb26.us.i91.6.i, %bb24.bb15.loopexit_crit_edge.us.i100.5.i %iter6.sroa.22.0209.us.i92.6.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.5.i ], [ %208, %bb26.us.i91.6.i ] %202 = or disjoint i64 %iter6.sroa.22.0209.us.i92.6.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %iter6.sroa.22.0209.us.i92.6.i %_3.i2.i.i.i.i.i.i.i.us.i94.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %93, i64 %iter6.sroa.22.0209.us.i92.6.i %_3.i.i.i.i.i.i.us.i95.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter6.sroa.22.0209.us.i92.6.i %_3.i.i.i.i.us.i96.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %201, i64 %iter6.sroa.22.0209.us.i92.6.i %a.sroa.0.0.copyload.us.i97.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.6.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.6.i, align 8, !alias.scope !4200, !noalias !4204 %203 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.6.i, <4 x double> poison, <4 x i32> %204 = fmul <4 x double> %95, %203 %205 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_62.sroa.0.0.copyload.us.i98.6.i, <4 x double> %204) #23 %206 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.6.i, %205 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.us.i93.6.i, align 8, !alias.scope !4197, !noalias !4205 %207 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.6.i, %205 store <4 x double> %207, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.6.i, align 8, !alias.scope !4197, !noalias !4205 %208 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.6.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %202 %_3.i2.i.i.i.i.i.i.i.us.i94.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %93, i64 %202 %_3.i.i.i.i.i.i.us.i95.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %202 %_3.i.i.i.i.us.i96.6.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %201, i64 %202 %a.sroa.0.0.copyload.us.i97.6.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.6.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.6.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.6.i.1, align 8, !alias.scope !4200, !noalias !4204 %209 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.6.i.1, <4 x double> poison, <4 x i32> %210 = fmul <4 x double> %95, %209 %211 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_62.sroa.0.0.copyload.us.i98.6.i.1, <4 x double> %210) #23 %212 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.6.i.1, %211 store <4 x double> %212, ptr %_3.i.i.i.i.i.i.i.i.us.i93.6.i.1, align 8, !alias.scope !4197, !noalias !4205 %213 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.6.i.1, %211 store <4 x double> %213, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.6.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.6.i.1 = icmp eq i64 %208, 32 br i1 %exitcond.not.i99.6.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.6.i, label %bb26.us.i91.6.i bb24.bb15.loopexit_crit_edge.us.i100.6.i: ; preds = %bb26.us.i91.6.i %data.i.i.i.i.i.i.i.i.us.i84.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %data.i5.i.i.i.i.i.i.i.us.i87.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %214 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1 %w1.0.us.i88.7.i = load double, ptr %214, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %215 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1, i32 1 %w1.1.us.i89.7.i = load double, ptr %215, align 8, !alias.scope !4202, !noalias !4206, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i90.7.i = insertelement <2 x double> poison, double %w1.0.us.i88.7.i, i64 0 %216 = insertelement <4 x double> poison, double %w1.1.us.i89.7.i, i64 0 %217 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 %218 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i90.7.i, <2 x double> poison, <4 x i32> zeroinitializer %219 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i91.7.i bb26.us.i91.7.i: ; preds = %bb26.us.i91.7.i, %bb24.bb15.loopexit_crit_edge.us.i100.6.i %iter6.sroa.22.0209.us.i92.7.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.6.i ], [ %226, %bb26.us.i91.7.i ] %220 = or disjoint i64 %iter6.sroa.22.0209.us.i92.7.i, 1 %_3.i.i.i.i.i.i.i.i.us.i93.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.7.i, i64 %iter6.sroa.22.0209.us.i92.7.i %_3.i2.i.i.i.i.i.i.i.us.i94.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.7.i, i64 %iter6.sroa.22.0209.us.i92.7.i %_3.i.i.i.i.i.i.us.i95.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.3.i, i64 %iter6.sroa.22.0209.us.i92.7.i %_3.i.i.i.i.us.i96.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %217, i64 %iter6.sroa.22.0209.us.i92.7.i %a.sroa.0.0.copyload.us.i97.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.7.i, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i96.7.i, align 8, !alias.scope !4200, !noalias !4204 %221 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.7.i, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %219, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %_62.sroa.0.0.copyload.us.i98.7.i, <4 x double> %222) #23 %224 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.7.i, %223 store <4 x double> %224, ptr %_3.i.i.i.i.i.i.i.i.us.i93.7.i, align 8, !alias.scope !4197, !noalias !4205 %225 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.7.i, %223 store <4 x double> %225, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.7.i, align 8, !alias.scope !4197, !noalias !4205 %226 = add nuw nsw i64 %iter6.sroa.22.0209.us.i92.7.i, 2 %_3.i.i.i.i.i.i.i.i.us.i93.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i84.7.i, i64 %220 %_3.i2.i.i.i.i.i.i.i.us.i94.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i87.7.i, i64 %220 %_3.i.i.i.i.i.i.us.i95.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i52.3.i, i64 %220 %_3.i.i.i.i.us.i96.7.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %217, i64 %220 %a.sroa.0.0.copyload.us.i97.7.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i95.7.i.1, align 8, !alias.scope !4200, !noalias !4204 %_62.sroa.0.0.copyload.us.i98.7.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i96.7.i.1, align 8, !alias.scope !4200, !noalias !4204 %227 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i98.7.i.1, <4 x double> poison, <4 x i32> %228 = fmul <4 x double> %219, %227 %229 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %_62.sroa.0.0.copyload.us.i98.7.i.1, <4 x double> %228) #23 %230 = fadd <4 x double> %a.sroa.0.0.copyload.us.i97.7.i.1, %229 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i.i.us.i93.7.i.1, align 8, !alias.scope !4197, !noalias !4205 %231 = fsub <4 x double> %a.sroa.0.0.copyload.us.i97.7.i.1, %229 store <4 x double> %231, ptr %_3.i2.i.i.i.i.i.i.i.us.i94.7.i.1, align 8, !alias.scope !4197, !noalias !4205 %exitcond.not.i99.7.i.1 = icmp eq i64 %226, 32 br i1 %exitcond.not.i99.7.i.1, label %bb24.bb15.loopexit_crit_edge.us.i100.7.i, label %bb26.us.i91.7.i bb24.bb15.loopexit_crit_edge.us.i100.7.i: ; preds = %bb26.us.i91.7.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4207) tail call void @llvm.experimental.noalias.scope.decl(metadata !4210) tail call void @llvm.experimental.noalias.scope.decl(metadata !4212) br label %bb17.us.i116.i bb17.us.i116.i: ; preds = %bb17.us.i116.i, %bb24.bb15.loopexit_crit_edge.us.i100.7.i %iter.sroa.38.0211.us.i117.i = phi i64 [ %318, %bb17.us.i116.i ], [ 0, %bb24.bb15.loopexit_crit_edge.us.i100.7.i ] %start1.i.i.i.i.i.i.i.i.us.i118.i = shl i64 %iter.sroa.38.0211.us.i117.i, 4 %data.i.i.i.i.i.i.i.i.us.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i118.i %start1.i.i.i.i.us.i120.i = shl i64 %iter.sroa.38.0211.us.i117.i, 5 %data.i.i.i.i.i.i.us.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i120.i %data.i5.i.i.i.i.i.i.i.us.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i118.i %232 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i120.i, i64 1 %w1.0.us.i123.i = load double, ptr %232, align 8, !alias.scope !4212, !noalias !4214, !noundef !3 %233 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i120.i, i64 1, i32 1 %w1.1.us.i124.i = load double, ptr %233, align 8, !alias.scope !4212, !noalias !4214, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i125.i = insertelement <2 x double> poison, double %w1.0.us.i123.i, i64 0 %234 = insertelement <4 x double> poison, double %w1.1.us.i124.i, i64 0 %235 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 16 %236 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i125.i, <2 x double> poison, <4 x i32> zeroinitializer %237 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i132.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i121.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.i = load <4 x double>, ptr %235, align 8, !alias.scope !4210, !noalias !4215 %238 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.i, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %237, %238 %240 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.i, <4 x double> %239) #23 %241 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.i, %240 store <4 x double> %241, ptr %data.i.i.i.i.i.i.i.i.us.i119.i, align 8, !alias.scope !4207, !noalias !4216 %242 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.i, %240 store <4 x double> %242, ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i129.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 1 %_3.i.i.i.i.i.i.us.i130.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 1 %_3.i.i.i.i.us.i131.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 17 %a.sroa.0.0.copyload.us.i132.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.1.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.1.i, align 8, !alias.scope !4210, !noalias !4215 %243 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.1.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %237, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.1.i, <4 x double> %244) #23 %246 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.1.i, %245 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.us.i128.1.i, align 8, !alias.scope !4207, !noalias !4216 %247 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.1.i, %245 store <4 x double> %247, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.1.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i129.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 2 %_3.i.i.i.i.i.i.us.i130.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 2 %_3.i.i.i.i.us.i131.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 18 %a.sroa.0.0.copyload.us.i132.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.2.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.2.i, align 8, !alias.scope !4210, !noalias !4215 %248 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.2.i, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %237, %248 %250 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.2.i, <4 x double> %249) #23 %251 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.2.i, %250 store <4 x double> %251, ptr %_3.i.i.i.i.i.i.i.i.us.i128.2.i, align 8, !alias.scope !4207, !noalias !4216 %252 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.2.i, %250 store <4 x double> %252, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.2.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i129.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 3 %_3.i.i.i.i.i.i.us.i130.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 3 %_3.i.i.i.i.us.i131.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 19 %a.sroa.0.0.copyload.us.i132.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.3.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.3.i, align 8, !alias.scope !4210, !noalias !4215 %253 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.3.i, <4 x double> poison, <4 x i32> %254 = fmul <4 x double> %237, %253 %255 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.3.i, <4 x double> %254) #23 %256 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.3.i, %255 store <4 x double> %256, ptr %_3.i.i.i.i.i.i.i.i.us.i128.3.i, align 8, !alias.scope !4207, !noalias !4216 %257 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.3.i, %255 store <4 x double> %257, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.3.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i129.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 4 %_3.i.i.i.i.i.i.us.i130.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 4 %_3.i.i.i.i.us.i131.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 20 %a.sroa.0.0.copyload.us.i132.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.4.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.4.i, align 8, !alias.scope !4210, !noalias !4215 %258 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.4.i, <4 x double> poison, <4 x i32> %259 = fmul <4 x double> %237, %258 %260 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.4.i, <4 x double> %259) #23 %261 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.4.i, %260 store <4 x double> %261, ptr %_3.i.i.i.i.i.i.i.i.us.i128.4.i, align 8, !alias.scope !4207, !noalias !4216 %262 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.4.i, %260 store <4 x double> %262, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.4.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i129.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 5 %_3.i.i.i.i.i.i.us.i130.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 5 %_3.i.i.i.i.us.i131.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 21 %a.sroa.0.0.copyload.us.i132.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.5.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.5.i, align 8, !alias.scope !4210, !noalias !4215 %263 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.5.i, <4 x double> poison, <4 x i32> %264 = fmul <4 x double> %237, %263 %265 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.5.i, <4 x double> %264) #23 %266 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.5.i, %265 store <4 x double> %266, ptr %_3.i.i.i.i.i.i.i.i.us.i128.5.i, align 8, !alias.scope !4207, !noalias !4216 %267 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.5.i, %265 store <4 x double> %267, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.5.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i129.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 6 %_3.i.i.i.i.i.i.us.i130.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 6 %_3.i.i.i.i.us.i131.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 22 %a.sroa.0.0.copyload.us.i132.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.6.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.6.i, align 8, !alias.scope !4210, !noalias !4215 %268 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.6.i, <4 x double> poison, <4 x i32> %269 = fmul <4 x double> %237, %268 %270 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.6.i, <4 x double> %269) #23 %271 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.6.i, %270 store <4 x double> %271, ptr %_3.i.i.i.i.i.i.i.i.us.i128.6.i, align 8, !alias.scope !4207, !noalias !4216 %272 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.6.i, %270 store <4 x double> %272, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.6.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i129.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 7 %_3.i.i.i.i.i.i.us.i130.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 7 %_3.i.i.i.i.us.i131.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 23 %a.sroa.0.0.copyload.us.i132.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.7.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.7.i, align 8, !alias.scope !4210, !noalias !4215 %273 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.7.i, <4 x double> poison, <4 x i32> %274 = fmul <4 x double> %237, %273 %275 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.7.i, <4 x double> %274) #23 %276 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.7.i, %275 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.us.i128.7.i, align 8, !alias.scope !4207, !noalias !4216 %277 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.7.i, %275 store <4 x double> %277, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.7.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i129.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 8 %_3.i.i.i.i.i.i.us.i130.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 8 %_3.i.i.i.i.us.i131.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 24 %a.sroa.0.0.copyload.us.i132.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.8.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.8.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.8.i, align 8, !alias.scope !4210, !noalias !4215 %278 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.8.i, <4 x double> poison, <4 x i32> %279 = fmul <4 x double> %237, %278 %280 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.8.i, <4 x double> %279) #23 %281 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.8.i, %280 store <4 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.us.i128.8.i, align 8, !alias.scope !4207, !noalias !4216 %282 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.8.i, %280 store <4 x double> %282, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.8.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i129.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 9 %_3.i.i.i.i.i.i.us.i130.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 9 %_3.i.i.i.i.us.i131.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 25 %a.sroa.0.0.copyload.us.i132.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.9.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.9.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.9.i, align 8, !alias.scope !4210, !noalias !4215 %283 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.9.i, <4 x double> poison, <4 x i32> %284 = fmul <4 x double> %237, %283 %285 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.9.i, <4 x double> %284) #23 %286 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.9.i, %285 store <4 x double> %286, ptr %_3.i.i.i.i.i.i.i.i.us.i128.9.i, align 8, !alias.scope !4207, !noalias !4216 %287 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.9.i, %285 store <4 x double> %287, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.9.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i129.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 10 %_3.i.i.i.i.i.i.us.i130.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 10 %_3.i.i.i.i.us.i131.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 26 %a.sroa.0.0.copyload.us.i132.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.10.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.10.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.10.i, align 8, !alias.scope !4210, !noalias !4215 %288 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.10.i, <4 x double> poison, <4 x i32> %289 = fmul <4 x double> %237, %288 %290 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.10.i, <4 x double> %289) #23 %291 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.10.i, %290 store <4 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.us.i128.10.i, align 8, !alias.scope !4207, !noalias !4216 %292 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.10.i, %290 store <4 x double> %292, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.10.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i129.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 11 %_3.i.i.i.i.i.i.us.i130.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 11 %_3.i.i.i.i.us.i131.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 27 %a.sroa.0.0.copyload.us.i132.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.11.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.11.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.11.i, align 8, !alias.scope !4210, !noalias !4215 %293 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.11.i, <4 x double> poison, <4 x i32> %294 = fmul <4 x double> %237, %293 %295 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.11.i, <4 x double> %294) #23 %296 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.11.i, %295 store <4 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.us.i128.11.i, align 8, !alias.scope !4207, !noalias !4216 %297 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.11.i, %295 store <4 x double> %297, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.11.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i129.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 12 %_3.i.i.i.i.i.i.us.i130.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 12 %_3.i.i.i.i.us.i131.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 28 %a.sroa.0.0.copyload.us.i132.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.12.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.12.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.12.i, align 8, !alias.scope !4210, !noalias !4215 %298 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.12.i, <4 x double> poison, <4 x i32> %299 = fmul <4 x double> %237, %298 %300 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.12.i, <4 x double> %299) #23 %301 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.12.i, %300 store <4 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.us.i128.12.i, align 8, !alias.scope !4207, !noalias !4216 %302 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.12.i, %300 store <4 x double> %302, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.12.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i129.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 13 %_3.i.i.i.i.i.i.us.i130.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 13 %_3.i.i.i.i.us.i131.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 29 %a.sroa.0.0.copyload.us.i132.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.13.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.13.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.13.i, align 8, !alias.scope !4210, !noalias !4215 %303 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.13.i, <4 x double> poison, <4 x i32> %304 = fmul <4 x double> %237, %303 %305 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.13.i, <4 x double> %304) #23 %306 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.13.i, %305 store <4 x double> %306, ptr %_3.i.i.i.i.i.i.i.i.us.i128.13.i, align 8, !alias.scope !4207, !noalias !4216 %307 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.13.i, %305 store <4 x double> %307, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.13.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i129.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 14 %_3.i.i.i.i.i.i.us.i130.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 14 %_3.i.i.i.i.us.i131.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 30 %a.sroa.0.0.copyload.us.i132.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.14.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.14.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.14.i, align 8, !alias.scope !4210, !noalias !4215 %308 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.14.i, <4 x double> poison, <4 x i32> %309 = fmul <4 x double> %237, %308 %310 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.14.i, <4 x double> %309) #23 %311 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.14.i, %310 store <4 x double> %311, ptr %_3.i.i.i.i.i.i.i.i.us.i128.14.i, align 8, !alias.scope !4207, !noalias !4216 %312 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.14.i, %310 store <4 x double> %312, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.14.i, align 8, !alias.scope !4207, !noalias !4216 %_3.i.i.i.i.i.i.i.i.us.i128.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i119.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i129.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i122.i, i64 15 %_3.i.i.i.i.i.i.us.i130.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 15 %_3.i.i.i.i.us.i131.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i121.i, i64 31 %a.sroa.0.0.copyload.us.i132.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i130.15.i, align 8, !alias.scope !4210, !noalias !4215 %_62.sroa.0.0.copyload.us.i133.15.i = load <4 x double>, ptr %_3.i.i.i.i.us.i131.15.i, align 8, !alias.scope !4210, !noalias !4215 %313 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i133.15.i, <4 x double> poison, <4 x i32> %314 = fmul <4 x double> %237, %313 %315 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_62.sroa.0.0.copyload.us.i133.15.i, <4 x double> %314) #23 %316 = fadd <4 x double> %a.sroa.0.0.copyload.us.i132.15.i, %315 store <4 x double> %316, ptr %_3.i.i.i.i.i.i.i.i.us.i128.15.i, align 8, !alias.scope !4207, !noalias !4216 %317 = fsub <4 x double> %a.sroa.0.0.copyload.us.i132.15.i, %315 store <4 x double> %317, ptr %_3.i2.i.i.i.i.i.i.i.us.i129.15.i, align 8, !alias.scope !4207, !noalias !4216 %318 = add nuw nsw i64 %iter.sroa.38.0211.us.i117.i, 1 %exitcond417.not.i = icmp eq i64 %318, 16 br i1 %exitcond417.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit137.i, label %bb17.us.i116.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit137.i: ; preds = %bb17.us.i116.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4217) tail call void @llvm.experimental.noalias.scope.decl(metadata !4220) tail call void @llvm.experimental.noalias.scope.decl(metadata !4222) br label %bb17.us.i151.i bb17.us.i151.i: ; preds = %bb17.us.i151.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit137.i %iter.sroa.38.0211.us.i152.i = phi i64 [ %365, %bb17.us.i151.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit137.i ] %start1.i.i.i.i.i.i.i.i.us.i153.i = shl i64 %iter.sroa.38.0211.us.i152.i, 3 %data.i.i.i.i.i.i.i.i.us.i154.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i153.i %start1.i.i.i.i.us.i155.i = shl i64 %iter.sroa.38.0211.us.i152.i, 4 %data.i.i.i.i.i.i.us.i156.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i155.i %data.i5.i.i.i.i.i.i.i.us.i157.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.us.i153.i %319 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i155.i, i64 1 %w1.0.us.i158.i = load double, ptr %319, align 8, !alias.scope !4222, !noalias !4224, !noundef !3 %320 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i155.i, i64 1, i32 1 %w1.1.us.i159.i = load double, ptr %320, align 8, !alias.scope !4222, !noalias !4224, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i160.i = insertelement <2 x double> poison, double %w1.0.us.i158.i, i64 0 %321 = insertelement <4 x double> poison, double %w1.1.us.i159.i, i64 0 %322 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 8 %323 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i160.i, <2 x double> poison, <4 x i32> zeroinitializer %324 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i167.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i156.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.i = load <4 x double>, ptr %322, align 8, !alias.scope !4220, !noalias !4225 %325 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.i, <4 x double> poison, <4 x i32> %326 = fmul <4 x double> %324, %325 %327 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.i, <4 x double> %326) #23 %328 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.i, %327 store <4 x double> %328, ptr %data.i.i.i.i.i.i.i.i.us.i154.i, align 8, !alias.scope !4217, !noalias !4226 %329 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.i, %327 store <4 x double> %329, ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i164.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 1 %_3.i.i.i.i.i.i.us.i165.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 1 %_3.i.i.i.i.us.i166.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 9 %a.sroa.0.0.copyload.us.i167.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.1.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.1.i, align 8, !alias.scope !4220, !noalias !4225 %330 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.1.i, <4 x double> poison, <4 x i32> %331 = fmul <4 x double> %324, %330 %332 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.1.i, <4 x double> %331) #23 %333 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.1.i, %332 store <4 x double> %333, ptr %_3.i.i.i.i.i.i.i.i.us.i163.1.i, align 8, !alias.scope !4217, !noalias !4226 %334 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.1.i, %332 store <4 x double> %334, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.1.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i164.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 2 %_3.i.i.i.i.i.i.us.i165.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 2 %_3.i.i.i.i.us.i166.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 10 %a.sroa.0.0.copyload.us.i167.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.2.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.2.i, align 8, !alias.scope !4220, !noalias !4225 %335 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.2.i, <4 x double> poison, <4 x i32> %336 = fmul <4 x double> %324, %335 %337 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.2.i, <4 x double> %336) #23 %338 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.2.i, %337 store <4 x double> %338, ptr %_3.i.i.i.i.i.i.i.i.us.i163.2.i, align 8, !alias.scope !4217, !noalias !4226 %339 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.2.i, %337 store <4 x double> %339, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.2.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i164.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 3 %_3.i.i.i.i.i.i.us.i165.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 3 %_3.i.i.i.i.us.i166.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 11 %a.sroa.0.0.copyload.us.i167.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.3.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.3.i, align 8, !alias.scope !4220, !noalias !4225 %340 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.3.i, <4 x double> poison, <4 x i32> %341 = fmul <4 x double> %324, %340 %342 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.3.i, <4 x double> %341) #23 %343 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.3.i, %342 store <4 x double> %343, ptr %_3.i.i.i.i.i.i.i.i.us.i163.3.i, align 8, !alias.scope !4217, !noalias !4226 %344 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.3.i, %342 store <4 x double> %344, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.3.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i164.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 4 %_3.i.i.i.i.i.i.us.i165.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 4 %_3.i.i.i.i.us.i166.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 12 %a.sroa.0.0.copyload.us.i167.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.4.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.4.i, align 8, !alias.scope !4220, !noalias !4225 %345 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.4.i, <4 x double> poison, <4 x i32> %346 = fmul <4 x double> %324, %345 %347 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.4.i, <4 x double> %346) #23 %348 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.4.i, %347 store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i.i.us.i163.4.i, align 8, !alias.scope !4217, !noalias !4226 %349 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.4.i, %347 store <4 x double> %349, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.4.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i164.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 5 %_3.i.i.i.i.i.i.us.i165.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 5 %_3.i.i.i.i.us.i166.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 13 %a.sroa.0.0.copyload.us.i167.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.5.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.5.i, align 8, !alias.scope !4220, !noalias !4225 %350 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.5.i, <4 x double> poison, <4 x i32> %351 = fmul <4 x double> %324, %350 %352 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.5.i, <4 x double> %351) #23 %353 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.5.i, %352 store <4 x double> %353, ptr %_3.i.i.i.i.i.i.i.i.us.i163.5.i, align 8, !alias.scope !4217, !noalias !4226 %354 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.5.i, %352 store <4 x double> %354, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.5.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i164.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 6 %_3.i.i.i.i.i.i.us.i165.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 6 %_3.i.i.i.i.us.i166.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 14 %a.sroa.0.0.copyload.us.i167.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.6.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.6.i, align 8, !alias.scope !4220, !noalias !4225 %355 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.6.i, <4 x double> poison, <4 x i32> %356 = fmul <4 x double> %324, %355 %357 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.6.i, <4 x double> %356) #23 %358 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.6.i, %357 store <4 x double> %358, ptr %_3.i.i.i.i.i.i.i.i.us.i163.6.i, align 8, !alias.scope !4217, !noalias !4226 %359 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.6.i, %357 store <4 x double> %359, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.6.i, align 8, !alias.scope !4217, !noalias !4226 %_3.i.i.i.i.i.i.i.i.us.i163.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i154.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i164.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i157.i, i64 7 %_3.i.i.i.i.i.i.us.i165.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 7 %_3.i.i.i.i.us.i166.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i156.i, i64 15 %a.sroa.0.0.copyload.us.i167.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i165.7.i, align 8, !alias.scope !4220, !noalias !4225 %_62.sroa.0.0.copyload.us.i168.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i166.7.i, align 8, !alias.scope !4220, !noalias !4225 %360 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i168.7.i, <4 x double> poison, <4 x i32> %361 = fmul <4 x double> %324, %360 %362 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %323, <4 x double> %_62.sroa.0.0.copyload.us.i168.7.i, <4 x double> %361) #23 %363 = fadd <4 x double> %a.sroa.0.0.copyload.us.i167.7.i, %362 store <4 x double> %363, ptr %_3.i.i.i.i.i.i.i.i.us.i163.7.i, align 8, !alias.scope !4217, !noalias !4226 %364 = fsub <4 x double> %a.sroa.0.0.copyload.us.i167.7.i, %362 store <4 x double> %364, ptr %_3.i2.i.i.i.i.i.i.i.us.i164.7.i, align 8, !alias.scope !4217, !noalias !4226 %365 = add nuw nsw i64 %iter.sroa.38.0211.us.i152.i, 1 %exitcond418.not.i = icmp eq i64 %365, 32 br i1 %exitcond418.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit172.i, label %bb17.us.i151.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit172.i: ; preds = %bb17.us.i151.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4227) tail call void @llvm.experimental.noalias.scope.decl(metadata !4230) tail call void @llvm.experimental.noalias.scope.decl(metadata !4232) br label %bb17.us.i186.i bb17.us.i186.i: ; preds = %bb17.us.i186.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit172.i %iter.sroa.38.0211.us.i187.i = phi i64 [ %392, %bb17.us.i186.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit172.i ] %start1.i.i.i.i.i.i.i.i.us.i188.i = shl i64 %iter.sroa.38.0211.us.i187.i, 2 %data.i.i.i.i.i.i.i.i.us.i189.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i188.i %start1.i.i.i.i.us.i190.i = shl i64 %iter.sroa.38.0211.us.i187.i, 3 %data.i.i.i.i.i.i.us.i191.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i190.i %data.i5.i.i.i.i.i.i.i.us.i192.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i188.i %366 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i190.i, i64 1 %w1.0.us.i193.i = load double, ptr %366, align 8, !alias.scope !4232, !noalias !4234, !noundef !3 %367 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i190.i, i64 1, i32 1 %w1.1.us.i194.i = load double, ptr %367, align 8, !alias.scope !4232, !noalias !4234, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i195.i = insertelement <2 x double> poison, double %w1.0.us.i193.i, i64 0 %368 = insertelement <4 x double> poison, double %w1.1.us.i194.i, i64 0 %369 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 4 %370 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i195.i, <2 x double> poison, <4 x i32> zeroinitializer %371 = shufflevector <4 x double> %368, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i202.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i191.i, align 8, !alias.scope !4230, !noalias !4235 %_62.sroa.0.0.copyload.us.i203.i = load <4 x double>, ptr %369, align 8, !alias.scope !4230, !noalias !4235 %372 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i203.i, <4 x double> poison, <4 x i32> %373 = fmul <4 x double> %371, %372 %374 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %_62.sroa.0.0.copyload.us.i203.i, <4 x double> %373) #23 %375 = fadd <4 x double> %a.sroa.0.0.copyload.us.i202.i, %374 store <4 x double> %375, ptr %data.i.i.i.i.i.i.i.i.us.i189.i, align 8, !alias.scope !4227, !noalias !4236 %376 = fsub <4 x double> %a.sroa.0.0.copyload.us.i202.i, %374 store <4 x double> %376, ptr %data.i5.i.i.i.i.i.i.i.us.i192.i, align 8, !alias.scope !4227, !noalias !4236 %_3.i.i.i.i.i.i.i.i.us.i198.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i189.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i199.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i192.i, i64 1 %_3.i.i.i.i.i.i.us.i200.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 1 %_3.i.i.i.i.us.i201.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 5 %a.sroa.0.0.copyload.us.i202.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i200.1.i, align 8, !alias.scope !4230, !noalias !4235 %_62.sroa.0.0.copyload.us.i203.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i201.1.i, align 8, !alias.scope !4230, !noalias !4235 %377 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i203.1.i, <4 x double> poison, <4 x i32> %378 = fmul <4 x double> %371, %377 %379 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %_62.sroa.0.0.copyload.us.i203.1.i, <4 x double> %378) #23 %380 = fadd <4 x double> %a.sroa.0.0.copyload.us.i202.1.i, %379 store <4 x double> %380, ptr %_3.i.i.i.i.i.i.i.i.us.i198.1.i, align 8, !alias.scope !4227, !noalias !4236 %381 = fsub <4 x double> %a.sroa.0.0.copyload.us.i202.1.i, %379 store <4 x double> %381, ptr %_3.i2.i.i.i.i.i.i.i.us.i199.1.i, align 8, !alias.scope !4227, !noalias !4236 %_3.i.i.i.i.i.i.i.i.us.i198.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i189.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i199.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i192.i, i64 2 %_3.i.i.i.i.i.i.us.i200.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 2 %_3.i.i.i.i.us.i201.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 6 %a.sroa.0.0.copyload.us.i202.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i200.2.i, align 8, !alias.scope !4230, !noalias !4235 %_62.sroa.0.0.copyload.us.i203.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i201.2.i, align 8, !alias.scope !4230, !noalias !4235 %382 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i203.2.i, <4 x double> poison, <4 x i32> %383 = fmul <4 x double> %371, %382 %384 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %_62.sroa.0.0.copyload.us.i203.2.i, <4 x double> %383) #23 %385 = fadd <4 x double> %a.sroa.0.0.copyload.us.i202.2.i, %384 store <4 x double> %385, ptr %_3.i.i.i.i.i.i.i.i.us.i198.2.i, align 8, !alias.scope !4227, !noalias !4236 %386 = fsub <4 x double> %a.sroa.0.0.copyload.us.i202.2.i, %384 store <4 x double> %386, ptr %_3.i2.i.i.i.i.i.i.i.us.i199.2.i, align 8, !alias.scope !4227, !noalias !4236 %_3.i.i.i.i.i.i.i.i.us.i198.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i189.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i199.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i192.i, i64 3 %_3.i.i.i.i.i.i.us.i200.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 3 %_3.i.i.i.i.us.i201.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i191.i, i64 7 %a.sroa.0.0.copyload.us.i202.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i200.3.i, align 8, !alias.scope !4230, !noalias !4235 %_62.sroa.0.0.copyload.us.i203.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i201.3.i, align 8, !alias.scope !4230, !noalias !4235 %387 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i203.3.i, <4 x double> poison, <4 x i32> %388 = fmul <4 x double> %371, %387 %389 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %_62.sroa.0.0.copyload.us.i203.3.i, <4 x double> %388) #23 %390 = fadd <4 x double> %a.sroa.0.0.copyload.us.i202.3.i, %389 store <4 x double> %390, ptr %_3.i.i.i.i.i.i.i.i.us.i198.3.i, align 8, !alias.scope !4227, !noalias !4236 %391 = fsub <4 x double> %a.sroa.0.0.copyload.us.i202.3.i, %389 store <4 x double> %391, ptr %_3.i2.i.i.i.i.i.i.i.us.i199.3.i, align 8, !alias.scope !4227, !noalias !4236 %392 = add nuw nsw i64 %iter.sroa.38.0211.us.i187.i, 1 %exitcond419.not.i = icmp eq i64 %392, 64 br i1 %exitcond419.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit207.i, label %bb17.us.i186.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit207.i: ; preds = %bb17.us.i186.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4237) tail call void @llvm.experimental.noalias.scope.decl(metadata !4240) tail call void @llvm.experimental.noalias.scope.decl(metadata !4242) br label %bb17.us.i221.i bb17.us.i221.i: ; preds = %bb17.us.i221.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit207.i %iter.sroa.38.0211.us.i222.i = phi i64 [ %409, %bb17.us.i221.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit207.i ] %start1.i.i.i.i.i.i.i.i.us.i223.i = shl nuw i64 %iter.sroa.38.0211.us.i222.i, 1 %data.i.i.i.i.i.i.i.i.us.i224.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i223.i %start1.i.i.i.i.us.i225.i = shl i64 %iter.sroa.38.0211.us.i222.i, 2 %data.i.i.i.i.i.i.us.i226.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i225.i %data.i5.i.i.i.i.i.i.i.us.i227.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.us.i223.i %393 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i225.i, i64 1 %w1.0.us.i228.i = load double, ptr %393, align 8, !alias.scope !4242, !noalias !4244, !noundef !3 %394 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i225.i, i64 1, i32 1 %w1.1.us.i229.i = load double, ptr %394, align 8, !alias.scope !4242, !noalias !4244, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i230.i = insertelement <2 x double> poison, double %w1.0.us.i228.i, i64 0 %395 = insertelement <4 x double> poison, double %w1.1.us.i229.i, i64 0 %396 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i226.i, i64 2 %397 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i230.i, <2 x double> poison, <4 x i32> zeroinitializer %398 = shufflevector <4 x double> %395, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i237.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i226.i, align 8, !alias.scope !4240, !noalias !4245 %_62.sroa.0.0.copyload.us.i238.i = load <4 x double>, ptr %396, align 8, !alias.scope !4240, !noalias !4245 %399 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i238.i, <4 x double> poison, <4 x i32> %400 = fmul <4 x double> %398, %399 %401 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %397, <4 x double> %_62.sroa.0.0.copyload.us.i238.i, <4 x double> %400) #23 %402 = fadd <4 x double> %a.sroa.0.0.copyload.us.i237.i, %401 store <4 x double> %402, ptr %data.i.i.i.i.i.i.i.i.us.i224.i, align 8, !alias.scope !4237, !noalias !4246 %403 = fsub <4 x double> %a.sroa.0.0.copyload.us.i237.i, %401 store <4 x double> %403, ptr %data.i5.i.i.i.i.i.i.i.us.i227.i, align 8, !alias.scope !4237, !noalias !4246 %_3.i.i.i.i.i.i.i.i.us.i233.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i224.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i234.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i227.i, i64 1 %_3.i.i.i.i.i.i.us.i235.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i226.i, i64 1 %_3.i.i.i.i.us.i236.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i226.i, i64 3 %a.sroa.0.0.copyload.us.i237.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i235.1.i, align 8, !alias.scope !4240, !noalias !4245 %_62.sroa.0.0.copyload.us.i238.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i236.1.i, align 8, !alias.scope !4240, !noalias !4245 %404 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i238.1.i, <4 x double> poison, <4 x i32> %405 = fmul <4 x double> %398, %404 %406 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %397, <4 x double> %_62.sroa.0.0.copyload.us.i238.1.i, <4 x double> %405) #23 %407 = fadd <4 x double> %a.sroa.0.0.copyload.us.i237.1.i, %406 store <4 x double> %407, ptr %_3.i.i.i.i.i.i.i.i.us.i233.1.i, align 8, !alias.scope !4237, !noalias !4246 %408 = fsub <4 x double> %a.sroa.0.0.copyload.us.i237.1.i, %406 store <4 x double> %408, ptr %_3.i2.i.i.i.i.i.i.i.us.i234.1.i, align 8, !alias.scope !4237, !noalias !4246 %409 = add nuw nsw i64 %iter.sroa.38.0211.us.i222.i, 1 %exitcond420.not.i = icmp eq i64 %409, 128 br i1 %exitcond420.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit242.i, label %bb17.us.i221.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit242.i: ; preds = %bb17.us.i221.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4247) tail call void @llvm.experimental.noalias.scope.decl(metadata !4250) tail call void @llvm.experimental.noalias.scope.decl(metadata !4252) br label %bb17.us.i254.i bb17.us.i254.i: ; preds = %bb17.us.i254.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit242.i %iter.sroa.38.0211.us.i255.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit242.i ], [ %433, %bb17.us.i254.i ] %data.i.i.i.i.i.i.i.i.us.i256.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0211.us.i255.i %start1.i.i.i.i.us.i257.i = shl nuw i64 %iter.sroa.38.0211.us.i255.i, 1 %data.i.i.i.i.i.i.us.i258.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i257.i %data.i5.i.i.i.i.i.i.i.us.i259.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.38.0211.us.i255.i %410 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i257.i, i64 1 %w1.0.us.i260.i = load double, ptr %410, align 8, !alias.scope !4252, !noalias !4254, !noundef !3 %411 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i257.i, i64 1, i32 1 %w1.1.us.i261.i = load double, ptr %411, align 8, !alias.scope !4252, !noalias !4254, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i262.i = insertelement <2 x double> poison, double %w1.0.us.i260.i, i64 0 %412 = insertelement <4 x double> poison, double %w1.1.us.i261.i, i64 0 %413 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i258.i, i64 1 %414 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i262.i, <2 x double> poison, <4 x i32> zeroinitializer %415 = shufflevector <4 x double> %412, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i269.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i258.i, align 8, !alias.scope !4250, !noalias !4255 %_62.sroa.0.0.copyload.us.i270.i = load <4 x double>, ptr %413, align 8, !alias.scope !4250, !noalias !4255 %416 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i270.i, <4 x double> poison, <4 x i32> %417 = fmul <4 x double> %415, %416 %418 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %414, <4 x double> %_62.sroa.0.0.copyload.us.i270.i, <4 x double> %417) #23 %419 = fadd <4 x double> %a.sroa.0.0.copyload.us.i269.i, %418 store <4 x double> %419, ptr %data.i.i.i.i.i.i.i.i.us.i256.i, align 8, !alias.scope !4247, !noalias !4256 %420 = fsub <4 x double> %a.sroa.0.0.copyload.us.i269.i, %418 store <4 x double> %420, ptr %data.i5.i.i.i.i.i.i.i.us.i259.i, align 8, !alias.scope !4247, !noalias !4256 %421 = or disjoint i64 %iter.sroa.38.0211.us.i255.i, 1 %data.i.i.i.i.i.i.i.i.us.i256.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %421 %start1.i.i.i.i.us.i257.i.1 = shl nuw i64 %421, 1 %data.i.i.i.i.i.i.us.i258.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i257.i.1 %data.i5.i.i.i.i.i.i.i.us.i259.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %421 %422 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i257.i.1, i64 1 %w1.0.us.i260.i.1 = load double, ptr %422, align 8, !alias.scope !4252, !noalias !4254, !noundef !3 %423 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i257.i.1, i64 1, i32 1 %w1.1.us.i261.i.1 = load double, ptr %423, align 8, !alias.scope !4252, !noalias !4254, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i262.i.1 = insertelement <2 x double> poison, double %w1.0.us.i260.i.1, i64 0 %424 = insertelement <4 x double> poison, double %w1.1.us.i261.i.1, i64 0 %425 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i258.i.1, i64 1 %426 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i262.i.1, <2 x double> poison, <4 x i32> zeroinitializer %427 = shufflevector <4 x double> %424, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i269.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i258.i.1, align 8, !alias.scope !4250, !noalias !4255 %_62.sroa.0.0.copyload.us.i270.i.1 = load <4 x double>, ptr %425, align 8, !alias.scope !4250, !noalias !4255 %428 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i270.i.1, <4 x double> poison, <4 x i32> %429 = fmul <4 x double> %427, %428 %430 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %426, <4 x double> %_62.sroa.0.0.copyload.us.i270.i.1, <4 x double> %429) #23 %431 = fadd <4 x double> %a.sroa.0.0.copyload.us.i269.i.1, %430 store <4 x double> %431, ptr %data.i.i.i.i.i.i.i.i.us.i256.i.1, align 8, !alias.scope !4247, !noalias !4256 %432 = fsub <4 x double> %a.sroa.0.0.copyload.us.i269.i.1, %430 store <4 x double> %432, ptr %data.i5.i.i.i.i.i.i.i.us.i259.i.1, align 8, !alias.scope !4247, !noalias !4256 %433 = add nuw nsw i64 %iter.sroa.38.0211.us.i255.i, 2 %exitcond421.not.i.1 = icmp eq i64 %433, 256 br i1 %exitcond421.not.i.1, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit274.i, label %bb17.us.i254.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit274.i: ; preds = %bb17.us.i254.i %434 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 br label %bb9.i.i.i bb9.i.i.i: ; preds = %bb9.i.i.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit274.i %iter.i.i.sroa.22.0414.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit274.i ], [ %446, %bb9.i.i.i ] %435 = or disjoint i64 %iter.i.i.sroa.22.0414.i, 1 %_3.i.i.i.i.i.i.i.i309.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.i.i.sroa.22.0414.i %_3.i2.i.i.i.i.i.i.i312.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.sroa.22.0414.i %_3.i.i.i.i.i.i315.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.sroa.22.0414.i %_3.i.i.i.i318.i = getelementptr inbounds %"fft_simd::c64x2", ptr %434, i64 %iter.i.i.sroa.22.0414.i %ab0.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i309.i, align 8, !noalias !4166 %436 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.i.i.sroa.22.0414.i, i64 1 %ab1.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %436, align 8, !noalias !4166 %w1.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i318.i, align 8, !noalias !4166 %437 = shufflevector <4 x double> %ab0.i.i.sroa.0.0.copyload.i, <4 x double> %ab1.i.i.sroa.0.0.copyload.i, <4 x i32> %438 = shufflevector <4 x double> %ab0.i.i.sroa.0.0.copyload.i, <4 x double> %ab1.i.i.sroa.0.0.copyload.i, <4 x i32> %439 = shufflevector <4 x double> %438, <4 x double> poison, <4 x i32> %440 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i, <4 x double> poison, <4 x i32> %441 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i, <4 x double> poison, <4 x i32> %442 = fmul <4 x double> %441, %439 %443 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %440, <4 x double> %438, <4 x double> %442) #23 %444 = fadd <4 x double> %437, %443 store <4 x double> %444, ptr %_3.i2.i.i.i.i.i.i.i312.i, align 8, !noalias !4166 %445 = fsub <4 x double> %437, %443 store <4 x double> %445, ptr %_3.i.i.i.i.i.i315.i, align 8, !noalias !4166 %446 = add nuw nsw i64 %iter.i.i.sroa.22.0414.i, 2 %_3.i.i.i.i.i.i.i.i309.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %435 %_3.i2.i.i.i.i.i.i.i312.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %435 %_3.i.i.i.i.i.i315.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %435 %_3.i.i.i.i318.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %434, i64 %435 %ab0.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i309.i.1, align 8, !noalias !4166 %447 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %435, i64 1 %ab1.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %447, align 8, !noalias !4166 %w1.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i318.i.1, align 8, !noalias !4166 %448 = shufflevector <4 x double> %ab0.i.i.sroa.0.0.copyload.i.1, <4 x double> %ab1.i.i.sroa.0.0.copyload.i.1, <4 x i32> %449 = shufflevector <4 x double> %ab0.i.i.sroa.0.0.copyload.i.1, <4 x double> %ab1.i.i.sroa.0.0.copyload.i.1, <4 x i32> %450 = shufflevector <4 x double> %449, <4 x double> poison, <4 x i32> %451 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.1, <4 x double> poison, <4 x i32> %452 = shufflevector <4 x double> %w1.i.i.sroa.0.0.copyload.i.1, <4 x double> poison, <4 x i32> %453 = fmul <4 x double> %452, %450 %454 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %451, <4 x double> %449, <4 x double> %453) #23 %455 = fadd <4 x double> %448, %454 store <4 x double> %455, ptr %_3.i2.i.i.i.i.i.i.i312.i.1, align 8, !noalias !4166 %456 = fsub <4 x double> %448, %454 store <4 x double> %456, ptr %_3.i.i.i.i.i.i315.i.1, align 8, !noalias !4166 %exitcond422.not.i.1 = icmp eq i64 %446, 256 br i1 %exitcond422.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h22a2f9f1f1e81dd8E.exit, label %bb9.i.i.i _ZN4pulp3x862V39vectorize6__impl17h22a2f9f1f1e81dd8E.exit: ; preds = %bb9.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4166 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7cc454e0c2dcfbb1E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4257 store i64 32, ptr %n.i, align 8, !noalias !4257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4257 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4257 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4257 store ptr null, ptr %_16.i, align 8, !noalias !4257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4257 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4257 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4257 store ptr null, ptr %_24.i, align 8, !noalias !4257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4257 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4257 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4257 store ptr null, ptr %_32.i, align 8, !noalias !4257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4257 store i64 %w.1, ptr %_34.i, align 8, !noalias !4257 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %bb9.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4257 store ptr null, ptr %_40.i, align 8, !noalias !4257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4257 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4257 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !4257 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %1 = fadd <4 x double> %strided.vec, %strided.vec3 %2 = fadd <4 x double> %strided.vec1, %strided.vec4 %3 = fsub <4 x double> %strided.vec, %strided.vec3 %4 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %1, <4 x double> %2, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4257 %interleaved.vec5 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !4257 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %5, align 8, !noalias !4257 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %6, align 8, !noalias !4257 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %8 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %9 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %5, align 8, !noalias !4257 %interleaved.vec5.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %6, align 8, !noalias !4257 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %11, align 8, !noalias !4257 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %12, align 8, !noalias !4257 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %13 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %14 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %15 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %16 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %interleaved.vec.2 = shufflevector <4 x double> %13, <4 x double> %14, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %11, align 8, !noalias !4257 %interleaved.vec5.2 = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %12, align 8, !noalias !4257 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %17, align 8, !noalias !4257 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %18, align 8, !noalias !4257 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %19 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %20 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %21 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %22 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %interleaved.vec.3 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %17, align 8, !noalias !4257 %interleaved.vec5.3 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %18, align 8, !noalias !4257 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 br label %bb24.i.i.i68 bb24.i.i.i68: ; preds = %bb9.i.i.i.preheader, %bb24.i.i.i68 %_2.i.i.i260 = phi i1 [ true, %bb9.i.i.i.preheader ], [ false, %bb24.i.i.i68 ] %iter.i.i.i22.sroa.60.070 = phi i64 [ 0, %bb9.i.i.i.preheader ], [ 1, %bb24.i.i.i68 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i22.sroa.60.070, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i22.sroa.60.070, 4 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i79 = load double, ptr %26, align 8, !noalias !4257, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i80 = load double, ptr %27, align 8, !noalias !4257, !noundef !3 %28 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i81 = load double, ptr %28, align 8, !noalias !4257, !noundef !3 %29 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i82 = load double, ptr %29, align 8, !noalias !4257, !noundef !3 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i83 = load double, ptr %30, align 8, !noalias !4257, !noundef !3 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i84 = load double, ptr %31, align 8, !noalias !4257, !noundef !3 %32 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %33 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4 %34 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12 %_6.i39.i.i.i121 = fneg double %w1.1.i.i.i80 %_6.i36.i.i.i126 = fneg double %w2.1.i.i.i82 %_6.i.i.i.i131 = fneg double %w3.1.i.i.i84 %a.0.i.i.i117 = load double, ptr %data.i.i.i.i.i.i, align 8, !noalias !4257, !noundef !3 %35 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i, i64 8 %a.1.i.i.i118 = load double, ptr %35, align 8, !noalias !4257, !noundef !3 %_84.0.i.i.i119 = load double, ptr %33, align 8, !noalias !4257, !noundef !3 %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4, i32 1 %_84.1.i.i.i120 = load double, ptr %36, align 8, !noalias !4257, !noundef !3 %b.i40.i.i.i122 = fmul double %_84.1.i.i.i120, %_6.i39.i.i.i121 %37 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119, double %b.i40.i.i.i122) %b1.i41.i.i.i123 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119 %38 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120, double %b1.i41.i.i.i123) %_86.0.i.i.i124 = load double, ptr %32, align 8, !noalias !4257, !noundef !3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8, i32 1 %_86.1.i.i.i125 = load double, ptr %39, align 8, !noalias !4257, !noundef !3 %b.i37.i.i.i127 = fmul double %_86.1.i.i.i125, %_6.i36.i.i.i126 %40 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124, double %b.i37.i.i.i127) %b1.i38.i.i.i128 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124 %41 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125, double %b1.i38.i.i.i128) %_88.0.i.i.i129 = load double, ptr %34, align 8, !noalias !4257, !noundef !3 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12, i32 1 %_88.1.i.i.i130 = load double, ptr %42, align 8, !noalias !4257, !noundef !3 %b.i35.i.i.i132 = fmul double %_88.1.i.i.i130, %_6.i.i.i.i131 %43 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129, double %b.i35.i.i.i132) %b1.i.i.i.i133 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129 %44 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130, double %b1.i.i.i.i133) %_0.i.i364 = fadd double %a.0.i.i.i117, %40 %_0.i3.i365 = fadd double %a.1.i.i.i118, %41 %_0.i.i366 = fsub double %a.0.i.i.i117, %40 %_0.i3.i367 = fsub double %a.1.i.i.i118, %41 %_0.i.i368 = fadd double %37, %43 %_0.i3.i369 = fadd double %38, %44 %_0.i.i370 = fsub double %37, %43 %_0.i3.i371 = fsub double %38, %44 %_0.i.i372 = fadd double %_0.i.i364, %_0.i.i368 %_0.i3.i373 = fadd double %_0.i3.i365, %_0.i3.i369 store double %_0.i.i372, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4257 %45 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i373, ptr %45, align 8, !noalias !4257 %_0.i.i374 = fsub double %_0.i.i366, %_0.i3.i371 %_0.i3.i375 = fadd double %_0.i3.i367, %_0.i.i370 store double %_0.i.i374, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4257 %46 = getelementptr inbounds i8, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i375, ptr %46, align 8, !noalias !4257 %_0.i.i376 = fsub double %_0.i.i364, %_0.i.i368 %_0.i3.i377 = fsub double %_0.i3.i365, %_0.i3.i369 store double %_0.i.i376, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4257 %47 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i377, ptr %47, align 8, !noalias !4257 %_0.i.i378 = fadd double %_0.i.i366, %_0.i3.i371 %_0.i3.i379 = fsub double %_0.i3.i367, %_0.i.i370 store double %_0.i.i378, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4257 %48 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i379, ptr %48, align 8, !noalias !4257 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9 %_3.i.i.i.i356.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13 %a.0.i.i.i117.1 = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4257, !noundef !3 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1, i32 1 %a.1.i.i.i118.1 = load double, ptr %49, align 8, !noalias !4257, !noundef !3 %_84.0.i.i.i119.1 = load double, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !4257, !noundef !3 %50 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5, i32 1 %_84.1.i.i.i120.1 = load double, ptr %50, align 8, !noalias !4257, !noundef !3 %b.i40.i.i.i122.1 = fmul double %_84.1.i.i.i120.1, %_6.i39.i.i.i121 %51 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119.1, double %b.i40.i.i.i122.1) %b1.i41.i.i.i123.1 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119.1 %52 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120.1, double %b1.i41.i.i.i123.1) %_86.0.i.i.i124.1 = load double, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !4257, !noundef !3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9, i32 1 %_86.1.i.i.i125.1 = load double, ptr %53, align 8, !noalias !4257, !noundef !3 %b.i37.i.i.i127.1 = fmul double %_86.1.i.i.i125.1, %_6.i36.i.i.i126 %54 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124.1, double %b.i37.i.i.i127.1) %b1.i38.i.i.i128.1 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124.1 %55 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125.1, double %b1.i38.i.i.i128.1) %_88.0.i.i.i129.1 = load double, ptr %_3.i.i.i.i356.1, align 8, !noalias !4257, !noundef !3 %56 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13, i32 1 %_88.1.i.i.i130.1 = load double, ptr %56, align 8, !noalias !4257, !noundef !3 %b.i35.i.i.i132.1 = fmul double %_88.1.i.i.i130.1, %_6.i.i.i.i131 %57 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129.1, double %b.i35.i.i.i132.1) %b1.i.i.i.i133.1 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129.1 %58 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130.1, double %b1.i.i.i.i133.1) %_0.i.i364.1 = fadd double %a.0.i.i.i117.1, %54 %_0.i3.i365.1 = fadd double %a.1.i.i.i118.1, %55 %_0.i.i366.1 = fsub double %a.0.i.i.i117.1, %54 %_0.i3.i367.1 = fsub double %a.1.i.i.i118.1, %55 %_0.i.i368.1 = fadd double %51, %57 %_0.i3.i369.1 = fadd double %52, %58 %_0.i.i370.1 = fsub double %51, %57 %_0.i3.i371.1 = fsub double %52, %58 %_0.i.i372.1 = fadd double %_0.i.i364.1, %_0.i.i368.1 %_0.i3.i373.1 = fadd double %_0.i3.i365.1, %_0.i3.i369.1 store double %_0.i.i372.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4257 %59 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i373.1, ptr %59, align 8, !noalias !4257 %_0.i.i374.1 = fsub double %_0.i.i366.1, %_0.i3.i371.1 %_0.i3.i375.1 = fadd double %_0.i3.i367.1, %_0.i.i370.1 store double %_0.i.i374.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4257 %60 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i375.1, ptr %60, align 8, !noalias !4257 %_0.i.i376.1 = fsub double %_0.i.i364.1, %_0.i.i368.1 %_0.i3.i377.1 = fsub double %_0.i3.i365.1, %_0.i3.i369.1 store double %_0.i.i376.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4257 %61 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i377.1, ptr %61, align 8, !noalias !4257 %_0.i.i378.1 = fadd double %_0.i.i366.1, %_0.i3.i371.1 %_0.i3.i379.1 = fsub double %_0.i3.i367.1, %_0.i.i370.1 store double %_0.i.i378.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4257 %62 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i379.1, ptr %62, align 8, !noalias !4257 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10 %_3.i.i.i.i356.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14 %a.0.i.i.i117.2 = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4257, !noundef !3 %63 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2, i32 1 %a.1.i.i.i118.2 = load double, ptr %63, align 8, !noalias !4257, !noundef !3 %_84.0.i.i.i119.2 = load double, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !4257, !noundef !3 %64 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6, i32 1 %_84.1.i.i.i120.2 = load double, ptr %64, align 8, !noalias !4257, !noundef !3 %b.i40.i.i.i122.2 = fmul double %_84.1.i.i.i120.2, %_6.i39.i.i.i121 %65 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119.2, double %b.i40.i.i.i122.2) %b1.i41.i.i.i123.2 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119.2 %66 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120.2, double %b1.i41.i.i.i123.2) %_86.0.i.i.i124.2 = load double, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !4257, !noundef !3 %67 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10, i32 1 %_86.1.i.i.i125.2 = load double, ptr %67, align 8, !noalias !4257, !noundef !3 %b.i37.i.i.i127.2 = fmul double %_86.1.i.i.i125.2, %_6.i36.i.i.i126 %68 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124.2, double %b.i37.i.i.i127.2) %b1.i38.i.i.i128.2 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124.2 %69 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125.2, double %b1.i38.i.i.i128.2) %_88.0.i.i.i129.2 = load double, ptr %_3.i.i.i.i356.2, align 8, !noalias !4257, !noundef !3 %70 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14, i32 1 %_88.1.i.i.i130.2 = load double, ptr %70, align 8, !noalias !4257, !noundef !3 %b.i35.i.i.i132.2 = fmul double %_88.1.i.i.i130.2, %_6.i.i.i.i131 %71 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129.2, double %b.i35.i.i.i132.2) %b1.i.i.i.i133.2 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129.2 %72 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130.2, double %b1.i.i.i.i133.2) %_0.i.i364.2 = fadd double %a.0.i.i.i117.2, %68 %_0.i3.i365.2 = fadd double %a.1.i.i.i118.2, %69 %_0.i.i366.2 = fsub double %a.0.i.i.i117.2, %68 %_0.i3.i367.2 = fsub double %a.1.i.i.i118.2, %69 %_0.i.i368.2 = fadd double %65, %71 %_0.i3.i369.2 = fadd double %66, %72 %_0.i.i370.2 = fsub double %65, %71 %_0.i3.i371.2 = fsub double %66, %72 %_0.i.i372.2 = fadd double %_0.i.i364.2, %_0.i.i368.2 %_0.i3.i373.2 = fadd double %_0.i3.i365.2, %_0.i3.i369.2 store double %_0.i.i372.2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4257 %73 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i373.2, ptr %73, align 8, !noalias !4257 %_0.i.i374.2 = fsub double %_0.i.i366.2, %_0.i3.i371.2 %_0.i3.i375.2 = fadd double %_0.i3.i367.2, %_0.i.i370.2 store double %_0.i.i374.2, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4257 %74 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i375.2, ptr %74, align 8, !noalias !4257 %_0.i.i376.2 = fsub double %_0.i.i364.2, %_0.i.i368.2 %_0.i3.i377.2 = fsub double %_0.i3.i365.2, %_0.i3.i369.2 store double %_0.i.i376.2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4257 %75 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i377.2, ptr %75, align 8, !noalias !4257 %_0.i.i378.2 = fadd double %_0.i.i366.2, %_0.i3.i371.2 %_0.i3.i379.2 = fsub double %_0.i3.i367.2, %_0.i.i370.2 store double %_0.i.i378.2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4257 %76 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i379.2, ptr %76, align 8, !noalias !4257 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11 %_3.i.i.i.i356.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 15 %a.0.i.i.i117.3 = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4257, !noundef !3 %77 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3, i32 1 %a.1.i.i.i118.3 = load double, ptr %77, align 8, !noalias !4257, !noundef !3 %_84.0.i.i.i119.3 = load double, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !4257, !noundef !3 %78 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 7, i32 1 %_84.1.i.i.i120.3 = load double, ptr %78, align 8, !noalias !4257, !noundef !3 %b.i40.i.i.i122.3 = fmul double %_84.1.i.i.i120.3, %_6.i39.i.i.i121 %79 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119.3, double %b.i40.i.i.i122.3) %b1.i41.i.i.i123.3 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119.3 %80 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120.3, double %b1.i41.i.i.i123.3) %_86.0.i.i.i124.3 = load double, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !4257, !noundef !3 %81 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11, i32 1 %_86.1.i.i.i125.3 = load double, ptr %81, align 8, !noalias !4257, !noundef !3 %b.i37.i.i.i127.3 = fmul double %_86.1.i.i.i125.3, %_6.i36.i.i.i126 %82 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124.3, double %b.i37.i.i.i127.3) %b1.i38.i.i.i128.3 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124.3 %83 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125.3, double %b1.i38.i.i.i128.3) %_88.0.i.i.i129.3 = load double, ptr %_3.i.i.i.i356.3, align 8, !noalias !4257, !noundef !3 %84 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 15, i32 1 %_88.1.i.i.i130.3 = load double, ptr %84, align 8, !noalias !4257, !noundef !3 %b.i35.i.i.i132.3 = fmul double %_88.1.i.i.i130.3, %_6.i.i.i.i131 %85 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129.3, double %b.i35.i.i.i132.3) %b1.i.i.i.i133.3 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129.3 %86 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130.3, double %b1.i.i.i.i133.3) %_0.i.i364.3 = fadd double %a.0.i.i.i117.3, %82 %_0.i3.i365.3 = fadd double %a.1.i.i.i118.3, %83 %_0.i.i366.3 = fsub double %a.0.i.i.i117.3, %82 %_0.i3.i367.3 = fsub double %a.1.i.i.i118.3, %83 %_0.i.i368.3 = fadd double %79, %85 %_0.i3.i369.3 = fadd double %80, %86 %_0.i.i370.3 = fsub double %79, %85 %_0.i3.i371.3 = fsub double %80, %86 %_0.i.i372.3 = fadd double %_0.i.i364.3, %_0.i.i368.3 %_0.i3.i373.3 = fadd double %_0.i3.i365.3, %_0.i3.i369.3 store double %_0.i.i372.3, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4257 %87 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i373.3, ptr %87, align 8, !noalias !4257 %_0.i.i374.3 = fsub double %_0.i.i366.3, %_0.i3.i371.3 %_0.i3.i375.3 = fadd double %_0.i3.i367.3, %_0.i.i370.3 store double %_0.i.i374.3, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4257 %88 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i375.3, ptr %88, align 8, !noalias !4257 %_0.i.i376.3 = fsub double %_0.i.i364.3, %_0.i.i368.3 %_0.i3.i377.3 = fsub double %_0.i3.i365.3, %_0.i3.i369.3 store double %_0.i.i376.3, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4257 %89 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i377.3, ptr %89, align 8, !noalias !4257 %_0.i.i378.3 = fadd double %_0.i.i366.3, %_0.i3.i371.3 %_0.i3.i379.3 = fsub double %_0.i3.i367.3, %_0.i.i370.3 store double %_0.i.i378.3, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4257 %90 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i379.3, ptr %90, align 8, !noalias !4257 br i1 %_2.i.i.i260, label %bb24.i.i.i68, label %vector.body10 vector.body10: ; preds = %bb24.i.i.i68 %91 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %92 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %93 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %100 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 2 %101 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 1 %102 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 3 %103 = fneg <4 x double> %wide.masked.gather12 %104 = fneg <4 x double> %wide.masked.gather14 %105 = fneg <4 x double> %wide.masked.gather16 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %106 = getelementptr inbounds i8, <4 x ptr> %93, i64 8 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %107 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %107, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %108 = fmul <4 x double> %wide.masked.gather20, %103 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather19, <4 x double> %108) %110 = fmul <4 x double> %wide.masked.gather12, %wide.masked.gather19 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather20, <4 x double> %110) %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %112 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %112, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %113 = fmul <4 x double> %wide.masked.gather22, %104 %114 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13, <4 x double> %wide.masked.gather21, <4 x double> %113) %115 = fmul <4 x double> %wide.masked.gather14, %wide.masked.gather21 %116 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13, <4 x double> %wide.masked.gather22, <4 x double> %115) %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %117 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %117, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %118 = fmul <4 x double> %wide.masked.gather24, %105 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15, <4 x double> %wide.masked.gather23, <4 x double> %118) %120 = fmul <4 x double> %wide.masked.gather16, %wide.masked.gather23 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15, <4 x double> %wide.masked.gather24, <4 x double> %120) %122 = fadd <4 x double> %wide.masked.gather17, %114 %123 = fadd <4 x double> %wide.masked.gather18, %116 %124 = fsub <4 x double> %wide.masked.gather17, %114 %125 = fsub <4 x double> %wide.masked.gather18, %116 %126 = fadd <4 x double> %109, %119 %127 = fadd <4 x double> %111, %121 %128 = fsub <4 x double> %109, %119 %129 = fsub <4 x double> %111, %121 %130 = fadd <4 x double> %122, %126 %131 = fadd <4 x double> %123, %127 %interleaved.vec25 = shufflevector <4 x double> %130, <4 x double> %131, <8 x i32> store <8 x double> %interleaved.vec25, ptr %buf.0, align 8, !noalias !4257 %132 = fsub <4 x double> %124, %129 %133 = fadd <4 x double> %125, %128 %interleaved.vec26 = shufflevector <4 x double> %132, <4 x double> %133, <8 x i32> store <8 x double> %interleaved.vec26, ptr %92, align 8, !noalias !4257 %134 = fsub <4 x double> %122, %126 %135 = fsub <4 x double> %123, %127 %interleaved.vec27 = shufflevector <4 x double> %134, <4 x double> %135, <8 x i32> store <8 x double> %interleaved.vec27, ptr %0, align 8, !noalias !4257 %136 = fadd <4 x double> %124, %129 %137 = fsub <4 x double> %125, %128 %interleaved.vec28 = shufflevector <4 x double> %136, <4 x double> %137, <8 x i32> store <8 x double> %interleaved.vec28, ptr %91, align 8, !noalias !4257 %138 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %139 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %140 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %140, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather13.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather14.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %142, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather15.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %143, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather16.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %144, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %145 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 2 %146 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 1 %147 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 3 %148 = fneg <4 x double> %wide.masked.gather12.1 %149 = fneg <4 x double> %wide.masked.gather14.1 %150 = fneg <4 x double> %wide.masked.gather16.1 %wide.masked.gather17.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %138, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %151 = getelementptr inbounds i8, <4 x ptr> %138, i64 8 %wide.masked.gather18.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %wide.masked.gather19.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %152 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 1, i32 1 %wide.masked.gather20.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %153 = fmul <4 x double> %wide.masked.gather20.1, %148 %154 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather19.1, <4 x double> %153) %155 = fmul <4 x double> %wide.masked.gather12.1, %wide.masked.gather19.1 %156 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather20.1, <4 x double> %155) %wide.masked.gather21.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %145, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %157 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 2, i32 1 %wide.masked.gather22.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %158 = fmul <4 x double> %wide.masked.gather22.1, %149 %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13.1, <4 x double> %wide.masked.gather21.1, <4 x double> %158) %160 = fmul <4 x double> %wide.masked.gather14.1, %wide.masked.gather21.1 %161 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13.1, <4 x double> %wide.masked.gather22.1, <4 x double> %160) %wide.masked.gather23.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 3, i32 1 %wide.masked.gather24.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !4257 %163 = fmul <4 x double> %wide.masked.gather24.1, %150 %164 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15.1, <4 x double> %wide.masked.gather23.1, <4 x double> %163) %165 = fmul <4 x double> %wide.masked.gather16.1, %wide.masked.gather23.1 %166 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15.1, <4 x double> %wide.masked.gather24.1, <4 x double> %165) %167 = fadd <4 x double> %wide.masked.gather17.1, %159 %168 = fadd <4 x double> %wide.masked.gather18.1, %161 %169 = fsub <4 x double> %wide.masked.gather17.1, %159 %170 = fsub <4 x double> %wide.masked.gather18.1, %161 %171 = fadd <4 x double> %154, %164 %172 = fadd <4 x double> %156, %166 %173 = fsub <4 x double> %154, %164 %174 = fsub <4 x double> %156, %166 %175 = fadd <4 x double> %167, %171 %176 = fadd <4 x double> %168, %172 %177 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec25.1 = shufflevector <4 x double> %175, <4 x double> %176, <8 x i32> store <8 x double> %interleaved.vec25.1, ptr %177, align 8, !noalias !4257 %178 = fsub <4 x double> %169, %174 %179 = fadd <4 x double> %170, %173 %180 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec26.1 = shufflevector <4 x double> %178, <4 x double> %179, <8 x i32> store <8 x double> %interleaved.vec26.1, ptr %180, align 8, !noalias !4257 %181 = fsub <4 x double> %167, %171 %182 = fsub <4 x double> %168, %172 %183 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec27.1 = shufflevector <4 x double> %181, <4 x double> %182, <8 x i32> store <8 x double> %interleaved.vec27.1, ptr %183, align 8, !noalias !4257 %184 = fadd <4 x double> %169, %174 %185 = fsub <4 x double> %170, %173 %186 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec28.1 = shufflevector <4 x double> %184, <4 x double> %185, <8 x i32> store <8 x double> %interleaved.vec28.1, ptr %186, align 8, !noalias !4257 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4257 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7e17c90e217eabfaE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hcf21a61aa3b0d7c6E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7e749c03fbc6e11dE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb09ac7953b13bb44E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h7edcbb1eb2b4e988E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4260 store i64 128, ptr %n.i, align 8, !noalias !4260 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4260 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4260 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4260 store ptr null, ptr %_16.i, align 8, !noalias !4260 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4260 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4260 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4260 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4260 store ptr null, ptr %_24.i, align 8, !noalias !4260 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4260 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4260 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4260 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4260 store ptr null, ptr %_32.i, align 8, !noalias !4260 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4260 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4260 store i64 %w.1, ptr %_34.i, align 8, !noalias !4260 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4260 store ptr null, ptr %_40.i, align 8, !noalias !4260 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4260 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !4260 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !4260 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !4260 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !4260 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !4260 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !4260 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !4260 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !4260 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !4260 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !4260 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !4260 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !4260 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !4260 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !4260 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !4260 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !4260 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !4260 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fadd <4 x double> %147, %152 %180 = fsub <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fsub <4 x double> %147, %152 %184 = fadd <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fadd <4 x double> %155, %160 %188 = fsub <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fsub <4 x double> %155, %160 %192 = fadd <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fadd <4 x double> %163, %168 %196 = fsub <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fsub <4 x double> %163, %168 %200 = fadd <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fadd <4 x double> %171, %176 %204 = fsub <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fsub <4 x double> %171, %176 %208 = fadd <4 x double> %172, %175 %209 = fadd <4 x double> %188, %187 %210 = fsub <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fsub <4 x double> %191, %192 %214 = fadd <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fadd <4 x double> %181, %190 %222 = fsub <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fsub <4 x double> %181, %190 %230 = fadd <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fadd <4 x double> %204, %203 %234 = fsub <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fsub <4 x double> %207, %208 %238 = fadd <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fadd <4 x double> %197, %206 %246 = fsub <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fsub <4 x double> %197, %206 %254 = fadd <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fadd <4 x double> %246, %245 %262 = fsub <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fsub <4 x double> %253, %254 %274 = fadd <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !4260 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !4260 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !4260 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !4260 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !4260 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !4260 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !4260 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !4260 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !4260 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !4260 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !4260 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !4260 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !4260 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !4260 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !4260 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !4260 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !4260 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !4260 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !4260 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !4260 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !4260 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !4260 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !4260 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !4260 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !4260 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !4260 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !4260 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !4260 %341 = fadd <4 x double> %225, %250 %342 = fsub <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !4260 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !4260 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !4260 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !4260 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !4260 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !4260 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !4260 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !4260 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !4260 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !4260 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !4260 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !4260 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !4260 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !4260 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !4260 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !4260 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !4260 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !4260 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !4260 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !4260 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !4260 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !4260 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !4260 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !4260 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !4260 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !4260 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !4260 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !4260 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !4260 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !4260 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !4260 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !4260 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !4260 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !4260 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !4260 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !4260 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !4260 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !4260 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !4260 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !4260 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !4260 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !4260 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !4260 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !4260 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !4260 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !4260 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !4260 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !4260 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !4260 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !4260 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !4260 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !4260 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !4260 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !4260 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !4260 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !4260 %469 = fsub <4 x double> %225, %250 %470 = fadd <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !4260 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !4260 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !4260 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !4260 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !4260 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !4260 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !4260 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !4260 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !4260 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !4260 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !4260 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !4260 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !4260 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !4260 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !4260 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !4260 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !4260 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !4260 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !4260 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !4260 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !4260 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !4260 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !4260 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !4260 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !4260 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !4260 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !4260 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !4260 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 8 br i1 %533, label %bb38.i.i.i.preheader, label %vector.body, !llvm.loop !4263 bb38.i.i.i.preheader: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb38.i.i.i.preheader %index81 = phi i64 [ 0, %bb38.i.i.i.preheader ], [ %index.next113, %vector.body80 ] %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index81 %542 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %index81 %543 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %index81 %544 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %index81 %545 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %index81 %546 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %index81 %547 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %index81 %548 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %index81 %wide.vec82 = load <8 x double>, ptr %541, align 8, !noalias !4260 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %542, align 8, !noalias !4260 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %543, align 8, !noalias !4260 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %544, align 8, !noalias !4260 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %545, align 8, !noalias !4260 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %546, align 8, !noalias !4260 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %547, align 8, !noalias !4260 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %548, align 8, !noalias !4260 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %549 = fadd <4 x double> %strided.vec83, %strided.vec95 %550 = fadd <4 x double> %strided.vec84, %strided.vec96 %551 = fsub <4 x double> %strided.vec83, %strided.vec95 %552 = fsub <4 x double> %strided.vec84, %strided.vec96 %553 = fadd <4 x double> %strided.vec89, %strided.vec101 %554 = fadd <4 x double> %strided.vec90, %strided.vec102 %555 = fsub <4 x double> %strided.vec89, %strided.vec101 %556 = fsub <4 x double> %strided.vec90, %strided.vec102 %557 = fadd <4 x double> %strided.vec86, %strided.vec98 %558 = fadd <4 x double> %strided.vec87, %strided.vec99 %559 = fsub <4 x double> %strided.vec86, %strided.vec98 %560 = fsub <4 x double> %strided.vec87, %strided.vec99 %561 = fadd <4 x double> %strided.vec92, %strided.vec104 %562 = fadd <4 x double> %strided.vec93, %strided.vec105 %563 = fsub <4 x double> %strided.vec92, %strided.vec104 %564 = fsub <4 x double> %strided.vec93, %strided.vec105 %565 = fadd <4 x double> %549, %553 %566 = fadd <4 x double> %550, %554 %567 = fadd <4 x double> %551, %556 %568 = fsub <4 x double> %552, %555 %569 = fsub <4 x double> %549, %553 %570 = fsub <4 x double> %550, %554 %571 = fsub <4 x double> %551, %556 %572 = fadd <4 x double> %552, %555 %573 = fadd <4 x double> %557, %561 %574 = fadd <4 x double> %558, %562 %575 = fadd <4 x double> %559, %564 %576 = fsub <4 x double> %560, %563 %577 = fadd <4 x double> %576, %575 %578 = fsub <4 x double> %576, %575 %579 = fmul <4 x double> %577, %580 = fmul <4 x double> %578, %581 = fsub <4 x double> %557, %561 %582 = fsub <4 x double> %558, %562 %583 = fsub <4 x double> %559, %564 %584 = fadd <4 x double> %560, %563 %585 = fsub <4 x double> %583, %584 %586 = fadd <4 x double> %584, %583 %587 = fmul <4 x double> %585, %588 = fmul <4 x double> %586, %589 = fadd <4 x double> %565, %573 %590 = fadd <4 x double> %566, %574 %591 = fadd <4 x double> %567, %579 %592 = fadd <4 x double> %568, %580 %593 = fadd <4 x double> %569, %582 %594 = fsub <4 x double> %570, %581 %595 = fsub <4 x double> %571, %587 %596 = fsub <4 x double> %572, %588 %597 = fsub <4 x double> %565, %573 %598 = fsub <4 x double> %566, %574 %599 = fsub <4 x double> %567, %579 %600 = fsub <4 x double> %568, %580 %601 = fsub <4 x double> %569, %582 %602 = fadd <4 x double> %570, %581 %603 = fadd <4 x double> %571, %587 %604 = fadd <4 x double> %572, %588 %605 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index81 %interleaved.vec = shufflevector <4 x double> %589, <4 x double> %590, <8 x i32> store <8 x double> %interleaved.vec, ptr %605, align 8, !noalias !4260 %606 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index81 %interleaved.vec106 = shufflevector <4 x double> %591, <4 x double> %592, <8 x i32> store <8 x double> %interleaved.vec106, ptr %606, align 8, !noalias !4260 %607 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index81 %interleaved.vec107 = shufflevector <4 x double> %593, <4 x double> %594, <8 x i32> store <8 x double> %interleaved.vec107, ptr %607, align 8, !noalias !4260 %608 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index81 %interleaved.vec108 = shufflevector <4 x double> %595, <4 x double> %596, <8 x i32> store <8 x double> %interleaved.vec108, ptr %608, align 8, !noalias !4260 %609 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index81 %interleaved.vec109 = shufflevector <4 x double> %597, <4 x double> %598, <8 x i32> store <8 x double> %interleaved.vec109, ptr %609, align 8, !noalias !4260 %610 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index81 %interleaved.vec110 = shufflevector <4 x double> %599, <4 x double> %600, <8 x i32> store <8 x double> %interleaved.vec110, ptr %610, align 8, !noalias !4260 %611 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index81 %interleaved.vec111 = shufflevector <4 x double> %601, <4 x double> %602, <8 x i32> store <8 x double> %interleaved.vec111, ptr %611, align 8, !noalias !4260 %612 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index81 %interleaved.vec112 = shufflevector <4 x double> %603, <4 x double> %604, <8 x i32> store <8 x double> %interleaved.vec112, ptr %612, align 8, !noalias !4260 %index.next113 = add nuw i64 %index81, 4 %613 = icmp eq i64 %index.next113, 16 br i1 %613, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb97096a5a9d1dfa8E.exit", label %vector.body80, !llvm.loop !4264 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb97096a5a9d1dfa8E.exit": ; preds = %vector.body80 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4260 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h809923997401ea54E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h1da3ddfd7de96da4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h812c46984bfa53abE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4265 store i64 256, ptr %n.i.i, align 8, !noalias !4265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4265 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4265 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4265 store ptr null, ptr %_16.i.i, align 8, !noalias !4265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4265 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4265 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4265 store ptr null, ptr %_24.i.i, align 8, !noalias !4265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4265 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4265 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4265 store ptr null, ptr %_32.i.i, align 8, !noalias !4265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4265 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4265 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4265 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5951d26f92667650E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4265 store ptr null, ptr %_40.i.i, align 8, !noalias !4265 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5951d26f92667650E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4265 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 br label %bb13.i.i.i.i bb13.i.i.i.i: ; preds = %bb13.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5951d26f92667650E.exit.i" %iter.i.i.i.sroa.22.0135.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5951d26f92667650E.exit.i" ], [ %5, %bb13.i.i.i.i ] %5 = add nuw nsw i64 %iter.i.i.i.sroa.22.0135.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0135.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0135.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0135.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.22.0135.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4270 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4270 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4270 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4270 %6 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %7 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %8 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %10 = bitcast <4 x double> %9 to <4 x i64> %11 = xor <4 x i64> %10, %12 = bitcast <4 x i64> %11 to <4 x double> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = fadd <4 x double> %6, %8 %15 = fsub <4 x double> %7, %13 %16 = fsub <4 x double> %6, %8 %17 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4270 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4270 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4270 store <4 x double> %17, ptr %_3.i.i.i.i.i, align 8, !noalias !4270 %exitcond.not.i = icmp eq i64 %5, 32 br i1 %exitcond.not.i, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i", label %bb13.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i": ; preds = %bb13.i.i.i.i %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 tail call void @llvm.experimental.noalias.scope.decl(metadata !4274) tail call void @llvm.experimental.noalias.scope.decl(metadata !4277) tail call void @llvm.experimental.noalias.scope.decl(metadata !4279) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %25 = add nuw nsw i64 %iter.sroa.104.02127.i.i, 1 %exitcond136.not.i = icmp eq i64 %25, 4 br i1 %exitcond136.not.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i" %iter.sroa.104.02127.i.i = phi i64 [ %25, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 3 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %33, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %34 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %35, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %36, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %37 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %38, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %39, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %40 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %41, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %42, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %43 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %44, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %45 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %45, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %46 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %47, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %48, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %49 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %50, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %51, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %52 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %53 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %53, align 8, !alias.scope !4279, !noalias !4281, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %54 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %55 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %57 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> zeroinitializer %58 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %40, <4 x double> poison, <4 x i32> zeroinitializer %64 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %65 = shufflevector <4 x double> %37, <4 x double> poison, <4 x i32> zeroinitializer %66 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %67 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %68, %bb58.i.i ] %68 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %69 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %70 = fmul <4 x double> %55, %69 %71 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %54, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %70) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %72 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %57, %72 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %73) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %75 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %76 = fmul <4 x double> %59, %75 %77 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %76) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %78 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %79) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %81 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %63, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %82) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %84 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %65, %84 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %64, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %85) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !4277, !noalias !4282 %87 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %88 = fmul <4 x double> %67, %87 %89 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %88) #23 %90 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %80 %91 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %80 %92 = fadd <4 x double> %74, %86 %93 = fsub <4 x double> %74, %86 %94 = bitcast <4 x double> %93 to <4 x i64> %95 = fsub <4 x double> %77, %89 %96 = bitcast <4 x double> %95 to <4 x i64> %97 = xor <4 x i64> %94, %98 = bitcast <4 x i64> %97 to <4 x double> %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = xor <4 x i64> %96, %101 = bitcast <4 x i64> %100 to <4 x double> %102 = shufflevector <4 x double> %101, <4 x double> poison, <4 x i32> %103 = fadd <4 x double> %71, %83 %104 = fsub <4 x double> %71, %83 %105 = fadd <4 x double> %77, %89 %106 = fadd <4 x double> %90, %92 %107 = fadd <4 x double> %103, %105 %108 = fadd <4 x double> %106, %107 store <4 x double> %108, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %109 = fsub <4 x double> %106, %107 store <4 x double> %109, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %110 = fsub <4 x double> %91, %99 %111 = fsub <4 x double> %104, %102 %112 = bitcast <4 x double> %111 to <4 x i64> %113 = xor <4 x i64> %112, %114 = bitcast <4 x i64> %113 to <4 x double> %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %116 = fadd <4 x double> %111, %115 %117 = fmul <4 x double> %116, %118 = fadd <4 x double> %110, %117 store <4 x double> %118, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %119 = fsub <4 x double> %110, %117 store <4 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %120 = fsub <4 x double> %90, %92 %121 = fsub <4 x double> %103, %105 %122 = bitcast <4 x double> %121 to <4 x i64> %123 = fadd <4 x double> %91, %99 %124 = fadd <4 x double> %104, %102 %125 = xor <4 x i64> %122, %126 = bitcast <4 x i64> %125 to <4 x double> %127 = shufflevector <4 x double> %126, <4 x double> poison, <4 x i32> %128 = fsub <4 x double> %120, %127 store <4 x double> %128, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %129 = fadd <4 x double> %120, %127 store <4 x double> %129, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %130 = bitcast <4 x double> %124 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %124, %133 %135 = fmul <4 x double> %134, %136 = fsub <4 x double> %123, %135 store <4 x double> %136, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %137 = fadd <4 x double> %123, %135 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4274, !noalias !4283 %exitcond.not.i.i = icmp eq i64 %68, 4 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4284) tail call void @llvm.experimental.noalias.scope.decl(metadata !4287) tail call void @llvm.experimental.noalias.scope.decl(metadata !4289) %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %140 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %141 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %142 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %143 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %144 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %146 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %147 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %148 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.106.01794.i.i = phi i64 [ %149, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %149 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %138, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %140, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i55.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i56.i = getelementptr inbounds %"fft_simd::c64x2", ptr %141, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %144, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %143, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %145, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %142, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %147, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %146, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i57.i = getelementptr inbounds %"fft_simd::c64x2", ptr %148, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !4289, !noalias !4291 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4289, !noalias !4291 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4289, !noalias !4291 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4289, !noalias !4291 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4289, !noalias !4291 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4289, !noalias !4291 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i57.i, align 8, !alias.scope !4289, !noalias !4291 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4287, !noalias !4292 %150 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %150, align 8, !alias.scope !4287, !noalias !4292 %151 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %151, align 8, !alias.scope !4287, !noalias !4292 %152 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %152, align 8, !alias.scope !4287, !noalias !4292 %153 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %153, align 8, !alias.scope !4287, !noalias !4292 %154 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %154, align 8, !alias.scope !4287, !noalias !4292 %155 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %155, align 8, !alias.scope !4287, !noalias !4292 %156 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %156, align 8, !alias.scope !4287, !noalias !4292 %157 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %158 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %161 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %162 = fmul <4 x double> %161, %159 %163 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %160, <4 x double> %158, <4 x double> %162) #23 %164 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %167 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %168 = fmul <4 x double> %167, %165 %169 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %166, <4 x double> %164, <4 x double> %168) #23 %170 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %171 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %172 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %173 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %174 = fmul <4 x double> %173, %171 %175 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %172, <4 x double> %170, <4 x double> %174) #23 %176 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %179 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %180 = fmul <4 x double> %179, %177 %181 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %178, <4 x double> %176, <4 x double> %180) #23 %182 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %183 = shufflevector <4 x double> %182, <4 x double> poison, <4 x i32> %184 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %185, %183 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %182, <4 x double> %186) #23 %188 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %189 = shufflevector <4 x double> %188, <4 x double> poison, <4 x i32> %190 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %191 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %192 = fmul <4 x double> %191, %189 %193 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %190, <4 x double> %188, <4 x double> %192) #23 %194 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %197 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %198 = fmul <4 x double> %197, %195 %199 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %196, <4 x double> %194, <4 x double> %198) #23 %200 = fadd <4 x double> %157, %181 %201 = fsub <4 x double> %157, %181 %202 = fadd <4 x double> %169, %193 %203 = fsub <4 x double> %169, %193 %204 = bitcast <4 x double> %203 to <4 x i64> %205 = fsub <4 x double> %175, %199 %206 = bitcast <4 x double> %205 to <4 x i64> %207 = xor <4 x i64> %204, %208 = bitcast <4 x i64> %207 to <4 x double> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = xor <4 x i64> %206, %211 = bitcast <4 x i64> %210 to <4 x double> %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fadd <4 x double> %163, %187 %214 = fsub <4 x double> %163, %187 %215 = fadd <4 x double> %175, %199 %216 = fadd <4 x double> %200, %202 %217 = fadd <4 x double> %213, %215 %218 = fadd <4 x double> %216, %217 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4284, !noalias !4293 %219 = fsub <4 x double> %216, %217 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i53.i, align 8, !alias.scope !4284, !noalias !4293 %220 = fsub <4 x double> %201, %209 %221 = fsub <4 x double> %214, %212 %222 = bitcast <4 x double> %221 to <4 x i64> %223 = xor <4 x i64> %222, %224 = bitcast <4 x i64> %223 to <4 x double> %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fadd <4 x double> %221, %225 %227 = fmul <4 x double> %226, %228 = fadd <4 x double> %220, %227 store <4 x double> %228, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4284, !noalias !4293 %229 = fsub <4 x double> %220, %227 store <4 x double> %229, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i, align 8, !alias.scope !4284, !noalias !4293 %230 = fsub <4 x double> %200, %202 %231 = fsub <4 x double> %213, %215 %232 = bitcast <4 x double> %231 to <4 x i64> %233 = fadd <4 x double> %201, %209 %234 = fadd <4 x double> %214, %212 %235 = xor <4 x i64> %232, %236 = bitcast <4 x i64> %235 to <4 x double> %237 = shufflevector <4 x double> %236, <4 x double> poison, <4 x i32> %238 = fsub <4 x double> %230, %237 store <4 x double> %238, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i, align 8, !alias.scope !4284, !noalias !4293 %239 = fadd <4 x double> %230, %237 store <4 x double> %239, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i55.i, align 8, !alias.scope !4284, !noalias !4293 %240 = bitcast <4 x double> %234 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %234, %243 %245 = fmul <4 x double> %244, %246 = fsub <4 x double> %233, %245 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i52.i, align 8, !alias.scope !4284, !noalias !4293 %247 = fadd <4 x double> %233, %245 store <4 x double> %247, ptr %_3.i.i.i.i.i.i.i.i.i.i.i56.i, align 8, !alias.scope !4284, !noalias !4293 %exitcond.not.i58.i = icmp eq i64 %149, 16 br i1 %exitcond.not.i58.i, label %_ZN4pulp3x862V39vectorize6__impl17hed346dbf9f10e565E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17hed346dbf9f10e565E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4265 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h81ce9b9021fd41deE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4294 store i64 512, ptr %n.i, align 8, !noalias !4294 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4294 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4294 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4294 store ptr null, ptr %_16.i, align 8, !noalias !4294 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4294 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4294 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4294 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4294 store ptr null, ptr %_24.i, align 8, !noalias !4294 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4294 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4294 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4294 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4294 store ptr null, ptr %_32.i, align 8, !noalias !4294 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4294 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4294 store i64 %w.1, ptr %_34.i, align 8, !noalias !4294 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %bb9.i.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4294 store ptr null, ptr %_40.i, align 8, !noalias !4294 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4294 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !4294 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !4294 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !4294 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !4294 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !4294 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !4294 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !4294 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !4294 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 256 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit, label %vector.body, !llvm.loop !4297 _ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %15 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i148.i = load double, ptr %15, align 8, !noalias !4294, !noundef !3 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i149.i = load double, ptr %16, align 8, !noalias !4294, !noundef !3 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %_6.i.i.i58.i164.i = fneg double %w1.1.i.i43.i149.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %_ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit %index11 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit ], [ %index.next24, %vector.body10 ] %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index11 %19 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index11 %wide.vec12 = load <8 x double>, ptr %18, align 8, !noalias !4294 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %19, align 8, !noalias !4294 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %20 = fmul <4 x double> %strided.vec17, %broadcast.splat %21 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %20) %22 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %23 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %22) %24 = fadd <4 x double> %strided.vec13, %21 %25 = fadd <4 x double> %strided.vec14, %23 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index11 %interleaved.vec22 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec22, ptr %26, align 8, !noalias !4294 %27 = fsub <4 x double> %strided.vec13, %21 %28 = fsub <4 x double> %strided.vec14, %23 %29 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index11 %interleaved.vec23 = shufflevector <4 x double> %27, <4 x double> %28, <8 x i32> store <8 x double> %interleaved.vec23, ptr %29, align 8, !noalias !4294 %index.next24 = add nuw i64 %index11, 4 %30 = icmp eq i64 %index.next24, 128 br i1 %30, label %bb15.i.i31.i137.i.loopexit, label %vector.body10, !llvm.loop !4298 bb15.i.i31.i137.i.loopexit: ; preds = %vector.body10 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %31 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.i.i42.i148.i.1 = load double, ptr %31, align 8, !noalias !4294, !noundef !3 %32 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.i.i43.i149.i.1 = load double, ptr %32, align 8, !noalias !4294, !noundef !3 %33 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %_6.i.i.i58.i164.i.1 = fneg double %w1.1.i.i43.i149.i.1 %broadcast.splatinsert37 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i.1, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert39 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i.1, i64 0 %broadcast.splat40 = shufflevector <4 x double> %broadcast.splatinsert39, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert41 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i.1, i64 0 %broadcast.splat42 = shufflevector <4 x double> %broadcast.splatinsert41, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body29 vector.body29: ; preds = %vector.body29, %bb15.i.i31.i137.i.loopexit %index30 = phi i64 [ 0, %bb15.i.i31.i137.i.loopexit ], [ %index.next45, %vector.body29 ] %34 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index30 %35 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %index30 %wide.vec31 = load <8 x double>, ptr %34, align 8, !noalias !4294 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %35, align 8, !noalias !4294 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %36 = fmul <4 x double> %strided.vec36, %broadcast.splat38 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35, <4 x double> %36) %38 = fmul <4 x double> %broadcast.splat42, %strided.vec35 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36, <4 x double> %38) %40 = fadd <4 x double> %strided.vec32, %37 %41 = fadd <4 x double> %strided.vec33, %39 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index30 %interleaved.vec43 = shufflevector <4 x double> %40, <4 x double> %41, <8 x i32> store <8 x double> %interleaved.vec43, ptr %42, align 8, !noalias !4294 %43 = fsub <4 x double> %strided.vec32, %37 %44 = fsub <4 x double> %strided.vec33, %39 %45 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.1, i64 %index30 %interleaved.vec44 = shufflevector <4 x double> %43, <4 x double> %44, <8 x i32> store <8 x double> %interleaved.vec44, ptr %45, align 8, !noalias !4294 %index.next45 = add nuw i64 %index30, 4 %46 = icmp eq i64 %index.next45, 128 br i1 %46, label %bb15.i.i31.i137.i.loopexit.1, label %vector.body29, !llvm.loop !4299 bb15.i.i31.i137.i.loopexit.1: ; preds = %vector.body29 %47 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %broadcast.splatinsert58 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i, i64 0 %broadcast.splat59 = shufflevector <4 x double> %broadcast.splatinsert58, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body50 vector.body50: ; preds = %vector.body50, %bb15.i.i31.i137.i.loopexit.1 %index51 = phi i64 [ 0, %bb15.i.i31.i137.i.loopexit.1 ], [ %index.next66, %vector.body50 ] %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index51 %49 = getelementptr inbounds %"num_complex::Complex", ptr %47, i64 %index51 %wide.vec52 = load <8 x double>, ptr %48, align 8, !noalias !4294 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %49, align 8, !noalias !4294 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %50 = fmul <4 x double> %strided.vec57, %broadcast.splat59 %51 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56, <4 x double> %50) %52 = fmul <4 x double> %broadcast.splat63, %strided.vec56 %53 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57, <4 x double> %52) %54 = fadd <4 x double> %strided.vec53, %51 %55 = fadd <4 x double> %strided.vec54, %53 %56 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index51 %interleaved.vec64 = shufflevector <4 x double> %54, <4 x double> %55, <8 x i32> store <8 x double> %interleaved.vec64, ptr %56, align 8, !noalias !4294 %57 = fsub <4 x double> %strided.vec53, %51 %58 = fsub <4 x double> %strided.vec54, %53 %59 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index51 %interleaved.vec65 = shufflevector <4 x double> %57, <4 x double> %58, <8 x i32> store <8 x double> %interleaved.vec65, ptr %59, align 8, !noalias !4294 %index.next66 = add nuw i64 %index51, 4 %60 = icmp eq i64 %index.next66, 64 br i1 %60, label %bb15.i.i.i183.i.loopexit, label %vector.body50, !llvm.loop !4300 bb15.i.i.i183.i.loopexit: ; preds = %vector.body50 %data.i.i.i.i.i.i.i.i206.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i220.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i194.i.1 = load double, ptr %61, align 8, !noalias !4294, !noundef !3 %62 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i195.i.1 = load double, ptr %62, align 8, !noalias !4294, !noundef !3 %63 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %_6.i.i.i.i210.i.1 = fneg double %w1.1.i.i.i195.i.1 %broadcast.splatinsert79 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert81 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.1, i64 0 %broadcast.splat82 = shufflevector <4 x double> %broadcast.splatinsert81, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert83 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.1, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body71 vector.body71: ; preds = %vector.body71, %bb15.i.i.i183.i.loopexit %index72 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit ], [ %index.next87, %vector.body71 ] %64 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index72 %65 = getelementptr inbounds %"num_complex::Complex", ptr %63, i64 %index72 %wide.vec73 = load <8 x double>, ptr %64, align 8, !noalias !4294 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %65, align 8, !noalias !4294 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec78, %broadcast.splat80 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat84, %strided.vec77 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78, <4 x double> %68) %70 = fadd <4 x double> %strided.vec74, %67 %71 = fadd <4 x double> %strided.vec75, %69 %72 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i206.1, i64 %index72 %interleaved.vec85 = shufflevector <4 x double> %70, <4 x double> %71, <8 x i32> store <8 x double> %interleaved.vec85, ptr %72, align 8, !noalias !4294 %73 = fsub <4 x double> %strided.vec74, %67 %74 = fsub <4 x double> %strided.vec75, %69 %75 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i220.1, i64 %index72 %interleaved.vec86 = shufflevector <4 x double> %73, <4 x double> %74, <8 x i32> store <8 x double> %interleaved.vec86, ptr %75, align 8, !noalias !4294 %index.next87 = add nuw i64 %index72, 4 %76 = icmp eq i64 %index.next87, 64 br i1 %76, label %bb15.i.i.i183.i.loopexit.1, label %vector.body71, !llvm.loop !4301 bb15.i.i.i183.i.loopexit.1: ; preds = %vector.body71 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %broadcast.splatinsert100 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i.1, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert102 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i.1, i64 0 %broadcast.splat103 = shufflevector <4 x double> %broadcast.splatinsert102, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert104 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i.1, i64 0 %broadcast.splat105 = shufflevector <4 x double> %broadcast.splatinsert104, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body92 vector.body92: ; preds = %vector.body92, %bb15.i.i.i183.i.loopexit.1 %index93 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit.1 ], [ %index.next108, %vector.body92 ] %78 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index93 %79 = getelementptr inbounds %"num_complex::Complex", ptr %77, i64 %index93 %wide.vec94 = load <8 x double>, ptr %78, align 8, !noalias !4294 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %79, align 8, !noalias !4294 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %80 = fmul <4 x double> %strided.vec99, %broadcast.splat101 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98, <4 x double> %80) %82 = fmul <4 x double> %broadcast.splat105, %strided.vec98 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99, <4 x double> %82) %84 = fadd <4 x double> %strided.vec95, %81 %85 = fadd <4 x double> %strided.vec96, %83 %86 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index93 %interleaved.vec106 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> store <8 x double> %interleaved.vec106, ptr %86, align 8, !noalias !4294 %87 = fsub <4 x double> %strided.vec95, %81 %88 = fsub <4 x double> %strided.vec96, %83 %89 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %index93 %interleaved.vec107 = shufflevector <4 x double> %87, <4 x double> %88, <8 x i32> store <8 x double> %interleaved.vec107, ptr %89, align 8, !noalias !4294 %index.next108 = add nuw i64 %index93, 4 %90 = icmp eq i64 %index.next108, 64 br i1 %90, label %bb15.i.i.i183.i.loopexit.2, label %vector.body92, !llvm.loop !4302 bb15.i.i.i183.i.loopexit.2: ; preds = %vector.body92 %data.i.i.i.i.i.i.i.i206.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %data.i.i.i.i.i.i216.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %data.i5.i.i.i.i.i.i.i220.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %91 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.i.i.i194.i.3 = load double, ptr %91, align 8, !noalias !4294, !noundef !3 %92 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.i.i.i195.i.3 = load double, ptr %92, align 8, !noalias !4294, !noundef !3 %93 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %_6.i.i.i.i210.i.3 = fneg double %w1.1.i.i.i195.i.3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.3, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.3, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.3, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body113 vector.body113: ; preds = %vector.body113, %bb15.i.i.i183.i.loopexit.2 %index114 = phi i64 [ 0, %bb15.i.i.i183.i.loopexit.2 ], [ %index.next129, %vector.body113 ] %94 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i216.3, i64 %index114 %95 = getelementptr inbounds %"num_complex::Complex", ptr %93, i64 %index114 %wide.vec115 = load <8 x double>, ptr %94, align 8, !noalias !4294 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %95, align 8, !noalias !4294 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %96 = fmul <4 x double> %strided.vec120, %broadcast.splat122 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119, <4 x double> %96) %98 = fmul <4 x double> %broadcast.splat126, %strided.vec119 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120, <4 x double> %98) %100 = fadd <4 x double> %strided.vec116, %97 %101 = fadd <4 x double> %strided.vec117, %99 %102 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i206.3, i64 %index114 %interleaved.vec127 = shufflevector <4 x double> %100, <4 x double> %101, <8 x i32> store <8 x double> %interleaved.vec127, ptr %102, align 8, !noalias !4294 %103 = fsub <4 x double> %strided.vec116, %97 %104 = fsub <4 x double> %strided.vec117, %99 %105 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i220.3, i64 %index114 %interleaved.vec128 = shufflevector <4 x double> %103, <4 x double> %104, <8 x i32> store <8 x double> %interleaved.vec128, ptr %105, align 8, !noalias !4294 %index.next129 = add nuw i64 %index114, 4 %106 = icmp eq i64 %index.next129, 64 br i1 %106, label %vector.body134, label %vector.body113, !llvm.loop !4303 vector.body134: ; preds = %vector.body113 %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %107 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %wide.vec136 = load <8 x double>, ptr %buf.0, align 8, !noalias !4294 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %107, align 8, !noalias !4294 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %108 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %108) %110 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %110) %112 = fadd <4 x double> %strided.vec137, %109 %113 = fadd <4 x double> %strided.vec138, %111 %interleaved.vec148 = shufflevector <4 x double> %112, <4 x double> %113, <8 x i32> store <8 x double> %interleaved.vec148, ptr %scratch.0, align 8, !noalias !4294 %114 = fsub <4 x double> %strided.vec137, %109 %115 = fsub <4 x double> %strided.vec138, %111 %interleaved.vec149 = shufflevector <4 x double> %114, <4 x double> %115, <8 x i32> store <8 x double> %interleaved.vec149, ptr %14, align 8, !noalias !4294 %116 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %117 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %wide.vec136.1 = load <8 x double>, ptr %116, align 8, !noalias !4294 %strided.vec137.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %strided.vec138.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %wide.vec139.1 = load <8 x double>, ptr %117, align 8, !noalias !4294 %strided.vec140.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %strided.vec141.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %118 = fmul <4 x double> %strided.vec141.1, %broadcast.splat143 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.1, <4 x double> %118) %120 = fmul <4 x double> %broadcast.splat147, %strided.vec140.1 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.1, <4 x double> %120) %122 = fadd <4 x double> %strided.vec137.1, %119 %123 = fadd <4 x double> %strided.vec138.1, %121 %124 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec148.1 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec148.1, ptr %124, align 8, !noalias !4294 %125 = fsub <4 x double> %strided.vec137.1, %119 %126 = fsub <4 x double> %strided.vec138.1, %121 %127 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 260 %interleaved.vec149.1 = shufflevector <4 x double> %125, <4 x double> %126, <8 x i32> store <8 x double> %interleaved.vec149.1, ptr %127, align 8, !noalias !4294 %128 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %129 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %wide.vec136.2 = load <8 x double>, ptr %128, align 8, !noalias !4294 %strided.vec137.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %strided.vec138.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %wide.vec139.2 = load <8 x double>, ptr %129, align 8, !noalias !4294 %strided.vec140.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %strided.vec141.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %130 = fmul <4 x double> %strided.vec141.2, %broadcast.splat143 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.2, <4 x double> %130) %132 = fmul <4 x double> %broadcast.splat147, %strided.vec140.2 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.2, <4 x double> %132) %134 = fadd <4 x double> %strided.vec137.2, %131 %135 = fadd <4 x double> %strided.vec138.2, %133 %136 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec148.2 = shufflevector <4 x double> %134, <4 x double> %135, <8 x i32> store <8 x double> %interleaved.vec148.2, ptr %136, align 8, !noalias !4294 %137 = fsub <4 x double> %strided.vec137.2, %131 %138 = fsub <4 x double> %strided.vec138.2, %133 %139 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 264 %interleaved.vec149.2 = shufflevector <4 x double> %137, <4 x double> %138, <8 x i32> store <8 x double> %interleaved.vec149.2, ptr %139, align 8, !noalias !4294 %140 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %141 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %wide.vec136.3 = load <8 x double>, ptr %140, align 8, !noalias !4294 %strided.vec137.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %strided.vec138.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %wide.vec139.3 = load <8 x double>, ptr %141, align 8, !noalias !4294 %strided.vec140.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %strided.vec141.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %142 = fmul <4 x double> %strided.vec141.3, %broadcast.splat143 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.3, <4 x double> %142) %144 = fmul <4 x double> %broadcast.splat147, %strided.vec140.3 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.3, <4 x double> %144) %146 = fadd <4 x double> %strided.vec137.3, %143 %147 = fadd <4 x double> %strided.vec138.3, %145 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec148.3 = shufflevector <4 x double> %146, <4 x double> %147, <8 x i32> store <8 x double> %interleaved.vec148.3, ptr %148, align 8, !noalias !4294 %149 = fsub <4 x double> %strided.vec137.3, %143 %150 = fsub <4 x double> %strided.vec138.3, %145 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 268 %interleaved.vec149.3 = shufflevector <4 x double> %149, <4 x double> %150, <8 x i32> store <8 x double> %interleaved.vec149.3, ptr %151, align 8, !noalias !4294 %152 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %153 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec136.4 = load <8 x double>, ptr %152, align 8, !noalias !4294 %strided.vec137.4 = shufflevector <8 x double> %wide.vec136.4, <8 x double> poison, <4 x i32> %strided.vec138.4 = shufflevector <8 x double> %wide.vec136.4, <8 x double> poison, <4 x i32> %wide.vec139.4 = load <8 x double>, ptr %153, align 8, !noalias !4294 %strided.vec140.4 = shufflevector <8 x double> %wide.vec139.4, <8 x double> poison, <4 x i32> %strided.vec141.4 = shufflevector <8 x double> %wide.vec139.4, <8 x double> poison, <4 x i32> %154 = fmul <4 x double> %strided.vec141.4, %broadcast.splat143 %155 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.4, <4 x double> %154) %156 = fmul <4 x double> %broadcast.splat147, %strided.vec140.4 %157 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.4, <4 x double> %156) %158 = fadd <4 x double> %strided.vec137.4, %155 %159 = fadd <4 x double> %strided.vec138.4, %157 %160 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %interleaved.vec148.4 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> store <8 x double> %interleaved.vec148.4, ptr %160, align 8, !noalias !4294 %161 = fsub <4 x double> %strided.vec137.4, %155 %162 = fsub <4 x double> %strided.vec138.4, %157 %163 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 272 %interleaved.vec149.4 = shufflevector <4 x double> %161, <4 x double> %162, <8 x i32> store <8 x double> %interleaved.vec149.4, ptr %163, align 8, !noalias !4294 %164 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %165 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec136.5 = load <8 x double>, ptr %164, align 8, !noalias !4294 %strided.vec137.5 = shufflevector <8 x double> %wide.vec136.5, <8 x double> poison, <4 x i32> %strided.vec138.5 = shufflevector <8 x double> %wide.vec136.5, <8 x double> poison, <4 x i32> %wide.vec139.5 = load <8 x double>, ptr %165, align 8, !noalias !4294 %strided.vec140.5 = shufflevector <8 x double> %wide.vec139.5, <8 x double> poison, <4 x i32> %strided.vec141.5 = shufflevector <8 x double> %wide.vec139.5, <8 x double> poison, <4 x i32> %166 = fmul <4 x double> %strided.vec141.5, %broadcast.splat143 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.5, <4 x double> %166) %168 = fmul <4 x double> %broadcast.splat147, %strided.vec140.5 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.5, <4 x double> %168) %170 = fadd <4 x double> %strided.vec137.5, %167 %171 = fadd <4 x double> %strided.vec138.5, %169 %172 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec148.5 = shufflevector <4 x double> %170, <4 x double> %171, <8 x i32> store <8 x double> %interleaved.vec148.5, ptr %172, align 8, !noalias !4294 %173 = fsub <4 x double> %strided.vec137.5, %167 %174 = fsub <4 x double> %strided.vec138.5, %169 %175 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 276 %interleaved.vec149.5 = shufflevector <4 x double> %173, <4 x double> %174, <8 x i32> store <8 x double> %interleaved.vec149.5, ptr %175, align 8, !noalias !4294 %176 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %177 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec136.6 = load <8 x double>, ptr %176, align 8, !noalias !4294 %strided.vec137.6 = shufflevector <8 x double> %wide.vec136.6, <8 x double> poison, <4 x i32> %strided.vec138.6 = shufflevector <8 x double> %wide.vec136.6, <8 x double> poison, <4 x i32> %wide.vec139.6 = load <8 x double>, ptr %177, align 8, !noalias !4294 %strided.vec140.6 = shufflevector <8 x double> %wide.vec139.6, <8 x double> poison, <4 x i32> %strided.vec141.6 = shufflevector <8 x double> %wide.vec139.6, <8 x double> poison, <4 x i32> %178 = fmul <4 x double> %strided.vec141.6, %broadcast.splat143 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.6, <4 x double> %178) %180 = fmul <4 x double> %broadcast.splat147, %strided.vec140.6 %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.6, <4 x double> %180) %182 = fadd <4 x double> %strided.vec137.6, %179 %183 = fadd <4 x double> %strided.vec138.6, %181 %184 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec148.6 = shufflevector <4 x double> %182, <4 x double> %183, <8 x i32> store <8 x double> %interleaved.vec148.6, ptr %184, align 8, !noalias !4294 %185 = fsub <4 x double> %strided.vec137.6, %179 %186 = fsub <4 x double> %strided.vec138.6, %181 %187 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 280 %interleaved.vec149.6 = shufflevector <4 x double> %185, <4 x double> %186, <8 x i32> store <8 x double> %interleaved.vec149.6, ptr %187, align 8, !noalias !4294 %188 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %189 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec136.7 = load <8 x double>, ptr %188, align 8, !noalias !4294 %strided.vec137.7 = shufflevector <8 x double> %wide.vec136.7, <8 x double> poison, <4 x i32> %strided.vec138.7 = shufflevector <8 x double> %wide.vec136.7, <8 x double> poison, <4 x i32> %wide.vec139.7 = load <8 x double>, ptr %189, align 8, !noalias !4294 %strided.vec140.7 = shufflevector <8 x double> %wide.vec139.7, <8 x double> poison, <4 x i32> %strided.vec141.7 = shufflevector <8 x double> %wide.vec139.7, <8 x double> poison, <4 x i32> %190 = fmul <4 x double> %strided.vec141.7, %broadcast.splat143 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.7, <4 x double> %190) %192 = fmul <4 x double> %broadcast.splat147, %strided.vec140.7 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.7, <4 x double> %192) %194 = fadd <4 x double> %strided.vec137.7, %191 %195 = fadd <4 x double> %strided.vec138.7, %193 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec148.7 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> store <8 x double> %interleaved.vec148.7, ptr %196, align 8, !noalias !4294 %197 = fsub <4 x double> %strided.vec137.7, %191 %198 = fsub <4 x double> %strided.vec138.7, %193 %199 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 284 %interleaved.vec149.7 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec149.7, ptr %199, align 8, !noalias !4294 %200 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.i.i241.i.1 = load double, ptr %200, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w1.1.i.i241.i.1, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer %201 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.i.i240.i.1 = load double, ptr %201, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w1.0.i.i240.i.1, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i256.i.1 = fneg double %w1.1.i.i241.i.1 %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i.i.i256.i.1, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %202 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i392.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 288 %data.i.i.i.i.i.i.i.i378.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec157 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i206.1, align 8, !noalias !4294 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %202, align 8, !noalias !4294 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %203 = fmul <4 x double> %strided.vec162, %broadcast.splat164 %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161, <4 x double> %203) %205 = fmul <4 x double> %broadcast.splat168, %strided.vec161 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162, <4 x double> %205) %207 = fadd <4 x double> %strided.vec158, %204 %208 = fadd <4 x double> %strided.vec159, %206 %interleaved.vec169 = shufflevector <4 x double> %207, <4 x double> %208, <8 x i32> store <8 x double> %interleaved.vec169, ptr %data.i.i.i.i.i.i.i.i378.1, align 8, !noalias !4294 %209 = fsub <4 x double> %strided.vec158, %204 %210 = fsub <4 x double> %strided.vec159, %206 %interleaved.vec170 = shufflevector <4 x double> %209, <4 x double> %210, <8 x i32> store <8 x double> %interleaved.vec170, ptr %data.i5.i.i.i.i.i.i.i392.1, align 8, !noalias !4294 %211 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %212 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %wide.vec157.1 = load <8 x double>, ptr %211, align 8, !noalias !4294 %strided.vec158.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %strided.vec159.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %wide.vec160.1 = load <8 x double>, ptr %212, align 8, !noalias !4294 %strided.vec161.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %strided.vec162.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %213 = fmul <4 x double> %strided.vec162.1, %broadcast.splat164 %214 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.1, <4 x double> %213) %215 = fmul <4 x double> %broadcast.splat168, %strided.vec161.1 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.1, <4 x double> %215) %217 = fadd <4 x double> %strided.vec158.1, %214 %218 = fadd <4 x double> %strided.vec159.1, %216 %219 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec169.1 = shufflevector <4 x double> %217, <4 x double> %218, <8 x i32> store <8 x double> %interleaved.vec169.1, ptr %219, align 8, !noalias !4294 %220 = fsub <4 x double> %strided.vec158.1, %214 %221 = fsub <4 x double> %strided.vec159.1, %216 %222 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 292 %interleaved.vec170.1 = shufflevector <4 x double> %220, <4 x double> %221, <8 x i32> store <8 x double> %interleaved.vec170.1, ptr %222, align 8, !noalias !4294 %223 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %224 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %wide.vec157.2 = load <8 x double>, ptr %223, align 8, !noalias !4294 %strided.vec158.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %strided.vec159.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %wide.vec160.2 = load <8 x double>, ptr %224, align 8, !noalias !4294 %strided.vec161.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %strided.vec162.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %225 = fmul <4 x double> %strided.vec162.2, %broadcast.splat164 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.2, <4 x double> %225) %227 = fmul <4 x double> %broadcast.splat168, %strided.vec161.2 %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.2, <4 x double> %227) %229 = fadd <4 x double> %strided.vec158.2, %226 %230 = fadd <4 x double> %strided.vec159.2, %228 %231 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec169.2 = shufflevector <4 x double> %229, <4 x double> %230, <8 x i32> store <8 x double> %interleaved.vec169.2, ptr %231, align 8, !noalias !4294 %232 = fsub <4 x double> %strided.vec158.2, %226 %233 = fsub <4 x double> %strided.vec159.2, %228 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 296 %interleaved.vec170.2 = shufflevector <4 x double> %232, <4 x double> %233, <8 x i32> store <8 x double> %interleaved.vec170.2, ptr %234, align 8, !noalias !4294 %235 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %236 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %wide.vec157.3 = load <8 x double>, ptr %235, align 8, !noalias !4294 %strided.vec158.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %strided.vec159.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %wide.vec160.3 = load <8 x double>, ptr %236, align 8, !noalias !4294 %strided.vec161.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %strided.vec162.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %237 = fmul <4 x double> %strided.vec162.3, %broadcast.splat164 %238 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.3, <4 x double> %237) %239 = fmul <4 x double> %broadcast.splat168, %strided.vec161.3 %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.3, <4 x double> %239) %241 = fadd <4 x double> %strided.vec158.3, %238 %242 = fadd <4 x double> %strided.vec159.3, %240 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec169.3 = shufflevector <4 x double> %241, <4 x double> %242, <8 x i32> store <8 x double> %interleaved.vec169.3, ptr %243, align 8, !noalias !4294 %244 = fsub <4 x double> %strided.vec158.3, %238 %245 = fsub <4 x double> %strided.vec159.3, %240 %246 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 300 %interleaved.vec170.3 = shufflevector <4 x double> %244, <4 x double> %245, <8 x i32> store <8 x double> %interleaved.vec170.3, ptr %246, align 8, !noalias !4294 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %248 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %wide.vec157.4 = load <8 x double>, ptr %247, align 8, !noalias !4294 %strided.vec158.4 = shufflevector <8 x double> %wide.vec157.4, <8 x double> poison, <4 x i32> %strided.vec159.4 = shufflevector <8 x double> %wide.vec157.4, <8 x double> poison, <4 x i32> %wide.vec160.4 = load <8 x double>, ptr %248, align 8, !noalias !4294 %strided.vec161.4 = shufflevector <8 x double> %wide.vec160.4, <8 x double> poison, <4 x i32> %strided.vec162.4 = shufflevector <8 x double> %wide.vec160.4, <8 x double> poison, <4 x i32> %249 = fmul <4 x double> %strided.vec162.4, %broadcast.splat164 %250 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.4, <4 x double> %249) %251 = fmul <4 x double> %broadcast.splat168, %strided.vec161.4 %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.4, <4 x double> %251) %253 = fadd <4 x double> %strided.vec158.4, %250 %254 = fadd <4 x double> %strided.vec159.4, %252 %255 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %interleaved.vec169.4 = shufflevector <4 x double> %253, <4 x double> %254, <8 x i32> store <8 x double> %interleaved.vec169.4, ptr %255, align 8, !noalias !4294 %256 = fsub <4 x double> %strided.vec158.4, %250 %257 = fsub <4 x double> %strided.vec159.4, %252 %258 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 304 %interleaved.vec170.4 = shufflevector <4 x double> %256, <4 x double> %257, <8 x i32> store <8 x double> %interleaved.vec170.4, ptr %258, align 8, !noalias !4294 %259 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %260 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %wide.vec157.5 = load <8 x double>, ptr %259, align 8, !noalias !4294 %strided.vec158.5 = shufflevector <8 x double> %wide.vec157.5, <8 x double> poison, <4 x i32> %strided.vec159.5 = shufflevector <8 x double> %wide.vec157.5, <8 x double> poison, <4 x i32> %wide.vec160.5 = load <8 x double>, ptr %260, align 8, !noalias !4294 %strided.vec161.5 = shufflevector <8 x double> %wide.vec160.5, <8 x double> poison, <4 x i32> %strided.vec162.5 = shufflevector <8 x double> %wide.vec160.5, <8 x double> poison, <4 x i32> %261 = fmul <4 x double> %strided.vec162.5, %broadcast.splat164 %262 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.5, <4 x double> %261) %263 = fmul <4 x double> %broadcast.splat168, %strided.vec161.5 %264 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.5, <4 x double> %263) %265 = fadd <4 x double> %strided.vec158.5, %262 %266 = fadd <4 x double> %strided.vec159.5, %264 %267 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec169.5 = shufflevector <4 x double> %265, <4 x double> %266, <8 x i32> store <8 x double> %interleaved.vec169.5, ptr %267, align 8, !noalias !4294 %268 = fsub <4 x double> %strided.vec158.5, %262 %269 = fsub <4 x double> %strided.vec159.5, %264 %270 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 308 %interleaved.vec170.5 = shufflevector <4 x double> %268, <4 x double> %269, <8 x i32> store <8 x double> %interleaved.vec170.5, ptr %270, align 8, !noalias !4294 %271 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %272 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %wide.vec157.6 = load <8 x double>, ptr %271, align 8, !noalias !4294 %strided.vec158.6 = shufflevector <8 x double> %wide.vec157.6, <8 x double> poison, <4 x i32> %strided.vec159.6 = shufflevector <8 x double> %wide.vec157.6, <8 x double> poison, <4 x i32> %wide.vec160.6 = load <8 x double>, ptr %272, align 8, !noalias !4294 %strided.vec161.6 = shufflevector <8 x double> %wide.vec160.6, <8 x double> poison, <4 x i32> %strided.vec162.6 = shufflevector <8 x double> %wide.vec160.6, <8 x double> poison, <4 x i32> %273 = fmul <4 x double> %strided.vec162.6, %broadcast.splat164 %274 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.6, <4 x double> %273) %275 = fmul <4 x double> %broadcast.splat168, %strided.vec161.6 %276 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.6, <4 x double> %275) %277 = fadd <4 x double> %strided.vec158.6, %274 %278 = fadd <4 x double> %strided.vec159.6, %276 %279 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec169.6 = shufflevector <4 x double> %277, <4 x double> %278, <8 x i32> store <8 x double> %interleaved.vec169.6, ptr %279, align 8, !noalias !4294 %280 = fsub <4 x double> %strided.vec158.6, %274 %281 = fsub <4 x double> %strided.vec159.6, %276 %282 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 312 %interleaved.vec170.6 = shufflevector <4 x double> %280, <4 x double> %281, <8 x i32> store <8 x double> %interleaved.vec170.6, ptr %282, align 8, !noalias !4294 %283 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %284 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %wide.vec157.7 = load <8 x double>, ptr %283, align 8, !noalias !4294 %strided.vec158.7 = shufflevector <8 x double> %wide.vec157.7, <8 x double> poison, <4 x i32> %strided.vec159.7 = shufflevector <8 x double> %wide.vec157.7, <8 x double> poison, <4 x i32> %wide.vec160.7 = load <8 x double>, ptr %284, align 8, !noalias !4294 %strided.vec161.7 = shufflevector <8 x double> %wide.vec160.7, <8 x double> poison, <4 x i32> %strided.vec162.7 = shufflevector <8 x double> %wide.vec160.7, <8 x double> poison, <4 x i32> %285 = fmul <4 x double> %strided.vec162.7, %broadcast.splat164 %286 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.7, <4 x double> %285) %287 = fmul <4 x double> %broadcast.splat168, %strided.vec161.7 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.7, <4 x double> %287) %289 = fadd <4 x double> %strided.vec158.7, %286 %290 = fadd <4 x double> %strided.vec159.7, %288 %291 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec169.7 = shufflevector <4 x double> %289, <4 x double> %290, <8 x i32> store <8 x double> %interleaved.vec169.7, ptr %291, align 8, !noalias !4294 %292 = fsub <4 x double> %strided.vec158.7, %286 %293 = fsub <4 x double> %strided.vec159.7, %288 %294 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 316 %interleaved.vec170.7 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec170.7, ptr %294, align 8, !noalias !4294 %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.1, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.1, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.1, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %295 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %wide.vec178 = load <8 x double>, ptr %17, align 8, !noalias !4294 %strided.vec179 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %strided.vec180 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %wide.vec181 = load <8 x double>, ptr %295, align 8, !noalias !4294 %strided.vec182 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %strided.vec183 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %296 = fmul <4 x double> %strided.vec183, %broadcast.splat185 %297 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182, <4 x double> %296) %298 = fmul <4 x double> %broadcast.splat189, %strided.vec182 %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183, <4 x double> %298) %300 = fadd <4 x double> %strided.vec179, %297 %301 = fadd <4 x double> %strided.vec180, %299 %interleaved.vec190 = shufflevector <4 x double> %300, <4 x double> %301, <8 x i32> store <8 x double> %interleaved.vec190, ptr %47, align 8, !noalias !4294 %302 = fsub <4 x double> %strided.vec179, %297 %303 = fsub <4 x double> %strided.vec180, %299 %interleaved.vec191 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec191, ptr %77, align 8, !noalias !4294 %304 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 132 %305 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 164 %wide.vec178.1 = load <8 x double>, ptr %304, align 8, !noalias !4294 %strided.vec179.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %strided.vec180.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %wide.vec181.1 = load <8 x double>, ptr %305, align 8, !noalias !4294 %strided.vec182.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %strided.vec183.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %306 = fmul <4 x double> %strided.vec183.1, %broadcast.splat185 %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.1, <4 x double> %306) %308 = fmul <4 x double> %broadcast.splat189, %strided.vec182.1 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.1, <4 x double> %308) %310 = fadd <4 x double> %strided.vec179.1, %307 %311 = fadd <4 x double> %strided.vec180.1, %309 %312 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec190.1 = shufflevector <4 x double> %310, <4 x double> %311, <8 x i32> store <8 x double> %interleaved.vec190.1, ptr %312, align 8, !noalias !4294 %313 = fsub <4 x double> %strided.vec179.1, %307 %314 = fsub <4 x double> %strided.vec180.1, %309 %315 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 324 %interleaved.vec191.1 = shufflevector <4 x double> %313, <4 x double> %314, <8 x i32> store <8 x double> %interleaved.vec191.1, ptr %315, align 8, !noalias !4294 %316 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 136 %317 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 168 %wide.vec178.2 = load <8 x double>, ptr %316, align 8, !noalias !4294 %strided.vec179.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %strided.vec180.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %wide.vec181.2 = load <8 x double>, ptr %317, align 8, !noalias !4294 %strided.vec182.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %strided.vec183.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %318 = fmul <4 x double> %strided.vec183.2, %broadcast.splat185 %319 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.2, <4 x double> %318) %320 = fmul <4 x double> %broadcast.splat189, %strided.vec182.2 %321 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.2, <4 x double> %320) %322 = fadd <4 x double> %strided.vec179.2, %319 %323 = fadd <4 x double> %strided.vec180.2, %321 %324 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec190.2 = shufflevector <4 x double> %322, <4 x double> %323, <8 x i32> store <8 x double> %interleaved.vec190.2, ptr %324, align 8, !noalias !4294 %325 = fsub <4 x double> %strided.vec179.2, %319 %326 = fsub <4 x double> %strided.vec180.2, %321 %327 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 328 %interleaved.vec191.2 = shufflevector <4 x double> %325, <4 x double> %326, <8 x i32> store <8 x double> %interleaved.vec191.2, ptr %327, align 8, !noalias !4294 %328 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 140 %329 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 172 %wide.vec178.3 = load <8 x double>, ptr %328, align 8, !noalias !4294 %strided.vec179.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %strided.vec180.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %wide.vec181.3 = load <8 x double>, ptr %329, align 8, !noalias !4294 %strided.vec182.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %strided.vec183.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %330 = fmul <4 x double> %strided.vec183.3, %broadcast.splat185 %331 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.3, <4 x double> %330) %332 = fmul <4 x double> %broadcast.splat189, %strided.vec182.3 %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.3, <4 x double> %332) %334 = fadd <4 x double> %strided.vec179.3, %331 %335 = fadd <4 x double> %strided.vec180.3, %333 %336 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec190.3 = shufflevector <4 x double> %334, <4 x double> %335, <8 x i32> store <8 x double> %interleaved.vec190.3, ptr %336, align 8, !noalias !4294 %337 = fsub <4 x double> %strided.vec179.3, %331 %338 = fsub <4 x double> %strided.vec180.3, %333 %339 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 332 %interleaved.vec191.3 = shufflevector <4 x double> %337, <4 x double> %338, <8 x i32> store <8 x double> %interleaved.vec191.3, ptr %339, align 8, !noalias !4294 %340 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %341 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %wide.vec178.4 = load <8 x double>, ptr %340, align 8, !noalias !4294 %strided.vec179.4 = shufflevector <8 x double> %wide.vec178.4, <8 x double> poison, <4 x i32> %strided.vec180.4 = shufflevector <8 x double> %wide.vec178.4, <8 x double> poison, <4 x i32> %wide.vec181.4 = load <8 x double>, ptr %341, align 8, !noalias !4294 %strided.vec182.4 = shufflevector <8 x double> %wide.vec181.4, <8 x double> poison, <4 x i32> %strided.vec183.4 = shufflevector <8 x double> %wide.vec181.4, <8 x double> poison, <4 x i32> %342 = fmul <4 x double> %strided.vec183.4, %broadcast.splat185 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.4, <4 x double> %342) %344 = fmul <4 x double> %broadcast.splat189, %strided.vec182.4 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.4, <4 x double> %344) %346 = fadd <4 x double> %strided.vec179.4, %343 %347 = fadd <4 x double> %strided.vec180.4, %345 %348 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %interleaved.vec190.4 = shufflevector <4 x double> %346, <4 x double> %347, <8 x i32> store <8 x double> %interleaved.vec190.4, ptr %348, align 8, !noalias !4294 %349 = fsub <4 x double> %strided.vec179.4, %343 %350 = fsub <4 x double> %strided.vec180.4, %345 %351 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 336 %interleaved.vec191.4 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec191.4, ptr %351, align 8, !noalias !4294 %352 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 148 %353 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 180 %wide.vec178.5 = load <8 x double>, ptr %352, align 8, !noalias !4294 %strided.vec179.5 = shufflevector <8 x double> %wide.vec178.5, <8 x double> poison, <4 x i32> %strided.vec180.5 = shufflevector <8 x double> %wide.vec178.5, <8 x double> poison, <4 x i32> %wide.vec181.5 = load <8 x double>, ptr %353, align 8, !noalias !4294 %strided.vec182.5 = shufflevector <8 x double> %wide.vec181.5, <8 x double> poison, <4 x i32> %strided.vec183.5 = shufflevector <8 x double> %wide.vec181.5, <8 x double> poison, <4 x i32> %354 = fmul <4 x double> %strided.vec183.5, %broadcast.splat185 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.5, <4 x double> %354) %356 = fmul <4 x double> %broadcast.splat189, %strided.vec182.5 %357 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.5, <4 x double> %356) %358 = fadd <4 x double> %strided.vec179.5, %355 %359 = fadd <4 x double> %strided.vec180.5, %357 %360 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec190.5 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> store <8 x double> %interleaved.vec190.5, ptr %360, align 8, !noalias !4294 %361 = fsub <4 x double> %strided.vec179.5, %355 %362 = fsub <4 x double> %strided.vec180.5, %357 %363 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 340 %interleaved.vec191.5 = shufflevector <4 x double> %361, <4 x double> %362, <8 x i32> store <8 x double> %interleaved.vec191.5, ptr %363, align 8, !noalias !4294 %364 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 152 %365 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 184 %wide.vec178.6 = load <8 x double>, ptr %364, align 8, !noalias !4294 %strided.vec179.6 = shufflevector <8 x double> %wide.vec178.6, <8 x double> poison, <4 x i32> %strided.vec180.6 = shufflevector <8 x double> %wide.vec178.6, <8 x double> poison, <4 x i32> %wide.vec181.6 = load <8 x double>, ptr %365, align 8, !noalias !4294 %strided.vec182.6 = shufflevector <8 x double> %wide.vec181.6, <8 x double> poison, <4 x i32> %strided.vec183.6 = shufflevector <8 x double> %wide.vec181.6, <8 x double> poison, <4 x i32> %366 = fmul <4 x double> %strided.vec183.6, %broadcast.splat185 %367 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.6, <4 x double> %366) %368 = fmul <4 x double> %broadcast.splat189, %strided.vec182.6 %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.6, <4 x double> %368) %370 = fadd <4 x double> %strided.vec179.6, %367 %371 = fadd <4 x double> %strided.vec180.6, %369 %372 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec190.6 = shufflevector <4 x double> %370, <4 x double> %371, <8 x i32> store <8 x double> %interleaved.vec190.6, ptr %372, align 8, !noalias !4294 %373 = fsub <4 x double> %strided.vec179.6, %367 %374 = fsub <4 x double> %strided.vec180.6, %369 %375 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 344 %interleaved.vec191.6 = shufflevector <4 x double> %373, <4 x double> %374, <8 x i32> store <8 x double> %interleaved.vec191.6, ptr %375, align 8, !noalias !4294 %376 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 156 %377 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %wide.vec178.7 = load <8 x double>, ptr %376, align 8, !noalias !4294 %strided.vec179.7 = shufflevector <8 x double> %wide.vec178.7, <8 x double> poison, <4 x i32> %strided.vec180.7 = shufflevector <8 x double> %wide.vec178.7, <8 x double> poison, <4 x i32> %wide.vec181.7 = load <8 x double>, ptr %377, align 8, !noalias !4294 %strided.vec182.7 = shufflevector <8 x double> %wide.vec181.7, <8 x double> poison, <4 x i32> %strided.vec183.7 = shufflevector <8 x double> %wide.vec181.7, <8 x double> poison, <4 x i32> %378 = fmul <4 x double> %strided.vec183.7, %broadcast.splat185 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.7, <4 x double> %378) %380 = fmul <4 x double> %broadcast.splat189, %strided.vec182.7 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.7, <4 x double> %380) %382 = fadd <4 x double> %strided.vec179.7, %379 %383 = fadd <4 x double> %strided.vec180.7, %381 %384 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec190.7 = shufflevector <4 x double> %382, <4 x double> %383, <8 x i32> store <8 x double> %interleaved.vec190.7, ptr %384, align 8, !noalias !4294 %385 = fsub <4 x double> %strided.vec179.7, %379 %386 = fsub <4 x double> %strided.vec180.7, %381 %387 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 348 %interleaved.vec191.7 = shufflevector <4 x double> %385, <4 x double> %386, <8 x i32> store <8 x double> %interleaved.vec191.7, ptr %387, align 8, !noalias !4294 %388 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1, i32 1 %w1.1.i.i241.i.3 = load double, ptr %388, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert209 = insertelement <4 x double> poison, double %w1.1.i.i241.i.3, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer %389 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1 %w1.0.i.i240.i.3 = load double, ptr %389, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert207 = insertelement <4 x double> poison, double %w1.0.i.i240.i.3, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i256.i.3 = fneg double %w1.1.i.i241.i.3 %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i.i.i256.i.3, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %390 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %data.i5.i.i.i.i.i.i.i392.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 352 %data.i.i.i.i.i.i.i.i378.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %wide.vec199 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i206.3, align 8, !noalias !4294 %strided.vec200 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %strided.vec201 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %wide.vec202 = load <8 x double>, ptr %390, align 8, !noalias !4294 %strided.vec203 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %strided.vec204 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %391 = fmul <4 x double> %strided.vec204, %broadcast.splat206 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203, <4 x double> %391) %393 = fmul <4 x double> %broadcast.splat210, %strided.vec203 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204, <4 x double> %393) %395 = fadd <4 x double> %strided.vec200, %392 %396 = fadd <4 x double> %strided.vec201, %394 %interleaved.vec211 = shufflevector <4 x double> %395, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec211, ptr %data.i.i.i.i.i.i.i.i378.3, align 8, !noalias !4294 %397 = fsub <4 x double> %strided.vec200, %392 %398 = fsub <4 x double> %strided.vec201, %394 %interleaved.vec212 = shufflevector <4 x double> %397, <4 x double> %398, <8 x i32> store <8 x double> %interleaved.vec212, ptr %data.i5.i.i.i.i.i.i.i392.3, align 8, !noalias !4294 %399 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 196 %400 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 228 %wide.vec199.1 = load <8 x double>, ptr %399, align 8, !noalias !4294 %strided.vec200.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %strided.vec201.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %wide.vec202.1 = load <8 x double>, ptr %400, align 8, !noalias !4294 %strided.vec203.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %strided.vec204.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %401 = fmul <4 x double> %strided.vec204.1, %broadcast.splat206 %402 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.1, <4 x double> %401) %403 = fmul <4 x double> %broadcast.splat210, %strided.vec203.1 %404 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.1, <4 x double> %403) %405 = fadd <4 x double> %strided.vec200.1, %402 %406 = fadd <4 x double> %strided.vec201.1, %404 %407 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec211.1 = shufflevector <4 x double> %405, <4 x double> %406, <8 x i32> store <8 x double> %interleaved.vec211.1, ptr %407, align 8, !noalias !4294 %408 = fsub <4 x double> %strided.vec200.1, %402 %409 = fsub <4 x double> %strided.vec201.1, %404 %410 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 356 %interleaved.vec212.1 = shufflevector <4 x double> %408, <4 x double> %409, <8 x i32> store <8 x double> %interleaved.vec212.1, ptr %410, align 8, !noalias !4294 %411 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 200 %412 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 232 %wide.vec199.2 = load <8 x double>, ptr %411, align 8, !noalias !4294 %strided.vec200.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %strided.vec201.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %wide.vec202.2 = load <8 x double>, ptr %412, align 8, !noalias !4294 %strided.vec203.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %strided.vec204.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %413 = fmul <4 x double> %strided.vec204.2, %broadcast.splat206 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.2, <4 x double> %413) %415 = fmul <4 x double> %broadcast.splat210, %strided.vec203.2 %416 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.2, <4 x double> %415) %417 = fadd <4 x double> %strided.vec200.2, %414 %418 = fadd <4 x double> %strided.vec201.2, %416 %419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec211.2 = shufflevector <4 x double> %417, <4 x double> %418, <8 x i32> store <8 x double> %interleaved.vec211.2, ptr %419, align 8, !noalias !4294 %420 = fsub <4 x double> %strided.vec200.2, %414 %421 = fsub <4 x double> %strided.vec201.2, %416 %422 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 360 %interleaved.vec212.2 = shufflevector <4 x double> %420, <4 x double> %421, <8 x i32> store <8 x double> %interleaved.vec212.2, ptr %422, align 8, !noalias !4294 %423 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 204 %424 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 236 %wide.vec199.3 = load <8 x double>, ptr %423, align 8, !noalias !4294 %strided.vec200.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %strided.vec201.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %wide.vec202.3 = load <8 x double>, ptr %424, align 8, !noalias !4294 %strided.vec203.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %strided.vec204.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %425 = fmul <4 x double> %strided.vec204.3, %broadcast.splat206 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.3, <4 x double> %425) %427 = fmul <4 x double> %broadcast.splat210, %strided.vec203.3 %428 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.3, <4 x double> %427) %429 = fadd <4 x double> %strided.vec200.3, %426 %430 = fadd <4 x double> %strided.vec201.3, %428 %431 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec211.3 = shufflevector <4 x double> %429, <4 x double> %430, <8 x i32> store <8 x double> %interleaved.vec211.3, ptr %431, align 8, !noalias !4294 %432 = fsub <4 x double> %strided.vec200.3, %426 %433 = fsub <4 x double> %strided.vec201.3, %428 %434 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 364 %interleaved.vec212.3 = shufflevector <4 x double> %432, <4 x double> %433, <8 x i32> store <8 x double> %interleaved.vec212.3, ptr %434, align 8, !noalias !4294 %435 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %436 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %wide.vec199.4 = load <8 x double>, ptr %435, align 8, !noalias !4294 %strided.vec200.4 = shufflevector <8 x double> %wide.vec199.4, <8 x double> poison, <4 x i32> %strided.vec201.4 = shufflevector <8 x double> %wide.vec199.4, <8 x double> poison, <4 x i32> %wide.vec202.4 = load <8 x double>, ptr %436, align 8, !noalias !4294 %strided.vec203.4 = shufflevector <8 x double> %wide.vec202.4, <8 x double> poison, <4 x i32> %strided.vec204.4 = shufflevector <8 x double> %wide.vec202.4, <8 x double> poison, <4 x i32> %437 = fmul <4 x double> %strided.vec204.4, %broadcast.splat206 %438 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.4, <4 x double> %437) %439 = fmul <4 x double> %broadcast.splat210, %strided.vec203.4 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.4, <4 x double> %439) %441 = fadd <4 x double> %strided.vec200.4, %438 %442 = fadd <4 x double> %strided.vec201.4, %440 %443 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %interleaved.vec211.4 = shufflevector <4 x double> %441, <4 x double> %442, <8 x i32> store <8 x double> %interleaved.vec211.4, ptr %443, align 8, !noalias !4294 %444 = fsub <4 x double> %strided.vec200.4, %438 %445 = fsub <4 x double> %strided.vec201.4, %440 %446 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 368 %interleaved.vec212.4 = shufflevector <4 x double> %444, <4 x double> %445, <8 x i32> store <8 x double> %interleaved.vec212.4, ptr %446, align 8, !noalias !4294 %447 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 212 %448 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %wide.vec199.5 = load <8 x double>, ptr %447, align 8, !noalias !4294 %strided.vec200.5 = shufflevector <8 x double> %wide.vec199.5, <8 x double> poison, <4 x i32> %strided.vec201.5 = shufflevector <8 x double> %wide.vec199.5, <8 x double> poison, <4 x i32> %wide.vec202.5 = load <8 x double>, ptr %448, align 8, !noalias !4294 %strided.vec203.5 = shufflevector <8 x double> %wide.vec202.5, <8 x double> poison, <4 x i32> %strided.vec204.5 = shufflevector <8 x double> %wide.vec202.5, <8 x double> poison, <4 x i32> %449 = fmul <4 x double> %strided.vec204.5, %broadcast.splat206 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.5, <4 x double> %449) %451 = fmul <4 x double> %broadcast.splat210, %strided.vec203.5 %452 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.5, <4 x double> %451) %453 = fadd <4 x double> %strided.vec200.5, %450 %454 = fadd <4 x double> %strided.vec201.5, %452 %455 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec211.5 = shufflevector <4 x double> %453, <4 x double> %454, <8 x i32> store <8 x double> %interleaved.vec211.5, ptr %455, align 8, !noalias !4294 %456 = fsub <4 x double> %strided.vec200.5, %450 %457 = fsub <4 x double> %strided.vec201.5, %452 %458 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 372 %interleaved.vec212.5 = shufflevector <4 x double> %456, <4 x double> %457, <8 x i32> store <8 x double> %interleaved.vec212.5, ptr %458, align 8, !noalias !4294 %459 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 216 %460 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %wide.vec199.6 = load <8 x double>, ptr %459, align 8, !noalias !4294 %strided.vec200.6 = shufflevector <8 x double> %wide.vec199.6, <8 x double> poison, <4 x i32> %strided.vec201.6 = shufflevector <8 x double> %wide.vec199.6, <8 x double> poison, <4 x i32> %wide.vec202.6 = load <8 x double>, ptr %460, align 8, !noalias !4294 %strided.vec203.6 = shufflevector <8 x double> %wide.vec202.6, <8 x double> poison, <4 x i32> %strided.vec204.6 = shufflevector <8 x double> %wide.vec202.6, <8 x double> poison, <4 x i32> %461 = fmul <4 x double> %strided.vec204.6, %broadcast.splat206 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.6, <4 x double> %461) %463 = fmul <4 x double> %broadcast.splat210, %strided.vec203.6 %464 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.6, <4 x double> %463) %465 = fadd <4 x double> %strided.vec200.6, %462 %466 = fadd <4 x double> %strided.vec201.6, %464 %467 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec211.6 = shufflevector <4 x double> %465, <4 x double> %466, <8 x i32> store <8 x double> %interleaved.vec211.6, ptr %467, align 8, !noalias !4294 %468 = fsub <4 x double> %strided.vec200.6, %462 %469 = fsub <4 x double> %strided.vec201.6, %464 %470 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 376 %interleaved.vec212.6 = shufflevector <4 x double> %468, <4 x double> %469, <8 x i32> store <8 x double> %interleaved.vec212.6, ptr %470, align 8, !noalias !4294 %471 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 220 %472 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %wide.vec199.7 = load <8 x double>, ptr %471, align 8, !noalias !4294 %strided.vec200.7 = shufflevector <8 x double> %wide.vec199.7, <8 x double> poison, <4 x i32> %strided.vec201.7 = shufflevector <8 x double> %wide.vec199.7, <8 x double> poison, <4 x i32> %wide.vec202.7 = load <8 x double>, ptr %472, align 8, !noalias !4294 %strided.vec203.7 = shufflevector <8 x double> %wide.vec202.7, <8 x double> poison, <4 x i32> %strided.vec204.7 = shufflevector <8 x double> %wide.vec202.7, <8 x double> poison, <4 x i32> %473 = fmul <4 x double> %strided.vec204.7, %broadcast.splat206 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.7, <4 x double> %473) %475 = fmul <4 x double> %broadcast.splat210, %strided.vec203.7 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.7, <4 x double> %475) %477 = fadd <4 x double> %strided.vec200.7, %474 %478 = fadd <4 x double> %strided.vec201.7, %476 %479 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec211.7 = shufflevector <4 x double> %477, <4 x double> %478, <8 x i32> store <8 x double> %interleaved.vec211.7, ptr %479, align 8, !noalias !4294 %480 = fsub <4 x double> %strided.vec200.7, %474 %481 = fsub <4 x double> %strided.vec201.7, %476 %482 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 380 %interleaved.vec212.7 = shufflevector <4 x double> %480, <4 x double> %481, <8 x i32> store <8 x double> %interleaved.vec212.7, ptr %482, align 8, !noalias !4294 %broadcast.splatinsert230 = insertelement <4 x double> poison, double %w1.1.i.i43.i149.i.1, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %w1.0.i.i42.i148.i.1, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i.i.i58.i164.i.1, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %483 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 288 %wide.vec220 = load <8 x double>, ptr %0, align 8, !noalias !4294 %strided.vec221 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %strided.vec222 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %wide.vec223 = load <8 x double>, ptr %483, align 8, !noalias !4294 %strided.vec224 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %strided.vec225 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %484 = fmul <4 x double> %strided.vec225, %broadcast.splat227 %485 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224, <4 x double> %484) %486 = fmul <4 x double> %broadcast.splat231, %strided.vec224 %487 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225, <4 x double> %486) %488 = fadd <4 x double> %strided.vec221, %485 %489 = fadd <4 x double> %strided.vec222, %487 %interleaved.vec232 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> store <8 x double> %interleaved.vec232, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4294 %490 = fsub <4 x double> %strided.vec221, %485 %491 = fsub <4 x double> %strided.vec222, %487 %interleaved.vec233 = shufflevector <4 x double> %490, <4 x double> %491, <8 x i32> store <8 x double> %interleaved.vec233, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4294 %492 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 260 %493 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 292 %wide.vec220.1 = load <8 x double>, ptr %492, align 8, !noalias !4294 %strided.vec221.1 = shufflevector <8 x double> %wide.vec220.1, <8 x double> poison, <4 x i32> %strided.vec222.1 = shufflevector <8 x double> %wide.vec220.1, <8 x double> poison, <4 x i32> %wide.vec223.1 = load <8 x double>, ptr %493, align 8, !noalias !4294 %strided.vec224.1 = shufflevector <8 x double> %wide.vec223.1, <8 x double> poison, <4 x i32> %strided.vec225.1 = shufflevector <8 x double> %wide.vec223.1, <8 x double> poison, <4 x i32> %494 = fmul <4 x double> %strided.vec225.1, %broadcast.splat227 %495 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.1, <4 x double> %494) %496 = fmul <4 x double> %broadcast.splat231, %strided.vec224.1 %497 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.1, <4 x double> %496) %498 = fadd <4 x double> %strided.vec221.1, %495 %499 = fadd <4 x double> %strided.vec222.1, %497 %500 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 132 %interleaved.vec232.1 = shufflevector <4 x double> %498, <4 x double> %499, <8 x i32> store <8 x double> %interleaved.vec232.1, ptr %500, align 8, !noalias !4294 %501 = fsub <4 x double> %strided.vec221.1, %495 %502 = fsub <4 x double> %strided.vec222.1, %497 %503 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 388 %interleaved.vec233.1 = shufflevector <4 x double> %501, <4 x double> %502, <8 x i32> store <8 x double> %interleaved.vec233.1, ptr %503, align 8, !noalias !4294 %504 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 264 %505 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 296 %wide.vec220.2 = load <8 x double>, ptr %504, align 8, !noalias !4294 %strided.vec221.2 = shufflevector <8 x double> %wide.vec220.2, <8 x double> poison, <4 x i32> %strided.vec222.2 = shufflevector <8 x double> %wide.vec220.2, <8 x double> poison, <4 x i32> %wide.vec223.2 = load <8 x double>, ptr %505, align 8, !noalias !4294 %strided.vec224.2 = shufflevector <8 x double> %wide.vec223.2, <8 x double> poison, <4 x i32> %strided.vec225.2 = shufflevector <8 x double> %wide.vec223.2, <8 x double> poison, <4 x i32> %506 = fmul <4 x double> %strided.vec225.2, %broadcast.splat227 %507 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.2, <4 x double> %506) %508 = fmul <4 x double> %broadcast.splat231, %strided.vec224.2 %509 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.2, <4 x double> %508) %510 = fadd <4 x double> %strided.vec221.2, %507 %511 = fadd <4 x double> %strided.vec222.2, %509 %512 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 136 %interleaved.vec232.2 = shufflevector <4 x double> %510, <4 x double> %511, <8 x i32> store <8 x double> %interleaved.vec232.2, ptr %512, align 8, !noalias !4294 %513 = fsub <4 x double> %strided.vec221.2, %507 %514 = fsub <4 x double> %strided.vec222.2, %509 %515 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 392 %interleaved.vec233.2 = shufflevector <4 x double> %513, <4 x double> %514, <8 x i32> store <8 x double> %interleaved.vec233.2, ptr %515, align 8, !noalias !4294 %516 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 268 %517 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 300 %wide.vec220.3 = load <8 x double>, ptr %516, align 8, !noalias !4294 %strided.vec221.3 = shufflevector <8 x double> %wide.vec220.3, <8 x double> poison, <4 x i32> %strided.vec222.3 = shufflevector <8 x double> %wide.vec220.3, <8 x double> poison, <4 x i32> %wide.vec223.3 = load <8 x double>, ptr %517, align 8, !noalias !4294 %strided.vec224.3 = shufflevector <8 x double> %wide.vec223.3, <8 x double> poison, <4 x i32> %strided.vec225.3 = shufflevector <8 x double> %wide.vec223.3, <8 x double> poison, <4 x i32> %518 = fmul <4 x double> %strided.vec225.3, %broadcast.splat227 %519 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.3, <4 x double> %518) %520 = fmul <4 x double> %broadcast.splat231, %strided.vec224.3 %521 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.3, <4 x double> %520) %522 = fadd <4 x double> %strided.vec221.3, %519 %523 = fadd <4 x double> %strided.vec222.3, %521 %524 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 140 %interleaved.vec232.3 = shufflevector <4 x double> %522, <4 x double> %523, <8 x i32> store <8 x double> %interleaved.vec232.3, ptr %524, align 8, !noalias !4294 %525 = fsub <4 x double> %strided.vec221.3, %519 %526 = fsub <4 x double> %strided.vec222.3, %521 %527 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 396 %interleaved.vec233.3 = shufflevector <4 x double> %525, <4 x double> %526, <8 x i32> store <8 x double> %interleaved.vec233.3, ptr %527, align 8, !noalias !4294 %528 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 272 %529 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 304 %wide.vec220.4 = load <8 x double>, ptr %528, align 8, !noalias !4294 %strided.vec221.4 = shufflevector <8 x double> %wide.vec220.4, <8 x double> poison, <4 x i32> %strided.vec222.4 = shufflevector <8 x double> %wide.vec220.4, <8 x double> poison, <4 x i32> %wide.vec223.4 = load <8 x double>, ptr %529, align 8, !noalias !4294 %strided.vec224.4 = shufflevector <8 x double> %wide.vec223.4, <8 x double> poison, <4 x i32> %strided.vec225.4 = shufflevector <8 x double> %wide.vec223.4, <8 x double> poison, <4 x i32> %530 = fmul <4 x double> %strided.vec225.4, %broadcast.splat227 %531 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.4, <4 x double> %530) %532 = fmul <4 x double> %broadcast.splat231, %strided.vec224.4 %533 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.4, <4 x double> %532) %534 = fadd <4 x double> %strided.vec221.4, %531 %535 = fadd <4 x double> %strided.vec222.4, %533 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %interleaved.vec232.4 = shufflevector <4 x double> %534, <4 x double> %535, <8 x i32> store <8 x double> %interleaved.vec232.4, ptr %536, align 8, !noalias !4294 %537 = fsub <4 x double> %strided.vec221.4, %531 %538 = fsub <4 x double> %strided.vec222.4, %533 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 400 %interleaved.vec233.4 = shufflevector <4 x double> %537, <4 x double> %538, <8 x i32> store <8 x double> %interleaved.vec233.4, ptr %539, align 8, !noalias !4294 %540 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 276 %541 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 308 %wide.vec220.5 = load <8 x double>, ptr %540, align 8, !noalias !4294 %strided.vec221.5 = shufflevector <8 x double> %wide.vec220.5, <8 x double> poison, <4 x i32> %strided.vec222.5 = shufflevector <8 x double> %wide.vec220.5, <8 x double> poison, <4 x i32> %wide.vec223.5 = load <8 x double>, ptr %541, align 8, !noalias !4294 %strided.vec224.5 = shufflevector <8 x double> %wide.vec223.5, <8 x double> poison, <4 x i32> %strided.vec225.5 = shufflevector <8 x double> %wide.vec223.5, <8 x double> poison, <4 x i32> %542 = fmul <4 x double> %strided.vec225.5, %broadcast.splat227 %543 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.5, <4 x double> %542) %544 = fmul <4 x double> %broadcast.splat231, %strided.vec224.5 %545 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.5, <4 x double> %544) %546 = fadd <4 x double> %strided.vec221.5, %543 %547 = fadd <4 x double> %strided.vec222.5, %545 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 148 %interleaved.vec232.5 = shufflevector <4 x double> %546, <4 x double> %547, <8 x i32> store <8 x double> %interleaved.vec232.5, ptr %548, align 8, !noalias !4294 %549 = fsub <4 x double> %strided.vec221.5, %543 %550 = fsub <4 x double> %strided.vec222.5, %545 %551 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 404 %interleaved.vec233.5 = shufflevector <4 x double> %549, <4 x double> %550, <8 x i32> store <8 x double> %interleaved.vec233.5, ptr %551, align 8, !noalias !4294 %552 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 280 %553 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 312 %wide.vec220.6 = load <8 x double>, ptr %552, align 8, !noalias !4294 %strided.vec221.6 = shufflevector <8 x double> %wide.vec220.6, <8 x double> poison, <4 x i32> %strided.vec222.6 = shufflevector <8 x double> %wide.vec220.6, <8 x double> poison, <4 x i32> %wide.vec223.6 = load <8 x double>, ptr %553, align 8, !noalias !4294 %strided.vec224.6 = shufflevector <8 x double> %wide.vec223.6, <8 x double> poison, <4 x i32> %strided.vec225.6 = shufflevector <8 x double> %wide.vec223.6, <8 x double> poison, <4 x i32> %554 = fmul <4 x double> %strided.vec225.6, %broadcast.splat227 %555 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.6, <4 x double> %554) %556 = fmul <4 x double> %broadcast.splat231, %strided.vec224.6 %557 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.6, <4 x double> %556) %558 = fadd <4 x double> %strided.vec221.6, %555 %559 = fadd <4 x double> %strided.vec222.6, %557 %560 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 152 %interleaved.vec232.6 = shufflevector <4 x double> %558, <4 x double> %559, <8 x i32> store <8 x double> %interleaved.vec232.6, ptr %560, align 8, !noalias !4294 %561 = fsub <4 x double> %strided.vec221.6, %555 %562 = fsub <4 x double> %strided.vec222.6, %557 %563 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 408 %interleaved.vec233.6 = shufflevector <4 x double> %561, <4 x double> %562, <8 x i32> store <8 x double> %interleaved.vec233.6, ptr %563, align 8, !noalias !4294 %564 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 284 %565 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 316 %wide.vec220.7 = load <8 x double>, ptr %564, align 8, !noalias !4294 %strided.vec221.7 = shufflevector <8 x double> %wide.vec220.7, <8 x double> poison, <4 x i32> %strided.vec222.7 = shufflevector <8 x double> %wide.vec220.7, <8 x double> poison, <4 x i32> %wide.vec223.7 = load <8 x double>, ptr %565, align 8, !noalias !4294 %strided.vec224.7 = shufflevector <8 x double> %wide.vec223.7, <8 x double> poison, <4 x i32> %strided.vec225.7 = shufflevector <8 x double> %wide.vec223.7, <8 x double> poison, <4 x i32> %566 = fmul <4 x double> %strided.vec225.7, %broadcast.splat227 %567 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.7, <4 x double> %566) %568 = fmul <4 x double> %broadcast.splat231, %strided.vec224.7 %569 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.7, <4 x double> %568) %570 = fadd <4 x double> %strided.vec221.7, %567 %571 = fadd <4 x double> %strided.vec222.7, %569 %572 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 156 %interleaved.vec232.7 = shufflevector <4 x double> %570, <4 x double> %571, <8 x i32> store <8 x double> %interleaved.vec232.7, ptr %572, align 8, !noalias !4294 %573 = fsub <4 x double> %strided.vec221.7, %567 %574 = fsub <4 x double> %strided.vec222.7, %569 %575 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 412 %interleaved.vec233.7 = shufflevector <4 x double> %573, <4 x double> %574, <8 x i32> store <8 x double> %interleaved.vec233.7, ptr %575, align 8, !noalias !4294 %576 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 160, i64 1, i32 1 %w1.1.i.i241.i.5 = load double, ptr %576, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert251 = insertelement <4 x double> poison, double %w1.1.i.i241.i.5, i64 0 %broadcast.splat252 = shufflevector <4 x double> %broadcast.splatinsert251, <4 x double> poison, <4 x i32> zeroinitializer %577 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 160, i64 1 %w1.0.i.i240.i.5 = load double, ptr %577, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert249 = insertelement <4 x double> poison, double %w1.0.i.i240.i.5, i64 0 %broadcast.splat250 = shufflevector <4 x double> %broadcast.splatinsert249, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i256.i.5 = fneg double %w1.1.i.i241.i.5 %broadcast.splatinsert247 = insertelement <4 x double> poison, double %_6.i.i.i256.i.5, i64 0 %broadcast.splat248 = shufflevector <4 x double> %broadcast.splatinsert247, <4 x double> poison, <4 x i32> zeroinitializer %578 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 352 %data.i5.i.i.i.i.i.i.i392.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 416 %data.i.i.i.i.i.i388.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %data.i.i.i.i.i.i.i.i378.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %wide.vec241 = load <8 x double>, ptr %data.i.i.i.i.i.i388.5, align 8, !noalias !4294 %strided.vec242 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %strided.vec243 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %wide.vec244 = load <8 x double>, ptr %578, align 8, !noalias !4294 %strided.vec245 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %strided.vec246 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %579 = fmul <4 x double> %strided.vec246, %broadcast.splat248 %580 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245, <4 x double> %579) %581 = fmul <4 x double> %broadcast.splat252, %strided.vec245 %582 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246, <4 x double> %581) %583 = fadd <4 x double> %strided.vec242, %580 %584 = fadd <4 x double> %strided.vec243, %582 %interleaved.vec253 = shufflevector <4 x double> %583, <4 x double> %584, <8 x i32> store <8 x double> %interleaved.vec253, ptr %data.i.i.i.i.i.i.i.i378.5, align 8, !noalias !4294 %585 = fsub <4 x double> %strided.vec242, %580 %586 = fsub <4 x double> %strided.vec243, %582 %interleaved.vec254 = shufflevector <4 x double> %585, <4 x double> %586, <8 x i32> store <8 x double> %interleaved.vec254, ptr %data.i5.i.i.i.i.i.i.i392.5, align 8, !noalias !4294 %587 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 324 %588 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 356 %wide.vec241.1 = load <8 x double>, ptr %587, align 8, !noalias !4294 %strided.vec242.1 = shufflevector <8 x double> %wide.vec241.1, <8 x double> poison, <4 x i32> %strided.vec243.1 = shufflevector <8 x double> %wide.vec241.1, <8 x double> poison, <4 x i32> %wide.vec244.1 = load <8 x double>, ptr %588, align 8, !noalias !4294 %strided.vec245.1 = shufflevector <8 x double> %wide.vec244.1, <8 x double> poison, <4 x i32> %strided.vec246.1 = shufflevector <8 x double> %wide.vec244.1, <8 x double> poison, <4 x i32> %589 = fmul <4 x double> %strided.vec246.1, %broadcast.splat248 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.1, <4 x double> %589) %591 = fmul <4 x double> %broadcast.splat252, %strided.vec245.1 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.1, <4 x double> %591) %593 = fadd <4 x double> %strided.vec242.1, %590 %594 = fadd <4 x double> %strided.vec243.1, %592 %595 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 164 %interleaved.vec253.1 = shufflevector <4 x double> %593, <4 x double> %594, <8 x i32> store <8 x double> %interleaved.vec253.1, ptr %595, align 8, !noalias !4294 %596 = fsub <4 x double> %strided.vec242.1, %590 %597 = fsub <4 x double> %strided.vec243.1, %592 %598 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 420 %interleaved.vec254.1 = shufflevector <4 x double> %596, <4 x double> %597, <8 x i32> store <8 x double> %interleaved.vec254.1, ptr %598, align 8, !noalias !4294 %599 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 328 %600 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 360 %wide.vec241.2 = load <8 x double>, ptr %599, align 8, !noalias !4294 %strided.vec242.2 = shufflevector <8 x double> %wide.vec241.2, <8 x double> poison, <4 x i32> %strided.vec243.2 = shufflevector <8 x double> %wide.vec241.2, <8 x double> poison, <4 x i32> %wide.vec244.2 = load <8 x double>, ptr %600, align 8, !noalias !4294 %strided.vec245.2 = shufflevector <8 x double> %wide.vec244.2, <8 x double> poison, <4 x i32> %strided.vec246.2 = shufflevector <8 x double> %wide.vec244.2, <8 x double> poison, <4 x i32> %601 = fmul <4 x double> %strided.vec246.2, %broadcast.splat248 %602 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.2, <4 x double> %601) %603 = fmul <4 x double> %broadcast.splat252, %strided.vec245.2 %604 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.2, <4 x double> %603) %605 = fadd <4 x double> %strided.vec242.2, %602 %606 = fadd <4 x double> %strided.vec243.2, %604 %607 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 168 %interleaved.vec253.2 = shufflevector <4 x double> %605, <4 x double> %606, <8 x i32> store <8 x double> %interleaved.vec253.2, ptr %607, align 8, !noalias !4294 %608 = fsub <4 x double> %strided.vec242.2, %602 %609 = fsub <4 x double> %strided.vec243.2, %604 %610 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 424 %interleaved.vec254.2 = shufflevector <4 x double> %608, <4 x double> %609, <8 x i32> store <8 x double> %interleaved.vec254.2, ptr %610, align 8, !noalias !4294 %611 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 332 %612 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 364 %wide.vec241.3 = load <8 x double>, ptr %611, align 8, !noalias !4294 %strided.vec242.3 = shufflevector <8 x double> %wide.vec241.3, <8 x double> poison, <4 x i32> %strided.vec243.3 = shufflevector <8 x double> %wide.vec241.3, <8 x double> poison, <4 x i32> %wide.vec244.3 = load <8 x double>, ptr %612, align 8, !noalias !4294 %strided.vec245.3 = shufflevector <8 x double> %wide.vec244.3, <8 x double> poison, <4 x i32> %strided.vec246.3 = shufflevector <8 x double> %wide.vec244.3, <8 x double> poison, <4 x i32> %613 = fmul <4 x double> %strided.vec246.3, %broadcast.splat248 %614 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.3, <4 x double> %613) %615 = fmul <4 x double> %broadcast.splat252, %strided.vec245.3 %616 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.3, <4 x double> %615) %617 = fadd <4 x double> %strided.vec242.3, %614 %618 = fadd <4 x double> %strided.vec243.3, %616 %619 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 172 %interleaved.vec253.3 = shufflevector <4 x double> %617, <4 x double> %618, <8 x i32> store <8 x double> %interleaved.vec253.3, ptr %619, align 8, !noalias !4294 %620 = fsub <4 x double> %strided.vec242.3, %614 %621 = fsub <4 x double> %strided.vec243.3, %616 %622 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 428 %interleaved.vec254.3 = shufflevector <4 x double> %620, <4 x double> %621, <8 x i32> store <8 x double> %interleaved.vec254.3, ptr %622, align 8, !noalias !4294 %623 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 336 %624 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 368 %wide.vec241.4 = load <8 x double>, ptr %623, align 8, !noalias !4294 %strided.vec242.4 = shufflevector <8 x double> %wide.vec241.4, <8 x double> poison, <4 x i32> %strided.vec243.4 = shufflevector <8 x double> %wide.vec241.4, <8 x double> poison, <4 x i32> %wide.vec244.4 = load <8 x double>, ptr %624, align 8, !noalias !4294 %strided.vec245.4 = shufflevector <8 x double> %wide.vec244.4, <8 x double> poison, <4 x i32> %strided.vec246.4 = shufflevector <8 x double> %wide.vec244.4, <8 x double> poison, <4 x i32> %625 = fmul <4 x double> %strided.vec246.4, %broadcast.splat248 %626 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.4, <4 x double> %625) %627 = fmul <4 x double> %broadcast.splat252, %strided.vec245.4 %628 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.4, <4 x double> %627) %629 = fadd <4 x double> %strided.vec242.4, %626 %630 = fadd <4 x double> %strided.vec243.4, %628 %631 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %interleaved.vec253.4 = shufflevector <4 x double> %629, <4 x double> %630, <8 x i32> store <8 x double> %interleaved.vec253.4, ptr %631, align 8, !noalias !4294 %632 = fsub <4 x double> %strided.vec242.4, %626 %633 = fsub <4 x double> %strided.vec243.4, %628 %634 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 432 %interleaved.vec254.4 = shufflevector <4 x double> %632, <4 x double> %633, <8 x i32> store <8 x double> %interleaved.vec254.4, ptr %634, align 8, !noalias !4294 %635 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 340 %636 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 372 %wide.vec241.5 = load <8 x double>, ptr %635, align 8, !noalias !4294 %strided.vec242.5 = shufflevector <8 x double> %wide.vec241.5, <8 x double> poison, <4 x i32> %strided.vec243.5 = shufflevector <8 x double> %wide.vec241.5, <8 x double> poison, <4 x i32> %wide.vec244.5 = load <8 x double>, ptr %636, align 8, !noalias !4294 %strided.vec245.5 = shufflevector <8 x double> %wide.vec244.5, <8 x double> poison, <4 x i32> %strided.vec246.5 = shufflevector <8 x double> %wide.vec244.5, <8 x double> poison, <4 x i32> %637 = fmul <4 x double> %strided.vec246.5, %broadcast.splat248 %638 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.5, <4 x double> %637) %639 = fmul <4 x double> %broadcast.splat252, %strided.vec245.5 %640 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.5, <4 x double> %639) %641 = fadd <4 x double> %strided.vec242.5, %638 %642 = fadd <4 x double> %strided.vec243.5, %640 %643 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 180 %interleaved.vec253.5 = shufflevector <4 x double> %641, <4 x double> %642, <8 x i32> store <8 x double> %interleaved.vec253.5, ptr %643, align 8, !noalias !4294 %644 = fsub <4 x double> %strided.vec242.5, %638 %645 = fsub <4 x double> %strided.vec243.5, %640 %646 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 436 %interleaved.vec254.5 = shufflevector <4 x double> %644, <4 x double> %645, <8 x i32> store <8 x double> %interleaved.vec254.5, ptr %646, align 8, !noalias !4294 %647 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 344 %648 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 376 %wide.vec241.6 = load <8 x double>, ptr %647, align 8, !noalias !4294 %strided.vec242.6 = shufflevector <8 x double> %wide.vec241.6, <8 x double> poison, <4 x i32> %strided.vec243.6 = shufflevector <8 x double> %wide.vec241.6, <8 x double> poison, <4 x i32> %wide.vec244.6 = load <8 x double>, ptr %648, align 8, !noalias !4294 %strided.vec245.6 = shufflevector <8 x double> %wide.vec244.6, <8 x double> poison, <4 x i32> %strided.vec246.6 = shufflevector <8 x double> %wide.vec244.6, <8 x double> poison, <4 x i32> %649 = fmul <4 x double> %strided.vec246.6, %broadcast.splat248 %650 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.6, <4 x double> %649) %651 = fmul <4 x double> %broadcast.splat252, %strided.vec245.6 %652 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.6, <4 x double> %651) %653 = fadd <4 x double> %strided.vec242.6, %650 %654 = fadd <4 x double> %strided.vec243.6, %652 %655 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 184 %interleaved.vec253.6 = shufflevector <4 x double> %653, <4 x double> %654, <8 x i32> store <8 x double> %interleaved.vec253.6, ptr %655, align 8, !noalias !4294 %656 = fsub <4 x double> %strided.vec242.6, %650 %657 = fsub <4 x double> %strided.vec243.6, %652 %658 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 440 %interleaved.vec254.6 = shufflevector <4 x double> %656, <4 x double> %657, <8 x i32> store <8 x double> %interleaved.vec254.6, ptr %658, align 8, !noalias !4294 %659 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 348 %660 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380 %wide.vec241.7 = load <8 x double>, ptr %659, align 8, !noalias !4294 %strided.vec242.7 = shufflevector <8 x double> %wide.vec241.7, <8 x double> poison, <4 x i32> %strided.vec243.7 = shufflevector <8 x double> %wide.vec241.7, <8 x double> poison, <4 x i32> %wide.vec244.7 = load <8 x double>, ptr %660, align 8, !noalias !4294 %strided.vec245.7 = shufflevector <8 x double> %wide.vec244.7, <8 x double> poison, <4 x i32> %strided.vec246.7 = shufflevector <8 x double> %wide.vec244.7, <8 x double> poison, <4 x i32> %661 = fmul <4 x double> %strided.vec246.7, %broadcast.splat248 %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.7, <4 x double> %661) %663 = fmul <4 x double> %broadcast.splat252, %strided.vec245.7 %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.7, <4 x double> %663) %665 = fadd <4 x double> %strided.vec242.7, %662 %666 = fadd <4 x double> %strided.vec243.7, %664 %667 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 188 %interleaved.vec253.7 = shufflevector <4 x double> %665, <4 x double> %666, <8 x i32> store <8 x double> %interleaved.vec253.7, ptr %667, align 8, !noalias !4294 %668 = fsub <4 x double> %strided.vec242.7, %662 %669 = fsub <4 x double> %strided.vec243.7, %664 %670 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 444 %interleaved.vec254.7 = shufflevector <4 x double> %668, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec254.7, ptr %670, align 8, !noalias !4294 %broadcast.splatinsert272 = insertelement <4 x double> poison, double %w1.1.i.i.i195.i.3, i64 0 %broadcast.splat273 = shufflevector <4 x double> %broadcast.splatinsert272, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert270 = insertelement <4 x double> poison, double %w1.0.i.i.i194.i.3, i64 0 %broadcast.splat271 = shufflevector <4 x double> %broadcast.splatinsert270, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert268 = insertelement <4 x double> poison, double %_6.i.i.i.i210.i.3, i64 0 %broadcast.splat269 = shufflevector <4 x double> %broadcast.splatinsert268, <4 x double> poison, <4 x i32> zeroinitializer %671 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 416 %data.i5.i.i.i.i.i.i.i392.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %data.i.i.i.i.i.i388.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %data.i.i.i.i.i.i.i.i378.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %wide.vec262 = load <8 x double>, ptr %data.i.i.i.i.i.i388.6, align 8, !noalias !4294 %strided.vec263 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %strided.vec264 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %wide.vec265 = load <8 x double>, ptr %671, align 8, !noalias !4294 %strided.vec266 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %strided.vec267 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %672 = fmul <4 x double> %strided.vec267, %broadcast.splat269 %673 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266, <4 x double> %672) %674 = fmul <4 x double> %broadcast.splat273, %strided.vec266 %675 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267, <4 x double> %674) %676 = fadd <4 x double> %strided.vec263, %673 %677 = fadd <4 x double> %strided.vec264, %675 %interleaved.vec274 = shufflevector <4 x double> %676, <4 x double> %677, <8 x i32> store <8 x double> %interleaved.vec274, ptr %data.i.i.i.i.i.i.i.i378.6, align 8, !noalias !4294 %678 = fsub <4 x double> %strided.vec263, %673 %679 = fsub <4 x double> %strided.vec264, %675 %interleaved.vec275 = shufflevector <4 x double> %678, <4 x double> %679, <8 x i32> store <8 x double> %interleaved.vec275, ptr %data.i5.i.i.i.i.i.i.i392.6, align 8, !noalias !4294 %680 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 388 %681 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 420 %wide.vec262.1 = load <8 x double>, ptr %680, align 8, !noalias !4294 %strided.vec263.1 = shufflevector <8 x double> %wide.vec262.1, <8 x double> poison, <4 x i32> %strided.vec264.1 = shufflevector <8 x double> %wide.vec262.1, <8 x double> poison, <4 x i32> %wide.vec265.1 = load <8 x double>, ptr %681, align 8, !noalias !4294 %strided.vec266.1 = shufflevector <8 x double> %wide.vec265.1, <8 x double> poison, <4 x i32> %strided.vec267.1 = shufflevector <8 x double> %wide.vec265.1, <8 x double> poison, <4 x i32> %682 = fmul <4 x double> %strided.vec267.1, %broadcast.splat269 %683 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.1, <4 x double> %682) %684 = fmul <4 x double> %broadcast.splat273, %strided.vec266.1 %685 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.1, <4 x double> %684) %686 = fadd <4 x double> %strided.vec263.1, %683 %687 = fadd <4 x double> %strided.vec264.1, %685 %688 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 196 %interleaved.vec274.1 = shufflevector <4 x double> %686, <4 x double> %687, <8 x i32> store <8 x double> %interleaved.vec274.1, ptr %688, align 8, !noalias !4294 %689 = fsub <4 x double> %strided.vec263.1, %683 %690 = fsub <4 x double> %strided.vec264.1, %685 %691 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 452 %interleaved.vec275.1 = shufflevector <4 x double> %689, <4 x double> %690, <8 x i32> store <8 x double> %interleaved.vec275.1, ptr %691, align 8, !noalias !4294 %692 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 392 %693 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 424 %wide.vec262.2 = load <8 x double>, ptr %692, align 8, !noalias !4294 %strided.vec263.2 = shufflevector <8 x double> %wide.vec262.2, <8 x double> poison, <4 x i32> %strided.vec264.2 = shufflevector <8 x double> %wide.vec262.2, <8 x double> poison, <4 x i32> %wide.vec265.2 = load <8 x double>, ptr %693, align 8, !noalias !4294 %strided.vec266.2 = shufflevector <8 x double> %wide.vec265.2, <8 x double> poison, <4 x i32> %strided.vec267.2 = shufflevector <8 x double> %wide.vec265.2, <8 x double> poison, <4 x i32> %694 = fmul <4 x double> %strided.vec267.2, %broadcast.splat269 %695 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.2, <4 x double> %694) %696 = fmul <4 x double> %broadcast.splat273, %strided.vec266.2 %697 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.2, <4 x double> %696) %698 = fadd <4 x double> %strided.vec263.2, %695 %699 = fadd <4 x double> %strided.vec264.2, %697 %700 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 200 %interleaved.vec274.2 = shufflevector <4 x double> %698, <4 x double> %699, <8 x i32> store <8 x double> %interleaved.vec274.2, ptr %700, align 8, !noalias !4294 %701 = fsub <4 x double> %strided.vec263.2, %695 %702 = fsub <4 x double> %strided.vec264.2, %697 %703 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 456 %interleaved.vec275.2 = shufflevector <4 x double> %701, <4 x double> %702, <8 x i32> store <8 x double> %interleaved.vec275.2, ptr %703, align 8, !noalias !4294 %704 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 396 %705 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 428 %wide.vec262.3 = load <8 x double>, ptr %704, align 8, !noalias !4294 %strided.vec263.3 = shufflevector <8 x double> %wide.vec262.3, <8 x double> poison, <4 x i32> %strided.vec264.3 = shufflevector <8 x double> %wide.vec262.3, <8 x double> poison, <4 x i32> %wide.vec265.3 = load <8 x double>, ptr %705, align 8, !noalias !4294 %strided.vec266.3 = shufflevector <8 x double> %wide.vec265.3, <8 x double> poison, <4 x i32> %strided.vec267.3 = shufflevector <8 x double> %wide.vec265.3, <8 x double> poison, <4 x i32> %706 = fmul <4 x double> %strided.vec267.3, %broadcast.splat269 %707 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.3, <4 x double> %706) %708 = fmul <4 x double> %broadcast.splat273, %strided.vec266.3 %709 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.3, <4 x double> %708) %710 = fadd <4 x double> %strided.vec263.3, %707 %711 = fadd <4 x double> %strided.vec264.3, %709 %712 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 204 %interleaved.vec274.3 = shufflevector <4 x double> %710, <4 x double> %711, <8 x i32> store <8 x double> %interleaved.vec274.3, ptr %712, align 8, !noalias !4294 %713 = fsub <4 x double> %strided.vec263.3, %707 %714 = fsub <4 x double> %strided.vec264.3, %709 %715 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 460 %interleaved.vec275.3 = shufflevector <4 x double> %713, <4 x double> %714, <8 x i32> store <8 x double> %interleaved.vec275.3, ptr %715, align 8, !noalias !4294 %716 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 400 %717 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 432 %wide.vec262.4 = load <8 x double>, ptr %716, align 8, !noalias !4294 %strided.vec263.4 = shufflevector <8 x double> %wide.vec262.4, <8 x double> poison, <4 x i32> %strided.vec264.4 = shufflevector <8 x double> %wide.vec262.4, <8 x double> poison, <4 x i32> %wide.vec265.4 = load <8 x double>, ptr %717, align 8, !noalias !4294 %strided.vec266.4 = shufflevector <8 x double> %wide.vec265.4, <8 x double> poison, <4 x i32> %strided.vec267.4 = shufflevector <8 x double> %wide.vec265.4, <8 x double> poison, <4 x i32> %718 = fmul <4 x double> %strided.vec267.4, %broadcast.splat269 %719 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.4, <4 x double> %718) %720 = fmul <4 x double> %broadcast.splat273, %strided.vec266.4 %721 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.4, <4 x double> %720) %722 = fadd <4 x double> %strided.vec263.4, %719 %723 = fadd <4 x double> %strided.vec264.4, %721 %724 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %interleaved.vec274.4 = shufflevector <4 x double> %722, <4 x double> %723, <8 x i32> store <8 x double> %interleaved.vec274.4, ptr %724, align 8, !noalias !4294 %725 = fsub <4 x double> %strided.vec263.4, %719 %726 = fsub <4 x double> %strided.vec264.4, %721 %727 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 464 %interleaved.vec275.4 = shufflevector <4 x double> %725, <4 x double> %726, <8 x i32> store <8 x double> %interleaved.vec275.4, ptr %727, align 8, !noalias !4294 %728 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 404 %729 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 436 %wide.vec262.5 = load <8 x double>, ptr %728, align 8, !noalias !4294 %strided.vec263.5 = shufflevector <8 x double> %wide.vec262.5, <8 x double> poison, <4 x i32> %strided.vec264.5 = shufflevector <8 x double> %wide.vec262.5, <8 x double> poison, <4 x i32> %wide.vec265.5 = load <8 x double>, ptr %729, align 8, !noalias !4294 %strided.vec266.5 = shufflevector <8 x double> %wide.vec265.5, <8 x double> poison, <4 x i32> %strided.vec267.5 = shufflevector <8 x double> %wide.vec265.5, <8 x double> poison, <4 x i32> %730 = fmul <4 x double> %strided.vec267.5, %broadcast.splat269 %731 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.5, <4 x double> %730) %732 = fmul <4 x double> %broadcast.splat273, %strided.vec266.5 %733 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.5, <4 x double> %732) %734 = fadd <4 x double> %strided.vec263.5, %731 %735 = fadd <4 x double> %strided.vec264.5, %733 %736 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 212 %interleaved.vec274.5 = shufflevector <4 x double> %734, <4 x double> %735, <8 x i32> store <8 x double> %interleaved.vec274.5, ptr %736, align 8, !noalias !4294 %737 = fsub <4 x double> %strided.vec263.5, %731 %738 = fsub <4 x double> %strided.vec264.5, %733 %739 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 468 %interleaved.vec275.5 = shufflevector <4 x double> %737, <4 x double> %738, <8 x i32> store <8 x double> %interleaved.vec275.5, ptr %739, align 8, !noalias !4294 %740 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 408 %741 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 440 %wide.vec262.6 = load <8 x double>, ptr %740, align 8, !noalias !4294 %strided.vec263.6 = shufflevector <8 x double> %wide.vec262.6, <8 x double> poison, <4 x i32> %strided.vec264.6 = shufflevector <8 x double> %wide.vec262.6, <8 x double> poison, <4 x i32> %wide.vec265.6 = load <8 x double>, ptr %741, align 8, !noalias !4294 %strided.vec266.6 = shufflevector <8 x double> %wide.vec265.6, <8 x double> poison, <4 x i32> %strided.vec267.6 = shufflevector <8 x double> %wide.vec265.6, <8 x double> poison, <4 x i32> %742 = fmul <4 x double> %strided.vec267.6, %broadcast.splat269 %743 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.6, <4 x double> %742) %744 = fmul <4 x double> %broadcast.splat273, %strided.vec266.6 %745 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.6, <4 x double> %744) %746 = fadd <4 x double> %strided.vec263.6, %743 %747 = fadd <4 x double> %strided.vec264.6, %745 %748 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 216 %interleaved.vec274.6 = shufflevector <4 x double> %746, <4 x double> %747, <8 x i32> store <8 x double> %interleaved.vec274.6, ptr %748, align 8, !noalias !4294 %749 = fsub <4 x double> %strided.vec263.6, %743 %750 = fsub <4 x double> %strided.vec264.6, %745 %751 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 472 %interleaved.vec275.6 = shufflevector <4 x double> %749, <4 x double> %750, <8 x i32> store <8 x double> %interleaved.vec275.6, ptr %751, align 8, !noalias !4294 %752 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 412 %753 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 444 %wide.vec262.7 = load <8 x double>, ptr %752, align 8, !noalias !4294 %strided.vec263.7 = shufflevector <8 x double> %wide.vec262.7, <8 x double> poison, <4 x i32> %strided.vec264.7 = shufflevector <8 x double> %wide.vec262.7, <8 x double> poison, <4 x i32> %wide.vec265.7 = load <8 x double>, ptr %753, align 8, !noalias !4294 %strided.vec266.7 = shufflevector <8 x double> %wide.vec265.7, <8 x double> poison, <4 x i32> %strided.vec267.7 = shufflevector <8 x double> %wide.vec265.7, <8 x double> poison, <4 x i32> %754 = fmul <4 x double> %strided.vec267.7, %broadcast.splat269 %755 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.7, <4 x double> %754) %756 = fmul <4 x double> %broadcast.splat273, %strided.vec266.7 %757 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.7, <4 x double> %756) %758 = fadd <4 x double> %strided.vec263.7, %755 %759 = fadd <4 x double> %strided.vec264.7, %757 %760 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 220 %interleaved.vec274.7 = shufflevector <4 x double> %758, <4 x double> %759, <8 x i32> store <8 x double> %interleaved.vec274.7, ptr %760, align 8, !noalias !4294 %761 = fsub <4 x double> %strided.vec263.7, %755 %762 = fsub <4 x double> %strided.vec264.7, %757 %763 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 476 %interleaved.vec275.7 = shufflevector <4 x double> %761, <4 x double> %762, <8 x i32> store <8 x double> %interleaved.vec275.7, ptr %763, align 8, !noalias !4294 %764 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 224, i64 1, i32 1 %w1.1.i.i241.i.7 = load double, ptr %764, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert293 = insertelement <4 x double> poison, double %w1.1.i.i241.i.7, i64 0 %broadcast.splat294 = shufflevector <4 x double> %broadcast.splatinsert293, <4 x double> poison, <4 x i32> zeroinitializer %765 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 224, i64 1 %w1.0.i.i240.i.7 = load double, ptr %765, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert291 = insertelement <4 x double> poison, double %w1.0.i.i240.i.7, i64 0 %broadcast.splat292 = shufflevector <4 x double> %broadcast.splatinsert291, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i256.i.7 = fneg double %w1.1.i.i241.i.7 %broadcast.splatinsert289 = insertelement <4 x double> poison, double %_6.i.i.i256.i.7, i64 0 %broadcast.splat290 = shufflevector <4 x double> %broadcast.splatinsert289, <4 x double> poison, <4 x i32> zeroinitializer %766 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 480 %data.i5.i.i.i.i.i.i.i392.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 480 %data.i.i.i.i.i.i388.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %data.i.i.i.i.i.i.i.i378.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %wide.vec283 = load <8 x double>, ptr %data.i.i.i.i.i.i388.7, align 8, !noalias !4294 %strided.vec284 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %strided.vec285 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %wide.vec286 = load <8 x double>, ptr %766, align 8, !noalias !4294 %strided.vec287 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %strided.vec288 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %767 = fmul <4 x double> %strided.vec288, %broadcast.splat290 %768 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287, <4 x double> %767) %769 = fmul <4 x double> %broadcast.splat294, %strided.vec287 %770 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288, <4 x double> %769) %771 = fadd <4 x double> %strided.vec284, %768 %772 = fadd <4 x double> %strided.vec285, %770 %interleaved.vec295 = shufflevector <4 x double> %771, <4 x double> %772, <8 x i32> store <8 x double> %interleaved.vec295, ptr %data.i.i.i.i.i.i.i.i378.7, align 8, !noalias !4294 %773 = fsub <4 x double> %strided.vec284, %768 %774 = fsub <4 x double> %strided.vec285, %770 %interleaved.vec296 = shufflevector <4 x double> %773, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec296, ptr %data.i5.i.i.i.i.i.i.i392.7, align 8, !noalias !4294 %775 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 452 %776 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 484 %wide.vec283.1 = load <8 x double>, ptr %775, align 8, !noalias !4294 %strided.vec284.1 = shufflevector <8 x double> %wide.vec283.1, <8 x double> poison, <4 x i32> %strided.vec285.1 = shufflevector <8 x double> %wide.vec283.1, <8 x double> poison, <4 x i32> %wide.vec286.1 = load <8 x double>, ptr %776, align 8, !noalias !4294 %strided.vec287.1 = shufflevector <8 x double> %wide.vec286.1, <8 x double> poison, <4 x i32> %strided.vec288.1 = shufflevector <8 x double> %wide.vec286.1, <8 x double> poison, <4 x i32> %777 = fmul <4 x double> %strided.vec288.1, %broadcast.splat290 %778 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.1, <4 x double> %777) %779 = fmul <4 x double> %broadcast.splat294, %strided.vec287.1 %780 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.1, <4 x double> %779) %781 = fadd <4 x double> %strided.vec284.1, %778 %782 = fadd <4 x double> %strided.vec285.1, %780 %783 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 228 %interleaved.vec295.1 = shufflevector <4 x double> %781, <4 x double> %782, <8 x i32> store <8 x double> %interleaved.vec295.1, ptr %783, align 8, !noalias !4294 %784 = fsub <4 x double> %strided.vec284.1, %778 %785 = fsub <4 x double> %strided.vec285.1, %780 %786 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 484 %interleaved.vec296.1 = shufflevector <4 x double> %784, <4 x double> %785, <8 x i32> store <8 x double> %interleaved.vec296.1, ptr %786, align 8, !noalias !4294 %787 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 456 %788 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 488 %wide.vec283.2 = load <8 x double>, ptr %787, align 8, !noalias !4294 %strided.vec284.2 = shufflevector <8 x double> %wide.vec283.2, <8 x double> poison, <4 x i32> %strided.vec285.2 = shufflevector <8 x double> %wide.vec283.2, <8 x double> poison, <4 x i32> %wide.vec286.2 = load <8 x double>, ptr %788, align 8, !noalias !4294 %strided.vec287.2 = shufflevector <8 x double> %wide.vec286.2, <8 x double> poison, <4 x i32> %strided.vec288.2 = shufflevector <8 x double> %wide.vec286.2, <8 x double> poison, <4 x i32> %789 = fmul <4 x double> %strided.vec288.2, %broadcast.splat290 %790 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.2, <4 x double> %789) %791 = fmul <4 x double> %broadcast.splat294, %strided.vec287.2 %792 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.2, <4 x double> %791) %793 = fadd <4 x double> %strided.vec284.2, %790 %794 = fadd <4 x double> %strided.vec285.2, %792 %795 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 232 %interleaved.vec295.2 = shufflevector <4 x double> %793, <4 x double> %794, <8 x i32> store <8 x double> %interleaved.vec295.2, ptr %795, align 8, !noalias !4294 %796 = fsub <4 x double> %strided.vec284.2, %790 %797 = fsub <4 x double> %strided.vec285.2, %792 %798 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 488 %interleaved.vec296.2 = shufflevector <4 x double> %796, <4 x double> %797, <8 x i32> store <8 x double> %interleaved.vec296.2, ptr %798, align 8, !noalias !4294 %799 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 460 %800 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 492 %wide.vec283.3 = load <8 x double>, ptr %799, align 8, !noalias !4294 %strided.vec284.3 = shufflevector <8 x double> %wide.vec283.3, <8 x double> poison, <4 x i32> %strided.vec285.3 = shufflevector <8 x double> %wide.vec283.3, <8 x double> poison, <4 x i32> %wide.vec286.3 = load <8 x double>, ptr %800, align 8, !noalias !4294 %strided.vec287.3 = shufflevector <8 x double> %wide.vec286.3, <8 x double> poison, <4 x i32> %strided.vec288.3 = shufflevector <8 x double> %wide.vec286.3, <8 x double> poison, <4 x i32> %801 = fmul <4 x double> %strided.vec288.3, %broadcast.splat290 %802 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.3, <4 x double> %801) %803 = fmul <4 x double> %broadcast.splat294, %strided.vec287.3 %804 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.3, <4 x double> %803) %805 = fadd <4 x double> %strided.vec284.3, %802 %806 = fadd <4 x double> %strided.vec285.3, %804 %807 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 236 %interleaved.vec295.3 = shufflevector <4 x double> %805, <4 x double> %806, <8 x i32> store <8 x double> %interleaved.vec295.3, ptr %807, align 8, !noalias !4294 %808 = fsub <4 x double> %strided.vec284.3, %802 %809 = fsub <4 x double> %strided.vec285.3, %804 %810 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 492 %interleaved.vec296.3 = shufflevector <4 x double> %808, <4 x double> %809, <8 x i32> store <8 x double> %interleaved.vec296.3, ptr %810, align 8, !noalias !4294 %811 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 464 %812 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 496 %wide.vec283.4 = load <8 x double>, ptr %811, align 8, !noalias !4294 %strided.vec284.4 = shufflevector <8 x double> %wide.vec283.4, <8 x double> poison, <4 x i32> %strided.vec285.4 = shufflevector <8 x double> %wide.vec283.4, <8 x double> poison, <4 x i32> %wide.vec286.4 = load <8 x double>, ptr %812, align 8, !noalias !4294 %strided.vec287.4 = shufflevector <8 x double> %wide.vec286.4, <8 x double> poison, <4 x i32> %strided.vec288.4 = shufflevector <8 x double> %wide.vec286.4, <8 x double> poison, <4 x i32> %813 = fmul <4 x double> %strided.vec288.4, %broadcast.splat290 %814 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.4, <4 x double> %813) %815 = fmul <4 x double> %broadcast.splat294, %strided.vec287.4 %816 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.4, <4 x double> %815) %817 = fadd <4 x double> %strided.vec284.4, %814 %818 = fadd <4 x double> %strided.vec285.4, %816 %819 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %interleaved.vec295.4 = shufflevector <4 x double> %817, <4 x double> %818, <8 x i32> store <8 x double> %interleaved.vec295.4, ptr %819, align 8, !noalias !4294 %820 = fsub <4 x double> %strided.vec284.4, %814 %821 = fsub <4 x double> %strided.vec285.4, %816 %822 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496 %interleaved.vec296.4 = shufflevector <4 x double> %820, <4 x double> %821, <8 x i32> store <8 x double> %interleaved.vec296.4, ptr %822, align 8, !noalias !4294 %823 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 468 %824 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 500 %wide.vec283.5 = load <8 x double>, ptr %823, align 8, !noalias !4294 %strided.vec284.5 = shufflevector <8 x double> %wide.vec283.5, <8 x double> poison, <4 x i32> %strided.vec285.5 = shufflevector <8 x double> %wide.vec283.5, <8 x double> poison, <4 x i32> %wide.vec286.5 = load <8 x double>, ptr %824, align 8, !noalias !4294 %strided.vec287.5 = shufflevector <8 x double> %wide.vec286.5, <8 x double> poison, <4 x i32> %strided.vec288.5 = shufflevector <8 x double> %wide.vec286.5, <8 x double> poison, <4 x i32> %825 = fmul <4 x double> %strided.vec288.5, %broadcast.splat290 %826 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.5, <4 x double> %825) %827 = fmul <4 x double> %broadcast.splat294, %strided.vec287.5 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.5, <4 x double> %827) %829 = fadd <4 x double> %strided.vec284.5, %826 %830 = fadd <4 x double> %strided.vec285.5, %828 %831 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %interleaved.vec295.5 = shufflevector <4 x double> %829, <4 x double> %830, <8 x i32> store <8 x double> %interleaved.vec295.5, ptr %831, align 8, !noalias !4294 %832 = fsub <4 x double> %strided.vec284.5, %826 %833 = fsub <4 x double> %strided.vec285.5, %828 %834 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500 %interleaved.vec296.5 = shufflevector <4 x double> %832, <4 x double> %833, <8 x i32> store <8 x double> %interleaved.vec296.5, ptr %834, align 8, !noalias !4294 %835 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 472 %836 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 504 %wide.vec283.6 = load <8 x double>, ptr %835, align 8, !noalias !4294 %strided.vec284.6 = shufflevector <8 x double> %wide.vec283.6, <8 x double> poison, <4 x i32> %strided.vec285.6 = shufflevector <8 x double> %wide.vec283.6, <8 x double> poison, <4 x i32> %wide.vec286.6 = load <8 x double>, ptr %836, align 8, !noalias !4294 %strided.vec287.6 = shufflevector <8 x double> %wide.vec286.6, <8 x double> poison, <4 x i32> %strided.vec288.6 = shufflevector <8 x double> %wide.vec286.6, <8 x double> poison, <4 x i32> %837 = fmul <4 x double> %strided.vec288.6, %broadcast.splat290 %838 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.6, <4 x double> %837) %839 = fmul <4 x double> %broadcast.splat294, %strided.vec287.6 %840 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.6, <4 x double> %839) %841 = fadd <4 x double> %strided.vec284.6, %838 %842 = fadd <4 x double> %strided.vec285.6, %840 %843 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %interleaved.vec295.6 = shufflevector <4 x double> %841, <4 x double> %842, <8 x i32> store <8 x double> %interleaved.vec295.6, ptr %843, align 8, !noalias !4294 %844 = fsub <4 x double> %strided.vec284.6, %838 %845 = fsub <4 x double> %strided.vec285.6, %840 %846 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %interleaved.vec296.6 = shufflevector <4 x double> %844, <4 x double> %845, <8 x i32> store <8 x double> %interleaved.vec296.6, ptr %846, align 8, !noalias !4294 %847 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 476 %848 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %wide.vec283.7 = load <8 x double>, ptr %847, align 8, !noalias !4294 %strided.vec284.7 = shufflevector <8 x double> %wide.vec283.7, <8 x double> poison, <4 x i32> %strided.vec285.7 = shufflevector <8 x double> %wide.vec283.7, <8 x double> poison, <4 x i32> %wide.vec286.7 = load <8 x double>, ptr %848, align 8, !noalias !4294 %strided.vec287.7 = shufflevector <8 x double> %wide.vec286.7, <8 x double> poison, <4 x i32> %strided.vec288.7 = shufflevector <8 x double> %wide.vec286.7, <8 x double> poison, <4 x i32> %849 = fmul <4 x double> %strided.vec288.7, %broadcast.splat290 %850 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.7, <4 x double> %849) %851 = fmul <4 x double> %broadcast.splat294, %strided.vec287.7 %852 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.7, <4 x double> %851) %853 = fadd <4 x double> %strided.vec284.7, %850 %854 = fadd <4 x double> %strided.vec285.7, %852 %855 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %interleaved.vec295.7 = shufflevector <4 x double> %853, <4 x double> %854, <8 x i32> store <8 x double> %interleaved.vec295.7, ptr %855, align 8, !noalias !4294 %856 = fsub <4 x double> %strided.vec284.7, %850 %857 = fsub <4 x double> %strided.vec285.7, %852 %858 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %interleaved.vec296.7 = shufflevector <4 x double> %856, <4 x double> %857, <8 x i32> store <8 x double> %interleaved.vec296.7, ptr %858, align 8, !noalias !4294 br label %bb19.i.i40.i.i bb19.i.i40.i.i: ; preds = %vector.body134, %bb19.i.i40.i.i %iter.i.i9.i.i.sroa.38.0166 = phi i64 [ %906, %bb19.i.i40.i.i ], [ 0, %vector.body134 ] %start1.i.i.i.i.i.i.i.i549 = shl nuw nsw i64 %iter.i.i9.i.i.sroa.38.0166, 4 %859 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i549, i64 1, i32 1 %w1.1.i.i43.i.i = load double, ptr %859, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert314 = insertelement <4 x double> poison, double %w1.1.i.i43.i.i, i64 0 %broadcast.splat315 = shufflevector <4 x double> %broadcast.splatinsert314, <4 x double> poison, <4 x i32> zeroinitializer %860 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i549, i64 1 %w1.0.i.i42.i.i = load double, ptr %860, align 8, !noalias !4294, !noundef !3 %broadcast.splatinsert312 = insertelement <4 x double> poison, double %w1.0.i.i42.i.i, i64 0 %broadcast.splat313 = shufflevector <4 x double> %broadcast.splatinsert312, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i58.i.i = fneg double %w1.1.i.i43.i.i %broadcast.splatinsert310 = insertelement <4 x double> poison, double %_6.i.i.i58.i.i, i64 0 %broadcast.splat311 = shufflevector <4 x double> %broadcast.splatinsert310, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i559 = shl nuw nsw i64 %iter.i.i9.i.i.sroa.38.0166, 5 %data.i.i.i.i.i.i560 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i559 %861 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 16 %data.i5.i.i.i.i.i.i.i564 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i549 %data.i.i.i.i.i.i.i.i550 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i549 %wide.vec304 = load <8 x double>, ptr %data.i.i.i.i.i.i560, align 8, !noalias !4294 %strided.vec305 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %strided.vec306 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %wide.vec307 = load <8 x double>, ptr %861, align 8, !noalias !4294 %strided.vec308 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %strided.vec309 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %862 = fmul <4 x double> %strided.vec309, %broadcast.splat311 %863 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308, <4 x double> %862) %864 = fmul <4 x double> %broadcast.splat315, %strided.vec308 %865 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309, <4 x double> %864) %866 = fadd <4 x double> %strided.vec305, %863 %867 = fadd <4 x double> %strided.vec306, %865 %interleaved.vec316 = shufflevector <4 x double> %866, <4 x double> %867, <8 x i32> store <8 x double> %interleaved.vec316, ptr %data.i.i.i.i.i.i.i.i550, align 8, !noalias !4294 %868 = fsub <4 x double> %strided.vec305, %863 %869 = fsub <4 x double> %strided.vec306, %865 %interleaved.vec317 = shufflevector <4 x double> %868, <4 x double> %869, <8 x i32> store <8 x double> %interleaved.vec317, ptr %data.i5.i.i.i.i.i.i.i564, align 8, !noalias !4294 %870 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 4 %871 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 20 %wide.vec304.1 = load <8 x double>, ptr %870, align 8, !noalias !4294 %strided.vec305.1 = shufflevector <8 x double> %wide.vec304.1, <8 x double> poison, <4 x i32> %strided.vec306.1 = shufflevector <8 x double> %wide.vec304.1, <8 x double> poison, <4 x i32> %wide.vec307.1 = load <8 x double>, ptr %871, align 8, !noalias !4294 %strided.vec308.1 = shufflevector <8 x double> %wide.vec307.1, <8 x double> poison, <4 x i32> %strided.vec309.1 = shufflevector <8 x double> %wide.vec307.1, <8 x double> poison, <4 x i32> %872 = fmul <4 x double> %strided.vec309.1, %broadcast.splat311 %873 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.1, <4 x double> %872) %874 = fmul <4 x double> %broadcast.splat315, %strided.vec308.1 %875 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.1, <4 x double> %874) %876 = fadd <4 x double> %strided.vec305.1, %873 %877 = fadd <4 x double> %strided.vec306.1, %875 %878 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i550, i64 4 %interleaved.vec316.1 = shufflevector <4 x double> %876, <4 x double> %877, <8 x i32> store <8 x double> %interleaved.vec316.1, ptr %878, align 8, !noalias !4294 %879 = fsub <4 x double> %strided.vec305.1, %873 %880 = fsub <4 x double> %strided.vec306.1, %875 %881 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i564, i64 4 %interleaved.vec317.1 = shufflevector <4 x double> %879, <4 x double> %880, <8 x i32> store <8 x double> %interleaved.vec317.1, ptr %881, align 8, !noalias !4294 %882 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 8 %883 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 24 %wide.vec304.2 = load <8 x double>, ptr %882, align 8, !noalias !4294 %strided.vec305.2 = shufflevector <8 x double> %wide.vec304.2, <8 x double> poison, <4 x i32> %strided.vec306.2 = shufflevector <8 x double> %wide.vec304.2, <8 x double> poison, <4 x i32> %wide.vec307.2 = load <8 x double>, ptr %883, align 8, !noalias !4294 %strided.vec308.2 = shufflevector <8 x double> %wide.vec307.2, <8 x double> poison, <4 x i32> %strided.vec309.2 = shufflevector <8 x double> %wide.vec307.2, <8 x double> poison, <4 x i32> %884 = fmul <4 x double> %strided.vec309.2, %broadcast.splat311 %885 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.2, <4 x double> %884) %886 = fmul <4 x double> %broadcast.splat315, %strided.vec308.2 %887 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.2, <4 x double> %886) %888 = fadd <4 x double> %strided.vec305.2, %885 %889 = fadd <4 x double> %strided.vec306.2, %887 %890 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i550, i64 8 %interleaved.vec316.2 = shufflevector <4 x double> %888, <4 x double> %889, <8 x i32> store <8 x double> %interleaved.vec316.2, ptr %890, align 8, !noalias !4294 %891 = fsub <4 x double> %strided.vec305.2, %885 %892 = fsub <4 x double> %strided.vec306.2, %887 %893 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i564, i64 8 %interleaved.vec317.2 = shufflevector <4 x double> %891, <4 x double> %892, <8 x i32> store <8 x double> %interleaved.vec317.2, ptr %893, align 8, !noalias !4294 %894 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 12 %895 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i560, i64 28 %wide.vec304.3 = load <8 x double>, ptr %894, align 8, !noalias !4294 %strided.vec305.3 = shufflevector <8 x double> %wide.vec304.3, <8 x double> poison, <4 x i32> %strided.vec306.3 = shufflevector <8 x double> %wide.vec304.3, <8 x double> poison, <4 x i32> %wide.vec307.3 = load <8 x double>, ptr %895, align 8, !noalias !4294 %strided.vec308.3 = shufflevector <8 x double> %wide.vec307.3, <8 x double> poison, <4 x i32> %strided.vec309.3 = shufflevector <8 x double> %wide.vec307.3, <8 x double> poison, <4 x i32> %896 = fmul <4 x double> %strided.vec309.3, %broadcast.splat311 %897 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec308.3, <4 x double> %896) %898 = fmul <4 x double> %broadcast.splat315, %strided.vec308.3 %899 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat313, <4 x double> %strided.vec309.3, <4 x double> %898) %900 = fadd <4 x double> %strided.vec305.3, %897 %901 = fadd <4 x double> %strided.vec306.3, %899 %902 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i550, i64 12 %interleaved.vec316.3 = shufflevector <4 x double> %900, <4 x double> %901, <8 x i32> store <8 x double> %interleaved.vec316.3, ptr %902, align 8, !noalias !4294 %903 = fsub <4 x double> %strided.vec305.3, %897 %904 = fsub <4 x double> %strided.vec306.3, %899 %905 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i564, i64 12 %interleaved.vec317.3 = shufflevector <4 x double> %903, <4 x double> %904, <8 x i32> store <8 x double> %interleaved.vec317.3, ptr %905, align 8, !noalias !4294 %906 = add nuw nsw i64 %iter.i.i9.i.i.sroa.38.0166, 1 %exitcond182.not = icmp eq i64 %906, 16 br i1 %exitcond182.not, label %bb19.i.i.i.i, label %bb19.i.i40.i.i bb19.i.i.i.i: ; preds = %bb19.i.i40.i.i, %bb19.i.i.i.i %iter.i.i.i.i.sroa.38.0168 = phi i64 [ %943, %bb19.i.i.i.i ], [ 0, %bb19.i.i40.i.i ] %start1.i.i.i.i.i.i.i.i721 = shl nuw nsw i64 %iter.i.i.i.i.sroa.38.0168, 3 %data.i.i.i.i.i.i.i.i722 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i721 %start1.i.i.i.i.i.i731 = shl nuw nsw i64 %iter.i.i.i.i.sroa.38.0168, 4 %data.i.i.i.i.i.i732 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i731 %data.i5.i.i.i.i.i.i.i736 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %start1.i.i.i.i.i.i.i.i721 %907 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i721, i64 1 %w1.0.i.i.i.i = load double, ptr %907, align 8, !noalias !4294, !noundef !3 %908 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i721, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %908, align 8, !noalias !4294, !noundef !3 %909 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 8 %_6.i.i.i.i.i = fneg double %w1.1.i.i.i.i %910 = load <4 x double>, ptr %data.i.i.i.i.i.i732, align 8, !noalias !4294 %911 = load <4 x double>, ptr %909, align 8, !noalias !4294 %912 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %913 = insertelement <4 x double> %912, double %w1.1.i.i.i.i, i64 1 %914 = shufflevector <4 x double> %913, <4 x double> poison, <4 x i32> %915 = fmul <4 x double> %914, %911 %916 = shufflevector <4 x double> %915, <4 x double> poison, <4 x i32> %917 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %918 = shufflevector <4 x double> %917, <4 x double> poison, <4 x i32> zeroinitializer %919 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %918, <4 x double> %911, <4 x double> %916) %920 = fadd <4 x double> %910, %919 store <4 x double> %920, ptr %data.i.i.i.i.i.i.i.i722, align 8, !noalias !4294 %921 = fsub <4 x double> %910, %919 store <4 x double> %921, ptr %data.i5.i.i.i.i.i.i.i736, align 8, !noalias !4294 %_3.i.i.i.i.i.i.i.i781.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i722, i64 2 %_3.i2.i.i.i.i.i.i.i784.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i736, i64 2 %_3.i.i.i.i.i.i787.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 2 %_3.i.i.i.i790.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 10 %922 = load <4 x double>, ptr %_3.i.i.i.i.i.i787.2, align 8, !noalias !4294 %923 = load <4 x double>, ptr %_3.i.i.i.i790.2, align 8, !noalias !4294 %924 = fmul <4 x double> %914, %923 %925 = shufflevector <4 x double> %924, <4 x double> poison, <4 x i32> %926 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %918, <4 x double> %923, <4 x double> %925) %927 = fadd <4 x double> %922, %926 store <4 x double> %927, ptr %_3.i.i.i.i.i.i.i.i781.2, align 8, !noalias !4294 %928 = fsub <4 x double> %922, %926 store <4 x double> %928, ptr %_3.i2.i.i.i.i.i.i.i784.2, align 8, !noalias !4294 %_3.i.i.i.i.i.i.i.i781.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i722, i64 4 %_3.i2.i.i.i.i.i.i.i784.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i736, i64 4 %_3.i.i.i.i.i.i787.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 4 %_3.i.i.i.i790.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 12 %929 = load <4 x double>, ptr %_3.i.i.i.i.i.i787.4, align 8, !noalias !4294 %930 = load <4 x double>, ptr %_3.i.i.i.i790.4, align 8, !noalias !4294 %931 = fmul <4 x double> %914, %930 %932 = shufflevector <4 x double> %931, <4 x double> poison, <4 x i32> %933 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %918, <4 x double> %930, <4 x double> %932) %934 = fadd <4 x double> %929, %933 store <4 x double> %934, ptr %_3.i.i.i.i.i.i.i.i781.4, align 8, !noalias !4294 %935 = fsub <4 x double> %929, %933 store <4 x double> %935, ptr %_3.i2.i.i.i.i.i.i.i784.4, align 8, !noalias !4294 %_3.i.i.i.i.i.i.i.i781.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i722, i64 6 %_3.i2.i.i.i.i.i.i.i784.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i736, i64 6 %_3.i.i.i.i.i.i787.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 6 %_3.i.i.i.i790.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i732, i64 14 %936 = load <4 x double>, ptr %_3.i.i.i.i.i.i787.6, align 8, !noalias !4294 %937 = load <4 x double>, ptr %_3.i.i.i.i790.6, align 8, !noalias !4294 %938 = fmul <4 x double> %914, %937 %939 = shufflevector <4 x double> %938, <4 x double> poison, <4 x i32> %940 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %918, <4 x double> %937, <4 x double> %939) %941 = fadd <4 x double> %936, %940 store <4 x double> %941, ptr %_3.i.i.i.i.i.i.i.i781.6, align 8, !noalias !4294 %942 = fsub <4 x double> %936, %940 store <4 x double> %942, ptr %_3.i2.i.i.i.i.i.i.i784.6, align 8, !noalias !4294 %943 = add nuw nsw i64 %iter.i.i.i.i.sroa.38.0168, 1 %exitcond184.not = icmp eq i64 %943, 32 br i1 %exitcond184.not, label %vector.body323, label %bb19.i.i.i.i vector.body323: ; preds = %bb19.i.i.i.i, %vector.body323 %index324 = phi i64 [ %index.next344, %vector.body323 ], [ 0, %bb19.i.i.i.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body323 ], [ , %bb19.i.i.i.i ] %944 = shl nuw nsw <4 x i64> %vec.ind, %945 = extractelement <4 x i64> %944, i64 0 %946 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %945 %947 = shl nuw nsw <4 x i64> %vec.ind, %948 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %947 %949 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %945 %950 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %944, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %950, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %951 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %944, i64 1, i32 1 %wide.masked.gather325 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %951, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %952 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 4 %953 = fneg <4 x double> %wide.masked.gather325 %wide.masked.gather326 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %948, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %954 = getelementptr inbounds i8, <4 x ptr> %948, i64 8 %wide.masked.gather327 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %954, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %wide.masked.gather328 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %952, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %955 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 4, i32 1 %wide.masked.gather329 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %955, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %956 = fmul <4 x double> %wide.masked.gather329, %953 %957 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather328, <4 x double> %956) %958 = fmul <4 x double> %wide.masked.gather325, %wide.masked.gather328 %959 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather329, <4 x double> %958) %960 = fadd <4 x double> %wide.masked.gather326, %957 %961 = fadd <4 x double> %wide.masked.gather327, %959 %962 = fsub <4 x double> %wide.masked.gather326, %957 %963 = fsub <4 x double> %wide.masked.gather327, %959 %964 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 1 %965 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 5 %wide.masked.gather330 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %964, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %966 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 1, i32 1 %wide.masked.gather331 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %966, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %wide.masked.gather332 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %965, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %967 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 5, i32 1 %wide.masked.gather333 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %967, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %968 = fmul <4 x double> %wide.masked.gather333, %953 %969 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather332, <4 x double> %968) %970 = fmul <4 x double> %wide.masked.gather325, %wide.masked.gather332 %971 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather333, <4 x double> %970) %972 = fadd <4 x double> %wide.masked.gather330, %969 %973 = fadd <4 x double> %wide.masked.gather331, %971 %974 = fsub <4 x double> %wide.masked.gather330, %969 %975 = fsub <4 x double> %wide.masked.gather331, %971 %976 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 2 %977 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 6 %wide.masked.gather334 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %976, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %978 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 2, i32 1 %wide.masked.gather335 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %978, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %wide.masked.gather336 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %977, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %979 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 6, i32 1 %wide.masked.gather337 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %979, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %980 = fmul <4 x double> %wide.masked.gather337, %953 %981 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather336, <4 x double> %980) %982 = fmul <4 x double> %wide.masked.gather325, %wide.masked.gather336 %983 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather337, <4 x double> %982) %984 = fadd <4 x double> %wide.masked.gather334, %981 %985 = fadd <4 x double> %wide.masked.gather335, %983 %986 = fsub <4 x double> %wide.masked.gather334, %981 %987 = fsub <4 x double> %wide.masked.gather335, %983 %988 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 3 %989 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 7 %wide.masked.gather338 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %988, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %990 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 3, i32 1 %wide.masked.gather339 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %990, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %wide.masked.gather340 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %989, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %991 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %948, i64 7, i32 1 %wide.masked.gather341 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %991, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %992 = fmul <4 x double> %wide.masked.gather341, %953 %993 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather340, <4 x double> %992) %994 = fmul <4 x double> %wide.masked.gather325, %wide.masked.gather340 %995 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather341, <4 x double> %994) %996 = fadd <4 x double> %wide.masked.gather338, %993 %997 = fadd <4 x double> %wide.masked.gather339, %995 %998 = shufflevector <4 x double> %960, <4 x double> %961, <8 x i32> %999 = shufflevector <4 x double> %972, <4 x double> %973, <8 x i32> %1000 = shufflevector <4 x double> %984, <4 x double> %985, <8 x i32> %1001 = shufflevector <4 x double> %996, <4 x double> %997, <8 x i32> %1002 = shufflevector <8 x double> %998, <8 x double> %999, <16 x i32> %1003 = shufflevector <8 x double> %1000, <8 x double> %1001, <16 x i32> %interleaved.vec342 = shufflevector <16 x double> %1002, <16 x double> %1003, <32 x i32> store <32 x double> %interleaved.vec342, ptr %946, align 8, !noalias !4294 %1004 = fsub <4 x double> %wide.masked.gather338, %993 %1005 = fsub <4 x double> %wide.masked.gather339, %995 %1006 = shufflevector <4 x double> %962, <4 x double> %963, <8 x i32> %1007 = shufflevector <4 x double> %974, <4 x double> %975, <8 x i32> %1008 = shufflevector <4 x double> %986, <4 x double> %987, <8 x i32> %1009 = shufflevector <4 x double> %1004, <4 x double> %1005, <8 x i32> %1010 = shufflevector <8 x double> %1006, <8 x double> %1007, <16 x i32> %1011 = shufflevector <8 x double> %1008, <8 x double> %1009, <16 x i32> %interleaved.vec343 = shufflevector <16 x double> %1010, <16 x double> %1011, <32 x i32> store <32 x double> %interleaved.vec343, ptr %949, align 8, !noalias !4294 %index.next344 = add nuw i64 %index324, 4 %vec.ind.next = add <4 x i64> %vec.ind, %1012 = icmp eq i64 %index.next344, 64 br i1 %1012, label %vector.body349, label %vector.body323, !llvm.loop !4304 vector.body349: ; preds = %vector.body323, %vector.body349 %index350 = phi i64 [ %index.next365, %vector.body349 ], [ 0, %vector.body323 ] %vec.ind351 = phi <4 x i64> [ %vec.ind.next352, %vector.body349 ], [ , %vector.body323 ] %1013 = shl nuw nsw <4 x i64> %vec.ind351, %1014 = extractelement <4 x i64> %1013, i64 0 %1015 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %1014 %1016 = shl nuw nsw <4 x i64> %vec.ind351, %1017 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %1016 %1018 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %1014 %1019 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %1013, i64 1 %wide.masked.gather353 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1019, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1020 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %1013, i64 1, i32 1 %wide.masked.gather354 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1020, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1021 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %1017, i64 2 %1022 = fneg <4 x double> %wide.masked.gather354 %wide.masked.gather355 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1017, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1023 = getelementptr inbounds i8, <4 x ptr> %1017, i64 8 %wide.masked.gather356 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1023, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %wide.masked.gather357 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1021, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1024 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %1017, i64 2, i32 1 %wide.masked.gather358 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1024, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1025 = fmul <4 x double> %wide.masked.gather358, %1022 %1026 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather353, <4 x double> %wide.masked.gather357, <4 x double> %1025) %1027 = fmul <4 x double> %wide.masked.gather354, %wide.masked.gather357 %1028 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather353, <4 x double> %wide.masked.gather358, <4 x double> %1027) %1029 = fadd <4 x double> %wide.masked.gather355, %1026 %1030 = fadd <4 x double> %wide.masked.gather356, %1028 %1031 = fsub <4 x double> %wide.masked.gather355, %1026 %1032 = fsub <4 x double> %wide.masked.gather356, %1028 %1033 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %1017, i64 1 %1034 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %1017, i64 3 %wide.masked.gather359 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1033, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1035 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %1017, i64 1, i32 1 %wide.masked.gather360 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1035, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %wide.masked.gather361 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1034, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1036 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %1017, i64 3, i32 1 %wide.masked.gather362 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %1036, i32 8, <4 x i1> , <4 x double> poison), !noalias !4294 %1037 = fmul <4 x double> %wide.masked.gather362, %1022 %1038 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather353, <4 x double> %wide.masked.gather361, <4 x double> %1037) %1039 = fmul <4 x double> %wide.masked.gather354, %wide.masked.gather361 %1040 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather353, <4 x double> %wide.masked.gather362, <4 x double> %1039) %1041 = fadd <4 x double> %wide.masked.gather359, %1038 %1042 = fadd <4 x double> %wide.masked.gather360, %1040 %1043 = shufflevector <4 x double> %1029, <4 x double> %1030, <8 x i32> %1044 = shufflevector <4 x double> %1041, <4 x double> %1042, <8 x i32> %interleaved.vec363 = shufflevector <8 x double> %1043, <8 x double> %1044, <16 x i32> store <16 x double> %interleaved.vec363, ptr %1015, align 8, !noalias !4294 %1045 = fsub <4 x double> %wide.masked.gather359, %1038 %1046 = fsub <4 x double> %wide.masked.gather360, %1040 %1047 = shufflevector <4 x double> %1031, <4 x double> %1032, <8 x i32> %1048 = shufflevector <4 x double> %1045, <4 x double> %1046, <8 x i32> %interleaved.vec364 = shufflevector <8 x double> %1047, <8 x double> %1048, <16 x i32> store <16 x double> %interleaved.vec364, ptr %1018, align 8, !noalias !4294 %index.next365 = add nuw i64 %index350, 4 %vec.ind.next352 = add <4 x i64> %vec.ind351, %1049 = icmp eq i64 %index.next365, 124 br i1 %1049, label %bb19.i.i.i, label %vector.body349, !llvm.loop !4305 bb19.i.i.i: ; preds = %vector.body349 %data.i.i.i.i.i.i.i.i1066 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %data.i.i.i.i.i.i1076 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 496 %data.i5.i.i.i.i.i.i.i1080 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %1050 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 248, i64 1 %w1.0.i.i.i = load double, ptr %1050, align 8, !noalias !4294, !noundef !3 %1051 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 248, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %1051, align 8, !noalias !4294, !noundef !3 %1052 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 498 %_6.i.i.i.i = fneg double %w1.1.i.i.i %1053 = load <4 x double>, ptr %data.i.i.i.i.i.i1076, align 8, !noalias !4294 %1054 = load <4 x double>, ptr %1052, align 8, !noalias !4294 %1055 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %1056 = insertelement <4 x double> %1055, double %w1.1.i.i.i, i64 1 %1057 = shufflevector <4 x double> %1056, <4 x double> poison, <4 x i32> %1058 = fmul <4 x double> %1057, %1054 %1059 = shufflevector <4 x double> %1058, <4 x double> poison, <4 x i32> %1060 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %1061 = shufflevector <4 x double> %1060, <4 x double> poison, <4 x i32> zeroinitializer %1062 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %1061, <4 x double> %1054, <4 x double> %1059) %1063 = fadd <4 x double> %1053, %1062 store <4 x double> %1063, ptr %data.i.i.i.i.i.i.i.i1066, align 8, !noalias !4294 %1064 = fsub <4 x double> %1053, %1062 store <4 x double> %1064, ptr %data.i5.i.i.i.i.i.i.i1080, align 8, !noalias !4294 %data.i.i.i.i.i.i.i.i1066.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %data.i.i.i.i.i.i1076.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 500 %data.i5.i.i.i.i.i.i.i1080.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %1065 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 250, i64 1 %w1.0.i.i.i.1 = load double, ptr %1065, align 8, !noalias !4294, !noundef !3 %1066 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 250, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %1066, align 8, !noalias !4294, !noundef !3 %1067 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 502 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %1068 = load <4 x double>, ptr %data.i.i.i.i.i.i1076.1, align 8, !noalias !4294 %1069 = load <4 x double>, ptr %1067, align 8, !noalias !4294 %1070 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %1071 = insertelement <4 x double> %1070, double %w1.1.i.i.i.1, i64 1 %1072 = shufflevector <4 x double> %1071, <4 x double> poison, <4 x i32> %1073 = fmul <4 x double> %1072, %1069 %1074 = shufflevector <4 x double> %1073, <4 x double> poison, <4 x i32> %1075 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %1076 = shufflevector <4 x double> %1075, <4 x double> poison, <4 x i32> zeroinitializer %1077 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %1076, <4 x double> %1069, <4 x double> %1074) %1078 = fadd <4 x double> %1068, %1077 store <4 x double> %1078, ptr %data.i.i.i.i.i.i.i.i1066.1, align 8, !noalias !4294 %1079 = fsub <4 x double> %1068, %1077 store <4 x double> %1079, ptr %data.i5.i.i.i.i.i.i.i1080.1, align 8, !noalias !4294 %data.i.i.i.i.i.i.i.i1066.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %data.i.i.i.i.i.i1076.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 504 %data.i5.i.i.i.i.i.i.i1080.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %1080 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i.i.2 = load double, ptr %1080, align 8, !noalias !4294, !noundef !3 %1081 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %1081, align 8, !noalias !4294, !noundef !3 %1082 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 506 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %1083 = load <4 x double>, ptr %data.i.i.i.i.i.i1076.2, align 8, !noalias !4294 %1084 = load <4 x double>, ptr %1082, align 8, !noalias !4294 %1085 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %1086 = insertelement <4 x double> %1085, double %w1.1.i.i.i.2, i64 1 %1087 = shufflevector <4 x double> %1086, <4 x double> poison, <4 x i32> %1088 = fmul <4 x double> %1087, %1084 %1089 = shufflevector <4 x double> %1088, <4 x double> poison, <4 x i32> %1090 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %1091 = shufflevector <4 x double> %1090, <4 x double> poison, <4 x i32> zeroinitializer %1092 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %1091, <4 x double> %1084, <4 x double> %1089) %1093 = fadd <4 x double> %1083, %1092 store <4 x double> %1093, ptr %data.i.i.i.i.i.i.i.i1066.2, align 8, !noalias !4294 %1094 = fsub <4 x double> %1083, %1092 store <4 x double> %1094, ptr %data.i5.i.i.i.i.i.i.i1080.2, align 8, !noalias !4294 %data.i.i.i.i.i.i.i.i1066.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %data.i.i.i.i.i.i1076.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i5.i.i.i.i.i.i.i1080.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %1095 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.i.3 = load double, ptr %1095, align 8, !noalias !4294, !noundef !3 %1096 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %1096, align 8, !noalias !4294, !noundef !3 %1097 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %1098 = load <4 x double>, ptr %data.i.i.i.i.i.i1076.3, align 8, !noalias !4294 %1099 = load <4 x double>, ptr %1097, align 8, !noalias !4294 %1100 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %1101 = insertelement <4 x double> %1100, double %w1.1.i.i.i.3, i64 1 %1102 = shufflevector <4 x double> %1101, <4 x double> poison, <4 x i32> %1103 = fmul <4 x double> %1102, %1099 %1104 = shufflevector <4 x double> %1103, <4 x double> poison, <4 x i32> %1105 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %1106 = shufflevector <4 x double> %1105, <4 x double> poison, <4 x i32> zeroinitializer %1107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %1106, <4 x double> %1099, <4 x double> %1104) %1108 = fadd <4 x double> %1098, %1107 store <4 x double> %1108, ptr %data.i.i.i.i.i.i.i.i1066.3, align 8, !noalias !4294 %1109 = fsub <4 x double> %1098, %1107 store <4 x double> %1109, ptr %data.i5.i.i.i.i.i.i.i1080.3, align 8, !noalias !4294 br label %vector.body370 vector.body370: ; preds = %bb19.i.i.i, %vector.body370 %index371 = phi i64 [ %index.next382, %vector.body370 ], [ 0, %bb19.i.i.i ] %1110 = shl i64 %index371, 1 %1111 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %1110 %1112 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index371, i64 1 %wide.vec372 = load <16 x double>, ptr %1112, align 8, !noalias !4294 %strided.vec373 = shufflevector <16 x double> %wide.vec372, <16 x double> poison, <4 x i32> %strided.vec374 = shufflevector <16 x double> %wide.vec372, <16 x double> poison, <4 x i32> %1113 = fneg <4 x double> %strided.vec374 %wide.vec375 = load <16 x double>, ptr %1111, align 8, !noalias !4294 %strided.vec376 = shufflevector <16 x double> %wide.vec375, <16 x double> poison, <4 x i32> %strided.vec377 = shufflevector <16 x double> %wide.vec375, <16 x double> poison, <4 x i32> %strided.vec378 = shufflevector <16 x double> %wide.vec375, <16 x double> poison, <4 x i32> %strided.vec379 = shufflevector <16 x double> %wide.vec375, <16 x double> poison, <4 x i32> %1114 = fmul <4 x double> %strided.vec379, %1113 %1115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec373, <4 x double> %strided.vec378, <4 x double> %1114) %1116 = fmul <4 x double> %strided.vec374, %strided.vec378 %1117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec373, <4 x double> %strided.vec379, <4 x double> %1116) %1118 = fadd <4 x double> %strided.vec376, %1115 %1119 = fadd <4 x double> %strided.vec377, %1117 %1120 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index371 %interleaved.vec380 = shufflevector <4 x double> %1118, <4 x double> %1119, <8 x i32> store <8 x double> %interleaved.vec380, ptr %1120, align 8, !noalias !4294 %1121 = fsub <4 x double> %strided.vec376, %1115 %1122 = fsub <4 x double> %strided.vec377, %1117 %1123 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index371 %interleaved.vec381 = shufflevector <4 x double> %1121, <4 x double> %1122, <8 x i32> store <8 x double> %interleaved.vec381, ptr %1123, align 8, !noalias !4294 %index.next382 = add nuw i64 %index371, 4 %1124 = icmp eq i64 %index.next382, 252 br i1 %1124, label %bb19.i.i, label %vector.body370, !llvm.loop !4306 bb19.i.i: ; preds = %vector.body370 %data.i.i.i.i.i.i.i.i1232 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i1242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %data.i5.i.i.i.i.i.i.i1246 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %1125 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i = load double, ptr %1125, align 8, !noalias !4294, !noundef !3 %1126 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i = load double, ptr %1126, align 8, !noalias !4294, !noundef !3 %1127 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505 %_6.i.i.i = fneg double %w1.1.i.i %1128 = load <2 x double>, ptr %data.i.i.i.i.i.i1242, align 8, !noalias !4294 %1129 = load <2 x double>, ptr %1127, align 8, !noalias !4294 %1130 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %1131 = insertelement <2 x double> %1130, double %_6.i.i.i, i64 1 %1132 = fmul <2 x double> %1129, %1131 %1133 = shufflevector <2 x double> %1132, <2 x double> poison, <2 x i32> %1134 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %1135 = shufflevector <2 x double> %1134, <2 x double> poison, <2 x i32> zeroinitializer %1136 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1135, <2 x double> %1129, <2 x double> %1133) %1137 = fadd <2 x double> %1128, %1136 store <2 x double> %1137, ptr %data.i.i.i.i.i.i.i.i1232, align 8, !noalias !4294 %1138 = fsub <2 x double> %1128, %1136 store <2 x double> %1138, ptr %data.i5.i.i.i.i.i.i.i1246, align 8, !noalias !4294 %data.i.i.i.i.i.i.i.i1232.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i1242.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %data.i5.i.i.i.i.i.i.i1246.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %1139 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1 %w1.0.i.i.1 = load double, ptr %1139, align 8, !noalias !4294, !noundef !3 %1140 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %1140, align 8, !noalias !4294, !noundef !3 %1141 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %1142 = load <2 x double>, ptr %data.i.i.i.i.i.i1242.1, align 8, !noalias !4294 %1143 = load <2 x double>, ptr %1141, align 8, !noalias !4294 %1144 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %1145 = insertelement <2 x double> %1144, double %_6.i.i.i.1, i64 1 %1146 = fmul <2 x double> %1143, %1145 %1147 = shufflevector <2 x double> %1146, <2 x double> poison, <2 x i32> %1148 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %1149 = shufflevector <2 x double> %1148, <2 x double> poison, <2 x i32> zeroinitializer %1150 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1149, <2 x double> %1143, <2 x double> %1147) %1151 = fadd <2 x double> %1142, %1150 store <2 x double> %1151, ptr %data.i.i.i.i.i.i.i.i1232.1, align 8, !noalias !4294 %1152 = fsub <2 x double> %1142, %1150 store <2 x double> %1152, ptr %data.i5.i.i.i.i.i.i.i1246.1, align 8, !noalias !4294 %data.i.i.i.i.i.i.i.i1232.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i1242.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %data.i5.i.i.i.i.i.i.i1246.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %1153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.2 = load double, ptr %1153, align 8, !noalias !4294, !noundef !3 %1154 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %1154, align 8, !noalias !4294, !noundef !3 %1155 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %1156 = load <2 x double>, ptr %data.i.i.i.i.i.i1242.2, align 8, !noalias !4294 %1157 = load <2 x double>, ptr %1155, align 8, !noalias !4294 %1158 = insertelement <2 x double> poison, double %w1.1.i.i.2, i64 0 %1159 = insertelement <2 x double> %1158, double %_6.i.i.i.2, i64 1 %1160 = fmul <2 x double> %1157, %1159 %1161 = shufflevector <2 x double> %1160, <2 x double> poison, <2 x i32> %1162 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %1163 = shufflevector <2 x double> %1162, <2 x double> poison, <2 x i32> zeroinitializer %1164 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1163, <2 x double> %1157, <2 x double> %1161) %1165 = fadd <2 x double> %1156, %1164 store <2 x double> %1165, ptr %data.i.i.i.i.i.i.i.i1232.2, align 8, !noalias !4294 %1166 = fsub <2 x double> %1156, %1164 store <2 x double> %1166, ptr %data.i5.i.i.i.i.i.i.i1246.2, align 8, !noalias !4294 %data.i.i.i.i.i.i.i.i1232.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i1242.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %data.i5.i.i.i.i.i.i.i1246.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %1167 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1 %w1.0.i.i.3 = load double, ptr %1167, align 8, !noalias !4294, !noundef !3 %1168 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %1168, align 8, !noalias !4294, !noundef !3 %1169 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %1170 = load <2 x double>, ptr %data.i.i.i.i.i.i1242.3, align 8, !noalias !4294 %1171 = load <2 x double>, ptr %1169, align 8, !noalias !4294 %1172 = insertelement <2 x double> poison, double %w1.1.i.i.3, i64 0 %1173 = insertelement <2 x double> %1172, double %_6.i.i.i.3, i64 1 %1174 = fmul <2 x double> %1171, %1173 %1175 = shufflevector <2 x double> %1174, <2 x double> poison, <2 x i32> %1176 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %1177 = shufflevector <2 x double> %1176, <2 x double> poison, <2 x i32> zeroinitializer %1178 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1177, <2 x double> %1171, <2 x double> %1175) %1179 = fadd <2 x double> %1170, %1178 store <2 x double> %1179, ptr %data.i.i.i.i.i.i.i.i1232.3, align 8, !noalias !4294 %1180 = fsub <2 x double> %1170, %1178 store <2 x double> %1180, ptr %data.i5.i.i.i.i.i.i.i1246.3, align 8, !noalias !4294 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4294 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h82b57366c2eece62E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hfce84763a175d0dcE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h855ceb74a30fe513E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4307 store i64 32, ptr %n.i.i, align 8, !noalias !4307 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4307 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4307 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4307 store ptr null, ptr %_16.i.i, align 8, !noalias !4307 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4307 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4307 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4307 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4307 store ptr null, ptr %_24.i.i, align 8, !noalias !4307 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4307 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4307 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4307 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4307 store ptr null, ptr %_32.i.i, align 8, !noalias !4307 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4307 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4307 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4307 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h92dccd29cf28433bE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4307 store ptr null, ptr %_40.i.i, align 8, !noalias !4307 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h92dccd29cf28433bE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4307 tail call void @llvm.experimental.noalias.scope.decl(metadata !4312) tail call void @llvm.experimental.noalias.scope.decl(metadata !4315) tail call void @llvm.experimental.noalias.scope.decl(metadata !4317) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !4312, !noalias !4319 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !4312, !noalias !4319 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !4312, !noalias !4319 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !4312, !noalias !4319 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !4312, !noalias !4319 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !4312, !noalias !4319 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !4312, !noalias !4319 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !4312, !noalias !4319 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !4312, !noalias !4319 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !4312, !noalias !4319 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %11, align 8, !alias.scope !4312, !noalias !4319 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !4312, !noalias !4319 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !4312, !noalias !4319 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !4312, !noalias !4319 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !4312, !noalias !4319 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %16, align 8, !alias.scope !4312, !noalias !4319 %32 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %33 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %35 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %37 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %39 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %41 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %43 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %45 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %47 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = bitcast <4 x double> %35 to <4 x i64> %49 = bitcast <4 x double> %39 to <4 x i64> %50 = bitcast <4 x double> %43 to <4 x i64> %51 = bitcast <4 x double> %47 to <4 x i64> %52 = xor <4 x i64> %48, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = xor <4 x i64> %49, %56 = bitcast <4 x i64> %55 to <4 x double> %57 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> %58 = xor <4 x i64> %50, %59 = bitcast <4 x i64> %58 to <4 x double> %60 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> %61 = xor <4 x i64> %51, %62 = bitcast <4 x i64> %61 to <4 x double> %63 = shufflevector <4 x double> %62, <4 x double> poison, <4 x i32> %64 = fadd <4 x double> %32, %34 %65 = fsub <4 x double> %33, %54 %66 = fsub <4 x double> %32, %34 %67 = fadd <4 x double> %33, %54 %68 = fadd <4 x double> %36, %38 %69 = fsub <4 x double> %37, %57 %70 = fsub <4 x double> %36, %38 %71 = fadd <4 x double> %37, %57 %72 = fadd <4 x double> %40, %42 %73 = fsub <4 x double> %41, %60 %74 = fsub <4 x double> %40, %42 %75 = fadd <4 x double> %41, %60 %76 = fadd <4 x double> %44, %46 %77 = fsub <4 x double> %45, %63 %78 = fsub <4 x double> %44, %46 %79 = fadd <4 x double> %45, %63 %80 = bitcast <4 x double> %69 to <4 x i64> %81 = xor <4 x i64> %80, %82 = bitcast <4 x i64> %81 to <4 x double> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = fadd <4 x double> %69, %83 %85 = fmul <4 x double> %84, %86 = bitcast <4 x double> %70 to <4 x i64> %87 = xor <4 x i64> %86, %88 = bitcast <4 x i64> %87 to <4 x double> %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = bitcast <4 x double> %71 to <4 x i64> %91 = xor <4 x i64> %90, %92 = bitcast <4 x i64> %91 to <4 x double> %93 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> %94 = fadd <4 x double> %71, %93 %95 = fmul <4 x double> %94, %96 = fadd <4 x double> %64, %68 %97 = fadd <4 x double> %65, %85 %98 = fsub <4 x double> %66, %89 %99 = fsub <4 x double> %67, %95 %100 = fsub <4 x double> %64, %68 %101 = fsub <4 x double> %65, %85 %102 = fadd <4 x double> %66, %89 %103 = fadd <4 x double> %67, %95 %104 = bitcast <4 x double> %77 to <4 x i64> %105 = xor <4 x i64> %104, %106 = bitcast <4 x i64> %105 to <4 x double> %107 = shufflevector <4 x double> %106, <4 x double> poison, <4 x i32> %108 = fadd <4 x double> %77, %107 %109 = fmul <4 x double> %108, %110 = bitcast <4 x double> %78 to <4 x i64> %111 = xor <4 x i64> %110, %112 = bitcast <4 x i64> %111 to <4 x double> %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = bitcast <4 x double> %79 to <4 x i64> %115 = xor <4 x i64> %114, %116 = bitcast <4 x i64> %115 to <4 x double> %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fadd <4 x double> %79, %117 %119 = fmul <4 x double> %118, %120 = fadd <4 x double> %72, %76 %121 = fadd <4 x double> %73, %109 %122 = fsub <4 x double> %74, %113 %123 = fsub <4 x double> %75, %119 %124 = fsub <4 x double> %72, %76 %125 = fsub <4 x double> %73, %109 %126 = fadd <4 x double> %74, %113 %127 = fadd <4 x double> %75, %119 %128 = fmul <4 x double> %121, %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %121, <4 x double> %129) #23 %131 = bitcast <4 x double> %122 to <4 x i64> %132 = xor <4 x i64> %131, %133 = bitcast <4 x i64> %132 to <4 x double> %134 = shufflevector <4 x double> %133, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %123, %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %123, <4 x double> %136) #23 %138 = bitcast <4 x double> %124 to <4 x i64> %139 = xor <4 x i64> %138, %140 = bitcast <4 x i64> %139 to <4 x double> %141 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> %142 = fmul <4 x double> %125, %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %125, <4 x double> %143) #23 %145 = bitcast <4 x double> %126 to <4 x i64> %146 = xor <4 x i64> %145, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = fmul <4 x double> %127, %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %127, <4 x double> %150) #23 %.in5720.i.i = fadd <4 x double> %122, %134 %152 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %126, %148 %153 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %20, align 8, !alias.scope !4317, !noalias !4320 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %19, align 8, !alias.scope !4317, !noalias !4320 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %21, align 8, !alias.scope !4317, !noalias !4320 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %18, align 8, !alias.scope !4317, !noalias !4320 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %23, align 8, !alias.scope !4317, !noalias !4320 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %22, align 8, !alias.scope !4317, !noalias !4320 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %24, align 8, !alias.scope !4317, !noalias !4320 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %17, align 8, !alias.scope !4317, !noalias !4320 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %27, align 8, !alias.scope !4317, !noalias !4320 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %26, align 8, !alias.scope !4317, !noalias !4320 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !4317, !noalias !4320 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %25, align 8, !alias.scope !4317, !noalias !4320 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %30, align 8, !alias.scope !4317, !noalias !4320 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %29, align 8, !alias.scope !4317, !noalias !4320 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %31, align 8, !alias.scope !4317, !noalias !4320 %154 = fadd <4 x double> %96, %120 %155 = fadd <4 x double> %130, %97 %156 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %158, %156 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %155, <4 x double> %159) #23 %161 = fadd <4 x double> %98, %152 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %164, %162 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = fadd <4 x double> %137, %99 %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %170, %168 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = fsub <4 x double> %100, %141 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %174, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = fsub <4 x double> %101, %144 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %182, %180 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = fsub <4 x double> %102, %153 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %188, %186 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = fsub <4 x double> %103, %151 %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %192 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = fsub <4 x double> %96, %120 %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %198, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %199, <4 x double> %197, <4 x double> %201) #23 %203 = fsub <4 x double> %97, %130 %204 = shufflevector <4 x double> %203, <4 x double> poison, <4 x i32> %205 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %204, %206 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %203, <4 x double> %207) #23 %209 = fsub <4 x double> %98, %152 %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %210, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %211, <4 x double> %209, <4 x double> %213) #23 %215 = fsub <4 x double> %99, %137 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = fmul <4 x double> %216, %218 %220 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %217, <4 x double> %215, <4 x double> %219) #23 %221 = fadd <4 x double> %100, %141 %222 = shufflevector <4 x double> %221, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %222, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %223, <4 x double> %221, <4 x double> %225) #23 %227 = fadd <4 x double> %144, %101 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = fmul <4 x double> %228, %230 %232 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %229, <4 x double> %227, <4 x double> %231) #23 %233 = fadd <4 x double> %102, %153 %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %234, %236 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %235, <4 x double> %233, <4 x double> %237) #23 %239 = fadd <4 x double> %151, %103 %240 = shufflevector <4 x double> %239, <4 x double> poison, <4 x i32> %241 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = fmul <4 x double> %240, %242 %244 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %241, <4 x double> %239, <4 x double> %243) #23 %245 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> %246 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %247 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 %248 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %249 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 %250 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %251 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 %252 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> %253 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 4 %254 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %255 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 5 %256 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %257 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 6 %258 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %259 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 7 store <4 x double> %245, ptr %scratch.0, align 8, !alias.scope !4315, !noalias !4321 store <4 x double> %246, ptr %247, align 8, !alias.scope !4315, !noalias !4321 store <4 x double> %248, ptr %249, align 8, !alias.scope !4315, !noalias !4321 store <4 x double> %250, ptr %251, align 8, !alias.scope !4315, !noalias !4321 %260 = shufflevector <4 x double> %202, <4 x double> %208, <4 x i32> store <4 x double> %260, ptr %253, align 8, !alias.scope !4315, !noalias !4321 %261 = shufflevector <4 x double> %214, <4 x double> %220, <4 x i32> store <4 x double> %261, ptr %255, align 8, !alias.scope !4315, !noalias !4321 %262 = shufflevector <4 x double> %226, <4 x double> %232, <4 x i32> store <4 x double> %262, ptr %257, align 8, !alias.scope !4315, !noalias !4321 %263 = shufflevector <4 x double> %238, <4 x double> %244, <4 x i32> store <4 x double> %263, ptr %259, align 8, !alias.scope !4315, !noalias !4321 %264 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 8 store <4 x double> %252, ptr %264, align 8, !alias.scope !4315, !noalias !4321 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 9 store <4 x double> %254, ptr %265, align 8, !alias.scope !4315, !noalias !4321 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 10 store <4 x double> %256, ptr %266, align 8, !alias.scope !4315, !noalias !4321 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 11 store <4 x double> %258, ptr %267, align 8, !alias.scope !4315, !noalias !4321 %268 = shufflevector <4 x double> %202, <4 x double> %208, <4 x i32> %269 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 12 store <4 x double> %268, ptr %269, align 8, !alias.scope !4315, !noalias !4321 %270 = shufflevector <4 x double> %214, <4 x double> %220, <4 x i32> %271 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 13 store <4 x double> %270, ptr %271, align 8, !alias.scope !4315, !noalias !4321 %272 = shufflevector <4 x double> %226, <4 x double> %232, <4 x i32> %273 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 14 store <4 x double> %272, ptr %273, align 8, !alias.scope !4315, !noalias !4321 %274 = shufflevector <4 x double> %238, <4 x double> %244, <4 x i32> %275 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 15 store <4 x double> %274, ptr %275, align 8, !alias.scope !4315, !noalias !4321 %276 = fadd <4 x double> %245, %252 %277 = fsub <4 x double> %245, %252 store <4 x double> %276, ptr %buf.0, align 8, !noalias !4307 store <4 x double> %277, ptr %2, align 8, !noalias !4307 %278 = fadd <4 x double> %246, %254 %279 = fsub <4 x double> %246, %254 store <4 x double> %278, ptr %5, align 8, !noalias !4307 store <4 x double> %279, ptr %12, align 8, !noalias !4307 %280 = fadd <4 x double> %248, %256 %281 = fsub <4 x double> %248, %256 store <4 x double> %280, ptr %4, align 8, !noalias !4307 store <4 x double> %281, ptr %11, align 8, !noalias !4307 %282 = fadd <4 x double> %250, %258 %283 = fsub <4 x double> %250, %258 store <4 x double> %282, ptr %6, align 8, !noalias !4307 store <4 x double> %283, ptr %13, align 8, !noalias !4307 %284 = fadd <4 x double> %260, %268 %285 = fsub <4 x double> %260, %268 store <4 x double> %284, ptr %3, align 8, !noalias !4307 store <4 x double> %285, ptr %10, align 8, !noalias !4307 %286 = fadd <4 x double> %261, %270 %287 = fsub <4 x double> %261, %270 store <4 x double> %286, ptr %8, align 8, !noalias !4307 store <4 x double> %287, ptr %15, align 8, !noalias !4307 %288 = fadd <4 x double> %262, %272 %289 = fsub <4 x double> %262, %272 store <4 x double> %288, ptr %7, align 8, !noalias !4307 store <4 x double> %289, ptr %14, align 8, !noalias !4307 %290 = fadd <4 x double> %263, %274 %291 = fsub <4 x double> %263, %274 store <4 x double> %290, ptr %9, align 8, !noalias !4307 store <4 x double> %291, ptr %16, align 8, !noalias !4307 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4307 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h85cb3738c98622f5E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4322 store i64 16, ptr %n.i.i, align 8, !noalias !4322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4322 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4322 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4322 store ptr null, ptr %_16.i.i, align 8, !noalias !4322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4322 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4322 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4322 store ptr null, ptr %_24.i.i, align 8, !noalias !4322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4322 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4322 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4322 store ptr null, ptr %_32.i.i, align 8, !noalias !4322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4322 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4322 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h4667cbd151bf1f9fE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4322 store ptr null, ptr %_40.i.i, align 8, !noalias !4322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h4667cbd151bf1f9fE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4322 tail call void @llvm.experimental.noalias.scope.decl(metadata !4327) tail call void @llvm.experimental.noalias.scope.decl(metadata !4330) tail call void @llvm.experimental.noalias.scope.decl(metadata !4332) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !4327, !noalias !4334 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !4327, !noalias !4334 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !4327, !noalias !4334 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !4327, !noalias !4334 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !4327, !noalias !4334 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !4327, !noalias !4334 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !4327, !noalias !4334 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !4327, !noalias !4334 %16 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %17 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %19 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = bitcast <4 x double> %19 to <4 x i64> %21 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %22 = bitcast <4 x double> %21 to <4 x i64> %23 = xor <4 x i64> %20, %24 = bitcast <4 x i64> %23 to <4 x double> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = xor <4 x i64> %22, %27 = bitcast <4 x i64> %26 to <4 x double> %28 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> %29 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %30 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %16, %18 %33 = fsub <4 x double> %17, %25 %34 = fsub <4 x double> %16, %18 %35 = fadd <4 x double> %17, %25 %36 = fadd <4 x double> %29, %31 %37 = fsub <4 x double> %30, %28 %38 = bitcast <4 x double> %37 to <4 x i64> %39 = fsub <4 x double> %29, %31 %40 = bitcast <4 x double> %39 to <4 x i64> %41 = fadd <4 x double> %30, %28 %42 = xor <4 x i64> %38, %43 = bitcast <4 x i64> %42 to <4 x double> %44 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> %45 = fadd <4 x double> %37, %44 %46 = fmul <4 x double> %45, %47 = xor <4 x i64> %40, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = bitcast <4 x double> %41 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %41, %53 %55 = fmul <4 x double> %54, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %11, align 8, !alias.scope !4332, !noalias !4335 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !4332, !noalias !4335 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !4332, !noalias !4335 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !4332, !noalias !4335 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !4332, !noalias !4335 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !4332, !noalias !4335 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !4332, !noalias !4335 %56 = fadd <4 x double> %32, %36 %57 = fadd <4 x double> %33, %46 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fsub <4 x double> %34, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = fsub <4 x double> %35, %55 %70 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %71 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %72, %70 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %71, <4 x double> %69, <4 x double> %73) #23 %75 = fsub <4 x double> %32, %36 %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %76, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %75, <4 x double> %79) #23 %81 = fsub <4 x double> %33, %46 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %84, %82 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %81, <4 x double> %85) #23 %87 = fadd <4 x double> %34, %49 %88 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> %89 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %88 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %89, <4 x double> %87, <4 x double> %91) #23 %93 = fadd <4 x double> %35, %55 %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %94 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %95, <4 x double> %93, <4 x double> %97) #23 %99 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> store <4 x double> %99, ptr %scratch.0, align 8, !alias.scope !4330, !noalias !4336 %100 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %101 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %100, ptr %101, align 8, !alias.scope !4330, !noalias !4336 %102 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %103 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %102, ptr %103, align 8, !alias.scope !4330, !noalias !4336 %104 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %105 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %104, ptr %105, align 8, !alias.scope !4330, !noalias !4336 %106 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> %107 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 4 store <4 x double> %106, ptr %107, align 8, !alias.scope !4330, !noalias !4336 %108 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %109 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 5 store <4 x double> %108, ptr %109, align 8, !alias.scope !4330, !noalias !4336 %110 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %111 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 6 store <4 x double> %110, ptr %111, align 8, !alias.scope !4330, !noalias !4336 %112 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %113 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 7 store <4 x double> %112, ptr %113, align 8, !alias.scope !4330, !noalias !4336 %114 = fadd <4 x double> %99, %106 %115 = fsub <4 x double> %99, %106 store <4 x double> %114, ptr %buf.0, align 8, !noalias !4322 store <4 x double> %115, ptr %2, align 8, !noalias !4322 %116 = fadd <4 x double> %100, %108 %117 = fsub <4 x double> %100, %108 store <4 x double> %116, ptr %4, align 8, !noalias !4322 store <4 x double> %117, ptr %7, align 8, !noalias !4322 %118 = fadd <4 x double> %102, %110 %119 = fsub <4 x double> %102, %110 store <4 x double> %118, ptr %3, align 8, !noalias !4322 store <4 x double> %119, ptr %6, align 8, !noalias !4322 %120 = fadd <4 x double> %104, %112 %121 = fsub <4 x double> %104, %112 store <4 x double> %120, ptr %5, align 8, !noalias !4322 store <4 x double> %121, ptr %8, align 8, !noalias !4322 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4322 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h86afaf7be5a8690bE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9f2ebeb936de011dE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h876d80d5de5dbf98E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4337 store i64 512, ptr %n.i.i, align 8, !noalias !4337 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4337 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4337 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4337 store ptr null, ptr %_16.i.i, align 8, !noalias !4337 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4337 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4337 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4337 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4337 store ptr null, ptr %_24.i.i, align 8, !noalias !4337 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4337 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4337 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4337 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4337 store ptr null, ptr %_32.i.i, align 8, !noalias !4337 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4337 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4337 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4337 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3310093d6fe0fde9E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4337 store ptr null, ptr %_40.i.i, align 8, !noalias !4337 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3310093d6fe0fde9E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4337 tail call void @llvm.experimental.noalias.scope.decl(metadata !4342) tail call void @llvm.experimental.noalias.scope.decl(metadata !4345) tail call void @llvm.experimental.noalias.scope.decl(metadata !4347) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3310093d6fe0fde9E.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3310093d6fe0fde9E.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4342, !noalias !4349 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4347, !noalias !4350 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4345, !noalias !4351 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !4345, !noalias !4351 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !4345, !noalias !4351 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !4345, !noalias !4351 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !4345, !noalias !4351 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !4345, !noalias !4351 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !4345, !noalias !4351 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !4345, !noalias !4351 %exitcond.not.i.i = icmp eq i64 %16, 32 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4352) tail call void @llvm.experimental.noalias.scope.decl(metadata !4355) tail call void @llvm.experimental.noalias.scope.decl(metadata !4357) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %122 = add nuw nsw i64 %iter.sroa.104.02174.i.i, 1 %exitcond.not.i = icmp eq i64 %122, 8 br i1 %exitcond.not.i, label %bb17.i.i.i.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter.sroa.104.02174.i.i = phi i64 [ %122, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %130, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %131 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %132, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %133, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %134 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %135, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %136, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %137 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %138, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %139, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %140 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %141, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %142, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %143 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %144, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %145, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %146 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %147, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %148, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %149 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %150, align 8, !alias.scope !4357, !noalias !4359, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %151 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %165, %bb58.i.i ] %165 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !4352, !noalias !4360 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4352, !noalias !4360 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !4352, !noalias !4360 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !4352, !noalias !4360 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !4352, !noalias !4360 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !4352, !noalias !4360 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !4352, !noalias !4360 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !4352, !noalias !4360 %166 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %168 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %172 = bitcast <4 x double> %171 to <4 x i64> %173 = xor <4 x i64> %170, %174 = bitcast <4 x i64> %173 to <4 x double> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = xor <4 x i64> %172, %177 = bitcast <4 x i64> %176 to <4 x double> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %181 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %182 = fadd <4 x double> %166, %168 %183 = fsub <4 x double> %167, %175 %184 = fsub <4 x double> %166, %168 %185 = fadd <4 x double> %167, %175 %186 = fadd <4 x double> %179, %181 %187 = fsub <4 x double> %180, %178 %188 = bitcast <4 x double> %187 to <4 x i64> %189 = fsub <4 x double> %179, %181 %190 = bitcast <4 x double> %189 to <4 x i64> %191 = fadd <4 x double> %180, %178 %192 = xor <4 x i64> %188, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %194 %196 = fmul <4 x double> %195, %197 = xor <4 x i64> %190, %198 = bitcast <4 x i64> %197 to <4 x double> %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = bitcast <4 x double> %191 to <4 x i64> %201 = xor <4 x i64> %200, %202 = bitcast <4 x i64> %201 to <4 x double> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fadd <4 x double> %191, %203 %205 = fmul <4 x double> %204, %206 = fadd <4 x double> %182, %186 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %207 = fadd <4 x double> %183, %196 %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %152, %208 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %207, <4 x double> %209) #23 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %211 = fsub <4 x double> %184, %199 %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %154, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %211, <4 x double> %213) #23 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %215 = fsub <4 x double> %185, %205 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %156, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %219 = fsub <4 x double> %182, %186 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %158, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %223 = fsub <4 x double> %183, %196 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %160, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %227 = fadd <4 x double> %184, %199 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %162, %228 %230 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %227, <4 x double> %229) #23 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %231 = fadd <4 x double> %185, %205 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %164, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %231, <4 x double> %233) #23 store <4 x double> %234, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !4355, !noalias !4361 %exitcond.not.i38.i = icmp eq i64 %165, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i bb17.i.i.i.i: ; preds = %bb28.loopexit.i.i, %bb17.i.i.i.i %iter.i.i.i.sroa.50.0462.i = phi i64 [ %235, %bb17.i.i.i.i ], [ 0, %bb28.loopexit.i.i ] %235 = add nuw nsw i64 %iter.i.i.i.sroa.50.0462.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.50.0462.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.50.0462.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.50.0462.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.i.i.i.sroa.50.0462.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.50.0462.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.i.i.i.sroa.50.0462.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.i.i.i.sroa.50.0462.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.i.i.i.sroa.50.0462.i %_63.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 %_64.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 %_65.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 %_66.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 %_67.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 %_68.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 %_69.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4337 %_70.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4337 %236 = fadd <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %237 = fsub <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %238 = fadd <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %239 = fsub <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %240 = bitcast <4 x double> %239 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %245 = fsub <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %246 = fadd <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %247 = fsub <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %248 = bitcast <4 x double> %247 to <4 x i64> %249 = xor <4 x i64> %248, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fadd <4 x double> %236, %238 %253 = fsub <4 x double> %237, %243 %254 = fsub <4 x double> %236, %238 %255 = fadd <4 x double> %237, %243 %256 = fadd <4 x double> %244, %246 %257 = fsub <4 x double> %245, %251 %258 = bitcast <4 x double> %257 to <4 x i64> %259 = xor <4 x i64> %258, %260 = bitcast <4 x i64> %259 to <4 x double> %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fadd <4 x double> %257, %261 %263 = fmul <4 x double> %262, %264 = fsub <4 x double> %244, %246 %265 = bitcast <4 x double> %264 to <4 x i64> %266 = xor <4 x i64> %265, %267 = bitcast <4 x i64> %266 to <4 x double> %268 = shufflevector <4 x double> %267, <4 x double> poison, <4 x i32> %269 = fadd <4 x double> %245, %251 %270 = bitcast <4 x double> %269 to <4 x i64> %271 = xor <4 x i64> %270, %272 = bitcast <4 x i64> %271 to <4 x double> %273 = shufflevector <4 x double> %272, <4 x double> poison, <4 x i32> %274 = fadd <4 x double> %269, %273 %275 = fmul <4 x double> %274, %276 = fadd <4 x double> %252, %256 %277 = fadd <4 x double> %253, %263 %278 = fsub <4 x double> %254, %268 %279 = fsub <4 x double> %255, %275 %280 = fsub <4 x double> %252, %256 %281 = fsub <4 x double> %253, %263 %282 = fadd <4 x double> %254, %268 %283 = fadd <4 x double> %255, %275 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %277, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %282, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4337 store <4 x double> %283, ptr %_3.i.i.i.i.i, align 8, !noalias !4337 %exitcond463.not.i = icmp eq i64 %235, 32 br i1 %exitcond463.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h323ffbac68869d84E.exit, label %bb17.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h323ffbac68869d84E.exit: ; preds = %bb17.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4337 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h87f7f96734caf92bE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h95bbf7344a038898E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h884c20ba690e1299E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4362 store i64 1024, ptr %n.i, align 8, !noalias !4362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4362 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4362 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4362 store ptr null, ptr %_16.i, align 8, !noalias !4362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4362 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4362 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4362 store ptr null, ptr %_24.i, align 8, !noalias !4362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4362 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4362 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4362 store ptr null, ptr %_32.i, align 8, !noalias !4362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4362 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4362 store i64 %w.1, ptr %_34.i, align 8, !noalias !4362 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4362 store ptr null, ptr %_40.i, align 8, !noalias !4362 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4362 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !4362 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !4362 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !4362 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !4362 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !4362 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !4362 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !4362 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !4362 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !4362 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fsub <4 x double> %75, %80 %92 = fadd <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fadd <4 x double> %75, %80 %96 = fsub <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fsub <4 x double> %83, %88 %100 = fadd <4 x double> %84, %87 %101 = fsub <4 x double> %99, %100 %102 = fadd <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fadd <4 x double> %83, %88 %108 = fsub <4 x double> %84, %87 %109 = fadd <4 x double> %108, %107 %110 = fsub <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !4362 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !4362 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !4362 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !4362 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !4362 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !4362 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !4362 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !4362 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !4362 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !4362 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !4362 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !4362 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !4362 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !4362 %141 = fsub <4 x double> %93, %106 %142 = fadd <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !4362 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !4362 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !4362 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !4362 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !4362 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !4362 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !4362 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !4362 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !4362 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !4362 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !4362 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !4362 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !4362 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !4362 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !4362 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !4362 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !4362 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !4362 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !4362 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !4362 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !4362 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !4362 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !4362 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !4362 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !4362 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !4362 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !4362 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !4362 %205 = fadd <4 x double> %93, %106 %206 = fsub <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !4362 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !4362 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !4362 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !4362 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !4362 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !4362 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !4362 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !4362 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !4362 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !4362 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !4362 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !4362 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !4362 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !4362 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 128 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, label %vector.body, !llvm.loop !4365 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 br label %bb32.i.i.i.i bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, %middle.block36 %iter.i.i.i.i.sroa.104.0178 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703 ], [ %367, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i754 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i759 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i764 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %start1.i.i.i.i.i.i767 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 6 %data.i.i.i.i.i.i768 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i767 %245 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 32 %246 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 16 %247 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 8 %248 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 24 %249 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 48 %250 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 40 %251 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 56 %252 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %252, align 8, !noalias !4362, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %253 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %253, align 8, !noalias !4362, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %254 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %254, align 8, !noalias !4362, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %255 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %255, align 8, !noalias !4362, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %256 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %256, align 8, !noalias !4362, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %257 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %257, align 8, !noalias !4362, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %258 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %258, align 8, !noalias !4362, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %259 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7 %w7.0.i.i.i.i = load double, ptr %259, align 8, !noalias !4362, !noundef !3 %260 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6 %w6.0.i.i.i.i = load double, ptr %260, align 8, !noalias !4362, !noundef !3 %261 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5 %w5.0.i.i.i.i = load double, ptr %261, align 8, !noalias !4362, !noundef !3 %262 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4 %w4.0.i.i.i.i = load double, ptr %262, align 8, !noalias !4362, !noundef !3 %263 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3 %w3.0.i.i.i.i = load double, ptr %263, align 8, !noalias !4362, !noundef !3 %264 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2 %w2.0.i.i.i.i = load double, ptr %264, align 8, !noalias !4362, !noundef !3 %265 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1 %w1.0.i.i.i.i = load double, ptr %265, align 8, !noalias !4362, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i.i %index41 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next113, %vector.body40 ] %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729, i64 %index41 %267 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734, i64 %index41 %268 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739, i64 %index41 %269 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744, i64 %index41 %270 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749, i64 %index41 %271 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i754, i64 %index41 %272 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i759, i64 %index41 %273 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i764, i64 %index41 %wide.vec42 = load <8 x double>, ptr %266, align 8, !noalias !4362 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %267, align 8, !noalias !4362 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %268, align 8, !noalias !4362 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %269, align 8, !noalias !4362 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %270, align 8, !noalias !4362 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %271, align 8, !noalias !4362 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %272, align 8, !noalias !4362 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %273, align 8, !noalias !4362 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %274 = fadd <4 x double> %strided.vec43, %strided.vec55 %275 = fadd <4 x double> %strided.vec44, %strided.vec56 %276 = fsub <4 x double> %strided.vec43, %strided.vec55 %277 = fsub <4 x double> %strided.vec44, %strided.vec56 %278 = fadd <4 x double> %strided.vec49, %strided.vec61 %279 = fadd <4 x double> %strided.vec50, %strided.vec62 %280 = fsub <4 x double> %strided.vec49, %strided.vec61 %281 = fsub <4 x double> %strided.vec50, %strided.vec62 %282 = fadd <4 x double> %strided.vec46, %strided.vec58 %283 = fadd <4 x double> %strided.vec47, %strided.vec59 %284 = fsub <4 x double> %strided.vec46, %strided.vec58 %285 = fsub <4 x double> %strided.vec47, %strided.vec59 %286 = fadd <4 x double> %strided.vec52, %strided.vec64 %287 = fadd <4 x double> %strided.vec53, %strided.vec65 %288 = fsub <4 x double> %strided.vec52, %strided.vec64 %289 = fsub <4 x double> %strided.vec53, %strided.vec65 %290 = fadd <4 x double> %274, %278 %291 = fadd <4 x double> %275, %279 %292 = fsub <4 x double> %276, %281 %293 = fadd <4 x double> %277, %280 %294 = fsub <4 x double> %274, %278 %295 = fsub <4 x double> %275, %279 %296 = fadd <4 x double> %276, %281 %297 = fsub <4 x double> %277, %280 %298 = fadd <4 x double> %282, %286 %299 = fadd <4 x double> %283, %287 %300 = fsub <4 x double> %284, %289 %301 = fadd <4 x double> %285, %288 %302 = fsub <4 x double> %300, %301 %303 = fadd <4 x double> %301, %300 %304 = fmul <4 x double> %302, %305 = fmul <4 x double> %303, %306 = fsub <4 x double> %282, %286 %307 = fsub <4 x double> %283, %287 %308 = fadd <4 x double> %284, %289 %309 = fsub <4 x double> %285, %288 %310 = fadd <4 x double> %309, %308 %311 = fsub <4 x double> %309, %308 %312 = fmul <4 x double> %310, %313 = fmul <4 x double> %311, %314 = fadd <4 x double> %290, %298 %315 = fadd <4 x double> %291, %299 %316 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 %index41 %interleaved.vec = shufflevector <4 x double> %314, <4 x double> %315, <8 x i32> store <8 x double> %interleaved.vec, ptr %316, align 8, !noalias !4362 %317 = fadd <4 x double> %292, %304 %318 = fadd <4 x double> %293, %305 %319 = fmul <4 x double> %318, %broadcast.splat %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %317, <4 x double> %319) %321 = fmul <4 x double> %broadcast.splat69, %317 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %318, <4 x double> %321) %323 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %320, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec70, ptr %323, align 8, !noalias !4362 %324 = fsub <4 x double> %294, %307 %325 = fadd <4 x double> %295, %306 %326 = fmul <4 x double> %325, %broadcast.splat72 %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %324, <4 x double> %326) %328 = fmul <4 x double> %broadcast.splat76, %324 %329 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %325, <4 x double> %328) %330 = getelementptr inbounds %"num_complex::Complex", ptr %246, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %327, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec77, ptr %330, align 8, !noalias !4362 %331 = fsub <4 x double> %296, %312 %332 = fsub <4 x double> %297, %313 %333 = fmul <4 x double> %332, %broadcast.splat79 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %331, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat83, %331 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %332, <4 x double> %335) %337 = getelementptr inbounds %"num_complex::Complex", ptr %248, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %334, <4 x double> %336, <8 x i32> store <8 x double> %interleaved.vec84, ptr %337, align 8, !noalias !4362 %338 = fsub <4 x double> %290, %298 %339 = fsub <4 x double> %291, %299 %340 = fmul <4 x double> %339, %broadcast.splat86 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %338, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat90, %338 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %339, <4 x double> %342) %344 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %341, <4 x double> %343, <8 x i32> store <8 x double> %interleaved.vec91, ptr %344, align 8, !noalias !4362 %345 = fsub <4 x double> %292, %304 %346 = fsub <4 x double> %293, %305 %347 = fmul <4 x double> %346, %broadcast.splat93 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %345, <4 x double> %347) %349 = fmul <4 x double> %broadcast.splat97, %345 %350 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %346, <4 x double> %349) %351 = getelementptr inbounds %"num_complex::Complex", ptr %250, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %348, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec98, ptr %351, align 8, !noalias !4362 %352 = fadd <4 x double> %294, %307 %353 = fsub <4 x double> %295, %306 %354 = fmul <4 x double> %353, %broadcast.splat100 %355 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %352, <4 x double> %354) %356 = fmul <4 x double> %broadcast.splat104, %352 %357 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %353, <4 x double> %356) %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %355, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec105, ptr %358, align 8, !noalias !4362 %359 = fadd <4 x double> %296, %312 %360 = fadd <4 x double> %297, %313 %361 = fmul <4 x double> %360, %broadcast.splat107 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %359, <4 x double> %361) %363 = fmul <4 x double> %broadcast.splat111, %359 %364 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %360, <4 x double> %363) %365 = getelementptr inbounds %"num_complex::Complex", ptr %251, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %362, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec112, ptr %365, align 8, !noalias !4362 %index.next113 = add nuw i64 %index41, 4 %366 = icmp eq i64 %index.next113, 8 br i1 %366, label %middle.block36, label %vector.body40, !llvm.loop !4366 middle.block36: ; preds = %vector.body40 %367 = add nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 1 %exitcond184.not = icmp eq i64 %367, 16 br i1 %exitcond184.not, label %bb32.i.i.i.i.i, label %bb32.i.i.i.i vector.body199: ; preds = %middle.block114, %vector.body199 %index200 = phi i64 [ %index.next209.1, %vector.body199 ], [ 0, %middle.block114 ] %368 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index200 %369 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %index200 %wide.vec201 = load <8 x double>, ptr %368, align 8, !noalias !4362 %strided.vec202 = shufflevector <8 x double> %wide.vec201, <8 x double> poison, <4 x i32> %strided.vec203 = shufflevector <8 x double> %wide.vec201, <8 x double> poison, <4 x i32> %wide.vec204 = load <8 x double>, ptr %369, align 8, !noalias !4362 %strided.vec205 = shufflevector <8 x double> %wide.vec204, <8 x double> poison, <4 x i32> %strided.vec206 = shufflevector <8 x double> %wide.vec204, <8 x double> poison, <4 x i32> %370 = fadd <4 x double> %strided.vec202, %strided.vec205 %371 = fadd <4 x double> %strided.vec203, %strided.vec206 %372 = fsub <4 x double> %strided.vec202, %strided.vec205 %373 = fsub <4 x double> %strided.vec203, %strided.vec206 %374 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index200 %interleaved.vec207 = shufflevector <4 x double> %370, <4 x double> %371, <8 x i32> store <8 x double> %interleaved.vec207, ptr %374, align 8, !noalias !4362 %375 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index200 %interleaved.vec208 = shufflevector <4 x double> %372, <4 x double> %373, <8 x i32> store <8 x double> %interleaved.vec208, ptr %375, align 8, !noalias !4362 %index.next209 = or disjoint i64 %index200, 4 %376 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next209 %377 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %index.next209 %wide.vec201.1 = load <8 x double>, ptr %376, align 8, !noalias !4362 %strided.vec202.1 = shufflevector <8 x double> %wide.vec201.1, <8 x double> poison, <4 x i32> %strided.vec203.1 = shufflevector <8 x double> %wide.vec201.1, <8 x double> poison, <4 x i32> %wide.vec204.1 = load <8 x double>, ptr %377, align 8, !noalias !4362 %strided.vec205.1 = shufflevector <8 x double> %wide.vec204.1, <8 x double> poison, <4 x i32> %strided.vec206.1 = shufflevector <8 x double> %wide.vec204.1, <8 x double> poison, <4 x i32> %378 = fadd <4 x double> %strided.vec202.1, %strided.vec205.1 %379 = fadd <4 x double> %strided.vec203.1, %strided.vec206.1 %380 = fsub <4 x double> %strided.vec202.1, %strided.vec205.1 %381 = fsub <4 x double> %strided.vec203.1, %strided.vec206.1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next209 %interleaved.vec207.1 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec207.1, ptr %382, align 8, !noalias !4362 %383 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next209 %interleaved.vec208.1 = shufflevector <4 x double> %380, <4 x double> %381, <8 x i32> store <8 x double> %interleaved.vec208.1, ptr %383, align 8, !noalias !4362 %index.next209.1 = add nuw nsw i64 %index200, 8 %384 = icmp eq i64 %index.next209.1, 512 br i1 %384, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc53a39ddb8d22cd8E.exit", label %vector.body199, !llvm.loop !4367 bb32.i.i.i.i.i: ; preds = %middle.block36, %middle.block114 %_2.i.i.i1357 = phi i1 [ false, %middle.block114 ], [ true, %middle.block36 ] %iter.i.i.i.i.i.sroa.104.0180 = phi i64 [ 1, %middle.block114 ], [ 0, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.104.0180, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1380 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1385 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1390 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1395 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1400 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i.i.i1405 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i.i.i1410 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %data.i.i.i.i.i.i.i.i1415 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379 %start1.i.i.i.i.i.i1418 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.104.0180, 9 %data.i.i.i.i.i.i1419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i1418 %385 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 256 %386 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 128 %387 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 64 %388 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 192 %389 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 384 %390 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 320 %391 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 448 %392 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 7, i32 1 %w7.1.i.i.i.i.i = load double, ptr %392, align 8, !noalias !4362, !noundef !3 %_6.i.i.i.i.i.i = fneg double %w7.1.i.i.i.i.i %393 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 6, i32 1 %w6.1.i.i.i.i.i = load double, ptr %393, align 8, !noalias !4362, !noundef !3 %_6.i166.i.i.i.i.i = fneg double %w6.1.i.i.i.i.i %394 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 5, i32 1 %w5.1.i.i.i.i.i = load double, ptr %394, align 8, !noalias !4362, !noundef !3 %_6.i169.i.i.i.i.i = fneg double %w5.1.i.i.i.i.i %395 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 4, i32 1 %w4.1.i.i.i.i.i = load double, ptr %395, align 8, !noalias !4362, !noundef !3 %_6.i172.i.i.i.i.i = fneg double %w4.1.i.i.i.i.i %396 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 3, i32 1 %w3.1.i.i.i.i.i = load double, ptr %396, align 8, !noalias !4362, !noundef !3 %_6.i175.i.i.i.i.i = fneg double %w3.1.i.i.i.i.i %397 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 2, i32 1 %w2.1.i.i.i.i.i = load double, ptr %397, align 8, !noalias !4362, !noundef !3 %_6.i178.i.i.i.i.i = fneg double %w2.1.i.i.i.i.i %398 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 1, i32 1 %w1.1.i.i.i.i.i = load double, ptr %398, align 8, !noalias !4362, !noundef !3 %_6.i181.i.i.i.i.i = fneg double %w1.1.i.i.i.i.i %399 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 7 %w7.0.i.i.i.i.i = load double, ptr %399, align 8, !noalias !4362, !noundef !3 %400 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 6 %w6.0.i.i.i.i.i = load double, ptr %400, align 8, !noalias !4362, !noundef !3 %401 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 5 %w5.0.i.i.i.i.i = load double, ptr %401, align 8, !noalias !4362, !noundef !3 %402 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 4 %w4.0.i.i.i.i.i = load double, ptr %402, align 8, !noalias !4362, !noundef !3 %403 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 3 %w3.0.i.i.i.i.i = load double, ptr %403, align 8, !noalias !4362, !noundef !3 %404 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 2 %w2.0.i.i.i.i.i = load double, ptr %404, align 8, !noalias !4362, !noundef !3 %405 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1379, i64 1 %w1.0.i.i.i.i.i = load double, ptr %405, align 8, !noalias !4362, !noundef !3 %broadcast.splatinsert145 = insertelement <4 x double> poison, double %_6.i181.i.i.i.i.i, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert147 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.i, i64 0 %broadcast.splat148 = shufflevector <4 x double> %broadcast.splatinsert147, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert149 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.i, i64 0 %broadcast.splat150 = shufflevector <4 x double> %broadcast.splatinsert149, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert152 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i.i, i64 0 %broadcast.splat153 = shufflevector <4 x double> %broadcast.splatinsert152, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert154 = insertelement <4 x double> poison, double %w2.0.i.i.i.i.i, i64 0 %broadcast.splat155 = shufflevector <4 x double> %broadcast.splatinsert154, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert156 = insertelement <4 x double> poison, double %w2.1.i.i.i.i.i, i64 0 %broadcast.splat157 = shufflevector <4 x double> %broadcast.splatinsert156, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert159 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i.i, i64 0 %broadcast.splat160 = shufflevector <4 x double> %broadcast.splatinsert159, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert161 = insertelement <4 x double> poison, double %w3.0.i.i.i.i.i, i64 0 %broadcast.splat162 = shufflevector <4 x double> %broadcast.splatinsert161, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert163 = insertelement <4 x double> poison, double %w3.1.i.i.i.i.i, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert166 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i.i, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert168 = insertelement <4 x double> poison, double %w4.0.i.i.i.i.i, i64 0 %broadcast.splat169 = shufflevector <4 x double> %broadcast.splatinsert168, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert170 = insertelement <4 x double> poison, double %w4.1.i.i.i.i.i, i64 0 %broadcast.splat171 = shufflevector <4 x double> %broadcast.splatinsert170, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert173 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i.i, i64 0 %broadcast.splat174 = shufflevector <4 x double> %broadcast.splatinsert173, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert175 = insertelement <4 x double> poison, double %w5.0.i.i.i.i.i, i64 0 %broadcast.splat176 = shufflevector <4 x double> %broadcast.splatinsert175, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert177 = insertelement <4 x double> poison, double %w5.1.i.i.i.i.i, i64 0 %broadcast.splat178 = shufflevector <4 x double> %broadcast.splatinsert177, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert180 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i.i, i64 0 %broadcast.splat181 = shufflevector <4 x double> %broadcast.splatinsert180, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert182 = insertelement <4 x double> poison, double %w6.0.i.i.i.i.i, i64 0 %broadcast.splat183 = shufflevector <4 x double> %broadcast.splatinsert182, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %w6.1.i.i.i.i.i, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert187 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.i, i64 0 %broadcast.splat188 = shufflevector <4 x double> %broadcast.splatinsert187, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert189 = insertelement <4 x double> poison, double %w7.0.i.i.i.i.i, i64 0 %broadcast.splat190 = shufflevector <4 x double> %broadcast.splatinsert189, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert191 = insertelement <4 x double> poison, double %w7.1.i.i.i.i.i, i64 0 %broadcast.splat192 = shufflevector <4 x double> %broadcast.splatinsert191, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body118 vector.body118: ; preds = %vector.body118, %bb32.i.i.i.i.i %index119 = phi i64 [ 0, %bb32.i.i.i.i.i ], [ %index.next194, %vector.body118 ] %406 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1380, i64 %index119 %407 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1385, i64 %index119 %408 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1390, i64 %index119 %409 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1395, i64 %index119 %410 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1400, i64 %index119 %411 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1405, i64 %index119 %412 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1410, i64 %index119 %413 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1415, i64 %index119 %wide.vec120 = load <8 x double>, ptr %406, align 8, !noalias !4362 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %407, align 8, !noalias !4362 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %wide.vec126 = load <8 x double>, ptr %408, align 8, !noalias !4362 %strided.vec127 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %strided.vec128 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %wide.vec129 = load <8 x double>, ptr %409, align 8, !noalias !4362 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %wide.vec132 = load <8 x double>, ptr %410, align 8, !noalias !4362 %strided.vec133 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %strided.vec134 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %wide.vec135 = load <8 x double>, ptr %411, align 8, !noalias !4362 %strided.vec136 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %strided.vec137 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %wide.vec138 = load <8 x double>, ptr %412, align 8, !noalias !4362 %strided.vec139 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %strided.vec140 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %wide.vec141 = load <8 x double>, ptr %413, align 8, !noalias !4362 %strided.vec142 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %strided.vec143 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %414 = fadd <4 x double> %strided.vec121, %strided.vec133 %415 = fadd <4 x double> %strided.vec122, %strided.vec134 %416 = fsub <4 x double> %strided.vec121, %strided.vec133 %417 = fsub <4 x double> %strided.vec122, %strided.vec134 %418 = fadd <4 x double> %strided.vec127, %strided.vec139 %419 = fadd <4 x double> %strided.vec128, %strided.vec140 %420 = fsub <4 x double> %strided.vec127, %strided.vec139 %421 = fsub <4 x double> %strided.vec128, %strided.vec140 %422 = fadd <4 x double> %strided.vec124, %strided.vec136 %423 = fadd <4 x double> %strided.vec125, %strided.vec137 %424 = fsub <4 x double> %strided.vec124, %strided.vec136 %425 = fsub <4 x double> %strided.vec125, %strided.vec137 %426 = fadd <4 x double> %strided.vec130, %strided.vec142 %427 = fadd <4 x double> %strided.vec131, %strided.vec143 %428 = fsub <4 x double> %strided.vec130, %strided.vec142 %429 = fsub <4 x double> %strided.vec131, %strided.vec143 %430 = fadd <4 x double> %414, %418 %431 = fadd <4 x double> %415, %419 %432 = fsub <4 x double> %416, %421 %433 = fadd <4 x double> %417, %420 %434 = fsub <4 x double> %414, %418 %435 = fsub <4 x double> %415, %419 %436 = fadd <4 x double> %416, %421 %437 = fsub <4 x double> %417, %420 %438 = fadd <4 x double> %422, %426 %439 = fadd <4 x double> %423, %427 %440 = fsub <4 x double> %424, %429 %441 = fadd <4 x double> %425, %428 %442 = fsub <4 x double> %440, %441 %443 = fadd <4 x double> %441, %440 %444 = fmul <4 x double> %442, %445 = fmul <4 x double> %443, %446 = fsub <4 x double> %422, %426 %447 = fsub <4 x double> %423, %427 %448 = fadd <4 x double> %424, %429 %449 = fsub <4 x double> %425, %428 %450 = fadd <4 x double> %449, %448 %451 = fsub <4 x double> %449, %448 %452 = fmul <4 x double> %450, %453 = fmul <4 x double> %451, %454 = fadd <4 x double> %430, %438 %455 = fadd <4 x double> %431, %439 %456 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1419, i64 %index119 %interleaved.vec144 = shufflevector <4 x double> %454, <4 x double> %455, <8 x i32> store <8 x double> %interleaved.vec144, ptr %456, align 8, !noalias !4362 %457 = fadd <4 x double> %432, %444 %458 = fadd <4 x double> %433, %445 %459 = fmul <4 x double> %458, %broadcast.splat146 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat148, <4 x double> %457, <4 x double> %459) %461 = fmul <4 x double> %broadcast.splat150, %457 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat148, <4 x double> %458, <4 x double> %461) %463 = getelementptr inbounds %"num_complex::Complex", ptr %387, i64 %index119 %interleaved.vec151 = shufflevector <4 x double> %460, <4 x double> %462, <8 x i32> store <8 x double> %interleaved.vec151, ptr %463, align 8, !noalias !4362 %464 = fsub <4 x double> %434, %447 %465 = fadd <4 x double> %435, %446 %466 = fmul <4 x double> %465, %broadcast.splat153 %467 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat155, <4 x double> %464, <4 x double> %466) %468 = fmul <4 x double> %broadcast.splat157, %464 %469 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat155, <4 x double> %465, <4 x double> %468) %470 = getelementptr inbounds %"num_complex::Complex", ptr %386, i64 %index119 %interleaved.vec158 = shufflevector <4 x double> %467, <4 x double> %469, <8 x i32> store <8 x double> %interleaved.vec158, ptr %470, align 8, !noalias !4362 %471 = fsub <4 x double> %436, %452 %472 = fsub <4 x double> %437, %453 %473 = fmul <4 x double> %472, %broadcast.splat160 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat162, <4 x double> %471, <4 x double> %473) %475 = fmul <4 x double> %broadcast.splat164, %471 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat162, <4 x double> %472, <4 x double> %475) %477 = getelementptr inbounds %"num_complex::Complex", ptr %388, i64 %index119 %interleaved.vec165 = shufflevector <4 x double> %474, <4 x double> %476, <8 x i32> store <8 x double> %interleaved.vec165, ptr %477, align 8, !noalias !4362 %478 = fsub <4 x double> %430, %438 %479 = fsub <4 x double> %431, %439 %480 = fmul <4 x double> %479, %broadcast.splat167 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat169, <4 x double> %478, <4 x double> %480) %482 = fmul <4 x double> %broadcast.splat171, %478 %483 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat169, <4 x double> %479, <4 x double> %482) %484 = getelementptr inbounds %"num_complex::Complex", ptr %385, i64 %index119 %interleaved.vec172 = shufflevector <4 x double> %481, <4 x double> %483, <8 x i32> store <8 x double> %interleaved.vec172, ptr %484, align 8, !noalias !4362 %485 = fsub <4 x double> %432, %444 %486 = fsub <4 x double> %433, %445 %487 = fmul <4 x double> %486, %broadcast.splat174 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat176, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %broadcast.splat178, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat176, <4 x double> %486, <4 x double> %489) %491 = getelementptr inbounds %"num_complex::Complex", ptr %390, i64 %index119 %interleaved.vec179 = shufflevector <4 x double> %488, <4 x double> %490, <8 x i32> store <8 x double> %interleaved.vec179, ptr %491, align 8, !noalias !4362 %492 = fadd <4 x double> %434, %447 %493 = fsub <4 x double> %435, %446 %494 = fmul <4 x double> %493, %broadcast.splat181 %495 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat183, <4 x double> %492, <4 x double> %494) %496 = fmul <4 x double> %broadcast.splat185, %492 %497 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat183, <4 x double> %493, <4 x double> %496) %498 = getelementptr inbounds %"num_complex::Complex", ptr %389, i64 %index119 %interleaved.vec186 = shufflevector <4 x double> %495, <4 x double> %497, <8 x i32> store <8 x double> %interleaved.vec186, ptr %498, align 8, !noalias !4362 %499 = fadd <4 x double> %436, %452 %500 = fadd <4 x double> %437, %453 %501 = fmul <4 x double> %500, %broadcast.splat188 %502 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat190, <4 x double> %499, <4 x double> %501) %503 = fmul <4 x double> %broadcast.splat192, %499 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat190, <4 x double> %500, <4 x double> %503) %505 = getelementptr inbounds %"num_complex::Complex", ptr %391, i64 %index119 %interleaved.vec193 = shufflevector <4 x double> %502, <4 x double> %504, <8 x i32> store <8 x double> %interleaved.vec193, ptr %505, align 8, !noalias !4362 %index.next194 = add nuw i64 %index119, 4 %506 = icmp eq i64 %index.next194, 64 br i1 %506, label %middle.block114, label %vector.body118, !llvm.loop !4368 middle.block114: ; preds = %vector.body118 br i1 %_2.i.i.i1357, label %bb32.i.i.i.i.i, label %vector.body199 "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc53a39ddb8d22cd8E.exit": ; preds = %vector.body199 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4362 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h886aae89fc49674cE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4369 store i64 64, ptr %n.i.i, align 8, !noalias !4369 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4369 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4369 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4369 store ptr null, ptr %_16.i.i, align 8, !noalias !4369 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4369 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4369 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4369 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4369 store ptr null, ptr %_24.i.i, align 8, !noalias !4369 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4369 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4369 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4369 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4369 store ptr null, ptr %_32.i.i, align 8, !noalias !4369 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4369 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4369 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4369 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04523917d718e5a5E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4369 store ptr null, ptr %_40.i.i, align 8, !noalias !4369 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04523917d718e5a5E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4369 tail call void @llvm.experimental.noalias.scope.decl(metadata !4374) tail call void @llvm.experimental.noalias.scope.decl(metadata !4377) tail call void @llvm.experimental.noalias.scope.decl(metadata !4379) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 18 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 22 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 26 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 30 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04523917d718e5a5E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04523917d718e5a5E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4374, !noalias !4381 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4379, !noalias !4382 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4377, !noalias !4383 store <4 x double> %247, ptr %248, align 8, !alias.scope !4377, !noalias !4383 store <4 x double> %249, ptr %250, align 8, !alias.scope !4377, !noalias !4383 store <4 x double> %251, ptr %252, align 8, !alias.scope !4377, !noalias !4383 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !4377, !noalias !4383 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !4377, !noalias !4383 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !4377, !noalias !4383 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !4377, !noalias !4383 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !4377, !noalias !4383 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !4377, !noalias !4383 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !4377, !noalias !4383 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !4377, !noalias !4383 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !4377, !noalias !4383 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !4377, !noalias !4383 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !4377, !noalias !4383 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !4377, !noalias !4383 %exitcond.not.i.i = icmp eq i64 %32, 2 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hbcbef548ee243e17E.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17hbcbef548ee243e17E.exit: ; preds = %bb39.i.i %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %scratch.0, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %278, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %277, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %279, align 8, !noalias !4369 %280 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %281 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %282 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %283 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %284 = bitcast <4 x double> %283 to <4 x i64> %285 = xor <4 x i64> %284, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = fadd <4 x double> %280, %282 %289 = fsub <4 x double> %281, %287 %290 = fsub <4 x double> %280, %282 %291 = fadd <4 x double> %281, %287 store <4 x double> %288, ptr %buf.0, align 8, !noalias !4369 store <4 x double> %289, ptr %3, align 8, !noalias !4369 store <4 x double> %290, ptr %2, align 8, !noalias !4369 store <4 x double> %291, ptr %10, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4369 %292 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %293 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %294 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %295 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %296 = bitcast <4 x double> %295 to <4 x i64> %297 = xor <4 x i64> %296, %298 = bitcast <4 x i64> %297 to <4 x double> %299 = shufflevector <4 x double> %298, <4 x double> poison, <4 x i32> %300 = fadd <4 x double> %292, %294 %301 = fsub <4 x double> %293, %299 %302 = fsub <4 x double> %292, %294 %303 = fadd <4 x double> %293, %299 store <4 x double> %300, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4369 store <4 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4369 store <4 x double> %302, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4369 store <4 x double> %303, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 26 %_73.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4369 %304 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %305 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %306 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %307 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %308 = bitcast <4 x double> %307 to <4 x i64> %309 = xor <4 x i64> %308, %310 = bitcast <4 x i64> %309 to <4 x double> %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = fadd <4 x double> %304, %306 %313 = fsub <4 x double> %305, %311 %314 = fsub <4 x double> %304, %306 %315 = fadd <4 x double> %305, %311 store <4 x double> %312, ptr %5, align 8, !noalias !4369 store <4 x double> %313, ptr %8, align 8, !noalias !4369 store <4 x double> %314, ptr %12, align 8, !noalias !4369 store <4 x double> %315, ptr %15, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_73.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4369 %316 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %317 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %318 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %319 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %320 = bitcast <4 x double> %319 to <4 x i64> %321 = xor <4 x i64> %320, %322 = bitcast <4 x i64> %321 to <4 x double> %323 = shufflevector <4 x double> %322, <4 x double> poison, <4 x i32> %324 = fadd <4 x double> %316, %318 %325 = fsub <4 x double> %317, %323 %326 = fsub <4 x double> %316, %318 %327 = fadd <4 x double> %317, %323 store <4 x double> %324, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4369 store <4 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4369 store <4 x double> %326, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4369 store <4 x double> %327, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %_73.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4369 %328 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %329 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %330 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %331 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %332 = bitcast <4 x double> %331 to <4 x i64> %333 = xor <4 x i64> %332, %334 = bitcast <4 x i64> %333 to <4 x double> %335 = shufflevector <4 x double> %334, <4 x double> poison, <4 x i32> %336 = fadd <4 x double> %328, %330 %337 = fsub <4 x double> %329, %335 %338 = fsub <4 x double> %328, %330 %339 = fadd <4 x double> %329, %335 store <4 x double> %336, ptr %4, align 8, !noalias !4369 store <4 x double> %337, ptr %7, align 8, !noalias !4369 store <4 x double> %338, ptr %11, align 8, !noalias !4369 store <4 x double> %339, ptr %14, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_73.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4369 %340 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %341 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %342 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %343 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %344 = bitcast <4 x double> %343 to <4 x i64> %345 = xor <4 x i64> %344, %346 = bitcast <4 x i64> %345 to <4 x double> %347 = shufflevector <4 x double> %346, <4 x double> poison, <4 x i32> %348 = fadd <4 x double> %340, %342 %349 = fsub <4 x double> %341, %347 %350 = fsub <4 x double> %340, %342 %351 = fadd <4 x double> %341, %347 store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4369 store <4 x double> %349, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4369 store <4 x double> %350, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !4369 store <4 x double> %351, ptr %_3.i.i.i.i.5.i, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 30 %_73.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4369 %352 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %353 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %354 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %355 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %356 = bitcast <4 x double> %355 to <4 x i64> %357 = xor <4 x i64> %356, %358 = bitcast <4 x i64> %357 to <4 x double> %359 = shufflevector <4 x double> %358, <4 x double> poison, <4 x i32> %360 = fadd <4 x double> %352, %354 %361 = fsub <4 x double> %353, %359 %362 = fsub <4 x double> %352, %354 %363 = fadd <4 x double> %353, %359 store <4 x double> %360, ptr %6, align 8, !noalias !4369 store <4 x double> %361, ptr %9, align 8, !noalias !4369 store <4 x double> %362, ptr %13, align 8, !noalias !4369 store <4 x double> %363, ptr %16, align 8, !noalias !4369 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_73.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4369 %_74.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4369 %_75.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4369 %_76.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4369 %364 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %365 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %366 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %367 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %368 = bitcast <4 x double> %367 to <4 x i64> %369 = xor <4 x i64> %368, %370 = bitcast <4 x i64> %369 to <4 x double> %371 = shufflevector <4 x double> %370, <4 x double> poison, <4 x i32> %372 = fadd <4 x double> %364, %366 %373 = fsub <4 x double> %365, %371 %374 = fsub <4 x double> %364, %366 %375 = fadd <4 x double> %365, %371 store <4 x double> %372, ptr %_3.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4369 store <4 x double> %373, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4369 store <4 x double> %374, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !4369 store <4 x double> %375, ptr %_3.i.i.i.i.7.i, align 8, !noalias !4369 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4369 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h88eef4b882b36914E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h887043753fff2056E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8a66465b895f2d2dE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h79307d755c1c194aE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8b7bcb70b9990b73E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4384 store i64 8, ptr %n.i.i, align 8, !noalias !4384 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4384 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4384 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4384 store ptr null, ptr %_16.i.i, align 8, !noalias !4384 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4384 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4384 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4384 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4384 store ptr null, ptr %_24.i.i, align 8, !noalias !4384 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4384 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4384 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4384 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4384 store ptr null, ptr %_32.i.i, align 8, !noalias !4384 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4384 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4384 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4384 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h6cb39869f3535bb0E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4384 store ptr null, ptr %_40.i.i, align 8, !noalias !4384 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h6cb39869f3535bb0E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4384 tail call void @llvm.experimental.noalias.scope.decl(metadata !4389) tail call void @llvm.experimental.noalias.scope.decl(metadata !4392) tail call void @llvm.experimental.noalias.scope.decl(metadata !4394) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !4394, !noalias !4396 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !4394, !noalias !4396 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !4394, !noalias !4396 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !4389, !noalias !4397 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !4389, !noalias !4397 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !4389, !noalias !4397 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !4389, !noalias !4397 %8 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %9 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %11 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = fsub <4 x double> %8, %10 %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %23, <4 x double> %27) #23 %29 = fadd <4 x double> %9, %15 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %36 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> store <4 x double> %35, ptr %scratch.0, align 8, !alias.scope !4392, !noalias !4398 %37 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %36, ptr %37, align 8, !alias.scope !4392, !noalias !4398 %38 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %39 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> %40 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %38, ptr %40, align 8, !alias.scope !4392, !noalias !4398 %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %39, ptr %41, align 8, !alias.scope !4392, !noalias !4398 %42 = fadd <4 x double> %35, %38 %43 = fsub <4 x double> %35, %38 store <4 x double> %42, ptr %buf.0, align 8, !noalias !4384 store <4 x double> %43, ptr %2, align 8, !noalias !4384 %44 = fadd <4 x double> %36, %39 %45 = fsub <4 x double> %36, %39 store <4 x double> %44, ptr %3, align 8, !noalias !4384 store <4 x double> %45, ptr %4, align 8, !noalias !4384 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4384 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8bf626a7a4190435E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4399 store i64 32, ptr %n.i, align 8, !noalias !4399 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4399 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4399 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4399 store ptr null, ptr %_16.i, align 8, !noalias !4399 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4399 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4399 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4399 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4399 store ptr null, ptr %_24.i, align 8, !noalias !4399 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4399 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4399 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4399 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4399 store ptr null, ptr %_32.i, align 8, !noalias !4399 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4399 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4399 store i64 %w.1, ptr %_34.i, align 8, !noalias !4399 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4399 store ptr null, ptr %_40.i, align 8, !noalias !4399 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4399 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %3, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %4, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %5, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %6, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %7, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %8, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %9 = fneg <4 x double> %wide.masked.gather1 %10 = fneg <4 x double> %wide.masked.gather3 %11 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4402 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %2, align 8, !noalias !4402 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %0, align 8, !noalias !4402 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %1, align 8, !noalias !4402 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec, %strided.vec11 %13 = fadd <4 x double> %strided.vec6, %strided.vec12 %14 = fsub <4 x double> %strided.vec, %strided.vec11 %15 = fsub <4 x double> %strided.vec6, %strided.vec12 %16 = fadd <4 x double> %strided.vec8, %strided.vec14 %17 = fadd <4 x double> %strided.vec9, %strided.vec15 %18 = fsub <4 x double> %strided.vec8, %strided.vec14 %19 = fsub <4 x double> %strided.vec9, %strided.vec15 %20 = fadd <4 x double> %12, %16 %21 = fadd <4 x double> %13, %17 %22 = fsub <4 x double> %14, %19 %23 = fadd <4 x double> %15, %18 %24 = fmul <4 x double> %23, %9 %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %22, <4 x double> %24) %26 = fmul <4 x double> %wide.masked.gather1, %22 %27 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %23, <4 x double> %26) %28 = fsub <4 x double> %12, %16 %29 = fsub <4 x double> %13, %17 %30 = fmul <4 x double> %29, %10 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather3, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %29, <4 x double> %32) %34 = fadd <4 x double> %14, %19 %35 = fsub <4 x double> %15, %18 %36 = fmul <4 x double> %35, %11 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather5, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %35, <4 x double> %38) %40 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> %41 = shufflevector <4 x double> %25, <4 x double> %27, <8 x i32> %42 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %43 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %44 = shufflevector <8 x double> %40, <8 x double> %41, <16 x i32> %45 = shufflevector <8 x double> %42, <8 x double> %43, <16 x i32> %interleaved.vec = shufflevector <16 x double> %44, <16 x double> %45, <32 x i32> store <32 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !4402 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %49 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %50 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !4402 %57 = fneg <4 x double> %wide.masked.gather1.1 %58 = fneg <4 x double> %wide.masked.gather3.1 %59 = fneg <4 x double> %wide.masked.gather5.1 %wide.vec.1 = load <8 x double>, ptr %46, align 8, !noalias !4402 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec6.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec7.1 = load <8 x double>, ptr %47, align 8, !noalias !4402 %strided.vec8.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %strided.vec9.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %wide.vec10.1 = load <8 x double>, ptr %48, align 8, !noalias !4402 %strided.vec11.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %strided.vec12.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %wide.vec13.1 = load <8 x double>, ptr %49, align 8, !noalias !4402 %strided.vec14.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %strided.vec15.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %60 = fadd <4 x double> %strided.vec.1, %strided.vec11.1 %61 = fadd <4 x double> %strided.vec6.1, %strided.vec12.1 %62 = fsub <4 x double> %strided.vec.1, %strided.vec11.1 %63 = fsub <4 x double> %strided.vec6.1, %strided.vec12.1 %64 = fadd <4 x double> %strided.vec8.1, %strided.vec14.1 %65 = fadd <4 x double> %strided.vec9.1, %strided.vec15.1 %66 = fsub <4 x double> %strided.vec8.1, %strided.vec14.1 %67 = fsub <4 x double> %strided.vec9.1, %strided.vec15.1 %68 = fadd <4 x double> %60, %64 %69 = fadd <4 x double> %61, %65 %70 = fsub <4 x double> %62, %67 %71 = fadd <4 x double> %63, %66 %72 = fmul <4 x double> %71, %57 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %70, <4 x double> %72) %74 = fmul <4 x double> %wide.masked.gather1.1, %70 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %71, <4 x double> %74) %76 = fsub <4 x double> %60, %64 %77 = fsub <4 x double> %61, %65 %78 = fmul <4 x double> %77, %58 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %76, <4 x double> %78) %80 = fmul <4 x double> %wide.masked.gather3.1, %76 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %77, <4 x double> %80) %82 = fadd <4 x double> %62, %67 %83 = fsub <4 x double> %63, %66 %84 = fmul <4 x double> %83, %59 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %82, <4 x double> %84) %86 = fmul <4 x double> %wide.masked.gather5.1, %82 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %83, <4 x double> %86) %88 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> %89 = shufflevector <4 x double> %73, <4 x double> %75, <8 x i32> %90 = shufflevector <4 x double> %79, <4 x double> %81, <8 x i32> %91 = shufflevector <4 x double> %85, <4 x double> %87, <8 x i32> %92 = shufflevector <8 x double> %88, <8 x double> %89, <16 x i32> %93 = shufflevector <8 x double> %90, <8 x double> %91, <16 x i32> %interleaved.vec.1 = shufflevector <16 x double> %92, <16 x double> %93, <32 x i32> store <32 x double> %interleaved.vec.1, ptr %50, align 8, !noalias !4402 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %95 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %96 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i79 = load double, ptr %97, align 8, !noalias !4399, !noundef !3 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i80 = load double, ptr %98, align 8, !noalias !4399, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i81 = load double, ptr %99, align 8, !noalias !4399, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i82 = load double, ptr %100, align 8, !noalias !4399, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i83 = load double, ptr %101, align 8, !noalias !4399, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i84 = load double, ptr %102, align 8, !noalias !4399, !noundef !3 %103 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %104 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %105 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %_6.i39.i.i.i143 = fneg double %w1.1.i.i.i80 %_6.i36.i.i.i148 = fneg double %w2.1.i.i.i82 %_6.i.i.i.i153 = fneg double %w3.1.i.i.i84 %106 = load <2 x double>, ptr %scratch.0, align 8, !noalias !4399 %107 = load <2 x double>, ptr %95, align 8, !noalias !4399 %108 = load <2 x double>, ptr %96, align 8, !noalias !4399 %109 = load <2 x double>, ptr %94, align 8, !noalias !4399 %110 = fadd <2 x double> %106, %108 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %110, %111 store <2 x double> %112, ptr %buf.0, align 8, !noalias !4399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.i.i.i.i654.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %113 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1, align 8, !noalias !4399 %114 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1, align 8, !noalias !4399 %115 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1, align 8, !noalias !4399 %116 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1, align 8, !noalias !4399 %117 = fadd <2 x double> %113, %115 %118 = fadd <2 x double> %114, %116 %119 = fadd <2 x double> %117, %118 store <2 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.i.i654.1, align 8, !noalias !4399 %120 = fsub <2 x double> %106, %108 %121 = fsub <2 x double> %113, %115 %122 = shufflevector <2 x double> %120, <2 x double> %121, <4 x i32> %123 = shufflevector <2 x double> %107, <2 x double> %114, <4 x i32> %124 = shufflevector <2 x double> %109, <2 x double> %116, <4 x i32> %125 = fsub <4 x double> %123, %124 %126 = fsub <4 x double> %122, %125 %127 = fadd <4 x double> %122, %125 %128 = shufflevector <4 x double> %126, <4 x double> %127, <4 x i32> %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = insertelement <4 x double> poison, double %_6.i39.i.i.i143, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i.i80, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %129, %132 %134 = insertelement <4 x double> poison, double %w1.0.i.i.i79, i64 0 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %128, <4 x double> %133) store <4 x double> %136, ptr %104, align 8, !noalias !4399 %137 = fsub <2 x double> %110, %111 %138 = fsub <2 x double> %117, %118 %139 = shufflevector <2 x double> %137, <2 x double> %138, <4 x i32> %140 = shufflevector <2 x double> %137, <2 x double> %138, <4 x i32> %141 = insertelement <4 x double> poison, double %_6.i36.i.i.i148, i64 0 %142 = insertelement <4 x double> %141, double %w2.1.i.i.i82, i64 1 %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %140, %143 %145 = insertelement <4 x double> poison, double %w2.0.i.i.i81, i64 0 %146 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> zeroinitializer %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %146, <4 x double> %139, <4 x double> %144) store <4 x double> %147, ptr %103, align 8, !noalias !4399 %148 = shufflevector <4 x double> %127, <4 x double> %126, <4 x i32> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = insertelement <4 x double> poison, double %_6.i.i.i.i153, i64 0 %151 = insertelement <4 x double> %150, double %w3.1.i.i.i84, i64 1 %152 = shufflevector <4 x double> %151, <4 x double> poison, <4 x i32> %153 = fmul <4 x double> %149, %152 %154 = insertelement <4 x double> poison, double %w3.0.i.i.i83, i64 0 %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %156 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %155, <4 x double> %148, <4 x double> %153) store <4 x double> %156, ptr %105, align 8, !noalias !4399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i.i.i.i.i.i.i.i.i.i654.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i657.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i660.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %_3.i.i.i.i663.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %157 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2, align 8, !noalias !4399 %158 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2, align 8, !noalias !4399 %159 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2, align 8, !noalias !4399 %160 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2, align 8, !noalias !4399 %161 = fadd <2 x double> %157, %159 %162 = fadd <2 x double> %158, %160 %163 = fadd <2 x double> %161, %162 store <2 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i654.2, align 8, !noalias !4399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.i.i.i.i654.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %164 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3, align 8, !noalias !4399 %165 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3, align 8, !noalias !4399 %166 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3, align 8, !noalias !4399 %167 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3, align 8, !noalias !4399 %168 = fadd <2 x double> %164, %166 %169 = fadd <2 x double> %165, %167 %170 = fadd <2 x double> %168, %169 store <2 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i654.3, align 8, !noalias !4399 %171 = fsub <2 x double> %157, %159 %172 = fsub <2 x double> %164, %166 %173 = shufflevector <2 x double> %171, <2 x double> %172, <4 x i32> %174 = shufflevector <2 x double> %158, <2 x double> %165, <4 x i32> %175 = shufflevector <2 x double> %160, <2 x double> %167, <4 x i32> %176 = fsub <4 x double> %174, %175 %177 = fsub <4 x double> %173, %176 %178 = fadd <4 x double> %173, %176 %179 = shufflevector <4 x double> %177, <4 x double> %178, <4 x i32> %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %180, %132 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %179, <4 x double> %181) store <4 x double> %182, ptr %_3.i.i.i.i.i.i.i.i657.2, align 8, !noalias !4399 %183 = fsub <2 x double> %161, %162 %184 = fsub <2 x double> %168, %169 %185 = shufflevector <2 x double> %183, <2 x double> %184, <4 x i32> %186 = shufflevector <2 x double> %183, <2 x double> %184, <4 x i32> %187 = fmul <4 x double> %186, %143 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %146, <4 x double> %185, <4 x double> %187) store <4 x double> %188, ptr %_3.i.i.i.i.i.i660.2, align 8, !noalias !4399 %189 = shufflevector <4 x double> %178, <4 x double> %177, <4 x i32> %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %190, %152 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %155, <4 x double> %189, <4 x double> %191) store <4 x double> %192, ptr %_3.i.i.i.i663.2, align 8, !noalias !4399 %data.i.i.i.i.i.i.i.i.i.i.i.i516.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %data.i5.i.i.i.i.i.i.i.i.i.i.i521.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %data.i.i.i.i.i.i.i.i.i.i526.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %data.i.i.i.i.i.i.i.i531.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %data.i.i.i.i.i.i535.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i.i79.1 = load double, ptr %193, align 8, !noalias !4399, !noundef !3 %194 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i.i80.1 = load double, ptr %194, align 8, !noalias !4399, !noundef !3 %195 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2 %w2.0.i.i.i81.1 = load double, ptr %195, align 8, !noalias !4399, !noundef !3 %196 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 2, i32 1 %w2.1.i.i.i82.1 = load double, ptr %196, align 8, !noalias !4399, !noundef !3 %197 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3 %w3.0.i.i.i83.1 = load double, ptr %197, align 8, !noalias !4399, !noundef !3 %198 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 3, i32 1 %w3.1.i.i.i84.1 = load double, ptr %198, align 8, !noalias !4399, !noundef !3 %199 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %200 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %201 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %_6.i39.i.i.i143.1 = fneg double %w1.1.i.i.i80.1 %_6.i36.i.i.i148.1 = fneg double %w2.1.i.i.i82.1 %_6.i.i.i.i153.1 = fneg double %w3.1.i.i.i84.1 %202 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i516.1, align 8, !noalias !4399 %203 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i521.1, align 8, !noalias !4399 %204 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i526.1, align 8, !noalias !4399 %205 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i531.1, align 8, !noalias !4399 %206 = fadd <2 x double> %202, %204 %207 = fadd <2 x double> %203, %205 %208 = fadd <2 x double> %206, %207 store <2 x double> %208, ptr %data.i.i.i.i.i.i535.1, align 8, !noalias !4399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.i.i.i.i654.1.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 17 %209 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.1.1, align 8, !noalias !4399 %210 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.1.1, align 8, !noalias !4399 %211 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.1.1, align 8, !noalias !4399 %212 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.1.1, align 8, !noalias !4399 %213 = fadd <2 x double> %209, %211 %214 = fadd <2 x double> %210, %212 %215 = fadd <2 x double> %213, %214 store <2 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i654.1.1, align 8, !noalias !4399 %216 = fsub <2 x double> %202, %204 %217 = fsub <2 x double> %209, %211 %218 = shufflevector <2 x double> %216, <2 x double> %217, <4 x i32> %219 = shufflevector <2 x double> %203, <2 x double> %210, <4 x i32> %220 = shufflevector <2 x double> %205, <2 x double> %212, <4 x i32> %221 = fsub <4 x double> %219, %220 %222 = fsub <4 x double> %218, %221 %223 = fadd <4 x double> %218, %221 %224 = shufflevector <4 x double> %222, <4 x double> %223, <4 x i32> %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = insertelement <4 x double> poison, double %_6.i39.i.i.i143.1, i64 0 %227 = insertelement <4 x double> %226, double %w1.1.i.i.i80.1, i64 1 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %225, %228 %230 = insertelement <4 x double> poison, double %w1.0.i.i.i79.1, i64 0 %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> zeroinitializer %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %231, <4 x double> %224, <4 x double> %229) store <4 x double> %232, ptr %200, align 8, !noalias !4399 %233 = fsub <2 x double> %206, %207 %234 = fsub <2 x double> %213, %214 %235 = shufflevector <2 x double> %233, <2 x double> %234, <4 x i32> %236 = shufflevector <2 x double> %233, <2 x double> %234, <4 x i32> %237 = insertelement <4 x double> poison, double %_6.i36.i.i.i148.1, i64 0 %238 = insertelement <4 x double> %237, double %w2.1.i.i.i82.1, i64 1 %239 = shufflevector <4 x double> %238, <4 x double> poison, <4 x i32> %240 = fmul <4 x double> %236, %239 %241 = insertelement <4 x double> poison, double %w2.0.i.i.i81.1, i64 0 %242 = shufflevector <4 x double> %241, <4 x double> poison, <4 x i32> zeroinitializer %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %242, <4 x double> %235, <4 x double> %240) store <4 x double> %243, ptr %199, align 8, !noalias !4399 %244 = shufflevector <4 x double> %223, <4 x double> %222, <4 x i32> %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = insertelement <4 x double> poison, double %_6.i.i.i.i153.1, i64 0 %247 = insertelement <4 x double> %246, double %w3.1.i.i.i84.1, i64 1 %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = fmul <4 x double> %245, %248 %250 = insertelement <4 x double> poison, double %w3.0.i.i.i83.1, i64 0 %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> zeroinitializer %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %244, <4 x double> %249) store <4 x double> %252, ptr %201, align 8, !noalias !4399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i.i.i.i.i654.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i.i.i.i.i.i.i.i657.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i.i.i660.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %_3.i.i.i.i663.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %253 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.2.1, align 8, !noalias !4399 %254 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.2.1, align 8, !noalias !4399 %255 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.2.1, align 8, !noalias !4399 %256 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.2.1, align 8, !noalias !4399 %257 = fadd <2 x double> %253, %255 %258 = fadd <2 x double> %254, %256 %259 = fadd <2 x double> %257, %258 store <2 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.i.i654.2.1, align 8, !noalias !4399 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.i.i.i.i654.3.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 19 %260 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i642.3.1, align 8, !noalias !4399 %261 = load <2 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i645.3.1, align 8, !noalias !4399 %262 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i648.3.1, align 8, !noalias !4399 %263 = load <2 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i651.3.1, align 8, !noalias !4399 %264 = fadd <2 x double> %260, %262 %265 = fadd <2 x double> %261, %263 %266 = fadd <2 x double> %264, %265 store <2 x double> %266, ptr %_3.i.i.i.i.i.i.i.i.i.i654.3.1, align 8, !noalias !4399 %267 = fsub <2 x double> %253, %255 %268 = fsub <2 x double> %260, %262 %269 = shufflevector <2 x double> %267, <2 x double> %268, <4 x i32> %270 = shufflevector <2 x double> %254, <2 x double> %261, <4 x i32> %271 = shufflevector <2 x double> %256, <2 x double> %263, <4 x i32> %272 = fsub <4 x double> %270, %271 %273 = fsub <4 x double> %269, %272 %274 = fadd <4 x double> %269, %272 %275 = shufflevector <4 x double> %273, <4 x double> %274, <4 x i32> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = fmul <4 x double> %276, %228 %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %231, <4 x double> %275, <4 x double> %277) store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i657.2.1, align 8, !noalias !4399 %279 = fsub <2 x double> %257, %258 %280 = fsub <2 x double> %264, %265 %281 = shufflevector <2 x double> %279, <2 x double> %280, <4 x i32> %282 = shufflevector <2 x double> %279, <2 x double> %280, <4 x i32> %283 = fmul <4 x double> %282, %239 %284 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %242, <4 x double> %281, <4 x double> %283) store <4 x double> %284, ptr %_3.i.i.i.i.i.i660.2.1, align 8, !noalias !4399 %285 = shufflevector <4 x double> %274, <4 x double> %273, <4 x i32> %286 = shufflevector <4 x double> %285, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %286, %248 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %285, <4 x double> %287) store <4 x double> %288, ptr %_3.i.i.i.i663.2.1, align 8, !noalias !4399 %wide.vec22 = load <8 x double>, ptr %buf.0, align 8, !noalias !4399 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %wide.vec25 = load <8 x double>, ptr %0, align 8, !noalias !4399 %strided.vec26 = shufflevector <8 x double> %wide.vec25, <8 x double> poison, <4 x i32> %strided.vec27 = shufflevector <8 x double> %wide.vec25, <8 x double> poison, <4 x i32> %289 = fadd <4 x double> %strided.vec23, %strided.vec26 %290 = fadd <4 x double> %strided.vec24, %strided.vec27 %291 = fsub <4 x double> %strided.vec23, %strided.vec26 %292 = fsub <4 x double> %strided.vec24, %strided.vec27 %interleaved.vec28 = shufflevector <4 x double> %289, <4 x double> %290, <8 x i32> store <8 x double> %interleaved.vec28, ptr %buf.0, align 8, !noalias !4399 %interleaved.vec29 = shufflevector <4 x double> %291, <4 x double> %292, <8 x i32> store <8 x double> %interleaved.vec29, ptr %0, align 8, !noalias !4399 %293 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %294 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec22.1 = load <8 x double>, ptr %293, align 8, !noalias !4399 %strided.vec23.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %strided.vec24.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %wide.vec25.1 = load <8 x double>, ptr %294, align 8, !noalias !4399 %strided.vec26.1 = shufflevector <8 x double> %wide.vec25.1, <8 x double> poison, <4 x i32> %strided.vec27.1 = shufflevector <8 x double> %wide.vec25.1, <8 x double> poison, <4 x i32> %295 = fadd <4 x double> %strided.vec23.1, %strided.vec26.1 %296 = fadd <4 x double> %strided.vec24.1, %strided.vec27.1 %297 = fsub <4 x double> %strided.vec23.1, %strided.vec26.1 %298 = fsub <4 x double> %strided.vec24.1, %strided.vec27.1 %interleaved.vec28.1 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec28.1, ptr %293, align 8, !noalias !4399 %interleaved.vec29.1 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec29.1, ptr %294, align 8, !noalias !4399 %299 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %300 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec22.2 = load <8 x double>, ptr %299, align 8, !noalias !4399 %strided.vec23.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %strided.vec24.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %wide.vec25.2 = load <8 x double>, ptr %300, align 8, !noalias !4399 %strided.vec26.2 = shufflevector <8 x double> %wide.vec25.2, <8 x double> poison, <4 x i32> %strided.vec27.2 = shufflevector <8 x double> %wide.vec25.2, <8 x double> poison, <4 x i32> %301 = fadd <4 x double> %strided.vec23.2, %strided.vec26.2 %302 = fadd <4 x double> %strided.vec24.2, %strided.vec27.2 %303 = fsub <4 x double> %strided.vec23.2, %strided.vec26.2 %304 = fsub <4 x double> %strided.vec24.2, %strided.vec27.2 %interleaved.vec28.2 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec28.2, ptr %299, align 8, !noalias !4399 %interleaved.vec29.2 = shufflevector <4 x double> %303, <4 x double> %304, <8 x i32> store <8 x double> %interleaved.vec29.2, ptr %300, align 8, !noalias !4399 %305 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %306 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec22.3 = load <8 x double>, ptr %305, align 8, !noalias !4399 %strided.vec23.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %strided.vec24.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %wide.vec25.3 = load <8 x double>, ptr %306, align 8, !noalias !4399 %strided.vec26.3 = shufflevector <8 x double> %wide.vec25.3, <8 x double> poison, <4 x i32> %strided.vec27.3 = shufflevector <8 x double> %wide.vec25.3, <8 x double> poison, <4 x i32> %307 = fadd <4 x double> %strided.vec23.3, %strided.vec26.3 %308 = fadd <4 x double> %strided.vec24.3, %strided.vec27.3 %309 = fsub <4 x double> %strided.vec23.3, %strided.vec26.3 %310 = fsub <4 x double> %strided.vec24.3, %strided.vec27.3 %interleaved.vec28.3 = shufflevector <4 x double> %307, <4 x double> %308, <8 x i32> store <8 x double> %interleaved.vec28.3, ptr %305, align 8, !noalias !4399 %interleaved.vec29.3 = shufflevector <4 x double> %309, <4 x double> %310, <8 x i32> store <8 x double> %interleaved.vec29.3, ptr %306, align 8, !noalias !4399 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4399 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8c591852e175f367E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hadc66e6b1edd44ecE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8c7c9f606ad3c016E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4405 store i64 256, ptr %n.i.i, align 8, !noalias !4405 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4405 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4405 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4405 store ptr null, ptr %_16.i.i, align 8, !noalias !4405 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4405 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4405 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4405 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4405 store ptr null, ptr %_24.i.i, align 8, !noalias !4405 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4405 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4405 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4405 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4405 store ptr null, ptr %_32.i.i, align 8, !noalias !4405 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4405 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4405 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4405 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f52c8b0154fbdc6E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4405 store ptr null, ptr %_40.i.i, align 8, !noalias !4405 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f52c8b0154fbdc6E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4405 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 br label %bb62.i.i.i.i bb62.i.i.i.i: ; preds = %bb62.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f52c8b0154fbdc6E.exit.i" %iter22.i.i.i.sroa.218.01493.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f52c8b0154fbdc6E.exit.i" ], [ %32, %bb62.i.i.i.i ] %32 = add nuw nsw i64 %iter22.i.i.i.sroa.218.01493.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter22.i.i.i.sroa.218.01493.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter22.i.i.i.sroa.218.01493.i %_208.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !noalias !4410 %_209.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !noalias !4410 %_210.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !noalias !4410 %_211.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !noalias !4410 %_212.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !noalias !4410 %_213.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !noalias !4410 %_214.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !noalias !4410 %_215.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !noalias !4410 %_216.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !noalias !4410 %_217.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !noalias !4410 %_218.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !noalias !4410 %_219.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !noalias !4410 %_220.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !noalias !4410 %_221.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !noalias !4410 %_222.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !noalias !4410 %_223.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !noalias !4410 %33 = fadd <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %34 = fsub <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %35 = fadd <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %36 = fsub <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %37 = fadd <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %38 = fsub <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %39 = fadd <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %40 = fsub <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %41 = fadd <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %42 = fsub <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %43 = fadd <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %44 = fsub <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %45 = fadd <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %46 = fsub <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %47 = fadd <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %48 = fsub <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = xor <4 x i64> %49, %51 = bitcast <4 x i64> %50 to <4 x double> %52 = shufflevector <4 x double> %51, <4 x double> poison, <4 x i32> %53 = bitcast <4 x double> %40 to <4 x i64> %54 = xor <4 x i64> %53, %55 = bitcast <4 x i64> %54 to <4 x double> %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = bitcast <4 x double> %44 to <4 x i64> %58 = xor <4 x i64> %57, %59 = bitcast <4 x i64> %58 to <4 x double> %60 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> %61 = bitcast <4 x double> %48 to <4 x i64> %62 = xor <4 x i64> %61, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %52 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %52 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %56 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %56 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %60 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %60 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fadd <4 x double> %123, %135 %137 = fmul <4 x double> %136, %138 = fmul <4 x double> %124, %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %139) #23 %141 = bitcast <4 x double> %125 to <4 x i64> %142 = xor <4 x i64> %141, %143 = bitcast <4 x i64> %142 to <4 x double> %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %126, %146 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %146) #23 %148 = bitcast <4 x double> %127 to <4 x i64> %149 = xor <4 x i64> %148, %150 = bitcast <4 x i64> %149 to <4 x double> %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = fadd <4 x double> %127, %151 %153 = fmul <4 x double> %152, %154 = fmul <4 x double> %128, %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %155) #23 %157 = fadd <4 x double> %97, %121 %158 = fadd <4 x double> %131, %98 %159 = fadd <4 x double> %99, %137 %160 = fadd <4 x double> %140, %100 %161 = fsub <4 x double> %101, %144 %162 = fsub <4 x double> %102, %147 %163 = fsub <4 x double> %103, %153 %164 = fsub <4 x double> %104, %156 %165 = fsub <4 x double> %97, %121 %166 = fsub <4 x double> %98, %131 %167 = fsub <4 x double> %99, %137 %168 = fsub <4 x double> %100, %140 %169 = fadd <4 x double> %101, %144 %170 = fadd <4 x double> %147, %102 %171 = fadd <4 x double> %103, %153 %172 = fadd <4 x double> %156, %104 store <4 x double> %157, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %158, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %159, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %160, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %161, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %164, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %165, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %166, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %171, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 store <4 x double> %172, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4410 %exitcond.not.i = icmp eq i64 %32, 8 br i1 %exitcond.not.i, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i", label %bb62.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i": ; preds = %bb62.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4414) tail call void @llvm.experimental.noalias.scope.decl(metadata !4417) tail call void @llvm.experimental.noalias.scope.decl(metadata !4419) %173 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %174 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %175 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %176 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %177 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %178 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %179 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %180 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %181 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %182 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %183 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 72 %184 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 88 %185 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %186 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 104 %187 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 120 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i" %iter.sroa.218.05279.i.i = phi i64 [ %188, %bb39.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE.exit.i" ] %188 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %176, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %175, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %177, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %174, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %179, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %178, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %180, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %173, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %183, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %182, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %184, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %181, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %186, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %185, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %187, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4419, !noalias !4421 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4417, !noalias !4422 %189 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %189, align 8, !alias.scope !4417, !noalias !4422 %190 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %190, align 8, !alias.scope !4417, !noalias !4422 %191 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %191, align 8, !alias.scope !4417, !noalias !4422 %192 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %192, align 8, !alias.scope !4417, !noalias !4422 %193 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %193, align 8, !alias.scope !4417, !noalias !4422 %194 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %194, align 8, !alias.scope !4417, !noalias !4422 %195 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %195, align 8, !alias.scope !4417, !noalias !4422 %196 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %196, align 8, !alias.scope !4417, !noalias !4422 %197 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %197, align 8, !alias.scope !4417, !noalias !4422 %198 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %198, align 8, !alias.scope !4417, !noalias !4422 %199 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %199, align 8, !alias.scope !4417, !noalias !4422 %200 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %200, align 8, !alias.scope !4417, !noalias !4422 %201 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %201, align 8, !alias.scope !4417, !noalias !4422 %202 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %202, align 8, !alias.scope !4417, !noalias !4422 %203 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %203, align 8, !alias.scope !4417, !noalias !4422 %204 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %205 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %206 = shufflevector <4 x double> %205, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %208, %206 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %207, <4 x double> %205, <4 x double> %209) #23 %211 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %215 = fmul <4 x double> %214, %212 %216 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %213, <4 x double> %211, <4 x double> %215) #23 %217 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %218 = shufflevector <4 x double> %217, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %220, %218 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %219, <4 x double> %217, <4 x double> %221) #23 %223 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %226, %224 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %225, <4 x double> %223, <4 x double> %227) #23 %229 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %230 = shufflevector <4 x double> %229, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %232, %230 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %231, <4 x double> %229, <4 x double> %233) #23 %235 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %238, %236 %240 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %237, <4 x double> %235, <4 x double> %239) #23 %241 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %242 = shufflevector <4 x double> %241, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %245 = fmul <4 x double> %244, %242 %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %243, <4 x double> %241, <4 x double> %245) #23 %247 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %250 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %251 = fmul <4 x double> %250, %248 %252 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %249, <4 x double> %247, <4 x double> %251) #23 %253 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %256 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %256, %254 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %255, <4 x double> %253, <4 x double> %257) #23 %259 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %260 = shufflevector <4 x double> %259, <4 x double> poison, <4 x i32> %261 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %262 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %263 = fmul <4 x double> %262, %260 %264 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %261, <4 x double> %259, <4 x double> %263) #23 %265 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %266 = shufflevector <4 x double> %265, <4 x double> poison, <4 x i32> %267 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %268 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %269 = fmul <4 x double> %268, %266 %270 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %267, <4 x double> %265, <4 x double> %269) #23 %271 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %272 = shufflevector <4 x double> %271, <4 x double> poison, <4 x i32> %273 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %274 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %275 = fmul <4 x double> %274, %272 %276 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %273, <4 x double> %271, <4 x double> %275) #23 %277 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %278 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> %279 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %280 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %281 = fmul <4 x double> %280, %278 %282 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %279, <4 x double> %277, <4 x double> %281) #23 %283 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %284 = shufflevector <4 x double> %283, <4 x double> poison, <4 x i32> %285 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %286 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %286, %284 %288 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %285, <4 x double> %283, <4 x double> %287) #23 %289 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %290 = shufflevector <4 x double> %289, <4 x double> poison, <4 x i32> %291 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %292 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %293 = fmul <4 x double> %292, %290 %294 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %291, <4 x double> %289, <4 x double> %293) #23 %295 = fadd <4 x double> %204, %252 %296 = fsub <4 x double> %204, %252 %297 = fadd <4 x double> %228, %276 %298 = fsub <4 x double> %228, %276 %299 = fadd <4 x double> %216, %264 %300 = fsub <4 x double> %216, %264 %301 = fadd <4 x double> %240, %288 %302 = fsub <4 x double> %240, %288 %303 = fadd <4 x double> %210, %258 %304 = fsub <4 x double> %210, %258 %305 = fadd <4 x double> %234, %282 %306 = fsub <4 x double> %234, %282 %307 = fadd <4 x double> %222, %270 %308 = fsub <4 x double> %222, %270 %309 = fadd <4 x double> %246, %294 %310 = fsub <4 x double> %246, %294 %311 = bitcast <4 x double> %298 to <4 x i64> %312 = bitcast <4 x double> %302 to <4 x i64> %313 = bitcast <4 x double> %306 to <4 x i64> %314 = bitcast <4 x double> %310 to <4 x i64> %315 = xor <4 x i64> %311, %316 = bitcast <4 x i64> %315 to <4 x double> %317 = shufflevector <4 x double> %316, <4 x double> poison, <4 x i32> %318 = xor <4 x i64> %312, %319 = bitcast <4 x i64> %318 to <4 x double> %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = xor <4 x i64> %313, %322 = bitcast <4 x i64> %321 to <4 x double> %323 = shufflevector <4 x double> %322, <4 x double> poison, <4 x i32> %324 = xor <4 x i64> %314, %325 = bitcast <4 x i64> %324 to <4 x double> %326 = shufflevector <4 x double> %325, <4 x double> poison, <4 x i32> %327 = fadd <4 x double> %295, %297 %328 = fsub <4 x double> %296, %317 %329 = fsub <4 x double> %295, %297 %330 = fadd <4 x double> %296, %317 %331 = fadd <4 x double> %299, %301 %332 = fsub <4 x double> %300, %320 %333 = fsub <4 x double> %299, %301 %334 = fadd <4 x double> %300, %320 %335 = fadd <4 x double> %303, %305 %336 = fsub <4 x double> %304, %323 %337 = fsub <4 x double> %303, %305 %338 = fadd <4 x double> %304, %323 %339 = fadd <4 x double> %307, %309 %340 = fsub <4 x double> %308, %326 %341 = fsub <4 x double> %307, %309 %342 = fadd <4 x double> %308, %326 %343 = bitcast <4 x double> %332 to <4 x i64> %344 = xor <4 x i64> %343, %345 = bitcast <4 x i64> %344 to <4 x double> %346 = shufflevector <4 x double> %345, <4 x double> poison, <4 x i32> %347 = fadd <4 x double> %332, %346 %348 = fmul <4 x double> %347, %349 = bitcast <4 x double> %333 to <4 x i64> %350 = xor <4 x i64> %349, %351 = bitcast <4 x i64> %350 to <4 x double> %352 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> %353 = bitcast <4 x double> %334 to <4 x i64> %354 = xor <4 x i64> %353, %355 = bitcast <4 x i64> %354 to <4 x double> %356 = shufflevector <4 x double> %355, <4 x double> poison, <4 x i32> %357 = fadd <4 x double> %334, %356 %358 = fmul <4 x double> %357, %359 = fadd <4 x double> %327, %331 %360 = fadd <4 x double> %328, %348 %361 = fsub <4 x double> %329, %352 %362 = fsub <4 x double> %330, %358 %363 = fsub <4 x double> %327, %331 %364 = fsub <4 x double> %328, %348 %365 = fadd <4 x double> %329, %352 %366 = fadd <4 x double> %330, %358 %367 = bitcast <4 x double> %340 to <4 x i64> %368 = xor <4 x i64> %367, %369 = bitcast <4 x i64> %368 to <4 x double> %370 = shufflevector <4 x double> %369, <4 x double> poison, <4 x i32> %371 = fadd <4 x double> %340, %370 %372 = fmul <4 x double> %371, %373 = bitcast <4 x double> %341 to <4 x i64> %374 = xor <4 x i64> %373, %375 = bitcast <4 x i64> %374 to <4 x double> %376 = shufflevector <4 x double> %375, <4 x double> poison, <4 x i32> %377 = bitcast <4 x double> %342 to <4 x i64> %378 = xor <4 x i64> %377, %379 = bitcast <4 x i64> %378 to <4 x double> %380 = shufflevector <4 x double> %379, <4 x double> poison, <4 x i32> %381 = fadd <4 x double> %342, %380 %382 = fmul <4 x double> %381, %383 = fadd <4 x double> %335, %339 %384 = fadd <4 x double> %336, %372 %385 = fsub <4 x double> %337, %376 %386 = fsub <4 x double> %338, %382 %387 = fsub <4 x double> %335, %339 %388 = fsub <4 x double> %336, %372 %389 = fadd <4 x double> %337, %376 %390 = fadd <4 x double> %338, %382 %391 = fadd <4 x double> %359, %383 store <4 x double> %391, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %392 = fsub <4 x double> %359, %383 store <4 x double> %392, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %393 = fmul <4 x double> %384, %394 = shufflevector <4 x double> %393, <4 x double> poison, <4 x i32> %395 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %384, <4 x double> %394) #23 %396 = fadd <4 x double> %395, %360 store <4 x double> %396, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %397 = fsub <4 x double> %360, %395 store <4 x double> %397, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %398 = bitcast <4 x double> %385 to <4 x i64> %399 = xor <4 x i64> %398, %400 = bitcast <4 x i64> %399 to <4 x double> %401 = shufflevector <4 x double> %400, <4 x double> poison, <4 x i32> %402 = fadd <4 x double> %385, %401 %403 = fmul <4 x double> %402, %404 = fadd <4 x double> %361, %403 store <4 x double> %404, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %405 = fsub <4 x double> %361, %403 store <4 x double> %405, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %406 = fmul <4 x double> %386, %407 = shufflevector <4 x double> %406, <4 x double> poison, <4 x i32> %408 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %386, <4 x double> %407) #23 %409 = bitcast <4 x double> %387 to <4 x i64> %410 = xor <4 x i64> %409, %411 = bitcast <4 x i64> %410 to <4 x double> %412 = shufflevector <4 x double> %411, <4 x double> poison, <4 x i32> %413 = fmul <4 x double> %388, %414 = shufflevector <4 x double> %413, <4 x double> poison, <4 x i32> %415 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %388, <4 x double> %414) #23 %.sink.i576.i = fadd <4 x double> %363, %412 %.sink5280.i.i = fsub <4 x double> %363, %412 %.sink5281.i.i = fsub <4 x double> %362, %408 %.sink5282.i.i = fadd <4 x double> %408, %362 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 store <4 x double> %.sink.i576.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %416 = fsub <4 x double> %364, %415 store <4 x double> %416, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %417 = fadd <4 x double> %415, %364 store <4 x double> %417, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %418 = bitcast <4 x double> %389 to <4 x i64> %419 = xor <4 x i64> %418, %420 = bitcast <4 x i64> %419 to <4 x double> %421 = shufflevector <4 x double> %420, <4 x double> poison, <4 x i32> %422 = fmul <4 x double> %390, %423 = shufflevector <4 x double> %422, <4 x double> poison, <4 x i32> %424 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %390, <4 x double> %423) #23 %.pn5288.in.i.i = fadd <4 x double> %389, %421 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %365, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %365, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %425 = fsub <4 x double> %366, %424 store <4 x double> %425, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %426 = fadd <4 x double> %366, %424 store <4 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4414, !noalias !4423 %exitcond.not.i.i = icmp eq i64 %188, 8 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h11b50460a244f258E.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17h11b50460a244f258E.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4405 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8db9d1403bbdc85dE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h877a8c7b45d9683dE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h8fd31236f50bc334E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4424 store i64 256, ptr %n.i.i, align 8, !noalias !4424 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4424 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4424 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4424 store ptr null, ptr %_16.i.i, align 8, !noalias !4424 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4424 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4424 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4424 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4424 store ptr null, ptr %_24.i.i, align 8, !noalias !4424 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4424 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4424 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4424 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4424 store ptr null, ptr %_32.i.i, align 8, !noalias !4424 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4424 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4424 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4424 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5f105aae49c79eE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4424 store ptr null, ptr %_40.i.i, align 8, !noalias !4424 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5f105aae49c79eE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4424 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 br label %bb26.i.i.i.i bb26.i.i.i.i: ; preds = %bb26.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5f105aae49c79eE.exit.i" %iter7.i.i.i.sroa.50.0231.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5f105aae49c79eE.exit.i" ], [ %8, %bb26.i.i.i.i ] %8 = add nuw nsw i64 %iter7.i.i.i.sroa.50.0231.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter7.i.i.i.sroa.50.0231.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter7.i.i.i.sroa.50.0231.i %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4429 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4429 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4429 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4429 %9 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %11 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = fsub <4 x double> %9, %11 %20 = fadd <4 x double> %10, %16 store <4 x double> %17, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4429 store <4 x double> %18, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4429 store <4 x double> %19, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4429 store <4 x double> %20, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4429 %exitcond.not.i = icmp eq i64 %8, 32 br i1 %exitcond.not.i, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i", label %bb26.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i": ; preds = %bb26.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4433) tail call void @llvm.experimental.noalias.scope.decl(metadata !4436) tail call void @llvm.experimental.noalias.scope.decl(metadata !4438) %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %21, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %22, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %23, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %24, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %25, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %26, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %27 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %28 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %33 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %36 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> zeroinitializer %37 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %38 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" ], [ %39, %bb38.us.i.i ] %39 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4436, !noalias !4441 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4436, !noalias !4441 %40 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %34, %40 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %41) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4436, !noalias !4441 %43 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %36, %43 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %44) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !4436, !noalias !4441 %46 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %47 = fmul <4 x double> %38, %46 %48 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %47) #23 %49 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %50 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %51 = fadd <4 x double> %42, %48 %52 = fsub <4 x double> %42, %48 %53 = bitcast <4 x double> %52 to <4 x i64> %54 = xor <4 x i64> %53, %55 = bitcast <4 x i64> %54 to <4 x double> %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = fadd <4 x double> %49, %51 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4433, !noalias !4442 %58 = fsub <4 x double> %50, %56 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4433, !noalias !4442 %59 = fsub <4 x double> %49, %51 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4433, !noalias !4442 %60 = fadd <4 x double> %50, %56 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4433, !noalias !4442 %exitcond.not.i.i = icmp eq i64 %39, 8 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i.1.i = load double, ptr %61, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %62, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.us.i.1.i = load double, ptr %63, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %64, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.us.i.1.i = load double, ptr %65, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %66, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %67 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %68 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %69 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %73 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %74 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer %75 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %76 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> zeroinitializer %77 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %78 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %79, %bb38.us.i.1.i ] %79 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4436, !noalias !4441 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4436, !noalias !4441 %80 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %74, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %73, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %81) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4436, !noalias !4441 %83 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %76, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %84) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !4436, !noalias !4441 %86 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %78, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %87) #23 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %91 = fadd <4 x double> %82, %88 %92 = fsub <4 x double> %82, %88 %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %89, %91 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4433, !noalias !4442 %98 = fsub <4 x double> %90, %96 store <4 x double> %98, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4433, !noalias !4442 %99 = fsub <4 x double> %89, %91 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4433, !noalias !4442 %100 = fadd <4 x double> %90, %96 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4433, !noalias !4442 %exitcond.not.i.1.i = icmp eq i64 %79, 8 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %data.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.us.i.2.i = load double, ptr %101, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.us.i.2.i = load double, ptr %102, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2 %w2.0.us.i.2.i = load double, ptr %103, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 2, i32 1 %w2.1.us.i.2.i = load double, ptr %104, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %105 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3 %w3.0.us.i.2.i = load double, ptr %105, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %106 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 3, i32 1 %w3.1.us.i.2.i = load double, ptr %106, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w1.0.us.i.2.i, i64 0 %107 = insertelement <4 x double> poison, double %w1.1.us.i.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w2.0.us.i.2.i, i64 0 %108 = insertelement <4 x double> poison, double %w2.1.us.i.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w3.0.us.i.2.i, i64 0 %109 = insertelement <4 x double> poison, double %w3.1.us.i.2.i, i64 0 %110 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %111 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %112 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %113 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <4 x double> %108, <4 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.2.i bb38.us.i.2.i: ; preds = %bb38.us.i.2.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter5.sroa.50.0694.us.i.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ], [ %119, %bb38.us.i.2.i ] %119 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %111, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %110, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %112, i64 %iter5.sroa.50.0694.us.i.2.i %a.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4436, !noalias !4441 %_84.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4436, !noalias !4441 %120 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %114, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> %121) #23 %_86.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4436, !noalias !4441 %123 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %116, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %115, <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> %124) #23 %_88.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.2.i, align 8, !alias.scope !4436, !noalias !4441 %126 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %118, %126 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %117, <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> %127) #23 %129 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %130 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %131 = fadd <4 x double> %122, %128 %132 = fsub <4 x double> %122, %128 %133 = bitcast <4 x double> %132 to <4 x i64> %134 = xor <4 x i64> %133, %135 = bitcast <4 x i64> %134 to <4 x double> %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fadd <4 x double> %129, %131 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4433, !noalias !4442 %138 = fsub <4 x double> %130, %136 store <4 x double> %138, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4433, !noalias !4442 %139 = fsub <4 x double> %129, %131 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4433, !noalias !4442 %140 = fadd <4 x double> %130, %136 store <4 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !4433, !noalias !4442 %exitcond.not.i.2.i = icmp eq i64 %119, 8 br i1 %exitcond.not.i.2.i, label %bb36.bb20.loopexit_crit_edge.us.i.2.i, label %bb38.us.i.2.i bb36.bb20.loopexit_crit_edge.us.i.2.i: ; preds = %bb38.us.i.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %data.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.us.i.3.i = load double, ptr %141, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.us.i.3.i = load double, ptr %142, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2 %w2.0.us.i.3.i = load double, ptr %143, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 2, i32 1 %w2.1.us.i.3.i = load double, ptr %144, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3 %w3.0.us.i.3.i = load double, ptr %145, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 3, i32 1 %w3.1.us.i.3.i = load double, ptr %146, align 8, !alias.scope !4438, !noalias !4440, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w1.0.us.i.3.i, i64 0 %147 = insertelement <4 x double> poison, double %w1.1.us.i.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w2.0.us.i.3.i, i64 0 %148 = insertelement <4 x double> poison, double %w2.1.us.i.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w3.0.us.i.3.i, i64 0 %149 = insertelement <4 x double> poison, double %w3.1.us.i.3.i, i64 0 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %151 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %152 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 %153 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.3.i bb38.us.i.3.i: ; preds = %bb38.us.i.3.i, %bb36.bb20.loopexit_crit_edge.us.i.2.i %iter5.sroa.50.0694.us.i.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.2.i ], [ %159, %bb38.us.i.3.i ] %159 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %151, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %150, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %152, i64 %iter5.sroa.50.0694.us.i.3.i %a.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4436, !noalias !4441 %_84.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4436, !noalias !4441 %160 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> %161) #23 %_86.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4436, !noalias !4441 %163 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %156, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> %164) #23 %_88.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.3.i, align 8, !alias.scope !4436, !noalias !4441 %166 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %167 = fmul <4 x double> %158, %166 %168 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> %167) #23 %169 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %170 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %171 = fadd <4 x double> %162, %168 %172 = fsub <4 x double> %162, %168 %173 = bitcast <4 x double> %172 to <4 x i64> %174 = xor <4 x i64> %173, %175 = bitcast <4 x i64> %174 to <4 x double> %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fadd <4 x double> %169, %171 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4433, !noalias !4442 %178 = fsub <4 x double> %170, %176 store <4 x double> %178, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4433, !noalias !4442 %179 = fsub <4 x double> %169, %171 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4433, !noalias !4442 %180 = fadd <4 x double> %170, %176 store <4 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !4433, !noalias !4442 %exitcond.not.i.3.i = icmp eq i64 %159, 8 br i1 %exitcond.not.i.3.i, label %bb36.bb20.loopexit_crit_edge.us.i.3.i, label %bb38.us.i.3.i bb36.bb20.loopexit_crit_edge.us.i.3.i: ; preds = %bb38.us.i.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4443) tail call void @llvm.experimental.noalias.scope.decl(metadata !4446) tail call void @llvm.experimental.noalias.scope.decl(metadata !4448) br label %bb22.us.i110.i bb22.us.i110.i: ; preds = %bb22.us.i110.i, %bb36.bb20.loopexit_crit_edge.us.i.3.i %iter.sroa.60.0707.us.i111.i = phi i64 [ %241, %bb22.us.i110.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.3.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i = shl nuw i64 %iter.sroa.60.0707.us.i111.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i113.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %start1.i.i.i.i.i.i.us.i114.i = shl i64 %iter.sroa.60.0707.us.i111.i, 3 %data.i.i.i.i.i.i.us.i115.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i114.i %data.i.i.i.i.i.i.i.i.us.i116.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %data.i.i.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i112.i %start1.i.i.i.i.us.i119.i = shl i64 %iter.sroa.60.0707.us.i111.i, 2 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 1 %w1.0.us.i120.i = load double, ptr %181, align 8, !alias.scope !4448, !noalias !4450, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 1, i32 1 %w1.1.us.i121.i = load double, ptr %182, align 8, !alias.scope !4448, !noalias !4450, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 2 %w2.0.us.i122.i = load double, ptr %183, align 8, !alias.scope !4448, !noalias !4450, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 2, i32 1 %w2.1.us.i123.i = load double, ptr %184, align 8, !alias.scope !4448, !noalias !4450, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 3 %w3.0.us.i124.i = load double, ptr %185, align 8, !alias.scope !4448, !noalias !4450, !noundef !3 %186 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i119.i, i64 3, i32 1 %w3.1.us.i125.i = load double, ptr %186, align 8, !alias.scope !4448, !noalias !4450, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i126.i = insertelement <2 x double> poison, double %w1.0.us.i120.i, i64 0 %187 = insertelement <4 x double> poison, double %w1.1.us.i121.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i127.i = insertelement <2 x double> poison, double %w2.0.us.i122.i, i64 0 %188 = insertelement <4 x double> poison, double %w2.1.us.i123.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i128.i = insertelement <2 x double> poison, double %w3.0.us.i124.i, i64 0 %189 = insertelement <4 x double> poison, double %w3.1.us.i125.i, i64 0 %190 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 4 %191 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 2 %192 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 6 %193 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i126.i, <2 x double> poison, <4 x i32> zeroinitializer %194 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> zeroinitializer %195 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i127.i, <2 x double> poison, <4 x i32> zeroinitializer %196 = shufflevector <4 x double> %188, <4 x double> poison, <4 x i32> zeroinitializer %197 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i128.i, <2 x double> poison, <4 x i32> zeroinitializer %198 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i139.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i115.i, align 8, !alias.scope !4446, !noalias !4451 %_84.sroa.0.0.copyload.us.i140.i = load <4 x double>, ptr %191, align 8, !alias.scope !4446, !noalias !4451 %199 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i140.i, <4 x double> poison, <4 x i32> %200 = fmul <4 x double> %194, %199 %201 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %_84.sroa.0.0.copyload.us.i140.i, <4 x double> %200) #23 %_86.sroa.0.0.copyload.us.i141.i = load <4 x double>, ptr %190, align 8, !alias.scope !4446, !noalias !4451 %202 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i141.i, <4 x double> poison, <4 x i32> %203 = fmul <4 x double> %196, %202 %204 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %195, <4 x double> %_86.sroa.0.0.copyload.us.i141.i, <4 x double> %203) #23 %_88.sroa.0.0.copyload.us.i142.i = load <4 x double>, ptr %192, align 8, !alias.scope !4446, !noalias !4451 %205 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i142.i, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %198, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_88.sroa.0.0.copyload.us.i142.i, <4 x double> %206) #23 %208 = fadd <4 x double> %a.sroa.0.0.copyload.us.i139.i, %204 %209 = fsub <4 x double> %a.sroa.0.0.copyload.us.i139.i, %204 %210 = fadd <4 x double> %201, %207 %211 = fsub <4 x double> %201, %207 %212 = bitcast <4 x double> %211 to <4 x i64> %213 = xor <4 x i64> %212, %214 = bitcast <4 x i64> %213 to <4 x double> %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fadd <4 x double> %208, %210 store <4 x double> %216, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i113.i, align 8, !alias.scope !4443, !noalias !4452 %217 = fsub <4 x double> %209, %215 store <4 x double> %217, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, align 8, !alias.scope !4443, !noalias !4452 %218 = fsub <4 x double> %208, %210 store <4 x double> %218, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !4443, !noalias !4452 %219 = fadd <4 x double> %209, %215 store <4 x double> %219, ptr %data.i.i.i.i.i.i.i.i.us.i116.i, align 8, !alias.scope !4443, !noalias !4452 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i131.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i113.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i132.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i133.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i117.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i134.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i116.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i135.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i136.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 3 %_3.i.i.i.i.i.i.us.i137.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 5 %_3.i.i.i.i.us.i138.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i115.i, i64 7 %a.sroa.0.0.copyload.us.i139.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i135.1.i, align 8, !alias.scope !4446, !noalias !4451 %_84.sroa.0.0.copyload.us.i140.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i136.1.i, align 8, !alias.scope !4446, !noalias !4451 %220 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i140.1.i, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %194, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %_84.sroa.0.0.copyload.us.i140.1.i, <4 x double> %221) #23 %_86.sroa.0.0.copyload.us.i141.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i137.1.i, align 8, !alias.scope !4446, !noalias !4451 %223 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i141.1.i, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %196, %223 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %195, <4 x double> %_86.sroa.0.0.copyload.us.i141.1.i, <4 x double> %224) #23 %_88.sroa.0.0.copyload.us.i142.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i138.1.i, align 8, !alias.scope !4446, !noalias !4451 %226 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i142.1.i, <4 x double> poison, <4 x i32> %227 = fmul <4 x double> %198, %226 %228 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_88.sroa.0.0.copyload.us.i142.1.i, <4 x double> %227) #23 %229 = fadd <4 x double> %a.sroa.0.0.copyload.us.i139.1.i, %225 %230 = fsub <4 x double> %a.sroa.0.0.copyload.us.i139.1.i, %225 %231 = fadd <4 x double> %222, %228 %232 = fsub <4 x double> %222, %228 %233 = bitcast <4 x double> %232 to <4 x i64> %234 = xor <4 x i64> %233, %235 = bitcast <4 x i64> %234 to <4 x double> %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fadd <4 x double> %229, %231 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i131.1.i, align 8, !alias.scope !4443, !noalias !4452 %238 = fsub <4 x double> %230, %236 store <4 x double> %238, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i132.1.i, align 8, !alias.scope !4443, !noalias !4452 %239 = fsub <4 x double> %229, %231 store <4 x double> %239, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i133.1.i, align 8, !alias.scope !4443, !noalias !4452 %240 = fadd <4 x double> %230, %236 store <4 x double> %240, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i134.1.i, align 8, !alias.scope !4443, !noalias !4452 %241 = add nuw nsw i64 %iter.sroa.60.0707.us.i111.i, 1 %exitcond233.not.i = icmp eq i64 %241, 16 br i1 %exitcond233.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i, label %bb22.us.i110.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i: ; preds = %bb22.us.i110.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4453) tail call void @llvm.experimental.noalias.scope.decl(metadata !4456) tail call void @llvm.experimental.noalias.scope.decl(metadata !4458) %242 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %243 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %244 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 br label %bb15.i149.i bb15.i149.i: ; preds = %bb15.i149.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i %iter.sroa.50.0547.i.i = phi i64 [ %245, %bb15.i149.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit146.i ] %245 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %243, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %242, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %244, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4458, !noalias !4460 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4458, !noalias !4460 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !4458, !noalias !4460 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4456, !noalias !4461 %246 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %246, align 8, !alias.scope !4456, !noalias !4461 %247 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %247, align 8, !alias.scope !4456, !noalias !4461 %248 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %248, align 8, !alias.scope !4456, !noalias !4461 %249 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %250 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %253 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %254 = fmul <4 x double> %253, %251 %255 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %252, <4 x double> %250, <4 x double> %254) #23 %256 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %259 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %260 = fmul <4 x double> %259, %257 %261 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %258, <4 x double> %256, <4 x double> %260) #23 %262 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %263 = shufflevector <4 x double> %262, <4 x double> poison, <4 x i32> %264 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %265 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %266 = fmul <4 x double> %265, %263 %267 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %264, <4 x double> %262, <4 x double> %266) #23 %268 = fadd <4 x double> %249, %261 %269 = fsub <4 x double> %249, %261 %270 = fadd <4 x double> %255, %267 %271 = fsub <4 x double> %255, %267 %272 = bitcast <4 x double> %271 to <4 x i64> %273 = xor <4 x i64> %272, %274 = bitcast <4 x i64> %273 to <4 x double> %275 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> %276 = fadd <4 x double> %268, %270 store <4 x double> %276, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4453, !noalias !4462 %277 = fsub <4 x double> %269, %275 store <4 x double> %277, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4453, !noalias !4462 %278 = fsub <4 x double> %268, %270 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4453, !noalias !4462 %279 = fadd <4 x double> %269, %275 store <4 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4453, !noalias !4462 %exitcond.not.i150.i = icmp eq i64 %245, 32 br i1 %exitcond.not.i150.i, label %_ZN4pulp3x862V39vectorize6__impl17hb3cf44e41dff2aa8E.exit, label %bb15.i149.i _ZN4pulp3x862V39vectorize6__impl17hb3cf44e41dff2aa8E.exit: ; preds = %bb15.i149.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4424 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h901f8ee504383c09E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4463 store i64 32, ptr %n.i, align 8, !noalias !4463 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4463 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4463 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4463 store ptr null, ptr %_16.i, align 8, !noalias !4463 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4463 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4463 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4463 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4463 store ptr null, ptr %_24.i, align 8, !noalias !4463 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4463 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4463 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4463 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4463 store ptr null, ptr %_32.i, align 8, !noalias !4463 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4463 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4463 store i64 %w.1, ptr %_34.i, align 8, !noalias !4463 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha7f6a68041999cadE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4463 store ptr null, ptr %_40.i, align 8, !noalias !4463 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha7f6a68041999cadE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4463 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4466 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !4466 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !4466 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %0, align 8, !noalias !4466 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %6 = fadd <4 x double> %strided.vec, %strided.vec6 %7 = fadd <4 x double> %strided.vec1, %strided.vec7 %8 = fsub <4 x double> %strided.vec, %strided.vec6 %9 = fsub <4 x double> %strided.vec1, %strided.vec7 %10 = fadd <4 x double> %strided.vec3, %strided.vec9 %11 = fadd <4 x double> %strided.vec4, %strided.vec10 %12 = fsub <4 x double> %strided.vec3, %strided.vec9 %13 = fsub <4 x double> %strided.vec4, %strided.vec10 %14 = fadd <4 x double> %6, %10 %15 = fadd <4 x double> %7, %11 %16 = fsub <4 x double> %8, %13 %17 = fadd <4 x double> %9, %12 %18 = fsub <4 x double> %6, %10 %19 = fsub <4 x double> %7, %11 %20 = fadd <4 x double> %8, %13 %21 = fsub <4 x double> %9, %12 %interleaved.vec = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !4466 %interleaved.vec11 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !4466 %interleaved.vec12 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !4466 %interleaved.vec13 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> store <8 x double> %interleaved.vec13, ptr %3, align 8, !noalias !4466 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %25 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.1 = load <8 x double>, ptr %22, align 8, !noalias !4466 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %23, align 8, !noalias !4466 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %24, align 8, !noalias !4466 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %25, align 8, !noalias !4466 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %26 = fadd <4 x double> %strided.vec.1, %strided.vec6.1 %27 = fadd <4 x double> %strided.vec1.1, %strided.vec7.1 %28 = fsub <4 x double> %strided.vec.1, %strided.vec6.1 %29 = fsub <4 x double> %strided.vec1.1, %strided.vec7.1 %30 = fadd <4 x double> %strided.vec3.1, %strided.vec9.1 %31 = fadd <4 x double> %strided.vec4.1, %strided.vec10.1 %32 = fsub <4 x double> %strided.vec3.1, %strided.vec9.1 %33 = fsub <4 x double> %strided.vec4.1, %strided.vec10.1 %34 = fadd <4 x double> %26, %30 %35 = fadd <4 x double> %27, %31 %36 = fsub <4 x double> %28, %33 %37 = fadd <4 x double> %29, %32 %38 = fsub <4 x double> %26, %30 %39 = fsub <4 x double> %27, %31 %40 = fadd <4 x double> %28, %33 %41 = fsub <4 x double> %29, %32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %34, <4 x double> %35, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %42, align 8, !noalias !4466 %43 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec11.1 = shufflevector <4 x double> %36, <4 x double> %37, <8 x i32> store <8 x double> %interleaved.vec11.1, ptr %43, align 8, !noalias !4466 %44 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec12.1 = shufflevector <4 x double> %38, <4 x double> %39, <8 x i32> store <8 x double> %interleaved.vec12.1, ptr %44, align 8, !noalias !4466 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec13.1 = shufflevector <4 x double> %40, <4 x double> %41, <8 x i32> store <8 x double> %interleaved.vec13.1, ptr %45, align 8, !noalias !4466 %46 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %52 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %53 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %54 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %55 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %56 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %57 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %58 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %59 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %60 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %61 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 4 %62 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 2 %63 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 1 %64 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 3 %65 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 6 %66 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 5 %67 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 7 %68 = fneg <4 x double> %wide.masked.gather20 %69 = fneg <4 x double> %wide.masked.gather22 %70 = fneg <4 x double> %wide.masked.gather24 %71 = fneg <4 x double> %wide.masked.gather26 %72 = fneg <4 x double> %wide.masked.gather28 %73 = fneg <4 x double> %wide.masked.gather30 %74 = fneg <4 x double> %wide.masked.gather32 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %75 = getelementptr inbounds i8, <4 x ptr> %46, i64 8 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %75, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %76 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 1, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %76, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %77 = fmul <4 x double> %wide.masked.gather36, %68 %78 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather35, <4 x double> %77) %79 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather35 %80 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather36, <4 x double> %79) %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %81 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 2, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %82 = fmul <4 x double> %wide.masked.gather38, %69 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather37, <4 x double> %82) %84 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather37 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather38, <4 x double> %84) %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %86 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 3, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %87 = fmul <4 x double> %wide.masked.gather40, %70 %88 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather39, <4 x double> %87) %89 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather39 %90 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather40, <4 x double> %89) %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %91 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 4, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %91, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %92 = fmul <4 x double> %wide.masked.gather42, %71 %93 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather41, <4 x double> %92) %94 = fmul <4 x double> %wide.masked.gather26, %wide.masked.gather41 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather42, <4 x double> %94) %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %96 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 5, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %97 = fmul <4 x double> %wide.masked.gather44, %72 %98 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather43, <4 x double> %97) %99 = fmul <4 x double> %wide.masked.gather28, %wide.masked.gather43 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather44, <4 x double> %99) %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %101 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 6, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %102 = fmul <4 x double> %wide.masked.gather46, %73 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather45, <4 x double> %102) %104 = fmul <4 x double> %wide.masked.gather30, %wide.masked.gather45 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather46, <4 x double> %104) %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %106 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 7, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !4463 %107 = fmul <4 x double> %wide.masked.gather48, %74 %108 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather47, <4 x double> %107) %109 = fmul <4 x double> %wide.masked.gather32, %wide.masked.gather47 %110 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather48, <4 x double> %109) %111 = fadd <4 x double> %wide.masked.gather33, %93 %112 = fadd <4 x double> %wide.masked.gather34, %95 %113 = fsub <4 x double> %wide.masked.gather33, %93 %114 = fsub <4 x double> %wide.masked.gather34, %95 %115 = fadd <4 x double> %83, %103 %116 = fadd <4 x double> %85, %105 %117 = fsub <4 x double> %83, %103 %118 = fsub <4 x double> %85, %105 %119 = fadd <4 x double> %78, %98 %120 = fadd <4 x double> %80, %100 %121 = fsub <4 x double> %78, %98 %122 = fsub <4 x double> %80, %100 %123 = fadd <4 x double> %88, %108 %124 = fadd <4 x double> %90, %110 %125 = fsub <4 x double> %88, %108 %126 = fsub <4 x double> %90, %110 %127 = fadd <4 x double> %111, %115 %128 = fadd <4 x double> %112, %116 %129 = fadd <4 x double> %119, %123 %130 = fadd <4 x double> %120, %124 %131 = fadd <4 x double> %127, %129 %132 = fadd <4 x double> %128, %130 %interleaved.vec49 = shufflevector <4 x double> %131, <4 x double> %132, <8 x i32> store <8 x double> %interleaved.vec49, ptr %buf.0, align 8, !noalias !4463 %133 = fsub <4 x double> %127, %129 %134 = fsub <4 x double> %128, %130 %135 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec50 = shufflevector <4 x double> %133, <4 x double> %134, <8 x i32> store <8 x double> %interleaved.vec50, ptr %135, align 8, !noalias !4463 %136 = fsub <4 x double> %113, %118 %137 = fadd <4 x double> %114, %117 %138 = fsub <4 x double> %121, %126 %139 = fadd <4 x double> %122, %125 %140 = fsub <4 x double> %138, %139 %141 = fadd <4 x double> %138, %139 %142 = fmul <4 x double> %140, %143 = fmul <4 x double> %141, %144 = fadd <4 x double> %136, %142 %145 = fadd <4 x double> %137, %143 %146 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec51 = shufflevector <4 x double> %144, <4 x double> %145, <8 x i32> store <8 x double> %interleaved.vec51, ptr %146, align 8, !noalias !4463 %147 = fsub <4 x double> %136, %142 %148 = fsub <4 x double> %137, %143 %149 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec52 = shufflevector <4 x double> %147, <4 x double> %148, <8 x i32> store <8 x double> %interleaved.vec52, ptr %149, align 8, !noalias !4463 %150 = fsub <4 x double> %111, %115 %151 = fsub <4 x double> %112, %116 %152 = fsub <4 x double> %119, %123 %153 = fsub <4 x double> %120, %124 %154 = fsub <4 x double> %150, %153 %155 = fadd <4 x double> %151, %152 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec53 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> store <8 x double> %interleaved.vec53, ptr %156, align 8, !noalias !4463 %157 = fadd <4 x double> %150, %153 %158 = fsub <4 x double> %151, %152 %159 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec54 = shufflevector <4 x double> %157, <4 x double> %158, <8 x i32> store <8 x double> %interleaved.vec54, ptr %159, align 8, !noalias !4463 %160 = fadd <4 x double> %113, %118 %161 = fsub <4 x double> %114, %117 %162 = fadd <4 x double> %121, %126 %163 = fsub <4 x double> %122, %125 %164 = fadd <4 x double> %162, %163 %165 = fsub <4 x double> %163, %162 %166 = fmul <4 x double> %164, %167 = fmul <4 x double> %165, %168 = fsub <4 x double> %160, %166 %169 = fsub <4 x double> %161, %167 %170 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec55 = shufflevector <4 x double> %168, <4 x double> %169, <8 x i32> store <8 x double> %interleaved.vec55, ptr %170, align 8, !noalias !4463 %171 = fadd <4 x double> %160, %166 %172 = fadd <4 x double> %161, %167 %173 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec56 = shufflevector <4 x double> %171, <4 x double> %172, <8 x i32> store <8 x double> %interleaved.vec56, ptr %173, align 8, !noalias !4463 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4463 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h90d79d5a952dfff6E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4469 store i64 512, ptr %n.i, align 8, !noalias !4469 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4469 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4469 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4469 store ptr null, ptr %_16.i, align 8, !noalias !4469 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4469 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4469 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4469 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4469 store ptr null, ptr %_24.i, align 8, !noalias !4469 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4469 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4469 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4469 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4469 store ptr null, ptr %_32.i, align 8, !noalias !4469 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4469 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4469 store i64 %w.1, ptr %_34.i, align 8, !noalias !4469 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4469 store ptr null, ptr %_40.i, align 8, !noalias !4469 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4469 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !4472 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !4472 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !4472 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !4472 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !4472 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !4472 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !4472 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !4472 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !4472 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !4472 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fadd <4 x double> %20, %25 %29 = fsub <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fsub <4 x double> %20, %25 %41 = fadd <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !4472 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 124 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !4475 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !4472, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !4472, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !4472, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !4472, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !4472, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !4472, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 498 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 497 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 499 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4472 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4472 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4472 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4472 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !4472 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fadd <2 x double> %69, %71 %73 = fsub <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !4472 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !4472 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !4472 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 381 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !4472, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !4472, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !4472, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !4472, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !4472, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !4472, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 502 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 501 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 503 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4472 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4472 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4472 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4472 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4472 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fadd <2 x double> %114, %116 %118 = fsub <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !4472 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !4472 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !4472 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 382 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !4472, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !4472, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !4472, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !4472, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !4472, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !4472, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4472 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4472 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4472 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4472 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4472 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fadd <2 x double> %159, %161 %163 = fsub <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !4472 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !4472 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !4472 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 383 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !4472, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !4472, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !4472, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !4472, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !4472, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !4472, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4472 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4472 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4472 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4472 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4472 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fadd <2 x double> %204, %206 %208 = fsub <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !4472 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !4472 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !4472 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !4469 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !4469 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !4469 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !4469 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !4469 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !4469 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !4469 %295 = fadd <4 x double> %277, %282 %296 = fsub <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !4469 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !4469 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !4469 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !4469 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !4469 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !4469 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !4469 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !4469 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !4469 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !4469 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !4469 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !4469 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !4469 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !4469 %327 = fsub <4 x double> %277, %282 %328 = fadd <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !4469 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !4469 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !4469 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !4469 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !4469 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !4469 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !4469 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !4469 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !4469 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !4469 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !4469 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !4469 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !4469 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !4469 %387 = fadd <4 x double> %369, %374 %388 = fsub <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !4469 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !4469 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !4469 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !4469 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !4469 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !4469 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !4469 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !4469 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !4469 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !4469 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !4469 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !4469 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !4469 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !4469 %419 = fsub <4 x double> %369, %374 %420 = fadd <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !4469 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !4469 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !4469 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !4469 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !4469 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !4469 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !4469 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !4469 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !4469 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !4469 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !4469 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !4469 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !4469 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !4469 %479 = fadd <4 x double> %461, %466 %480 = fsub <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !4469 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !4469 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !4469 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !4469 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !4469 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !4469 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !4469 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !4469 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !4469 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !4469 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !4469 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !4469 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !4469 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !4469 %511 = fsub <4 x double> %461, %466 %512 = fadd <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !4469 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !4469 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !4469 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !4469 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !4469 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !4469 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !4469 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !4469 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !4469 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !4469 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !4469 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !4469 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !4469 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !4469 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !4469 %571 = fadd <4 x double> %553, %558 %572 = fsub <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !4469 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !4469 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !4469 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !4469 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !4469 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !4469 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !4469 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !4469 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !4469 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !4469 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !4469 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !4469 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !4469 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !4469 %603 = fsub <4 x double> %553, %558 %604 = fadd <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !4469 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !4469 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !4469 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !4469 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !4469 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !4469 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !4469 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 32 br i1 %619, label %bb24.i.i.i.i, label %vector.body20, !llvm.loop !4476 bb24.i.i.i74.i.preheader: ; preds = %bb24.i.i.i.i %620 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %621 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i90.i = load double, ptr %622, align 8, !noalias !4469, !noundef !3 %_6.i.i.i.i162.i = fneg double %w3.1.i.i.i90.i %623 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i88.i = load double, ptr %623, align 8, !noalias !4469, !noundef !3 %_6.i36.i.i.i157.i = fneg double %w2.1.i.i.i88.i %624 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i86.i = load double, ptr %624, align 8, !noalias !4469, !noundef !3 %_6.i39.i.i.i152.i = fneg double %w1.1.i.i.i86.i %625 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i89.i = load double, ptr %625, align 8, !noalias !4469, !noundef !3 %626 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i87.i = load double, ptr %626, align 8, !noalias !4469, !noundef !3 %627 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i85.i = load double, ptr %627, align 8, !noalias !4469, !noundef !3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body106 vector.body106: ; preds = %vector.body106, %bb24.i.i.i74.i.preheader %index107 = phi i64 [ 0, %bb24.i.i.i74.i.preheader ], [ %index.next142, %vector.body106 ] %628 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index107 %629 = getelementptr inbounds %"num_complex::Complex", ptr %234, i64 %index107 %630 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index107 %631 = getelementptr inbounds %"num_complex::Complex", ptr %235, i64 %index107 %wide.vec108 = load <8 x double>, ptr %628, align 8, !noalias !4469 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %629, align 8, !noalias !4469 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %630, align 8, !noalias !4469 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %631, align 8, !noalias !4469 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %632 = fadd <4 x double> %strided.vec109, %strided.vec115 %633 = fadd <4 x double> %strided.vec110, %strided.vec116 %634 = fsub <4 x double> %strided.vec109, %strided.vec115 %635 = fsub <4 x double> %strided.vec110, %strided.vec116 %636 = fadd <4 x double> %strided.vec112, %strided.vec118 %637 = fadd <4 x double> %strided.vec113, %strided.vec119 %638 = fsub <4 x double> %strided.vec112, %strided.vec118 %639 = fsub <4 x double> %strided.vec113, %strided.vec119 %640 = fadd <4 x double> %632, %636 %641 = fadd <4 x double> %633, %637 %642 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index107 %interleaved.vec120 = shufflevector <4 x double> %640, <4 x double> %641, <8 x i32> store <8 x double> %interleaved.vec120, ptr %642, align 8, !noalias !4469 %643 = fadd <4 x double> %634, %639 %644 = fsub <4 x double> %635, %638 %645 = fmul <4 x double> %644, %broadcast.splat122 %646 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %643, <4 x double> %645) %647 = fmul <4 x double> %broadcast.splat126, %643 %648 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %644, <4 x double> %647) %649 = getelementptr inbounds %"num_complex::Complex", ptr %620, i64 %index107 %interleaved.vec127 = shufflevector <4 x double> %646, <4 x double> %648, <8 x i32> store <8 x double> %interleaved.vec127, ptr %649, align 8, !noalias !4469 %650 = fsub <4 x double> %632, %636 %651 = fsub <4 x double> %633, %637 %652 = fmul <4 x double> %651, %broadcast.splat129 %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %650, <4 x double> %652) %654 = fmul <4 x double> %broadcast.splat133, %650 %655 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %651, <4 x double> %654) %656 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index107 %interleaved.vec134 = shufflevector <4 x double> %653, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec134, ptr %656, align 8, !noalias !4469 %657 = fsub <4 x double> %634, %639 %658 = fadd <4 x double> %635, %638 %659 = fmul <4 x double> %658, %broadcast.splat136 %660 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %657, <4 x double> %659) %661 = fmul <4 x double> %broadcast.splat140, %657 %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %658, <4 x double> %661) %663 = getelementptr inbounds %"num_complex::Complex", ptr %621, i64 %index107 %interleaved.vec141 = shufflevector <4 x double> %660, <4 x double> %662, <8 x i32> store <8 x double> %interleaved.vec141, ptr %663, align 8, !noalias !4469 %index.next142 = add nuw i64 %index107, 4 %664 = icmp eq i64 %index.next142, 64 br i1 %664, label %bb20.i.i.i70.i.loopexit, label %vector.body106, !llvm.loop !4477 bb24.i.i.i.i: ; preds = %vector.body20, %bb24.i.i.i.i %iter.i.i.i.i.sroa.60.0134 = phi i64 [ %810, %bb24.i.i.i.i ], [ 0, %vector.body20 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i844 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0134, 4 %665 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %665, align 8, !noalias !4478, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %666 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 3 %w3.0.i.i.i.i = load double, ptr %666, align 8, !noalias !4478, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w3.1.i.i.i.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %667 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %667, align 8, !noalias !4478, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %668 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 2 %w2.0.i.i.i.i = load double, ptr %668, align 8, !noalias !4478, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i = fneg double %w2.1.i.i.i.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %669 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %669, align 8, !noalias !4478, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %670 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844, i64 1 %w1.0.i.i.i.i = load double, ptr %670, align 8, !noalias !4478, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i863 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0134, 6 %data.i.i.i.i.i.i864 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i863 %671 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 48 %672 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 16 %673 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 32 %data.i.i.i.i.i.i.i.i860 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %data.i.i.i.i.i.i.i.i.i.i855 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %data.i5.i.i.i.i.i.i.i.i.i.i.i850 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %data.i.i.i.i.i.i.i.i.i.i.i.i845 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i844 %wide.vec69 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, align 8, !noalias !4478 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, align 8, !noalias !4478 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i855, align 8, !noalias !4478 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i860, align 8, !noalias !4478 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %674 = fadd <4 x double> %strided.vec70, %strided.vec76 %675 = fadd <4 x double> %strided.vec71, %strided.vec77 %676 = fsub <4 x double> %strided.vec70, %strided.vec76 %677 = fsub <4 x double> %strided.vec71, %strided.vec77 %678 = fadd <4 x double> %strided.vec73, %strided.vec79 %679 = fadd <4 x double> %strided.vec74, %strided.vec80 %680 = fsub <4 x double> %strided.vec73, %strided.vec79 %681 = fsub <4 x double> %strided.vec74, %strided.vec80 %682 = fadd <4 x double> %674, %678 %683 = fadd <4 x double> %675, %679 %interleaved.vec81 = shufflevector <4 x double> %682, <4 x double> %683, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i864, align 8, !noalias !4478 %684 = fadd <4 x double> %676, %681 %685 = fsub <4 x double> %677, %680 %686 = fmul <4 x double> %685, %broadcast.splat %687 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %684, <4 x double> %686) %688 = fmul <4 x double> %broadcast.splat85, %684 %689 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %685, <4 x double> %688) %interleaved.vec86 = shufflevector <4 x double> %687, <4 x double> %689, <8 x i32> store <8 x double> %interleaved.vec86, ptr %672, align 8, !noalias !4478 %690 = fsub <4 x double> %674, %678 %691 = fsub <4 x double> %675, %679 %692 = fmul <4 x double> %691, %broadcast.splat88 %693 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %690, <4 x double> %692) %694 = fmul <4 x double> %broadcast.splat92, %690 %695 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %691, <4 x double> %694) %interleaved.vec93 = shufflevector <4 x double> %693, <4 x double> %695, <8 x i32> store <8 x double> %interleaved.vec93, ptr %673, align 8, !noalias !4478 %696 = fsub <4 x double> %676, %681 %697 = fadd <4 x double> %677, %680 %698 = fmul <4 x double> %697, %broadcast.splat95 %699 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %696, <4 x double> %698) %700 = fmul <4 x double> %broadcast.splat99, %696 %701 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %697, <4 x double> %700) %interleaved.vec100 = shufflevector <4 x double> %699, <4 x double> %701, <8 x i32> store <8 x double> %interleaved.vec100, ptr %671, align 8, !noalias !4478 %702 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, i64 4 %703 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, i64 4 %704 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i855, i64 4 %705 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i860, i64 4 %wide.vec69.1 = load <8 x double>, ptr %702, align 8, !noalias !4478 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %703, align 8, !noalias !4478 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %704, align 8, !noalias !4478 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %705, align 8, !noalias !4478 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %706 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %707 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %708 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %709 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %710 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %711 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %712 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %713 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %714 = fadd <4 x double> %706, %710 %715 = fadd <4 x double> %707, %711 %716 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %714, <4 x double> %715, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %716, align 8, !noalias !4478 %717 = fadd <4 x double> %708, %713 %718 = fsub <4 x double> %709, %712 %719 = fmul <4 x double> %718, %broadcast.splat %720 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %717, <4 x double> %719) %721 = fmul <4 x double> %broadcast.splat85, %717 %722 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %718, <4 x double> %721) %723 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %720, <4 x double> %722, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %723, align 8, !noalias !4478 %724 = fsub <4 x double> %706, %710 %725 = fsub <4 x double> %707, %711 %726 = fmul <4 x double> %725, %broadcast.splat88 %727 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %724, <4 x double> %726) %728 = fmul <4 x double> %broadcast.splat92, %724 %729 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %725, <4 x double> %728) %730 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %727, <4 x double> %729, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %730, align 8, !noalias !4478 %731 = fsub <4 x double> %708, %713 %732 = fadd <4 x double> %709, %712 %733 = fmul <4 x double> %732, %broadcast.splat95 %734 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %731, <4 x double> %733) %735 = fmul <4 x double> %broadcast.splat99, %731 %736 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %732, <4 x double> %735) %737 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %734, <4 x double> %736, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %737, align 8, !noalias !4478 %738 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, i64 8 %739 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, i64 8 %740 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i855, i64 8 %741 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i860, i64 8 %wide.vec69.2 = load <8 x double>, ptr %738, align 8, !noalias !4478 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %739, align 8, !noalias !4478 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %740, align 8, !noalias !4478 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %741, align 8, !noalias !4478 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %742 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %743 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %744 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %745 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %746 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %747 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %748 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %749 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %750 = fadd <4 x double> %742, %746 %751 = fadd <4 x double> %743, %747 %752 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %750, <4 x double> %751, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %752, align 8, !noalias !4478 %753 = fadd <4 x double> %744, %749 %754 = fsub <4 x double> %745, %748 %755 = fmul <4 x double> %754, %broadcast.splat %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %753, <4 x double> %755) %757 = fmul <4 x double> %broadcast.splat85, %753 %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %754, <4 x double> %757) %759 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %756, <4 x double> %758, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %759, align 8, !noalias !4478 %760 = fsub <4 x double> %742, %746 %761 = fsub <4 x double> %743, %747 %762 = fmul <4 x double> %761, %broadcast.splat88 %763 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %760, <4 x double> %762) %764 = fmul <4 x double> %broadcast.splat92, %760 %765 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %761, <4 x double> %764) %766 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %763, <4 x double> %765, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %766, align 8, !noalias !4478 %767 = fsub <4 x double> %744, %749 %768 = fadd <4 x double> %745, %748 %769 = fmul <4 x double> %768, %broadcast.splat95 %770 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %767, <4 x double> %769) %771 = fmul <4 x double> %broadcast.splat99, %767 %772 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %768, <4 x double> %771) %773 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %770, <4 x double> %772, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %773, align 8, !noalias !4478 %774 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i845, i64 12 %775 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i850, i64 12 %776 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i855, i64 12 %777 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i860, i64 12 %wide.vec69.3 = load <8 x double>, ptr %774, align 8, !noalias !4478 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %775, align 8, !noalias !4478 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %776, align 8, !noalias !4478 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %777, align 8, !noalias !4478 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %778 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %779 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %780 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %781 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %782 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %783 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %784 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %785 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %786 = fadd <4 x double> %778, %782 %787 = fadd <4 x double> %779, %783 %788 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %786, <4 x double> %787, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %788, align 8, !noalias !4478 %789 = fadd <4 x double> %780, %785 %790 = fsub <4 x double> %781, %784 %791 = fmul <4 x double> %790, %broadcast.splat %792 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %789, <4 x double> %791) %793 = fmul <4 x double> %broadcast.splat85, %789 %794 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %790, <4 x double> %793) %795 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %792, <4 x double> %794, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %795, align 8, !noalias !4478 %796 = fsub <4 x double> %778, %782 %797 = fsub <4 x double> %779, %783 %798 = fmul <4 x double> %797, %broadcast.splat88 %799 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %796, <4 x double> %798) %800 = fmul <4 x double> %broadcast.splat92, %796 %801 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %797, <4 x double> %800) %802 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %799, <4 x double> %801, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %802, align 8, !noalias !4478 %803 = fsub <4 x double> %780, %785 %804 = fadd <4 x double> %781, %784 %805 = fmul <4 x double> %804, %broadcast.splat95 %806 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %803, <4 x double> %805) %807 = fmul <4 x double> %broadcast.splat99, %803 %808 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %804, <4 x double> %807) %809 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i864, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %806, <4 x double> %808, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %809, align 8, !noalias !4478 %810 = add nuw nsw i64 %iter.i.i.i.i.sroa.60.0134, 1 %exitcond142.not = icmp eq i64 %810, 8 br i1 %exitcond142.not, label %bb24.i.i.i74.i.preheader, label %bb24.i.i.i.i bb20.i.i.i70.i.loopexit: ; preds = %vector.body106 %data.i.i.i.i.i.i.i.i.i.i.i.i1172.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i.i.i.i.i1177.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %data.i.i.i.i.i.i.i.i.i.i1182.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %data.i.i.i.i.i.i.i.i1187.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %811 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %812 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %813 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %814 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.i.i.i90.i.1 = load double, ptr %814, align 8, !noalias !4469, !noundef !3 %_6.i.i.i.i162.i.1 = fneg double %w3.1.i.i.i90.i.1 %815 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.i.i.i88.i.1 = load double, ptr %815, align 8, !noalias !4469, !noundef !3 %_6.i36.i.i.i157.i.1 = fneg double %w2.1.i.i.i88.i.1 %816 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i86.i.1 = load double, ptr %816, align 8, !noalias !4469, !noundef !3 %_6.i39.i.i.i152.i.1 = fneg double %w1.1.i.i.i86.i.1 %817 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.i.i.i89.i.1 = load double, ptr %817, align 8, !noalias !4469, !noundef !3 %818 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.i.i.i87.i.1 = load double, ptr %818, align 8, !noalias !4469, !noundef !3 %819 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i85.i.1 = load double, ptr %819, align 8, !noalias !4469, !noundef !3 %broadcast.splatinsert162 = insertelement <4 x double> poison, double %_6.i39.i.i.i152.i.1, i64 0 %broadcast.splat163 = shufflevector <4 x double> %broadcast.splatinsert162, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert164 = insertelement <4 x double> poison, double %w1.0.i.i.i85.i.1, i64 0 %broadcast.splat165 = shufflevector <4 x double> %broadcast.splatinsert164, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert166 = insertelement <4 x double> poison, double %w1.1.i.i.i86.i.1, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert169 = insertelement <4 x double> poison, double %_6.i36.i.i.i157.i.1, i64 0 %broadcast.splat170 = shufflevector <4 x double> %broadcast.splatinsert169, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert171 = insertelement <4 x double> poison, double %w2.0.i.i.i87.i.1, i64 0 %broadcast.splat172 = shufflevector <4 x double> %broadcast.splatinsert171, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert173 = insertelement <4 x double> poison, double %w2.1.i.i.i88.i.1, i64 0 %broadcast.splat174 = shufflevector <4 x double> %broadcast.splatinsert173, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert176 = insertelement <4 x double> poison, double %_6.i.i.i.i162.i.1, i64 0 %broadcast.splat177 = shufflevector <4 x double> %broadcast.splatinsert176, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert178 = insertelement <4 x double> poison, double %w3.0.i.i.i89.i.1, i64 0 %broadcast.splat179 = shufflevector <4 x double> %broadcast.splatinsert178, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert180 = insertelement <4 x double> poison, double %w3.1.i.i.i90.i.1, i64 0 %broadcast.splat181 = shufflevector <4 x double> %broadcast.splatinsert180, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body147 vector.body147: ; preds = %vector.body147, %bb20.i.i.i70.i.loopexit %index148 = phi i64 [ 0, %bb20.i.i.i70.i.loopexit ], [ %index.next183, %vector.body147 ] %820 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1172.1, i64 %index148 %821 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1177.1, i64 %index148 %822 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1182.1, i64 %index148 %823 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1187.1, i64 %index148 %wide.vec149 = load <8 x double>, ptr %820, align 8, !noalias !4469 %strided.vec150 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %strided.vec151 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %wide.vec152 = load <8 x double>, ptr %821, align 8, !noalias !4469 %strided.vec153 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %strided.vec154 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %wide.vec155 = load <8 x double>, ptr %822, align 8, !noalias !4469 %strided.vec156 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %strided.vec157 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %wide.vec158 = load <8 x double>, ptr %823, align 8, !noalias !4469 %strided.vec159 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %strided.vec160 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %824 = fadd <4 x double> %strided.vec150, %strided.vec156 %825 = fadd <4 x double> %strided.vec151, %strided.vec157 %826 = fsub <4 x double> %strided.vec150, %strided.vec156 %827 = fsub <4 x double> %strided.vec151, %strided.vec157 %828 = fadd <4 x double> %strided.vec153, %strided.vec159 %829 = fadd <4 x double> %strided.vec154, %strided.vec160 %830 = fsub <4 x double> %strided.vec153, %strided.vec159 %831 = fsub <4 x double> %strided.vec154, %strided.vec160 %832 = fadd <4 x double> %824, %828 %833 = fadd <4 x double> %825, %829 %834 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index148 %interleaved.vec161 = shufflevector <4 x double> %832, <4 x double> %833, <8 x i32> store <8 x double> %interleaved.vec161, ptr %834, align 8, !noalias !4469 %835 = fadd <4 x double> %826, %831 %836 = fsub <4 x double> %827, %830 %837 = fmul <4 x double> %836, %broadcast.splat163 %838 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat165, <4 x double> %835, <4 x double> %837) %839 = fmul <4 x double> %broadcast.splat167, %835 %840 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat165, <4 x double> %836, <4 x double> %839) %841 = getelementptr inbounds %"num_complex::Complex", ptr %812, i64 %index148 %interleaved.vec168 = shufflevector <4 x double> %838, <4 x double> %840, <8 x i32> store <8 x double> %interleaved.vec168, ptr %841, align 8, !noalias !4469 %842 = fsub <4 x double> %824, %828 %843 = fsub <4 x double> %825, %829 %844 = fmul <4 x double> %843, %broadcast.splat170 %845 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat172, <4 x double> %842, <4 x double> %844) %846 = fmul <4 x double> %broadcast.splat174, %842 %847 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat172, <4 x double> %843, <4 x double> %846) %848 = getelementptr inbounds %"num_complex::Complex", ptr %811, i64 %index148 %interleaved.vec175 = shufflevector <4 x double> %845, <4 x double> %847, <8 x i32> store <8 x double> %interleaved.vec175, ptr %848, align 8, !noalias !4469 %849 = fsub <4 x double> %826, %831 %850 = fadd <4 x double> %827, %830 %851 = fmul <4 x double> %850, %broadcast.splat177 %852 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat179, <4 x double> %849, <4 x double> %851) %853 = fmul <4 x double> %broadcast.splat181, %849 %854 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat179, <4 x double> %850, <4 x double> %853) %855 = getelementptr inbounds %"num_complex::Complex", ptr %813, i64 %index148 %interleaved.vec182 = shufflevector <4 x double> %852, <4 x double> %854, <8 x i32> store <8 x double> %interleaved.vec182, ptr %855, align 8, !noalias !4469 %index.next183 = add nuw i64 %index148, 4 %856 = icmp eq i64 %index.next183, 64 br i1 %856, label %vector.body188, label %vector.body147, !llvm.loop !4481 vector.body188: ; preds = %vector.body147, %vector.body188 %index189 = phi i64 [ %index.next198.1, %vector.body188 ], [ 0, %vector.body147 ] %857 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index189 %858 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index189 %wide.vec190 = load <8 x double>, ptr %857, align 8, !noalias !4469 %strided.vec191 = shufflevector <8 x double> %wide.vec190, <8 x double> poison, <4 x i32> %strided.vec192 = shufflevector <8 x double> %wide.vec190, <8 x double> poison, <4 x i32> %wide.vec193 = load <8 x double>, ptr %858, align 8, !noalias !4469 %strided.vec194 = shufflevector <8 x double> %wide.vec193, <8 x double> poison, <4 x i32> %strided.vec195 = shufflevector <8 x double> %wide.vec193, <8 x double> poison, <4 x i32> %859 = fadd <4 x double> %strided.vec191, %strided.vec194 %860 = fadd <4 x double> %strided.vec192, %strided.vec195 %861 = fsub <4 x double> %strided.vec191, %strided.vec194 %862 = fsub <4 x double> %strided.vec192, %strided.vec195 %interleaved.vec196 = shufflevector <4 x double> %859, <4 x double> %860, <8 x i32> store <8 x double> %interleaved.vec196, ptr %857, align 8, !noalias !4469 %interleaved.vec197 = shufflevector <4 x double> %861, <4 x double> %862, <8 x i32> store <8 x double> %interleaved.vec197, ptr %858, align 8, !noalias !4469 %index.next198 = or disjoint i64 %index189, 4 %863 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next198 %864 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next198 %wide.vec190.1 = load <8 x double>, ptr %863, align 8, !noalias !4469 %strided.vec191.1 = shufflevector <8 x double> %wide.vec190.1, <8 x double> poison, <4 x i32> %strided.vec192.1 = shufflevector <8 x double> %wide.vec190.1, <8 x double> poison, <4 x i32> %wide.vec193.1 = load <8 x double>, ptr %864, align 8, !noalias !4469 %strided.vec194.1 = shufflevector <8 x double> %wide.vec193.1, <8 x double> poison, <4 x i32> %strided.vec195.1 = shufflevector <8 x double> %wide.vec193.1, <8 x double> poison, <4 x i32> %865 = fadd <4 x double> %strided.vec191.1, %strided.vec194.1 %866 = fadd <4 x double> %strided.vec192.1, %strided.vec195.1 %867 = fsub <4 x double> %strided.vec191.1, %strided.vec194.1 %868 = fsub <4 x double> %strided.vec192.1, %strided.vec195.1 %interleaved.vec196.1 = shufflevector <4 x double> %865, <4 x double> %866, <8 x i32> store <8 x double> %interleaved.vec196.1, ptr %863, align 8, !noalias !4469 %interleaved.vec197.1 = shufflevector <4 x double> %867, <4 x double> %868, <8 x i32> store <8 x double> %interleaved.vec197.1, ptr %864, align 8, !noalias !4469 %index.next198.1 = add nuw nsw i64 %index189, 8 %869 = icmp eq i64 %index.next198.1, 256 br i1 %869, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit", label %vector.body188, !llvm.loop !4482 "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6eb65ebc13f6981E.exit": ; preds = %vector.body188 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4469 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h90ee2d39ed9f9d15E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4483 store i64 128, ptr %n.i, align 8, !noalias !4483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4483 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4483 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4483 store ptr null, ptr %_16.i, align 8, !noalias !4483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4483 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4483 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4483 store ptr null, ptr %_24.i, align 8, !noalias !4483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4483 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4483 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4483 store ptr null, ptr %_32.i, align 8, !noalias !4483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4483 store i64 %w.1, ptr %_34.i, align 8, !noalias !4483 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4483 store ptr null, ptr %_40.i, align 8, !noalias !4483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4483 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 br label %vector.body vector.body: ; preds = %vector.body, %bb18.i.i.i.i.preheader %index = phi i64 [ 0, %bb18.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %3 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %wide.vec = load <8 x double>, ptr %2, align 8, !noalias !4486 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %3, align 8, !noalias !4486 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %4 = fadd <4 x double> %strided.vec, %strided.vec3 %5 = fadd <4 x double> %strided.vec1, %strided.vec4 %6 = fsub <4 x double> %strided.vec, %strided.vec3 %7 = fsub <4 x double> %strided.vec1, %strided.vec4 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !4486 %9 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec5 = shufflevector <4 x double> %6, <4 x double> %7, <8 x i32> store <8 x double> %interleaved.vec5, ptr %9, align 8, !noalias !4486 %index.next = or disjoint i64 %index, 4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %11 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %10, align 8, !noalias !4486 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %11, align 8, !noalias !4486 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %13 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %14 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %15 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next %interleaved.vec.1 = shufflevector <4 x double> %12, <4 x double> %13, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %16, align 8, !noalias !4486 %17 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %interleaved.vec5.1 = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %17, align 8, !noalias !4486 %index.next.1 = add nuw nsw i64 %index, 8 %18 = icmp eq i64 %index.next.1, 64 br i1 %18, label %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, label %vector.body, !llvm.loop !4489 _ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit: ; preds = %vector.body %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i91.i = load double, ptr %22, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i90.i = load double, ptr %23, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i138.i = fneg double %w3.1.i.i.i91.i %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i89.i = load double, ptr %24, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i88.i = load double, ptr %25, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i133.i = fneg double %w2.1.i.i.i89.i %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i87.i = load double, ptr %26, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i86.i = load double, ptr %27, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i128.i = fneg double %w1.1.i.i.i87.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec12 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4483 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %29, align 8, !noalias !4483 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %30 = fmul <4 x double> %strided.vec17, %broadcast.splat %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %30) %32 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %32) %wide.vec22 = load <8 x double>, ptr %21, align 8, !noalias !4483 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %34 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %35 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %34) %36 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %36) %wide.vec31 = load <8 x double>, ptr %28, align 8, !noalias !4483 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %38 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %38) %40 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %40) %42 = fadd <4 x double> %strided.vec13, %35 %43 = fadd <4 x double> %strided.vec14, %37 %44 = fsub <4 x double> %strided.vec13, %35 %45 = fsub <4 x double> %strided.vec14, %37 %46 = fadd <4 x double> %31, %39 %47 = fadd <4 x double> %33, %41 %48 = fsub <4 x double> %31, %39 %49 = fsub <4 x double> %33, %41 %50 = fadd <4 x double> %42, %46 %51 = fadd <4 x double> %43, %47 %interleaved.vec40 = shufflevector <4 x double> %50, <4 x double> %51, <8 x i32> store <8 x double> %interleaved.vec40, ptr %buf.0, align 8, !noalias !4483 %52 = fadd <4 x double> %44, %49 %53 = fsub <4 x double> %45, %48 %interleaved.vec41 = shufflevector <4 x double> %52, <4 x double> %53, <8 x i32> store <8 x double> %interleaved.vec41, ptr %19, align 8, !noalias !4483 %54 = fsub <4 x double> %42, %46 %55 = fsub <4 x double> %43, %47 %interleaved.vec42 = shufflevector <4 x double> %54, <4 x double> %55, <8 x i32> store <8 x double> %interleaved.vec42, ptr %1, align 8, !noalias !4483 %56 = fsub <4 x double> %44, %49 %57 = fadd <4 x double> %45, %48 %interleaved.vec43 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec43, ptr %20, align 8, !noalias !4483 %58 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec12.1 = load <8 x double>, ptr %58, align 8, !noalias !4483 %strided.vec13.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %strided.vec14.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %wide.vec15.1 = load <8 x double>, ptr %59, align 8, !noalias !4483 %strided.vec16.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec17.1, %broadcast.splat %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.1, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat21, %strided.vec16.1 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.1, <4 x double> %64) %wide.vec22.1 = load <8 x double>, ptr %60, align 8, !noalias !4483 %strided.vec23.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %strided.vec24.1 = shufflevector <8 x double> %wide.vec22.1, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec24.1, %broadcast.splat26 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23.1, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat30, %strided.vec23.1 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24.1, <4 x double> %68) %wide.vec31.1 = load <8 x double>, ptr %61, align 8, !noalias !4483 %strided.vec32.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %strided.vec33.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec33.1, %broadcast.splat35 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32.1, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat39, %strided.vec32.1 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33.1, <4 x double> %72) %74 = fadd <4 x double> %strided.vec13.1, %67 %75 = fadd <4 x double> %strided.vec14.1, %69 %76 = fsub <4 x double> %strided.vec13.1, %67 %77 = fsub <4 x double> %strided.vec14.1, %69 %78 = fadd <4 x double> %63, %71 %79 = fadd <4 x double> %65, %73 %80 = fsub <4 x double> %63, %71 %81 = fsub <4 x double> %65, %73 %82 = fadd <4 x double> %74, %78 %83 = fadd <4 x double> %75, %79 %84 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec40.1 = shufflevector <4 x double> %82, <4 x double> %83, <8 x i32> store <8 x double> %interleaved.vec40.1, ptr %84, align 8, !noalias !4483 %85 = fadd <4 x double> %76, %81 %86 = fsub <4 x double> %77, %80 %87 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec41.1 = shufflevector <4 x double> %85, <4 x double> %86, <8 x i32> store <8 x double> %interleaved.vec41.1, ptr %87, align 8, !noalias !4483 %88 = fsub <4 x double> %74, %78 %89 = fsub <4 x double> %75, %79 %90 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec42.1 = shufflevector <4 x double> %88, <4 x double> %89, <8 x i32> store <8 x double> %interleaved.vec42.1, ptr %90, align 8, !noalias !4483 %91 = fsub <4 x double> %76, %81 %92 = fadd <4 x double> %77, %80 %93 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec43.1 = shufflevector <4 x double> %91, <4 x double> %92, <8 x i32> store <8 x double> %interleaved.vec43.1, ptr %93, align 8, !noalias !4483 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %95 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %96 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %97 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec12.2 = load <8 x double>, ptr %94, align 8, !noalias !4483 %strided.vec13.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %strided.vec14.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %wide.vec15.2 = load <8 x double>, ptr %95, align 8, !noalias !4483 %strided.vec16.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %strided.vec17.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %98 = fmul <4 x double> %strided.vec17.2, %broadcast.splat %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.2, <4 x double> %98) %100 = fmul <4 x double> %broadcast.splat21, %strided.vec16.2 %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.2, <4 x double> %100) %wide.vec22.2 = load <8 x double>, ptr %96, align 8, !noalias !4483 %strided.vec23.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %strided.vec24.2 = shufflevector <8 x double> %wide.vec22.2, <8 x double> poison, <4 x i32> %102 = fmul <4 x double> %strided.vec24.2, %broadcast.splat26 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23.2, <4 x double> %102) %104 = fmul <4 x double> %broadcast.splat30, %strided.vec23.2 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24.2, <4 x double> %104) %wide.vec31.2 = load <8 x double>, ptr %97, align 8, !noalias !4483 %strided.vec32.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %strided.vec33.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %106 = fmul <4 x double> %strided.vec33.2, %broadcast.splat35 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32.2, <4 x double> %106) %108 = fmul <4 x double> %broadcast.splat39, %strided.vec32.2 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33.2, <4 x double> %108) %110 = fadd <4 x double> %strided.vec13.2, %103 %111 = fadd <4 x double> %strided.vec14.2, %105 %112 = fsub <4 x double> %strided.vec13.2, %103 %113 = fsub <4 x double> %strided.vec14.2, %105 %114 = fadd <4 x double> %99, %107 %115 = fadd <4 x double> %101, %109 %116 = fsub <4 x double> %99, %107 %117 = fsub <4 x double> %101, %109 %118 = fadd <4 x double> %110, %114 %119 = fadd <4 x double> %111, %115 %120 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec40.2 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> store <8 x double> %interleaved.vec40.2, ptr %120, align 8, !noalias !4483 %121 = fadd <4 x double> %112, %117 %122 = fsub <4 x double> %113, %116 %123 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec41.2 = shufflevector <4 x double> %121, <4 x double> %122, <8 x i32> store <8 x double> %interleaved.vec41.2, ptr %123, align 8, !noalias !4483 %124 = fsub <4 x double> %110, %114 %125 = fsub <4 x double> %111, %115 %126 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec42.2 = shufflevector <4 x double> %124, <4 x double> %125, <8 x i32> store <8 x double> %interleaved.vec42.2, ptr %126, align 8, !noalias !4483 %127 = fsub <4 x double> %112, %117 %128 = fadd <4 x double> %113, %116 %129 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec43.2 = shufflevector <4 x double> %127, <4 x double> %128, <8 x i32> store <8 x double> %interleaved.vec43.2, ptr %129, align 8, !noalias !4483 %130 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %131 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %132 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %133 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec12.3 = load <8 x double>, ptr %130, align 8, !noalias !4483 %strided.vec13.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %strided.vec14.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %wide.vec15.3 = load <8 x double>, ptr %131, align 8, !noalias !4483 %strided.vec16.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %strided.vec17.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %134 = fmul <4 x double> %strided.vec17.3, %broadcast.splat %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.3, <4 x double> %134) %136 = fmul <4 x double> %broadcast.splat21, %strided.vec16.3 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.3, <4 x double> %136) %wide.vec22.3 = load <8 x double>, ptr %132, align 8, !noalias !4483 %strided.vec23.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %strided.vec24.3 = shufflevector <8 x double> %wide.vec22.3, <8 x double> poison, <4 x i32> %138 = fmul <4 x double> %strided.vec24.3, %broadcast.splat26 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23.3, <4 x double> %138) %140 = fmul <4 x double> %broadcast.splat30, %strided.vec23.3 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24.3, <4 x double> %140) %wide.vec31.3 = load <8 x double>, ptr %133, align 8, !noalias !4483 %strided.vec32.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %strided.vec33.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %142 = fmul <4 x double> %strided.vec33.3, %broadcast.splat35 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32.3, <4 x double> %142) %144 = fmul <4 x double> %broadcast.splat39, %strided.vec32.3 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33.3, <4 x double> %144) %146 = fadd <4 x double> %strided.vec13.3, %139 %147 = fadd <4 x double> %strided.vec14.3, %141 %148 = fsub <4 x double> %strided.vec13.3, %139 %149 = fsub <4 x double> %strided.vec14.3, %141 %150 = fadd <4 x double> %135, %143 %151 = fadd <4 x double> %137, %145 %152 = fsub <4 x double> %135, %143 %153 = fsub <4 x double> %137, %145 %154 = fadd <4 x double> %146, %150 %155 = fadd <4 x double> %147, %151 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec40.3 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> store <8 x double> %interleaved.vec40.3, ptr %156, align 8, !noalias !4483 %157 = fadd <4 x double> %148, %153 %158 = fsub <4 x double> %149, %152 %159 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec41.3 = shufflevector <4 x double> %157, <4 x double> %158, <8 x i32> store <8 x double> %interleaved.vec41.3, ptr %159, align 8, !noalias !4483 %160 = fsub <4 x double> %146, %150 %161 = fsub <4 x double> %147, %151 %162 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec42.3 = shufflevector <4 x double> %160, <4 x double> %161, <8 x i32> store <8 x double> %interleaved.vec42.3, ptr %162, align 8, !noalias !4483 %163 = fsub <4 x double> %148, %153 %164 = fadd <4 x double> %149, %152 %165 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec43.3 = shufflevector <4 x double> %163, <4 x double> %164, <8 x i32> store <8 x double> %interleaved.vec43.3, ptr %165, align 8, !noalias !4483 %166 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3, i32 1 %w3.1.i.i.i91.i.1 = load double, ptr %166, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert79 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %167 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 3 %w3.0.i.i.i90.i.1 = load double, ptr %167, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert77 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i.1, i64 0 %broadcast.splat78 = shufflevector <4 x double> %broadcast.splatinsert77, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i138.i.1 = fneg double %w3.1.i.i.i91.i.1 %broadcast.splatinsert75 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i.1, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %168 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2, i32 1 %w2.1.i.i.i89.i.1 = load double, ptr %168, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert70 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i.1, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %169 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 2 %w2.0.i.i.i88.i.1 = load double, ptr %169, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i.1, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i133.i.1 = fneg double %w2.1.i.i.i89.i.1 %broadcast.splatinsert66 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i.1, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %170 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i87.i.1 = load double, ptr %170, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %171 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i86.i.1 = load double, ptr %171, align 8, !noalias !4483, !noundef !3 %broadcast.splatinsert59 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i128.i.1 = fneg double %w1.1.i.i.i87.i.1 %broadcast.splatinsert57 = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i.1, i64 0 %broadcast.splat58 = shufflevector <4 x double> %broadcast.splatinsert57, <4 x double> poison, <4 x i32> zeroinitializer %172 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %173 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %174 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec51 = load <8 x double>, ptr %0, align 8, !noalias !4483 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %173, align 8, !noalias !4483 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %175 = fmul <4 x double> %strided.vec56, %broadcast.splat58 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55, <4 x double> %175) %177 = fmul <4 x double> %broadcast.splat62, %strided.vec55 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56, <4 x double> %177) %wide.vec63 = load <8 x double>, ptr %174, align 8, !noalias !4483 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %179 = fmul <4 x double> %strided.vec65, %broadcast.splat67 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64, <4 x double> %179) %181 = fmul <4 x double> %broadcast.splat71, %strided.vec64 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65, <4 x double> %181) %wide.vec72 = load <8 x double>, ptr %172, align 8, !noalias !4483 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %183 = fmul <4 x double> %strided.vec74, %broadcast.splat76 %184 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73, <4 x double> %183) %185 = fmul <4 x double> %broadcast.splat80, %strided.vec73 %186 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74, <4 x double> %185) %187 = fadd <4 x double> %strided.vec52, %180 %188 = fadd <4 x double> %strided.vec53, %182 %189 = fsub <4 x double> %strided.vec52, %180 %190 = fsub <4 x double> %strided.vec53, %182 %191 = fadd <4 x double> %176, %184 %192 = fadd <4 x double> %178, %186 %193 = fsub <4 x double> %176, %184 %194 = fsub <4 x double> %178, %186 %195 = fadd <4 x double> %187, %191 %196 = fadd <4 x double> %188, %192 %interleaved.vec81 = shufflevector <4 x double> %195, <4 x double> %196, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4483 %197 = fadd <4 x double> %189, %194 %198 = fsub <4 x double> %190, %193 %interleaved.vec82 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec82, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4483 %199 = fsub <4 x double> %187, %191 %200 = fsub <4 x double> %188, %192 %interleaved.vec83 = shufflevector <4 x double> %199, <4 x double> %200, <8 x i32> store <8 x double> %interleaved.vec83, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4483 %201 = fsub <4 x double> %189, %194 %202 = fadd <4 x double> %190, %193 %interleaved.vec84 = shufflevector <4 x double> %201, <4 x double> %202, <8 x i32> store <8 x double> %interleaved.vec84, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4483 %203 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %204 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %205 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %206 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %wide.vec51.1 = load <8 x double>, ptr %203, align 8, !noalias !4483 %strided.vec52.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %strided.vec53.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %wide.vec54.1 = load <8 x double>, ptr %204, align 8, !noalias !4483 %strided.vec55.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %strided.vec56.1 = shufflevector <8 x double> %wide.vec54.1, <8 x double> poison, <4 x i32> %207 = fmul <4 x double> %strided.vec56.1, %broadcast.splat58 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55.1, <4 x double> %207) %209 = fmul <4 x double> %broadcast.splat62, %strided.vec55.1 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56.1, <4 x double> %209) %wide.vec63.1 = load <8 x double>, ptr %205, align 8, !noalias !4483 %strided.vec64.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %strided.vec65.1 = shufflevector <8 x double> %wide.vec63.1, <8 x double> poison, <4 x i32> %211 = fmul <4 x double> %strided.vec65.1, %broadcast.splat67 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64.1, <4 x double> %211) %213 = fmul <4 x double> %broadcast.splat71, %strided.vec64.1 %214 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65.1, <4 x double> %213) %wide.vec72.1 = load <8 x double>, ptr %206, align 8, !noalias !4483 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %215 = fmul <4 x double> %strided.vec74.1, %broadcast.splat76 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73.1, <4 x double> %215) %217 = fmul <4 x double> %broadcast.splat80, %strided.vec73.1 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74.1, <4 x double> %217) %219 = fadd <4 x double> %strided.vec52.1, %212 %220 = fadd <4 x double> %strided.vec53.1, %214 %221 = fsub <4 x double> %strided.vec52.1, %212 %222 = fsub <4 x double> %strided.vec53.1, %214 %223 = fadd <4 x double> %208, %216 %224 = fadd <4 x double> %210, %218 %225 = fsub <4 x double> %208, %216 %226 = fsub <4 x double> %210, %218 %227 = fadd <4 x double> %219, %223 %228 = fadd <4 x double> %220, %224 %229 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec81.1 = shufflevector <4 x double> %227, <4 x double> %228, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %229, align 8, !noalias !4483 %230 = fadd <4 x double> %221, %226 %231 = fsub <4 x double> %222, %225 %232 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec82.1 = shufflevector <4 x double> %230, <4 x double> %231, <8 x i32> store <8 x double> %interleaved.vec82.1, ptr %232, align 8, !noalias !4483 %233 = fsub <4 x double> %219, %223 %234 = fsub <4 x double> %220, %224 %235 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec83.1 = shufflevector <4 x double> %233, <4 x double> %234, <8 x i32> store <8 x double> %interleaved.vec83.1, ptr %235, align 8, !noalias !4483 %236 = fsub <4 x double> %221, %226 %237 = fadd <4 x double> %222, %225 %238 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec84.1 = shufflevector <4 x double> %236, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec84.1, ptr %238, align 8, !noalias !4483 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %wide.vec51.2 = load <8 x double>, ptr %239, align 8, !noalias !4483 %strided.vec52.2 = shufflevector <8 x double> %wide.vec51.2, <8 x double> poison, <4 x i32> %strided.vec53.2 = shufflevector <8 x double> %wide.vec51.2, <8 x double> poison, <4 x i32> %wide.vec54.2 = load <8 x double>, ptr %240, align 8, !noalias !4483 %strided.vec55.2 = shufflevector <8 x double> %wide.vec54.2, <8 x double> poison, <4 x i32> %strided.vec56.2 = shufflevector <8 x double> %wide.vec54.2, <8 x double> poison, <4 x i32> %243 = fmul <4 x double> %strided.vec56.2, %broadcast.splat58 %244 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55.2, <4 x double> %243) %245 = fmul <4 x double> %broadcast.splat62, %strided.vec55.2 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56.2, <4 x double> %245) %wide.vec63.2 = load <8 x double>, ptr %241, align 8, !noalias !4483 %strided.vec64.2 = shufflevector <8 x double> %wide.vec63.2, <8 x double> poison, <4 x i32> %strided.vec65.2 = shufflevector <8 x double> %wide.vec63.2, <8 x double> poison, <4 x i32> %247 = fmul <4 x double> %strided.vec65.2, %broadcast.splat67 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64.2, <4 x double> %247) %249 = fmul <4 x double> %broadcast.splat71, %strided.vec64.2 %250 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65.2, <4 x double> %249) %wide.vec72.2 = load <8 x double>, ptr %242, align 8, !noalias !4483 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %251 = fmul <4 x double> %strided.vec74.2, %broadcast.splat76 %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73.2, <4 x double> %251) %253 = fmul <4 x double> %broadcast.splat80, %strided.vec73.2 %254 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74.2, <4 x double> %253) %255 = fadd <4 x double> %strided.vec52.2, %248 %256 = fadd <4 x double> %strided.vec53.2, %250 %257 = fsub <4 x double> %strided.vec52.2, %248 %258 = fsub <4 x double> %strided.vec53.2, %250 %259 = fadd <4 x double> %244, %252 %260 = fadd <4 x double> %246, %254 %261 = fsub <4 x double> %244, %252 %262 = fsub <4 x double> %246, %254 %263 = fadd <4 x double> %255, %259 %264 = fadd <4 x double> %256, %260 %265 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec81.2 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %265, align 8, !noalias !4483 %266 = fadd <4 x double> %257, %262 %267 = fsub <4 x double> %258, %261 %268 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec82.2 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec82.2, ptr %268, align 8, !noalias !4483 %269 = fsub <4 x double> %255, %259 %270 = fsub <4 x double> %256, %260 %271 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec83.2 = shufflevector <4 x double> %269, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec83.2, ptr %271, align 8, !noalias !4483 %272 = fsub <4 x double> %257, %262 %273 = fadd <4 x double> %258, %261 %274 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec84.2 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec84.2, ptr %274, align 8, !noalias !4483 %275 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %276 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %277 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %278 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %wide.vec51.3 = load <8 x double>, ptr %275, align 8, !noalias !4483 %strided.vec52.3 = shufflevector <8 x double> %wide.vec51.3, <8 x double> poison, <4 x i32> %strided.vec53.3 = shufflevector <8 x double> %wide.vec51.3, <8 x double> poison, <4 x i32> %wide.vec54.3 = load <8 x double>, ptr %276, align 8, !noalias !4483 %strided.vec55.3 = shufflevector <8 x double> %wide.vec54.3, <8 x double> poison, <4 x i32> %strided.vec56.3 = shufflevector <8 x double> %wide.vec54.3, <8 x double> poison, <4 x i32> %279 = fmul <4 x double> %strided.vec56.3, %broadcast.splat58 %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55.3, <4 x double> %279) %281 = fmul <4 x double> %broadcast.splat62, %strided.vec55.3 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56.3, <4 x double> %281) %wide.vec63.3 = load <8 x double>, ptr %277, align 8, !noalias !4483 %strided.vec64.3 = shufflevector <8 x double> %wide.vec63.3, <8 x double> poison, <4 x i32> %strided.vec65.3 = shufflevector <8 x double> %wide.vec63.3, <8 x double> poison, <4 x i32> %283 = fmul <4 x double> %strided.vec65.3, %broadcast.splat67 %284 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64.3, <4 x double> %283) %285 = fmul <4 x double> %broadcast.splat71, %strided.vec64.3 %286 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65.3, <4 x double> %285) %wide.vec72.3 = load <8 x double>, ptr %278, align 8, !noalias !4483 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %287 = fmul <4 x double> %strided.vec74.3, %broadcast.splat76 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73.3, <4 x double> %287) %289 = fmul <4 x double> %broadcast.splat80, %strided.vec73.3 %290 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74.3, <4 x double> %289) %291 = fadd <4 x double> %strided.vec52.3, %284 %292 = fadd <4 x double> %strided.vec53.3, %286 %293 = fsub <4 x double> %strided.vec52.3, %284 %294 = fsub <4 x double> %strided.vec53.3, %286 %295 = fadd <4 x double> %280, %288 %296 = fadd <4 x double> %282, %290 %297 = fsub <4 x double> %280, %288 %298 = fsub <4 x double> %282, %290 %299 = fadd <4 x double> %291, %295 %300 = fadd <4 x double> %292, %296 %301 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec81.3 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %301, align 8, !noalias !4483 %302 = fadd <4 x double> %293, %298 %303 = fsub <4 x double> %294, %297 %304 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec82.3 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec82.3, ptr %304, align 8, !noalias !4483 %305 = fsub <4 x double> %291, %295 %306 = fsub <4 x double> %292, %296 %307 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec83.3 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec83.3, ptr %307, align 8, !noalias !4483 %308 = fsub <4 x double> %293, %298 %309 = fadd <4 x double> %294, %297 %310 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec84.3 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec84.3, ptr %310, align 8, !noalias !4483 %311 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 br label %vector.body90 vector.body90: ; preds = %vector.body90, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit %index91 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %index.next133, %vector.body90 ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %vec.ind.next, %vector.body90 ] %312 = shl nuw nsw <4 x i64> %vec.ind, %313 = extractelement <4 x i64> %312, i64 0 %314 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %313 %315 = shl nuw nsw <4 x i64> %vec.ind, %316 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %315 %317 = getelementptr inbounds %"num_complex::Complex", ptr %311, i64 %313 %318 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %313 %319 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %313 %320 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %320, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %321 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 1, i32 1 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %321, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %322 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 2 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %322, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %323 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 2, i32 1 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %323, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %324 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 3 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %324, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %325 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %312, i64 3, i32 1 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %325, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %326 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 8 %327 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 4 %328 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 12 %329 = fneg <4 x double> %wide.masked.gather92 %330 = fneg <4 x double> %wide.masked.gather94 %331 = fneg <4 x double> %wide.masked.gather96 %wide.masked.gather97 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %316, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %332 = getelementptr inbounds i8, <4 x ptr> %316, i64 8 %wide.masked.gather98 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %332, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %327, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %333 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 4, i32 1 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %333, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %334 = fmul <4 x double> %wide.masked.gather100, %329 %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather99, <4 x double> %334) %336 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather99 %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather100, <4 x double> %336) %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %326, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %338 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 8, i32 1 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %338, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %339 = fmul <4 x double> %wide.masked.gather102, %330 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather101, <4 x double> %339) %341 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather101 %342 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather102, <4 x double> %341) %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 12, i32 1 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %344 = fmul <4 x double> %wide.masked.gather104, %331 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather103, <4 x double> %344) %346 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather103 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather104, <4 x double> %346) %348 = fadd <4 x double> %wide.masked.gather97, %340 %349 = fadd <4 x double> %wide.masked.gather98, %342 %350 = fsub <4 x double> %wide.masked.gather97, %340 %351 = fsub <4 x double> %wide.masked.gather98, %342 %352 = fadd <4 x double> %335, %345 %353 = fadd <4 x double> %337, %347 %354 = fsub <4 x double> %335, %345 %355 = fsub <4 x double> %337, %347 %356 = fadd <4 x double> %348, %352 %357 = fadd <4 x double> %349, %353 %358 = fadd <4 x double> %350, %355 %359 = fsub <4 x double> %351, %354 %360 = fsub <4 x double> %348, %352 %361 = fsub <4 x double> %349, %353 %362 = fsub <4 x double> %350, %355 %363 = fadd <4 x double> %351, %354 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 1 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 5 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 9 %367 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 13 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %368 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 1, i32 1 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %369 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 5, i32 1 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %370 = fmul <4 x double> %wide.masked.gather108, %329 %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather107, <4 x double> %370) %372 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather107 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather108, <4 x double> %372) %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %374 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 9, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %374, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %375 = fmul <4 x double> %wide.masked.gather110, %330 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather109, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather109 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather110, <4 x double> %377) %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %379 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 13, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %379, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %380 = fmul <4 x double> %wide.masked.gather112, %331 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather111, <4 x double> %380) %382 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather111 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather112, <4 x double> %382) %384 = fadd <4 x double> %wide.masked.gather105, %376 %385 = fadd <4 x double> %wide.masked.gather106, %378 %386 = fsub <4 x double> %wide.masked.gather105, %376 %387 = fsub <4 x double> %wide.masked.gather106, %378 %388 = fadd <4 x double> %371, %381 %389 = fadd <4 x double> %373, %383 %390 = fsub <4 x double> %371, %381 %391 = fsub <4 x double> %373, %383 %392 = fadd <4 x double> %384, %388 %393 = fadd <4 x double> %385, %389 %394 = fadd <4 x double> %386, %391 %395 = fsub <4 x double> %387, %390 %396 = fsub <4 x double> %384, %388 %397 = fsub <4 x double> %385, %389 %398 = fsub <4 x double> %386, %391 %399 = fadd <4 x double> %387, %390 %400 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 2 %401 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 6 %402 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 10 %403 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 14 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %400, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %404 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 2, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %404, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %401, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %405 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 6, i32 1 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %405, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %406 = fmul <4 x double> %wide.masked.gather116, %329 %407 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather115, <4 x double> %406) %408 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather115 %409 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather116, <4 x double> %408) %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %402, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %410 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 10, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %410, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %411 = fmul <4 x double> %wide.masked.gather118, %330 %412 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather117, <4 x double> %411) %413 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather117 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather118, <4 x double> %413) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %403, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %415 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 14, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %415, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %416 = fmul <4 x double> %wide.masked.gather120, %331 %417 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather119, <4 x double> %416) %418 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather119 %419 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather120, <4 x double> %418) %420 = fadd <4 x double> %wide.masked.gather113, %412 %421 = fadd <4 x double> %wide.masked.gather114, %414 %422 = fsub <4 x double> %wide.masked.gather113, %412 %423 = fsub <4 x double> %wide.masked.gather114, %414 %424 = fadd <4 x double> %407, %417 %425 = fadd <4 x double> %409, %419 %426 = fsub <4 x double> %407, %417 %427 = fsub <4 x double> %409, %419 %428 = fadd <4 x double> %420, %424 %429 = fadd <4 x double> %421, %425 %430 = fadd <4 x double> %422, %427 %431 = fsub <4 x double> %423, %426 %432 = fsub <4 x double> %420, %424 %433 = fsub <4 x double> %421, %425 %434 = fsub <4 x double> %422, %427 %435 = fadd <4 x double> %423, %426 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 3 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 7 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 11 %439 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 15 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %440 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 3, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %440, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %441 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 7, i32 1 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %441, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %442 = fmul <4 x double> %wide.masked.gather124, %329 %443 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather123, <4 x double> %442) %444 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather123 %445 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather124, <4 x double> %444) %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 11, i32 1 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %447 = fmul <4 x double> %wide.masked.gather126, %330 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather125, <4 x double> %447) %449 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather125 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather126, <4 x double> %449) %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %439, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %451 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %316, i64 15, i32 1 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %451, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %452 = fmul <4 x double> %wide.masked.gather128, %331 %453 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather127, <4 x double> %452) %454 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather127 %455 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather128, <4 x double> %454) %456 = fadd <4 x double> %wide.masked.gather121, %448 %457 = fadd <4 x double> %wide.masked.gather122, %450 %458 = fsub <4 x double> %wide.masked.gather121, %448 %459 = fsub <4 x double> %wide.masked.gather122, %450 %460 = fadd <4 x double> %443, %453 %461 = fadd <4 x double> %445, %455 %462 = fsub <4 x double> %443, %453 %463 = fsub <4 x double> %445, %455 %464 = fadd <4 x double> %456, %460 %465 = fadd <4 x double> %457, %461 %466 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> %467 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> %468 = shufflevector <4 x double> %428, <4 x double> %429, <8 x i32> %469 = shufflevector <4 x double> %464, <4 x double> %465, <8 x i32> %470 = shufflevector <8 x double> %466, <8 x double> %467, <16 x i32> %471 = shufflevector <8 x double> %468, <8 x double> %469, <16 x i32> %interleaved.vec129 = shufflevector <16 x double> %470, <16 x double> %471, <32 x i32> store <32 x double> %interleaved.vec129, ptr %314, align 8, !noalias !4483 %472 = fadd <4 x double> %458, %463 %473 = fsub <4 x double> %459, %462 %474 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> %475 = shufflevector <4 x double> %394, <4 x double> %395, <8 x i32> %476 = shufflevector <4 x double> %430, <4 x double> %431, <8 x i32> %477 = shufflevector <4 x double> %472, <4 x double> %473, <8 x i32> %478 = shufflevector <8 x double> %474, <8 x double> %475, <16 x i32> %479 = shufflevector <8 x double> %476, <8 x double> %477, <16 x i32> %interleaved.vec130 = shufflevector <16 x double> %478, <16 x double> %479, <32 x i32> store <32 x double> %interleaved.vec130, ptr %319, align 8, !noalias !4483 %480 = fsub <4 x double> %456, %460 %481 = fsub <4 x double> %457, %461 %482 = shufflevector <4 x double> %360, <4 x double> %361, <8 x i32> %483 = shufflevector <4 x double> %396, <4 x double> %397, <8 x i32> %484 = shufflevector <4 x double> %432, <4 x double> %433, <8 x i32> %485 = shufflevector <4 x double> %480, <4 x double> %481, <8 x i32> %486 = shufflevector <8 x double> %482, <8 x double> %483, <16 x i32> %487 = shufflevector <8 x double> %484, <8 x double> %485, <16 x i32> %interleaved.vec131 = shufflevector <16 x double> %486, <16 x double> %487, <32 x i32> store <32 x double> %interleaved.vec131, ptr %318, align 8, !noalias !4483 %488 = fsub <4 x double> %458, %463 %489 = fadd <4 x double> %459, %462 %490 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> %491 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> %492 = shufflevector <4 x double> %434, <4 x double> %435, <8 x i32> %493 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> %494 = shufflevector <8 x double> %490, <8 x double> %491, <16 x i32> %495 = shufflevector <8 x double> %492, <8 x double> %493, <16 x i32> %interleaved.vec132 = shufflevector <16 x double> %494, <16 x double> %495, <32 x i32> store <32 x double> %interleaved.vec132, ptr %317, align 8, !noalias !4483 %index.next133 = add nuw i64 %index91, 4 %vec.ind.next = add <4 x i64> %vec.ind, %496 = icmp eq i64 %index.next133, 8 br i1 %496, label %vector.body138, label %vector.body90, !llvm.loop !4490 vector.body138: ; preds = %vector.body90, %vector.body138 %index139 = phi i64 [ %index.next160, %vector.body138 ], [ 0, %vector.body90 ] %vec.ind140 = phi <4 x i64> [ %vec.ind.next141, %vector.body138 ], [ , %vector.body90 ] %497 = shl <4 x i64> %vec.ind140, %498 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %497 %499 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 1 %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %499, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %500 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 1, i32 1 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %500, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %501 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 2 %wide.masked.gather144 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %501, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %502 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 2, i32 1 %wide.masked.gather145 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %502, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %503 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 3 %wide.masked.gather146 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %503, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %504 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind140, i64 3, i32 1 %wide.masked.gather147 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %504, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %505 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 2 %506 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 1 %507 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 3 %508 = fneg <4 x double> %wide.masked.gather143 %509 = fneg <4 x double> %wide.masked.gather145 %510 = fneg <4 x double> %wide.masked.gather147 %wide.masked.gather148 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %498, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %511 = getelementptr inbounds i8, <4 x ptr> %498, i64 8 %wide.masked.gather149 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %511, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %506, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %512 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 1, i32 1 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %512, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %513 = fmul <4 x double> %wide.masked.gather151, %508 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather142, <4 x double> %wide.masked.gather150, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather143, %wide.masked.gather150 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather142, <4 x double> %wide.masked.gather151, <4 x double> %515) %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %505, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %517 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 2, i32 1 %wide.masked.gather153 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %517, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %518 = fmul <4 x double> %wide.masked.gather153, %509 %519 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather144, <4 x double> %wide.masked.gather152, <4 x double> %518) %520 = fmul <4 x double> %wide.masked.gather145, %wide.masked.gather152 %521 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather144, <4 x double> %wide.masked.gather153, <4 x double> %520) %wide.masked.gather154 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %507, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %522 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %498, i64 3, i32 1 %wide.masked.gather155 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %522, i32 8, <4 x i1> , <4 x double> poison), !noalias !4483 %523 = fmul <4 x double> %wide.masked.gather155, %510 %524 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather146, <4 x double> %wide.masked.gather154, <4 x double> %523) %525 = fmul <4 x double> %wide.masked.gather147, %wide.masked.gather154 %526 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather146, <4 x double> %wide.masked.gather155, <4 x double> %525) %527 = fadd <4 x double> %wide.masked.gather148, %519 %528 = fadd <4 x double> %wide.masked.gather149, %521 %529 = fsub <4 x double> %wide.masked.gather148, %519 %530 = fsub <4 x double> %wide.masked.gather149, %521 %531 = fadd <4 x double> %514, %524 %532 = fadd <4 x double> %516, %526 %533 = fsub <4 x double> %514, %524 %534 = fsub <4 x double> %516, %526 %535 = fadd <4 x double> %527, %531 %536 = fadd <4 x double> %528, %532 %537 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index139 %interleaved.vec156 = shufflevector <4 x double> %535, <4 x double> %536, <8 x i32> store <8 x double> %interleaved.vec156, ptr %537, align 8, !noalias !4483 %538 = fadd <4 x double> %529, %534 %539 = fsub <4 x double> %530, %533 %540 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index139 %interleaved.vec157 = shufflevector <4 x double> %538, <4 x double> %539, <8 x i32> store <8 x double> %interleaved.vec157, ptr %540, align 8, !noalias !4483 %541 = fsub <4 x double> %527, %531 %542 = fsub <4 x double> %528, %532 %543 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index139 %interleaved.vec158 = shufflevector <4 x double> %541, <4 x double> %542, <8 x i32> store <8 x double> %interleaved.vec158, ptr %543, align 8, !noalias !4483 %544 = fsub <4 x double> %529, %534 %545 = fadd <4 x double> %530, %533 %546 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index139 %interleaved.vec159 = shufflevector <4 x double> %544, <4 x double> %545, <8 x i32> store <8 x double> %interleaved.vec159, ptr %546, align 8, !noalias !4483 %index.next160 = add nuw i64 %index139, 4 %vec.ind.next141 = add <4 x i64> %vec.ind140, %547 = icmp eq i64 %index.next160, 28 br i1 %547, label %bb24.i.i.i, label %vector.body138, !llvm.loop !4491 bb24.i.i.i: ; preds = %vector.body138 %data.i.i.i.i.i.i.i.i.i.i.i.i716 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i726 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %data.i.i.i.i.i.i.i.i730 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %data.i5.i.i.i.i.i.i.i.i.i.i.i738 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %548 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i.i = load double, ptr %548, align 8, !noalias !4483, !noundef !3 %549 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %549, align 8, !noalias !4483, !noundef !3 %550 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2 %w2.0.i.i.i = load double, ptr %550, align 8, !noalias !4483, !noundef !3 %551 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %551, align 8, !noalias !4483, !noundef !3 %552 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3 %w3.0.i.i.i = load double, ptr %552, align 8, !noalias !4483, !noundef !3 %553 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %553, align 8, !noalias !4483, !noundef !3 %554 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 114 %555 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 113 %556 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 115 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i726, align 8, !noalias !4483, !noundef !3 %557 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112, i32 1 %a.1.i.i.i = load double, ptr %557, align 8, !noalias !4483, !noundef !3 %_84.0.i.i.i = load double, ptr %555, align 8, !noalias !4483, !noundef !3 %558 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 113, i32 1 %_84.1.i.i.i = load double, ptr %558, align 8, !noalias !4483, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %559 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %560 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %554, align 8, !noalias !4483, !noundef !3 %561 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 114, i32 1 %_86.1.i.i.i = load double, ptr %561, align 8, !noalias !4483, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %562 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %563 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %556, align 8, !noalias !4483, !noundef !3 %564 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 115, i32 1 %_88.1.i.i.i = load double, ptr %564, align 8, !noalias !4483, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %565 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %566 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i871 = fadd double %a.0.i.i.i, %562 %_0.i3.i872 = fadd double %a.1.i.i.i, %563 %_0.i.i873 = fsub double %a.0.i.i.i, %562 %_0.i3.i874 = fsub double %a.1.i.i.i, %563 %_0.i.i875 = fadd double %559, %565 %_0.i3.i876 = fadd double %560, %566 %_0.i.i877 = fsub double %559, %565 %_0.i3.i878 = fsub double %560, %566 %_0.i.i879 = fadd double %_0.i.i871, %_0.i.i875 %_0.i3.i880 = fadd double %_0.i3.i872, %_0.i3.i876 store double %_0.i.i879, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716, align 8, !noalias !4483 %567 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28, i32 1 store double %_0.i3.i880, ptr %567, align 8, !noalias !4483 %_0.i.i881 = fadd double %_0.i.i873, %_0.i3.i878 %_0.i3.i882 = fsub double %_0.i3.i874, %_0.i.i877 store double %_0.i.i881, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738, align 8, !noalias !4483 %568 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60, i32 1 store double %_0.i3.i882, ptr %568, align 8, !noalias !4483 %_0.i.i883 = fsub double %_0.i.i871, %_0.i.i875 %_0.i3.i884 = fsub double %_0.i3.i872, %_0.i3.i876 store double %_0.i.i883, ptr %data.i.i.i.i.i.i.i.i.i.i734, align 8, !noalias !4483 %569 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92, i32 1 store double %_0.i3.i884, ptr %569, align 8, !noalias !4483 %_0.i.i885 = fsub double %_0.i.i873, %_0.i3.i878 %_0.i3.i886 = fadd double %_0.i3.i874, %_0.i.i877 store double %_0.i.i885, ptr %data.i.i.i.i.i.i.i.i730, align 8, !noalias !4483 %570 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124, i32 1 store double %_0.i3.i886, ptr %570, align 8, !noalias !4483 %data.i.i.i.i.i.i.i.i.i.i.i.i716.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i.i.i.i.i.i726.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %data.i.i.i.i.i.i.i.i730.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.i.i.i.i734.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 93 %data.i5.i.i.i.i.i.i.i.i.i.i.i738.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %571 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1 %w1.0.i.i.i.1 = load double, ptr %571, align 8, !noalias !4483, !noundef !3 %572 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %572, align 8, !noalias !4483, !noundef !3 %573 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2 %w2.0.i.i.i.1 = load double, ptr %573, align 8, !noalias !4483, !noundef !3 %574 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %574, align 8, !noalias !4483, !noundef !3 %575 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3 %w3.0.i.i.i.1 = load double, ptr %575, align 8, !noalias !4483, !noundef !3 %576 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %576, align 8, !noalias !4483, !noundef !3 %577 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 118 %578 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 117 %579 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 119 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i726.1, align 8, !noalias !4483, !noundef !3 %580 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116, i32 1 %a.1.i.i.i.1 = load double, ptr %580, align 8, !noalias !4483, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %578, align 8, !noalias !4483, !noundef !3 %581 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 117, i32 1 %_84.1.i.i.i.1 = load double, ptr %581, align 8, !noalias !4483, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %582 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %583 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %577, align 8, !noalias !4483, !noundef !3 %584 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 118, i32 1 %_86.1.i.i.i.1 = load double, ptr %584, align 8, !noalias !4483, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %585 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %586 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %579, align 8, !noalias !4483, !noundef !3 %587 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 119, i32 1 %_88.1.i.i.i.1 = load double, ptr %587, align 8, !noalias !4483, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %588 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %589 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i871.1 = fadd double %a.0.i.i.i.1, %585 %_0.i3.i872.1 = fadd double %a.1.i.i.i.1, %586 %_0.i.i873.1 = fsub double %a.0.i.i.i.1, %585 %_0.i3.i874.1 = fsub double %a.1.i.i.i.1, %586 %_0.i.i875.1 = fadd double %582, %588 %_0.i3.i876.1 = fadd double %583, %589 %_0.i.i877.1 = fsub double %582, %588 %_0.i3.i878.1 = fsub double %583, %589 %_0.i.i879.1 = fadd double %_0.i.i871.1, %_0.i.i875.1 %_0.i3.i880.1 = fadd double %_0.i3.i872.1, %_0.i3.i876.1 store double %_0.i.i879.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716.1, align 8, !noalias !4483 %590 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29, i32 1 store double %_0.i3.i880.1, ptr %590, align 8, !noalias !4483 %_0.i.i881.1 = fadd double %_0.i.i873.1, %_0.i3.i878.1 %_0.i3.i882.1 = fsub double %_0.i3.i874.1, %_0.i.i877.1 store double %_0.i.i881.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738.1, align 8, !noalias !4483 %591 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61, i32 1 store double %_0.i3.i882.1, ptr %591, align 8, !noalias !4483 %_0.i.i883.1 = fsub double %_0.i.i871.1, %_0.i.i875.1 %_0.i3.i884.1 = fsub double %_0.i3.i872.1, %_0.i3.i876.1 store double %_0.i.i883.1, ptr %data.i.i.i.i.i.i.i.i.i.i734.1, align 8, !noalias !4483 %592 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 93, i32 1 store double %_0.i3.i884.1, ptr %592, align 8, !noalias !4483 %_0.i.i885.1 = fsub double %_0.i.i873.1, %_0.i3.i878.1 %_0.i3.i886.1 = fadd double %_0.i3.i874.1, %_0.i.i877.1 store double %_0.i.i885.1, ptr %data.i.i.i.i.i.i.i.i730.1, align 8, !noalias !4483 %593 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125, i32 1 store double %_0.i3.i886.1, ptr %593, align 8, !noalias !4483 %data.i.i.i.i.i.i.i.i.i.i.i.i716.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i.i.i.i.i.i726.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %data.i.i.i.i.i.i.i.i730.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.i.i.i.i734.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 94 %data.i5.i.i.i.i.i.i.i.i.i.i.i738.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %594 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i.i.2 = load double, ptr %594, align 8, !noalias !4483, !noundef !3 %595 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %595, align 8, !noalias !4483, !noundef !3 %596 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2 %w2.0.i.i.i.2 = load double, ptr %596, align 8, !noalias !4483, !noundef !3 %597 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %597, align 8, !noalias !4483, !noundef !3 %598 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3 %w3.0.i.i.i.2 = load double, ptr %598, align 8, !noalias !4483, !noundef !3 %599 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %599, align 8, !noalias !4483, !noundef !3 %600 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %601 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121 %602 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i726.2, align 8, !noalias !4483, !noundef !3 %603 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120, i32 1 %a.1.i.i.i.2 = load double, ptr %603, align 8, !noalias !4483, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %601, align 8, !noalias !4483, !noundef !3 %604 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121, i32 1 %_84.1.i.i.i.2 = load double, ptr %604, align 8, !noalias !4483, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %605 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %606 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %600, align 8, !noalias !4483, !noundef !3 %607 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122, i32 1 %_86.1.i.i.i.2 = load double, ptr %607, align 8, !noalias !4483, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %608 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %609 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %602, align 8, !noalias !4483, !noundef !3 %610 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123, i32 1 %_88.1.i.i.i.2 = load double, ptr %610, align 8, !noalias !4483, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %611 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %612 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i871.2 = fadd double %a.0.i.i.i.2, %608 %_0.i3.i872.2 = fadd double %a.1.i.i.i.2, %609 %_0.i.i873.2 = fsub double %a.0.i.i.i.2, %608 %_0.i3.i874.2 = fsub double %a.1.i.i.i.2, %609 %_0.i.i875.2 = fadd double %605, %611 %_0.i3.i876.2 = fadd double %606, %612 %_0.i.i877.2 = fsub double %605, %611 %_0.i3.i878.2 = fsub double %606, %612 %_0.i.i879.2 = fadd double %_0.i.i871.2, %_0.i.i875.2 %_0.i3.i880.2 = fadd double %_0.i3.i872.2, %_0.i3.i876.2 store double %_0.i.i879.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716.2, align 8, !noalias !4483 %613 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30, i32 1 store double %_0.i3.i880.2, ptr %613, align 8, !noalias !4483 %_0.i.i881.2 = fadd double %_0.i.i873.2, %_0.i3.i878.2 %_0.i3.i882.2 = fsub double %_0.i3.i874.2, %_0.i.i877.2 store double %_0.i.i881.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738.2, align 8, !noalias !4483 %614 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62, i32 1 store double %_0.i3.i882.2, ptr %614, align 8, !noalias !4483 %_0.i.i883.2 = fsub double %_0.i.i871.2, %_0.i.i875.2 %_0.i3.i884.2 = fsub double %_0.i3.i872.2, %_0.i3.i876.2 store double %_0.i.i883.2, ptr %data.i.i.i.i.i.i.i.i.i.i734.2, align 8, !noalias !4483 %615 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 94, i32 1 store double %_0.i3.i884.2, ptr %615, align 8, !noalias !4483 %_0.i.i885.2 = fsub double %_0.i.i873.2, %_0.i3.i878.2 %_0.i3.i886.2 = fadd double %_0.i3.i874.2, %_0.i.i877.2 store double %_0.i.i885.2, ptr %data.i.i.i.i.i.i.i.i730.2, align 8, !noalias !4483 %616 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126, i32 1 store double %_0.i3.i886.2, ptr %616, align 8, !noalias !4483 %data.i.i.i.i.i.i.i.i.i.i.i.i716.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i.i.i.i.i.i726.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %data.i.i.i.i.i.i.i.i730.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.i.i.i.i734.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 95 %data.i5.i.i.i.i.i.i.i.i.i.i.i738.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %617 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1 %w1.0.i.i.i.3 = load double, ptr %617, align 8, !noalias !4483, !noundef !3 %618 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %618, align 8, !noalias !4483, !noundef !3 %619 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2 %w2.0.i.i.i.3 = load double, ptr %619, align 8, !noalias !4483, !noundef !3 %620 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %620, align 8, !noalias !4483, !noundef !3 %621 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3 %w3.0.i.i.i.3 = load double, ptr %621, align 8, !noalias !4483, !noundef !3 %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %622, align 8, !noalias !4483, !noundef !3 %623 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %624 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125 %625 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i726.3, align 8, !noalias !4483, !noundef !3 %626 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124, i32 1 %a.1.i.i.i.3 = load double, ptr %626, align 8, !noalias !4483, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %624, align 8, !noalias !4483, !noundef !3 %627 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125, i32 1 %_84.1.i.i.i.3 = load double, ptr %627, align 8, !noalias !4483, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %628 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %629 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %623, align 8, !noalias !4483, !noundef !3 %630 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126, i32 1 %_86.1.i.i.i.3 = load double, ptr %630, align 8, !noalias !4483, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %631 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %632 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %625, align 8, !noalias !4483, !noundef !3 %633 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127, i32 1 %_88.1.i.i.i.3 = load double, ptr %633, align 8, !noalias !4483, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %634 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %635 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i871.3 = fadd double %a.0.i.i.i.3, %631 %_0.i3.i872.3 = fadd double %a.1.i.i.i.3, %632 %_0.i.i873.3 = fsub double %a.0.i.i.i.3, %631 %_0.i3.i874.3 = fsub double %a.1.i.i.i.3, %632 %_0.i.i875.3 = fadd double %628, %634 %_0.i3.i876.3 = fadd double %629, %635 %_0.i.i877.3 = fsub double %628, %634 %_0.i3.i878.3 = fsub double %629, %635 %_0.i.i879.3 = fadd double %_0.i.i871.3, %_0.i.i875.3 %_0.i3.i880.3 = fadd double %_0.i3.i872.3, %_0.i3.i876.3 store double %_0.i.i879.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i716.3, align 8, !noalias !4483 %636 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31, i32 1 store double %_0.i3.i880.3, ptr %636, align 8, !noalias !4483 %_0.i.i881.3 = fadd double %_0.i.i873.3, %_0.i3.i878.3 %_0.i3.i882.3 = fsub double %_0.i3.i874.3, %_0.i.i877.3 store double %_0.i.i881.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i738.3, align 8, !noalias !4483 %637 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63, i32 1 store double %_0.i3.i882.3, ptr %637, align 8, !noalias !4483 %_0.i.i883.3 = fsub double %_0.i.i871.3, %_0.i.i875.3 %_0.i3.i884.3 = fsub double %_0.i3.i872.3, %_0.i3.i876.3 store double %_0.i.i883.3, ptr %data.i.i.i.i.i.i.i.i.i.i734.3, align 8, !noalias !4483 %638 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 95, i32 1 store double %_0.i3.i884.3, ptr %638, align 8, !noalias !4483 %_0.i.i885.3 = fsub double %_0.i.i873.3, %_0.i3.i878.3 %_0.i3.i886.3 = fadd double %_0.i3.i874.3, %_0.i.i877.3 store double %_0.i.i885.3, ptr %data.i.i.i.i.i.i.i.i730.3, align 8, !noalias !4483 %639 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127, i32 1 store double %_0.i3.i886.3, ptr %639, align 8, !noalias !4483 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4483 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h964e4fe775fd2ff6E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4492 store i64 1024, ptr %n.i.i, align 8, !noalias !4492 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4492 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4492 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4492 store ptr null, ptr %_16.i.i, align 8, !noalias !4492 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4492 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4492 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4492 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4492 store ptr null, ptr %_24.i.i, align 8, !noalias !4492 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4492 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4492 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4492 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4492 store ptr null, ptr %_32.i.i, align 8, !noalias !4492 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4492 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4492 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4492 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha88dc170a332df7fE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4492 store ptr null, ptr %_40.i.i, align 8, !noalias !4492 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha88dc170a332df7fE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4492 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 br label %bb18.i.i.i.i bb18.i.i.i.i: ; preds = %bb18.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha88dc170a332df7fE.exit.i" %iter6.i.i.i.sroa.22.0158.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha88dc170a332df7fE.exit.i" ], [ %7, %bb18.i.i.i.i ] %4 = or disjoint i64 %iter6.i.i.i.sroa.22.0158.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.sroa.22.0158.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.sroa.22.0158.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.sroa.22.0158.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.i.i.i.sroa.22.0158.i %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4497 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4497 %5 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %5, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4497 store <4 x double> %6, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4497 %7 = add nuw nsw i64 %iter6.i.i.i.sroa.22.0158.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %_51.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !4497 %_52.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4497 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.sroa.0.0.copyload.i.1 %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4497 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !4497 %exitcond.not.i.1 = icmp eq i64 %7, 256 br i1 %exitcond.not.i.1, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i", label %bb18.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i": ; preds = %bb18.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4501) tail call void @llvm.experimental.noalias.scope.decl(metadata !4504) tail call void @llvm.experimental.noalias.scope.decl(metadata !4506) %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i br i1 %_2.i.i.i.i.i, label %bb30.i.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" %_2.i.i.i.i.i = phi i1 [ false, %bb28.loopexit.i.i ], [ true, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %iter.sroa.104.02127.i.i = phi i64 [ 1, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 8 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 128 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 192 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 160 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 224 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 6 %23 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %23, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %24 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %25, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %26, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %27 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %28, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %29, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %30 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %31, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %32, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %33 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %34, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %35, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %36 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %37, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %38, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %39 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %40, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %41, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %42 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %43, align 8, !alias.scope !4506, !noalias !4508, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %44 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %45 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> zeroinitializer %46 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %47 = shufflevector <4 x double> %39, <4 x double> poison, <4 x i32> zeroinitializer %48 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %49 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> zeroinitializer %50 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %51 = shufflevector <4 x double> %33, <4 x double> poison, <4 x i32> zeroinitializer %52 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %53 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer %54 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %55 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %57 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %58, %bb58.i.i ] %58 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %59 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %45, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %44, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %60) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %62 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %63 = fmul <4 x double> %47, %62 %64 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %46, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %63) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %65 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = fmul <4 x double> %49, %65 %67 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %48, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %66) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %68 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %69 = fmul <4 x double> %51, %68 %70 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %69) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %71 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %53, %71 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %52, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %72) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %74 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %55, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %54, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %75) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !4504, !noalias !4509 %77 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %57, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %78) #23 %80 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %70 %81 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %70 %82 = fadd <4 x double> %64, %76 %83 = fsub <4 x double> %64, %76 %84 = bitcast <4 x double> %83 to <4 x i64> %85 = fsub <4 x double> %67, %79 %86 = bitcast <4 x double> %85 to <4 x i64> %87 = xor <4 x i64> %84, %88 = bitcast <4 x i64> %87 to <4 x double> %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = xor <4 x i64> %86, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %61, %73 %94 = fsub <4 x double> %61, %73 %95 = fadd <4 x double> %67, %79 %96 = fadd <4 x double> %80, %82 %97 = fadd <4 x double> %93, %95 %98 = fadd <4 x double> %96, %97 store <4 x double> %98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %99 = fsub <4 x double> %96, %97 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %100 = fsub <4 x double> %81, %89 %101 = fsub <4 x double> %94, %92 %102 = bitcast <4 x double> %101 to <4 x i64> %103 = xor <4 x i64> %102, %104 = bitcast <4 x i64> %103 to <4 x double> %105 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> %106 = fadd <4 x double> %101, %105 %107 = fmul <4 x double> %106, %108 = fadd <4 x double> %100, %107 store <4 x double> %108, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %109 = fsub <4 x double> %100, %107 store <4 x double> %109, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %110 = fsub <4 x double> %80, %82 %111 = fsub <4 x double> %93, %95 %112 = bitcast <4 x double> %111 to <4 x i64> %113 = fadd <4 x double> %81, %89 %114 = fadd <4 x double> %94, %92 %115 = xor <4 x i64> %112, %116 = bitcast <4 x i64> %115 to <4 x double> %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fsub <4 x double> %110, %117 store <4 x double> %118, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %119 = fadd <4 x double> %110, %117 store <4 x double> %119, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %120 = bitcast <4 x double> %114 to <4 x i64> %121 = xor <4 x i64> %120, %122 = bitcast <4 x i64> %121 to <4 x double> %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fadd <4 x double> %114, %123 %125 = fmul <4 x double> %124, %126 = fsub <4 x double> %113, %125 store <4 x double> %126, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %127 = fadd <4 x double> %113, %125 store <4 x double> %127, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4501, !noalias !4510 %exitcond.not.i.i = icmp eq i64 %58, 32 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4511) tail call void @llvm.experimental.noalias.scope.decl(metadata !4514) tail call void @llvm.experimental.noalias.scope.decl(metadata !4516) %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %130 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %131 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %132 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %133 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 br label %bb30.i62.i bb28.loopexit.i124.i: ; preds = %bb58.i97.i %134 = add nuw nsw i64 %iter.sroa.104.02127.i63.i, 1 %exitcond159.not.i = icmp eq i64 %134, 16 br i1 %exitcond159.not.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i, label %bb30.i62.i bb30.i62.i: ; preds = %bb28.loopexit.i124.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.104.02127.i63.i = phi i64 [ %134, %bb28.loopexit.i124.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i = shl i64 %iter.sroa.104.02127.i63.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %start1.i.i.i.i.i.i.i66.i = shl i64 %iter.sroa.104.02127.i63.i, 5 %data.i.i.i.i.i.i.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i66.i %data.i.i.i.i.i.i.i.i.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %133, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i69.i = getelementptr inbounds %"fft_simd::c64x2", ptr %131, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i70.i = getelementptr inbounds %"fft_simd::c64x2", ptr %132, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i = getelementptr inbounds %"fft_simd::c64x2", ptr %130, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i64.i %135 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 16 %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 8 %137 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 4 %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 12 %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 24 %140 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 20 %141 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 28 %start1.i.i.i.i.i75.i = shl i64 %iter.sroa.104.02127.i63.i, 3 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 7, i32 1 %w7.1.i76.i = load double, ptr %142, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %143 = insertelement <4 x double> poison, double %w7.1.i76.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 7 %w7.0.i77.i = load double, ptr %144, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i114.sroa.0.0.vec.insert.i78.i = insertelement <2 x double> poison, double %w7.0.i77.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 6, i32 1 %w6.1.i79.i = load double, ptr %145, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %146 = insertelement <4 x double> poison, double %w6.1.i79.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 6 %w6.0.i80.i = load double, ptr %147, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i118.sroa.0.0.vec.insert.i81.i = insertelement <2 x double> poison, double %w6.0.i80.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 5, i32 1 %w5.1.i82.i = load double, ptr %148, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %149 = insertelement <4 x double> poison, double %w5.1.i82.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 5 %w5.0.i83.i = load double, ptr %150, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i122.sroa.0.0.vec.insert.i84.i = insertelement <2 x double> poison, double %w5.0.i83.i, i64 0 %151 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 4, i32 1 %w4.1.i85.i = load double, ptr %151, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %152 = insertelement <4 x double> poison, double %w4.1.i85.i, i64 0 %153 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 4 %w4.0.i86.i = load double, ptr %153, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i126.sroa.0.0.vec.insert.i87.i = insertelement <2 x double> poison, double %w4.0.i86.i, i64 0 %154 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 3, i32 1 %w3.1.i88.i = load double, ptr %154, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %155 = insertelement <4 x double> poison, double %w3.1.i88.i, i64 0 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 3 %w3.0.i89.i = load double, ptr %156, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i130.sroa.0.0.vec.insert.i90.i = insertelement <2 x double> poison, double %w3.0.i89.i, i64 0 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 2, i32 1 %w2.1.i91.i = load double, ptr %157, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %158 = insertelement <4 x double> poison, double %w2.1.i91.i, i64 0 %159 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 2 %w2.0.i92.i = load double, ptr %159, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i134.sroa.0.0.vec.insert.i93.i = insertelement <2 x double> poison, double %w2.0.i92.i, i64 0 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 1, i32 1 %w1.1.i94.i = load double, ptr %160, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %161 = insertelement <4 x double> poison, double %w1.1.i94.i, i64 0 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i75.i, i64 1 %w1.0.i95.i = load double, ptr %162, align 8, !alias.scope !4516, !noalias !4518, !noundef !3 %value.i138.sroa.0.0.vec.insert.i96.i = insertelement <2 x double> poison, double %w1.0.i95.i, i64 0 %163 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i96.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> zeroinitializer %165 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i93.i, <2 x double> poison, <4 x i32> zeroinitializer %166 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> zeroinitializer %167 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i90.i, <2 x double> poison, <4 x i32> zeroinitializer %168 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer %169 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i87.i, <2 x double> poison, <4 x i32> zeroinitializer %170 = shufflevector <4 x double> %152, <4 x double> poison, <4 x i32> zeroinitializer %171 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i84.i, <2 x double> poison, <4 x i32> zeroinitializer %172 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %173 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i81.i, <2 x double> poison, <4 x i32> zeroinitializer %174 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %175 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i78.i, <2 x double> poison, <4 x i32> zeroinitializer %176 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i97.i bb58.i97.i: ; preds = %bb58.i97.i, %bb30.i62.i %iter8.sroa.106.02066.i98.i = phi i64 [ 0, %bb30.i62.i ], [ %177, %bb58.i97.i ] %177 = add nuw nsw i64 %iter8.sroa.106.02066.i98.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i65.i, i64 %iter8.sroa.106.02066.i98.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i74.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i73.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i102.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i72.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i103.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i71.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i104.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i70.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i105.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i69.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i106.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i68.i, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i107.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i67.i, i64 %iter8.sroa.106.02066.i98.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i108.i = getelementptr inbounds %"fft_simd::c64x2", ptr %137, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i109.i = getelementptr inbounds %"fft_simd::c64x2", ptr %136, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i110.i = getelementptr inbounds %"fft_simd::c64x2", ptr %138, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i111.i = getelementptr inbounds %"fft_simd::c64x2", ptr %135, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i112.i = getelementptr inbounds %"fft_simd::c64x2", ptr %140, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i.i.i35.i.i.i.i113.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter8.sroa.106.02066.i98.i %_3.i.i.i.i.i38.i.i.i.i114.i = getelementptr inbounds %"fft_simd::c64x2", ptr %141, i64 %iter8.sroa.106.02066.i98.i %y0.sroa.0.0.copyload.i115.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i107.i, align 8, !alias.scope !4514, !noalias !4519 %_131.sroa.0.0.copyload.i116.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i108.i, align 8, !alias.scope !4514, !noalias !4519 %178 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i116.i, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %164, %178 %180 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %_131.sroa.0.0.copyload.i116.i, <4 x double> %179) #23 %_133.sroa.0.0.copyload.i117.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i109.i, align 8, !alias.scope !4514, !noalias !4519 %181 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i117.i, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %166, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %165, <4 x double> %_133.sroa.0.0.copyload.i117.i, <4 x double> %182) #23 %_135.sroa.0.0.copyload.i118.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i110.i, align 8, !alias.scope !4514, !noalias !4519 %184 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i118.i, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %168, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %167, <4 x double> %_135.sroa.0.0.copyload.i118.i, <4 x double> %185) #23 %_137.sroa.0.0.copyload.i119.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i111.i, align 8, !alias.scope !4514, !noalias !4519 %187 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i119.i, <4 x double> poison, <4 x i32> %188 = fmul <4 x double> %170, %187 %189 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %_137.sroa.0.0.copyload.i119.i, <4 x double> %188) #23 %_139.sroa.0.0.copyload.i120.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i112.i, align 8, !alias.scope !4514, !noalias !4519 %190 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i120.i, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %172, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %171, <4 x double> %_139.sroa.0.0.copyload.i120.i, <4 x double> %191) #23 %_141.sroa.0.0.copyload.i121.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i113.i, align 8, !alias.scope !4514, !noalias !4519 %193 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i121.i, <4 x double> poison, <4 x i32> %194 = fmul <4 x double> %174, %193 %195 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %_141.sroa.0.0.copyload.i121.i, <4 x double> %194) #23 %_143.sroa.0.0.copyload.i122.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i114.i, align 8, !alias.scope !4514, !noalias !4519 %196 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i122.i, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %176, %196 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %_143.sroa.0.0.copyload.i122.i, <4 x double> %197) #23 %199 = fadd <4 x double> %y0.sroa.0.0.copyload.i115.i, %189 %200 = fsub <4 x double> %y0.sroa.0.0.copyload.i115.i, %189 %201 = fadd <4 x double> %183, %195 %202 = fsub <4 x double> %183, %195 %203 = bitcast <4 x double> %202 to <4 x i64> %204 = fsub <4 x double> %186, %198 %205 = bitcast <4 x double> %204 to <4 x i64> %206 = xor <4 x i64> %203, %207 = bitcast <4 x i64> %206 to <4 x double> %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = xor <4 x i64> %205, %210 = bitcast <4 x i64> %209 to <4 x double> %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fadd <4 x double> %180, %192 %213 = fsub <4 x double> %180, %192 %214 = fadd <4 x double> %186, %198 %215 = fadd <4 x double> %199, %201 %216 = fadd <4 x double> %212, %214 %217 = fadd <4 x double> %215, %216 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i99.i, align 8, !alias.scope !4511, !noalias !4520 %218 = fsub <4 x double> %215, %216 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i103.i, align 8, !alias.scope !4511, !noalias !4520 %219 = fsub <4 x double> %200, %208 %220 = fsub <4 x double> %213, %211 %221 = bitcast <4 x double> %220 to <4 x i64> %222 = xor <4 x i64> %221, %223 = bitcast <4 x i64> %222 to <4 x double> %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fadd <4 x double> %220, %224 %226 = fmul <4 x double> %225, %227 = fadd <4 x double> %219, %226 store <4 x double> %227, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i100.i, align 8, !alias.scope !4511, !noalias !4520 %228 = fsub <4 x double> %219, %226 store <4 x double> %228, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i104.i, align 8, !alias.scope !4511, !noalias !4520 %229 = fsub <4 x double> %199, %201 %230 = fsub <4 x double> %212, %214 %231 = bitcast <4 x double> %230 to <4 x i64> %232 = fadd <4 x double> %200, %208 %233 = fadd <4 x double> %213, %211 %234 = xor <4 x i64> %231, %235 = bitcast <4 x i64> %234 to <4 x double> %236 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> %237 = fsub <4 x double> %229, %236 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i101.i, align 8, !alias.scope !4511, !noalias !4520 %238 = fadd <4 x double> %229, %236 store <4 x double> %238, ptr %_3.i.i.i.i.i.i.i.i.i.i.i105.i, align 8, !alias.scope !4511, !noalias !4520 %239 = bitcast <4 x double> %233 to <4 x i64> %240 = xor <4 x i64> %239, %241 = bitcast <4 x i64> %240 to <4 x double> %242 = shufflevector <4 x double> %241, <4 x double> poison, <4 x i32> %243 = fadd <4 x double> %233, %242 %244 = fmul <4 x double> %243, %245 = fsub <4 x double> %232, %244 store <4 x double> %245, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i102.i, align 8, !alias.scope !4511, !noalias !4520 %246 = fadd <4 x double> %232, %244 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i.i106.i, align 8, !alias.scope !4511, !noalias !4520 %exitcond.not.i123.i = icmp eq i64 %177, 4 br i1 %exitcond.not.i123.i, label %bb28.loopexit.i124.i, label %bb58.i97.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i: ; preds = %bb28.loopexit.i124.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4521) tail call void @llvm.experimental.noalias.scope.decl(metadata !4524) tail call void @llvm.experimental.noalias.scope.decl(metadata !4526) %247 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %248 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %249 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %250 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %251 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %252 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %253 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i %iter.sroa.106.01794.i.i = phi i64 [ %254, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit126.i ] %254 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i130.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i131.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i132.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i133.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i134.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i135.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %249, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %248, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %247, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %252, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %251, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i136.i = getelementptr inbounds %"fft_simd::c64x2", ptr %253, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !4526, !noalias !4528 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4526, !noalias !4528 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4526, !noalias !4528 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4526, !noalias !4528 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4526, !noalias !4528 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4526, !noalias !4528 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i136.i, align 8, !alias.scope !4526, !noalias !4528 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4524, !noalias !4529 %255 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %255, align 8, !alias.scope !4524, !noalias !4529 %256 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %256, align 8, !alias.scope !4524, !noalias !4529 %257 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %257, align 8, !alias.scope !4524, !noalias !4529 %258 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %258, align 8, !alias.scope !4524, !noalias !4529 %259 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %259, align 8, !alias.scope !4524, !noalias !4529 %260 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %260, align 8, !alias.scope !4524, !noalias !4529 %261 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %261, align 8, !alias.scope !4524, !noalias !4529 %262 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %263 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %264 = shufflevector <4 x double> %263, <4 x double> poison, <4 x i32> %265 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %266 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %267 = fmul <4 x double> %266, %264 %268 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %265, <4 x double> %263, <4 x double> %267) #23 %269 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %270 = shufflevector <4 x double> %269, <4 x double> poison, <4 x i32> %271 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %272 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %273 = fmul <4 x double> %272, %270 %274 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %271, <4 x double> %269, <4 x double> %273) #23 %275 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %278 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %279 = fmul <4 x double> %278, %276 %280 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %277, <4 x double> %275, <4 x double> %279) #23 %281 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %282 = shufflevector <4 x double> %281, <4 x double> poison, <4 x i32> %283 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %284 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %285 = fmul <4 x double> %284, %282 %286 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %283, <4 x double> %281, <4 x double> %285) #23 %287 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %288 = shufflevector <4 x double> %287, <4 x double> poison, <4 x i32> %289 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %290 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %291 = fmul <4 x double> %290, %288 %292 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %289, <4 x double> %287, <4 x double> %291) #23 %293 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %296 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %296, %294 %298 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %295, <4 x double> %293, <4 x double> %297) #23 %299 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %300 = shufflevector <4 x double> %299, <4 x double> poison, <4 x i32> %301 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %302 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %303 = fmul <4 x double> %302, %300 %304 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %301, <4 x double> %299, <4 x double> %303) #23 %305 = fadd <4 x double> %262, %286 %306 = fsub <4 x double> %262, %286 %307 = fadd <4 x double> %274, %298 %308 = fsub <4 x double> %274, %298 %309 = bitcast <4 x double> %308 to <4 x i64> %310 = fsub <4 x double> %280, %304 %311 = bitcast <4 x double> %310 to <4 x i64> %312 = xor <4 x i64> %309, %313 = bitcast <4 x i64> %312 to <4 x double> %314 = shufflevector <4 x double> %313, <4 x double> poison, <4 x i32> %315 = xor <4 x i64> %311, %316 = bitcast <4 x i64> %315 to <4 x double> %317 = shufflevector <4 x double> %316, <4 x double> poison, <4 x i32> %318 = fadd <4 x double> %268, %292 %319 = fsub <4 x double> %268, %292 %320 = fadd <4 x double> %280, %304 %321 = fadd <4 x double> %305, %307 %322 = fadd <4 x double> %318, %320 %323 = fadd <4 x double> %321, %322 store <4 x double> %323, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4521, !noalias !4530 %324 = fsub <4 x double> %321, %322 store <4 x double> %324, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i132.i, align 8, !alias.scope !4521, !noalias !4530 %325 = fsub <4 x double> %306, %314 %326 = fsub <4 x double> %319, %317 %327 = bitcast <4 x double> %326 to <4 x i64> %328 = xor <4 x i64> %327, %329 = bitcast <4 x i64> %328 to <4 x double> %330 = shufflevector <4 x double> %329, <4 x double> poison, <4 x i32> %331 = fadd <4 x double> %326, %330 %332 = fmul <4 x double> %331, %333 = fadd <4 x double> %325, %332 store <4 x double> %333, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4521, !noalias !4530 %334 = fsub <4 x double> %325, %332 store <4 x double> %334, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i133.i, align 8, !alias.scope !4521, !noalias !4530 %335 = fsub <4 x double> %305, %307 %336 = fsub <4 x double> %318, %320 %337 = bitcast <4 x double> %336 to <4 x i64> %338 = fadd <4 x double> %306, %314 %339 = fadd <4 x double> %319, %317 %340 = xor <4 x i64> %337, %341 = bitcast <4 x i64> %340 to <4 x double> %342 = shufflevector <4 x double> %341, <4 x double> poison, <4 x i32> %343 = fsub <4 x double> %335, %342 store <4 x double> %343, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i130.i, align 8, !alias.scope !4521, !noalias !4530 %344 = fadd <4 x double> %335, %342 store <4 x double> %344, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i134.i, align 8, !alias.scope !4521, !noalias !4530 %345 = bitcast <4 x double> %339 to <4 x i64> %346 = xor <4 x i64> %345, %347 = bitcast <4 x i64> %346 to <4 x double> %348 = shufflevector <4 x double> %347, <4 x double> poison, <4 x i32> %349 = fadd <4 x double> %339, %348 %350 = fmul <4 x double> %349, %351 = fsub <4 x double> %338, %350 store <4 x double> %351, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i131.i, align 8, !alias.scope !4521, !noalias !4530 %352 = fadd <4 x double> %338, %350 store <4 x double> %352, ptr %_3.i.i.i.i.i.i.i.i.i.i.i135.i, align 8, !alias.scope !4521, !noalias !4530 %exitcond.not.i137.i = icmp eq i64 %254, 64 br i1 %exitcond.not.i137.i, label %_ZN4pulp3x862V39vectorize6__impl17h06b838377b020075E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17h06b838377b020075E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4492 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9770f79c3b1b2d78E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc6c70094a8e295fbE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h97961f80cc3d4007E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4531 store i64 32, ptr %n.i, align 8, !noalias !4531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4531 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4531 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4531 store ptr null, ptr %_16.i, align 8, !noalias !4531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4531 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4531 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4531 store ptr null, ptr %_24.i, align 8, !noalias !4531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4531 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4531 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4531 store ptr null, ptr %_32.i, align 8, !noalias !4531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4531 store i64 %w.1, ptr %_34.i, align 8, !noalias !4531 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4531 store ptr null, ptr %_40.i, align 8, !noalias !4531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4531 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %9 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %10 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %11 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %12 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %13 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %14 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %15 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %15, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %16 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %16, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %17 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %17, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %18 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %18, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %19 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %19, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %20 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %20, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %21 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %21, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %22 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %22, i32 8, <4 x i1> , <4 x double> poison), !noalias !4531 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %31 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17 %32 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %36 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %38 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %40 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21 %41 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %42 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %43 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23 %44 = fneg <4 x double> %wide.masked.gather1 %45 = fneg <4 x double> %wide.masked.gather3 %46 = fneg <4 x double> %wide.masked.gather5 %47 = fneg <4 x double> %wide.masked.gather7 %48 = fneg <4 x double> %wide.masked.gather9 %49 = fneg <4 x double> %wide.masked.gather11 %50 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4531 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %2, align 8, !noalias !4531 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %1, align 8, !noalias !4531 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %3, align 8, !noalias !4531 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %0, align 8, !noalias !4531 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %5, align 8, !noalias !4531 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %4, align 8, !noalias !4531 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %6, align 8, !noalias !4531 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %51 = fadd <4 x double> %strided.vec, %strided.vec25 %52 = fadd <4 x double> %strided.vec14, %strided.vec26 %53 = fsub <4 x double> %strided.vec, %strided.vec25 %54 = fsub <4 x double> %strided.vec14, %strided.vec26 %55 = fadd <4 x double> %strided.vec19, %strided.vec31 %56 = fadd <4 x double> %strided.vec20, %strided.vec32 %57 = fsub <4 x double> %strided.vec19, %strided.vec31 %58 = fsub <4 x double> %strided.vec20, %strided.vec32 %59 = fadd <4 x double> %strided.vec16, %strided.vec28 %60 = fadd <4 x double> %strided.vec17, %strided.vec29 %61 = fsub <4 x double> %strided.vec16, %strided.vec28 %62 = fsub <4 x double> %strided.vec17, %strided.vec29 %63 = fadd <4 x double> %strided.vec22, %strided.vec34 %64 = fadd <4 x double> %strided.vec23, %strided.vec35 %65 = fsub <4 x double> %strided.vec22, %strided.vec34 %66 = fsub <4 x double> %strided.vec23, %strided.vec35 %67 = fadd <4 x double> %51, %55 %68 = fadd <4 x double> %52, %56 %69 = fsub <4 x double> %53, %58 %70 = fadd <4 x double> %54, %57 %71 = fsub <4 x double> %51, %55 %72 = fsub <4 x double> %52, %56 %73 = fadd <4 x double> %53, %58 %74 = fsub <4 x double> %54, %57 %75 = fadd <4 x double> %59, %63 %76 = fadd <4 x double> %60, %64 %77 = fsub <4 x double> %61, %66 %78 = fadd <4 x double> %62, %65 %79 = fsub <4 x double> %77, %78 %80 = fadd <4 x double> %78, %77 %81 = fmul <4 x double> %79, %82 = fmul <4 x double> %80, %83 = fsub <4 x double> %59, %63 %84 = fsub <4 x double> %60, %64 %85 = fadd <4 x double> %61, %66 %86 = fsub <4 x double> %62, %65 %87 = fadd <4 x double> %86, %85 %88 = fsub <4 x double> %86, %85 %89 = fmul <4 x double> %87, %90 = fmul <4 x double> %88, %91 = fadd <4 x double> %67, %75 %92 = fadd <4 x double> %68, %76 %93 = extractelement <4 x double> %91, i64 0 store double %93, ptr %scratch.0, align 8, !noalias !4531 %94 = extractelement <4 x double> %91, i64 1 store double %94, ptr %7, align 8, !noalias !4531 %95 = extractelement <4 x double> %91, i64 2 store double %95, ptr %8, align 8, !noalias !4531 %96 = getelementptr inbounds i8, ptr %scratch.0, i64 8 %97 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8, i32 1 %98 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16, i32 1 %99 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24, i32 1 %100 = extractelement <4 x double> %92, i64 0 store double %100, ptr %96, align 8, !noalias !4531 %101 = extractelement <4 x double> %92, i64 1 store double %101, ptr %97, align 8, !noalias !4531 %102 = extractelement <4 x double> %92, i64 2 store double %102, ptr %98, align 8, !noalias !4531 %103 = fadd <4 x double> %69, %81 %104 = fadd <4 x double> %70, %82 %105 = fmul <4 x double> %104, %44 %106 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %103, <4 x double> %105) %107 = fmul <4 x double> %wide.masked.gather1, %103 %108 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %104, <4 x double> %107) %109 = extractelement <4 x double> %106, i64 0 store double %109, ptr %29, align 8, !noalias !4531 %110 = extractelement <4 x double> %106, i64 1 store double %110, ptr %30, align 8, !noalias !4531 %111 = extractelement <4 x double> %106, i64 2 store double %111, ptr %31, align 8, !noalias !4531 %112 = shufflevector <4 x double> %92, <4 x double> %106, <2 x i32> store <2 x double> %112, ptr %99, align 8, !noalias !4531 %113 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1, i32 1 %114 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9, i32 1 %115 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17, i32 1 %116 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25, i32 1 %117 = extractelement <4 x double> %108, i64 0 store double %117, ptr %113, align 8, !noalias !4531 %118 = extractelement <4 x double> %108, i64 1 store double %118, ptr %114, align 8, !noalias !4531 %119 = extractelement <4 x double> %108, i64 2 store double %119, ptr %115, align 8, !noalias !4531 %120 = fsub <4 x double> %71, %84 %121 = fadd <4 x double> %72, %83 %122 = fmul <4 x double> %121, %45 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %120, <4 x double> %122) %124 = fmul <4 x double> %wide.masked.gather3, %120 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %121, <4 x double> %124) %126 = extractelement <4 x double> %123, i64 0 store double %126, ptr %26, align 8, !noalias !4531 %127 = extractelement <4 x double> %123, i64 1 store double %127, ptr %27, align 8, !noalias !4531 %128 = extractelement <4 x double> %123, i64 2 store double %128, ptr %28, align 8, !noalias !4531 %129 = shufflevector <4 x double> %108, <4 x double> %123, <2 x i32> store <2 x double> %129, ptr %116, align 8, !noalias !4531 %130 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2, i32 1 %131 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10, i32 1 %132 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18, i32 1 %133 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26, i32 1 %134 = extractelement <4 x double> %125, i64 0 store double %134, ptr %130, align 8, !noalias !4531 %135 = extractelement <4 x double> %125, i64 1 store double %135, ptr %131, align 8, !noalias !4531 %136 = extractelement <4 x double> %125, i64 2 store double %136, ptr %132, align 8, !noalias !4531 %137 = fsub <4 x double> %73, %89 %138 = fsub <4 x double> %74, %90 %139 = fmul <4 x double> %138, %46 %140 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %137, <4 x double> %139) %141 = fmul <4 x double> %wide.masked.gather5, %137 %142 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %138, <4 x double> %141) %143 = extractelement <4 x double> %140, i64 0 store double %143, ptr %32, align 8, !noalias !4531 %144 = extractelement <4 x double> %140, i64 1 store double %144, ptr %33, align 8, !noalias !4531 %145 = extractelement <4 x double> %140, i64 2 store double %145, ptr %34, align 8, !noalias !4531 %146 = shufflevector <4 x double> %125, <4 x double> %140, <2 x i32> store <2 x double> %146, ptr %133, align 8, !noalias !4531 %147 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3, i32 1 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11, i32 1 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19, i32 1 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27, i32 1 %151 = extractelement <4 x double> %142, i64 0 store double %151, ptr %147, align 8, !noalias !4531 %152 = extractelement <4 x double> %142, i64 1 store double %152, ptr %148, align 8, !noalias !4531 %153 = extractelement <4 x double> %142, i64 2 store double %153, ptr %149, align 8, !noalias !4531 %154 = fsub <4 x double> %67, %75 %155 = fsub <4 x double> %68, %76 %156 = fmul <4 x double> %155, %47 %157 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %154, <4 x double> %156) %158 = fmul <4 x double> %wide.masked.gather7, %154 %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %155, <4 x double> %158) %160 = extractelement <4 x double> %157, i64 0 store double %160, ptr %23, align 8, !noalias !4531 %161 = extractelement <4 x double> %157, i64 1 store double %161, ptr %24, align 8, !noalias !4531 %162 = extractelement <4 x double> %157, i64 2 store double %162, ptr %25, align 8, !noalias !4531 %163 = shufflevector <4 x double> %142, <4 x double> %157, <2 x i32> store <2 x double> %163, ptr %150, align 8, !noalias !4531 %164 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4, i32 1 %165 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12, i32 1 %166 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28, i32 1 %168 = extractelement <4 x double> %159, i64 0 store double %168, ptr %164, align 8, !noalias !4531 %169 = extractelement <4 x double> %159, i64 1 store double %169, ptr %165, align 8, !noalias !4531 %170 = extractelement <4 x double> %159, i64 2 store double %170, ptr %166, align 8, !noalias !4531 %171 = fsub <4 x double> %69, %81 %172 = fsub <4 x double> %70, %82 %173 = fmul <4 x double> %172, %48 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %171, <4 x double> %173) %175 = fmul <4 x double> %wide.masked.gather9, %171 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %172, <4 x double> %175) %177 = extractelement <4 x double> %174, i64 0 store double %177, ptr %38, align 8, !noalias !4531 %178 = extractelement <4 x double> %174, i64 1 store double %178, ptr %39, align 8, !noalias !4531 %179 = extractelement <4 x double> %174, i64 2 store double %179, ptr %40, align 8, !noalias !4531 %180 = shufflevector <4 x double> %159, <4 x double> %174, <2 x i32> store <2 x double> %180, ptr %167, align 8, !noalias !4531 %181 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5, i32 1 %182 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29, i32 1 %185 = extractelement <4 x double> %176, i64 0 store double %185, ptr %181, align 8, !noalias !4531 %186 = extractelement <4 x double> %176, i64 1 store double %186, ptr %182, align 8, !noalias !4531 %187 = extractelement <4 x double> %176, i64 2 store double %187, ptr %183, align 8, !noalias !4531 %188 = fadd <4 x double> %71, %84 %189 = fsub <4 x double> %72, %83 %190 = fmul <4 x double> %189, %49 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %188, <4 x double> %190) %192 = fmul <4 x double> %wide.masked.gather11, %188 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %189, <4 x double> %192) %194 = extractelement <4 x double> %191, i64 0 store double %194, ptr %35, align 8, !noalias !4531 %195 = extractelement <4 x double> %191, i64 1 store double %195, ptr %36, align 8, !noalias !4531 %196 = extractelement <4 x double> %191, i64 2 store double %196, ptr %37, align 8, !noalias !4531 %197 = shufflevector <4 x double> %176, <4 x double> %191, <2 x i32> store <2 x double> %197, ptr %184, align 8, !noalias !4531 %198 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22, i32 1 %201 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30, i32 1 %202 = extractelement <4 x double> %193, i64 0 store double %202, ptr %198, align 8, !noalias !4531 %203 = extractelement <4 x double> %193, i64 1 store double %203, ptr %199, align 8, !noalias !4531 %204 = extractelement <4 x double> %193, i64 2 store double %204, ptr %200, align 8, !noalias !4531 %205 = fadd <4 x double> %73, %89 %206 = fadd <4 x double> %74, %90 %207 = fmul <4 x double> %206, %50 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather13, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %41, align 8, !noalias !4531 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %42, align 8, !noalias !4531 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %43, align 8, !noalias !4531 %214 = shufflevector <4 x double> %193, <4 x double> %208, <2 x i32> store <2 x double> %214, ptr %201, align 8, !noalias !4531 %215 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15, i32 1 %217 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23, i32 1 %218 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31, i32 1 %219 = extractelement <4 x double> %210, i64 0 store double %219, ptr %215, align 8, !noalias !4531 %220 = extractelement <4 x double> %210, i64 1 store double %220, ptr %216, align 8, !noalias !4531 %221 = shufflevector <4 x double> %210, <4 x double> %91, <2 x i32> store <2 x double> %221, ptr %217, align 8, !noalias !4531 %222 = extractelement <4 x double> %210, i64 3 store double %222, ptr %218, align 8, !noalias !4531 %223 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %224 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %225 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec42 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4531 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %224, align 8, !noalias !4531 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %225, align 8, !noalias !4531 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %223, align 8, !noalias !4531 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %226 = fadd <4 x double> %strided.vec43, %strided.vec49 %227 = fadd <4 x double> %strided.vec44, %strided.vec50 %228 = fsub <4 x double> %strided.vec43, %strided.vec49 %229 = fsub <4 x double> %strided.vec44, %strided.vec50 %230 = fadd <4 x double> %strided.vec46, %strided.vec52 %231 = fadd <4 x double> %strided.vec47, %strided.vec53 %232 = fsub <4 x double> %strided.vec46, %strided.vec52 %233 = fsub <4 x double> %strided.vec47, %strided.vec53 %234 = fadd <4 x double> %226, %230 %235 = fadd <4 x double> %227, %231 %236 = fsub <4 x double> %228, %233 %237 = fadd <4 x double> %229, %232 %238 = fsub <4 x double> %226, %230 %239 = fsub <4 x double> %227, %231 %240 = fadd <4 x double> %228, %233 %241 = fsub <4 x double> %229, %232 %interleaved.vec = shufflevector <4 x double> %234, <4 x double> %235, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4531 %interleaved.vec54 = shufflevector <4 x double> %236, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec54, ptr %1, align 8, !noalias !4531 %interleaved.vec55 = shufflevector <4 x double> %238, <4 x double> %239, <8 x i32> store <8 x double> %interleaved.vec55, ptr %0, align 8, !noalias !4531 %interleaved.vec56 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec56, ptr %4, align 8, !noalias !4531 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %245 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec42.1 = load <8 x double>, ptr %242, align 8, !noalias !4531 %strided.vec43.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %strided.vec44.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %wide.vec45.1 = load <8 x double>, ptr %243, align 8, !noalias !4531 %strided.vec46.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %strided.vec47.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %wide.vec48.1 = load <8 x double>, ptr %244, align 8, !noalias !4531 %strided.vec49.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %strided.vec50.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %wide.vec51.1 = load <8 x double>, ptr %245, align 8, !noalias !4531 %strided.vec52.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %strided.vec53.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %246 = fadd <4 x double> %strided.vec43.1, %strided.vec49.1 %247 = fadd <4 x double> %strided.vec44.1, %strided.vec50.1 %248 = fsub <4 x double> %strided.vec43.1, %strided.vec49.1 %249 = fsub <4 x double> %strided.vec44.1, %strided.vec50.1 %250 = fadd <4 x double> %strided.vec46.1, %strided.vec52.1 %251 = fadd <4 x double> %strided.vec47.1, %strided.vec53.1 %252 = fsub <4 x double> %strided.vec46.1, %strided.vec52.1 %253 = fsub <4 x double> %strided.vec47.1, %strided.vec53.1 %254 = fadd <4 x double> %246, %250 %255 = fadd <4 x double> %247, %251 %256 = fsub <4 x double> %248, %253 %257 = fadd <4 x double> %249, %252 %258 = fsub <4 x double> %246, %250 %259 = fsub <4 x double> %247, %251 %260 = fadd <4 x double> %248, %253 %261 = fsub <4 x double> %249, %252 %262 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %254, <4 x double> %255, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %262, align 8, !noalias !4531 %263 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec54.1 = shufflevector <4 x double> %256, <4 x double> %257, <8 x i32> store <8 x double> %interleaved.vec54.1, ptr %263, align 8, !noalias !4531 %264 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec55.1 = shufflevector <4 x double> %258, <4 x double> %259, <8 x i32> store <8 x double> %interleaved.vec55.1, ptr %264, align 8, !noalias !4531 %265 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec56.1 = shufflevector <4 x double> %260, <4 x double> %261, <8 x i32> store <8 x double> %interleaved.vec56.1, ptr %265, align 8, !noalias !4531 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4531 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h98ff4c97d7673981E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4534 store i64 8, ptr %n.i.i, align 8, !noalias !4534 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4534 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4534 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4534 store ptr null, ptr %_16.i.i, align 8, !noalias !4534 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4534 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4534 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4534 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4534 store ptr null, ptr %_24.i.i, align 8, !noalias !4534 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4534 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4534 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4534 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4534 store ptr null, ptr %_32.i.i, align 8, !noalias !4534 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4534 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4534 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4534 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h51a6d054d8245fabE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4534 store ptr null, ptr %_40.i.i, align 8, !noalias !4534 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h51a6d054d8245fabE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4534 tail call void @llvm.experimental.noalias.scope.decl(metadata !4539) tail call void @llvm.experimental.noalias.scope.decl(metadata !4542) tail call void @llvm.experimental.noalias.scope.decl(metadata !4544) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !4544, !noalias !4546 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !4544, !noalias !4546 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !4544, !noalias !4546 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !4539, !noalias !4547 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !4539, !noalias !4547 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !4539, !noalias !4547 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !4539, !noalias !4547 %8 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %9 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %11 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = fsub <4 x double> %8, %10 %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %23, <4 x double> %27) #23 %29 = fadd <4 x double> %9, %15 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %36 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> store <4 x double> %35, ptr %scratch.0, align 8, !alias.scope !4542, !noalias !4548 %37 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %36, ptr %37, align 8, !alias.scope !4542, !noalias !4548 %38 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %39 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> %40 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %38, ptr %40, align 8, !alias.scope !4542, !noalias !4548 %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %39, ptr %41, align 8, !alias.scope !4542, !noalias !4548 %42 = fadd <4 x double> %35, %38 %43 = fsub <4 x double> %35, %38 store <4 x double> %42, ptr %buf.0, align 8, !noalias !4534 store <4 x double> %43, ptr %2, align 8, !noalias !4534 %44 = fadd <4 x double> %36, %39 %45 = fsub <4 x double> %36, %39 store <4 x double> %44, ptr %3, align 8, !noalias !4534 store <4 x double> %45, ptr %4, align 8, !noalias !4534 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4534 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h994102207487ae89E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4549 store i64 16, ptr %n.i.i, align 8, !noalias !4549 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4549 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4549 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4549 store ptr null, ptr %_16.i.i, align 8, !noalias !4549 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4549 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4549 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4549 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4549 store ptr null, ptr %_24.i.i, align 8, !noalias !4549 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4549 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4549 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4549 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4549 store ptr null, ptr %_32.i.i, align 8, !noalias !4549 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4549 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4549 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4549 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hd40af08fcba119b3E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4549 store ptr null, ptr %_40.i.i, align 8, !noalias !4549 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17hd40af08fcba119b3E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4549 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !4554 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !4554 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !4554 store <4 x double> %5, ptr %2, align 8, !noalias !4554 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4554 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4554 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i store <4 x double> %6, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4554 store <4 x double> %7, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !4554 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_51.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4554 %_52.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4554 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4554 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !4554 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_51.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4554 %_52.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4554 %10 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i %11 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i store <4 x double> %10, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4554 store <4 x double> %11, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !4554 tail call void @llvm.experimental.noalias.scope.decl(metadata !4558) tail call void @llvm.experimental.noalias.scope.decl(metadata !4561) %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !4561, !noalias !4563 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !4561, !noalias !4563 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !4561, !noalias !4563 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !4561, !noalias !4563 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %17, align 8, !alias.scope !4561, !noalias !4563 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %16, align 8, !alias.scope !4561, !noalias !4563 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %18, align 8, !alias.scope !4561, !noalias !4563 %19 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %20 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %21 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> %22 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %23 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %24 = fmul <4 x double> %21, %23 %25 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %22, <4 x double> %20, <4 x double> %24) #23 %26 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %29 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %30 = fmul <4 x double> %27, %29 %31 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %28, <4 x double> %26, <4 x double> %30) #23 %32 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %33 = shufflevector <4 x double> %32, <4 x double> poison, <4 x i32> %34 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %35 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %33, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %34, <4 x double> %32, <4 x double> %36) #23 %38 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %41 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %39, %41 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %40, <4 x double> %38, <4 x double> %42) #23 %44 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %47 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %45, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %46, <4 x double> %44, <4 x double> %48) #23 %50 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %54 = fmul <4 x double> %51, %53 %55 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %52, <4 x double> %50, <4 x double> %54) #23 %56 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %57 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> %58 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %57, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %56, <4 x double> %60) #23 %62 = fadd <4 x double> %19, %43 %63 = fsub <4 x double> %19, %43 %64 = fadd <4 x double> %31, %55 %65 = fsub <4 x double> %31, %55 %66 = bitcast <4 x double> %65 to <4 x i64> %67 = fsub <4 x double> %37, %61 %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %66, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = xor <4 x i64> %68, %73 = bitcast <4 x i64> %72 to <4 x double> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fadd <4 x double> %25, %49 %76 = fsub <4 x double> %25, %49 %77 = fadd <4 x double> %37, %61 %78 = fadd <4 x double> %62, %64 %79 = fadd <4 x double> %75, %77 %80 = fadd <4 x double> %78, %79 store <4 x double> %80, ptr %buf.0, align 8, !alias.scope !4558, !noalias !4565 %81 = fsub <4 x double> %78, %79 store <4 x double> %81, ptr %3, align 8, !alias.scope !4558, !noalias !4565 %82 = fsub <4 x double> %63, %71 %83 = fsub <4 x double> %76, %74 %84 = bitcast <4 x double> %83 to <4 x i64> %85 = xor <4 x i64> %84, %86 = bitcast <4 x i64> %85 to <4 x double> %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fadd <4 x double> %83, %87 %89 = fmul <4 x double> %88, %90 = fadd <4 x double> %82, %89 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !4558, !noalias !4565 %91 = fsub <4 x double> %82, %89 store <4 x double> %91, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !4558, !noalias !4565 %92 = fsub <4 x double> %62, %64 %93 = fsub <4 x double> %75, %77 %94 = bitcast <4 x double> %93 to <4 x i64> %95 = fadd <4 x double> %63, %71 %96 = fadd <4 x double> %76, %74 %97 = xor <4 x i64> %94, %98 = bitcast <4 x i64> %97 to <4 x double> %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fsub <4 x double> %92, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !4558, !noalias !4565 %101 = fadd <4 x double> %92, %99 store <4 x double> %101, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !4558, !noalias !4565 %102 = bitcast <4 x double> %96 to <4 x i64> %103 = xor <4 x i64> %102, %104 = bitcast <4 x i64> %103 to <4 x double> %105 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> %106 = fadd <4 x double> %96, %105 %107 = fmul <4 x double> %106, %108 = fsub <4 x double> %95, %107 store <4 x double> %108, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !4558, !noalias !4565 %109 = fadd <4 x double> %95, %107 store <4 x double> %109, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !4558, !noalias !4565 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4549 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h998a9c4383612dabE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h980c22c62b823cb5E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h99b3396de48c9f08E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4566 store i64 32, ptr %n.i.i, align 8, !noalias !4566 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4566 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4566 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4566 store ptr null, ptr %_16.i.i, align 8, !noalias !4566 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4566 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4566 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4566 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4566 store ptr null, ptr %_24.i.i, align 8, !noalias !4566 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4566 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4566 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4566 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4566 store ptr null, ptr %_32.i.i, align 8, !noalias !4566 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4566 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4566 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4566 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h956c4f6772f749bbE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4566 store ptr null, ptr %_40.i.i, align 8, !noalias !4566 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h956c4f6772f749bbE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4566 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !4571 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %6, align 8, !noalias !4571 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %5, align 8, !noalias !4571 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %7, align 8, !noalias !4571 %8 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = fsub <4 x double> %8, %10 %19 = fadd <4 x double> %9, %15 store <4 x double> %16, ptr %scratch.0, align 8, !noalias !4571 store <4 x double> %17, ptr %3, align 8, !noalias !4571 store <4 x double> %18, ptr %2, align 8, !noalias !4571 store <4 x double> %19, ptr %4, align 8, !noalias !4571 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4571 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4571 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4571 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4571 %20 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %21 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %22 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %23 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = fsub <4 x double> %20, %22 %31 = fadd <4 x double> %21, %27 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4571 store <4 x double> %29, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4571 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4571 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4571 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_73.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4571 %_74.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4571 %_75.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4571 %_76.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4571 %32 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %33 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %34 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %35 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %36 = bitcast <4 x double> %35 to <4 x i64> %37 = xor <4 x i64> %36, %38 = bitcast <4 x i64> %37 to <4 x double> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = fadd <4 x double> %32, %34 %41 = fsub <4 x double> %33, %39 %42 = fsub <4 x double> %32, %34 %43 = fadd <4 x double> %33, %39 store <4 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4571 store <4 x double> %41, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4571 store <4 x double> %42, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4571 store <4 x double> %43, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4571 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_73.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4571 %_74.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4571 %_75.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4571 %_76.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4571 %44 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %45 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %46 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %47 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %48 = bitcast <4 x double> %47 to <4 x i64> %49 = xor <4 x i64> %48, %50 = bitcast <4 x i64> %49 to <4 x double> %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = fadd <4 x double> %44, %46 %53 = fsub <4 x double> %45, %51 %54 = fsub <4 x double> %44, %46 %55 = fadd <4 x double> %45, %51 store <4 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4571 store <4 x double> %53, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4571 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4571 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4571 tail call void @llvm.experimental.noalias.scope.decl(metadata !4575) tail call void @llvm.experimental.noalias.scope.decl(metadata !4578) %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %58 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %59 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %60 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %61 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %58, align 8, !alias.scope !4578, !noalias !4580 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %57, align 8, !alias.scope !4578, !noalias !4580 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %59, align 8, !alias.scope !4578, !noalias !4580 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %56, align 8, !alias.scope !4578, !noalias !4580 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %61, align 8, !alias.scope !4578, !noalias !4580 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %60, align 8, !alias.scope !4578, !noalias !4580 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %62, align 8, !alias.scope !4578, !noalias !4580 %63 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %64 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %65, %67 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %71, %73 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = shufflevector <4 x double> %40, <4 x double> %41, <4 x i32> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %83, %85 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = shufflevector <4 x double> %40, <4 x double> %41, <4 x i32> %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %89, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = shufflevector <4 x double> %52, <4 x double> %53, <4 x i32> %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %95, %97 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %52, <4 x double> %53, <4 x i32> %101 = shufflevector <4 x double> %100, <4 x double> poison, <4 x i32> %102 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %103 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %101, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %100, <4 x double> %104) #23 %106 = fadd <4 x double> %63, %87 %107 = fsub <4 x double> %63, %87 %108 = fadd <4 x double> %75, %99 %109 = fsub <4 x double> %75, %99 %110 = bitcast <4 x double> %109 to <4 x i64> %111 = fsub <4 x double> %81, %105 %112 = bitcast <4 x double> %111 to <4 x i64> %113 = xor <4 x i64> %110, %114 = bitcast <4 x i64> %113 to <4 x double> %115 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %116 = xor <4 x i64> %112, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %69, %93 %120 = fsub <4 x double> %69, %93 %121 = fadd <4 x double> %81, %105 %122 = fadd <4 x double> %106, %108 %123 = fadd <4 x double> %119, %121 %124 = fadd <4 x double> %122, %123 store <4 x double> %124, ptr %buf.0, align 8, !alias.scope !4575, !noalias !4582 %125 = fsub <4 x double> %122, %123 store <4 x double> %125, ptr %5, align 8, !alias.scope !4575, !noalias !4582 %126 = fsub <4 x double> %107, %115 %127 = fsub <4 x double> %120, %118 %128 = bitcast <4 x double> %127 to <4 x i64> %129 = xor <4 x i64> %128, %130 = bitcast <4 x i64> %129 to <4 x double> %131 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> %132 = fadd <4 x double> %127, %131 %133 = fmul <4 x double> %132, %134 = fadd <4 x double> %126, %133 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4575, !noalias !4582 %135 = fsub <4 x double> %126, %133 store <4 x double> %135, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !4575, !noalias !4582 %136 = fsub <4 x double> %106, %108 %137 = fsub <4 x double> %119, %121 %138 = bitcast <4 x double> %137 to <4 x i64> %139 = fadd <4 x double> %107, %115 %140 = fadd <4 x double> %120, %118 %141 = xor <4 x i64> %138, %142 = bitcast <4 x i64> %141 to <4 x double> %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = fsub <4 x double> %136, %143 store <4 x double> %144, ptr %6, align 8, !alias.scope !4575, !noalias !4582 %145 = fadd <4 x double> %136, %143 store <4 x double> %145, ptr %7, align 8, !alias.scope !4575, !noalias !4582 %146 = bitcast <4 x double> %140 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fadd <4 x double> %140, %149 %151 = fmul <4 x double> %150, %152 = fsub <4 x double> %139, %151 store <4 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4575, !noalias !4582 %153 = fadd <4 x double> %139, %151 store <4 x double> %153, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !4575, !noalias !4582 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %w4.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %w5.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %w6.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %w7.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4578, !noalias !4580 %154 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %155 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %156 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %156, %158 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %155, <4 x double> %159) #23 %161 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %162, %164 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %168, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = shufflevector <4 x double> %42, <4 x double> %43, <4 x i32> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %174, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = shufflevector <4 x double> %42, <4 x double> %43, <4 x i32> %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %180, %182 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = shufflevector <4 x double> %54, <4 x double> %55, <4 x i32> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %186, %188 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = shufflevector <4 x double> %54, <4 x double> %55, <4 x i32> %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %192, %194 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = fadd <4 x double> %154, %178 %198 = fsub <4 x double> %154, %178 %199 = fadd <4 x double> %166, %190 %200 = fsub <4 x double> %166, %190 %201 = bitcast <4 x double> %200 to <4 x i64> %202 = fsub <4 x double> %172, %196 %203 = bitcast <4 x double> %202 to <4 x i64> %204 = xor <4 x i64> %201, %205 = bitcast <4 x i64> %204 to <4 x double> %206 = shufflevector <4 x double> %205, <4 x double> poison, <4 x i32> %207 = xor <4 x i64> %203, %208 = bitcast <4 x i64> %207 to <4 x double> %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = fadd <4 x double> %160, %184 %211 = fsub <4 x double> %160, %184 %212 = fadd <4 x double> %172, %196 %213 = fadd <4 x double> %197, %199 %214 = fadd <4 x double> %210, %212 %215 = fadd <4 x double> %213, %214 store <4 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4575, !noalias !4582 %216 = fsub <4 x double> %213, %214 store <4 x double> %216, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !4575, !noalias !4582 %217 = fsub <4 x double> %198, %206 %218 = fsub <4 x double> %211, %209 %219 = bitcast <4 x double> %218 to <4 x i64> %220 = xor <4 x i64> %219, %221 = bitcast <4 x i64> %220 to <4 x double> %222 = shufflevector <4 x double> %221, <4 x double> poison, <4 x i32> %223 = fadd <4 x double> %218, %222 %224 = fmul <4 x double> %223, %225 = fadd <4 x double> %217, %224 store <4 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4575, !noalias !4582 %226 = fsub <4 x double> %217, %224 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !4575, !noalias !4582 %227 = fsub <4 x double> %197, %199 %228 = fsub <4 x double> %210, %212 %229 = bitcast <4 x double> %228 to <4 x i64> %230 = fadd <4 x double> %198, %206 %231 = fadd <4 x double> %211, %209 %232 = xor <4 x i64> %229, %233 = bitcast <4 x i64> %232 to <4 x double> %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = fsub <4 x double> %227, %234 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4575, !noalias !4582 %236 = fadd <4 x double> %227, %234 store <4 x double> %236, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !4575, !noalias !4582 %237 = bitcast <4 x double> %231 to <4 x i64> %238 = xor <4 x i64> %237, %239 = bitcast <4 x i64> %238 to <4 x double> %240 = shufflevector <4 x double> %239, <4 x double> poison, <4 x i32> %241 = fadd <4 x double> %231, %240 %242 = fmul <4 x double> %241, %243 = fsub <4 x double> %230, %242 store <4 x double> %243, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4575, !noalias !4582 %244 = fadd <4 x double> %230, %242 store <4 x double> %244, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !4575, !noalias !4582 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4566 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9ab75efb3ac8499dE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4583 store i64 64, ptr %n.i.i, align 8, !noalias !4583 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4583 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4583 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4583 store ptr null, ptr %_16.i.i, align 8, !noalias !4583 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4583 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4583 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4583 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4583 store ptr null, ptr %_24.i.i, align 8, !noalias !4583 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4583 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4583 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4583 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4583 store ptr null, ptr %_32.i.i, align 8, !noalias !4583 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4583 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4583 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4583 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h21941d2012c615e3E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4583 store ptr null, ptr %_40.i.i, align 8, !noalias !4583 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h21941d2012c615e3E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4583 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %_51.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !4588 %4 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_51.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4588 %6 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.i.sroa.0.0.copyload.1.i %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_51.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4588 %8 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.i.sroa.0.0.copyload.2.i %9 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.i.sroa.0.0.copyload.2.i %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_51.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4588 %10 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.i.sroa.0.0.copyload.3.i %11 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.i.sroa.0.0.copyload.3.i %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_51.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !4588 %12 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.4.i, %_52.i.i.i.i.sroa.0.0.copyload.4.i %13 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.4.i, %_52.i.i.i.i.sroa.0.0.copyload.4.i %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_51.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !4588 %14 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.5.i, %_52.i.i.i.i.sroa.0.0.copyload.5.i %15 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.5.i, %_52.i.i.i.i.sroa.0.0.copyload.5.i %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_51.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !4588 %16 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.6.i, %_52.i.i.i.i.sroa.0.0.copyload.6.i %17 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.6.i, %_52.i.i.i.i.sroa.0.0.copyload.6.i %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_51.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !4588 %18 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.7.i, %_52.i.i.i.i.sroa.0.0.copyload.7.i %19 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.7.i, %_52.i.i.i.i.sroa.0.0.copyload.7.i %_3.i.i.i.i.i.i.i.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %_3.i2.i.i.i.i.i.i.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %_3.i.i.i.i.i.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %_3.i.i.i.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %_51.i.i.i.i.sroa.0.0.copyload.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.8.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.8.i = load <4 x double>, ptr %_3.i.i.i.i.8.i, align 8, !noalias !4588 %20 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.8.i, %_52.i.i.i.i.sroa.0.0.copyload.8.i %21 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.8.i, %_52.i.i.i.i.sroa.0.0.copyload.8.i %_3.i.i.i.i.i.i.i.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i2.i.i.i.i.i.i.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_51.i.i.i.i.sroa.0.0.copyload.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.9.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.9.i = load <4 x double>, ptr %_3.i.i.i.i.9.i, align 8, !noalias !4588 %22 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.9.i, %_52.i.i.i.i.sroa.0.0.copyload.9.i %23 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.9.i, %_52.i.i.i.i.sroa.0.0.copyload.9.i %_3.i.i.i.i.i.i.i.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i2.i.i.i.i.i.i.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 26 %_3.i.i.i.i.i.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_51.i.i.i.i.sroa.0.0.copyload.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.10.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.10.i = load <4 x double>, ptr %_3.i.i.i.i.10.i, align 8, !noalias !4588 %24 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.10.i, %_52.i.i.i.i.sroa.0.0.copyload.10.i %25 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.10.i, %_52.i.i.i.i.sroa.0.0.copyload.10.i %_3.i.i.i.i.i.i.i.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i2.i.i.i.i.i.i.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_51.i.i.i.i.sroa.0.0.copyload.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.11.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.11.i = load <4 x double>, ptr %_3.i.i.i.i.11.i, align 8, !noalias !4588 %26 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.11.i, %_52.i.i.i.i.sroa.0.0.copyload.11.i %27 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.11.i, %_52.i.i.i.i.sroa.0.0.copyload.11.i %_3.i.i.i.i.i.i.i.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i2.i.i.i.i.i.i.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %_3.i.i.i.i.i.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_51.i.i.i.i.sroa.0.0.copyload.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.12.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.12.i = load <4 x double>, ptr %_3.i.i.i.i.12.i, align 8, !noalias !4588 %28 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.12.i, %_52.i.i.i.i.sroa.0.0.copyload.12.i %29 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.12.i, %_52.i.i.i.i.sroa.0.0.copyload.12.i %_3.i.i.i.i.i.i.i.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i2.i.i.i.i.i.i.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_51.i.i.i.i.sroa.0.0.copyload.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.13.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.13.i = load <4 x double>, ptr %_3.i.i.i.i.13.i, align 8, !noalias !4588 %30 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.13.i, %_52.i.i.i.i.sroa.0.0.copyload.13.i %31 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.13.i, %_52.i.i.i.i.sroa.0.0.copyload.13.i %_3.i.i.i.i.i.i.i.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i2.i.i.i.i.i.i.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 30 %_3.i.i.i.i.i.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_51.i.i.i.i.sroa.0.0.copyload.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.14.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.14.i = load <4 x double>, ptr %_3.i.i.i.i.14.i, align 8, !noalias !4588 %32 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.14.i, %_52.i.i.i.i.sroa.0.0.copyload.14.i %33 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.14.i, %_52.i.i.i.i.sroa.0.0.copyload.14.i %_3.i.i.i.i.i.i.i.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i2.i.i.i.i.i.i.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_51.i.i.i.i.sroa.0.0.copyload.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.15.i, align 8, !noalias !4588 %_52.i.i.i.i.sroa.0.0.copyload.15.i = load <4 x double>, ptr %_3.i.i.i.i.15.i, align 8, !noalias !4588 %34 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.15.i, %_52.i.i.i.i.sroa.0.0.copyload.15.i %35 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.15.i, %_52.i.i.i.i.sroa.0.0.copyload.15.i %36 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %36, align 8, !noalias !4583, !noundef !3 %37 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %37, align 8, !noalias !4583, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %38 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %39 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %40 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> zeroinitializer %41 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %41, %40 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %20, <4 x double> %42) #23 %44 = fadd <4 x double> %4, %43 %45 = fsub <4 x double> %4, %43 %46 = shufflevector <4 x double> %22, <4 x double> poison, <4 x i32> %47 = fmul <4 x double> %46, %40 %48 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %22, <4 x double> %47) #23 %49 = fadd <4 x double> %6, %48 %50 = fsub <4 x double> %6, %48 %51 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %52 = fmul <4 x double> %51, %40 %53 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %24, <4 x double> %52) #23 %54 = fadd <4 x double> %8, %53 %55 = fsub <4 x double> %8, %53 %56 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %57 = fmul <4 x double> %56, %40 %58 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %26, <4 x double> %57) #23 %59 = fadd <4 x double> %10, %58 %60 = fsub <4 x double> %10, %58 %61 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %40 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %28, <4 x double> %62) #23 %64 = fadd <4 x double> %12, %63 %65 = fsub <4 x double> %12, %63 %66 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %40 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %30, <4 x double> %67) #23 %69 = fadd <4 x double> %14, %68 %70 = fsub <4 x double> %14, %68 %71 = shufflevector <4 x double> %32, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %71, %40 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %32, <4 x double> %72) #23 %74 = fadd <4 x double> %16, %73 %75 = fsub <4 x double> %16, %73 %76 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %76, %40 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %34, <4 x double> %77) #23 %79 = fadd <4 x double> %18, %78 %80 = fsub <4 x double> %18, %78 %81 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.us.i.1.i = load double, ptr %81, align 8, !noalias !4583, !noundef !3 %82 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %82, align 8, !noalias !4583, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %83 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %84 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %85 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> zeroinitializer %86 = shufflevector <4 x double> %21, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %86, %85 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %21, <4 x double> %87) #23 %89 = fadd <4 x double> %5, %88 %90 = fsub <4 x double> %5, %88 %91 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %85 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %23, <4 x double> %92) #23 %94 = fadd <4 x double> %7, %93 %95 = fsub <4 x double> %7, %93 %96 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %85 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %25, <4 x double> %97) #23 %99 = fadd <4 x double> %9, %98 %100 = fsub <4 x double> %9, %98 %101 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> %102 = fmul <4 x double> %101, %85 %103 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %27, <4 x double> %102) #23 %104 = fadd <4 x double> %11, %103 %105 = fsub <4 x double> %11, %103 %106 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %107 = fmul <4 x double> %106, %85 %108 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %29, <4 x double> %107) #23 %109 = fadd <4 x double> %13, %108 %110 = fsub <4 x double> %13, %108 %111 = shufflevector <4 x double> %31, <4 x double> poison, <4 x i32> %112 = fmul <4 x double> %111, %85 %113 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %31, <4 x double> %112) #23 %114 = fadd <4 x double> %15, %113 %115 = fsub <4 x double> %15, %113 %116 = shufflevector <4 x double> %33, <4 x double> poison, <4 x i32> %117 = fmul <4 x double> %116, %85 %118 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %33, <4 x double> %117) #23 %119 = fadd <4 x double> %17, %118 %120 = fsub <4 x double> %17, %118 %121 = shufflevector <4 x double> %35, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %121, %85 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %35, <4 x double> %122) #23 %124 = fadd <4 x double> %19, %123 %125 = fsub <4 x double> %19, %123 %126 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %40, %126 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %64, <4 x double> %127) #23 %129 = fadd <4 x double> %44, %128 store <4 x double> %129, ptr %scratch.0, align 8, !alias.scope !4595, !noalias !4598 %130 = fsub <4 x double> %44, %128 store <4 x double> %130, ptr %2, align 8, !alias.scope !4595, !noalias !4598 %131 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %132 = fmul <4 x double> %40, %131 %133 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %69, <4 x double> %132) #23 %134 = fadd <4 x double> %49, %133 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4595, !noalias !4598 %135 = fsub <4 x double> %49, %133 store <4 x double> %135, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !4595, !noalias !4598 %136 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %40, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %74, <4 x double> %137) #23 %139 = fadd <4 x double> %54, %138 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4595, !noalias !4598 %140 = fsub <4 x double> %54, %138 store <4 x double> %140, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !4595, !noalias !4598 %141 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %142 = fmul <4 x double> %40, %141 %143 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %79, <4 x double> %142) #23 %144 = fadd <4 x double> %59, %143 store <4 x double> %144, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4595, !noalias !4598 %145 = fsub <4 x double> %59, %143 store <4 x double> %145, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !4595, !noalias !4598 %146 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.us.i54.1.i = load double, ptr %146, align 8, !noalias !4583, !noundef !3 %147 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.us.i55.1.i = load double, ptr %147, align 8, !noalias !4583, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i56.1.i = insertelement <2 x double> poison, double %w1.0.us.i54.1.i, i64 0 %148 = insertelement <4 x double> poison, double %w1.1.us.i55.1.i, i64 0 %149 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i56.1.i, <2 x double> poison, <4 x i32> zeroinitializer %150 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %151 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> %152 = fmul <4 x double> %151, %150 %153 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %109, <4 x double> %152) #23 %154 = fadd <4 x double> %89, %153 store <4 x double> %154, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !alias.scope !4595, !noalias !4598 %155 = fsub <4 x double> %89, %153 store <4 x double> %155, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !alias.scope !4595, !noalias !4598 %156 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> %157 = fmul <4 x double> %156, %150 %158 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %114, <4 x double> %157) #23 %159 = fadd <4 x double> %94, %158 store <4 x double> %159, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !alias.scope !4595, !noalias !4598 %160 = fsub <4 x double> %94, %158 store <4 x double> %160, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !alias.scope !4595, !noalias !4598 %161 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> %162 = fmul <4 x double> %161, %150 %163 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %119, <4 x double> %162) #23 %164 = fadd <4 x double> %99, %163 store <4 x double> %164, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !alias.scope !4595, !noalias !4598 %165 = fsub <4 x double> %99, %163 store <4 x double> %165, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !alias.scope !4595, !noalias !4598 %166 = shufflevector <4 x double> %124, <4 x double> poison, <4 x i32> %167 = fmul <4 x double> %166, %150 %168 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %124, <4 x double> %167) #23 %169 = fadd <4 x double> %104, %168 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !alias.scope !4595, !noalias !4598 %170 = fsub <4 x double> %104, %168 store <4 x double> %170, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !alias.scope !4595, !noalias !4598 %171 = shufflevector <4 x double> %65, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %85 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %65, <4 x double> %172) #23 %174 = fadd <4 x double> %45, %173 store <4 x double> %174, ptr %_3.i.i.i.i.i.i.i.i.8.i, align 8, !alias.scope !4595, !noalias !4598 %175 = fsub <4 x double> %45, %173 store <4 x double> %175, ptr %_3.i2.i.i.i.i.i.i.i.8.i, align 8, !alias.scope !4595, !noalias !4598 %176 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %176, %85 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %70, <4 x double> %177) #23 %179 = fadd <4 x double> %50, %178 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.9.i, align 8, !alias.scope !4595, !noalias !4598 %180 = fsub <4 x double> %50, %178 store <4 x double> %180, ptr %_3.i2.i.i.i.i.i.i.i.9.i, align 8, !alias.scope !4595, !noalias !4598 %181 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %181, %85 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %75, <4 x double> %182) #23 %184 = fadd <4 x double> %55, %183 store <4 x double> %184, ptr %_3.i.i.i.i.i.i.i.i.10.i, align 8, !alias.scope !4595, !noalias !4598 %185 = fsub <4 x double> %55, %183 store <4 x double> %185, ptr %_3.i2.i.i.i.i.i.i.i.10.i, align 8, !alias.scope !4595, !noalias !4598 %186 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %85 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %80, <4 x double> %187) #23 %189 = fadd <4 x double> %60, %188 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.i.i.11.i, align 8, !alias.scope !4595, !noalias !4598 %190 = fsub <4 x double> %60, %188 store <4 x double> %190, ptr %_3.i2.i.i.i.i.i.i.i.11.i, align 8, !alias.scope !4595, !noalias !4598 %191 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.us.i54.3.i = load double, ptr %191, align 8, !noalias !4583, !noundef !3 %192 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.us.i55.3.i = load double, ptr %192, align 8, !noalias !4583, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i56.3.i = insertelement <2 x double> poison, double %w1.0.us.i54.3.i, i64 0 %193 = insertelement <4 x double> poison, double %w1.1.us.i55.3.i, i64 0 %194 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i56.3.i, <2 x double> poison, <4 x i32> zeroinitializer %195 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> zeroinitializer %196 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %196, %195 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %110, <4 x double> %197) #23 %199 = fadd <4 x double> %90, %198 store <4 x double> %199, ptr %_3.i.i.i.i.i.i.i.i.12.i, align 8, !alias.scope !4595, !noalias !4598 %200 = fsub <4 x double> %90, %198 store <4 x double> %200, ptr %_3.i2.i.i.i.i.i.i.i.12.i, align 8, !alias.scope !4595, !noalias !4598 %201 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %201, %195 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %115, <4 x double> %202) #23 %204 = fadd <4 x double> %95, %203 store <4 x double> %204, ptr %_3.i.i.i.i.i.i.i.i.13.i, align 8, !alias.scope !4595, !noalias !4598 %205 = fsub <4 x double> %95, %203 store <4 x double> %205, ptr %_3.i2.i.i.i.i.i.i.i.13.i, align 8, !alias.scope !4595, !noalias !4598 %206 = shufflevector <4 x double> %120, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %206, %195 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %120, <4 x double> %207) #23 %209 = fadd <4 x double> %100, %208 store <4 x double> %209, ptr %_3.i.i.i.i.i.i.i.i.14.i, align 8, !alias.scope !4595, !noalias !4598 %210 = fsub <4 x double> %100, %208 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.14.i, align 8, !alias.scope !4595, !noalias !4598 %211 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %211, %195 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %125, <4 x double> %212) #23 %214 = fadd <4 x double> %105, %213 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.15.i, align 8, !alias.scope !4595, !noalias !4598 %215 = fsub <4 x double> %105, %213 store <4 x double> %215, ptr %_3.i2.i.i.i.i.i.i.i.15.i, align 8, !alias.scope !4595, !noalias !4598 tail call void @llvm.experimental.noalias.scope.decl(metadata !4601) tail call void @llvm.experimental.noalias.scope.decl(metadata !4604) %216 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %40, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %139, <4 x double> %217) #23 %219 = fadd <4 x double> %129, %218 store <4 x double> %219, ptr %buf.0, align 8, !alias.scope !4601, !noalias !4606 %220 = fsub <4 x double> %129, %218 store <4 x double> %220, ptr %3, align 8, !alias.scope !4601, !noalias !4606 %221 = shufflevector <4 x double> %144, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %40, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %39, <4 x double> %144, <4 x double> %222) #23 %224 = fadd <4 x double> %134, %223 store <4 x double> %224, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !4601, !noalias !4606 %225 = fsub <4 x double> %134, %223 store <4 x double> %225, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !4601, !noalias !4606 %226 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i89.1.i = load double, ptr %226, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %227 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i90.1.i = load double, ptr %227, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i91.1.i = insertelement <2 x double> poison, double %w1.0.us.i89.1.i, i64 0 %228 = insertelement <4 x double> poison, double %w1.1.us.i90.1.i, i64 0 %229 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i91.1.i, <2 x double> poison, <4 x i32> zeroinitializer %230 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> zeroinitializer %231 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %231, %230 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %229, <4 x double> %164, <4 x double> %232) #23 %234 = fadd <4 x double> %154, %233 store <4 x double> %234, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !4601, !noalias !4606 %235 = fsub <4 x double> %154, %233 store <4 x double> %235, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !4601, !noalias !4606 %236 = shufflevector <4 x double> %169, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %236, %230 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %229, <4 x double> %169, <4 x double> %237) #23 %239 = fadd <4 x double> %159, %238 store <4 x double> %239, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !4601, !noalias !4606 %240 = fsub <4 x double> %159, %238 store <4 x double> %240, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !4601, !noalias !4606 %241 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %242 = fmul <4 x double> %150, %241 %243 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %184, <4 x double> %242) #23 %244 = fadd <4 x double> %174, %243 store <4 x double> %244, ptr %_3.i.i.i.i.i.i.4.i, align 8, !alias.scope !4601, !noalias !4606 %245 = fsub <4 x double> %174, %243 store <4 x double> %245, ptr %_3.i.i.i.i.4.i, align 8, !alias.scope !4601, !noalias !4606 %246 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %247 = fmul <4 x double> %150, %246 %248 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %189, <4 x double> %247) #23 %249 = fadd <4 x double> %179, %248 store <4 x double> %249, ptr %_3.i.i.i.i.i.i.5.i, align 8, !alias.scope !4601, !noalias !4606 %250 = fsub <4 x double> %179, %248 store <4 x double> %250, ptr %_3.i.i.i.i.5.i, align 8, !alias.scope !4601, !noalias !4606 %251 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.us.i89.3.i = load double, ptr %251, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %252 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.us.i90.3.i = load double, ptr %252, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i91.3.i = insertelement <2 x double> poison, double %w1.0.us.i89.3.i, i64 0 %253 = insertelement <4 x double> poison, double %w1.1.us.i90.3.i, i64 0 %254 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i91.3.i, <2 x double> poison, <4 x i32> zeroinitializer %255 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> zeroinitializer %256 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %256, %255 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %254, <4 x double> %209, <4 x double> %257) #23 %259 = fadd <4 x double> %199, %258 store <4 x double> %259, ptr %_3.i.i.i.i.i.i.6.i, align 8, !alias.scope !4601, !noalias !4606 %260 = fsub <4 x double> %199, %258 store <4 x double> %260, ptr %_3.i.i.i.i.6.i, align 8, !alias.scope !4601, !noalias !4606 %261 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %262 = fmul <4 x double> %261, %255 %263 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %254, <4 x double> %214, <4 x double> %262) #23 %264 = fadd <4 x double> %204, %263 store <4 x double> %264, ptr %_3.i.i.i.i.i.i.7.i, align 8, !alias.scope !4601, !noalias !4606 %265 = fsub <4 x double> %204, %263 store <4 x double> %265, ptr %_3.i.i.i.i.7.i, align 8, !alias.scope !4601, !noalias !4606 %266 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> %267 = fmul <4 x double> %85, %266 %268 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %140, <4 x double> %267) #23 %269 = fadd <4 x double> %130, %268 store <4 x double> %269, ptr %_3.i.i.i.i.i.i.8.i, align 8, !alias.scope !4601, !noalias !4606 %270 = fsub <4 x double> %130, %268 store <4 x double> %270, ptr %_3.i.i.i.i.8.i, align 8, !alias.scope !4601, !noalias !4606 %271 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> %272 = fmul <4 x double> %85, %271 %273 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %145, <4 x double> %272) #23 %274 = fadd <4 x double> %135, %273 store <4 x double> %274, ptr %_3.i.i.i.i.i.i.9.i, align 8, !alias.scope !4601, !noalias !4606 %275 = fsub <4 x double> %135, %273 store <4 x double> %275, ptr %_3.i.i.i.i.9.i, align 8, !alias.scope !4601, !noalias !4606 %276 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1 %w1.0.us.i89.5.i = load double, ptr %276, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %277 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1, i32 1 %w1.1.us.i90.5.i = load double, ptr %277, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i91.5.i = insertelement <2 x double> poison, double %w1.0.us.i89.5.i, i64 0 %278 = insertelement <4 x double> poison, double %w1.1.us.i90.5.i, i64 0 %279 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i91.5.i, <2 x double> poison, <4 x i32> zeroinitializer %280 = shufflevector <4 x double> %278, <4 x double> poison, <4 x i32> zeroinitializer %281 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %282 = fmul <4 x double> %281, %280 %283 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %279, <4 x double> %165, <4 x double> %282) #23 %284 = fadd <4 x double> %155, %283 store <4 x double> %284, ptr %_3.i.i.i.i.i.i.10.i, align 8, !alias.scope !4601, !noalias !4606 %285 = fsub <4 x double> %155, %283 store <4 x double> %285, ptr %_3.i.i.i.i.10.i, align 8, !alias.scope !4601, !noalias !4606 %286 = shufflevector <4 x double> %170, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %286, %280 %288 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %279, <4 x double> %170, <4 x double> %287) #23 %289 = fadd <4 x double> %160, %288 store <4 x double> %289, ptr %_3.i.i.i.i.i.i.11.i, align 8, !alias.scope !4601, !noalias !4606 %290 = fsub <4 x double> %160, %288 store <4 x double> %290, ptr %_3.i.i.i.i.11.i, align 8, !alias.scope !4601, !noalias !4606 %291 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %292 = fmul <4 x double> %291, %195 %293 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %185, <4 x double> %292) #23 %294 = fadd <4 x double> %175, %293 store <4 x double> %294, ptr %_3.i.i.i.i.i.i.12.i, align 8, !alias.scope !4601, !noalias !4606 %295 = fsub <4 x double> %175, %293 store <4 x double> %295, ptr %_3.i.i.i.i.12.i, align 8, !alias.scope !4601, !noalias !4606 %296 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %297 = fmul <4 x double> %296, %195 %298 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %190, <4 x double> %297) #23 %299 = fadd <4 x double> %180, %298 store <4 x double> %299, ptr %_3.i.i.i.i.i.i.13.i, align 8, !alias.scope !4601, !noalias !4606 %300 = fsub <4 x double> %180, %298 store <4 x double> %300, ptr %_3.i.i.i.i.13.i, align 8, !alias.scope !4601, !noalias !4606 %301 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.us.i89.7.i = load double, ptr %301, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %302 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.us.i90.7.i = load double, ptr %302, align 8, !alias.scope !4604, !noalias !4608, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i91.7.i = insertelement <2 x double> poison, double %w1.0.us.i89.7.i, i64 0 %303 = insertelement <4 x double> poison, double %w1.1.us.i90.7.i, i64 0 %304 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i91.7.i, <2 x double> poison, <4 x i32> zeroinitializer %305 = shufflevector <4 x double> %303, <4 x double> poison, <4 x i32> zeroinitializer %306 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %307 = fmul <4 x double> %306, %305 %308 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %304, <4 x double> %210, <4 x double> %307) #23 %309 = fadd <4 x double> %200, %308 store <4 x double> %309, ptr %_3.i.i.i.i.i.i.14.i, align 8, !alias.scope !4601, !noalias !4606 %310 = fsub <4 x double> %200, %308 store <4 x double> %310, ptr %_3.i.i.i.i.14.i, align 8, !alias.scope !4601, !noalias !4606 %311 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %312 = fmul <4 x double> %311, %305 %313 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %304, <4 x double> %215, <4 x double> %312) #23 %314 = fadd <4 x double> %205, %313 store <4 x double> %314, ptr %_3.i.i.i.i.i.i.15.i, align 8, !alias.scope !4601, !noalias !4606 %315 = fsub <4 x double> %205, %313 store <4 x double> %315, ptr %_3.i.i.i.i.15.i, align 8, !alias.scope !4601, !noalias !4606 tail call void @llvm.experimental.noalias.scope.decl(metadata !4609) tail call void @llvm.experimental.noalias.scope.decl(metadata !4612) tail call void @llvm.experimental.noalias.scope.decl(metadata !4614) br label %bb17.us.i115.i bb17.us.i115.i: ; preds = %bb17.us.i115.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h21941d2012c615e3E.exit.i" %iter.sroa.38.0211.us.i116.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h21941d2012c615e3E.exit.i" ], [ %339, %bb17.us.i115.i ] %data.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0211.us.i116.i %start1.i.i.i.i.us.i118.i = shl nuw i64 %iter.sroa.38.0211.us.i116.i, 1 %data.i.i.i.i.i.i.us.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i118.i %data.i5.i.i.i.i.i.i.i.us.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.38.0211.us.i116.i %316 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i118.i, i64 1 %w1.0.us.i121.i = load double, ptr %316, align 8, !alias.scope !4614, !noalias !4616, !noundef !3 %317 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i118.i, i64 1, i32 1 %w1.1.us.i122.i = load double, ptr %317, align 8, !alias.scope !4614, !noalias !4616, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i123.i = insertelement <2 x double> poison, double %w1.0.us.i121.i, i64 0 %318 = insertelement <4 x double> poison, double %w1.1.us.i122.i, i64 0 %319 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i119.i, i64 1 %320 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i123.i, <2 x double> poison, <4 x i32> zeroinitializer %321 = shufflevector <4 x double> %318, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i130.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i119.i, align 8, !alias.scope !4612, !noalias !4617 %_62.sroa.0.0.copyload.us.i131.i = load <4 x double>, ptr %319, align 8, !alias.scope !4612, !noalias !4617 %322 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i131.i, <4 x double> poison, <4 x i32> %323 = fmul <4 x double> %321, %322 %324 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %320, <4 x double> %_62.sroa.0.0.copyload.us.i131.i, <4 x double> %323) #23 %325 = fadd <4 x double> %a.sroa.0.0.copyload.us.i130.i, %324 store <4 x double> %325, ptr %data.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !4609, !noalias !4618 %326 = fsub <4 x double> %a.sroa.0.0.copyload.us.i130.i, %324 store <4 x double> %326, ptr %data.i5.i.i.i.i.i.i.i.us.i120.i, align 8, !alias.scope !4609, !noalias !4618 %327 = or disjoint i64 %iter.sroa.38.0211.us.i116.i, 1 %data.i.i.i.i.i.i.i.i.us.i117.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %327 %start1.i.i.i.i.us.i118.i.1 = shl nuw i64 %327, 1 %data.i.i.i.i.i.i.us.i119.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i118.i.1 %data.i5.i.i.i.i.i.i.i.us.i120.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %327 %328 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i118.i.1, i64 1 %w1.0.us.i121.i.1 = load double, ptr %328, align 8, !alias.scope !4614, !noalias !4616, !noundef !3 %329 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i118.i.1, i64 1, i32 1 %w1.1.us.i122.i.1 = load double, ptr %329, align 8, !alias.scope !4614, !noalias !4616, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i123.i.1 = insertelement <2 x double> poison, double %w1.0.us.i121.i.1, i64 0 %330 = insertelement <4 x double> poison, double %w1.1.us.i122.i.1, i64 0 %331 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i119.i.1, i64 1 %332 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i123.i.1, <2 x double> poison, <4 x i32> zeroinitializer %333 = shufflevector <4 x double> %330, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i130.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i119.i.1, align 8, !alias.scope !4612, !noalias !4617 %_62.sroa.0.0.copyload.us.i131.i.1 = load <4 x double>, ptr %331, align 8, !alias.scope !4612, !noalias !4617 %334 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i131.i.1, <4 x double> poison, <4 x i32> %335 = fmul <4 x double> %333, %334 %336 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %332, <4 x double> %_62.sroa.0.0.copyload.us.i131.i.1, <4 x double> %335) #23 %337 = fadd <4 x double> %a.sroa.0.0.copyload.us.i130.i.1, %336 store <4 x double> %337, ptr %data.i.i.i.i.i.i.i.i.us.i117.i.1, align 8, !alias.scope !4609, !noalias !4618 %338 = fsub <4 x double> %a.sroa.0.0.copyload.us.i130.i.1, %336 store <4 x double> %338, ptr %data.i5.i.i.i.i.i.i.i.us.i120.i.1, align 8, !alias.scope !4609, !noalias !4618 %339 = add nuw nsw i64 %iter.sroa.38.0211.us.i116.i, 2 %exitcond.not.i.1 = icmp eq i64 %339, 16 br i1 %exitcond.not.i.1, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit135.i, label %bb17.us.i115.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit135.i: ; preds = %bb17.us.i115.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4619) tail call void @llvm.experimental.noalias.scope.decl(metadata !4622) tail call void @llvm.experimental.noalias.scope.decl(metadata !4624) %340 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit135.i %iter.sroa.22.0123.i.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit135.i ], [ %352, %bb9.i.i ] %341 = or disjoint i64 %iter.sroa.22.0123.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %340, i64 %iter.sroa.22.0123.i.i %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4622, !noalias !4626 %342 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i, i64 1 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %342, align 8, !alias.scope !4622, !noalias !4626 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !4624, !noalias !4627 %343 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %344 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %345 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> %346 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %347 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %348 = fmul <4 x double> %347, %345 %349 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %346, <4 x double> %344, <4 x double> %348) #23 %350 = fadd <4 x double> %343, %349 store <4 x double> %350, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4619, !noalias !4628 %351 = fsub <4 x double> %343, %349 store <4 x double> %351, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4619, !noalias !4628 %352 = add nuw nsw i64 %iter.sroa.22.0123.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %341 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %341 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %341 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %340, i64 %341 %ab0.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !4622, !noalias !4626 %353 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %341, i64 1 %ab1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %353, align 8, !alias.scope !4622, !noalias !4626 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !4624, !noalias !4627 %354 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %355 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %356 = shufflevector <4 x double> %355, <4 x double> poison, <4 x i32> %357 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %358 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %359 = fmul <4 x double> %358, %356 %360 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %357, <4 x double> %355, <4 x double> %359) #23 %361 = fadd <4 x double> %354, %360 store <4 x double> %361, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !4619, !noalias !4628 %362 = fsub <4 x double> %354, %360 store <4 x double> %362, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !4619, !noalias !4628 %exitcond.not.i138.i.1 = icmp eq i64 %352, 16 br i1 %exitcond.not.i138.i.1, label %_ZN4pulp3x862V39vectorize6__impl17ha3f02a7c48d16568E.exit, label %bb9.i.i _ZN4pulp3x862V39vectorize6__impl17ha3f02a7c48d16568E.exit: ; preds = %bb9.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4583 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9c2b09ebfbfb2478E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4629 store i64 32, ptr %n.i, align 8, !noalias !4629 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4629 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4629 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4629 store ptr null, ptr %_16.i, align 8, !noalias !4629 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4629 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4629 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4629 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4629 store ptr null, ptr %_24.i, align 8, !noalias !4629 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4629 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4629 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4629 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4629 store ptr null, ptr %_32.i, align 8, !noalias !4629 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4629 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4629 store i64 %w.1, ptr %_34.i, align 8, !noalias !4629 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4629 store ptr null, ptr %_40.i, align 8, !noalias !4629 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4629 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %9 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %10 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %11 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %12 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %13 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %14 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %15 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %15, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %16 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %16, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %17 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %17, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %18 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %18, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %19 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %19, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %20 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %20, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %21 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %21, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %22 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %22, i32 8, <4 x i1> , <4 x double> poison), !noalias !4629 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %31 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17 %32 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %36 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %38 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %40 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21 %41 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %42 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %43 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23 %44 = fneg <4 x double> %wide.masked.gather1 %45 = fneg <4 x double> %wide.masked.gather3 %46 = fneg <4 x double> %wide.masked.gather5 %47 = fneg <4 x double> %wide.masked.gather7 %48 = fneg <4 x double> %wide.masked.gather9 %49 = fneg <4 x double> %wide.masked.gather11 %50 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4629 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %2, align 8, !noalias !4629 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %1, align 8, !noalias !4629 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %3, align 8, !noalias !4629 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %0, align 8, !noalias !4629 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %5, align 8, !noalias !4629 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %4, align 8, !noalias !4629 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %6, align 8, !noalias !4629 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %51 = fadd <4 x double> %strided.vec, %strided.vec25 %52 = fadd <4 x double> %strided.vec14, %strided.vec26 %53 = fsub <4 x double> %strided.vec, %strided.vec25 %54 = fsub <4 x double> %strided.vec14, %strided.vec26 %55 = fadd <4 x double> %strided.vec19, %strided.vec31 %56 = fadd <4 x double> %strided.vec20, %strided.vec32 %57 = fsub <4 x double> %strided.vec19, %strided.vec31 %58 = fsub <4 x double> %strided.vec20, %strided.vec32 %59 = fadd <4 x double> %strided.vec16, %strided.vec28 %60 = fadd <4 x double> %strided.vec17, %strided.vec29 %61 = fsub <4 x double> %strided.vec16, %strided.vec28 %62 = fsub <4 x double> %strided.vec17, %strided.vec29 %63 = fadd <4 x double> %strided.vec22, %strided.vec34 %64 = fadd <4 x double> %strided.vec23, %strided.vec35 %65 = fsub <4 x double> %strided.vec22, %strided.vec34 %66 = fsub <4 x double> %strided.vec23, %strided.vec35 %67 = fadd <4 x double> %51, %55 %68 = fadd <4 x double> %52, %56 %69 = fadd <4 x double> %53, %58 %70 = fsub <4 x double> %54, %57 %71 = fsub <4 x double> %51, %55 %72 = fsub <4 x double> %52, %56 %73 = fsub <4 x double> %53, %58 %74 = fadd <4 x double> %54, %57 %75 = fadd <4 x double> %59, %63 %76 = fadd <4 x double> %60, %64 %77 = fadd <4 x double> %61, %66 %78 = fsub <4 x double> %62, %65 %79 = fadd <4 x double> %78, %77 %80 = fsub <4 x double> %78, %77 %81 = fmul <4 x double> %79, %82 = fmul <4 x double> %80, %83 = fsub <4 x double> %59, %63 %84 = fsub <4 x double> %60, %64 %85 = fsub <4 x double> %61, %66 %86 = fadd <4 x double> %62, %65 %87 = fsub <4 x double> %85, %86 %88 = fadd <4 x double> %86, %85 %89 = fmul <4 x double> %87, %90 = fmul <4 x double> %88, %91 = fadd <4 x double> %67, %75 %92 = fadd <4 x double> %68, %76 %93 = extractelement <4 x double> %91, i64 0 store double %93, ptr %scratch.0, align 8, !noalias !4629 %94 = extractelement <4 x double> %91, i64 1 store double %94, ptr %7, align 8, !noalias !4629 %95 = extractelement <4 x double> %91, i64 2 store double %95, ptr %8, align 8, !noalias !4629 %96 = getelementptr inbounds i8, ptr %scratch.0, i64 8 %97 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8, i32 1 %98 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16, i32 1 %99 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24, i32 1 %100 = extractelement <4 x double> %92, i64 0 store double %100, ptr %96, align 8, !noalias !4629 %101 = extractelement <4 x double> %92, i64 1 store double %101, ptr %97, align 8, !noalias !4629 %102 = extractelement <4 x double> %92, i64 2 store double %102, ptr %98, align 8, !noalias !4629 %103 = fadd <4 x double> %69, %81 %104 = fadd <4 x double> %70, %82 %105 = fmul <4 x double> %104, %44 %106 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %103, <4 x double> %105) %107 = fmul <4 x double> %wide.masked.gather1, %103 %108 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %104, <4 x double> %107) %109 = extractelement <4 x double> %106, i64 0 store double %109, ptr %29, align 8, !noalias !4629 %110 = extractelement <4 x double> %106, i64 1 store double %110, ptr %30, align 8, !noalias !4629 %111 = extractelement <4 x double> %106, i64 2 store double %111, ptr %31, align 8, !noalias !4629 %112 = shufflevector <4 x double> %92, <4 x double> %106, <2 x i32> store <2 x double> %112, ptr %99, align 8, !noalias !4629 %113 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1, i32 1 %114 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9, i32 1 %115 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17, i32 1 %116 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25, i32 1 %117 = extractelement <4 x double> %108, i64 0 store double %117, ptr %113, align 8, !noalias !4629 %118 = extractelement <4 x double> %108, i64 1 store double %118, ptr %114, align 8, !noalias !4629 %119 = extractelement <4 x double> %108, i64 2 store double %119, ptr %115, align 8, !noalias !4629 %120 = fadd <4 x double> %71, %84 %121 = fsub <4 x double> %72, %83 %122 = fmul <4 x double> %121, %45 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %120, <4 x double> %122) %124 = fmul <4 x double> %wide.masked.gather3, %120 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %121, <4 x double> %124) %126 = extractelement <4 x double> %123, i64 0 store double %126, ptr %26, align 8, !noalias !4629 %127 = extractelement <4 x double> %123, i64 1 store double %127, ptr %27, align 8, !noalias !4629 %128 = extractelement <4 x double> %123, i64 2 store double %128, ptr %28, align 8, !noalias !4629 %129 = shufflevector <4 x double> %108, <4 x double> %123, <2 x i32> store <2 x double> %129, ptr %116, align 8, !noalias !4629 %130 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2, i32 1 %131 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10, i32 1 %132 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18, i32 1 %133 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26, i32 1 %134 = extractelement <4 x double> %125, i64 0 store double %134, ptr %130, align 8, !noalias !4629 %135 = extractelement <4 x double> %125, i64 1 store double %135, ptr %131, align 8, !noalias !4629 %136 = extractelement <4 x double> %125, i64 2 store double %136, ptr %132, align 8, !noalias !4629 %137 = fsub <4 x double> %73, %89 %138 = fsub <4 x double> %74, %90 %139 = fmul <4 x double> %138, %46 %140 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %137, <4 x double> %139) %141 = fmul <4 x double> %wide.masked.gather5, %137 %142 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %138, <4 x double> %141) %143 = extractelement <4 x double> %140, i64 0 store double %143, ptr %32, align 8, !noalias !4629 %144 = extractelement <4 x double> %140, i64 1 store double %144, ptr %33, align 8, !noalias !4629 %145 = extractelement <4 x double> %140, i64 2 store double %145, ptr %34, align 8, !noalias !4629 %146 = shufflevector <4 x double> %125, <4 x double> %140, <2 x i32> store <2 x double> %146, ptr %133, align 8, !noalias !4629 %147 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3, i32 1 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11, i32 1 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19, i32 1 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27, i32 1 %151 = extractelement <4 x double> %142, i64 0 store double %151, ptr %147, align 8, !noalias !4629 %152 = extractelement <4 x double> %142, i64 1 store double %152, ptr %148, align 8, !noalias !4629 %153 = extractelement <4 x double> %142, i64 2 store double %153, ptr %149, align 8, !noalias !4629 %154 = fsub <4 x double> %67, %75 %155 = fsub <4 x double> %68, %76 %156 = fmul <4 x double> %155, %47 %157 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %154, <4 x double> %156) %158 = fmul <4 x double> %wide.masked.gather7, %154 %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %155, <4 x double> %158) %160 = extractelement <4 x double> %157, i64 0 store double %160, ptr %23, align 8, !noalias !4629 %161 = extractelement <4 x double> %157, i64 1 store double %161, ptr %24, align 8, !noalias !4629 %162 = extractelement <4 x double> %157, i64 2 store double %162, ptr %25, align 8, !noalias !4629 %163 = shufflevector <4 x double> %142, <4 x double> %157, <2 x i32> store <2 x double> %163, ptr %150, align 8, !noalias !4629 %164 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4, i32 1 %165 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12, i32 1 %166 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28, i32 1 %168 = extractelement <4 x double> %159, i64 0 store double %168, ptr %164, align 8, !noalias !4629 %169 = extractelement <4 x double> %159, i64 1 store double %169, ptr %165, align 8, !noalias !4629 %170 = extractelement <4 x double> %159, i64 2 store double %170, ptr %166, align 8, !noalias !4629 %171 = fsub <4 x double> %69, %81 %172 = fsub <4 x double> %70, %82 %173 = fmul <4 x double> %172, %48 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %171, <4 x double> %173) %175 = fmul <4 x double> %wide.masked.gather9, %171 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %172, <4 x double> %175) %177 = extractelement <4 x double> %174, i64 0 store double %177, ptr %38, align 8, !noalias !4629 %178 = extractelement <4 x double> %174, i64 1 store double %178, ptr %39, align 8, !noalias !4629 %179 = extractelement <4 x double> %174, i64 2 store double %179, ptr %40, align 8, !noalias !4629 %180 = shufflevector <4 x double> %159, <4 x double> %174, <2 x i32> store <2 x double> %180, ptr %167, align 8, !noalias !4629 %181 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5, i32 1 %182 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29, i32 1 %185 = extractelement <4 x double> %176, i64 0 store double %185, ptr %181, align 8, !noalias !4629 %186 = extractelement <4 x double> %176, i64 1 store double %186, ptr %182, align 8, !noalias !4629 %187 = extractelement <4 x double> %176, i64 2 store double %187, ptr %183, align 8, !noalias !4629 %188 = fsub <4 x double> %71, %84 %189 = fadd <4 x double> %72, %83 %190 = fmul <4 x double> %189, %49 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %188, <4 x double> %190) %192 = fmul <4 x double> %wide.masked.gather11, %188 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %189, <4 x double> %192) %194 = extractelement <4 x double> %191, i64 0 store double %194, ptr %35, align 8, !noalias !4629 %195 = extractelement <4 x double> %191, i64 1 store double %195, ptr %36, align 8, !noalias !4629 %196 = extractelement <4 x double> %191, i64 2 store double %196, ptr %37, align 8, !noalias !4629 %197 = shufflevector <4 x double> %176, <4 x double> %191, <2 x i32> store <2 x double> %197, ptr %184, align 8, !noalias !4629 %198 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22, i32 1 %201 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30, i32 1 %202 = extractelement <4 x double> %193, i64 0 store double %202, ptr %198, align 8, !noalias !4629 %203 = extractelement <4 x double> %193, i64 1 store double %203, ptr %199, align 8, !noalias !4629 %204 = extractelement <4 x double> %193, i64 2 store double %204, ptr %200, align 8, !noalias !4629 %205 = fadd <4 x double> %73, %89 %206 = fadd <4 x double> %74, %90 %207 = fmul <4 x double> %206, %50 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather13, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %41, align 8, !noalias !4629 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %42, align 8, !noalias !4629 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %43, align 8, !noalias !4629 %214 = shufflevector <4 x double> %193, <4 x double> %208, <2 x i32> store <2 x double> %214, ptr %201, align 8, !noalias !4629 %215 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15, i32 1 %217 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23, i32 1 %218 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31, i32 1 %219 = extractelement <4 x double> %210, i64 0 store double %219, ptr %215, align 8, !noalias !4629 %220 = extractelement <4 x double> %210, i64 1 store double %220, ptr %216, align 8, !noalias !4629 %221 = shufflevector <4 x double> %210, <4 x double> %91, <2 x i32> store <2 x double> %221, ptr %217, align 8, !noalias !4629 %222 = extractelement <4 x double> %210, i64 3 store double %222, ptr %218, align 8, !noalias !4629 %223 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %224 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %225 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec42 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4629 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %224, align 8, !noalias !4629 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %225, align 8, !noalias !4629 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %223, align 8, !noalias !4629 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %226 = fadd <4 x double> %strided.vec43, %strided.vec49 %227 = fadd <4 x double> %strided.vec44, %strided.vec50 %228 = fsub <4 x double> %strided.vec43, %strided.vec49 %229 = fsub <4 x double> %strided.vec44, %strided.vec50 %230 = fadd <4 x double> %strided.vec46, %strided.vec52 %231 = fadd <4 x double> %strided.vec47, %strided.vec53 %232 = fsub <4 x double> %strided.vec46, %strided.vec52 %233 = fsub <4 x double> %strided.vec47, %strided.vec53 %234 = fadd <4 x double> %226, %230 %235 = fadd <4 x double> %227, %231 %236 = fadd <4 x double> %228, %233 %237 = fsub <4 x double> %229, %232 %238 = fsub <4 x double> %226, %230 %239 = fsub <4 x double> %227, %231 %240 = fsub <4 x double> %228, %233 %241 = fadd <4 x double> %229, %232 %interleaved.vec = shufflevector <4 x double> %234, <4 x double> %235, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4629 %interleaved.vec54 = shufflevector <4 x double> %236, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec54, ptr %1, align 8, !noalias !4629 %interleaved.vec55 = shufflevector <4 x double> %238, <4 x double> %239, <8 x i32> store <8 x double> %interleaved.vec55, ptr %0, align 8, !noalias !4629 %interleaved.vec56 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec56, ptr %4, align 8, !noalias !4629 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %245 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec42.1 = load <8 x double>, ptr %242, align 8, !noalias !4629 %strided.vec43.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %strided.vec44.1 = shufflevector <8 x double> %wide.vec42.1, <8 x double> poison, <4 x i32> %wide.vec45.1 = load <8 x double>, ptr %243, align 8, !noalias !4629 %strided.vec46.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %strided.vec47.1 = shufflevector <8 x double> %wide.vec45.1, <8 x double> poison, <4 x i32> %wide.vec48.1 = load <8 x double>, ptr %244, align 8, !noalias !4629 %strided.vec49.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %strided.vec50.1 = shufflevector <8 x double> %wide.vec48.1, <8 x double> poison, <4 x i32> %wide.vec51.1 = load <8 x double>, ptr %245, align 8, !noalias !4629 %strided.vec52.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %strided.vec53.1 = shufflevector <8 x double> %wide.vec51.1, <8 x double> poison, <4 x i32> %246 = fadd <4 x double> %strided.vec43.1, %strided.vec49.1 %247 = fadd <4 x double> %strided.vec44.1, %strided.vec50.1 %248 = fsub <4 x double> %strided.vec43.1, %strided.vec49.1 %249 = fsub <4 x double> %strided.vec44.1, %strided.vec50.1 %250 = fadd <4 x double> %strided.vec46.1, %strided.vec52.1 %251 = fadd <4 x double> %strided.vec47.1, %strided.vec53.1 %252 = fsub <4 x double> %strided.vec46.1, %strided.vec52.1 %253 = fsub <4 x double> %strided.vec47.1, %strided.vec53.1 %254 = fadd <4 x double> %246, %250 %255 = fadd <4 x double> %247, %251 %256 = fadd <4 x double> %248, %253 %257 = fsub <4 x double> %249, %252 %258 = fsub <4 x double> %246, %250 %259 = fsub <4 x double> %247, %251 %260 = fsub <4 x double> %248, %253 %261 = fadd <4 x double> %249, %252 %262 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %254, <4 x double> %255, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %262, align 8, !noalias !4629 %263 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec54.1 = shufflevector <4 x double> %256, <4 x double> %257, <8 x i32> store <8 x double> %interleaved.vec54.1, ptr %263, align 8, !noalias !4629 %264 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec55.1 = shufflevector <4 x double> %258, <4 x double> %259, <8 x i32> store <8 x double> %interleaved.vec55.1, ptr %264, align 8, !noalias !4629 %265 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec56.1 = shufflevector <4 x double> %260, <4 x double> %261, <8 x i32> store <8 x double> %interleaved.vec56.1, ptr %265, align 8, !noalias !4629 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4629 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9d62a17afc6e86cfE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4632 store i64 64, ptr %n.i, align 8, !noalias !4632 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4632 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4632 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4632 store ptr null, ptr %_16.i, align 8, !noalias !4632 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4632 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4632 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4632 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4632 store ptr null, ptr %_24.i, align 8, !noalias !4632 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4632 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4632 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4632 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4632 store ptr null, ptr %_32.i, align 8, !noalias !4632 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4632 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4632 store i64 %w.1, ptr %_34.i, align 8, !noalias !4632 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4632 store ptr null, ptr %_40.i, align 8, !noalias !4632 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4632 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %17 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %17, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %18 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %18, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %19 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %19, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %20 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %20, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %21 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %21, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %22 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %22, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %23 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %23, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %24 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %25 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %26 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %27 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %28 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %29 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %30 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %38, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %39, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !4632 %47 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %49 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %50 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %51 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %52 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %53 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %54 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %55 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34 %56 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %57 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17 %58 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 33 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 35 %62 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %63 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %64 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38 %65 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %66 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21 %67 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 37 %68 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %69 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23 %70 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 39 %71 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %72 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %75 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %76 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %78 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25 %79 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 41 %80 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %81 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27 %82 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 43 %83 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %84 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %85 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46 %86 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %87 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29 %88 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 45 %89 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %90 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31 %91 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 47 %92 = fneg <4 x double> %wide.masked.gather1 %93 = fneg <4 x double> %wide.masked.gather3 %94 = fneg <4 x double> %wide.masked.gather5 %95 = fneg <4 x double> %wide.masked.gather7 %96 = fneg <4 x double> %wide.masked.gather9 %97 = fneg <4 x double> %wide.masked.gather11 %98 = fneg <4 x double> %wide.masked.gather13 %99 = fneg <4 x double> %wide.masked.gather15 %100 = fneg <4 x double> %wide.masked.gather17 %101 = fneg <4 x double> %wide.masked.gather19 %102 = fneg <4 x double> %wide.masked.gather21 %103 = fneg <4 x double> %wide.masked.gather23 %104 = fneg <4 x double> %wide.masked.gather25 %105 = fneg <4 x double> %wide.masked.gather27 %106 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4632 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %3, align 8, !noalias !4632 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %2, align 8, !noalias !4632 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %4, align 8, !noalias !4632 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %1, align 8, !noalias !4632 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %6, align 8, !noalias !4632 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %5, align 8, !noalias !4632 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %7, align 8, !noalias !4632 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %0, align 8, !noalias !4632 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %10, align 8, !noalias !4632 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %9, align 8, !noalias !4632 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %11, align 8, !noalias !4632 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %8, align 8, !noalias !4632 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %13, align 8, !noalias !4632 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %12, align 8, !noalias !4632 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %14, align 8, !noalias !4632 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %107 = fadd <4 x double> %strided.vec, %strided.vec53 %108 = fadd <4 x double> %strided.vec30, %strided.vec54 %109 = fsub <4 x double> %strided.vec, %strided.vec53 %110 = fsub <4 x double> %strided.vec30, %strided.vec54 %111 = fadd <4 x double> %strided.vec41, %strided.vec65 %112 = fadd <4 x double> %strided.vec42, %strided.vec66 %113 = fsub <4 x double> %strided.vec41, %strided.vec65 %114 = fsub <4 x double> %strided.vec42, %strided.vec66 %115 = fadd <4 x double> %strided.vec35, %strided.vec59 %116 = fadd <4 x double> %strided.vec36, %strided.vec60 %117 = fsub <4 x double> %strided.vec35, %strided.vec59 %118 = fsub <4 x double> %strided.vec36, %strided.vec60 %119 = fadd <4 x double> %strided.vec47, %strided.vec71 %120 = fadd <4 x double> %strided.vec48, %strided.vec72 %121 = fsub <4 x double> %strided.vec47, %strided.vec71 %122 = fsub <4 x double> %strided.vec48, %strided.vec72 %123 = fadd <4 x double> %strided.vec32, %strided.vec56 %124 = fadd <4 x double> %strided.vec33, %strided.vec57 %125 = fsub <4 x double> %strided.vec32, %strided.vec56 %126 = fsub <4 x double> %strided.vec33, %strided.vec57 %127 = fadd <4 x double> %strided.vec44, %strided.vec68 %128 = fadd <4 x double> %strided.vec45, %strided.vec69 %129 = fsub <4 x double> %strided.vec44, %strided.vec68 %130 = fsub <4 x double> %strided.vec45, %strided.vec69 %131 = fadd <4 x double> %strided.vec38, %strided.vec62 %132 = fadd <4 x double> %strided.vec39, %strided.vec63 %133 = fsub <4 x double> %strided.vec38, %strided.vec62 %134 = fsub <4 x double> %strided.vec39, %strided.vec63 %135 = fadd <4 x double> %strided.vec50, %strided.vec74 %136 = fadd <4 x double> %strided.vec51, %strided.vec75 %137 = fsub <4 x double> %strided.vec50, %strided.vec74 %138 = fsub <4 x double> %strided.vec51, %strided.vec75 %139 = fadd <4 x double> %107, %111 %140 = fadd <4 x double> %108, %112 %141 = fsub <4 x double> %109, %114 %142 = fadd <4 x double> %110, %113 %143 = fsub <4 x double> %107, %111 %144 = fsub <4 x double> %108, %112 %145 = fadd <4 x double> %109, %114 %146 = fsub <4 x double> %110, %113 %147 = fadd <4 x double> %115, %119 %148 = fadd <4 x double> %116, %120 %149 = fsub <4 x double> %117, %122 %150 = fadd <4 x double> %118, %121 %151 = fsub <4 x double> %115, %119 %152 = fsub <4 x double> %116, %120 %153 = fadd <4 x double> %117, %122 %154 = fsub <4 x double> %118, %121 %155 = fadd <4 x double> %123, %127 %156 = fadd <4 x double> %124, %128 %157 = fsub <4 x double> %125, %130 %158 = fadd <4 x double> %126, %129 %159 = fsub <4 x double> %123, %127 %160 = fsub <4 x double> %124, %128 %161 = fadd <4 x double> %125, %130 %162 = fsub <4 x double> %126, %129 %163 = fadd <4 x double> %131, %135 %164 = fadd <4 x double> %132, %136 %165 = fsub <4 x double> %133, %138 %166 = fadd <4 x double> %134, %137 %167 = fsub <4 x double> %131, %135 %168 = fsub <4 x double> %132, %136 %169 = fadd <4 x double> %133, %138 %170 = fsub <4 x double> %134, %137 %171 = fsub <4 x double> %149, %150 %172 = fadd <4 x double> %150, %149 %173 = fmul <4 x double> %171, %174 = fmul <4 x double> %172, %175 = fadd <4 x double> %154, %153 %176 = fsub <4 x double> %154, %153 %177 = fmul <4 x double> %175, %178 = fmul <4 x double> %176, %179 = fadd <4 x double> %139, %147 %180 = fadd <4 x double> %140, %148 %181 = fadd <4 x double> %141, %173 %182 = fadd <4 x double> %142, %174 %183 = fsub <4 x double> %143, %152 %184 = fadd <4 x double> %144, %151 %185 = fsub <4 x double> %145, %177 %186 = fsub <4 x double> %146, %178 %187 = fsub <4 x double> %139, %147 %188 = fsub <4 x double> %140, %148 %189 = fsub <4 x double> %141, %173 %190 = fsub <4 x double> %142, %174 %191 = fadd <4 x double> %143, %152 %192 = fsub <4 x double> %144, %151 %193 = fadd <4 x double> %145, %177 %194 = fadd <4 x double> %146, %178 %195 = fsub <4 x double> %165, %166 %196 = fadd <4 x double> %166, %165 %197 = fmul <4 x double> %195, %198 = fmul <4 x double> %196, %199 = fadd <4 x double> %170, %169 %200 = fsub <4 x double> %170, %169 %201 = fmul <4 x double> %199, %202 = fmul <4 x double> %200, %203 = fadd <4 x double> %155, %163 %204 = fadd <4 x double> %156, %164 %205 = fadd <4 x double> %157, %197 %206 = fadd <4 x double> %158, %198 %207 = fsub <4 x double> %159, %168 %208 = fadd <4 x double> %160, %167 %209 = fsub <4 x double> %161, %201 %210 = fsub <4 x double> %162, %202 %211 = fsub <4 x double> %155, %163 %212 = fsub <4 x double> %156, %164 %213 = fsub <4 x double> %157, %197 %214 = fsub <4 x double> %158, %198 %215 = fadd <4 x double> %159, %168 %216 = fsub <4 x double> %160, %167 %217 = fadd <4 x double> %161, %201 %218 = fadd <4 x double> %162, %202 %219 = fmul <4 x double> %206, %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %205, <4 x double> , <4 x double> %219) %221 = fmul <4 x double> %205, %222 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %206, <4 x double> , <4 x double> %221) %223 = fsub <4 x double> %207, %208 %224 = fadd <4 x double> %208, %207 %225 = fmul <4 x double> %223, %226 = fmul <4 x double> %224, %227 = fmul <4 x double> %210, %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %209, <4 x double> , <4 x double> %227) %229 = fmul <4 x double> %209, %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %210, <4 x double> , <4 x double> %229) %231 = fmul <4 x double> %214, %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %213, <4 x double> , <4 x double> %231) %233 = fmul <4 x double> %213, %234 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %214, <4 x double> , <4 x double> %233) %235 = fadd <4 x double> %216, %215 %236 = fsub <4 x double> %216, %215 %237 = fmul <4 x double> %235, %238 = fmul <4 x double> %236, %239 = fmul <4 x double> %218, %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %217, <4 x double> , <4 x double> %239) %241 = fmul <4 x double> %217, %242 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %218, <4 x double> , <4 x double> %241) %243 = fadd <4 x double> %179, %203 %244 = fadd <4 x double> %180, %204 %245 = extractelement <4 x double> %243, i64 0 store double %245, ptr %scratch.0, align 8, !noalias !4632 %246 = extractelement <4 x double> %243, i64 1 store double %246, ptr %15, align 8, !noalias !4632 %247 = extractelement <4 x double> %243, i64 2 store double %247, ptr %16, align 8, !noalias !4632 %248 = getelementptr inbounds i8, ptr %scratch.0, i64 8 %249 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16, i32 1 %250 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32, i32 1 %251 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48, i32 1 %252 = extractelement <4 x double> %244, i64 0 store double %252, ptr %248, align 8, !noalias !4632 %253 = extractelement <4 x double> %244, i64 1 store double %253, ptr %249, align 8, !noalias !4632 %254 = extractelement <4 x double> %244, i64 2 store double %254, ptr %250, align 8, !noalias !4632 %255 = fadd <4 x double> %181, %220 %256 = fadd <4 x double> %182, %222 %257 = fmul <4 x double> %256, %92 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %255, <4 x double> %257) %259 = fmul <4 x double> %wide.masked.gather1, %255 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %256, <4 x double> %259) %261 = extractelement <4 x double> %258, i64 0 store double %261, ptr %56, align 8, !noalias !4632 %262 = extractelement <4 x double> %258, i64 1 store double %262, ptr %57, align 8, !noalias !4632 %263 = extractelement <4 x double> %258, i64 2 store double %263, ptr %58, align 8, !noalias !4632 %264 = shufflevector <4 x double> %244, <4 x double> %258, <2 x i32> store <2 x double> %264, ptr %251, align 8, !noalias !4632 %265 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1, i32 1 %266 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 17, i32 1 %267 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 33, i32 1 %268 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49, i32 1 %269 = extractelement <4 x double> %260, i64 0 store double %269, ptr %265, align 8, !noalias !4632 %270 = extractelement <4 x double> %260, i64 1 store double %270, ptr %266, align 8, !noalias !4632 %271 = extractelement <4 x double> %260, i64 2 store double %271, ptr %267, align 8, !noalias !4632 %272 = fadd <4 x double> %183, %225 %273 = fadd <4 x double> %184, %226 %274 = fmul <4 x double> %273, %93 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %272, <4 x double> %274) %276 = fmul <4 x double> %wide.masked.gather3, %272 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %273, <4 x double> %276) %278 = extractelement <4 x double> %275, i64 0 store double %278, ptr %53, align 8, !noalias !4632 %279 = extractelement <4 x double> %275, i64 1 store double %279, ptr %54, align 8, !noalias !4632 %280 = extractelement <4 x double> %275, i64 2 store double %280, ptr %55, align 8, !noalias !4632 %281 = shufflevector <4 x double> %260, <4 x double> %275, <2 x i32> store <2 x double> %281, ptr %268, align 8, !noalias !4632 %282 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2, i32 1 %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18, i32 1 %284 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34, i32 1 %285 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50, i32 1 %286 = extractelement <4 x double> %277, i64 0 store double %286, ptr %282, align 8, !noalias !4632 %287 = extractelement <4 x double> %277, i64 1 store double %287, ptr %283, align 8, !noalias !4632 %288 = extractelement <4 x double> %277, i64 2 store double %288, ptr %284, align 8, !noalias !4632 %289 = fadd <4 x double> %185, %228 %290 = fadd <4 x double> %186, %230 %291 = fmul <4 x double> %290, %94 %292 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %289, <4 x double> %291) %293 = fmul <4 x double> %wide.masked.gather5, %289 %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %290, <4 x double> %293) %295 = extractelement <4 x double> %292, i64 0 store double %295, ptr %59, align 8, !noalias !4632 %296 = extractelement <4 x double> %292, i64 1 store double %296, ptr %60, align 8, !noalias !4632 %297 = extractelement <4 x double> %292, i64 2 store double %297, ptr %61, align 8, !noalias !4632 %298 = shufflevector <4 x double> %277, <4 x double> %292, <2 x i32> store <2 x double> %298, ptr %285, align 8, !noalias !4632 %299 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3, i32 1 %300 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 19, i32 1 %301 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 35, i32 1 %302 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51, i32 1 %303 = extractelement <4 x double> %294, i64 0 store double %303, ptr %299, align 8, !noalias !4632 %304 = extractelement <4 x double> %294, i64 1 store double %304, ptr %300, align 8, !noalias !4632 %305 = extractelement <4 x double> %294, i64 2 store double %305, ptr %301, align 8, !noalias !4632 %306 = fsub <4 x double> %187, %212 %307 = fadd <4 x double> %188, %211 %308 = fmul <4 x double> %307, %95 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %306, <4 x double> %308) %310 = fmul <4 x double> %wide.masked.gather7, %306 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %307, <4 x double> %310) %312 = extractelement <4 x double> %309, i64 0 store double %312, ptr %50, align 8, !noalias !4632 %313 = extractelement <4 x double> %309, i64 1 store double %313, ptr %51, align 8, !noalias !4632 %314 = extractelement <4 x double> %309, i64 2 store double %314, ptr %52, align 8, !noalias !4632 %315 = shufflevector <4 x double> %294, <4 x double> %309, <2 x i32> store <2 x double> %315, ptr %302, align 8, !noalias !4632 %316 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4, i32 1 %317 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20, i32 1 %318 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52, i32 1 %320 = extractelement <4 x double> %311, i64 0 store double %320, ptr %316, align 8, !noalias !4632 %321 = extractelement <4 x double> %311, i64 1 store double %321, ptr %317, align 8, !noalias !4632 %322 = extractelement <4 x double> %311, i64 2 store double %322, ptr %318, align 8, !noalias !4632 %323 = fsub <4 x double> %189, %232 %324 = fsub <4 x double> %190, %234 %325 = fmul <4 x double> %324, %96 %326 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %323, <4 x double> %325) %327 = fmul <4 x double> %wide.masked.gather9, %323 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %324, <4 x double> %327) %329 = extractelement <4 x double> %326, i64 0 store double %329, ptr %65, align 8, !noalias !4632 %330 = extractelement <4 x double> %326, i64 1 store double %330, ptr %66, align 8, !noalias !4632 %331 = extractelement <4 x double> %326, i64 2 store double %331, ptr %67, align 8, !noalias !4632 %332 = shufflevector <4 x double> %311, <4 x double> %326, <2 x i32> store <2 x double> %332, ptr %319, align 8, !noalias !4632 %333 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5, i32 1 %334 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 21, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 37, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53, i32 1 %337 = extractelement <4 x double> %328, i64 0 store double %337, ptr %333, align 8, !noalias !4632 %338 = extractelement <4 x double> %328, i64 1 store double %338, ptr %334, align 8, !noalias !4632 %339 = extractelement <4 x double> %328, i64 2 store double %339, ptr %335, align 8, !noalias !4632 %340 = fsub <4 x double> %191, %237 %341 = fsub <4 x double> %192, %238 %342 = fmul <4 x double> %341, %97 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %340, <4 x double> %342) %344 = fmul <4 x double> %wide.masked.gather11, %340 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %341, <4 x double> %344) %346 = extractelement <4 x double> %343, i64 0 store double %346, ptr %62, align 8, !noalias !4632 %347 = extractelement <4 x double> %343, i64 1 store double %347, ptr %63, align 8, !noalias !4632 %348 = extractelement <4 x double> %343, i64 2 store double %348, ptr %64, align 8, !noalias !4632 %349 = shufflevector <4 x double> %328, <4 x double> %343, <2 x i32> store <2 x double> %349, ptr %336, align 8, !noalias !4632 %350 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38, i32 1 %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54, i32 1 %354 = extractelement <4 x double> %345, i64 0 store double %354, ptr %350, align 8, !noalias !4632 %355 = extractelement <4 x double> %345, i64 1 store double %355, ptr %351, align 8, !noalias !4632 %356 = extractelement <4 x double> %345, i64 2 store double %356, ptr %352, align 8, !noalias !4632 %357 = fsub <4 x double> %193, %240 %358 = fsub <4 x double> %194, %242 %359 = fmul <4 x double> %358, %98 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather13, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %68, align 8, !noalias !4632 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %69, align 8, !noalias !4632 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %70, align 8, !noalias !4632 %366 = shufflevector <4 x double> %345, <4 x double> %360, <2 x i32> store <2 x double> %366, ptr %353, align 8, !noalias !4632 %367 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 23, i32 1 %369 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 39, i32 1 %370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55, i32 1 %371 = extractelement <4 x double> %362, i64 0 store double %371, ptr %367, align 8, !noalias !4632 %372 = extractelement <4 x double> %362, i64 1 store double %372, ptr %368, align 8, !noalias !4632 %373 = extractelement <4 x double> %362, i64 2 store double %373, ptr %369, align 8, !noalias !4632 %374 = fsub <4 x double> %179, %203 %375 = fsub <4 x double> %180, %204 %376 = fmul <4 x double> %375, %99 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %374, <4 x double> %376) %378 = fmul <4 x double> %wide.masked.gather15, %374 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %375, <4 x double> %378) %380 = extractelement <4 x double> %377, i64 0 store double %380, ptr %47, align 8, !noalias !4632 %381 = extractelement <4 x double> %377, i64 1 store double %381, ptr %48, align 8, !noalias !4632 %382 = extractelement <4 x double> %377, i64 2 store double %382, ptr %49, align 8, !noalias !4632 %383 = shufflevector <4 x double> %362, <4 x double> %377, <2 x i32> store <2 x double> %383, ptr %370, align 8, !noalias !4632 %384 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8, i32 1 %385 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24, i32 1 %386 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40, i32 1 %387 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56, i32 1 %388 = extractelement <4 x double> %379, i64 0 store double %388, ptr %384, align 8, !noalias !4632 %389 = extractelement <4 x double> %379, i64 1 store double %389, ptr %385, align 8, !noalias !4632 %390 = extractelement <4 x double> %379, i64 2 store double %390, ptr %386, align 8, !noalias !4632 %391 = fsub <4 x double> %181, %220 %392 = fsub <4 x double> %182, %222 %393 = fmul <4 x double> %392, %100 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %391, <4 x double> %393) %395 = fmul <4 x double> %wide.masked.gather17, %391 %396 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %392, <4 x double> %395) %397 = extractelement <4 x double> %394, i64 0 store double %397, ptr %77, align 8, !noalias !4632 %398 = extractelement <4 x double> %394, i64 1 store double %398, ptr %78, align 8, !noalias !4632 %399 = extractelement <4 x double> %394, i64 2 store double %399, ptr %79, align 8, !noalias !4632 %400 = shufflevector <4 x double> %379, <4 x double> %394, <2 x i32> store <2 x double> %400, ptr %387, align 8, !noalias !4632 %401 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9, i32 1 %402 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 25, i32 1 %403 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 41, i32 1 %404 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57, i32 1 %405 = extractelement <4 x double> %396, i64 0 store double %405, ptr %401, align 8, !noalias !4632 %406 = extractelement <4 x double> %396, i64 1 store double %406, ptr %402, align 8, !noalias !4632 %407 = extractelement <4 x double> %396, i64 2 store double %407, ptr %403, align 8, !noalias !4632 %408 = fsub <4 x double> %183, %225 %409 = fsub <4 x double> %184, %226 %410 = fmul <4 x double> %409, %101 %411 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %408, <4 x double> %410) %412 = fmul <4 x double> %wide.masked.gather19, %408 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %409, <4 x double> %412) %414 = extractelement <4 x double> %411, i64 0 store double %414, ptr %74, align 8, !noalias !4632 %415 = extractelement <4 x double> %411, i64 1 store double %415, ptr %75, align 8, !noalias !4632 %416 = extractelement <4 x double> %411, i64 2 store double %416, ptr %76, align 8, !noalias !4632 %417 = shufflevector <4 x double> %396, <4 x double> %411, <2 x i32> store <2 x double> %417, ptr %404, align 8, !noalias !4632 %418 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10, i32 1 %419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26, i32 1 %420 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42, i32 1 %421 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58, i32 1 %422 = extractelement <4 x double> %413, i64 0 store double %422, ptr %418, align 8, !noalias !4632 %423 = extractelement <4 x double> %413, i64 1 store double %423, ptr %419, align 8, !noalias !4632 %424 = extractelement <4 x double> %413, i64 2 store double %424, ptr %420, align 8, !noalias !4632 %425 = fsub <4 x double> %185, %228 %426 = fsub <4 x double> %186, %230 %427 = fmul <4 x double> %426, %102 %428 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %425, <4 x double> %427) %429 = fmul <4 x double> %wide.masked.gather21, %425 %430 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %426, <4 x double> %429) %431 = extractelement <4 x double> %428, i64 0 store double %431, ptr %80, align 8, !noalias !4632 %432 = extractelement <4 x double> %428, i64 1 store double %432, ptr %81, align 8, !noalias !4632 %433 = extractelement <4 x double> %428, i64 2 store double %433, ptr %82, align 8, !noalias !4632 %434 = shufflevector <4 x double> %413, <4 x double> %428, <2 x i32> store <2 x double> %434, ptr %421, align 8, !noalias !4632 %435 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11, i32 1 %436 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 27, i32 1 %437 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 43, i32 1 %438 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59, i32 1 %439 = extractelement <4 x double> %430, i64 0 store double %439, ptr %435, align 8, !noalias !4632 %440 = extractelement <4 x double> %430, i64 1 store double %440, ptr %436, align 8, !noalias !4632 %441 = extractelement <4 x double> %430, i64 2 store double %441, ptr %437, align 8, !noalias !4632 %442 = fadd <4 x double> %187, %212 %443 = fsub <4 x double> %188, %211 %444 = fmul <4 x double> %443, %103 %445 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %442, <4 x double> %444) %446 = fmul <4 x double> %wide.masked.gather23, %442 %447 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %443, <4 x double> %446) %448 = extractelement <4 x double> %445, i64 0 store double %448, ptr %71, align 8, !noalias !4632 %449 = extractelement <4 x double> %445, i64 1 store double %449, ptr %72, align 8, !noalias !4632 %450 = extractelement <4 x double> %445, i64 2 store double %450, ptr %73, align 8, !noalias !4632 %451 = shufflevector <4 x double> %430, <4 x double> %445, <2 x i32> store <2 x double> %451, ptr %438, align 8, !noalias !4632 %452 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12, i32 1 %453 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28, i32 1 %454 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44, i32 1 %455 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60, i32 1 %456 = extractelement <4 x double> %447, i64 0 store double %456, ptr %452, align 8, !noalias !4632 %457 = extractelement <4 x double> %447, i64 1 store double %457, ptr %453, align 8, !noalias !4632 %458 = extractelement <4 x double> %447, i64 2 store double %458, ptr %454, align 8, !noalias !4632 %459 = fadd <4 x double> %189, %232 %460 = fadd <4 x double> %190, %234 %461 = fmul <4 x double> %460, %104 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %459, <4 x double> %461) %463 = fmul <4 x double> %wide.masked.gather25, %459 %464 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %460, <4 x double> %463) %465 = extractelement <4 x double> %462, i64 0 store double %465, ptr %86, align 8, !noalias !4632 %466 = extractelement <4 x double> %462, i64 1 store double %466, ptr %87, align 8, !noalias !4632 %467 = extractelement <4 x double> %462, i64 2 store double %467, ptr %88, align 8, !noalias !4632 %468 = shufflevector <4 x double> %447, <4 x double> %462, <2 x i32> store <2 x double> %468, ptr %455, align 8, !noalias !4632 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13, i32 1 %470 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 29, i32 1 %471 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 45, i32 1 %472 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61, i32 1 %473 = extractelement <4 x double> %464, i64 0 store double %473, ptr %469, align 8, !noalias !4632 %474 = extractelement <4 x double> %464, i64 1 store double %474, ptr %470, align 8, !noalias !4632 %475 = extractelement <4 x double> %464, i64 2 store double %475, ptr %471, align 8, !noalias !4632 %476 = fadd <4 x double> %191, %237 %477 = fadd <4 x double> %192, %238 %478 = fmul <4 x double> %477, %105 %479 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %476, <4 x double> %478) %480 = fmul <4 x double> %wide.masked.gather27, %476 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %477, <4 x double> %480) %482 = extractelement <4 x double> %479, i64 0 store double %482, ptr %83, align 8, !noalias !4632 %483 = extractelement <4 x double> %479, i64 1 store double %483, ptr %84, align 8, !noalias !4632 %484 = extractelement <4 x double> %479, i64 2 store double %484, ptr %85, align 8, !noalias !4632 %485 = shufflevector <4 x double> %464, <4 x double> %479, <2 x i32> store <2 x double> %485, ptr %472, align 8, !noalias !4632 %486 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14, i32 1 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30, i32 1 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62, i32 1 %490 = extractelement <4 x double> %481, i64 0 store double %490, ptr %486, align 8, !noalias !4632 %491 = extractelement <4 x double> %481, i64 1 store double %491, ptr %487, align 8, !noalias !4632 %492 = extractelement <4 x double> %481, i64 2 store double %492, ptr %488, align 8, !noalias !4632 %493 = fadd <4 x double> %193, %240 %494 = fadd <4 x double> %194, %242 %495 = fmul <4 x double> %494, %106 %496 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %493, <4 x double> %495) %497 = fmul <4 x double> %wide.masked.gather29, %493 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %494, <4 x double> %497) %499 = extractelement <4 x double> %496, i64 0 store double %499, ptr %89, align 8, !noalias !4632 %500 = extractelement <4 x double> %496, i64 1 store double %500, ptr %90, align 8, !noalias !4632 %501 = extractelement <4 x double> %496, i64 2 store double %501, ptr %91, align 8, !noalias !4632 %502 = shufflevector <4 x double> %481, <4 x double> %496, <2 x i32> store <2 x double> %502, ptr %489, align 8, !noalias !4632 %503 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15, i32 1 %504 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 31, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 47, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63, i32 1 %507 = extractelement <4 x double> %498, i64 0 store double %507, ptr %503, align 8, !noalias !4632 %508 = extractelement <4 x double> %498, i64 1 store double %508, ptr %504, align 8, !noalias !4632 %509 = shufflevector <4 x double> %498, <4 x double> %243, <2 x i32> store <2 x double> %509, ptr %505, align 8, !noalias !4632 %510 = extractelement <4 x double> %498, i64 3 store double %510, ptr %506, align 8, !noalias !4632 %511 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %512 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %513 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec82 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4632 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %512, align 8, !noalias !4632 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %513, align 8, !noalias !4632 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %511, align 8, !noalias !4632 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %514 = fadd <4 x double> %strided.vec83, %strided.vec89 %515 = fadd <4 x double> %strided.vec84, %strided.vec90 %516 = fsub <4 x double> %strided.vec83, %strided.vec89 %517 = fsub <4 x double> %strided.vec84, %strided.vec90 %518 = fadd <4 x double> %strided.vec86, %strided.vec92 %519 = fadd <4 x double> %strided.vec87, %strided.vec93 %520 = fsub <4 x double> %strided.vec86, %strided.vec92 %521 = fsub <4 x double> %strided.vec87, %strided.vec93 %522 = fadd <4 x double> %514, %518 %523 = fadd <4 x double> %515, %519 %524 = fsub <4 x double> %516, %521 %525 = fadd <4 x double> %517, %520 %526 = fsub <4 x double> %514, %518 %527 = fsub <4 x double> %515, %519 %528 = fadd <4 x double> %516, %521 %529 = fsub <4 x double> %517, %520 %interleaved.vec = shufflevector <4 x double> %522, <4 x double> %523, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4632 %interleaved.vec94 = shufflevector <4 x double> %524, <4 x double> %525, <8 x i32> store <8 x double> %interleaved.vec94, ptr %1, align 8, !noalias !4632 %interleaved.vec95 = shufflevector <4 x double> %526, <4 x double> %527, <8 x i32> store <8 x double> %interleaved.vec95, ptr %0, align 8, !noalias !4632 %interleaved.vec96 = shufflevector <4 x double> %528, <4 x double> %529, <8 x i32> store <8 x double> %interleaved.vec96, ptr %8, align 8, !noalias !4632 %530 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %531 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %532 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %533 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec82.1 = load <8 x double>, ptr %530, align 8, !noalias !4632 %strided.vec83.1 = shufflevector <8 x double> %wide.vec82.1, <8 x double> poison, <4 x i32> %strided.vec84.1 = shufflevector <8 x double> %wide.vec82.1, <8 x double> poison, <4 x i32> %wide.vec85.1 = load <8 x double>, ptr %531, align 8, !noalias !4632 %strided.vec86.1 = shufflevector <8 x double> %wide.vec85.1, <8 x double> poison, <4 x i32> %strided.vec87.1 = shufflevector <8 x double> %wide.vec85.1, <8 x double> poison, <4 x i32> %wide.vec88.1 = load <8 x double>, ptr %532, align 8, !noalias !4632 %strided.vec89.1 = shufflevector <8 x double> %wide.vec88.1, <8 x double> poison, <4 x i32> %strided.vec90.1 = shufflevector <8 x double> %wide.vec88.1, <8 x double> poison, <4 x i32> %wide.vec91.1 = load <8 x double>, ptr %533, align 8, !noalias !4632 %strided.vec92.1 = shufflevector <8 x double> %wide.vec91.1, <8 x double> poison, <4 x i32> %strided.vec93.1 = shufflevector <8 x double> %wide.vec91.1, <8 x double> poison, <4 x i32> %534 = fadd <4 x double> %strided.vec83.1, %strided.vec89.1 %535 = fadd <4 x double> %strided.vec84.1, %strided.vec90.1 %536 = fsub <4 x double> %strided.vec83.1, %strided.vec89.1 %537 = fsub <4 x double> %strided.vec84.1, %strided.vec90.1 %538 = fadd <4 x double> %strided.vec86.1, %strided.vec92.1 %539 = fadd <4 x double> %strided.vec87.1, %strided.vec93.1 %540 = fsub <4 x double> %strided.vec86.1, %strided.vec92.1 %541 = fsub <4 x double> %strided.vec87.1, %strided.vec93.1 %542 = fadd <4 x double> %534, %538 %543 = fadd <4 x double> %535, %539 %544 = fsub <4 x double> %536, %541 %545 = fadd <4 x double> %537, %540 %546 = fsub <4 x double> %534, %538 %547 = fsub <4 x double> %535, %539 %548 = fadd <4 x double> %536, %541 %549 = fsub <4 x double> %537, %540 %550 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %542, <4 x double> %543, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %550, align 8, !noalias !4632 %551 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec94.1 = shufflevector <4 x double> %544, <4 x double> %545, <8 x i32> store <8 x double> %interleaved.vec94.1, ptr %551, align 8, !noalias !4632 %552 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec95.1 = shufflevector <4 x double> %546, <4 x double> %547, <8 x i32> store <8 x double> %interleaved.vec95.1, ptr %552, align 8, !noalias !4632 %553 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec96.1 = shufflevector <4 x double> %548, <4 x double> %549, <8 x i32> store <8 x double> %interleaved.vec96.1, ptr %553, align 8, !noalias !4632 %554 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %555 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %556 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %557 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec82.2 = load <8 x double>, ptr %554, align 8, !noalias !4632 %strided.vec83.2 = shufflevector <8 x double> %wide.vec82.2, <8 x double> poison, <4 x i32> %strided.vec84.2 = shufflevector <8 x double> %wide.vec82.2, <8 x double> poison, <4 x i32> %wide.vec85.2 = load <8 x double>, ptr %555, align 8, !noalias !4632 %strided.vec86.2 = shufflevector <8 x double> %wide.vec85.2, <8 x double> poison, <4 x i32> %strided.vec87.2 = shufflevector <8 x double> %wide.vec85.2, <8 x double> poison, <4 x i32> %wide.vec88.2 = load <8 x double>, ptr %556, align 8, !noalias !4632 %strided.vec89.2 = shufflevector <8 x double> %wide.vec88.2, <8 x double> poison, <4 x i32> %strided.vec90.2 = shufflevector <8 x double> %wide.vec88.2, <8 x double> poison, <4 x i32> %wide.vec91.2 = load <8 x double>, ptr %557, align 8, !noalias !4632 %strided.vec92.2 = shufflevector <8 x double> %wide.vec91.2, <8 x double> poison, <4 x i32> %strided.vec93.2 = shufflevector <8 x double> %wide.vec91.2, <8 x double> poison, <4 x i32> %558 = fadd <4 x double> %strided.vec83.2, %strided.vec89.2 %559 = fadd <4 x double> %strided.vec84.2, %strided.vec90.2 %560 = fsub <4 x double> %strided.vec83.2, %strided.vec89.2 %561 = fsub <4 x double> %strided.vec84.2, %strided.vec90.2 %562 = fadd <4 x double> %strided.vec86.2, %strided.vec92.2 %563 = fadd <4 x double> %strided.vec87.2, %strided.vec93.2 %564 = fsub <4 x double> %strided.vec86.2, %strided.vec92.2 %565 = fsub <4 x double> %strided.vec87.2, %strided.vec93.2 %566 = fadd <4 x double> %558, %562 %567 = fadd <4 x double> %559, %563 %568 = fsub <4 x double> %560, %565 %569 = fadd <4 x double> %561, %564 %570 = fsub <4 x double> %558, %562 %571 = fsub <4 x double> %559, %563 %572 = fadd <4 x double> %560, %565 %573 = fsub <4 x double> %561, %564 %574 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %566, <4 x double> %567, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %574, align 8, !noalias !4632 %575 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec94.2 = shufflevector <4 x double> %568, <4 x double> %569, <8 x i32> store <8 x double> %interleaved.vec94.2, ptr %575, align 8, !noalias !4632 %576 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec95.2 = shufflevector <4 x double> %570, <4 x double> %571, <8 x i32> store <8 x double> %interleaved.vec95.2, ptr %576, align 8, !noalias !4632 %577 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec96.2 = shufflevector <4 x double> %572, <4 x double> %573, <8 x i32> store <8 x double> %interleaved.vec96.2, ptr %577, align 8, !noalias !4632 %578 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %579 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %580 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %581 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec82.3 = load <8 x double>, ptr %578, align 8, !noalias !4632 %strided.vec83.3 = shufflevector <8 x double> %wide.vec82.3, <8 x double> poison, <4 x i32> %strided.vec84.3 = shufflevector <8 x double> %wide.vec82.3, <8 x double> poison, <4 x i32> %wide.vec85.3 = load <8 x double>, ptr %579, align 8, !noalias !4632 %strided.vec86.3 = shufflevector <8 x double> %wide.vec85.3, <8 x double> poison, <4 x i32> %strided.vec87.3 = shufflevector <8 x double> %wide.vec85.3, <8 x double> poison, <4 x i32> %wide.vec88.3 = load <8 x double>, ptr %580, align 8, !noalias !4632 %strided.vec89.3 = shufflevector <8 x double> %wide.vec88.3, <8 x double> poison, <4 x i32> %strided.vec90.3 = shufflevector <8 x double> %wide.vec88.3, <8 x double> poison, <4 x i32> %wide.vec91.3 = load <8 x double>, ptr %581, align 8, !noalias !4632 %strided.vec92.3 = shufflevector <8 x double> %wide.vec91.3, <8 x double> poison, <4 x i32> %strided.vec93.3 = shufflevector <8 x double> %wide.vec91.3, <8 x double> poison, <4 x i32> %582 = fadd <4 x double> %strided.vec83.3, %strided.vec89.3 %583 = fadd <4 x double> %strided.vec84.3, %strided.vec90.3 %584 = fsub <4 x double> %strided.vec83.3, %strided.vec89.3 %585 = fsub <4 x double> %strided.vec84.3, %strided.vec90.3 %586 = fadd <4 x double> %strided.vec86.3, %strided.vec92.3 %587 = fadd <4 x double> %strided.vec87.3, %strided.vec93.3 %588 = fsub <4 x double> %strided.vec86.3, %strided.vec92.3 %589 = fsub <4 x double> %strided.vec87.3, %strided.vec93.3 %590 = fadd <4 x double> %582, %586 %591 = fadd <4 x double> %583, %587 %592 = fsub <4 x double> %584, %589 %593 = fadd <4 x double> %585, %588 %594 = fsub <4 x double> %582, %586 %595 = fsub <4 x double> %583, %587 %596 = fadd <4 x double> %584, %589 %597 = fsub <4 x double> %585, %588 %598 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %590, <4 x double> %591, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %598, align 8, !noalias !4632 %599 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec94.3 = shufflevector <4 x double> %592, <4 x double> %593, <8 x i32> store <8 x double> %interleaved.vec94.3, ptr %599, align 8, !noalias !4632 %600 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec95.3 = shufflevector <4 x double> %594, <4 x double> %595, <8 x i32> store <8 x double> %interleaved.vec95.3, ptr %600, align 8, !noalias !4632 %601 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec96.3 = shufflevector <4 x double> %596, <4 x double> %597, <8 x i32> store <8 x double> %interleaved.vec96.3, ptr %601, align 8, !noalias !4632 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4632 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9d873a86d9b867f5E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4635 store i64 128, ptr %n.i, align 8, !noalias !4635 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4635 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4635 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4635 store ptr null, ptr %_16.i, align 8, !noalias !4635 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4635 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4635 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4635 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4635 store ptr null, ptr %_24.i, align 8, !noalias !4635 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4635 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4635 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4635 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4635 store ptr null, ptr %_32.i, align 8, !noalias !4635 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4635 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4635 store i64 %w.1, ptr %_34.i, align 8, !noalias !4635 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %bb9.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4635 store ptr null, ptr %_40.i, align 8, !noalias !4635 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4635 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !4635 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !4635 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !4635 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !4635 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !4635 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !4635 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !4635 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !4635 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 64 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit, label %vector.body, !llvm.loop !4638 _ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %15 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i80 = load double, ptr %15, align 8, !noalias !4635, !noundef !3 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i81 = load double, ptr %16, align 8, !noalias !4635, !noundef !3 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %_6.i.i.i58.i96 = fneg double %w1.1.i.i43.i81 %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i43.i81, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i42.i80, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i58.i96, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %wide.vec12 = load <8 x double>, ptr %buf.0, align 8, !noalias !4635 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %17, align 8, !noalias !4635 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %18 = fmul <4 x double> %strided.vec17, %broadcast.splat %19 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %18) %20 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %21 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %20) %22 = fadd <4 x double> %strided.vec13, %19 %23 = fadd <4 x double> %strided.vec14, %21 %interleaved.vec22 = shufflevector <4 x double> %22, <4 x double> %23, <8 x i32> store <8 x double> %interleaved.vec22, ptr %scratch.0, align 8, !noalias !4635 %24 = fsub <4 x double> %strided.vec13, %19 %25 = fsub <4 x double> %strided.vec14, %21 %interleaved.vec23 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec23, ptr %14, align 8, !noalias !4635 %26 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %27 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %wide.vec12.1 = load <8 x double>, ptr %26, align 8, !noalias !4635 %strided.vec13.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %strided.vec14.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %wide.vec15.1 = load <8 x double>, ptr %27, align 8, !noalias !4635 %strided.vec16.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %28 = fmul <4 x double> %strided.vec17.1, %broadcast.splat %29 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.1, <4 x double> %28) %30 = fmul <4 x double> %broadcast.splat21, %strided.vec16.1 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.1, <4 x double> %30) %32 = fadd <4 x double> %strided.vec13.1, %29 %33 = fadd <4 x double> %strided.vec14.1, %31 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec22.1 = shufflevector <4 x double> %32, <4 x double> %33, <8 x i32> store <8 x double> %interleaved.vec22.1, ptr %34, align 8, !noalias !4635 %35 = fsub <4 x double> %strided.vec13.1, %29 %36 = fsub <4 x double> %strided.vec14.1, %31 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec23.1 = shufflevector <4 x double> %35, <4 x double> %36, <8 x i32> store <8 x double> %interleaved.vec23.1, ptr %37, align 8, !noalias !4635 %38 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %39 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %wide.vec12.2 = load <8 x double>, ptr %38, align 8, !noalias !4635 %strided.vec13.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %strided.vec14.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %wide.vec15.2 = load <8 x double>, ptr %39, align 8, !noalias !4635 %strided.vec16.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %strided.vec17.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %40 = fmul <4 x double> %strided.vec17.2, %broadcast.splat %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.2, <4 x double> %40) %42 = fmul <4 x double> %broadcast.splat21, %strided.vec16.2 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.2, <4 x double> %42) %44 = fadd <4 x double> %strided.vec13.2, %41 %45 = fadd <4 x double> %strided.vec14.2, %43 %46 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec22.2 = shufflevector <4 x double> %44, <4 x double> %45, <8 x i32> store <8 x double> %interleaved.vec22.2, ptr %46, align 8, !noalias !4635 %47 = fsub <4 x double> %strided.vec13.2, %41 %48 = fsub <4 x double> %strided.vec14.2, %43 %49 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec23.2 = shufflevector <4 x double> %47, <4 x double> %48, <8 x i32> store <8 x double> %interleaved.vec23.2, ptr %49, align 8, !noalias !4635 %50 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %51 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %wide.vec12.3 = load <8 x double>, ptr %50, align 8, !noalias !4635 %strided.vec13.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %strided.vec14.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %wide.vec15.3 = load <8 x double>, ptr %51, align 8, !noalias !4635 %strided.vec16.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %strided.vec17.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %52 = fmul <4 x double> %strided.vec17.3, %broadcast.splat %53 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.3, <4 x double> %52) %54 = fmul <4 x double> %broadcast.splat21, %strided.vec16.3 %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.3, <4 x double> %54) %56 = fadd <4 x double> %strided.vec13.3, %53 %57 = fadd <4 x double> %strided.vec14.3, %55 %58 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec22.3 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec22.3, ptr %58, align 8, !noalias !4635 %59 = fsub <4 x double> %strided.vec13.3, %53 %60 = fsub <4 x double> %strided.vec14.3, %55 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec23.3 = shufflevector <4 x double> %59, <4 x double> %60, <8 x i32> store <8 x double> %interleaved.vec23.3, ptr %61, align 8, !noalias !4635 %62 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %63 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec12.4 = load <8 x double>, ptr %62, align 8, !noalias !4635 %strided.vec13.4 = shufflevector <8 x double> %wide.vec12.4, <8 x double> poison, <4 x i32> %strided.vec14.4 = shufflevector <8 x double> %wide.vec12.4, <8 x double> poison, <4 x i32> %wide.vec15.4 = load <8 x double>, ptr %63, align 8, !noalias !4635 %strided.vec16.4 = shufflevector <8 x double> %wide.vec15.4, <8 x double> poison, <4 x i32> %strided.vec17.4 = shufflevector <8 x double> %wide.vec15.4, <8 x double> poison, <4 x i32> %64 = fmul <4 x double> %strided.vec17.4, %broadcast.splat %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.4, <4 x double> %64) %66 = fmul <4 x double> %broadcast.splat21, %strided.vec16.4 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.4, <4 x double> %66) %68 = fadd <4 x double> %strided.vec13.4, %65 %69 = fadd <4 x double> %strided.vec14.4, %67 %70 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %interleaved.vec22.4 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec22.4, ptr %70, align 8, !noalias !4635 %71 = fsub <4 x double> %strided.vec13.4, %65 %72 = fsub <4 x double> %strided.vec14.4, %67 %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %interleaved.vec23.4 = shufflevector <4 x double> %71, <4 x double> %72, <8 x i32> store <8 x double> %interleaved.vec23.4, ptr %73, align 8, !noalias !4635 %74 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %75 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec12.5 = load <8 x double>, ptr %74, align 8, !noalias !4635 %strided.vec13.5 = shufflevector <8 x double> %wide.vec12.5, <8 x double> poison, <4 x i32> %strided.vec14.5 = shufflevector <8 x double> %wide.vec12.5, <8 x double> poison, <4 x i32> %wide.vec15.5 = load <8 x double>, ptr %75, align 8, !noalias !4635 %strided.vec16.5 = shufflevector <8 x double> %wide.vec15.5, <8 x double> poison, <4 x i32> %strided.vec17.5 = shufflevector <8 x double> %wide.vec15.5, <8 x double> poison, <4 x i32> %76 = fmul <4 x double> %strided.vec17.5, %broadcast.splat %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.5, <4 x double> %76) %78 = fmul <4 x double> %broadcast.splat21, %strided.vec16.5 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.5, <4 x double> %78) %80 = fadd <4 x double> %strided.vec13.5, %77 %81 = fadd <4 x double> %strided.vec14.5, %79 %82 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec22.5 = shufflevector <4 x double> %80, <4 x double> %81, <8 x i32> store <8 x double> %interleaved.vec22.5, ptr %82, align 8, !noalias !4635 %83 = fsub <4 x double> %strided.vec13.5, %77 %84 = fsub <4 x double> %strided.vec14.5, %79 %85 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec23.5 = shufflevector <4 x double> %83, <4 x double> %84, <8 x i32> store <8 x double> %interleaved.vec23.5, ptr %85, align 8, !noalias !4635 %86 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %87 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec12.6 = load <8 x double>, ptr %86, align 8, !noalias !4635 %strided.vec13.6 = shufflevector <8 x double> %wide.vec12.6, <8 x double> poison, <4 x i32> %strided.vec14.6 = shufflevector <8 x double> %wide.vec12.6, <8 x double> poison, <4 x i32> %wide.vec15.6 = load <8 x double>, ptr %87, align 8, !noalias !4635 %strided.vec16.6 = shufflevector <8 x double> %wide.vec15.6, <8 x double> poison, <4 x i32> %strided.vec17.6 = shufflevector <8 x double> %wide.vec15.6, <8 x double> poison, <4 x i32> %88 = fmul <4 x double> %strided.vec17.6, %broadcast.splat %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.6, <4 x double> %88) %90 = fmul <4 x double> %broadcast.splat21, %strided.vec16.6 %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.6, <4 x double> %90) %92 = fadd <4 x double> %strided.vec13.6, %89 %93 = fadd <4 x double> %strided.vec14.6, %91 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec22.6 = shufflevector <4 x double> %92, <4 x double> %93, <8 x i32> store <8 x double> %interleaved.vec22.6, ptr %94, align 8, !noalias !4635 %95 = fsub <4 x double> %strided.vec13.6, %89 %96 = fsub <4 x double> %strided.vec14.6, %91 %97 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec23.6 = shufflevector <4 x double> %95, <4 x double> %96, <8 x i32> store <8 x double> %interleaved.vec23.6, ptr %97, align 8, !noalias !4635 %98 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %99 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec12.7 = load <8 x double>, ptr %98, align 8, !noalias !4635 %strided.vec13.7 = shufflevector <8 x double> %wide.vec12.7, <8 x double> poison, <4 x i32> %strided.vec14.7 = shufflevector <8 x double> %wide.vec12.7, <8 x double> poison, <4 x i32> %wide.vec15.7 = load <8 x double>, ptr %99, align 8, !noalias !4635 %strided.vec16.7 = shufflevector <8 x double> %wide.vec15.7, <8 x double> poison, <4 x i32> %strided.vec17.7 = shufflevector <8 x double> %wide.vec15.7, <8 x double> poison, <4 x i32> %100 = fmul <4 x double> %strided.vec17.7, %broadcast.splat %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.7, <4 x double> %100) %102 = fmul <4 x double> %broadcast.splat21, %strided.vec16.7 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.7, <4 x double> %102) %104 = fadd <4 x double> %strided.vec13.7, %101 %105 = fadd <4 x double> %strided.vec14.7, %103 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec22.7 = shufflevector <4 x double> %104, <4 x double> %105, <8 x i32> store <8 x double> %interleaved.vec22.7, ptr %106, align 8, !noalias !4635 %107 = fsub <4 x double> %strided.vec13.7, %101 %108 = fsub <4 x double> %strided.vec14.7, %103 %109 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec23.7 = shufflevector <4 x double> %107, <4 x double> %108, <8 x i32> store <8 x double> %interleaved.vec23.7, ptr %109, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %110 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.i.i42.i80.1 = load double, ptr %110, align 8, !noalias !4635, !noundef !3 %111 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.i.i43.i81.1 = load double, ptr %111, align 8, !noalias !4635, !noundef !3 %112 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %_6.i.i.i58.i96.1 = fneg double %w1.1.i.i43.i81.1 %broadcast.splatinsert41 = insertelement <4 x double> poison, double %w1.1.i.i43.i81.1, i64 0 %broadcast.splat42 = shufflevector <4 x double> %broadcast.splatinsert41, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert39 = insertelement <4 x double> poison, double %w1.0.i.i42.i80.1, i64 0 %broadcast.splat40 = shufflevector <4 x double> %broadcast.splatinsert39, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %_6.i.i.i58.i96.1, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %wide.vec31 = load <8 x double>, ptr %0, align 8, !noalias !4635 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %112, align 8, !noalias !4635 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %113 = fmul <4 x double> %strided.vec36, %broadcast.splat38 %114 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35, <4 x double> %113) %115 = fmul <4 x double> %broadcast.splat42, %strided.vec35 %116 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36, <4 x double> %115) %117 = fadd <4 x double> %strided.vec32, %114 %118 = fadd <4 x double> %strided.vec33, %116 %interleaved.vec43 = shufflevector <4 x double> %117, <4 x double> %118, <8 x i32> store <8 x double> %interleaved.vec43, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4635 %119 = fsub <4 x double> %strided.vec32, %114 %120 = fsub <4 x double> %strided.vec33, %116 %interleaved.vec44 = shufflevector <4 x double> %119, <4 x double> %120, <8 x i32> store <8 x double> %interleaved.vec44, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4635 %121 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %122 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %wide.vec31.1 = load <8 x double>, ptr %121, align 8, !noalias !4635 %strided.vec32.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %strided.vec33.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %wide.vec34.1 = load <8 x double>, ptr %122, align 8, !noalias !4635 %strided.vec35.1 = shufflevector <8 x double> %wide.vec34.1, <8 x double> poison, <4 x i32> %strided.vec36.1 = shufflevector <8 x double> %wide.vec34.1, <8 x double> poison, <4 x i32> %123 = fmul <4 x double> %strided.vec36.1, %broadcast.splat38 %124 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.1, <4 x double> %123) %125 = fmul <4 x double> %broadcast.splat42, %strided.vec35.1 %126 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.1, <4 x double> %125) %127 = fadd <4 x double> %strided.vec32.1, %124 %128 = fadd <4 x double> %strided.vec33.1, %126 %129 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec43.1 = shufflevector <4 x double> %127, <4 x double> %128, <8 x i32> store <8 x double> %interleaved.vec43.1, ptr %129, align 8, !noalias !4635 %130 = fsub <4 x double> %strided.vec32.1, %124 %131 = fsub <4 x double> %strided.vec33.1, %126 %132 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec44.1 = shufflevector <4 x double> %130, <4 x double> %131, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %132, align 8, !noalias !4635 %133 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %134 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %wide.vec31.2 = load <8 x double>, ptr %133, align 8, !noalias !4635 %strided.vec32.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %strided.vec33.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %wide.vec34.2 = load <8 x double>, ptr %134, align 8, !noalias !4635 %strided.vec35.2 = shufflevector <8 x double> %wide.vec34.2, <8 x double> poison, <4 x i32> %strided.vec36.2 = shufflevector <8 x double> %wide.vec34.2, <8 x double> poison, <4 x i32> %135 = fmul <4 x double> %strided.vec36.2, %broadcast.splat38 %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.2, <4 x double> %135) %137 = fmul <4 x double> %broadcast.splat42, %strided.vec35.2 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.2, <4 x double> %137) %139 = fadd <4 x double> %strided.vec32.2, %136 %140 = fadd <4 x double> %strided.vec33.2, %138 %141 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec43.2 = shufflevector <4 x double> %139, <4 x double> %140, <8 x i32> store <8 x double> %interleaved.vec43.2, ptr %141, align 8, !noalias !4635 %142 = fsub <4 x double> %strided.vec32.2, %136 %143 = fsub <4 x double> %strided.vec33.2, %138 %144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec44.2 = shufflevector <4 x double> %142, <4 x double> %143, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %144, align 8, !noalias !4635 %145 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %146 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %wide.vec31.3 = load <8 x double>, ptr %145, align 8, !noalias !4635 %strided.vec32.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %strided.vec33.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %wide.vec34.3 = load <8 x double>, ptr %146, align 8, !noalias !4635 %strided.vec35.3 = shufflevector <8 x double> %wide.vec34.3, <8 x double> poison, <4 x i32> %strided.vec36.3 = shufflevector <8 x double> %wide.vec34.3, <8 x double> poison, <4 x i32> %147 = fmul <4 x double> %strided.vec36.3, %broadcast.splat38 %148 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.3, <4 x double> %147) %149 = fmul <4 x double> %broadcast.splat42, %strided.vec35.3 %150 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.3, <4 x double> %149) %151 = fadd <4 x double> %strided.vec32.3, %148 %152 = fadd <4 x double> %strided.vec33.3, %150 %153 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec43.3 = shufflevector <4 x double> %151, <4 x double> %152, <8 x i32> store <8 x double> %interleaved.vec43.3, ptr %153, align 8, !noalias !4635 %154 = fsub <4 x double> %strided.vec32.3, %148 %155 = fsub <4 x double> %strided.vec33.3, %150 %156 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec44.3 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %156, align 8, !noalias !4635 %157 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %158 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %wide.vec31.4 = load <8 x double>, ptr %157, align 8, !noalias !4635 %strided.vec32.4 = shufflevector <8 x double> %wide.vec31.4, <8 x double> poison, <4 x i32> %strided.vec33.4 = shufflevector <8 x double> %wide.vec31.4, <8 x double> poison, <4 x i32> %wide.vec34.4 = load <8 x double>, ptr %158, align 8, !noalias !4635 %strided.vec35.4 = shufflevector <8 x double> %wide.vec34.4, <8 x double> poison, <4 x i32> %strided.vec36.4 = shufflevector <8 x double> %wide.vec34.4, <8 x double> poison, <4 x i32> %159 = fmul <4 x double> %strided.vec36.4, %broadcast.splat38 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.4, <4 x double> %159) %161 = fmul <4 x double> %broadcast.splat42, %strided.vec35.4 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.4, <4 x double> %161) %163 = fadd <4 x double> %strided.vec32.4, %160 %164 = fadd <4 x double> %strided.vec33.4, %162 %165 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %interleaved.vec43.4 = shufflevector <4 x double> %163, <4 x double> %164, <8 x i32> store <8 x double> %interleaved.vec43.4, ptr %165, align 8, !noalias !4635 %166 = fsub <4 x double> %strided.vec32.4, %160 %167 = fsub <4 x double> %strided.vec33.4, %162 %168 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %interleaved.vec44.4 = shufflevector <4 x double> %166, <4 x double> %167, <8 x i32> store <8 x double> %interleaved.vec44.4, ptr %168, align 8, !noalias !4635 %169 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %170 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %wide.vec31.5 = load <8 x double>, ptr %169, align 8, !noalias !4635 %strided.vec32.5 = shufflevector <8 x double> %wide.vec31.5, <8 x double> poison, <4 x i32> %strided.vec33.5 = shufflevector <8 x double> %wide.vec31.5, <8 x double> poison, <4 x i32> %wide.vec34.5 = load <8 x double>, ptr %170, align 8, !noalias !4635 %strided.vec35.5 = shufflevector <8 x double> %wide.vec34.5, <8 x double> poison, <4 x i32> %strided.vec36.5 = shufflevector <8 x double> %wide.vec34.5, <8 x double> poison, <4 x i32> %171 = fmul <4 x double> %strided.vec36.5, %broadcast.splat38 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.5, <4 x double> %171) %173 = fmul <4 x double> %broadcast.splat42, %strided.vec35.5 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.5, <4 x double> %173) %175 = fadd <4 x double> %strided.vec32.5, %172 %176 = fadd <4 x double> %strided.vec33.5, %174 %177 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec43.5 = shufflevector <4 x double> %175, <4 x double> %176, <8 x i32> store <8 x double> %interleaved.vec43.5, ptr %177, align 8, !noalias !4635 %178 = fsub <4 x double> %strided.vec32.5, %172 %179 = fsub <4 x double> %strided.vec33.5, %174 %180 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec44.5 = shufflevector <4 x double> %178, <4 x double> %179, <8 x i32> store <8 x double> %interleaved.vec44.5, ptr %180, align 8, !noalias !4635 %181 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %182 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %wide.vec31.6 = load <8 x double>, ptr %181, align 8, !noalias !4635 %strided.vec32.6 = shufflevector <8 x double> %wide.vec31.6, <8 x double> poison, <4 x i32> %strided.vec33.6 = shufflevector <8 x double> %wide.vec31.6, <8 x double> poison, <4 x i32> %wide.vec34.6 = load <8 x double>, ptr %182, align 8, !noalias !4635 %strided.vec35.6 = shufflevector <8 x double> %wide.vec34.6, <8 x double> poison, <4 x i32> %strided.vec36.6 = shufflevector <8 x double> %wide.vec34.6, <8 x double> poison, <4 x i32> %183 = fmul <4 x double> %strided.vec36.6, %broadcast.splat38 %184 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.6, <4 x double> %183) %185 = fmul <4 x double> %broadcast.splat42, %strided.vec35.6 %186 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.6, <4 x double> %185) %187 = fadd <4 x double> %strided.vec32.6, %184 %188 = fadd <4 x double> %strided.vec33.6, %186 %189 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec43.6 = shufflevector <4 x double> %187, <4 x double> %188, <8 x i32> store <8 x double> %interleaved.vec43.6, ptr %189, align 8, !noalias !4635 %190 = fsub <4 x double> %strided.vec32.6, %184 %191 = fsub <4 x double> %strided.vec33.6, %186 %192 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec44.6 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> store <8 x double> %interleaved.vec44.6, ptr %192, align 8, !noalias !4635 %193 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %194 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %wide.vec31.7 = load <8 x double>, ptr %193, align 8, !noalias !4635 %strided.vec32.7 = shufflevector <8 x double> %wide.vec31.7, <8 x double> poison, <4 x i32> %strided.vec33.7 = shufflevector <8 x double> %wide.vec31.7, <8 x double> poison, <4 x i32> %wide.vec34.7 = load <8 x double>, ptr %194, align 8, !noalias !4635 %strided.vec35.7 = shufflevector <8 x double> %wide.vec34.7, <8 x double> poison, <4 x i32> %strided.vec36.7 = shufflevector <8 x double> %wide.vec34.7, <8 x double> poison, <4 x i32> %195 = fmul <4 x double> %strided.vec36.7, %broadcast.splat38 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.7, <4 x double> %195) %197 = fmul <4 x double> %broadcast.splat42, %strided.vec35.7 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.7, <4 x double> %197) %199 = fadd <4 x double> %strided.vec32.7, %196 %200 = fadd <4 x double> %strided.vec33.7, %198 %201 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec43.7 = shufflevector <4 x double> %199, <4 x double> %200, <8 x i32> store <8 x double> %interleaved.vec43.7, ptr %201, align 8, !noalias !4635 %202 = fsub <4 x double> %strided.vec32.7, %196 %203 = fsub <4 x double> %strided.vec33.7, %198 %204 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec44.7 = shufflevector <4 x double> %202, <4 x double> %203, <8 x i32> store <8 x double> %interleaved.vec44.7, ptr %204, align 8, !noalias !4635 %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w1.1.i.i43.i81, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %w1.0.i.i42.i80, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert58 = insertelement <4 x double> poison, double %_6.i.i.i58.i96, i64 0 %broadcast.splat59 = shufflevector <4 x double> %broadcast.splatinsert58, <4 x double> poison, <4 x i32> zeroinitializer %205 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec52 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4635 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %205, align 8, !noalias !4635 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %206 = fmul <4 x double> %strided.vec57, %broadcast.splat59 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56, <4 x double> %206) %208 = fmul <4 x double> %broadcast.splat63, %strided.vec56 %209 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57, <4 x double> %208) %210 = fadd <4 x double> %strided.vec53, %207 %211 = fadd <4 x double> %strided.vec54, %209 %interleaved.vec64 = shufflevector <4 x double> %210, <4 x double> %211, <8 x i32> store <8 x double> %interleaved.vec64, ptr %buf.0, align 8, !noalias !4635 %212 = fsub <4 x double> %strided.vec53, %207 %213 = fsub <4 x double> %strided.vec54, %209 %interleaved.vec65 = shufflevector <4 x double> %212, <4 x double> %213, <8 x i32> store <8 x double> %interleaved.vec65, ptr %0, align 8, !noalias !4635 %214 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %215 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %wide.vec52.1 = load <8 x double>, ptr %214, align 8, !noalias !4635 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %215, align 8, !noalias !4635 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %216 = fmul <4 x double> %strided.vec57.1, %broadcast.splat59 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.1, <4 x double> %216) %218 = fmul <4 x double> %broadcast.splat63, %strided.vec56.1 %219 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.1, <4 x double> %218) %220 = fadd <4 x double> %strided.vec53.1, %217 %221 = fadd <4 x double> %strided.vec54.1, %219 %222 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec64.1 = shufflevector <4 x double> %220, <4 x double> %221, <8 x i32> store <8 x double> %interleaved.vec64.1, ptr %222, align 8, !noalias !4635 %223 = fsub <4 x double> %strided.vec53.1, %217 %224 = fsub <4 x double> %strided.vec54.1, %219 %225 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec65.1 = shufflevector <4 x double> %223, <4 x double> %224, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %225, align 8, !noalias !4635 %226 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %227 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %wide.vec52.2 = load <8 x double>, ptr %226, align 8, !noalias !4635 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %227, align 8, !noalias !4635 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %228 = fmul <4 x double> %strided.vec57.2, %broadcast.splat59 %229 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.2, <4 x double> %228) %230 = fmul <4 x double> %broadcast.splat63, %strided.vec56.2 %231 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.2, <4 x double> %230) %232 = fadd <4 x double> %strided.vec53.2, %229 %233 = fadd <4 x double> %strided.vec54.2, %231 %234 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec64.2 = shufflevector <4 x double> %232, <4 x double> %233, <8 x i32> store <8 x double> %interleaved.vec64.2, ptr %234, align 8, !noalias !4635 %235 = fsub <4 x double> %strided.vec53.2, %229 %236 = fsub <4 x double> %strided.vec54.2, %231 %237 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec65.2 = shufflevector <4 x double> %235, <4 x double> %236, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %237, align 8, !noalias !4635 %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec52.3 = load <8 x double>, ptr %238, align 8, !noalias !4635 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %239, align 8, !noalias !4635 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %240 = fmul <4 x double> %strided.vec57.3, %broadcast.splat59 %241 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.3, <4 x double> %240) %242 = fmul <4 x double> %broadcast.splat63, %strided.vec56.3 %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.3, <4 x double> %242) %244 = fadd <4 x double> %strided.vec53.3, %241 %245 = fadd <4 x double> %strided.vec54.3, %243 %246 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec64.3 = shufflevector <4 x double> %244, <4 x double> %245, <8 x i32> store <8 x double> %interleaved.vec64.3, ptr %246, align 8, !noalias !4635 %247 = fsub <4 x double> %strided.vec53.3, %241 %248 = fsub <4 x double> %strided.vec54.3, %243 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec65.3 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %249, align 8, !noalias !4635 %250 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i126.1 = load double, ptr %250, align 8, !noalias !4635, !noundef !3 %broadcast.splatinsert83 = insertelement <4 x double> poison, double %w1.1.i.i.i126.1, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer %251 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i125.1 = load double, ptr %251, align 8, !noalias !4635, !noundef !3 %broadcast.splatinsert81 = insertelement <4 x double> poison, double %w1.0.i.i.i125.1, i64 0 %broadcast.splat82 = shufflevector <4 x double> %broadcast.splatinsert81, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i141.1 = fneg double %w1.1.i.i.i126.1 %broadcast.splatinsert79 = insertelement <4 x double> poison, double %_6.i.i.i.i141.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %252 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i5.i.i.i.i.i.i.i413.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %data.i.i.i.i.i.i.i.i399.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec73 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4635 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %252, align 8, !noalias !4635 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %253 = fmul <4 x double> %strided.vec78, %broadcast.splat80 %254 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77, <4 x double> %253) %255 = fmul <4 x double> %broadcast.splat84, %strided.vec77 %256 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78, <4 x double> %255) %257 = fadd <4 x double> %strided.vec74, %254 %258 = fadd <4 x double> %strided.vec75, %256 %interleaved.vec85 = shufflevector <4 x double> %257, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec85, ptr %data.i.i.i.i.i.i.i.i399.1, align 8, !noalias !4635 %259 = fsub <4 x double> %strided.vec74, %254 %260 = fsub <4 x double> %strided.vec75, %256 %interleaved.vec86 = shufflevector <4 x double> %259, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec86, ptr %data.i5.i.i.i.i.i.i.i413.1, align 8, !noalias !4635 %261 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %262 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec73.1 = load <8 x double>, ptr %261, align 8, !noalias !4635 %strided.vec74.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %strided.vec75.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %wide.vec76.1 = load <8 x double>, ptr %262, align 8, !noalias !4635 %strided.vec77.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %strided.vec78.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %263 = fmul <4 x double> %strided.vec78.1, %broadcast.splat80 %264 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.1, <4 x double> %263) %265 = fmul <4 x double> %broadcast.splat84, %strided.vec77.1 %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.1, <4 x double> %265) %267 = fadd <4 x double> %strided.vec74.1, %264 %268 = fadd <4 x double> %strided.vec75.1, %266 %269 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec85.1 = shufflevector <4 x double> %267, <4 x double> %268, <8 x i32> store <8 x double> %interleaved.vec85.1, ptr %269, align 8, !noalias !4635 %270 = fsub <4 x double> %strided.vec74.1, %264 %271 = fsub <4 x double> %strided.vec75.1, %266 %272 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec86.1 = shufflevector <4 x double> %270, <4 x double> %271, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %272, align 8, !noalias !4635 %273 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %274 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec73.2 = load <8 x double>, ptr %273, align 8, !noalias !4635 %strided.vec74.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %strided.vec75.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %wide.vec76.2 = load <8 x double>, ptr %274, align 8, !noalias !4635 %strided.vec77.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %strided.vec78.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %275 = fmul <4 x double> %strided.vec78.2, %broadcast.splat80 %276 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.2, <4 x double> %275) %277 = fmul <4 x double> %broadcast.splat84, %strided.vec77.2 %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.2, <4 x double> %277) %279 = fadd <4 x double> %strided.vec74.2, %276 %280 = fadd <4 x double> %strided.vec75.2, %278 %281 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec85.2 = shufflevector <4 x double> %279, <4 x double> %280, <8 x i32> store <8 x double> %interleaved.vec85.2, ptr %281, align 8, !noalias !4635 %282 = fsub <4 x double> %strided.vec74.2, %276 %283 = fsub <4 x double> %strided.vec75.2, %278 %284 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec86.2 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %284, align 8, !noalias !4635 %285 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %286 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec73.3 = load <8 x double>, ptr %285, align 8, !noalias !4635 %strided.vec74.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %strided.vec75.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %wide.vec76.3 = load <8 x double>, ptr %286, align 8, !noalias !4635 %strided.vec77.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %strided.vec78.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %287 = fmul <4 x double> %strided.vec78.3, %broadcast.splat80 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.3, <4 x double> %287) %289 = fmul <4 x double> %broadcast.splat84, %strided.vec77.3 %290 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.3, <4 x double> %289) %291 = fadd <4 x double> %strided.vec74.3, %288 %292 = fadd <4 x double> %strided.vec75.3, %290 %293 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec85.3 = shufflevector <4 x double> %291, <4 x double> %292, <8 x i32> store <8 x double> %interleaved.vec85.3, ptr %293, align 8, !noalias !4635 %294 = fsub <4 x double> %strided.vec74.3, %288 %295 = fsub <4 x double> %strided.vec75.3, %290 %296 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec86.3 = shufflevector <4 x double> %294, <4 x double> %295, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %296, align 8, !noalias !4635 %broadcast.splatinsert104 = insertelement <4 x double> poison, double %w1.1.i.i43.i81.1, i64 0 %broadcast.splat105 = shufflevector <4 x double> %broadcast.splatinsert104, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert102 = insertelement <4 x double> poison, double %w1.0.i.i42.i80.1, i64 0 %broadcast.splat103 = shufflevector <4 x double> %broadcast.splatinsert102, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert100 = insertelement <4 x double> poison, double %_6.i.i.i58.i96.1, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %297 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %wide.vec94 = load <8 x double>, ptr %14, align 8, !noalias !4635 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %297, align 8, !noalias !4635 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %298 = fmul <4 x double> %strided.vec99, %broadcast.splat101 %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98, <4 x double> %298) %300 = fmul <4 x double> %broadcast.splat105, %strided.vec98 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99, <4 x double> %300) %302 = fadd <4 x double> %strided.vec95, %299 %303 = fadd <4 x double> %strided.vec96, %301 %interleaved.vec106 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec106, ptr %17, align 8, !noalias !4635 %304 = fsub <4 x double> %strided.vec95, %299 %305 = fsub <4 x double> %strided.vec96, %301 %interleaved.vec107 = shufflevector <4 x double> %304, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec107, ptr %112, align 8, !noalias !4635 %306 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %307 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %wide.vec94.1 = load <8 x double>, ptr %306, align 8, !noalias !4635 %strided.vec95.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %strided.vec96.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %wide.vec97.1 = load <8 x double>, ptr %307, align 8, !noalias !4635 %strided.vec98.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %strided.vec99.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %308 = fmul <4 x double> %strided.vec99.1, %broadcast.splat101 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.1, <4 x double> %308) %310 = fmul <4 x double> %broadcast.splat105, %strided.vec98.1 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.1, <4 x double> %310) %312 = fadd <4 x double> %strided.vec95.1, %309 %313 = fadd <4 x double> %strided.vec96.1, %311 %314 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec106.1 = shufflevector <4 x double> %312, <4 x double> %313, <8 x i32> store <8 x double> %interleaved.vec106.1, ptr %314, align 8, !noalias !4635 %315 = fsub <4 x double> %strided.vec95.1, %309 %316 = fsub <4 x double> %strided.vec96.1, %311 %317 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec107.1 = shufflevector <4 x double> %315, <4 x double> %316, <8 x i32> store <8 x double> %interleaved.vec107.1, ptr %317, align 8, !noalias !4635 %318 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %319 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %wide.vec94.2 = load <8 x double>, ptr %318, align 8, !noalias !4635 %strided.vec95.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %strided.vec96.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %wide.vec97.2 = load <8 x double>, ptr %319, align 8, !noalias !4635 %strided.vec98.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %strided.vec99.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %320 = fmul <4 x double> %strided.vec99.2, %broadcast.splat101 %321 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.2, <4 x double> %320) %322 = fmul <4 x double> %broadcast.splat105, %strided.vec98.2 %323 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.2, <4 x double> %322) %324 = fadd <4 x double> %strided.vec95.2, %321 %325 = fadd <4 x double> %strided.vec96.2, %323 %326 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec106.2 = shufflevector <4 x double> %324, <4 x double> %325, <8 x i32> store <8 x double> %interleaved.vec106.2, ptr %326, align 8, !noalias !4635 %327 = fsub <4 x double> %strided.vec95.2, %321 %328 = fsub <4 x double> %strided.vec96.2, %323 %329 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec107.2 = shufflevector <4 x double> %327, <4 x double> %328, <8 x i32> store <8 x double> %interleaved.vec107.2, ptr %329, align 8, !noalias !4635 %330 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %331 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %wide.vec94.3 = load <8 x double>, ptr %330, align 8, !noalias !4635 %strided.vec95.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %strided.vec96.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %wide.vec97.3 = load <8 x double>, ptr %331, align 8, !noalias !4635 %strided.vec98.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %strided.vec99.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %332 = fmul <4 x double> %strided.vec99.3, %broadcast.splat101 %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.3, <4 x double> %332) %334 = fmul <4 x double> %broadcast.splat105, %strided.vec98.3 %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.3, <4 x double> %334) %336 = fadd <4 x double> %strided.vec95.3, %333 %337 = fadd <4 x double> %strided.vec96.3, %335 %338 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec106.3 = shufflevector <4 x double> %336, <4 x double> %337, <8 x i32> store <8 x double> %interleaved.vec106.3, ptr %338, align 8, !noalias !4635 %339 = fsub <4 x double> %strided.vec95.3, %333 %340 = fsub <4 x double> %strided.vec96.3, %335 %341 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec107.3 = shufflevector <4 x double> %339, <4 x double> %340, <8 x i32> store <8 x double> %interleaved.vec107.3, ptr %341, align 8, !noalias !4635 %342 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.i.i.i126.3 = load double, ptr %342, align 8, !noalias !4635, !noundef !3 %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i126.3, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %343 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.i.i.i125.3 = load double, ptr %343, align 8, !noalias !4635, !noundef !3 %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i125.3, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i141.3 = fneg double %w1.1.i.i.i126.3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i.i.i.i141.3, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %344 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %data.i5.i.i.i.i.i.i.i413.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i.i.i.i.i.i409.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i399.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec115 = load <8 x double>, ptr %data.i.i.i.i.i.i409.3, align 8, !noalias !4635 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %344, align 8, !noalias !4635 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %345 = fmul <4 x double> %strided.vec120, %broadcast.splat122 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119, <4 x double> %345) %347 = fmul <4 x double> %broadcast.splat126, %strided.vec119 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120, <4 x double> %347) %349 = fadd <4 x double> %strided.vec116, %346 %350 = fadd <4 x double> %strided.vec117, %348 %interleaved.vec127 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec127, ptr %data.i.i.i.i.i.i.i.i399.3, align 8, !noalias !4635 %351 = fsub <4 x double> %strided.vec116, %346 %352 = fsub <4 x double> %strided.vec117, %348 %interleaved.vec128 = shufflevector <4 x double> %351, <4 x double> %352, <8 x i32> store <8 x double> %interleaved.vec128, ptr %data.i5.i.i.i.i.i.i.i413.3, align 8, !noalias !4635 %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %354 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %wide.vec115.1 = load <8 x double>, ptr %353, align 8, !noalias !4635 %strided.vec116.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %strided.vec117.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %wide.vec118.1 = load <8 x double>, ptr %354, align 8, !noalias !4635 %strided.vec119.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %strided.vec120.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %355 = fmul <4 x double> %strided.vec120.1, %broadcast.splat122 %356 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.1, <4 x double> %355) %357 = fmul <4 x double> %broadcast.splat126, %strided.vec119.1 %358 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.1, <4 x double> %357) %359 = fadd <4 x double> %strided.vec116.1, %356 %360 = fadd <4 x double> %strided.vec117.1, %358 %361 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec127.1 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec127.1, ptr %361, align 8, !noalias !4635 %362 = fsub <4 x double> %strided.vec116.1, %356 %363 = fsub <4 x double> %strided.vec117.1, %358 %364 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec128.1 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec128.1, ptr %364, align 8, !noalias !4635 %365 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %366 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %wide.vec115.2 = load <8 x double>, ptr %365, align 8, !noalias !4635 %strided.vec116.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %strided.vec117.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %wide.vec118.2 = load <8 x double>, ptr %366, align 8, !noalias !4635 %strided.vec119.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %strided.vec120.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %367 = fmul <4 x double> %strided.vec120.2, %broadcast.splat122 %368 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.2, <4 x double> %367) %369 = fmul <4 x double> %broadcast.splat126, %strided.vec119.2 %370 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.2, <4 x double> %369) %371 = fadd <4 x double> %strided.vec116.2, %368 %372 = fadd <4 x double> %strided.vec117.2, %370 %373 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec127.2 = shufflevector <4 x double> %371, <4 x double> %372, <8 x i32> store <8 x double> %interleaved.vec127.2, ptr %373, align 8, !noalias !4635 %374 = fsub <4 x double> %strided.vec116.2, %368 %375 = fsub <4 x double> %strided.vec117.2, %370 %376 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec128.2 = shufflevector <4 x double> %374, <4 x double> %375, <8 x i32> store <8 x double> %interleaved.vec128.2, ptr %376, align 8, !noalias !4635 %377 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %378 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %wide.vec115.3 = load <8 x double>, ptr %377, align 8, !noalias !4635 %strided.vec116.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %strided.vec117.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %wide.vec118.3 = load <8 x double>, ptr %378, align 8, !noalias !4635 %strided.vec119.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %strided.vec120.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %379 = fmul <4 x double> %strided.vec120.3, %broadcast.splat122 %380 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.3, <4 x double> %379) %381 = fmul <4 x double> %broadcast.splat126, %strided.vec119.3 %382 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.3, <4 x double> %381) %383 = fadd <4 x double> %strided.vec116.3, %380 %384 = fadd <4 x double> %strided.vec117.3, %382 %385 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec127.3 = shufflevector <4 x double> %383, <4 x double> %384, <8 x i32> store <8 x double> %interleaved.vec127.3, ptr %385, align 8, !noalias !4635 %386 = fsub <4 x double> %strided.vec116.3, %380 %387 = fsub <4 x double> %strided.vec117.3, %382 %388 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec128.3 = shufflevector <4 x double> %386, <4 x double> %387, <8 x i32> store <8 x double> %interleaved.vec128.3, ptr %388, align 8, !noalias !4635 br label %bb19.i.i169 bb19.i.i169: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit, %bb19.i.i169 %iter.i.i49.sroa.38.0126 = phi i64 [ %425, %bb19.i.i169 ], [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17hf2c8d0460e4c457bE.exit ] %start1.i.i.i.i.i.i.i.i570 = shl nuw nsw i64 %iter.i.i49.sroa.38.0126, 3 %data.i.i.i.i.i.i.i.i571 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i570 %start1.i.i.i.i.i.i580 = shl nuw nsw i64 %iter.i.i49.sroa.38.0126, 4 %data.i.i.i.i.i.i581 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i580 %data.i5.i.i.i.i.i.i.i585 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %start1.i.i.i.i.i.i.i.i570 %389 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i570, i64 1 %w1.0.i.i171 = load double, ptr %389, align 8, !noalias !4635, !noundef !3 %390 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i570, i64 1, i32 1 %w1.1.i.i172 = load double, ptr %390, align 8, !noalias !4635, !noundef !3 %391 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 8 %_6.i.i.i187 = fneg double %w1.1.i.i172 %392 = load <4 x double>, ptr %data.i.i.i.i.i.i581, align 8, !noalias !4635 %393 = load <4 x double>, ptr %391, align 8, !noalias !4635 %394 = insertelement <4 x double> poison, double %_6.i.i.i187, i64 0 %395 = insertelement <4 x double> %394, double %w1.1.i.i172, i64 1 %396 = shufflevector <4 x double> %395, <4 x double> poison, <4 x i32> %397 = fmul <4 x double> %396, %393 %398 = shufflevector <4 x double> %397, <4 x double> poison, <4 x i32> %399 = insertelement <4 x double> poison, double %w1.0.i.i171, i64 0 %400 = shufflevector <4 x double> %399, <4 x double> poison, <4 x i32> zeroinitializer %401 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %400, <4 x double> %393, <4 x double> %398) %402 = fadd <4 x double> %392, %401 store <4 x double> %402, ptr %data.i.i.i.i.i.i.i.i571, align 8, !noalias !4635 %403 = fsub <4 x double> %392, %401 store <4 x double> %403, ptr %data.i5.i.i.i.i.i.i.i585, align 8, !noalias !4635 %_3.i.i.i.i.i.i.i.i630.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i571, i64 2 %_3.i2.i.i.i.i.i.i.i633.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i585, i64 2 %_3.i.i.i.i.i.i636.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 2 %_3.i.i.i.i639.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 10 %404 = load <4 x double>, ptr %_3.i.i.i.i.i.i636.2, align 8, !noalias !4635 %405 = load <4 x double>, ptr %_3.i.i.i.i639.2, align 8, !noalias !4635 %406 = fmul <4 x double> %396, %405 %407 = shufflevector <4 x double> %406, <4 x double> poison, <4 x i32> %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %400, <4 x double> %405, <4 x double> %407) %409 = fadd <4 x double> %404, %408 store <4 x double> %409, ptr %_3.i.i.i.i.i.i.i.i630.2, align 8, !noalias !4635 %410 = fsub <4 x double> %404, %408 store <4 x double> %410, ptr %_3.i2.i.i.i.i.i.i.i633.2, align 8, !noalias !4635 %_3.i.i.i.i.i.i.i.i630.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i571, i64 4 %_3.i2.i.i.i.i.i.i.i633.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i585, i64 4 %_3.i.i.i.i.i.i636.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 4 %_3.i.i.i.i639.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 12 %411 = load <4 x double>, ptr %_3.i.i.i.i.i.i636.4, align 8, !noalias !4635 %412 = load <4 x double>, ptr %_3.i.i.i.i639.4, align 8, !noalias !4635 %413 = fmul <4 x double> %396, %412 %414 = shufflevector <4 x double> %413, <4 x double> poison, <4 x i32> %415 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %400, <4 x double> %412, <4 x double> %414) %416 = fadd <4 x double> %411, %415 store <4 x double> %416, ptr %_3.i.i.i.i.i.i.i.i630.4, align 8, !noalias !4635 %417 = fsub <4 x double> %411, %415 store <4 x double> %417, ptr %_3.i2.i.i.i.i.i.i.i633.4, align 8, !noalias !4635 %_3.i.i.i.i.i.i.i.i630.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i571, i64 6 %_3.i2.i.i.i.i.i.i.i633.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i585, i64 6 %_3.i.i.i.i.i.i636.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 6 %_3.i.i.i.i639.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i581, i64 14 %418 = load <4 x double>, ptr %_3.i.i.i.i.i.i636.6, align 8, !noalias !4635 %419 = load <4 x double>, ptr %_3.i.i.i.i639.6, align 8, !noalias !4635 %420 = fmul <4 x double> %396, %419 %421 = shufflevector <4 x double> %420, <4 x double> poison, <4 x i32> %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %400, <4 x double> %419, <4 x double> %421) %423 = fadd <4 x double> %418, %422 store <4 x double> %423, ptr %_3.i.i.i.i.i.i.i.i630.6, align 8, !noalias !4635 %424 = fsub <4 x double> %418, %422 store <4 x double> %424, ptr %_3.i2.i.i.i.i.i.i.i633.6, align 8, !noalias !4635 %425 = add nuw nsw i64 %iter.i.i49.sroa.38.0126, 1 %exitcond138.not = icmp eq i64 %425, 8 br i1 %exitcond138.not, label %vector.body134, label %bb19.i.i169 vector.body134: ; preds = %bb19.i.i169, %vector.body134 %index135 = phi i64 [ %index.next155, %vector.body134 ], [ 0, %bb19.i.i169 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body134 ], [ , %bb19.i.i169 ] %426 = shl nuw nsw <4 x i64> %vec.ind, %427 = extractelement <4 x i64> %426, i64 0 %428 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %427 %429 = shl nuw nsw <4 x i64> %vec.ind, %430 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %429 %431 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %427 %432 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %426, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %432, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %433 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %426, i64 1, i32 1 %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %433, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %434 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 4 %435 = fneg <4 x double> %wide.masked.gather136 %wide.masked.gather137 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %430, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %436 = getelementptr inbounds i8, <4 x ptr> %430, i64 8 %wide.masked.gather138 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %wide.masked.gather139 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %434, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 4, i32 1 %wide.masked.gather140 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %438 = fmul <4 x double> %wide.masked.gather140, %435 %439 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather139, <4 x double> %438) %440 = fmul <4 x double> %wide.masked.gather136, %wide.masked.gather139 %441 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather140, <4 x double> %440) %442 = fadd <4 x double> %wide.masked.gather137, %439 %443 = fadd <4 x double> %wide.masked.gather138, %441 %444 = fsub <4 x double> %wide.masked.gather137, %439 %445 = fsub <4 x double> %wide.masked.gather138, %441 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 1 %447 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 5 %wide.masked.gather141 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %448 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 1, i32 1 %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %448, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %449 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 5, i32 1 %wide.masked.gather144 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %449, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %450 = fmul <4 x double> %wide.masked.gather144, %435 %451 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather143, <4 x double> %450) %452 = fmul <4 x double> %wide.masked.gather136, %wide.masked.gather143 %453 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather144, <4 x double> %452) %454 = fadd <4 x double> %wide.masked.gather141, %451 %455 = fadd <4 x double> %wide.masked.gather142, %453 %456 = fsub <4 x double> %wide.masked.gather141, %451 %457 = fsub <4 x double> %wide.masked.gather142, %453 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 2 %459 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 6 %wide.masked.gather145 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %460 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 2, i32 1 %wide.masked.gather146 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %460, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %wide.masked.gather147 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %459, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %461 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 6, i32 1 %wide.masked.gather148 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %461, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %462 = fmul <4 x double> %wide.masked.gather148, %435 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather147, <4 x double> %462) %464 = fmul <4 x double> %wide.masked.gather136, %wide.masked.gather147 %465 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather148, <4 x double> %464) %466 = fadd <4 x double> %wide.masked.gather145, %463 %467 = fadd <4 x double> %wide.masked.gather146, %465 %468 = fsub <4 x double> %wide.masked.gather145, %463 %469 = fsub <4 x double> %wide.masked.gather146, %465 %470 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 3 %471 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 7 %wide.masked.gather149 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %470, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %472 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 3, i32 1 %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %472, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %471, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %473 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %430, i64 7, i32 1 %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %473, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %474 = fmul <4 x double> %wide.masked.gather152, %435 %475 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather151, <4 x double> %474) %476 = fmul <4 x double> %wide.masked.gather136, %wide.masked.gather151 %477 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather152, <4 x double> %476) %478 = fadd <4 x double> %wide.masked.gather149, %475 %479 = fadd <4 x double> %wide.masked.gather150, %477 %480 = shufflevector <4 x double> %442, <4 x double> %443, <8 x i32> %481 = shufflevector <4 x double> %454, <4 x double> %455, <8 x i32> %482 = shufflevector <4 x double> %466, <4 x double> %467, <8 x i32> %483 = shufflevector <4 x double> %478, <4 x double> %479, <8 x i32> %484 = shufflevector <8 x double> %480, <8 x double> %481, <16 x i32> %485 = shufflevector <8 x double> %482, <8 x double> %483, <16 x i32> %interleaved.vec153 = shufflevector <16 x double> %484, <16 x double> %485, <32 x i32> store <32 x double> %interleaved.vec153, ptr %428, align 8, !noalias !4635 %486 = fsub <4 x double> %wide.masked.gather149, %475 %487 = fsub <4 x double> %wide.masked.gather150, %477 %488 = shufflevector <4 x double> %444, <4 x double> %445, <8 x i32> %489 = shufflevector <4 x double> %456, <4 x double> %457, <8 x i32> %490 = shufflevector <4 x double> %468, <4 x double> %469, <8 x i32> %491 = shufflevector <4 x double> %486, <4 x double> %487, <8 x i32> %492 = shufflevector <8 x double> %488, <8 x double> %489, <16 x i32> %493 = shufflevector <8 x double> %490, <8 x double> %491, <16 x i32> %interleaved.vec154 = shufflevector <16 x double> %492, <16 x double> %493, <32 x i32> store <32 x double> %interleaved.vec154, ptr %431, align 8, !noalias !4635 %index.next155 = add nuw i64 %index135, 4 %vec.ind.next = add <4 x i64> %vec.ind, %494 = icmp eq i64 %index.next155, 16 br i1 %494, label %vector.body160, label %vector.body134, !llvm.loop !4639 vector.body160: ; preds = %vector.body134, %vector.body160 %index161 = phi i64 [ %index.next176, %vector.body160 ], [ 0, %vector.body134 ] %vec.ind162 = phi <4 x i64> [ %vec.ind.next163, %vector.body160 ], [ , %vector.body134 ] %495 = shl nuw nsw <4 x i64> %vec.ind162, %496 = extractelement <4 x i64> %495, i64 0 %497 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %496 %498 = shl nuw nsw <4 x i64> %vec.ind162, %499 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %498 %500 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %496 %501 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %495, i64 1 %wide.masked.gather164 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %501, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %502 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %495, i64 1, i32 1 %wide.masked.gather165 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %502, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %503 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %499, i64 2 %504 = fneg <4 x double> %wide.masked.gather165 %wide.masked.gather166 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %499, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %505 = getelementptr inbounds i8, <4 x ptr> %499, i64 8 %wide.masked.gather167 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %505, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %wide.masked.gather168 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %503, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %506 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %499, i64 2, i32 1 %wide.masked.gather169 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %506, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %507 = fmul <4 x double> %wide.masked.gather169, %504 %508 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather164, <4 x double> %wide.masked.gather168, <4 x double> %507) %509 = fmul <4 x double> %wide.masked.gather165, %wide.masked.gather168 %510 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather164, <4 x double> %wide.masked.gather169, <4 x double> %509) %511 = fadd <4 x double> %wide.masked.gather166, %508 %512 = fadd <4 x double> %wide.masked.gather167, %510 %513 = fsub <4 x double> %wide.masked.gather166, %508 %514 = fsub <4 x double> %wide.masked.gather167, %510 %515 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %499, i64 1 %516 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %499, i64 3 %wide.masked.gather170 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %515, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %517 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %499, i64 1, i32 1 %wide.masked.gather171 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %517, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %wide.masked.gather172 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %516, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %518 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %499, i64 3, i32 1 %wide.masked.gather173 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %518, i32 8, <4 x i1> , <4 x double> poison), !noalias !4635 %519 = fmul <4 x double> %wide.masked.gather173, %504 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather164, <4 x double> %wide.masked.gather172, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather165, %wide.masked.gather172 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather164, <4 x double> %wide.masked.gather173, <4 x double> %521) %523 = fadd <4 x double> %wide.masked.gather170, %520 %524 = fadd <4 x double> %wide.masked.gather171, %522 %525 = shufflevector <4 x double> %511, <4 x double> %512, <8 x i32> %526 = shufflevector <4 x double> %523, <4 x double> %524, <8 x i32> %interleaved.vec174 = shufflevector <8 x double> %525, <8 x double> %526, <16 x i32> store <16 x double> %interleaved.vec174, ptr %497, align 8, !noalias !4635 %527 = fsub <4 x double> %wide.masked.gather170, %520 %528 = fsub <4 x double> %wide.masked.gather171, %522 %529 = shufflevector <4 x double> %513, <4 x double> %514, <8 x i32> %530 = shufflevector <4 x double> %527, <4 x double> %528, <8 x i32> %interleaved.vec175 = shufflevector <8 x double> %529, <8 x double> %530, <16 x i32> store <16 x double> %interleaved.vec175, ptr %500, align 8, !noalias !4635 %index.next176 = add nuw i64 %index161, 4 %vec.ind.next163 = add <4 x i64> %vec.ind162, %531 = icmp eq i64 %index.next176, 28 br i1 %531, label %bb19.i.i.i, label %vector.body160, !llvm.loop !4640 bb19.i.i.i: ; preds = %vector.body160 %data.i.i.i.i.i.i.i.i915 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i.i.i.i.i.i925 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i5.i.i.i.i.i.i.i929 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %532 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 56, i64 1 %w1.0.i.i.i = load double, ptr %532, align 8, !noalias !4635, !noundef !3 %533 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 56, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %533, align 8, !noalias !4635, !noundef !3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 114 %_6.i.i.i.i = fneg double %w1.1.i.i.i %535 = load <4 x double>, ptr %data.i.i.i.i.i.i925, align 8, !noalias !4635 %536 = load <4 x double>, ptr %534, align 8, !noalias !4635 %537 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %538 = insertelement <4 x double> %537, double %w1.1.i.i.i, i64 1 %539 = shufflevector <4 x double> %538, <4 x double> poison, <4 x i32> %540 = fmul <4 x double> %539, %536 %541 = shufflevector <4 x double> %540, <4 x double> poison, <4 x i32> %542 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %543 = shufflevector <4 x double> %542, <4 x double> poison, <4 x i32> zeroinitializer %544 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %543, <4 x double> %536, <4 x double> %541) %545 = fadd <4 x double> %535, %544 store <4 x double> %545, ptr %data.i.i.i.i.i.i.i.i915, align 8, !noalias !4635 %546 = fsub <4 x double> %535, %544 store <4 x double> %546, ptr %data.i5.i.i.i.i.i.i.i929, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i915.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %data.i.i.i.i.i.i925.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %data.i5.i.i.i.i.i.i.i929.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %547 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 58, i64 1 %w1.0.i.i.i.1 = load double, ptr %547, align 8, !noalias !4635, !noundef !3 %548 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 58, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %548, align 8, !noalias !4635, !noundef !3 %549 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 118 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %550 = load <4 x double>, ptr %data.i.i.i.i.i.i925.1, align 8, !noalias !4635 %551 = load <4 x double>, ptr %549, align 8, !noalias !4635 %552 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %553 = insertelement <4 x double> %552, double %w1.1.i.i.i.1, i64 1 %554 = shufflevector <4 x double> %553, <4 x double> poison, <4 x i32> %555 = fmul <4 x double> %554, %551 %556 = shufflevector <4 x double> %555, <4 x double> poison, <4 x i32> %557 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %558 = shufflevector <4 x double> %557, <4 x double> poison, <4 x i32> zeroinitializer %559 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %558, <4 x double> %551, <4 x double> %556) %560 = fadd <4 x double> %550, %559 store <4 x double> %560, ptr %data.i.i.i.i.i.i.i.i915.1, align 8, !noalias !4635 %561 = fsub <4 x double> %550, %559 store <4 x double> %561, ptr %data.i5.i.i.i.i.i.i.i929.1, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i915.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %data.i.i.i.i.i.i925.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %data.i5.i.i.i.i.i.i.i929.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %562 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i.i.2 = load double, ptr %562, align 8, !noalias !4635, !noundef !3 %563 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %563, align 8, !noalias !4635, !noundef !3 %564 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 122 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %565 = load <4 x double>, ptr %data.i.i.i.i.i.i925.2, align 8, !noalias !4635 %566 = load <4 x double>, ptr %564, align 8, !noalias !4635 %567 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %568 = insertelement <4 x double> %567, double %w1.1.i.i.i.2, i64 1 %569 = shufflevector <4 x double> %568, <4 x double> poison, <4 x i32> %570 = fmul <4 x double> %569, %566 %571 = shufflevector <4 x double> %570, <4 x double> poison, <4 x i32> %572 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %573 = shufflevector <4 x double> %572, <4 x double> poison, <4 x i32> zeroinitializer %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %573, <4 x double> %566, <4 x double> %571) %575 = fadd <4 x double> %565, %574 store <4 x double> %575, ptr %data.i.i.i.i.i.i.i.i915.2, align 8, !noalias !4635 %576 = fsub <4 x double> %565, %574 store <4 x double> %576, ptr %data.i5.i.i.i.i.i.i.i929.2, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i915.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %data.i.i.i.i.i.i925.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i5.i.i.i.i.i.i.i929.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %577 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.i.3 = load double, ptr %577, align 8, !noalias !4635, !noundef !3 %578 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %578, align 8, !noalias !4635, !noundef !3 %579 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %580 = load <4 x double>, ptr %data.i.i.i.i.i.i925.3, align 8, !noalias !4635 %581 = load <4 x double>, ptr %579, align 8, !noalias !4635 %582 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %583 = insertelement <4 x double> %582, double %w1.1.i.i.i.3, i64 1 %584 = shufflevector <4 x double> %583, <4 x double> poison, <4 x i32> %585 = fmul <4 x double> %584, %581 %586 = shufflevector <4 x double> %585, <4 x double> poison, <4 x i32> %587 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %588 = shufflevector <4 x double> %587, <4 x double> poison, <4 x i32> zeroinitializer %589 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %588, <4 x double> %581, <4 x double> %586) %590 = fadd <4 x double> %580, %589 store <4 x double> %590, ptr %data.i.i.i.i.i.i.i.i915.3, align 8, !noalias !4635 %591 = fsub <4 x double> %580, %589 store <4 x double> %591, ptr %data.i5.i.i.i.i.i.i.i929.3, align 8, !noalias !4635 br label %vector.body181 vector.body181: ; preds = %bb19.i.i.i, %vector.body181 %index182 = phi i64 [ %index.next193, %vector.body181 ], [ 0, %bb19.i.i.i ] %592 = shl i64 %index182, 1 %593 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %592 %594 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index182, i64 1 %wide.vec183 = load <16 x double>, ptr %594, align 8, !noalias !4635 %strided.vec184 = shufflevector <16 x double> %wide.vec183, <16 x double> poison, <4 x i32> %strided.vec185 = shufflevector <16 x double> %wide.vec183, <16 x double> poison, <4 x i32> %595 = fneg <4 x double> %strided.vec185 %wide.vec186 = load <16 x double>, ptr %593, align 8, !noalias !4635 %strided.vec187 = shufflevector <16 x double> %wide.vec186, <16 x double> poison, <4 x i32> %strided.vec188 = shufflevector <16 x double> %wide.vec186, <16 x double> poison, <4 x i32> %strided.vec189 = shufflevector <16 x double> %wide.vec186, <16 x double> poison, <4 x i32> %strided.vec190 = shufflevector <16 x double> %wide.vec186, <16 x double> poison, <4 x i32> %596 = fmul <4 x double> %strided.vec190, %595 %597 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec184, <4 x double> %strided.vec189, <4 x double> %596) %598 = fmul <4 x double> %strided.vec185, %strided.vec189 %599 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec184, <4 x double> %strided.vec190, <4 x double> %598) %600 = fadd <4 x double> %strided.vec187, %597 %601 = fadd <4 x double> %strided.vec188, %599 %602 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index182 %interleaved.vec191 = shufflevector <4 x double> %600, <4 x double> %601, <8 x i32> store <8 x double> %interleaved.vec191, ptr %602, align 8, !noalias !4635 %603 = fsub <4 x double> %strided.vec187, %597 %604 = fsub <4 x double> %strided.vec188, %599 %605 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index182 %interleaved.vec192 = shufflevector <4 x double> %603, <4 x double> %604, <8 x i32> store <8 x double> %interleaved.vec192, ptr %605, align 8, !noalias !4635 %index.next193 = add nuw i64 %index182, 4 %606 = icmp eq i64 %index.next193, 60 br i1 %606, label %bb19.i.i, label %vector.body181, !llvm.loop !4641 bb19.i.i: ; preds = %vector.body181 %data.i.i.i.i.i.i.i.i1081 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i1091 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %data.i5.i.i.i.i.i.i.i1095 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %607 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i = load double, ptr %607, align 8, !noalias !4635, !noundef !3 %608 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i = load double, ptr %608, align 8, !noalias !4635, !noundef !3 %609 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121 %_6.i.i.i = fneg double %w1.1.i.i %610 = load <2 x double>, ptr %data.i.i.i.i.i.i1091, align 8, !noalias !4635 %611 = load <2 x double>, ptr %609, align 8, !noalias !4635 %612 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %613 = insertelement <2 x double> %612, double %_6.i.i.i, i64 1 %614 = fmul <2 x double> %611, %613 %615 = shufflevector <2 x double> %614, <2 x double> poison, <2 x i32> %616 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %617 = shufflevector <2 x double> %616, <2 x double> poison, <2 x i32> zeroinitializer %618 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %617, <2 x double> %611, <2 x double> %615) %619 = fadd <2 x double> %610, %618 store <2 x double> %619, ptr %data.i.i.i.i.i.i.i.i1081, align 8, !noalias !4635 %620 = fsub <2 x double> %610, %618 store <2 x double> %620, ptr %data.i5.i.i.i.i.i.i.i1095, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i1081.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i1091.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %data.i5.i.i.i.i.i.i.i1095.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %621 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1 %w1.0.i.i.1 = load double, ptr %621, align 8, !noalias !4635, !noundef !3 %622 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %622, align 8, !noalias !4635, !noundef !3 %623 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %624 = load <2 x double>, ptr %data.i.i.i.i.i.i1091.1, align 8, !noalias !4635 %625 = load <2 x double>, ptr %623, align 8, !noalias !4635 %626 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %627 = insertelement <2 x double> %626, double %_6.i.i.i.1, i64 1 %628 = fmul <2 x double> %625, %627 %629 = shufflevector <2 x double> %628, <2 x double> poison, <2 x i32> %630 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %631 = shufflevector <2 x double> %630, <2 x double> poison, <2 x i32> zeroinitializer %632 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %631, <2 x double> %625, <2 x double> %629) %633 = fadd <2 x double> %624, %632 store <2 x double> %633, ptr %data.i.i.i.i.i.i.i.i1081.1, align 8, !noalias !4635 %634 = fsub <2 x double> %624, %632 store <2 x double> %634, ptr %data.i5.i.i.i.i.i.i.i1095.1, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i1081.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i1091.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %data.i5.i.i.i.i.i.i.i1095.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %635 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.2 = load double, ptr %635, align 8, !noalias !4635, !noundef !3 %636 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %636, align 8, !noalias !4635, !noundef !3 %637 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %638 = load <2 x double>, ptr %data.i.i.i.i.i.i1091.2, align 8, !noalias !4635 %639 = load <2 x double>, ptr %637, align 8, !noalias !4635 %640 = insertelement <2 x double> poison, double %w1.1.i.i.2, i64 0 %641 = insertelement <2 x double> %640, double %_6.i.i.i.2, i64 1 %642 = fmul <2 x double> %639, %641 %643 = shufflevector <2 x double> %642, <2 x double> poison, <2 x i32> %644 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %645 = shufflevector <2 x double> %644, <2 x double> poison, <2 x i32> zeroinitializer %646 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %645, <2 x double> %639, <2 x double> %643) %647 = fadd <2 x double> %638, %646 store <2 x double> %647, ptr %data.i.i.i.i.i.i.i.i1081.2, align 8, !noalias !4635 %648 = fsub <2 x double> %638, %646 store <2 x double> %648, ptr %data.i5.i.i.i.i.i.i.i1095.2, align 8, !noalias !4635 %data.i.i.i.i.i.i.i.i1081.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i1091.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %data.i5.i.i.i.i.i.i.i1095.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %649 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1 %w1.0.i.i.3 = load double, ptr %649, align 8, !noalias !4635, !noundef !3 %650 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %650, align 8, !noalias !4635, !noundef !3 %651 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %652 = load <2 x double>, ptr %data.i.i.i.i.i.i1091.3, align 8, !noalias !4635 %653 = load <2 x double>, ptr %651, align 8, !noalias !4635 %654 = insertelement <2 x double> poison, double %w1.1.i.i.3, i64 0 %655 = insertelement <2 x double> %654, double %_6.i.i.i.3, i64 1 %656 = fmul <2 x double> %653, %655 %657 = shufflevector <2 x double> %656, <2 x double> poison, <2 x i32> %658 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %659 = shufflevector <2 x double> %658, <2 x double> poison, <2 x i32> zeroinitializer %660 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %659, <2 x double> %653, <2 x double> %657) %661 = fadd <2 x double> %652, %660 store <2 x double> %661, ptr %data.i.i.i.i.i.i.i.i1081.3, align 8, !noalias !4635 %662 = fsub <2 x double> %652, %660 store <2 x double> %662, ptr %data.i5.i.i.i.i.i.i.i1095.3, align 8, !noalias !4635 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4635 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9e1ca0a4cf24a045E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h0208ae049bc5a14dE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17h9fff76fa583a3407E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4642 store i64 512, ptr %n.i, align 8, !noalias !4642 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4642 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4642 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4642 store ptr null, ptr %_16.i, align 8, !noalias !4642 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4642 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4642 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4642 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4642 store ptr null, ptr %_24.i, align 8, !noalias !4642 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4642 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4642 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4642 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4642 store ptr null, ptr %_32.i, align 8, !noalias !4642 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4642 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4642 store i64 %w.1, ptr %_34.i, align 8, !noalias !4642 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %bb9.i.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4642 store ptr null, ptr %_40.i, align 8, !noalias !4642 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4642 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !4642 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !4642 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !4642 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !4642 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !4642 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !4642 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !4642 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !4642 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 256 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, label %vector.body, !llvm.loop !4645 _ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i91.i.i = load double, ptr %20, align 8, !noalias !4642, !noundef !3 %_6.i.i.i.i138.i.i = fneg double %w3.1.i.i.i91.i.i %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i89.i.i = load double, ptr %21, align 8, !noalias !4642, !noundef !3 %_6.i36.i.i.i133.i.i = fneg double %w2.1.i.i.i89.i.i %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i87.i.i = load double, ptr %22, align 8, !noalias !4642, !noundef !3 %_6.i39.i.i.i128.i.i = fneg double %w1.1.i.i.i87.i.i %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i90.i.i = load double, ptr %23, align 8, !noalias !4642, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i88.i.i = load double, ptr %24, align 8, !noalias !4642, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i86.i.i = load double, ptr %25, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit %index11 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %index.next44, %vector.body10 ] %26 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index11 %27 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index11 %28 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index11 %29 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index11 %wide.vec12 = load <8 x double>, ptr %26, align 8, !noalias !4642 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %27, align 8, !noalias !4642 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %30 = fmul <4 x double> %strided.vec17, %broadcast.splat %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %30) %32 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %32) %wide.vec22 = load <8 x double>, ptr %28, align 8, !noalias !4642 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %34 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %35 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %34) %36 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %36) %wide.vec31 = load <8 x double>, ptr %29, align 8, !noalias !4642 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %38 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %38) %40 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %40) %42 = fadd <4 x double> %strided.vec13, %35 %43 = fadd <4 x double> %strided.vec14, %37 %44 = fsub <4 x double> %strided.vec13, %35 %45 = fsub <4 x double> %strided.vec14, %37 %46 = fadd <4 x double> %31, %39 %47 = fadd <4 x double> %33, %41 %48 = fsub <4 x double> %31, %39 %49 = fsub <4 x double> %33, %41 %50 = fadd <4 x double> %42, %46 %51 = fadd <4 x double> %43, %47 %52 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index11 %interleaved.vec40 = shufflevector <4 x double> %50, <4 x double> %51, <8 x i32> store <8 x double> %interleaved.vec40, ptr %52, align 8, !noalias !4642 %53 = fadd <4 x double> %44, %49 %54 = fsub <4 x double> %45, %48 %55 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %index11 %interleaved.vec41 = shufflevector <4 x double> %53, <4 x double> %54, <8 x i32> store <8 x double> %interleaved.vec41, ptr %55, align 8, !noalias !4642 %56 = fsub <4 x double> %42, %46 %57 = fsub <4 x double> %43, %47 %58 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index11 %interleaved.vec42 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec42, ptr %58, align 8, !noalias !4642 %59 = fsub <4 x double> %44, %49 %60 = fadd <4 x double> %45, %48 %61 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index11 %interleaved.vec43 = shufflevector <4 x double> %59, <4 x double> %60, <8 x i32> store <8 x double> %interleaved.vec43, ptr %61, align 8, !noalias !4642 %index.next44 = add nuw i64 %index11, 4 %62 = icmp eq i64 %index.next44, 64 br i1 %62, label %bb20.i.i.i71.i.i.loopexit, label %vector.body10, !llvm.loop !4646 bb20.i.i.i71.i.i.loopexit: ; preds = %vector.body10 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %63 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %64 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %65 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.i.i.i91.i.i.1 = load double, ptr %66, align 8, !noalias !4642, !noundef !3 %_6.i.i.i.i138.i.i.1 = fneg double %w3.1.i.i.i91.i.i.1 %67 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.i.i.i89.i.i.1 = load double, ptr %67, align 8, !noalias !4642, !noundef !3 %_6.i36.i.i.i133.i.i.1 = fneg double %w2.1.i.i.i89.i.i.1 %68 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i87.i.i.1 = load double, ptr %68, align 8, !noalias !4642, !noundef !3 %_6.i39.i.i.i128.i.i.1 = fneg double %w1.1.i.i.i87.i.i.1 %69 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.i.i.i90.i.i.1 = load double, ptr %69, align 8, !noalias !4642, !noundef !3 %70 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.i.i.i88.i.i.1 = load double, ptr %70, align 8, !noalias !4642, !noundef !3 %71 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i86.i.i.1 = load double, ptr %71, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert57 = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i.i.1, i64 0 %broadcast.splat58 = shufflevector <4 x double> %broadcast.splatinsert57, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert59 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i.i.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i.i.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i.i.1, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i.i.1, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i.i.1, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i.i.1, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert77 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i.i.1, i64 0 %broadcast.splat78 = shufflevector <4 x double> %broadcast.splatinsert77, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert79 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i.i.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body49 vector.body49: ; preds = %vector.body49, %bb20.i.i.i71.i.i.loopexit %index50 = phi i64 [ 0, %bb20.i.i.i71.i.i.loopexit ], [ %index.next85, %vector.body49 ] %72 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index50 %73 = getelementptr inbounds %"num_complex::Complex", ptr %64, i64 %index50 %74 = getelementptr inbounds %"num_complex::Complex", ptr %63, i64 %index50 %75 = getelementptr inbounds %"num_complex::Complex", ptr %65, i64 %index50 %wide.vec51 = load <8 x double>, ptr %72, align 8, !noalias !4642 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %73, align 8, !noalias !4642 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %76 = fmul <4 x double> %strided.vec56, %broadcast.splat58 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55, <4 x double> %76) %78 = fmul <4 x double> %broadcast.splat62, %strided.vec55 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56, <4 x double> %78) %wide.vec63 = load <8 x double>, ptr %74, align 8, !noalias !4642 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %80 = fmul <4 x double> %strided.vec65, %broadcast.splat67 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64, <4 x double> %80) %82 = fmul <4 x double> %broadcast.splat71, %strided.vec64 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65, <4 x double> %82) %wide.vec72 = load <8 x double>, ptr %75, align 8, !noalias !4642 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %84 = fmul <4 x double> %strided.vec74, %broadcast.splat76 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73, <4 x double> %84) %86 = fmul <4 x double> %broadcast.splat80, %strided.vec73 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74, <4 x double> %86) %88 = fadd <4 x double> %strided.vec52, %81 %89 = fadd <4 x double> %strided.vec53, %83 %90 = fsub <4 x double> %strided.vec52, %81 %91 = fsub <4 x double> %strided.vec53, %83 %92 = fadd <4 x double> %77, %85 %93 = fadd <4 x double> %79, %87 %94 = fsub <4 x double> %77, %85 %95 = fsub <4 x double> %79, %87 %96 = fadd <4 x double> %88, %92 %97 = fadd <4 x double> %89, %93 %98 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec81 = shufflevector <4 x double> %96, <4 x double> %97, <8 x i32> store <8 x double> %interleaved.vec81, ptr %98, align 8, !noalias !4642 %99 = fadd <4 x double> %90, %95 %100 = fsub <4 x double> %91, %94 %101 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec82 = shufflevector <4 x double> %99, <4 x double> %100, <8 x i32> store <8 x double> %interleaved.vec82, ptr %101, align 8, !noalias !4642 %102 = fsub <4 x double> %88, %92 %103 = fsub <4 x double> %89, %93 %104 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec83 = shufflevector <4 x double> %102, <4 x double> %103, <8 x i32> store <8 x double> %interleaved.vec83, ptr %104, align 8, !noalias !4642 %105 = fsub <4 x double> %90, %95 %106 = fadd <4 x double> %91, %94 %107 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec84 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec84, ptr %107, align 8, !noalias !4642 %index.next85 = add nuw i64 %index50, 4 %108 = icmp eq i64 %index.next85, 64 br i1 %108, label %bb20.i.i.i71.i.i.loopexit.1, label %vector.body49, !llvm.loop !4647 bb20.i.i.i71.i.i.loopexit.1: ; preds = %vector.body49 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 br label %bb24.i.i.i.i.i vector.body131: ; preds = %bb24.i.i.i.i.i, %vector.body131 %index132 = phi i64 [ %index.next174, %vector.body131 ], [ 0, %bb24.i.i.i.i.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body131 ], [ , %bb24.i.i.i.i.i ] %110 = shl nuw nsw <4 x i64> %vec.ind, %111 = extractelement <4 x i64> %110, i64 0 %112 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %111 %113 = shl nuw nsw <4 x i64> %vec.ind, %114 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %113 %115 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %111 %116 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %111 %117 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %111 %118 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %118, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %119 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 1, i32 1 %wide.masked.gather133 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %120 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 2 %wide.masked.gather134 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %121 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 2, i32 1 %wide.masked.gather135 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %122 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 3 %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %123 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 3, i32 1 %wide.masked.gather137 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %124 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 8 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 4 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 12 %127 = fneg <4 x double> %wide.masked.gather133 %128 = fneg <4 x double> %wide.masked.gather135 %129 = fneg <4 x double> %wide.masked.gather137 %wide.masked.gather138 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %114, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %130 = getelementptr inbounds i8, <4 x ptr> %114, i64 8 %wide.masked.gather139 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %wide.masked.gather140 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 4, i32 1 %wide.masked.gather141 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %132 = fmul <4 x double> %wide.masked.gather141, %127 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather140, <4 x double> %132) %134 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather140 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather141, <4 x double> %134) %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 8, i32 1 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %137 = fmul <4 x double> %wide.masked.gather143, %128 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather142, <4 x double> %137) %139 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather142 %140 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather143, <4 x double> %139) %wide.masked.gather144 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %141 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 12, i32 1 %wide.masked.gather145 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %142 = fmul <4 x double> %wide.masked.gather145, %129 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather144, <4 x double> %142) %144 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather144 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather145, <4 x double> %144) %146 = fadd <4 x double> %wide.masked.gather138, %138 %147 = fadd <4 x double> %wide.masked.gather139, %140 %148 = fsub <4 x double> %wide.masked.gather138, %138 %149 = fsub <4 x double> %wide.masked.gather139, %140 %150 = fadd <4 x double> %133, %143 %151 = fadd <4 x double> %135, %145 %152 = fsub <4 x double> %133, %143 %153 = fsub <4 x double> %135, %145 %154 = fadd <4 x double> %146, %150 %155 = fadd <4 x double> %147, %151 %156 = fadd <4 x double> %148, %153 %157 = fsub <4 x double> %149, %152 %158 = fsub <4 x double> %146, %150 %159 = fsub <4 x double> %147, %151 %160 = fsub <4 x double> %148, %153 %161 = fadd <4 x double> %149, %152 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 1 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 5 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 9 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 13 %wide.masked.gather146 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 1, i32 1 %wide.masked.gather147 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %wide.masked.gather148 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %167 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 5, i32 1 %wide.masked.gather149 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %168 = fmul <4 x double> %wide.masked.gather149, %127 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather148, <4 x double> %168) %170 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather148 %171 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather149, <4 x double> %170) %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %172 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 9, i32 1 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %173 = fmul <4 x double> %wide.masked.gather151, %128 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather150, <4 x double> %173) %175 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather150 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather151, <4 x double> %175) %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %177 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 13, i32 1 %wide.masked.gather153 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %178 = fmul <4 x double> %wide.masked.gather153, %129 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather152, <4 x double> %178) %180 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather152 %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather153, <4 x double> %180) %182 = fadd <4 x double> %wide.masked.gather146, %174 %183 = fadd <4 x double> %wide.masked.gather147, %176 %184 = fsub <4 x double> %wide.masked.gather146, %174 %185 = fsub <4 x double> %wide.masked.gather147, %176 %186 = fadd <4 x double> %169, %179 %187 = fadd <4 x double> %171, %181 %188 = fsub <4 x double> %169, %179 %189 = fsub <4 x double> %171, %181 %190 = fadd <4 x double> %182, %186 %191 = fadd <4 x double> %183, %187 %192 = fadd <4 x double> %184, %189 %193 = fsub <4 x double> %185, %188 %194 = fsub <4 x double> %182, %186 %195 = fsub <4 x double> %183, %187 %196 = fsub <4 x double> %184, %189 %197 = fadd <4 x double> %185, %188 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 2 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 6 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 10 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 14 %wide.masked.gather154 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %202 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 2, i32 1 %wide.masked.gather155 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %202, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %wide.masked.gather156 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 6, i32 1 %wide.masked.gather157 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %204 = fmul <4 x double> %wide.masked.gather157, %127 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather156, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather156 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather157, <4 x double> %206) %wide.masked.gather158 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %208 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 10, i32 1 %wide.masked.gather159 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %208, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %209 = fmul <4 x double> %wide.masked.gather159, %128 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather158, <4 x double> %209) %211 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather158 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather159, <4 x double> %211) %wide.masked.gather160 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 14, i32 1 %wide.masked.gather161 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %214 = fmul <4 x double> %wide.masked.gather161, %129 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather160, <4 x double> %214) %216 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather160 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather161, <4 x double> %216) %218 = fadd <4 x double> %wide.masked.gather154, %210 %219 = fadd <4 x double> %wide.masked.gather155, %212 %220 = fsub <4 x double> %wide.masked.gather154, %210 %221 = fsub <4 x double> %wide.masked.gather155, %212 %222 = fadd <4 x double> %205, %215 %223 = fadd <4 x double> %207, %217 %224 = fsub <4 x double> %205, %215 %225 = fsub <4 x double> %207, %217 %226 = fadd <4 x double> %218, %222 %227 = fadd <4 x double> %219, %223 %228 = fadd <4 x double> %220, %225 %229 = fsub <4 x double> %221, %224 %230 = fsub <4 x double> %218, %222 %231 = fsub <4 x double> %219, %223 %232 = fsub <4 x double> %220, %225 %233 = fadd <4 x double> %221, %224 %234 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 3 %235 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 7 %236 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 11 %237 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 15 %wide.masked.gather162 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %234, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %238 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 3, i32 1 %wide.masked.gather163 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %wide.masked.gather164 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %235, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %239 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 7, i32 1 %wide.masked.gather165 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %240 = fmul <4 x double> %wide.masked.gather165, %127 %241 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather164, <4 x double> %240) %242 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather164 %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather165, <4 x double> %242) %wide.masked.gather166 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %236, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %244 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 11, i32 1 %wide.masked.gather167 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %244, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %245 = fmul <4 x double> %wide.masked.gather167, %128 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather166, <4 x double> %245) %247 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather166 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather167, <4 x double> %247) %wide.masked.gather168 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %249 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 15, i32 1 %wide.masked.gather169 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %249, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %250 = fmul <4 x double> %wide.masked.gather169, %129 %251 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather168, <4 x double> %250) %252 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather168 %253 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather169, <4 x double> %252) %254 = fadd <4 x double> %wide.masked.gather162, %246 %255 = fadd <4 x double> %wide.masked.gather163, %248 %256 = fsub <4 x double> %wide.masked.gather162, %246 %257 = fsub <4 x double> %wide.masked.gather163, %248 %258 = fadd <4 x double> %241, %251 %259 = fadd <4 x double> %243, %253 %260 = fsub <4 x double> %241, %251 %261 = fsub <4 x double> %243, %253 %262 = fadd <4 x double> %254, %258 %263 = fadd <4 x double> %255, %259 %264 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> %265 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %266 = shufflevector <4 x double> %226, <4 x double> %227, <8 x i32> %267 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> %268 = shufflevector <8 x double> %264, <8 x double> %265, <16 x i32> %269 = shufflevector <8 x double> %266, <8 x double> %267, <16 x i32> %interleaved.vec170 = shufflevector <16 x double> %268, <16 x double> %269, <32 x i32> store <32 x double> %interleaved.vec170, ptr %112, align 8, !noalias !4642 %270 = fadd <4 x double> %256, %261 %271 = fsub <4 x double> %257, %260 %272 = shufflevector <4 x double> %156, <4 x double> %157, <8 x i32> %273 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> %274 = shufflevector <4 x double> %228, <4 x double> %229, <8 x i32> %275 = shufflevector <4 x double> %270, <4 x double> %271, <8 x i32> %276 = shufflevector <8 x double> %272, <8 x double> %273, <16 x i32> %277 = shufflevector <8 x double> %274, <8 x double> %275, <16 x i32> %interleaved.vec171 = shufflevector <16 x double> %276, <16 x double> %277, <32 x i32> store <32 x double> %interleaved.vec171, ptr %117, align 8, !noalias !4642 %278 = fsub <4 x double> %254, %258 %279 = fsub <4 x double> %255, %259 %280 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> %281 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> %282 = shufflevector <4 x double> %230, <4 x double> %231, <8 x i32> %283 = shufflevector <4 x double> %278, <4 x double> %279, <8 x i32> %284 = shufflevector <8 x double> %280, <8 x double> %281, <16 x i32> %285 = shufflevector <8 x double> %282, <8 x double> %283, <16 x i32> %interleaved.vec172 = shufflevector <16 x double> %284, <16 x double> %285, <32 x i32> store <32 x double> %interleaved.vec172, ptr %116, align 8, !noalias !4642 %286 = fsub <4 x double> %256, %261 %287 = fadd <4 x double> %257, %260 %288 = shufflevector <4 x double> %160, <4 x double> %161, <8 x i32> %289 = shufflevector <4 x double> %196, <4 x double> %197, <8 x i32> %290 = shufflevector <4 x double> %232, <4 x double> %233, <8 x i32> %291 = shufflevector <4 x double> %286, <4 x double> %287, <8 x i32> %292 = shufflevector <8 x double> %288, <8 x double> %289, <16 x i32> %293 = shufflevector <8 x double> %290, <8 x double> %291, <16 x i32> %interleaved.vec173 = shufflevector <16 x double> %292, <16 x double> %293, <32 x i32> store <32 x double> %interleaved.vec173, ptr %115, align 8, !noalias !4642 %index.next174 = add nuw i64 %index132, 4 %vec.ind.next = add <4 x i64> %vec.ind, %294 = icmp eq i64 %index.next174, 32 br i1 %294, label %vector.body179, label %vector.body131, !llvm.loop !4648 bb24.i.i.i.i.i: ; preds = %bb20.i.i.i71.i.i.loopexit.1, %bb24.i.i.i.i.i %iter.i.i.i.i.i.sroa.60.0134 = phi i64 [ 0, %bb20.i.i.i71.i.i.loopexit.1 ], [ %440, %bb24.i.i.i.i.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i372 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.60.0134, 4 %295 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 3, i32 1 %w3.1.i.i.i.i.i = load double, ptr %295, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert120 = insertelement <4 x double> poison, double %w3.1.i.i.i.i.i, i64 0 %broadcast.splat121 = shufflevector <4 x double> %broadcast.splatinsert120, <4 x double> poison, <4 x i32> zeroinitializer %296 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 3 %w3.0.i.i.i.i.i = load double, ptr %296, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert118 = insertelement <4 x double> poison, double %w3.0.i.i.i.i.i, i64 0 %broadcast.splat119 = shufflevector <4 x double> %broadcast.splatinsert118, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.i = fneg double %w3.1.i.i.i.i.i %broadcast.splatinsert116 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.i, i64 0 %broadcast.splat117 = shufflevector <4 x double> %broadcast.splatinsert116, <4 x double> poison, <4 x i32> zeroinitializer %297 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 2, i32 1 %w2.1.i.i.i.i.i = load double, ptr %297, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert111 = insertelement <4 x double> poison, double %w2.1.i.i.i.i.i, i64 0 %broadcast.splat112 = shufflevector <4 x double> %broadcast.splatinsert111, <4 x double> poison, <4 x i32> zeroinitializer %298 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 2 %w2.0.i.i.i.i.i = load double, ptr %298, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert109 = insertelement <4 x double> poison, double %w2.0.i.i.i.i.i, i64 0 %broadcast.splat110 = shufflevector <4 x double> %broadcast.splatinsert109, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i.i = fneg double %w2.1.i.i.i.i.i %broadcast.splatinsert107 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i.i, i64 0 %broadcast.splat108 = shufflevector <4 x double> %broadcast.splatinsert107, <4 x double> poison, <4 x i32> zeroinitializer %299 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 1, i32 1 %w1.1.i.i.i.i.i = load double, ptr %299, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert102 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.i, i64 0 %broadcast.splat103 = shufflevector <4 x double> %broadcast.splatinsert102, <4 x double> poison, <4 x i32> zeroinitializer %300 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 1 %w1.0.i.i.i.i.i = load double, ptr %300, align 8, !noalias !4642, !noundef !3 %broadcast.splatinsert100 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.i, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i.i = fneg double %w1.1.i.i.i.i.i %broadcast.splatinsert98 = insertelement <4 x double> poison, double %_6.i39.i.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i382 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.60.0134, 6 %data.i.i.i.i.i.i383 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i382 %301 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 48 %302 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 16 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i395 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %data.i.i.i.i.i.i.i.i.i.i391 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %data.i.i.i.i.i.i.i.i387 = getelementptr inbounds %"num_complex::Complex", ptr %109, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %data.i.i.i.i.i.i.i.i.i.i.i.i373 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %wide.vec92 = load <8 x double>, ptr %data.i.i.i.i.i.i383, align 8, !noalias !4642 %strided.vec93 = shufflevector <8 x double> %wide.vec92, <8 x double> poison, <4 x i32> %strided.vec94 = shufflevector <8 x double> %wide.vec92, <8 x double> poison, <4 x i32> %wide.vec95 = load <8 x double>, ptr %302, align 8, !noalias !4642 %strided.vec96 = shufflevector <8 x double> %wide.vec95, <8 x double> poison, <4 x i32> %strided.vec97 = shufflevector <8 x double> %wide.vec95, <8 x double> poison, <4 x i32> %304 = fmul <4 x double> %strided.vec97, %broadcast.splat99 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96, <4 x double> %304) %306 = fmul <4 x double> %broadcast.splat103, %strided.vec96 %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97, <4 x double> %306) %wide.vec104 = load <8 x double>, ptr %303, align 8, !noalias !4642 %strided.vec105 = shufflevector <8 x double> %wide.vec104, <8 x double> poison, <4 x i32> %strided.vec106 = shufflevector <8 x double> %wide.vec104, <8 x double> poison, <4 x i32> %308 = fmul <4 x double> %strided.vec106, %broadcast.splat108 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105, <4 x double> %308) %310 = fmul <4 x double> %broadcast.splat112, %strided.vec105 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106, <4 x double> %310) %wide.vec113 = load <8 x double>, ptr %301, align 8, !noalias !4642 %strided.vec114 = shufflevector <8 x double> %wide.vec113, <8 x double> poison, <4 x i32> %strided.vec115 = shufflevector <8 x double> %wide.vec113, <8 x double> poison, <4 x i32> %312 = fmul <4 x double> %strided.vec115, %broadcast.splat117 %313 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114, <4 x double> %312) %314 = fmul <4 x double> %broadcast.splat121, %strided.vec114 %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115, <4 x double> %314) %316 = fadd <4 x double> %strided.vec93, %309 %317 = fadd <4 x double> %strided.vec94, %311 %318 = fsub <4 x double> %strided.vec93, %309 %319 = fsub <4 x double> %strided.vec94, %311 %320 = fadd <4 x double> %305, %313 %321 = fadd <4 x double> %307, %315 %322 = fsub <4 x double> %305, %313 %323 = fsub <4 x double> %307, %315 %324 = fadd <4 x double> %316, %320 %325 = fadd <4 x double> %317, %321 %interleaved.vec122 = shufflevector <4 x double> %324, <4 x double> %325, <8 x i32> store <8 x double> %interleaved.vec122, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, align 8, !noalias !4642 %326 = fadd <4 x double> %318, %323 %327 = fsub <4 x double> %319, %322 %interleaved.vec123 = shufflevector <4 x double> %326, <4 x double> %327, <8 x i32> store <8 x double> %interleaved.vec123, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, align 8, !noalias !4642 %328 = fsub <4 x double> %316, %320 %329 = fsub <4 x double> %317, %321 %interleaved.vec124 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec124, ptr %data.i.i.i.i.i.i.i.i.i.i391, align 8, !noalias !4642 %330 = fsub <4 x double> %318, %323 %331 = fadd <4 x double> %319, %322 %interleaved.vec125 = shufflevector <4 x double> %330, <4 x double> %331, <8 x i32> store <8 x double> %interleaved.vec125, ptr %data.i.i.i.i.i.i.i.i387, align 8, !noalias !4642 %332 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 4 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 20 %334 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 36 %335 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 52 %wide.vec92.1 = load <8 x double>, ptr %332, align 8, !noalias !4642 %strided.vec93.1 = shufflevector <8 x double> %wide.vec92.1, <8 x double> poison, <4 x i32> %strided.vec94.1 = shufflevector <8 x double> %wide.vec92.1, <8 x double> poison, <4 x i32> %wide.vec95.1 = load <8 x double>, ptr %333, align 8, !noalias !4642 %strided.vec96.1 = shufflevector <8 x double> %wide.vec95.1, <8 x double> poison, <4 x i32> %strided.vec97.1 = shufflevector <8 x double> %wide.vec95.1, <8 x double> poison, <4 x i32> %336 = fmul <4 x double> %strided.vec97.1, %broadcast.splat99 %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96.1, <4 x double> %336) %338 = fmul <4 x double> %broadcast.splat103, %strided.vec96.1 %339 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97.1, <4 x double> %338) %wide.vec104.1 = load <8 x double>, ptr %334, align 8, !noalias !4642 %strided.vec105.1 = shufflevector <8 x double> %wide.vec104.1, <8 x double> poison, <4 x i32> %strided.vec106.1 = shufflevector <8 x double> %wide.vec104.1, <8 x double> poison, <4 x i32> %340 = fmul <4 x double> %strided.vec106.1, %broadcast.splat108 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105.1, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat112, %strided.vec105.1 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106.1, <4 x double> %342) %wide.vec113.1 = load <8 x double>, ptr %335, align 8, !noalias !4642 %strided.vec114.1 = shufflevector <8 x double> %wide.vec113.1, <8 x double> poison, <4 x i32> %strided.vec115.1 = shufflevector <8 x double> %wide.vec113.1, <8 x double> poison, <4 x i32> %344 = fmul <4 x double> %strided.vec115.1, %broadcast.splat117 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114.1, <4 x double> %344) %346 = fmul <4 x double> %broadcast.splat121, %strided.vec114.1 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115.1, <4 x double> %346) %348 = fadd <4 x double> %strided.vec93.1, %341 %349 = fadd <4 x double> %strided.vec94.1, %343 %350 = fsub <4 x double> %strided.vec93.1, %341 %351 = fsub <4 x double> %strided.vec94.1, %343 %352 = fadd <4 x double> %337, %345 %353 = fadd <4 x double> %339, %347 %354 = fsub <4 x double> %337, %345 %355 = fsub <4 x double> %339, %347 %356 = fadd <4 x double> %348, %352 %357 = fadd <4 x double> %349, %353 %358 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, i64 4 %interleaved.vec122.1 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec122.1, ptr %358, align 8, !noalias !4642 %359 = fadd <4 x double> %350, %355 %360 = fsub <4 x double> %351, %354 %361 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, i64 4 %interleaved.vec123.1 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec123.1, ptr %361, align 8, !noalias !4642 %362 = fsub <4 x double> %348, %352 %363 = fsub <4 x double> %349, %353 %364 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i391, i64 4 %interleaved.vec124.1 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec124.1, ptr %364, align 8, !noalias !4642 %365 = fsub <4 x double> %350, %355 %366 = fadd <4 x double> %351, %354 %367 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i387, i64 4 %interleaved.vec125.1 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec125.1, ptr %367, align 8, !noalias !4642 %368 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 8 %369 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 24 %370 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 40 %371 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 56 %wide.vec92.2 = load <8 x double>, ptr %368, align 8, !noalias !4642 %strided.vec93.2 = shufflevector <8 x double> %wide.vec92.2, <8 x double> poison, <4 x i32> %strided.vec94.2 = shufflevector <8 x double> %wide.vec92.2, <8 x double> poison, <4 x i32> %wide.vec95.2 = load <8 x double>, ptr %369, align 8, !noalias !4642 %strided.vec96.2 = shufflevector <8 x double> %wide.vec95.2, <8 x double> poison, <4 x i32> %strided.vec97.2 = shufflevector <8 x double> %wide.vec95.2, <8 x double> poison, <4 x i32> %372 = fmul <4 x double> %strided.vec97.2, %broadcast.splat99 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96.2, <4 x double> %372) %374 = fmul <4 x double> %broadcast.splat103, %strided.vec96.2 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97.2, <4 x double> %374) %wide.vec104.2 = load <8 x double>, ptr %370, align 8, !noalias !4642 %strided.vec105.2 = shufflevector <8 x double> %wide.vec104.2, <8 x double> poison, <4 x i32> %strided.vec106.2 = shufflevector <8 x double> %wide.vec104.2, <8 x double> poison, <4 x i32> %376 = fmul <4 x double> %strided.vec106.2, %broadcast.splat108 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105.2, <4 x double> %376) %378 = fmul <4 x double> %broadcast.splat112, %strided.vec105.2 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106.2, <4 x double> %378) %wide.vec113.2 = load <8 x double>, ptr %371, align 8, !noalias !4642 %strided.vec114.2 = shufflevector <8 x double> %wide.vec113.2, <8 x double> poison, <4 x i32> %strided.vec115.2 = shufflevector <8 x double> %wide.vec113.2, <8 x double> poison, <4 x i32> %380 = fmul <4 x double> %strided.vec115.2, %broadcast.splat117 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114.2, <4 x double> %380) %382 = fmul <4 x double> %broadcast.splat121, %strided.vec114.2 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115.2, <4 x double> %382) %384 = fadd <4 x double> %strided.vec93.2, %377 %385 = fadd <4 x double> %strided.vec94.2, %379 %386 = fsub <4 x double> %strided.vec93.2, %377 %387 = fsub <4 x double> %strided.vec94.2, %379 %388 = fadd <4 x double> %373, %381 %389 = fadd <4 x double> %375, %383 %390 = fsub <4 x double> %373, %381 %391 = fsub <4 x double> %375, %383 %392 = fadd <4 x double> %384, %388 %393 = fadd <4 x double> %385, %389 %394 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, i64 8 %interleaved.vec122.2 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> store <8 x double> %interleaved.vec122.2, ptr %394, align 8, !noalias !4642 %395 = fadd <4 x double> %386, %391 %396 = fsub <4 x double> %387, %390 %397 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, i64 8 %interleaved.vec123.2 = shufflevector <4 x double> %395, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec123.2, ptr %397, align 8, !noalias !4642 %398 = fsub <4 x double> %384, %388 %399 = fsub <4 x double> %385, %389 %400 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i391, i64 8 %interleaved.vec124.2 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec124.2, ptr %400, align 8, !noalias !4642 %401 = fsub <4 x double> %386, %391 %402 = fadd <4 x double> %387, %390 %403 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i387, i64 8 %interleaved.vec125.2 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec125.2, ptr %403, align 8, !noalias !4642 %404 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 12 %405 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 28 %406 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 44 %407 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 60 %wide.vec92.3 = load <8 x double>, ptr %404, align 8, !noalias !4642 %strided.vec93.3 = shufflevector <8 x double> %wide.vec92.3, <8 x double> poison, <4 x i32> %strided.vec94.3 = shufflevector <8 x double> %wide.vec92.3, <8 x double> poison, <4 x i32> %wide.vec95.3 = load <8 x double>, ptr %405, align 8, !noalias !4642 %strided.vec96.3 = shufflevector <8 x double> %wide.vec95.3, <8 x double> poison, <4 x i32> %strided.vec97.3 = shufflevector <8 x double> %wide.vec95.3, <8 x double> poison, <4 x i32> %408 = fmul <4 x double> %strided.vec97.3, %broadcast.splat99 %409 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96.3, <4 x double> %408) %410 = fmul <4 x double> %broadcast.splat103, %strided.vec96.3 %411 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97.3, <4 x double> %410) %wide.vec104.3 = load <8 x double>, ptr %406, align 8, !noalias !4642 %strided.vec105.3 = shufflevector <8 x double> %wide.vec104.3, <8 x double> poison, <4 x i32> %strided.vec106.3 = shufflevector <8 x double> %wide.vec104.3, <8 x double> poison, <4 x i32> %412 = fmul <4 x double> %strided.vec106.3, %broadcast.splat108 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105.3, <4 x double> %412) %414 = fmul <4 x double> %broadcast.splat112, %strided.vec105.3 %415 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106.3, <4 x double> %414) %wide.vec113.3 = load <8 x double>, ptr %407, align 8, !noalias !4642 %strided.vec114.3 = shufflevector <8 x double> %wide.vec113.3, <8 x double> poison, <4 x i32> %strided.vec115.3 = shufflevector <8 x double> %wide.vec113.3, <8 x double> poison, <4 x i32> %416 = fmul <4 x double> %strided.vec115.3, %broadcast.splat117 %417 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114.3, <4 x double> %416) %418 = fmul <4 x double> %broadcast.splat121, %strided.vec114.3 %419 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115.3, <4 x double> %418) %420 = fadd <4 x double> %strided.vec93.3, %413 %421 = fadd <4 x double> %strided.vec94.3, %415 %422 = fsub <4 x double> %strided.vec93.3, %413 %423 = fsub <4 x double> %strided.vec94.3, %415 %424 = fadd <4 x double> %409, %417 %425 = fadd <4 x double> %411, %419 %426 = fsub <4 x double> %409, %417 %427 = fsub <4 x double> %411, %419 %428 = fadd <4 x double> %420, %424 %429 = fadd <4 x double> %421, %425 %430 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, i64 12 %interleaved.vec122.3 = shufflevector <4 x double> %428, <4 x double> %429, <8 x i32> store <8 x double> %interleaved.vec122.3, ptr %430, align 8, !noalias !4642 %431 = fadd <4 x double> %422, %427 %432 = fsub <4 x double> %423, %426 %433 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, i64 12 %interleaved.vec123.3 = shufflevector <4 x double> %431, <4 x double> %432, <8 x i32> store <8 x double> %interleaved.vec123.3, ptr %433, align 8, !noalias !4642 %434 = fsub <4 x double> %420, %424 %435 = fsub <4 x double> %421, %425 %436 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i391, i64 12 %interleaved.vec124.3 = shufflevector <4 x double> %434, <4 x double> %435, <8 x i32> store <8 x double> %interleaved.vec124.3, ptr %436, align 8, !noalias !4642 %437 = fsub <4 x double> %422, %427 %438 = fadd <4 x double> %423, %426 %439 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i387, i64 12 %interleaved.vec125.3 = shufflevector <4 x double> %437, <4 x double> %438, <8 x i32> store <8 x double> %interleaved.vec125.3, ptr %439, align 8, !noalias !4642 %440 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.60.0134, 1 %exitcond142.not = icmp eq i64 %440, 8 br i1 %exitcond142.not, label %vector.body131, label %bb24.i.i.i.i.i vector.body179: ; preds = %vector.body131, %vector.body179 %index180 = phi i64 [ %index.next201, %vector.body179 ], [ 0, %vector.body131 ] %vec.ind181 = phi <4 x i64> [ %vec.ind.next182, %vector.body179 ], [ , %vector.body131 ] %441 = shl <4 x i64> %vec.ind181, %442 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %441 %443 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 1 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %443, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %444 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 1, i32 1 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %444, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %445 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 2 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %445, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %446 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 2, i32 1 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %447 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 3 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %448 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 3, i32 1 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %448, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %449 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 2 %450 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 1 %451 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 3 %452 = fneg <4 x double> %wide.masked.gather184 %453 = fneg <4 x double> %wide.masked.gather186 %454 = fneg <4 x double> %wide.masked.gather188 %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %442, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %455 = getelementptr inbounds i8, <4 x ptr> %442, i64 8 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %450, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 1, i32 1 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %457 = fmul <4 x double> %wide.masked.gather192, %452 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather191, <4 x double> %457) %459 = fmul <4 x double> %wide.masked.gather184, %wide.masked.gather191 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather192, <4 x double> %459) %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %449, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %461 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 2, i32 1 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %461, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %462 = fmul <4 x double> %wide.masked.gather194, %453 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather185, <4 x double> %wide.masked.gather193, <4 x double> %462) %464 = fmul <4 x double> %wide.masked.gather186, %wide.masked.gather193 %465 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather185, <4 x double> %wide.masked.gather194, <4 x double> %464) %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %451, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %466 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 3, i32 1 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %466, i32 8, <4 x i1> , <4 x double> poison), !noalias !4642 %467 = fmul <4 x double> %wide.masked.gather196, %454 %468 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather187, <4 x double> %wide.masked.gather195, <4 x double> %467) %469 = fmul <4 x double> %wide.masked.gather188, %wide.masked.gather195 %470 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather187, <4 x double> %wide.masked.gather196, <4 x double> %469) %471 = fadd <4 x double> %wide.masked.gather189, %463 %472 = fadd <4 x double> %wide.masked.gather190, %465 %473 = fsub <4 x double> %wide.masked.gather189, %463 %474 = fsub <4 x double> %wide.masked.gather190, %465 %475 = fadd <4 x double> %458, %468 %476 = fadd <4 x double> %460, %470 %477 = fsub <4 x double> %458, %468 %478 = fsub <4 x double> %460, %470 %479 = fadd <4 x double> %471, %475 %480 = fadd <4 x double> %472, %476 %481 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index180 %interleaved.vec197 = shufflevector <4 x double> %479, <4 x double> %480, <8 x i32> store <8 x double> %interleaved.vec197, ptr %481, align 8, !noalias !4642 %482 = fadd <4 x double> %473, %478 %483 = fsub <4 x double> %474, %477 %484 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index180 %interleaved.vec198 = shufflevector <4 x double> %482, <4 x double> %483, <8 x i32> store <8 x double> %interleaved.vec198, ptr %484, align 8, !noalias !4642 %485 = fsub <4 x double> %471, %475 %486 = fsub <4 x double> %472, %476 %487 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index180 %interleaved.vec199 = shufflevector <4 x double> %485, <4 x double> %486, <8 x i32> store <8 x double> %interleaved.vec199, ptr %487, align 8, !noalias !4642 %488 = fsub <4 x double> %473, %478 %489 = fadd <4 x double> %474, %477 %490 = getelementptr inbounds %"num_complex::Complex", ptr %109, i64 %index180 %interleaved.vec200 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> store <8 x double> %interleaved.vec200, ptr %490, align 8, !noalias !4642 %index.next201 = add nuw i64 %index180, 4 %vec.ind.next182 = add <4 x i64> %vec.ind181, %491 = icmp eq i64 %index.next201, 124 br i1 %491, label %bb24.i.i.i, label %vector.body179, !llvm.loop !4649 bb24.i.i.i: ; preds = %vector.body179 %data.i.i.i.i.i.i.i.i.i.i.i.i999 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i1009 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496 %data.i.i.i.i.i.i.i.i1013 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i.i.i.i.i1017 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %492 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i.i = load double, ptr %492, align 8, !noalias !4642, !noundef !3 %493 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %493, align 8, !noalias !4642, !noundef !3 %494 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2 %w2.0.i.i.i = load double, ptr %494, align 8, !noalias !4642, !noundef !3 %495 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %495, align 8, !noalias !4642, !noundef !3 %496 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3 %w3.0.i.i.i = load double, ptr %496, align 8, !noalias !4642, !noundef !3 %497 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %497, align 8, !noalias !4642, !noundef !3 %498 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 498 %499 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 497 %500 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 499 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i1009, align 8, !noalias !4642, !noundef !3 %501 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496, i32 1 %a.1.i.i.i = load double, ptr %501, align 8, !noalias !4642, !noundef !3 %_84.0.i.i.i = load double, ptr %499, align 8, !noalias !4642, !noundef !3 %502 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 497, i32 1 %_84.1.i.i.i = load double, ptr %502, align 8, !noalias !4642, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %503 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %504 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %498, align 8, !noalias !4642, !noundef !3 %505 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 498, i32 1 %_86.1.i.i.i = load double, ptr %505, align 8, !noalias !4642, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %506 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %507 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %500, align 8, !noalias !4642, !noundef !3 %508 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 499, i32 1 %_88.1.i.i.i = load double, ptr %508, align 8, !noalias !4642, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %509 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %510 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i1154 = fadd double %a.0.i.i.i, %506 %_0.i3.i1155 = fadd double %a.1.i.i.i, %507 %_0.i.i1156 = fsub double %a.0.i.i.i, %506 %_0.i3.i1157 = fsub double %a.1.i.i.i, %507 %_0.i.i1158 = fadd double %503, %509 %_0.i3.i1159 = fadd double %504, %510 %_0.i.i1160 = fsub double %503, %509 %_0.i3.i1161 = fsub double %504, %510 %_0.i.i1162 = fadd double %_0.i.i1154, %_0.i.i1158 %_0.i3.i1163 = fadd double %_0.i3.i1155, %_0.i3.i1159 store double %_0.i.i1162, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999, align 8, !noalias !4642 %511 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124, i32 1 store double %_0.i3.i1163, ptr %511, align 8, !noalias !4642 %_0.i.i1164 = fadd double %_0.i.i1156, %_0.i3.i1161 %_0.i3.i1165 = fsub double %_0.i3.i1157, %_0.i.i1160 store double %_0.i.i1164, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021, align 8, !noalias !4642 %512 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252, i32 1 store double %_0.i3.i1165, ptr %512, align 8, !noalias !4642 %_0.i.i1166 = fsub double %_0.i.i1154, %_0.i.i1158 %_0.i3.i1167 = fsub double %_0.i3.i1155, %_0.i3.i1159 store double %_0.i.i1166, ptr %data.i.i.i.i.i.i.i.i.i.i1017, align 8, !noalias !4642 %513 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380, i32 1 store double %_0.i3.i1167, ptr %513, align 8, !noalias !4642 %_0.i.i1168 = fsub double %_0.i.i1156, %_0.i3.i1161 %_0.i3.i1169 = fadd double %_0.i3.i1157, %_0.i.i1160 store double %_0.i.i1168, ptr %data.i.i.i.i.i.i.i.i1013, align 8, !noalias !4642 %514 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508, i32 1 store double %_0.i3.i1169, ptr %514, align 8, !noalias !4642 %data.i.i.i.i.i.i.i.i.i.i.i.i999.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i1009.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500 %data.i.i.i.i.i.i.i.i1013.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.i.i.i.i1017.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 381 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %515 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1 %w1.0.i.i.i.1 = load double, ptr %515, align 8, !noalias !4642, !noundef !3 %516 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %516, align 8, !noalias !4642, !noundef !3 %517 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2 %w2.0.i.i.i.1 = load double, ptr %517, align 8, !noalias !4642, !noundef !3 %518 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %518, align 8, !noalias !4642, !noundef !3 %519 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3 %w3.0.i.i.i.1 = load double, ptr %519, align 8, !noalias !4642, !noundef !3 %520 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %520, align 8, !noalias !4642, !noundef !3 %521 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 502 %522 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 501 %523 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 503 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i1009.1, align 8, !noalias !4642, !noundef !3 %524 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500, i32 1 %a.1.i.i.i.1 = load double, ptr %524, align 8, !noalias !4642, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %522, align 8, !noalias !4642, !noundef !3 %525 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 501, i32 1 %_84.1.i.i.i.1 = load double, ptr %525, align 8, !noalias !4642, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %526 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %527 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %521, align 8, !noalias !4642, !noundef !3 %528 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 502, i32 1 %_86.1.i.i.i.1 = load double, ptr %528, align 8, !noalias !4642, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %529 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %530 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %523, align 8, !noalias !4642, !noundef !3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 503, i32 1 %_88.1.i.i.i.1 = load double, ptr %531, align 8, !noalias !4642, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %532 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %533 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i1154.1 = fadd double %a.0.i.i.i.1, %529 %_0.i3.i1155.1 = fadd double %a.1.i.i.i.1, %530 %_0.i.i1156.1 = fsub double %a.0.i.i.i.1, %529 %_0.i3.i1157.1 = fsub double %a.1.i.i.i.1, %530 %_0.i.i1158.1 = fadd double %526, %532 %_0.i3.i1159.1 = fadd double %527, %533 %_0.i.i1160.1 = fsub double %526, %532 %_0.i3.i1161.1 = fsub double %527, %533 %_0.i.i1162.1 = fadd double %_0.i.i1154.1, %_0.i.i1158.1 %_0.i3.i1163.1 = fadd double %_0.i3.i1155.1, %_0.i3.i1159.1 store double %_0.i.i1162.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999.1, align 8, !noalias !4642 %534 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125, i32 1 store double %_0.i3.i1163.1, ptr %534, align 8, !noalias !4642 %_0.i.i1164.1 = fadd double %_0.i.i1156.1, %_0.i3.i1161.1 %_0.i3.i1165.1 = fsub double %_0.i3.i1157.1, %_0.i.i1160.1 store double %_0.i.i1164.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.1, align 8, !noalias !4642 %535 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253, i32 1 store double %_0.i3.i1165.1, ptr %535, align 8, !noalias !4642 %_0.i.i1166.1 = fsub double %_0.i.i1154.1, %_0.i.i1158.1 %_0.i3.i1167.1 = fsub double %_0.i3.i1155.1, %_0.i3.i1159.1 store double %_0.i.i1166.1, ptr %data.i.i.i.i.i.i.i.i.i.i1017.1, align 8, !noalias !4642 %536 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 381, i32 1 store double %_0.i3.i1167.1, ptr %536, align 8, !noalias !4642 %_0.i.i1168.1 = fsub double %_0.i.i1156.1, %_0.i3.i1161.1 %_0.i3.i1169.1 = fadd double %_0.i3.i1157.1, %_0.i.i1160.1 store double %_0.i.i1168.1, ptr %data.i.i.i.i.i.i.i.i1013.1, align 8, !noalias !4642 %537 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509, i32 1 store double %_0.i3.i1169.1, ptr %537, align 8, !noalias !4642 %data.i.i.i.i.i.i.i.i.i.i.i.i999.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i1009.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %data.i.i.i.i.i.i.i.i1013.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.i.i.i.i1017.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 382 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %538 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.i.2 = load double, ptr %538, align 8, !noalias !4642, !noundef !3 %539 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %539, align 8, !noalias !4642, !noundef !3 %540 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2 %w2.0.i.i.i.2 = load double, ptr %540, align 8, !noalias !4642, !noundef !3 %541 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %541, align 8, !noalias !4642, !noundef !3 %542 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3 %w3.0.i.i.i.2 = load double, ptr %542, align 8, !noalias !4642, !noundef !3 %543 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %543, align 8, !noalias !4642, !noundef !3 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i1009.2, align 8, !noalias !4642, !noundef !3 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504, i32 1 %a.1.i.i.i.2 = load double, ptr %547, align 8, !noalias !4642, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %545, align 8, !noalias !4642, !noundef !3 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505, i32 1 %_84.1.i.i.i.2 = load double, ptr %548, align 8, !noalias !4642, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %549 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %550 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %544, align 8, !noalias !4642, !noundef !3 %551 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506, i32 1 %_86.1.i.i.i.2 = load double, ptr %551, align 8, !noalias !4642, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %552 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %553 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %546, align 8, !noalias !4642, !noundef !3 %554 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507, i32 1 %_88.1.i.i.i.2 = load double, ptr %554, align 8, !noalias !4642, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %555 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %556 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i1154.2 = fadd double %a.0.i.i.i.2, %552 %_0.i3.i1155.2 = fadd double %a.1.i.i.i.2, %553 %_0.i.i1156.2 = fsub double %a.0.i.i.i.2, %552 %_0.i3.i1157.2 = fsub double %a.1.i.i.i.2, %553 %_0.i.i1158.2 = fadd double %549, %555 %_0.i3.i1159.2 = fadd double %550, %556 %_0.i.i1160.2 = fsub double %549, %555 %_0.i3.i1161.2 = fsub double %550, %556 %_0.i.i1162.2 = fadd double %_0.i.i1154.2, %_0.i.i1158.2 %_0.i3.i1163.2 = fadd double %_0.i3.i1155.2, %_0.i3.i1159.2 store double %_0.i.i1162.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999.2, align 8, !noalias !4642 %557 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126, i32 1 store double %_0.i3.i1163.2, ptr %557, align 8, !noalias !4642 %_0.i.i1164.2 = fadd double %_0.i.i1156.2, %_0.i3.i1161.2 %_0.i3.i1165.2 = fsub double %_0.i3.i1157.2, %_0.i.i1160.2 store double %_0.i.i1164.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.2, align 8, !noalias !4642 %558 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254, i32 1 store double %_0.i3.i1165.2, ptr %558, align 8, !noalias !4642 %_0.i.i1166.2 = fsub double %_0.i.i1154.2, %_0.i.i1158.2 %_0.i3.i1167.2 = fsub double %_0.i3.i1155.2, %_0.i3.i1159.2 store double %_0.i.i1166.2, ptr %data.i.i.i.i.i.i.i.i.i.i1017.2, align 8, !noalias !4642 %559 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 382, i32 1 store double %_0.i3.i1167.2, ptr %559, align 8, !noalias !4642 %_0.i.i1168.2 = fsub double %_0.i.i1156.2, %_0.i3.i1161.2 %_0.i3.i1169.2 = fadd double %_0.i3.i1157.2, %_0.i.i1160.2 store double %_0.i.i1168.2, ptr %data.i.i.i.i.i.i.i.i1013.2, align 8, !noalias !4642 %560 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510, i32 1 store double %_0.i3.i1169.2, ptr %560, align 8, !noalias !4642 %data.i.i.i.i.i.i.i.i.i.i.i.i999.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i1009.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %data.i.i.i.i.i.i.i.i1013.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.i.i.i.i1017.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 383 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %561 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1 %w1.0.i.i.i.3 = load double, ptr %561, align 8, !noalias !4642, !noundef !3 %562 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %562, align 8, !noalias !4642, !noundef !3 %563 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2 %w2.0.i.i.i.3 = load double, ptr %563, align 8, !noalias !4642, !noundef !3 %564 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %564, align 8, !noalias !4642, !noundef !3 %565 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3 %w3.0.i.i.i.3 = load double, ptr %565, align 8, !noalias !4642, !noundef !3 %566 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %566, align 8, !noalias !4642, !noundef !3 %567 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %568 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509 %569 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i1009.3, align 8, !noalias !4642, !noundef !3 %570 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508, i32 1 %a.1.i.i.i.3 = load double, ptr %570, align 8, !noalias !4642, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %568, align 8, !noalias !4642, !noundef !3 %571 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509, i32 1 %_84.1.i.i.i.3 = load double, ptr %571, align 8, !noalias !4642, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %572 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %573 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %567, align 8, !noalias !4642, !noundef !3 %574 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510, i32 1 %_86.1.i.i.i.3 = load double, ptr %574, align 8, !noalias !4642, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %575 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %576 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %569, align 8, !noalias !4642, !noundef !3 %577 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511, i32 1 %_88.1.i.i.i.3 = load double, ptr %577, align 8, !noalias !4642, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %578 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %579 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i1154.3 = fadd double %a.0.i.i.i.3, %575 %_0.i3.i1155.3 = fadd double %a.1.i.i.i.3, %576 %_0.i.i1156.3 = fsub double %a.0.i.i.i.3, %575 %_0.i3.i1157.3 = fsub double %a.1.i.i.i.3, %576 %_0.i.i1158.3 = fadd double %572, %578 %_0.i3.i1159.3 = fadd double %573, %579 %_0.i.i1160.3 = fsub double %572, %578 %_0.i3.i1161.3 = fsub double %573, %579 %_0.i.i1162.3 = fadd double %_0.i.i1154.3, %_0.i.i1158.3 %_0.i3.i1163.3 = fadd double %_0.i3.i1155.3, %_0.i3.i1159.3 store double %_0.i.i1162.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999.3, align 8, !noalias !4642 %580 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127, i32 1 store double %_0.i3.i1163.3, ptr %580, align 8, !noalias !4642 %_0.i.i1164.3 = fadd double %_0.i.i1156.3, %_0.i3.i1161.3 %_0.i3.i1165.3 = fsub double %_0.i3.i1157.3, %_0.i.i1160.3 store double %_0.i.i1164.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.3, align 8, !noalias !4642 %581 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255, i32 1 store double %_0.i3.i1165.3, ptr %581, align 8, !noalias !4642 %_0.i.i1166.3 = fsub double %_0.i.i1154.3, %_0.i.i1158.3 %_0.i3.i1167.3 = fsub double %_0.i3.i1155.3, %_0.i3.i1159.3 store double %_0.i.i1166.3, ptr %data.i.i.i.i.i.i.i.i.i.i1017.3, align 8, !noalias !4642 %582 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 383, i32 1 store double %_0.i3.i1167.3, ptr %582, align 8, !noalias !4642 %_0.i.i1168.3 = fsub double %_0.i.i1156.3, %_0.i3.i1161.3 %_0.i3.i1169.3 = fadd double %_0.i3.i1157.3, %_0.i.i1160.3 store double %_0.i.i1168.3, ptr %data.i.i.i.i.i.i.i.i1013.3, align 8, !noalias !4642 %583 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511, i32 1 store double %_0.i3.i1169.3, ptr %583, align 8, !noalias !4642 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4642 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha00b9c5f1c7caea0E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h427cd1c1bcb6503cE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha03ba2c8d72a4d24E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4650 store i64 64, ptr %n.i, align 8, !noalias !4650 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4650 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4650 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4650 store ptr null, ptr %_16.i, align 8, !noalias !4650 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4650 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4650 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4650 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4650 store ptr null, ptr %_24.i, align 8, !noalias !4650 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4650 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4650 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4650 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4650 store ptr null, ptr %_32.i, align 8, !noalias !4650 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4650 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4650 store i64 %w.1, ptr %_34.i, align 8, !noalias !4650 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4650 store ptr null, ptr %_40.i, align 8, !noalias !4650 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4650 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4653 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !4653 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %2 = fadd <4 x double> %strided.vec, %strided.vec3 %3 = fadd <4 x double> %strided.vec1, %strided.vec4 %4 = fsub <4 x double> %strided.vec, %strided.vec3 %5 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %2, <4 x double> %3, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !4653 %interleaved.vec5 = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !4653 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %wide.vec.1 = load <8 x double>, ptr %6, align 8, !noalias !4653 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %7, align 8, !noalias !4653 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %8 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %9 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %10 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %11 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %8, <4 x double> %9, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %12, align 8, !noalias !4653 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec5.1 = shufflevector <4 x double> %10, <4 x double> %11, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %13, align 8, !noalias !4653 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %wide.vec.2 = load <8 x double>, ptr %14, align 8, !noalias !4653 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %15, align 8, !noalias !4653 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %16 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %17 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %18 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %19 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %20, align 8, !noalias !4653 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec5.2 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %21, align 8, !noalias !4653 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %wide.vec.3 = load <8 x double>, ptr %22, align 8, !noalias !4653 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %23, align 8, !noalias !4653 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %24 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %25 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %26 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %27 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %28, align 8, !noalias !4653 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec5.3 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %29, align 8, !noalias !4653 %30 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %31 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec.4 = load <8 x double>, ptr %30, align 8, !noalias !4653 %strided.vec.4 = shufflevector <8 x double> %wide.vec.4, <8 x double> poison, <4 x i32> %strided.vec1.4 = shufflevector <8 x double> %wide.vec.4, <8 x double> poison, <4 x i32> %wide.vec2.4 = load <8 x double>, ptr %31, align 8, !noalias !4653 %strided.vec3.4 = shufflevector <8 x double> %wide.vec2.4, <8 x double> poison, <4 x i32> %strided.vec4.4 = shufflevector <8 x double> %wide.vec2.4, <8 x double> poison, <4 x i32> %32 = fadd <4 x double> %strided.vec.4, %strided.vec3.4 %33 = fadd <4 x double> %strided.vec1.4, %strided.vec4.4 %34 = fsub <4 x double> %strided.vec.4, %strided.vec3.4 %35 = fsub <4 x double> %strided.vec1.4, %strided.vec4.4 %36 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %interleaved.vec.4 = shufflevector <4 x double> %32, <4 x double> %33, <8 x i32> store <8 x double> %interleaved.vec.4, ptr %36, align 8, !noalias !4653 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %interleaved.vec5.4 = shufflevector <4 x double> %34, <4 x double> %35, <8 x i32> store <8 x double> %interleaved.vec5.4, ptr %37, align 8, !noalias !4653 %38 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %39 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec.5 = load <8 x double>, ptr %38, align 8, !noalias !4653 %strided.vec.5 = shufflevector <8 x double> %wide.vec.5, <8 x double> poison, <4 x i32> %strided.vec1.5 = shufflevector <8 x double> %wide.vec.5, <8 x double> poison, <4 x i32> %wide.vec2.5 = load <8 x double>, ptr %39, align 8, !noalias !4653 %strided.vec3.5 = shufflevector <8 x double> %wide.vec2.5, <8 x double> poison, <4 x i32> %strided.vec4.5 = shufflevector <8 x double> %wide.vec2.5, <8 x double> poison, <4 x i32> %40 = fadd <4 x double> %strided.vec.5, %strided.vec3.5 %41 = fadd <4 x double> %strided.vec1.5, %strided.vec4.5 %42 = fsub <4 x double> %strided.vec.5, %strided.vec3.5 %43 = fsub <4 x double> %strided.vec1.5, %strided.vec4.5 %44 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec.5 = shufflevector <4 x double> %40, <4 x double> %41, <8 x i32> store <8 x double> %interleaved.vec.5, ptr %44, align 8, !noalias !4653 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec5.5 = shufflevector <4 x double> %42, <4 x double> %43, <8 x i32> store <8 x double> %interleaved.vec5.5, ptr %45, align 8, !noalias !4653 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec.6 = load <8 x double>, ptr %46, align 8, !noalias !4653 %strided.vec.6 = shufflevector <8 x double> %wide.vec.6, <8 x double> poison, <4 x i32> %strided.vec1.6 = shufflevector <8 x double> %wide.vec.6, <8 x double> poison, <4 x i32> %wide.vec2.6 = load <8 x double>, ptr %47, align 8, !noalias !4653 %strided.vec3.6 = shufflevector <8 x double> %wide.vec2.6, <8 x double> poison, <4 x i32> %strided.vec4.6 = shufflevector <8 x double> %wide.vec2.6, <8 x double> poison, <4 x i32> %48 = fadd <4 x double> %strided.vec.6, %strided.vec3.6 %49 = fadd <4 x double> %strided.vec1.6, %strided.vec4.6 %50 = fsub <4 x double> %strided.vec.6, %strided.vec3.6 %51 = fsub <4 x double> %strided.vec1.6, %strided.vec4.6 %52 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec.6 = shufflevector <4 x double> %48, <4 x double> %49, <8 x i32> store <8 x double> %interleaved.vec.6, ptr %52, align 8, !noalias !4653 %53 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec5.6 = shufflevector <4 x double> %50, <4 x double> %51, <8 x i32> store <8 x double> %interleaved.vec5.6, ptr %53, align 8, !noalias !4653 %54 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %55 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.7 = load <8 x double>, ptr %54, align 8, !noalias !4653 %strided.vec.7 = shufflevector <8 x double> %wide.vec.7, <8 x double> poison, <4 x i32> %strided.vec1.7 = shufflevector <8 x double> %wide.vec.7, <8 x double> poison, <4 x i32> %wide.vec2.7 = load <8 x double>, ptr %55, align 8, !noalias !4653 %strided.vec3.7 = shufflevector <8 x double> %wide.vec2.7, <8 x double> poison, <4 x i32> %strided.vec4.7 = shufflevector <8 x double> %wide.vec2.7, <8 x double> poison, <4 x i32> %56 = fadd <4 x double> %strided.vec.7, %strided.vec3.7 %57 = fadd <4 x double> %strided.vec1.7, %strided.vec4.7 %58 = fsub <4 x double> %strided.vec.7, %strided.vec3.7 %59 = fsub <4 x double> %strided.vec1.7, %strided.vec4.7 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec.7 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec.7, ptr %60, align 8, !noalias !4653 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec5.7 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec5.7, ptr %61, align 8, !noalias !4653 %62 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i = load double, ptr %62, align 8, !noalias !4650, !noundef !3 %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i43.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %63 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i = load double, ptr %63, align 8, !noalias !4650, !noundef !3 %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i42.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i58.i = fneg double %w1.1.i.i43.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i58.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %64 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec12 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4650 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %64, align 8, !noalias !4650 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %65 = fmul <4 x double> %strided.vec17, %broadcast.splat %66 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %65) %67 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %68 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %67) %69 = fadd <4 x double> %strided.vec13, %66 %70 = fadd <4 x double> %strided.vec14, %68 %interleaved.vec22 = shufflevector <4 x double> %69, <4 x double> %70, <8 x i32> store <8 x double> %interleaved.vec22, ptr %buf.0, align 8, !noalias !4650 %71 = fsub <4 x double> %strided.vec13, %66 %72 = fsub <4 x double> %strided.vec14, %68 %interleaved.vec23 = shufflevector <4 x double> %71, <4 x double> %72, <8 x i32> store <8 x double> %interleaved.vec23, ptr %1, align 8, !noalias !4650 %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %wide.vec12.1 = load <8 x double>, ptr %73, align 8, !noalias !4650 %strided.vec13.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %strided.vec14.1 = shufflevector <8 x double> %wide.vec12.1, <8 x double> poison, <4 x i32> %wide.vec15.1 = load <8 x double>, ptr %74, align 8, !noalias !4650 %strided.vec16.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %strided.vec17.1 = shufflevector <8 x double> %wide.vec15.1, <8 x double> poison, <4 x i32> %75 = fmul <4 x double> %strided.vec17.1, %broadcast.splat %76 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.1, <4 x double> %75) %77 = fmul <4 x double> %broadcast.splat21, %strided.vec16.1 %78 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.1, <4 x double> %77) %79 = fadd <4 x double> %strided.vec13.1, %76 %80 = fadd <4 x double> %strided.vec14.1, %78 %81 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec22.1 = shufflevector <4 x double> %79, <4 x double> %80, <8 x i32> store <8 x double> %interleaved.vec22.1, ptr %81, align 8, !noalias !4650 %82 = fsub <4 x double> %strided.vec13.1, %76 %83 = fsub <4 x double> %strided.vec14.1, %78 %84 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec23.1 = shufflevector <4 x double> %82, <4 x double> %83, <8 x i32> store <8 x double> %interleaved.vec23.1, ptr %84, align 8, !noalias !4650 %85 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %86 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %wide.vec12.2 = load <8 x double>, ptr %85, align 8, !noalias !4650 %strided.vec13.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %strided.vec14.2 = shufflevector <8 x double> %wide.vec12.2, <8 x double> poison, <4 x i32> %wide.vec15.2 = load <8 x double>, ptr %86, align 8, !noalias !4650 %strided.vec16.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %strided.vec17.2 = shufflevector <8 x double> %wide.vec15.2, <8 x double> poison, <4 x i32> %87 = fmul <4 x double> %strided.vec17.2, %broadcast.splat %88 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.2, <4 x double> %87) %89 = fmul <4 x double> %broadcast.splat21, %strided.vec16.2 %90 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.2, <4 x double> %89) %91 = fadd <4 x double> %strided.vec13.2, %88 %92 = fadd <4 x double> %strided.vec14.2, %90 %93 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec22.2 = shufflevector <4 x double> %91, <4 x double> %92, <8 x i32> store <8 x double> %interleaved.vec22.2, ptr %93, align 8, !noalias !4650 %94 = fsub <4 x double> %strided.vec13.2, %88 %95 = fsub <4 x double> %strided.vec14.2, %90 %96 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec23.2 = shufflevector <4 x double> %94, <4 x double> %95, <8 x i32> store <8 x double> %interleaved.vec23.2, ptr %96, align 8, !noalias !4650 %97 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %98 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec12.3 = load <8 x double>, ptr %97, align 8, !noalias !4650 %strided.vec13.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %strided.vec14.3 = shufflevector <8 x double> %wide.vec12.3, <8 x double> poison, <4 x i32> %wide.vec15.3 = load <8 x double>, ptr %98, align 8, !noalias !4650 %strided.vec16.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %strided.vec17.3 = shufflevector <8 x double> %wide.vec15.3, <8 x double> poison, <4 x i32> %99 = fmul <4 x double> %strided.vec17.3, %broadcast.splat %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16.3, <4 x double> %99) %101 = fmul <4 x double> %broadcast.splat21, %strided.vec16.3 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17.3, <4 x double> %101) %103 = fadd <4 x double> %strided.vec13.3, %100 %104 = fadd <4 x double> %strided.vec14.3, %102 %105 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec22.3 = shufflevector <4 x double> %103, <4 x double> %104, <8 x i32> store <8 x double> %interleaved.vec22.3, ptr %105, align 8, !noalias !4650 %106 = fsub <4 x double> %strided.vec13.3, %100 %107 = fsub <4 x double> %strided.vec14.3, %102 %108 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec23.3 = shufflevector <4 x double> %106, <4 x double> %107, <8 x i32> store <8 x double> %interleaved.vec23.3, ptr %108, align 8, !noalias !4650 %109 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i43.i.1 = load double, ptr %109, align 8, !noalias !4650, !noundef !3 %broadcast.splatinsert41 = insertelement <4 x double> poison, double %w1.1.i.i43.i.1, i64 0 %broadcast.splat42 = shufflevector <4 x double> %broadcast.splatinsert41, <4 x double> poison, <4 x i32> zeroinitializer %110 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i42.i.1 = load double, ptr %110, align 8, !noalias !4650, !noundef !3 %broadcast.splatinsert39 = insertelement <4 x double> poison, double %w1.0.i.i42.i.1, i64 0 %broadcast.splat40 = shufflevector <4 x double> %broadcast.splatinsert39, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i58.i.1 = fneg double %w1.1.i.i43.i.1 %broadcast.splatinsert37 = insertelement <4 x double> poison, double %_6.i.i.i58.i.1, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %111 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec31 = load <8 x double>, ptr %0, align 8, !noalias !4650 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %111, align 8, !noalias !4650 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %112 = fmul <4 x double> %strided.vec36, %broadcast.splat38 %113 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35, <4 x double> %112) %114 = fmul <4 x double> %broadcast.splat42, %strided.vec35 %115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36, <4 x double> %114) %116 = fadd <4 x double> %strided.vec32, %113 %117 = fadd <4 x double> %strided.vec33, %115 %interleaved.vec43 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> store <8 x double> %interleaved.vec43, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4650 %118 = fsub <4 x double> %strided.vec32, %113 %119 = fsub <4 x double> %strided.vec33, %115 %interleaved.vec44 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> store <8 x double> %interleaved.vec44, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4650 %120 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %121 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec31.1 = load <8 x double>, ptr %120, align 8, !noalias !4650 %strided.vec32.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %strided.vec33.1 = shufflevector <8 x double> %wide.vec31.1, <8 x double> poison, <4 x i32> %wide.vec34.1 = load <8 x double>, ptr %121, align 8, !noalias !4650 %strided.vec35.1 = shufflevector <8 x double> %wide.vec34.1, <8 x double> poison, <4 x i32> %strided.vec36.1 = shufflevector <8 x double> %wide.vec34.1, <8 x double> poison, <4 x i32> %122 = fmul <4 x double> %strided.vec36.1, %broadcast.splat38 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.1, <4 x double> %122) %124 = fmul <4 x double> %broadcast.splat42, %strided.vec35.1 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.1, <4 x double> %124) %126 = fadd <4 x double> %strided.vec32.1, %123 %127 = fadd <4 x double> %strided.vec33.1, %125 %128 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec43.1 = shufflevector <4 x double> %126, <4 x double> %127, <8 x i32> store <8 x double> %interleaved.vec43.1, ptr %128, align 8, !noalias !4650 %129 = fsub <4 x double> %strided.vec32.1, %123 %130 = fsub <4 x double> %strided.vec33.1, %125 %131 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec44.1 = shufflevector <4 x double> %129, <4 x double> %130, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %131, align 8, !noalias !4650 %132 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %133 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec31.2 = load <8 x double>, ptr %132, align 8, !noalias !4650 %strided.vec32.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %strided.vec33.2 = shufflevector <8 x double> %wide.vec31.2, <8 x double> poison, <4 x i32> %wide.vec34.2 = load <8 x double>, ptr %133, align 8, !noalias !4650 %strided.vec35.2 = shufflevector <8 x double> %wide.vec34.2, <8 x double> poison, <4 x i32> %strided.vec36.2 = shufflevector <8 x double> %wide.vec34.2, <8 x double> poison, <4 x i32> %134 = fmul <4 x double> %strided.vec36.2, %broadcast.splat38 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.2, <4 x double> %134) %136 = fmul <4 x double> %broadcast.splat42, %strided.vec35.2 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.2, <4 x double> %136) %138 = fadd <4 x double> %strided.vec32.2, %135 %139 = fadd <4 x double> %strided.vec33.2, %137 %140 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec43.2 = shufflevector <4 x double> %138, <4 x double> %139, <8 x i32> store <8 x double> %interleaved.vec43.2, ptr %140, align 8, !noalias !4650 %141 = fsub <4 x double> %strided.vec32.2, %135 %142 = fsub <4 x double> %strided.vec33.2, %137 %143 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec44.2 = shufflevector <4 x double> %141, <4 x double> %142, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %143, align 8, !noalias !4650 %144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %145 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec31.3 = load <8 x double>, ptr %144, align 8, !noalias !4650 %strided.vec32.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %strided.vec33.3 = shufflevector <8 x double> %wide.vec31.3, <8 x double> poison, <4 x i32> %wide.vec34.3 = load <8 x double>, ptr %145, align 8, !noalias !4650 %strided.vec35.3 = shufflevector <8 x double> %wide.vec34.3, <8 x double> poison, <4 x i32> %strided.vec36.3 = shufflevector <8 x double> %wide.vec34.3, <8 x double> poison, <4 x i32> %146 = fmul <4 x double> %strided.vec36.3, %broadcast.splat38 %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35.3, <4 x double> %146) %148 = fmul <4 x double> %broadcast.splat42, %strided.vec35.3 %149 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36.3, <4 x double> %148) %150 = fadd <4 x double> %strided.vec32.3, %147 %151 = fadd <4 x double> %strided.vec33.3, %149 %152 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec43.3 = shufflevector <4 x double> %150, <4 x double> %151, <8 x i32> store <8 x double> %interleaved.vec43.3, ptr %152, align 8, !noalias !4650 %153 = fsub <4 x double> %strided.vec32.3, %147 %154 = fsub <4 x double> %strided.vec33.3, %149 %155 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec44.3 = shufflevector <4 x double> %153, <4 x double> %154, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %155, align 8, !noalias !4650 %156 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %156, align 8, !noalias !4650, !noundef !3 %157 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %157, align 8, !noalias !4650, !noundef !3 %158 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %_6.i.i.i.i = fneg double %w1.1.i.i.i %159 = load <4 x double>, ptr %buf.0, align 8, !noalias !4650 %160 = load <4 x double>, ptr %158, align 8, !noalias !4650 %161 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %162 = insertelement <4 x double> %161, double %w1.1.i.i.i, i64 1 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %163, %160 %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %167 = shufflevector <4 x double> %166, <4 x double> poison, <4 x i32> zeroinitializer %168 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %167, <4 x double> %160, <4 x double> %165) %169 = fadd <4 x double> %159, %168 store <4 x double> %169, ptr %scratch.0, align 8, !noalias !4650 %170 = fsub <4 x double> %159, %168 store <4 x double> %170, ptr %0, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i436.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 34 %_3.i.i.i.i.i.i439.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %_3.i.i.i.i442.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %171 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.2, align 8, !noalias !4650 %172 = load <4 x double>, ptr %_3.i.i.i.i442.2, align 8, !noalias !4650 %173 = fmul <4 x double> %163, %172 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %167, <4 x double> %172, <4 x double> %174) %176 = fadd <4 x double> %171, %175 store <4 x double> %176, ptr %_3.i.i.i.i.i.i.i.i433.2, align 8, !noalias !4650 %177 = fsub <4 x double> %171, %175 store <4 x double> %177, ptr %_3.i2.i.i.i.i.i.i.i436.2, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i436.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %_3.i.i.i.i.i.i439.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %_3.i.i.i.i442.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %178 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.4, align 8, !noalias !4650 %179 = load <4 x double>, ptr %_3.i.i.i.i442.4, align 8, !noalias !4650 %180 = fmul <4 x double> %163, %179 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %167, <4 x double> %179, <4 x double> %181) %183 = fadd <4 x double> %178, %182 store <4 x double> %183, ptr %_3.i.i.i.i.i.i.i.i433.4, align 8, !noalias !4650 %184 = fsub <4 x double> %178, %182 store <4 x double> %184, ptr %_3.i2.i.i.i.i.i.i.i436.4, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i436.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 38 %_3.i.i.i.i.i.i439.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_3.i.i.i.i442.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %185 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.6, align 8, !noalias !4650 %186 = load <4 x double>, ptr %_3.i.i.i.i442.6, align 8, !noalias !4650 %187 = fmul <4 x double> %163, %186 %188 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> %189 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %167, <4 x double> %186, <4 x double> %188) %190 = fadd <4 x double> %185, %189 store <4 x double> %190, ptr %_3.i.i.i.i.i.i.i.i433.6, align 8, !noalias !4650 %191 = fsub <4 x double> %185, %189 store <4 x double> %191, ptr %_3.i2.i.i.i.i.i.i.i436.6, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i374.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %data.i.i.i.i.i.i384.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %data.i5.i.i.i.i.i.i.i388.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %192 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %w1.0.i.i.i.1 = load double, ptr %192, align 8, !noalias !4650, !noundef !3 %193 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %193, align 8, !noalias !4650, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %195 = load <4 x double>, ptr %data.i.i.i.i.i.i384.1, align 8, !noalias !4650 %196 = load <4 x double>, ptr %194, align 8, !noalias !4650 %197 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %198 = insertelement <4 x double> %197, double %w1.1.i.i.i.1, i64 1 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = fmul <4 x double> %199, %196 %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> zeroinitializer %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %196, <4 x double> %201) %205 = fadd <4 x double> %195, %204 store <4 x double> %205, ptr %data.i.i.i.i.i.i.i.i374.1, align 8, !noalias !4650 %206 = fsub <4 x double> %195, %204 store <4 x double> %206, ptr %data.i5.i.i.i.i.i.i.i388.1, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %_3.i2.i.i.i.i.i.i.i436.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 42 %_3.i.i.i.i.i.i439.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %_3.i.i.i.i442.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %207 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.2.1, align 8, !noalias !4650 %208 = load <4 x double>, ptr %_3.i.i.i.i442.2.1, align 8, !noalias !4650 %209 = fmul <4 x double> %199, %208 %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %208, <4 x double> %210) %212 = fadd <4 x double> %207, %211 store <4 x double> %212, ptr %_3.i.i.i.i.i.i.i.i433.2.1, align 8, !noalias !4650 %213 = fsub <4 x double> %207, %211 store <4 x double> %213, ptr %_3.i2.i.i.i.i.i.i.i436.2.1, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %_3.i2.i.i.i.i.i.i.i436.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %_3.i.i.i.i.i.i439.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %_3.i.i.i.i442.4.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %214 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.4.1, align 8, !noalias !4650 %215 = load <4 x double>, ptr %_3.i.i.i.i442.4.1, align 8, !noalias !4650 %216 = fmul <4 x double> %199, %215 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %215, <4 x double> %217) %219 = fadd <4 x double> %214, %218 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i433.4.1, align 8, !noalias !4650 %220 = fsub <4 x double> %214, %218 store <4 x double> %220, ptr %_3.i2.i.i.i.i.i.i.i436.4.1, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %_3.i2.i.i.i.i.i.i.i436.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 46 %_3.i.i.i.i.i.i439.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %_3.i.i.i.i442.6.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %221 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.6.1, align 8, !noalias !4650 %222 = load <4 x double>, ptr %_3.i.i.i.i442.6.1, align 8, !noalias !4650 %223 = fmul <4 x double> %199, %222 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %222, <4 x double> %224) %226 = fadd <4 x double> %221, %225 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i433.6.1, align 8, !noalias !4650 %227 = fsub <4 x double> %221, %225 store <4 x double> %227, ptr %_3.i2.i.i.i.i.i.i.i436.6.1, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i374.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %data.i.i.i.i.i.i384.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i388.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %228 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i.2 = load double, ptr %228, align 8, !noalias !4650, !noundef !3 %229 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %229, align 8, !noalias !4650, !noundef !3 %230 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %231 = load <4 x double>, ptr %data.i.i.i.i.i.i384.2, align 8, !noalias !4650 %232 = load <4 x double>, ptr %230, align 8, !noalias !4650 %233 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %234 = insertelement <4 x double> %233, double %w1.1.i.i.i.2, i64 1 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = fmul <4 x double> %235, %232 %237 = shufflevector <4 x double> %236, <4 x double> poison, <4 x i32> %238 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %239 = shufflevector <4 x double> %238, <4 x double> poison, <4 x i32> zeroinitializer %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %239, <4 x double> %232, <4 x double> %237) %241 = fadd <4 x double> %231, %240 store <4 x double> %241, ptr %data.i.i.i.i.i.i.i.i374.2, align 8, !noalias !4650 %242 = fsub <4 x double> %231, %240 store <4 x double> %242, ptr %data.i5.i.i.i.i.i.i.i388.2, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 18 %_3.i2.i.i.i.i.i.i.i436.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %_3.i.i.i.i.i.i439.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34 %_3.i.i.i.i442.2.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42 %243 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.2.2, align 8, !noalias !4650 %244 = load <4 x double>, ptr %_3.i.i.i.i442.2.2, align 8, !noalias !4650 %245 = fmul <4 x double> %235, %244 %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %239, <4 x double> %244, <4 x double> %246) %248 = fadd <4 x double> %243, %247 store <4 x double> %248, ptr %_3.i.i.i.i.i.i.i.i433.2.2, align 8, !noalias !4650 %249 = fsub <4 x double> %243, %247 store <4 x double> %249, ptr %_3.i2.i.i.i.i.i.i.i436.2.2, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %_3.i2.i.i.i.i.i.i.i436.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %_3.i.i.i.i.i.i439.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %_3.i.i.i.i442.4.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %250 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.4.2, align 8, !noalias !4650 %251 = load <4 x double>, ptr %_3.i.i.i.i442.4.2, align 8, !noalias !4650 %252 = fmul <4 x double> %235, %251 %253 = shufflevector <4 x double> %252, <4 x double> poison, <4 x i32> %254 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %239, <4 x double> %251, <4 x double> %253) %255 = fadd <4 x double> %250, %254 store <4 x double> %255, ptr %_3.i.i.i.i.i.i.i.i433.4.2, align 8, !noalias !4650 %256 = fsub <4 x double> %250, %254 store <4 x double> %256, ptr %_3.i2.i.i.i.i.i.i.i436.4.2, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 22 %_3.i2.i.i.i.i.i.i.i436.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %_3.i.i.i.i.i.i439.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38 %_3.i.i.i.i442.6.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %257 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.6.2, align 8, !noalias !4650 %258 = load <4 x double>, ptr %_3.i.i.i.i442.6.2, align 8, !noalias !4650 %259 = fmul <4 x double> %235, %258 %260 = shufflevector <4 x double> %259, <4 x double> poison, <4 x i32> %261 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %239, <4 x double> %258, <4 x double> %260) %262 = fadd <4 x double> %257, %261 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.i.i433.6.2, align 8, !noalias !4650 %263 = fsub <4 x double> %257, %261 store <4 x double> %263, ptr %_3.i2.i.i.i.i.i.i.i436.6.2, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i374.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %data.i.i.i.i.i.i384.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i5.i.i.i.i.i.i.i388.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %264 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.i.i.i.3 = load double, ptr %264, align 8, !noalias !4650, !noundef !3 %265 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %265, align 8, !noalias !4650, !noundef !3 %266 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %267 = load <4 x double>, ptr %data.i.i.i.i.i.i384.3, align 8, !noalias !4650 %268 = load <4 x double>, ptr %266, align 8, !noalias !4650 %269 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %270 = insertelement <4 x double> %269, double %w1.1.i.i.i.3, i64 1 %271 = shufflevector <4 x double> %270, <4 x double> poison, <4 x i32> %272 = fmul <4 x double> %271, %268 %273 = shufflevector <4 x double> %272, <4 x double> poison, <4 x i32> %274 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %275 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> zeroinitializer %276 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %275, <4 x double> %268, <4 x double> %273) %277 = fadd <4 x double> %267, %276 store <4 x double> %277, ptr %data.i.i.i.i.i.i.i.i374.3, align 8, !noalias !4650 %278 = fsub <4 x double> %267, %276 store <4 x double> %278, ptr %data.i5.i.i.i.i.i.i.i388.3, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %_3.i2.i.i.i.i.i.i.i436.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %_3.i.i.i.i.i.i439.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %_3.i.i.i.i442.2.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %279 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.2.3, align 8, !noalias !4650 %280 = load <4 x double>, ptr %_3.i.i.i.i442.2.3, align 8, !noalias !4650 %281 = fmul <4 x double> %271, %280 %282 = shufflevector <4 x double> %281, <4 x double> poison, <4 x i32> %283 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %275, <4 x double> %280, <4 x double> %282) %284 = fadd <4 x double> %279, %283 store <4 x double> %284, ptr %_3.i.i.i.i.i.i.i.i433.2.3, align 8, !noalias !4650 %285 = fsub <4 x double> %279, %283 store <4 x double> %285, ptr %_3.i2.i.i.i.i.i.i.i436.2.3, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %_3.i2.i.i.i.i.i.i.i436.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %_3.i.i.i.i.i.i439.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %_3.i.i.i.i442.4.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %286 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.4.3, align 8, !noalias !4650 %287 = load <4 x double>, ptr %_3.i.i.i.i442.4.3, align 8, !noalias !4650 %288 = fmul <4 x double> %271, %287 %289 = shufflevector <4 x double> %288, <4 x double> poison, <4 x i32> %290 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %275, <4 x double> %287, <4 x double> %289) %291 = fadd <4 x double> %286, %290 store <4 x double> %291, ptr %_3.i.i.i.i.i.i.i.i433.4.3, align 8, !noalias !4650 %292 = fsub <4 x double> %286, %290 store <4 x double> %292, ptr %_3.i2.i.i.i.i.i.i.i436.4.3, align 8, !noalias !4650 %_3.i.i.i.i.i.i.i.i433.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %_3.i2.i.i.i.i.i.i.i436.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %_3.i.i.i.i.i.i439.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %_3.i.i.i.i442.6.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %293 = load <4 x double>, ptr %_3.i.i.i.i.i.i439.6.3, align 8, !noalias !4650 %294 = load <4 x double>, ptr %_3.i.i.i.i442.6.3, align 8, !noalias !4650 %295 = fmul <4 x double> %271, %294 %296 = shufflevector <4 x double> %295, <4 x double> poison, <4 x i32> %297 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %275, <4 x double> %294, <4 x double> %296) %298 = fadd <4 x double> %293, %297 store <4 x double> %298, ptr %_3.i.i.i.i.i.i.i.i433.6.3, align 8, !noalias !4650 %299 = fsub <4 x double> %293, %297 store <4 x double> %299, ptr %_3.i2.i.i.i.i.i.i.i436.6.3, align 8, !noalias !4650 %300 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %301 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %301, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %302 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %302, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %303 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 4 %304 = fneg <4 x double> %wide.masked.gather52 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %300, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %305 = getelementptr inbounds i8, <4 x ptr> %300, i64 8 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %305, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %303, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %306 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 4, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %306, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %307 = fmul <4 x double> %wide.masked.gather56, %304 %308 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather55, <4 x double> %307) %309 = fmul <4 x double> %wide.masked.gather52, %wide.masked.gather55 %310 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather56, <4 x double> %309) %311 = fadd <4 x double> %wide.masked.gather53, %308 %312 = fadd <4 x double> %wide.masked.gather54, %310 %313 = fsub <4 x double> %wide.masked.gather53, %308 %314 = fsub <4 x double> %wide.masked.gather54, %310 %315 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 1 %316 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 5 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %315, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %317 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 1, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %317, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %316, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %318 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 5, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %318, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %319 = fmul <4 x double> %wide.masked.gather60, %304 %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather59, <4 x double> %319) %321 = fmul <4 x double> %wide.masked.gather52, %wide.masked.gather59 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather60, <4 x double> %321) %323 = fadd <4 x double> %wide.masked.gather57, %320 %324 = fadd <4 x double> %wide.masked.gather58, %322 %325 = fsub <4 x double> %wide.masked.gather57, %320 %326 = fsub <4 x double> %wide.masked.gather58, %322 %327 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 2 %328 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 6 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %327, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %329 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 2, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %329, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %330 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 6, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %330, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %331 = fmul <4 x double> %wide.masked.gather64, %304 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather63, <4 x double> %331) %333 = fmul <4 x double> %wide.masked.gather52, %wide.masked.gather63 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather64, <4 x double> %333) %335 = fadd <4 x double> %wide.masked.gather61, %332 %336 = fadd <4 x double> %wide.masked.gather62, %334 %337 = fsub <4 x double> %wide.masked.gather61, %332 %338 = fsub <4 x double> %wide.masked.gather62, %334 %339 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 3 %340 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 7 %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %339, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %341 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 3, i32 1 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %341, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %340, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %342 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %300, i64 7, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %342, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %343 = fmul <4 x double> %wide.masked.gather68, %304 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather67, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather52, %wide.masked.gather67 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather68, <4 x double> %345) %347 = fadd <4 x double> %wide.masked.gather65, %344 %348 = fadd <4 x double> %wide.masked.gather66, %346 %349 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> %350 = shufflevector <4 x double> %323, <4 x double> %324, <8 x i32> %351 = shufflevector <4 x double> %335, <4 x double> %336, <8 x i32> %352 = shufflevector <4 x double> %347, <4 x double> %348, <8 x i32> %353 = shufflevector <8 x double> %349, <8 x double> %350, <16 x i32> %354 = shufflevector <8 x double> %351, <8 x double> %352, <16 x i32> %interleaved.vec69 = shufflevector <16 x double> %353, <16 x double> %354, <32 x i32> store <32 x double> %interleaved.vec69, ptr %buf.0, align 8, !noalias !4650 %355 = fsub <4 x double> %wide.masked.gather65, %344 %356 = fsub <4 x double> %wide.masked.gather66, %346 %357 = shufflevector <4 x double> %313, <4 x double> %314, <8 x i32> %358 = shufflevector <4 x double> %325, <4 x double> %326, <8 x i32> %359 = shufflevector <4 x double> %337, <4 x double> %338, <8 x i32> %360 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> %361 = shufflevector <8 x double> %357, <8 x double> %358, <16 x i32> %362 = shufflevector <8 x double> %359, <8 x double> %360, <16 x i32> %interleaved.vec70 = shufflevector <16 x double> %361, <16 x double> %362, <32 x i32> store <32 x double> %interleaved.vec70, ptr %1, align 8, !noalias !4650 %363 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %364 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %365 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %366 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %367 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather52.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %368 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 4 %369 = fneg <4 x double> %wide.masked.gather52.1 %wide.masked.gather53.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %370 = getelementptr inbounds i8, <4 x ptr> %364, i64 8 %wide.masked.gather54.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather55.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %371 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 4, i32 1 %wide.masked.gather56.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %372 = fmul <4 x double> %wide.masked.gather56.1, %369 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather55.1, <4 x double> %372) %374 = fmul <4 x double> %wide.masked.gather52.1, %wide.masked.gather55.1 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather56.1, <4 x double> %374) %376 = fadd <4 x double> %wide.masked.gather53.1, %373 %377 = fadd <4 x double> %wide.masked.gather54.1, %375 %378 = fsub <4 x double> %wide.masked.gather53.1, %373 %379 = fsub <4 x double> %wide.masked.gather54.1, %375 %380 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 1 %381 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 5 %wide.masked.gather57.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %380, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %382 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 1, i32 1 %wide.masked.gather58.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather59.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %381, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %383 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 5, i32 1 %wide.masked.gather60.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %383, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %384 = fmul <4 x double> %wide.masked.gather60.1, %369 %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather59.1, <4 x double> %384) %386 = fmul <4 x double> %wide.masked.gather52.1, %wide.masked.gather59.1 %387 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather60.1, <4 x double> %386) %388 = fadd <4 x double> %wide.masked.gather57.1, %385 %389 = fadd <4 x double> %wide.masked.gather58.1, %387 %390 = fsub <4 x double> %wide.masked.gather57.1, %385 %391 = fsub <4 x double> %wide.masked.gather58.1, %387 %392 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 2 %393 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 6 %wide.masked.gather61.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %392, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %394 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 2, i32 1 %wide.masked.gather62.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %394, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather63.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %393, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %395 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 6, i32 1 %wide.masked.gather64.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %395, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %396 = fmul <4 x double> %wide.masked.gather64.1, %369 %397 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather63.1, <4 x double> %396) %398 = fmul <4 x double> %wide.masked.gather52.1, %wide.masked.gather63.1 %399 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather64.1, <4 x double> %398) %400 = fadd <4 x double> %wide.masked.gather61.1, %397 %401 = fadd <4 x double> %wide.masked.gather62.1, %399 %402 = fsub <4 x double> %wide.masked.gather61.1, %397 %403 = fsub <4 x double> %wide.masked.gather62.1, %399 %404 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 3 %405 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 7 %wide.masked.gather65.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %404, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %406 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 3, i32 1 %wide.masked.gather66.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %406, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather67.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %405, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %407 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %364, i64 7, i32 1 %wide.masked.gather68.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %407, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %408 = fmul <4 x double> %wide.masked.gather68.1, %369 %409 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather67.1, <4 x double> %408) %410 = fmul <4 x double> %wide.masked.gather52.1, %wide.masked.gather67.1 %411 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather68.1, <4 x double> %410) %412 = fadd <4 x double> %wide.masked.gather65.1, %409 %413 = fadd <4 x double> %wide.masked.gather66.1, %411 %414 = shufflevector <4 x double> %376, <4 x double> %377, <8 x i32> %415 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> %416 = shufflevector <4 x double> %400, <4 x double> %401, <8 x i32> %417 = shufflevector <4 x double> %412, <4 x double> %413, <8 x i32> %418 = shufflevector <8 x double> %414, <8 x double> %415, <16 x i32> %419 = shufflevector <8 x double> %416, <8 x double> %417, <16 x i32> %interleaved.vec69.1 = shufflevector <16 x double> %418, <16 x double> %419, <32 x i32> store <32 x double> %interleaved.vec69.1, ptr %363, align 8, !noalias !4650 %420 = fsub <4 x double> %wide.masked.gather65.1, %409 %421 = fsub <4 x double> %wide.masked.gather66.1, %411 %422 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> %423 = shufflevector <4 x double> %390, <4 x double> %391, <8 x i32> %424 = shufflevector <4 x double> %402, <4 x double> %403, <8 x i32> %425 = shufflevector <4 x double> %420, <4 x double> %421, <8 x i32> %426 = shufflevector <8 x double> %422, <8 x double> %423, <16 x i32> %427 = shufflevector <8 x double> %424, <8 x double> %425, <16 x i32> %interleaved.vec70.1 = shufflevector <16 x double> %426, <16 x double> %427, <32 x i32> store <32 x double> %interleaved.vec70.1, ptr %365, align 8, !noalias !4650 %428 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %429 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %429, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %430 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %430, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %431 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %428, i64 2 %432 = fneg <4 x double> %wide.masked.gather81 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %428, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %433 = getelementptr inbounds i8, <4 x ptr> %428, i64 8 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %433, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %431, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %434 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %428, i64 2, i32 1 %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %434, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %435 = fmul <4 x double> %wide.masked.gather85, %432 %436 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80, <4 x double> %wide.masked.gather84, <4 x double> %435) %437 = fmul <4 x double> %wide.masked.gather81, %wide.masked.gather84 %438 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80, <4 x double> %wide.masked.gather85, <4 x double> %437) %439 = fadd <4 x double> %wide.masked.gather82, %436 %440 = fadd <4 x double> %wide.masked.gather83, %438 %441 = fsub <4 x double> %wide.masked.gather82, %436 %442 = fsub <4 x double> %wide.masked.gather83, %438 %443 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %428, i64 1 %444 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %428, i64 3 %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %443, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %445 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %428, i64 1, i32 1 %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %445, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %444, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %428, i64 3, i32 1 %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %447 = fmul <4 x double> %wide.masked.gather89, %432 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80, <4 x double> %wide.masked.gather88, <4 x double> %447) %449 = fmul <4 x double> %wide.masked.gather81, %wide.masked.gather88 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80, <4 x double> %wide.masked.gather89, <4 x double> %449) %451 = fadd <4 x double> %wide.masked.gather86, %448 %452 = fadd <4 x double> %wide.masked.gather87, %450 %453 = shufflevector <4 x double> %439, <4 x double> %440, <8 x i32> %454 = shufflevector <4 x double> %451, <4 x double> %452, <8 x i32> %interleaved.vec90 = shufflevector <8 x double> %453, <8 x double> %454, <16 x i32> store <16 x double> %interleaved.vec90, ptr %scratch.0, align 8, !noalias !4650 %455 = fsub <4 x double> %wide.masked.gather86, %448 %456 = fsub <4 x double> %wide.masked.gather87, %450 %457 = shufflevector <4 x double> %441, <4 x double> %442, <8 x i32> %458 = shufflevector <4 x double> %455, <4 x double> %456, <8 x i32> %interleaved.vec91 = shufflevector <8 x double> %457, <8 x double> %458, <16 x i32> store <16 x double> %interleaved.vec91, ptr %0, align 8, !noalias !4650 %459 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %460 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %461 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %462 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather80.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %462, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %463 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather81.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %463, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %464 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %460, i64 2 %465 = fneg <4 x double> %wide.masked.gather81.1 %wide.masked.gather82.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %460, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %466 = getelementptr inbounds i8, <4 x ptr> %460, i64 8 %wide.masked.gather83.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %466, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather84.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %464, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %467 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %460, i64 2, i32 1 %wide.masked.gather85.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %467, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %468 = fmul <4 x double> %wide.masked.gather85.1, %465 %469 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.1, <4 x double> %wide.masked.gather84.1, <4 x double> %468) %470 = fmul <4 x double> %wide.masked.gather81.1, %wide.masked.gather84.1 %471 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.1, <4 x double> %wide.masked.gather85.1, <4 x double> %470) %472 = fadd <4 x double> %wide.masked.gather82.1, %469 %473 = fadd <4 x double> %wide.masked.gather83.1, %471 %474 = fsub <4 x double> %wide.masked.gather82.1, %469 %475 = fsub <4 x double> %wide.masked.gather83.1, %471 %476 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %460, i64 1 %477 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %460, i64 3 %wide.masked.gather86.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %476, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %478 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %460, i64 1, i32 1 %wide.masked.gather87.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %478, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather88.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %477, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %479 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %460, i64 3, i32 1 %wide.masked.gather89.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %479, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %480 = fmul <4 x double> %wide.masked.gather89.1, %465 %481 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.1, <4 x double> %wide.masked.gather88.1, <4 x double> %480) %482 = fmul <4 x double> %wide.masked.gather81.1, %wide.masked.gather88.1 %483 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.1, <4 x double> %wide.masked.gather89.1, <4 x double> %482) %484 = fadd <4 x double> %wide.masked.gather86.1, %481 %485 = fadd <4 x double> %wide.masked.gather87.1, %483 %486 = shufflevector <4 x double> %472, <4 x double> %473, <8 x i32> %487 = shufflevector <4 x double> %484, <4 x double> %485, <8 x i32> %interleaved.vec90.1 = shufflevector <8 x double> %486, <8 x double> %487, <16 x i32> store <16 x double> %interleaved.vec90.1, ptr %459, align 8, !noalias !4650 %488 = fsub <4 x double> %wide.masked.gather86.1, %481 %489 = fsub <4 x double> %wide.masked.gather87.1, %483 %490 = shufflevector <4 x double> %474, <4 x double> %475, <8 x i32> %491 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> %interleaved.vec91.1 = shufflevector <8 x double> %490, <8 x double> %491, <16 x i32> store <16 x double> %interleaved.vec91.1, ptr %461, align 8, !noalias !4650 %492 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %493 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %494 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %495 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather80.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %495, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %496 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather81.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %496, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %497 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %493, i64 2 %498 = fneg <4 x double> %wide.masked.gather81.2 %wide.masked.gather82.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %493, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %499 = getelementptr inbounds i8, <4 x ptr> %493, i64 8 %wide.masked.gather83.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %499, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather84.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %497, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %500 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %493, i64 2, i32 1 %wide.masked.gather85.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %500, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %501 = fmul <4 x double> %wide.masked.gather85.2, %498 %502 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.2, <4 x double> %wide.masked.gather84.2, <4 x double> %501) %503 = fmul <4 x double> %wide.masked.gather81.2, %wide.masked.gather84.2 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.2, <4 x double> %wide.masked.gather85.2, <4 x double> %503) %505 = fadd <4 x double> %wide.masked.gather82.2, %502 %506 = fadd <4 x double> %wide.masked.gather83.2, %504 %507 = fsub <4 x double> %wide.masked.gather82.2, %502 %508 = fsub <4 x double> %wide.masked.gather83.2, %504 %509 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %493, i64 1 %510 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %493, i64 3 %wide.masked.gather86.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %509, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %511 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %493, i64 1, i32 1 %wide.masked.gather87.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %511, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %wide.masked.gather88.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %510, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %512 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %493, i64 3, i32 1 %wide.masked.gather89.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %512, i32 8, <4 x i1> , <4 x double> poison), !noalias !4650 %513 = fmul <4 x double> %wide.masked.gather89.2, %498 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.2, <4 x double> %wide.masked.gather88.2, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather81.2, %wide.masked.gather88.2 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather80.2, <4 x double> %wide.masked.gather89.2, <4 x double> %515) %517 = fadd <4 x double> %wide.masked.gather86.2, %514 %518 = fadd <4 x double> %wide.masked.gather87.2, %516 %519 = shufflevector <4 x double> %505, <4 x double> %506, <8 x i32> %520 = shufflevector <4 x double> %517, <4 x double> %518, <8 x i32> %interleaved.vec90.2 = shufflevector <8 x double> %519, <8 x double> %520, <16 x i32> store <16 x double> %interleaved.vec90.2, ptr %492, align 8, !noalias !4650 %521 = fsub <4 x double> %wide.masked.gather86.2, %514 %522 = fsub <4 x double> %wide.masked.gather87.2, %516 %523 = shufflevector <4 x double> %507, <4 x double> %508, <8 x i32> %524 = shufflevector <4 x double> %521, <4 x double> %522, <8 x i32> %interleaved.vec91.2 = shufflevector <8 x double> %523, <8 x double> %524, <16 x i32> store <16 x double> %interleaved.vec91.2, ptr %494, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i718 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %data.i.i.i.i.i.i728 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %data.i5.i.i.i.i.i.i.i732 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %525 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %w1.0.i.i43 = load double, ptr %525, align 8, !noalias !4650, !noundef !3 %526 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %526, align 8, !noalias !4650, !noundef !3 %527 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %_6.i.i.i59 = fneg double %w1.1.i.i44 %528 = load <4 x double>, ptr %data.i.i.i.i.i.i728, align 8, !noalias !4650 %529 = load <4 x double>, ptr %527, align 8, !noalias !4650 %530 = insertelement <4 x double> poison, double %_6.i.i.i59, i64 0 %531 = insertelement <4 x double> %530, double %w1.1.i.i44, i64 1 %532 = shufflevector <4 x double> %531, <4 x double> poison, <4 x i32> %533 = fmul <4 x double> %532, %529 %534 = shufflevector <4 x double> %533, <4 x double> poison, <4 x i32> %535 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %536 = shufflevector <4 x double> %535, <4 x double> poison, <4 x i32> zeroinitializer %537 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %536, <4 x double> %529, <4 x double> %534) %538 = fadd <4 x double> %528, %537 store <4 x double> %538, ptr %data.i.i.i.i.i.i.i.i718, align 8, !noalias !4650 %539 = fsub <4 x double> %528, %537 store <4 x double> %539, ptr %data.i5.i.i.i.i.i.i.i732, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i718.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 26 %data.i.i.i.i.i.i728.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %data.i5.i.i.i.i.i.i.i732.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %540 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 26, i64 1 %w1.0.i.i43.1 = load double, ptr %540, align 8, !noalias !4650, !noundef !3 %541 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 26, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %541, align 8, !noalias !4650, !noundef !3 %542 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %_6.i.i.i59.1 = fneg double %w1.1.i.i44.1 %543 = load <4 x double>, ptr %data.i.i.i.i.i.i728.1, align 8, !noalias !4650 %544 = load <4 x double>, ptr %542, align 8, !noalias !4650 %545 = insertelement <4 x double> poison, double %_6.i.i.i59.1, i64 0 %546 = insertelement <4 x double> %545, double %w1.1.i.i44.1, i64 1 %547 = shufflevector <4 x double> %546, <4 x double> poison, <4 x i32> %548 = fmul <4 x double> %547, %544 %549 = shufflevector <4 x double> %548, <4 x double> poison, <4 x i32> %550 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %551 = shufflevector <4 x double> %550, <4 x double> poison, <4 x i32> zeroinitializer %552 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %551, <4 x double> %544, <4 x double> %549) %553 = fadd <4 x double> %543, %552 store <4 x double> %553, ptr %data.i.i.i.i.i.i.i.i718.1, align 8, !noalias !4650 %554 = fsub <4 x double> %543, %552 store <4 x double> %554, ptr %data.i5.i.i.i.i.i.i.i732.1, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i718.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %data.i.i.i.i.i.i728.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %data.i5.i.i.i.i.i.i.i732.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %555 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i43.2 = load double, ptr %555, align 8, !noalias !4650, !noundef !3 %556 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i44.2 = load double, ptr %556, align 8, !noalias !4650, !noundef !3 %557 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %_6.i.i.i59.2 = fneg double %w1.1.i.i44.2 %558 = load <4 x double>, ptr %data.i.i.i.i.i.i728.2, align 8, !noalias !4650 %559 = load <4 x double>, ptr %557, align 8, !noalias !4650 %560 = insertelement <4 x double> poison, double %_6.i.i.i59.2, i64 0 %561 = insertelement <4 x double> %560, double %w1.1.i.i44.2, i64 1 %562 = shufflevector <4 x double> %561, <4 x double> poison, <4 x i32> %563 = fmul <4 x double> %562, %559 %564 = shufflevector <4 x double> %563, <4 x double> poison, <4 x i32> %565 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %566 = shufflevector <4 x double> %565, <4 x double> poison, <4 x i32> zeroinitializer %567 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %566, <4 x double> %559, <4 x double> %564) %568 = fadd <4 x double> %558, %567 store <4 x double> %568, ptr %data.i.i.i.i.i.i.i.i718.2, align 8, !noalias !4650 %569 = fsub <4 x double> %558, %567 store <4 x double> %569, ptr %data.i5.i.i.i.i.i.i.i732.2, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i718.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 30 %data.i.i.i.i.i.i728.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i5.i.i.i.i.i.i.i732.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %570 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i43.3 = load double, ptr %570, align 8, !noalias !4650, !noundef !3 %571 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i44.3 = load double, ptr %571, align 8, !noalias !4650, !noundef !3 %572 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %_6.i.i.i59.3 = fneg double %w1.1.i.i44.3 %573 = load <4 x double>, ptr %data.i.i.i.i.i.i728.3, align 8, !noalias !4650 %574 = load <4 x double>, ptr %572, align 8, !noalias !4650 %575 = insertelement <4 x double> poison, double %_6.i.i.i59.3, i64 0 %576 = insertelement <4 x double> %575, double %w1.1.i.i44.3, i64 1 %577 = shufflevector <4 x double> %576, <4 x double> poison, <4 x i32> %578 = fmul <4 x double> %577, %574 %579 = shufflevector <4 x double> %578, <4 x double> poison, <4 x i32> %580 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %581 = shufflevector <4 x double> %580, <4 x double> poison, <4 x i32> zeroinitializer %582 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %581, <4 x double> %574, <4 x double> %579) %583 = fadd <4 x double> %573, %582 store <4 x double> %583, ptr %data.i.i.i.i.i.i.i.i718.3, align 8, !noalias !4650 %584 = fsub <4 x double> %573, %582 store <4 x double> %584, ptr %data.i5.i.i.i.i.i.i.i732.3, align 8, !noalias !4650 %585 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %wide.vec99 = load <16 x double>, ptr %585, align 8, !noalias !4650 %strided.vec100 = shufflevector <16 x double> %wide.vec99, <16 x double> poison, <4 x i32> %strided.vec101 = shufflevector <16 x double> %wide.vec99, <16 x double> poison, <4 x i32> %586 = fneg <4 x double> %strided.vec101 %wide.vec102 = load <16 x double>, ptr %scratch.0, align 8, !noalias !4650 %strided.vec103 = shufflevector <16 x double> %wide.vec102, <16 x double> poison, <4 x i32> %strided.vec104 = shufflevector <16 x double> %wide.vec102, <16 x double> poison, <4 x i32> %strided.vec105 = shufflevector <16 x double> %wide.vec102, <16 x double> poison, <4 x i32> %strided.vec106 = shufflevector <16 x double> %wide.vec102, <16 x double> poison, <4 x i32> %587 = fmul <4 x double> %strided.vec106, %586 %588 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100, <4 x double> %strided.vec105, <4 x double> %587) %589 = fmul <4 x double> %strided.vec101, %strided.vec105 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100, <4 x double> %strided.vec106, <4 x double> %589) %591 = fadd <4 x double> %strided.vec103, %588 %592 = fadd <4 x double> %strided.vec104, %590 %interleaved.vec107 = shufflevector <4 x double> %591, <4 x double> %592, <8 x i32> store <8 x double> %interleaved.vec107, ptr %buf.0, align 8, !noalias !4650 %593 = fsub <4 x double> %strided.vec103, %588 %594 = fsub <4 x double> %strided.vec104, %590 %interleaved.vec108 = shufflevector <4 x double> %593, <4 x double> %594, <8 x i32> store <8 x double> %interleaved.vec108, ptr %1, align 8, !noalias !4650 %595 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %596 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %wide.vec99.1 = load <16 x double>, ptr %596, align 8, !noalias !4650 %strided.vec100.1 = shufflevector <16 x double> %wide.vec99.1, <16 x double> poison, <4 x i32> %strided.vec101.1 = shufflevector <16 x double> %wide.vec99.1, <16 x double> poison, <4 x i32> %597 = fneg <4 x double> %strided.vec101.1 %wide.vec102.1 = load <16 x double>, ptr %595, align 8, !noalias !4650 %strided.vec103.1 = shufflevector <16 x double> %wide.vec102.1, <16 x double> poison, <4 x i32> %strided.vec104.1 = shufflevector <16 x double> %wide.vec102.1, <16 x double> poison, <4 x i32> %strided.vec105.1 = shufflevector <16 x double> %wide.vec102.1, <16 x double> poison, <4 x i32> %strided.vec106.1 = shufflevector <16 x double> %wide.vec102.1, <16 x double> poison, <4 x i32> %598 = fmul <4 x double> %strided.vec106.1, %597 %599 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.1, <4 x double> %strided.vec105.1, <4 x double> %598) %600 = fmul <4 x double> %strided.vec101.1, %strided.vec105.1 %601 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.1, <4 x double> %strided.vec106.1, <4 x double> %600) %602 = fadd <4 x double> %strided.vec103.1, %599 %603 = fadd <4 x double> %strided.vec104.1, %601 %604 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec107.1 = shufflevector <4 x double> %602, <4 x double> %603, <8 x i32> store <8 x double> %interleaved.vec107.1, ptr %604, align 8, !noalias !4650 %605 = fsub <4 x double> %strided.vec103.1, %599 %606 = fsub <4 x double> %strided.vec104.1, %601 %607 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec108.1 = shufflevector <4 x double> %605, <4 x double> %606, <8 x i32> store <8 x double> %interleaved.vec108.1, ptr %607, align 8, !noalias !4650 %608 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %609 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 8, i64 1 %wide.vec99.2 = load <16 x double>, ptr %609, align 8, !noalias !4650 %strided.vec100.2 = shufflevector <16 x double> %wide.vec99.2, <16 x double> poison, <4 x i32> %strided.vec101.2 = shufflevector <16 x double> %wide.vec99.2, <16 x double> poison, <4 x i32> %610 = fneg <4 x double> %strided.vec101.2 %wide.vec102.2 = load <16 x double>, ptr %608, align 8, !noalias !4650 %strided.vec103.2 = shufflevector <16 x double> %wide.vec102.2, <16 x double> poison, <4 x i32> %strided.vec104.2 = shufflevector <16 x double> %wide.vec102.2, <16 x double> poison, <4 x i32> %strided.vec105.2 = shufflevector <16 x double> %wide.vec102.2, <16 x double> poison, <4 x i32> %strided.vec106.2 = shufflevector <16 x double> %wide.vec102.2, <16 x double> poison, <4 x i32> %611 = fmul <4 x double> %strided.vec106.2, %610 %612 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.2, <4 x double> %strided.vec105.2, <4 x double> %611) %613 = fmul <4 x double> %strided.vec101.2, %strided.vec105.2 %614 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.2, <4 x double> %strided.vec106.2, <4 x double> %613) %615 = fadd <4 x double> %strided.vec103.2, %612 %616 = fadd <4 x double> %strided.vec104.2, %614 %617 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec107.2 = shufflevector <4 x double> %615, <4 x double> %616, <8 x i32> store <8 x double> %interleaved.vec107.2, ptr %617, align 8, !noalias !4650 %618 = fsub <4 x double> %strided.vec103.2, %612 %619 = fsub <4 x double> %strided.vec104.2, %614 %620 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec108.2 = shufflevector <4 x double> %618, <4 x double> %619, <8 x i32> store <8 x double> %interleaved.vec108.2, ptr %620, align 8, !noalias !4650 %621 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %622 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %wide.vec99.3 = load <16 x double>, ptr %622, align 8, !noalias !4650 %strided.vec100.3 = shufflevector <16 x double> %wide.vec99.3, <16 x double> poison, <4 x i32> %strided.vec101.3 = shufflevector <16 x double> %wide.vec99.3, <16 x double> poison, <4 x i32> %623 = fneg <4 x double> %strided.vec101.3 %wide.vec102.3 = load <16 x double>, ptr %621, align 8, !noalias !4650 %strided.vec103.3 = shufflevector <16 x double> %wide.vec102.3, <16 x double> poison, <4 x i32> %strided.vec104.3 = shufflevector <16 x double> %wide.vec102.3, <16 x double> poison, <4 x i32> %strided.vec105.3 = shufflevector <16 x double> %wide.vec102.3, <16 x double> poison, <4 x i32> %strided.vec106.3 = shufflevector <16 x double> %wide.vec102.3, <16 x double> poison, <4 x i32> %624 = fmul <4 x double> %strided.vec106.3, %623 %625 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.3, <4 x double> %strided.vec105.3, <4 x double> %624) %626 = fmul <4 x double> %strided.vec101.3, %strided.vec105.3 %627 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.3, <4 x double> %strided.vec106.3, <4 x double> %626) %628 = fadd <4 x double> %strided.vec103.3, %625 %629 = fadd <4 x double> %strided.vec104.3, %627 %630 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec107.3 = shufflevector <4 x double> %628, <4 x double> %629, <8 x i32> store <8 x double> %interleaved.vec107.3, ptr %630, align 8, !noalias !4650 %631 = fsub <4 x double> %strided.vec103.3, %625 %632 = fsub <4 x double> %strided.vec104.3, %627 %633 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec108.3 = shufflevector <4 x double> %631, <4 x double> %632, <8 x i32> store <8 x double> %interleaved.vec108.3, ptr %633, align 8, !noalias !4650 %634 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %635 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %wide.vec99.4 = load <16 x double>, ptr %635, align 8, !noalias !4650 %strided.vec100.4 = shufflevector <16 x double> %wide.vec99.4, <16 x double> poison, <4 x i32> %strided.vec101.4 = shufflevector <16 x double> %wide.vec99.4, <16 x double> poison, <4 x i32> %636 = fneg <4 x double> %strided.vec101.4 %wide.vec102.4 = load <16 x double>, ptr %634, align 8, !noalias !4650 %strided.vec103.4 = shufflevector <16 x double> %wide.vec102.4, <16 x double> poison, <4 x i32> %strided.vec104.4 = shufflevector <16 x double> %wide.vec102.4, <16 x double> poison, <4 x i32> %strided.vec105.4 = shufflevector <16 x double> %wide.vec102.4, <16 x double> poison, <4 x i32> %strided.vec106.4 = shufflevector <16 x double> %wide.vec102.4, <16 x double> poison, <4 x i32> %637 = fmul <4 x double> %strided.vec106.4, %636 %638 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.4, <4 x double> %strided.vec105.4, <4 x double> %637) %639 = fmul <4 x double> %strided.vec101.4, %strided.vec105.4 %640 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.4, <4 x double> %strided.vec106.4, <4 x double> %639) %641 = fadd <4 x double> %strided.vec103.4, %638 %642 = fadd <4 x double> %strided.vec104.4, %640 %643 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec107.4 = shufflevector <4 x double> %641, <4 x double> %642, <8 x i32> store <8 x double> %interleaved.vec107.4, ptr %643, align 8, !noalias !4650 %644 = fsub <4 x double> %strided.vec103.4, %638 %645 = fsub <4 x double> %strided.vec104.4, %640 %646 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec108.4 = shufflevector <4 x double> %644, <4 x double> %645, <8 x i32> store <8 x double> %interleaved.vec108.4, ptr %646, align 8, !noalias !4650 %647 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %648 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 20, i64 1 %wide.vec99.5 = load <16 x double>, ptr %648, align 8, !noalias !4650 %strided.vec100.5 = shufflevector <16 x double> %wide.vec99.5, <16 x double> poison, <4 x i32> %strided.vec101.5 = shufflevector <16 x double> %wide.vec99.5, <16 x double> poison, <4 x i32> %649 = fneg <4 x double> %strided.vec101.5 %wide.vec102.5 = load <16 x double>, ptr %647, align 8, !noalias !4650 %strided.vec103.5 = shufflevector <16 x double> %wide.vec102.5, <16 x double> poison, <4 x i32> %strided.vec104.5 = shufflevector <16 x double> %wide.vec102.5, <16 x double> poison, <4 x i32> %strided.vec105.5 = shufflevector <16 x double> %wide.vec102.5, <16 x double> poison, <4 x i32> %strided.vec106.5 = shufflevector <16 x double> %wide.vec102.5, <16 x double> poison, <4 x i32> %650 = fmul <4 x double> %strided.vec106.5, %649 %651 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.5, <4 x double> %strided.vec105.5, <4 x double> %650) %652 = fmul <4 x double> %strided.vec101.5, %strided.vec105.5 %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.5, <4 x double> %strided.vec106.5, <4 x double> %652) %654 = fadd <4 x double> %strided.vec103.5, %651 %655 = fadd <4 x double> %strided.vec104.5, %653 %656 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec107.5 = shufflevector <4 x double> %654, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec107.5, ptr %656, align 8, !noalias !4650 %657 = fsub <4 x double> %strided.vec103.5, %651 %658 = fsub <4 x double> %strided.vec104.5, %653 %659 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec108.5 = shufflevector <4 x double> %657, <4 x double> %658, <8 x i32> store <8 x double> %interleaved.vec108.5, ptr %659, align 8, !noalias !4650 %660 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %661 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 24, i64 1 %wide.vec99.6 = load <16 x double>, ptr %661, align 8, !noalias !4650 %strided.vec100.6 = shufflevector <16 x double> %wide.vec99.6, <16 x double> poison, <4 x i32> %strided.vec101.6 = shufflevector <16 x double> %wide.vec99.6, <16 x double> poison, <4 x i32> %662 = fneg <4 x double> %strided.vec101.6 %wide.vec102.6 = load <16 x double>, ptr %660, align 8, !noalias !4650 %strided.vec103.6 = shufflevector <16 x double> %wide.vec102.6, <16 x double> poison, <4 x i32> %strided.vec104.6 = shufflevector <16 x double> %wide.vec102.6, <16 x double> poison, <4 x i32> %strided.vec105.6 = shufflevector <16 x double> %wide.vec102.6, <16 x double> poison, <4 x i32> %strided.vec106.6 = shufflevector <16 x double> %wide.vec102.6, <16 x double> poison, <4 x i32> %663 = fmul <4 x double> %strided.vec106.6, %662 %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.6, <4 x double> %strided.vec105.6, <4 x double> %663) %665 = fmul <4 x double> %strided.vec101.6, %strided.vec105.6 %666 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec100.6, <4 x double> %strided.vec106.6, <4 x double> %665) %667 = fadd <4 x double> %strided.vec103.6, %664 %668 = fadd <4 x double> %strided.vec104.6, %666 %669 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec107.6 = shufflevector <4 x double> %667, <4 x double> %668, <8 x i32> store <8 x double> %interleaved.vec107.6, ptr %669, align 8, !noalias !4650 %670 = fsub <4 x double> %strided.vec103.6, %664 %671 = fsub <4 x double> %strided.vec104.6, %666 %672 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec108.6 = shufflevector <4 x double> %670, <4 x double> %671, <8 x i32> store <8 x double> %interleaved.vec108.6, ptr %672, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i884 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i894 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i5.i.i.i.i.i.i.i898 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %673 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1 %w1.0.i.i = load double, ptr %673, align 8, !noalias !4650, !noundef !3 %674 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 28, i64 1, i32 1 %w1.1.i.i = load double, ptr %674, align 8, !noalias !4650, !noundef !3 %675 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57 %_6.i.i.i = fneg double %w1.1.i.i %676 = load <2 x double>, ptr %data.i.i.i.i.i.i894, align 8, !noalias !4650 %677 = load <2 x double>, ptr %675, align 8, !noalias !4650 %678 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %679 = insertelement <2 x double> %678, double %_6.i.i.i, i64 1 %680 = fmul <2 x double> %677, %679 %681 = shufflevector <2 x double> %680, <2 x double> poison, <2 x i32> %682 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %683 = shufflevector <2 x double> %682, <2 x double> poison, <2 x i32> zeroinitializer %684 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %683, <2 x double> %677, <2 x double> %681) %685 = fadd <2 x double> %676, %684 store <2 x double> %685, ptr %data.i.i.i.i.i.i.i.i884, align 8, !noalias !4650 %686 = fsub <2 x double> %676, %684 store <2 x double> %686, ptr %data.i5.i.i.i.i.i.i.i898, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i884.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i.i.i.i.i.i894.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %data.i5.i.i.i.i.i.i.i898.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %687 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1 %w1.0.i.i.1 = load double, ptr %687, align 8, !noalias !4650, !noundef !3 %688 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 29, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %688, align 8, !noalias !4650, !noundef !3 %689 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %690 = load <2 x double>, ptr %data.i.i.i.i.i.i894.1, align 8, !noalias !4650 %691 = load <2 x double>, ptr %689, align 8, !noalias !4650 %692 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %693 = insertelement <2 x double> %692, double %_6.i.i.i.1, i64 1 %694 = fmul <2 x double> %691, %693 %695 = shufflevector <2 x double> %694, <2 x double> poison, <2 x i32> %696 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %697 = shufflevector <2 x double> %696, <2 x double> poison, <2 x i32> zeroinitializer %698 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %697, <2 x double> %691, <2 x double> %695) %699 = fadd <2 x double> %690, %698 store <2 x double> %699, ptr %data.i.i.i.i.i.i.i.i884.1, align 8, !noalias !4650 %700 = fsub <2 x double> %690, %698 store <2 x double> %700, ptr %data.i5.i.i.i.i.i.i.i898.1, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i884.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i.i.i.i.i.i894.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %data.i5.i.i.i.i.i.i.i898.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %701 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1 %w1.0.i.i.2 = load double, ptr %701, align 8, !noalias !4650, !noundef !3 %702 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 30, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %702, align 8, !noalias !4650, !noundef !3 %703 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %704 = load <2 x double>, ptr %data.i.i.i.i.i.i894.2, align 8, !noalias !4650 %705 = load <2 x double>, ptr %703, align 8, !noalias !4650 %706 = insertelement <2 x double> poison, double %w1.1.i.i.2, i64 0 %707 = insertelement <2 x double> %706, double %_6.i.i.i.2, i64 1 %708 = fmul <2 x double> %705, %707 %709 = shufflevector <2 x double> %708, <2 x double> poison, <2 x i32> %710 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %711 = shufflevector <2 x double> %710, <2 x double> poison, <2 x i32> zeroinitializer %712 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %711, <2 x double> %705, <2 x double> %709) %713 = fadd <2 x double> %704, %712 store <2 x double> %713, ptr %data.i.i.i.i.i.i.i.i884.2, align 8, !noalias !4650 %714 = fsub <2 x double> %704, %712 store <2 x double> %714, ptr %data.i5.i.i.i.i.i.i.i898.2, align 8, !noalias !4650 %data.i.i.i.i.i.i.i.i884.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i.i.i.i.i.i894.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %data.i5.i.i.i.i.i.i.i898.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %715 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1 %w1.0.i.i.3 = load double, ptr %715, align 8, !noalias !4650, !noundef !3 %716 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 31, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %716, align 8, !noalias !4650, !noundef !3 %717 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %718 = load <2 x double>, ptr %data.i.i.i.i.i.i894.3, align 8, !noalias !4650 %719 = load <2 x double>, ptr %717, align 8, !noalias !4650 %720 = insertelement <2 x double> poison, double %w1.1.i.i.3, i64 0 %721 = insertelement <2 x double> %720, double %_6.i.i.i.3, i64 1 %722 = fmul <2 x double> %719, %721 %723 = shufflevector <2 x double> %722, <2 x double> poison, <2 x i32> %724 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %725 = shufflevector <2 x double> %724, <2 x double> poison, <2 x i32> zeroinitializer %726 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %725, <2 x double> %719, <2 x double> %723) %727 = fadd <2 x double> %718, %726 store <2 x double> %727, ptr %data.i.i.i.i.i.i.i.i884.3, align 8, !noalias !4650 %728 = fsub <2 x double> %718, %726 store <2 x double> %728, ptr %data.i5.i.i.i.i.i.i.i898.3, align 8, !noalias !4650 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4650 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha635f1563aa7aab3E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb55e3d80b94e6f51E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha643f31964ea6388E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4658 store i64 32, ptr %n.i, align 8, !noalias !4658 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4658 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4658 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4658 store ptr null, ptr %_16.i, align 8, !noalias !4658 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4658 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4658 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4658 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4658 store ptr null, ptr %_24.i, align 8, !noalias !4658 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4658 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4658 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4658 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4658 store ptr null, ptr %_32.i, align 8, !noalias !4658 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4658 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4658 store i64 %w.1, ptr %_34.i, align 8, !noalias !4658 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4658 store ptr null, ptr %_40.i, align 8, !noalias !4658 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4658 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4658 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !4658 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %2 = fadd <4 x double> %strided.vec, %strided.vec3 %3 = fadd <4 x double> %strided.vec1, %strided.vec4 %4 = fsub <4 x double> %strided.vec, %strided.vec3 %5 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %2, <4 x double> %3, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !4658 %interleaved.vec5 = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec5, ptr %1, align 8, !noalias !4658 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %6, align 8, !noalias !4658 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %7, align 8, !noalias !4658 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %8 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %9 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %10 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %11 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %8, <4 x double> %9, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %12, align 8, !noalias !4658 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec5.1 = shufflevector <4 x double> %10, <4 x double> %11, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %13, align 8, !noalias !4658 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %14, align 8, !noalias !4658 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %15, align 8, !noalias !4658 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %16 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %17 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %18 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %19 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %20, align 8, !noalias !4658 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec5.2 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %21, align 8, !noalias !4658 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %22, align 8, !noalias !4658 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %23, align 8, !noalias !4658 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %24 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %25 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %26 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %27 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %28, align 8, !noalias !4658 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec5.3 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %29, align 8, !noalias !4658 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <2 x i64> %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %31, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %32, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2 %wide.masked.gather13 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %33, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %34, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3 %wide.masked.gather15 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %35, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %36, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4 %wide.masked.gather17 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %37, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4, i32 1 %wide.masked.gather18 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %38, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5 %wide.masked.gather19 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %39, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5, i32 1 %wide.masked.gather20 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %40, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6 %wide.masked.gather21 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %41, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6, i32 1 %wide.masked.gather22 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %42, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7 %wide.masked.gather23 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %43, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7, i32 1 %wide.masked.gather24 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %44, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 8 %wide.masked.gather25 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %45, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 8, i32 1 %wide.masked.gather26 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %46, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 9 %wide.masked.gather27 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %47, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 9, i32 1 %wide.masked.gather28 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %48, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 10 %wide.masked.gather29 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %49, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 10, i32 1 %wide.masked.gather30 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %50, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 11 %wide.masked.gather31 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %51, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 11, i32 1 %wide.masked.gather32 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %52, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 12 %wide.masked.gather33 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %53, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 12, i32 1 %wide.masked.gather34 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %54, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 13 %wide.masked.gather35 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %55, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 13, i32 1 %wide.masked.gather36 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %56, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 14 %wide.masked.gather37 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %57, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 14, i32 1 %wide.masked.gather38 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %58, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 15 %wide.masked.gather39 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %59, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 15, i32 1 %wide.masked.gather40 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %60, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %61 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 8 %62 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 4 %63 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 2 %64 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 1 %65 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 3 %66 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 6 %67 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 5 %68 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 7 %69 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 12 %70 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 10 %71 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 9 %72 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 11 %73 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 14 %74 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 13 %75 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 15 %76 = fneg <2 x double> %wide.masked.gather12 %77 = fneg <2 x double> %wide.masked.gather14 %78 = fneg <2 x double> %wide.masked.gather16 %79 = fneg <2 x double> %wide.masked.gather18 %80 = fneg <2 x double> %wide.masked.gather20 %81 = fneg <2 x double> %wide.masked.gather22 %82 = fneg <2 x double> %wide.masked.gather24 %83 = fneg <2 x double> %wide.masked.gather26 %84 = fneg <2 x double> %wide.masked.gather28 %85 = fneg <2 x double> %wide.masked.gather30 %86 = fneg <2 x double> %wide.masked.gather32 %87 = fneg <2 x double> %wide.masked.gather34 %88 = fneg <2 x double> %wide.masked.gather36 %89 = fneg <2 x double> %wide.masked.gather38 %90 = fneg <2 x double> %wide.masked.gather40 %wide.masked.gather41 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %30, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %91 = getelementptr inbounds i8, <2 x ptr> %30, i64 8 %wide.masked.gather42 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %91, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %wide.masked.gather43 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %64, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %92 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 1, i32 1 %wide.masked.gather44 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %92, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %93 = fmul <2 x double> %wide.masked.gather44, %76 %94 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather43, <2 x double> %93) %95 = fmul <2 x double> %wide.masked.gather12, %wide.masked.gather43 %96 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather44, <2 x double> %95) %wide.masked.gather45 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %63, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %97 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 2, i32 1 %wide.masked.gather46 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %97, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %98 = fmul <2 x double> %wide.masked.gather46, %77 %99 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather45, <2 x double> %98) %100 = fmul <2 x double> %wide.masked.gather14, %wide.masked.gather45 %101 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather46, <2 x double> %100) %wide.masked.gather47 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %65, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %102 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 3, i32 1 %wide.masked.gather48 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %102, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %103 = fmul <2 x double> %wide.masked.gather48, %78 %104 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather47, <2 x double> %103) %105 = fmul <2 x double> %wide.masked.gather16, %wide.masked.gather47 %106 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather48, <2 x double> %105) %wide.masked.gather49 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %62, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %107 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 4, i32 1 %wide.masked.gather50 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %107, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %108 = fmul <2 x double> %wide.masked.gather50, %79 %109 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather49, <2 x double> %108) %110 = fmul <2 x double> %wide.masked.gather18, %wide.masked.gather49 %111 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather50, <2 x double> %110) %wide.masked.gather51 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %67, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %112 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 5, i32 1 %wide.masked.gather52 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %112, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %113 = fmul <2 x double> %wide.masked.gather52, %80 %114 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather51, <2 x double> %113) %115 = fmul <2 x double> %wide.masked.gather20, %wide.masked.gather51 %116 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather52, <2 x double> %115) %wide.masked.gather53 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %66, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %117 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 6, i32 1 %wide.masked.gather54 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %117, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %118 = fmul <2 x double> %wide.masked.gather54, %81 %119 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather53, <2 x double> %118) %120 = fmul <2 x double> %wide.masked.gather22, %wide.masked.gather53 %121 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather54, <2 x double> %120) %wide.masked.gather55 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %68, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %122 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 7, i32 1 %wide.masked.gather56 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %122, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %123 = fmul <2 x double> %wide.masked.gather56, %82 %124 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather55, <2 x double> %123) %125 = fmul <2 x double> %wide.masked.gather24, %wide.masked.gather55 %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather56, <2 x double> %125) %wide.masked.gather57 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %61, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %127 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 8, i32 1 %wide.masked.gather58 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %127, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %128 = fmul <2 x double> %wide.masked.gather58, %83 %129 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather25, <2 x double> %wide.masked.gather57, <2 x double> %128) %130 = fmul <2 x double> %wide.masked.gather26, %wide.masked.gather57 %131 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather25, <2 x double> %wide.masked.gather58, <2 x double> %130) %wide.masked.gather59 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %71, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %132 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 9, i32 1 %wide.masked.gather60 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %132, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %133 = fmul <2 x double> %wide.masked.gather60, %84 %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather27, <2 x double> %wide.masked.gather59, <2 x double> %133) %135 = fmul <2 x double> %wide.masked.gather28, %wide.masked.gather59 %136 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather27, <2 x double> %wide.masked.gather60, <2 x double> %135) %wide.masked.gather61 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %70, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %137 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 10, i32 1 %wide.masked.gather62 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %137, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %138 = fmul <2 x double> %wide.masked.gather62, %85 %139 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather29, <2 x double> %wide.masked.gather61, <2 x double> %138) %140 = fmul <2 x double> %wide.masked.gather30, %wide.masked.gather61 %141 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather29, <2 x double> %wide.masked.gather62, <2 x double> %140) %wide.masked.gather63 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %72, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %142 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 11, i32 1 %wide.masked.gather64 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %142, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %143 = fmul <2 x double> %wide.masked.gather64, %86 %144 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather31, <2 x double> %wide.masked.gather63, <2 x double> %143) %145 = fmul <2 x double> %wide.masked.gather32, %wide.masked.gather63 %146 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather31, <2 x double> %wide.masked.gather64, <2 x double> %145) %wide.masked.gather65 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %69, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %147 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 12, i32 1 %wide.masked.gather66 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %147, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %148 = fmul <2 x double> %wide.masked.gather66, %87 %149 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather33, <2 x double> %wide.masked.gather65, <2 x double> %148) %150 = fmul <2 x double> %wide.masked.gather34, %wide.masked.gather65 %151 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather33, <2 x double> %wide.masked.gather66, <2 x double> %150) %wide.masked.gather67 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %74, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %152 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 13, i32 1 %wide.masked.gather68 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %152, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %153 = fmul <2 x double> %wide.masked.gather68, %88 %154 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather35, <2 x double> %wide.masked.gather67, <2 x double> %153) %155 = fmul <2 x double> %wide.masked.gather36, %wide.masked.gather67 %156 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather35, <2 x double> %wide.masked.gather68, <2 x double> %155) %wide.masked.gather69 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %73, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %157 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 14, i32 1 %wide.masked.gather70 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %157, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %158 = fmul <2 x double> %wide.masked.gather70, %89 %159 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather37, <2 x double> %wide.masked.gather69, <2 x double> %158) %160 = fmul <2 x double> %wide.masked.gather38, %wide.masked.gather69 %161 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather37, <2 x double> %wide.masked.gather70, <2 x double> %160) %wide.masked.gather71 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %75, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %162 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 15, i32 1 %wide.masked.gather72 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %162, i32 8, <2 x i1> , <2 x double> poison), !noalias !4658 %163 = fmul <2 x double> %wide.masked.gather72, %90 %164 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather39, <2 x double> %wide.masked.gather71, <2 x double> %163) %165 = fmul <2 x double> %wide.masked.gather40, %wide.masked.gather71 %166 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather39, <2 x double> %wide.masked.gather72, <2 x double> %165) %167 = fadd <2 x double> %wide.masked.gather41, %129 %168 = fadd <2 x double> %wide.masked.gather42, %131 %169 = fsub <2 x double> %wide.masked.gather41, %129 %170 = fsub <2 x double> %wide.masked.gather42, %131 %171 = fadd <2 x double> %109, %149 %172 = fadd <2 x double> %111, %151 %173 = fsub <2 x double> %109, %149 %174 = fsub <2 x double> %111, %151 %175 = fadd <2 x double> %99, %139 %176 = fadd <2 x double> %101, %141 %177 = fsub <2 x double> %99, %139 %178 = fsub <2 x double> %101, %141 %179 = fadd <2 x double> %119, %159 %180 = fadd <2 x double> %121, %161 %181 = fsub <2 x double> %119, %159 %182 = fsub <2 x double> %121, %161 %183 = fadd <2 x double> %94, %134 %184 = fadd <2 x double> %96, %136 %185 = fsub <2 x double> %94, %134 %186 = fsub <2 x double> %96, %136 %187 = fadd <2 x double> %114, %154 %188 = fadd <2 x double> %116, %156 %189 = fsub <2 x double> %114, %154 %190 = fsub <2 x double> %116, %156 %191 = fadd <2 x double> %104, %144 %192 = fadd <2 x double> %106, %146 %193 = fsub <2 x double> %104, %144 %194 = fsub <2 x double> %106, %146 %195 = fadd <2 x double> %124, %164 %196 = fadd <2 x double> %126, %166 %197 = fsub <2 x double> %124, %164 %198 = fsub <2 x double> %126, %166 %199 = fadd <2 x double> %167, %171 %200 = fadd <2 x double> %168, %172 %201 = fadd <2 x double> %169, %174 %202 = fsub <2 x double> %170, %173 %203 = fsub <2 x double> %167, %171 %204 = fsub <2 x double> %168, %172 %205 = fsub <2 x double> %169, %174 %206 = fadd <2 x double> %170, %173 %207 = fadd <2 x double> %175, %179 %208 = fadd <2 x double> %176, %180 %209 = fadd <2 x double> %177, %182 %210 = fsub <2 x double> %178, %181 %211 = fsub <2 x double> %175, %179 %212 = fsub <2 x double> %176, %180 %213 = fsub <2 x double> %177, %182 %214 = fadd <2 x double> %178, %181 %215 = fadd <2 x double> %183, %187 %216 = fadd <2 x double> %184, %188 %217 = fadd <2 x double> %185, %190 %218 = fsub <2 x double> %186, %189 %219 = fsub <2 x double> %183, %187 %220 = fsub <2 x double> %184, %188 %221 = fsub <2 x double> %185, %190 %222 = fadd <2 x double> %186, %189 %223 = fadd <2 x double> %191, %195 %224 = fadd <2 x double> %192, %196 %225 = fadd <2 x double> %193, %198 %226 = fsub <2 x double> %194, %197 %227 = fsub <2 x double> %191, %195 %228 = fsub <2 x double> %192, %196 %229 = fsub <2 x double> %193, %198 %230 = fadd <2 x double> %194, %197 %231 = fadd <2 x double> %209, %210 %232 = fsub <2 x double> %210, %209 %233 = fmul <2 x double> %231, %234 = fmul <2 x double> %232, %235 = fsub <2 x double> %213, %214 %236 = fadd <2 x double> %213, %214 %237 = fmul <2 x double> %235, %238 = fmul <2 x double> %236, %239 = fadd <2 x double> %199, %207 %240 = fadd <2 x double> %200, %208 %241 = fadd <2 x double> %201, %233 %242 = fadd <2 x double> %202, %234 %243 = fadd <2 x double> %203, %212 %244 = fsub <2 x double> %204, %211 %245 = fsub <2 x double> %205, %237 %246 = fsub <2 x double> %206, %238 %247 = fsub <2 x double> %199, %207 %248 = fsub <2 x double> %200, %208 %249 = fsub <2 x double> %201, %233 %250 = fsub <2 x double> %202, %234 %251 = fsub <2 x double> %203, %212 %252 = fadd <2 x double> %204, %211 %253 = fadd <2 x double> %205, %237 %254 = fadd <2 x double> %206, %238 %255 = fadd <2 x double> %225, %226 %256 = fsub <2 x double> %226, %225 %257 = fmul <2 x double> %255, %258 = fmul <2 x double> %256, %259 = fsub <2 x double> %229, %230 %260 = fadd <2 x double> %229, %230 %261 = fmul <2 x double> %259, %262 = fmul <2 x double> %260, %263 = fadd <2 x double> %215, %223 %264 = fadd <2 x double> %216, %224 %265 = fadd <2 x double> %217, %257 %266 = fadd <2 x double> %218, %258 %267 = fadd <2 x double> %219, %228 %268 = fsub <2 x double> %220, %227 %269 = fsub <2 x double> %221, %261 %270 = fsub <2 x double> %222, %262 %271 = fsub <2 x double> %215, %223 %272 = fsub <2 x double> %216, %224 %273 = fsub <2 x double> %217, %257 %274 = fsub <2 x double> %218, %258 %275 = fsub <2 x double> %219, %228 %276 = fadd <2 x double> %220, %227 %277 = fadd <2 x double> %221, %261 %278 = fadd <2 x double> %222, %262 %279 = fadd <2 x double> %239, %263 %280 = fadd <2 x double> %240, %264 %interleaved.vec73 = shufflevector <2 x double> %279, <2 x double> %280, <4 x i32> store <4 x double> %interleaved.vec73, ptr %buf.0, align 8, !noalias !4658 %281 = fsub <2 x double> %239, %263 %282 = fsub <2 x double> %240, %264 %283 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec74 = shufflevector <2 x double> %281, <2 x double> %282, <4 x i32> store <4 x double> %interleaved.vec74, ptr %283, align 8, !noalias !4658 %284 = fmul <2 x double> %266, %285 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %265, <2 x double> , <2 x double> %284) %286 = fmul <2 x double> %265, %287 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %266, <2 x double> , <2 x double> %286) %288 = fadd <2 x double> %241, %285 %289 = fadd <2 x double> %242, %287 %290 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec75 = shufflevector <2 x double> %288, <2 x double> %289, <4 x i32> store <4 x double> %interleaved.vec75, ptr %290, align 8, !noalias !4658 %291 = fsub <2 x double> %241, %285 %292 = fsub <2 x double> %242, %287 %293 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %interleaved.vec76 = shufflevector <2 x double> %291, <2 x double> %292, <4 x i32> store <4 x double> %interleaved.vec76, ptr %293, align 8, !noalias !4658 %294 = fadd <2 x double> %267, %268 %295 = fsub <2 x double> %268, %267 %296 = fmul <2 x double> %294, %297 = fmul <2 x double> %295, %298 = fadd <2 x double> %243, %296 %299 = fadd <2 x double> %244, %297 %300 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec77 = shufflevector <2 x double> %298, <2 x double> %299, <4 x i32> store <4 x double> %interleaved.vec77, ptr %300, align 8, !noalias !4658 %301 = fsub <2 x double> %243, %296 %302 = fsub <2 x double> %244, %297 %303 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec78 = shufflevector <2 x double> %301, <2 x double> %302, <4 x i32> store <4 x double> %interleaved.vec78, ptr %303, align 8, !noalias !4658 %304 = fmul <2 x double> %270, %305 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %269, <2 x double> , <2 x double> %304) %306 = fmul <2 x double> %269, %307 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %270, <2 x double> , <2 x double> %306) %308 = fadd <2 x double> %245, %305 %309 = fadd <2 x double> %246, %307 %310 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %interleaved.vec79 = shufflevector <2 x double> %308, <2 x double> %309, <4 x i32> store <4 x double> %interleaved.vec79, ptr %310, align 8, !noalias !4658 %311 = fsub <2 x double> %245, %305 %312 = fsub <2 x double> %246, %307 %313 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %interleaved.vec80 = shufflevector <2 x double> %311, <2 x double> %312, <4 x i32> store <4 x double> %interleaved.vec80, ptr %313, align 8, !noalias !4658 %314 = fadd <2 x double> %247, %272 %315 = fsub <2 x double> %248, %271 %316 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec81 = shufflevector <2 x double> %314, <2 x double> %315, <4 x i32> store <4 x double> %interleaved.vec81, ptr %316, align 8, !noalias !4658 %317 = fsub <2 x double> %247, %272 %318 = fadd <2 x double> %248, %271 %319 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec82 = shufflevector <2 x double> %317, <2 x double> %318, <4 x i32> store <4 x double> %interleaved.vec82, ptr %319, align 8, !noalias !4658 %320 = fmul <2 x double> %274, %321 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %273, <2 x double> , <2 x double> %320) %322 = fmul <2 x double> %273, %323 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %274, <2 x double> , <2 x double> %322) %324 = fsub <2 x double> %249, %321 %325 = fsub <2 x double> %250, %323 %326 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %interleaved.vec83 = shufflevector <2 x double> %324, <2 x double> %325, <4 x i32> store <4 x double> %interleaved.vec83, ptr %326, align 8, !noalias !4658 %327 = fadd <2 x double> %249, %321 %328 = fadd <2 x double> %250, %323 %329 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %interleaved.vec84 = shufflevector <2 x double> %327, <2 x double> %328, <4 x i32> store <4 x double> %interleaved.vec84, ptr %329, align 8, !noalias !4658 %330 = fsub <2 x double> %275, %276 %331 = fadd <2 x double> %275, %276 %332 = fmul <2 x double> %330, %333 = fmul <2 x double> %331, %334 = fsub <2 x double> %251, %332 %335 = fsub <2 x double> %252, %333 %336 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec85 = shufflevector <2 x double> %334, <2 x double> %335, <4 x i32> store <4 x double> %interleaved.vec85, ptr %336, align 8, !noalias !4658 %337 = fadd <2 x double> %251, %332 %338 = fadd <2 x double> %252, %333 %339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec86 = shufflevector <2 x double> %337, <2 x double> %338, <4 x i32> store <4 x double> %interleaved.vec86, ptr %339, align 8, !noalias !4658 %340 = fmul <2 x double> %278, %341 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %277, <2 x double> , <2 x double> %340) %342 = fmul <2 x double> %277, %343 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %278, <2 x double> , <2 x double> %342) %344 = fsub <2 x double> %253, %341 %345 = fsub <2 x double> %254, %343 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %interleaved.vec87 = shufflevector <2 x double> %344, <2 x double> %345, <4 x i32> store <4 x double> %interleaved.vec87, ptr %346, align 8, !noalias !4658 %347 = fadd <2 x double> %253, %341 %348 = fadd <2 x double> %254, %343 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %interleaved.vec88 = shufflevector <2 x double> %347, <2 x double> %348, <4 x i32> store <4 x double> %interleaved.vec88, ptr %349, align 8, !noalias !4658 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4658 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha6a520064dce76a6E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4661 store i64 1024, ptr %n.i.i, align 8, !noalias !4661 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4661 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4661 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4661 store ptr null, ptr %_16.i.i, align 8, !noalias !4661 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4661 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4661 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4661 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4661 store ptr null, ptr %_24.i.i, align 8, !noalias !4661 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4661 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4661 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4661 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4661 store ptr null, ptr %_32.i.i, align 8, !noalias !4661 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4661 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4661 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4661 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4486a5dbdbe93c11E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4661 store ptr null, ptr %_40.i.i, align 8, !noalias !4661 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4486a5dbdbe93c11E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4661 tail call void @llvm.experimental.noalias.scope.decl(metadata !4666) tail call void @llvm.experimental.noalias.scope.decl(metadata !4669) tail call void @llvm.experimental.noalias.scope.decl(metadata !4671) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 320 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 288 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 352 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 448 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 416 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 480 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4486a5dbdbe93c11E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4486a5dbdbe93c11E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4666, !noalias !4673 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4671, !noalias !4674 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4669, !noalias !4675 store <4 x double> %247, ptr %248, align 8, !alias.scope !4669, !noalias !4675 store <4 x double> %249, ptr %250, align 8, !alias.scope !4669, !noalias !4675 store <4 x double> %251, ptr %252, align 8, !alias.scope !4669, !noalias !4675 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !4669, !noalias !4675 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !4669, !noalias !4675 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !4669, !noalias !4675 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !4669, !noalias !4675 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !4669, !noalias !4675 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !4669, !noalias !4675 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !4669, !noalias !4675 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !4669, !noalias !4675 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !4669, !noalias !4675 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !4669, !noalias !4675 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !4669, !noalias !4675 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !4669, !noalias !4675 %exitcond.not.i.i = icmp eq i64 %32, 32 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4676) tail call void @llvm.experimental.noalias.scope.decl(metadata !4679) tail call void @llvm.experimental.noalias.scope.decl(metadata !4681) %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %287 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %288 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %289 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %290 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %291 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i %292 = add nuw nsw i64 %iter.sroa.192.06258.i.i, 1 %exitcond.not.i = icmp eq i64 %292, 4 br i1 %exitcond.not.i, label %bb13.i.i.i.i, label %bb46.i.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %iter.sroa.192.06258.i.i = phi i64 [ %292, %bb44.loopexit.i.i ], [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.06258.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %287, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %288, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %290, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %289, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %291, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.192.06258.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %293 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %294 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %295 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %296 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %297 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %298 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %299 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %300 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %301 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.192.06258.i.i, 4 %308 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %308, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %309 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %310 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %310, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %311 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %311, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %312 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %313 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %313, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %314 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %314, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %315 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %316 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %316, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %317 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %317, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %318 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %319 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %319, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %320 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %320, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %321 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %322 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %322, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %323 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %323, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %324 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %325 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %325, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %326 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %326, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %327 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %328 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %328, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %329 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %329, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %330 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %331 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %331, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %332 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %332, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %333 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %334 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %334, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %335 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %335, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %336 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %337 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %337, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %338 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %338, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %339 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %340 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %340, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %341 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %341, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %342 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %343 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %343, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %344 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %344, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %345 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %346 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %346, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %347 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %347, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %348 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %349 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %349, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %350 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %350, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %351 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %352 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %352, align 8, !alias.scope !4681, !noalias !4683, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %353 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %354 = shufflevector <4 x double> %351, <4 x double> poison, <4 x i32> zeroinitializer %355 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %356 = shufflevector <4 x double> %348, <4 x double> poison, <4 x i32> zeroinitializer %357 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %358 = shufflevector <4 x double> %345, <4 x double> poison, <4 x i32> zeroinitializer %359 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %360 = shufflevector <4 x double> %342, <4 x double> poison, <4 x i32> zeroinitializer %361 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %362 = shufflevector <4 x double> %339, <4 x double> poison, <4 x i32> zeroinitializer %363 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %364 = shufflevector <4 x double> %336, <4 x double> poison, <4 x i32> zeroinitializer %365 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %366 = shufflevector <4 x double> %333, <4 x double> poison, <4 x i32> zeroinitializer %367 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %368 = shufflevector <4 x double> %330, <4 x double> poison, <4 x i32> zeroinitializer %369 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %370 = shufflevector <4 x double> %327, <4 x double> poison, <4 x i32> zeroinitializer %371 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %372 = shufflevector <4 x double> %324, <4 x double> poison, <4 x i32> zeroinitializer %373 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %374 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> zeroinitializer %375 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %376 = shufflevector <4 x double> %318, <4 x double> poison, <4 x i32> zeroinitializer %377 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %378 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> zeroinitializer %379 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %380 = shufflevector <4 x double> %312, <4 x double> poison, <4 x i32> zeroinitializer %381 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %382 = shufflevector <4 x double> %309, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.06085.i.i = phi i64 [ 0, %bb46.i.i ], [ %383, %bb98.i.i ] %383 = add nuw nsw i64 %iter10.sroa.218.06085.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i47.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i49.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i50.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i51.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i52.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.06085.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %296, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %295, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %297, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %294, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %299, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %298, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %300, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %293, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %301, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter10.sroa.218.06085.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %307, i64 %iter10.sroa.218.06085.i.i %x0.sroa.0.0.copyload.i53.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i38.i, align 8, !alias.scope !4676, !noalias !4684 %x1.sroa.0.0.copyload.i54.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4676, !noalias !4684 %x2.sroa.0.0.copyload.i55.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i, align 8, !alias.scope !4676, !noalias !4684 %x3.sroa.0.0.copyload.i56.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i40.i, align 8, !alias.scope !4676, !noalias !4684 %x4.sroa.0.0.copyload.i57.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i41.i, align 8, !alias.scope !4676, !noalias !4684 %x5.sroa.0.0.copyload.i58.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i, align 8, !alias.scope !4676, !noalias !4684 %x6.sroa.0.0.copyload.i59.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i43.i, align 8, !alias.scope !4676, !noalias !4684 %x7.sroa.0.0.copyload.i60.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i44.i, align 8, !alias.scope !4676, !noalias !4684 %x8.sroa.0.0.copyload.i61.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i, align 8, !alias.scope !4676, !noalias !4684 %x9.sroa.0.0.copyload.i62.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i46.i, align 8, !alias.scope !4676, !noalias !4684 %xa.sroa.0.0.copyload.i63.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i47.i, align 8, !alias.scope !4676, !noalias !4684 %xb.sroa.0.0.copyload.i64.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i, align 8, !alias.scope !4676, !noalias !4684 %xc.sroa.0.0.copyload.i65.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i49.i, align 8, !alias.scope !4676, !noalias !4684 %xd.sroa.0.0.copyload.i66.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i50.i, align 8, !alias.scope !4676, !noalias !4684 %xe.sroa.0.0.copyload.i67.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i51.i, align 8, !alias.scope !4676, !noalias !4684 %xf.sroa.0.0.copyload.i68.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i52.i, align 8, !alias.scope !4676, !noalias !4684 %384 = fadd <4 x double> %x0.sroa.0.0.copyload.i53.i, %x8.sroa.0.0.copyload.i61.i %385 = fsub <4 x double> %x0.sroa.0.0.copyload.i53.i, %x8.sroa.0.0.copyload.i61.i %386 = fadd <4 x double> %x4.sroa.0.0.copyload.i57.i, %xc.sroa.0.0.copyload.i65.i %387 = fsub <4 x double> %x4.sroa.0.0.copyload.i57.i, %xc.sroa.0.0.copyload.i65.i %388 = fadd <4 x double> %x2.sroa.0.0.copyload.i55.i, %xa.sroa.0.0.copyload.i63.i %389 = fsub <4 x double> %x2.sroa.0.0.copyload.i55.i, %xa.sroa.0.0.copyload.i63.i %390 = fadd <4 x double> %x6.sroa.0.0.copyload.i59.i, %xe.sroa.0.0.copyload.i67.i %391 = fsub <4 x double> %x6.sroa.0.0.copyload.i59.i, %xe.sroa.0.0.copyload.i67.i %392 = fadd <4 x double> %x1.sroa.0.0.copyload.i54.i, %x9.sroa.0.0.copyload.i62.i %393 = fsub <4 x double> %x1.sroa.0.0.copyload.i54.i, %x9.sroa.0.0.copyload.i62.i %394 = fadd <4 x double> %x5.sroa.0.0.copyload.i58.i, %xd.sroa.0.0.copyload.i66.i %395 = fsub <4 x double> %x5.sroa.0.0.copyload.i58.i, %xd.sroa.0.0.copyload.i66.i %396 = fadd <4 x double> %x3.sroa.0.0.copyload.i56.i, %xb.sroa.0.0.copyload.i64.i %397 = fsub <4 x double> %x3.sroa.0.0.copyload.i56.i, %xb.sroa.0.0.copyload.i64.i %398 = fadd <4 x double> %x7.sroa.0.0.copyload.i60.i, %xf.sroa.0.0.copyload.i68.i %399 = fsub <4 x double> %x7.sroa.0.0.copyload.i60.i, %xf.sroa.0.0.copyload.i68.i %400 = bitcast <4 x double> %387 to <4 x i64> %401 = bitcast <4 x double> %391 to <4 x i64> %402 = bitcast <4 x double> %395 to <4 x i64> %403 = bitcast <4 x double> %399 to <4 x i64> %404 = xor <4 x i64> %400, %405 = bitcast <4 x i64> %404 to <4 x double> %406 = shufflevector <4 x double> %405, <4 x double> poison, <4 x i32> %407 = xor <4 x i64> %401, %408 = bitcast <4 x i64> %407 to <4 x double> %409 = shufflevector <4 x double> %408, <4 x double> poison, <4 x i32> %410 = xor <4 x i64> %402, %411 = bitcast <4 x i64> %410 to <4 x double> %412 = shufflevector <4 x double> %411, <4 x double> poison, <4 x i32> %413 = xor <4 x i64> %403, %414 = bitcast <4 x i64> %413 to <4 x double> %415 = shufflevector <4 x double> %414, <4 x double> poison, <4 x i32> %416 = fadd <4 x double> %384, %386 %417 = fsub <4 x double> %385, %406 %418 = fsub <4 x double> %384, %386 %419 = fadd <4 x double> %385, %406 %420 = fadd <4 x double> %388, %390 %421 = fsub <4 x double> %389, %409 %422 = fsub <4 x double> %388, %390 %423 = fadd <4 x double> %389, %409 %424 = fadd <4 x double> %392, %394 %425 = fsub <4 x double> %393, %412 %426 = fsub <4 x double> %392, %394 %427 = fadd <4 x double> %393, %412 %428 = fadd <4 x double> %396, %398 %429 = fsub <4 x double> %397, %415 %430 = fsub <4 x double> %396, %398 %431 = fadd <4 x double> %397, %415 %432 = bitcast <4 x double> %421 to <4 x i64> %433 = xor <4 x i64> %432, %434 = bitcast <4 x i64> %433 to <4 x double> %435 = shufflevector <4 x double> %434, <4 x double> poison, <4 x i32> %436 = fadd <4 x double> %421, %435 %437 = fmul <4 x double> %436, %438 = bitcast <4 x double> %422 to <4 x i64> %439 = xor <4 x i64> %438, %440 = bitcast <4 x i64> %439 to <4 x double> %441 = shufflevector <4 x double> %440, <4 x double> poison, <4 x i32> %442 = bitcast <4 x double> %423 to <4 x i64> %443 = xor <4 x i64> %442, %444 = bitcast <4 x i64> %443 to <4 x double> %445 = shufflevector <4 x double> %444, <4 x double> poison, <4 x i32> %446 = fadd <4 x double> %423, %445 %447 = fmul <4 x double> %446, %448 = fadd <4 x double> %416, %420 %449 = fadd <4 x double> %417, %437 %450 = fsub <4 x double> %418, %441 %451 = fsub <4 x double> %419, %447 %452 = fsub <4 x double> %416, %420 %453 = fsub <4 x double> %417, %437 %454 = fadd <4 x double> %418, %441 %455 = fadd <4 x double> %419, %447 %456 = bitcast <4 x double> %429 to <4 x i64> %457 = xor <4 x i64> %456, %458 = bitcast <4 x i64> %457 to <4 x double> %459 = shufflevector <4 x double> %458, <4 x double> poison, <4 x i32> %460 = fadd <4 x double> %429, %459 %461 = fmul <4 x double> %460, %462 = bitcast <4 x double> %430 to <4 x i64> %463 = xor <4 x i64> %462, %464 = bitcast <4 x i64> %463 to <4 x double> %465 = shufflevector <4 x double> %464, <4 x double> poison, <4 x i32> %466 = bitcast <4 x double> %431 to <4 x i64> %467 = xor <4 x i64> %466, %468 = bitcast <4 x i64> %467 to <4 x double> %469 = shufflevector <4 x double> %468, <4 x double> poison, <4 x i32> %470 = fadd <4 x double> %431, %469 %471 = fmul <4 x double> %470, %472 = fadd <4 x double> %424, %428 %473 = fadd <4 x double> %425, %461 %474 = fsub <4 x double> %426, %465 %475 = fsub <4 x double> %427, %471 %476 = fsub <4 x double> %424, %428 %477 = fsub <4 x double> %425, %461 %478 = fadd <4 x double> %426, %465 %479 = fadd <4 x double> %427, %471 %480 = fmul <4 x double> %473, %481 = shufflevector <4 x double> %480, <4 x double> poison, <4 x i32> %482 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %473, <4 x double> %481) #23 %483 = bitcast <4 x double> %474 to <4 x i64> %484 = xor <4 x i64> %483, %485 = bitcast <4 x i64> %484 to <4 x double> %486 = shufflevector <4 x double> %485, <4 x double> poison, <4 x i32> %487 = fmul <4 x double> %475, %488 = shufflevector <4 x double> %487, <4 x double> poison, <4 x i32> %489 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %475, <4 x double> %488) #23 %490 = bitcast <4 x double> %476 to <4 x i64> %491 = xor <4 x i64> %490, %492 = bitcast <4 x i64> %491 to <4 x double> %493 = shufflevector <4 x double> %492, <4 x double> poison, <4 x i32> %494 = fmul <4 x double> %477, %495 = shufflevector <4 x double> %494, <4 x double> poison, <4 x i32> %496 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %477, <4 x double> %495) #23 %497 = bitcast <4 x double> %478 to <4 x i64> %498 = xor <4 x i64> %497, %499 = bitcast <4 x i64> %498 to <4 x double> %500 = shufflevector <4 x double> %499, <4 x double> poison, <4 x i32> %501 = fmul <4 x double> %479, %502 = shufflevector <4 x double> %501, <4 x double> poison, <4 x i32> %503 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %479, <4 x double> %502) #23 %.in6082.i.i = fadd <4 x double> %474, %486 %504 = fmul <4 x double> %.in6082.i.i, %.in.i69.i = fadd <4 x double> %478, %500 %505 = fmul <4 x double> %.in.i69.i, %506 = fadd <4 x double> %448, %472 store <4 x double> %506, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %507 = fadd <4 x double> %482, %449 %508 = shufflevector <4 x double> %507, <4 x double> poison, <4 x i32> %509 = fmul <4 x double> %354, %508 %510 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %353, <4 x double> %507, <4 x double> %509) #23 store <4 x double> %510, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %511 = fadd <4 x double> %450, %504 %512 = shufflevector <4 x double> %511, <4 x double> poison, <4 x i32> %513 = fmul <4 x double> %356, %512 %514 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %355, <4 x double> %511, <4 x double> %513) #23 store <4 x double> %514, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %515 = fadd <4 x double> %489, %451 %516 = shufflevector <4 x double> %515, <4 x double> poison, <4 x i32> %517 = fmul <4 x double> %358, %516 %518 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %357, <4 x double> %515, <4 x double> %517) #23 store <4 x double> %518, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %519 = fsub <4 x double> %452, %493 %520 = shufflevector <4 x double> %519, <4 x double> poison, <4 x i32> %521 = fmul <4 x double> %360, %520 %522 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %359, <4 x double> %519, <4 x double> %521) #23 store <4 x double> %522, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %523 = fsub <4 x double> %453, %496 %524 = shufflevector <4 x double> %523, <4 x double> poison, <4 x i32> %525 = fmul <4 x double> %362, %524 %526 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %361, <4 x double> %523, <4 x double> %525) #23 store <4 x double> %526, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %527 = fsub <4 x double> %454, %505 %528 = shufflevector <4 x double> %527, <4 x double> poison, <4 x i32> %529 = fmul <4 x double> %364, %528 %530 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %363, <4 x double> %527, <4 x double> %529) #23 store <4 x double> %530, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %531 = fsub <4 x double> %455, %503 %532 = shufflevector <4 x double> %531, <4 x double> poison, <4 x i32> %533 = fmul <4 x double> %366, %532 %534 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %365, <4 x double> %531, <4 x double> %533) #23 store <4 x double> %534, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %535 = fsub <4 x double> %448, %472 %536 = shufflevector <4 x double> %535, <4 x double> poison, <4 x i32> %537 = fmul <4 x double> %368, %536 %538 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %367, <4 x double> %535, <4 x double> %537) #23 store <4 x double> %538, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %539 = fsub <4 x double> %449, %482 %540 = shufflevector <4 x double> %539, <4 x double> poison, <4 x i32> %541 = fmul <4 x double> %370, %540 %542 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %369, <4 x double> %539, <4 x double> %541) #23 store <4 x double> %542, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %543 = fsub <4 x double> %450, %504 %544 = shufflevector <4 x double> %543, <4 x double> poison, <4 x i32> %545 = fmul <4 x double> %372, %544 %546 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %371, <4 x double> %543, <4 x double> %545) #23 store <4 x double> %546, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %547 = fsub <4 x double> %451, %489 %548 = shufflevector <4 x double> %547, <4 x double> poison, <4 x i32> %549 = fmul <4 x double> %374, %548 %550 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %373, <4 x double> %547, <4 x double> %549) #23 store <4 x double> %550, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %551 = fadd <4 x double> %452, %493 %552 = shufflevector <4 x double> %551, <4 x double> poison, <4 x i32> %553 = fmul <4 x double> %376, %552 %554 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %375, <4 x double> %551, <4 x double> %553) #23 store <4 x double> %554, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %555 = fadd <4 x double> %496, %453 %556 = shufflevector <4 x double> %555, <4 x double> poison, <4 x i32> %557 = fmul <4 x double> %378, %556 %558 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %377, <4 x double> %555, <4 x double> %557) #23 store <4 x double> %558, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %559 = fadd <4 x double> %454, %505 %560 = shufflevector <4 x double> %559, <4 x double> poison, <4 x i32> %561 = fmul <4 x double> %380, %560 %562 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %379, <4 x double> %559, <4 x double> %561) #23 store <4 x double> %562, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %563 = fadd <4 x double> %503, %455 %564 = shufflevector <4 x double> %563, <4 x double> poison, <4 x i32> %565 = fmul <4 x double> %382, %564 %566 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %381, <4 x double> %563, <4 x double> %565) #23 store <4 x double> %566, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !4679, !noalias !4685 %exitcond.not.i70.i = icmp eq i64 %383, 8 br i1 %exitcond.not.i70.i, label %bb44.loopexit.i.i, label %bb98.i.i bb13.i.i.i.i: ; preds = %bb44.loopexit.i.i, %bb13.i.i.i.i %iter.i.i.i.sroa.22.0181.i = phi i64 [ %567, %bb13.i.i.i.i ], [ 0, %bb44.loopexit.i.i ] %567 = add nuw nsw i64 %iter.i.i.i.sroa.22.0181.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0181.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0181.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0181.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.i.i.i.sroa.22.0181.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4661 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4661 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4661 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4661 %568 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %569 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %570 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %571 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %572 = bitcast <4 x double> %571 to <4 x i64> %573 = xor <4 x i64> %572, %574 = bitcast <4 x i64> %573 to <4 x double> %575 = shufflevector <4 x double> %574, <4 x double> poison, <4 x i32> %576 = fadd <4 x double> %568, %570 %577 = fsub <4 x double> %569, %575 %578 = fsub <4 x double> %568, %570 %579 = fadd <4 x double> %569, %575 store <4 x double> %576, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4661 store <4 x double> %577, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4661 store <4 x double> %578, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4661 store <4 x double> %579, ptr %_3.i.i.i.i.i, align 8, !noalias !4661 %exitcond182.not.i = icmp eq i64 %567, 128 br i1 %exitcond182.not.i, label %_ZN4pulp3x862V39vectorize6__impl17hef578b025657c2dbE.exit, label %bb13.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17hef578b025657c2dbE.exit: ; preds = %bb13.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4661 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha882f69e8296bfb4E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4686 store i64 256, ptr %n.i.i, align 8, !noalias !4686 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4686 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4686 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4686 store ptr null, ptr %_16.i.i, align 8, !noalias !4686 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4686 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4686 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4686 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4686 store ptr null, ptr %_24.i.i, align 8, !noalias !4686 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4686 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4686 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4686 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4686 store ptr null, ptr %_32.i.i, align 8, !noalias !4686 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4686 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4686 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4686 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7338e4c18d7c0cc6E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4686 store ptr null, ptr %_40.i.i, align 8, !noalias !4686 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7338e4c18d7c0cc6E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4686 tail call void @llvm.experimental.noalias.scope.decl(metadata !4691) tail call void @llvm.experimental.noalias.scope.decl(metadata !4694) tail call void @llvm.experimental.noalias.scope.decl(metadata !4696) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7338e4c18d7c0cc6E.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7338e4c18d7c0cc6E.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4691, !noalias !4698 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4696, !noalias !4699 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4694, !noalias !4700 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !4694, !noalias !4700 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !4694, !noalias !4700 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !4694, !noalias !4700 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !4694, !noalias !4700 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !4694, !noalias !4700 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !4694, !noalias !4700 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !4694, !noalias !4700 %exitcond.not.i.i = icmp eq i64 %16, 16 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4701) tail call void @llvm.experimental.noalias.scope.decl(metadata !4704) tail call void @llvm.experimental.noalias.scope.decl(metadata !4706) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %122 = add nuw nsw i64 %iter.sroa.104.02174.i.i, 1 %exitcond.not.i = icmp eq i64 %122, 4 br i1 %exitcond.not.i, label %bb13.i.i.i.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter.sroa.104.02174.i.i = phi i64 [ %122, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %130, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %131 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %132, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %133, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %134 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %135, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %136, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %137 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %138, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %139, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %140 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %141, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %142, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %143 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %144, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %145, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %146 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %147, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %148, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %149 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %150, align 8, !alias.scope !4706, !noalias !4708, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %151 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %165, %bb58.i.i ] %165 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !4701, !noalias !4709 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4701, !noalias !4709 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !4701, !noalias !4709 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !4701, !noalias !4709 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !4701, !noalias !4709 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !4701, !noalias !4709 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !4701, !noalias !4709 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !4701, !noalias !4709 %166 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %168 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %172 = bitcast <4 x double> %171 to <4 x i64> %173 = xor <4 x i64> %170, %174 = bitcast <4 x i64> %173 to <4 x double> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = xor <4 x i64> %172, %177 = bitcast <4 x i64> %176 to <4 x double> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %181 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %182 = fadd <4 x double> %166, %168 %183 = fsub <4 x double> %167, %175 %184 = fsub <4 x double> %166, %168 %185 = fadd <4 x double> %167, %175 %186 = fadd <4 x double> %179, %181 %187 = fsub <4 x double> %180, %178 %188 = bitcast <4 x double> %187 to <4 x i64> %189 = fsub <4 x double> %179, %181 %190 = bitcast <4 x double> %189 to <4 x i64> %191 = fadd <4 x double> %180, %178 %192 = xor <4 x i64> %188, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %194 %196 = fmul <4 x double> %195, %197 = xor <4 x i64> %190, %198 = bitcast <4 x i64> %197 to <4 x double> %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = bitcast <4 x double> %191 to <4 x i64> %201 = xor <4 x i64> %200, %202 = bitcast <4 x i64> %201 to <4 x double> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fadd <4 x double> %191, %203 %205 = fmul <4 x double> %204, %206 = fadd <4 x double> %182, %186 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %207 = fadd <4 x double> %183, %196 %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %152, %208 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %207, <4 x double> %209) #23 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %211 = fsub <4 x double> %184, %199 %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %154, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %211, <4 x double> %213) #23 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %215 = fsub <4 x double> %185, %205 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %156, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %219 = fsub <4 x double> %182, %186 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %158, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %223 = fsub <4 x double> %183, %196 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %160, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %227 = fadd <4 x double> %184, %199 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %162, %228 %230 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %227, <4 x double> %229) #23 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %231 = fadd <4 x double> %185, %205 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %164, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %231, <4 x double> %233) #23 store <4 x double> %234, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !4704, !noalias !4710 %exitcond.not.i38.i = icmp eq i64 %165, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i bb13.i.i.i.i: ; preds = %bb28.loopexit.i.i, %bb13.i.i.i.i %iter.i.i.i.sroa.22.0150.i = phi i64 [ %235, %bb13.i.i.i.i ], [ 0, %bb28.loopexit.i.i ] %235 = add nuw nsw i64 %iter.i.i.i.sroa.22.0150.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0150.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0150.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0150.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.i.i.i.sroa.22.0150.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4686 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4686 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4686 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4686 %236 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %237 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %238 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %239 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %240 = bitcast <4 x double> %239 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %236, %238 %245 = fsub <4 x double> %237, %243 %246 = fsub <4 x double> %236, %238 %247 = fadd <4 x double> %237, %243 store <4 x double> %244, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4686 store <4 x double> %245, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !4686 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4686 store <4 x double> %247, ptr %_3.i.i.i.i.i, align 8, !noalias !4686 %exitcond151.not.i = icmp eq i64 %235, 32 br i1 %exitcond151.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h495e5dda410f8b30E.exit, label %bb13.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h495e5dda410f8b30E.exit: ; preds = %bb13.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4686 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha931eb0366ce5f51E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4711 store i64 128, ptr %n.i.i, align 8, !noalias !4711 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4711 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4711 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4711 store ptr null, ptr %_16.i.i, align 8, !noalias !4711 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4711 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4711 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4711 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4711 store ptr null, ptr %_24.i.i, align 8, !noalias !4711 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4711 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4711 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4711 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4711 store ptr null, ptr %_32.i.i, align 8, !noalias !4711 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4711 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4711 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4711 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3c9b1e5804ede2fE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4711 store ptr null, ptr %_40.i.i, align 8, !noalias !4711 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3c9b1e5804ede2fE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4711 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3c9b1e5804ede2fE.exit.i" %iter.i.i.i.sroa.8.047.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3c9b1e5804ede2fE.exit.i" ], [ %12, %bb9.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.sroa.8.047.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.047.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.047.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4711 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !4711 %4 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !4711 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !4711 %6 = or disjoint i64 %iter.i.i.i.sroa.8.047.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4711 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4711 %7 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4711 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4711 %9 = or disjoint i64 %iter.i.i.i.sroa.8.047.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4711 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4711 %10 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4711 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4711 %12 = add nuw nsw i64 %iter.i.i.i.sroa.8.047.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4711 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4711 %13 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4711 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4711 %exitcond.not.i.3 = icmp eq i64 %12, 32 br i1 %exitcond.not.i.3, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i", label %bb9.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i": ; preds = %bb9.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4716) tail call void @llvm.experimental.noalias.scope.decl(metadata !4719) tail call void @llvm.experimental.noalias.scope.decl(metadata !4721) %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i br i1 %_2.i.i.i.i.i, label %bb30.i.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" %_2.i.i.i.i.i = phi i1 [ false, %bb28.loopexit.i.i ], [ true, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %iter.sroa.104.02127.i.i = phi i64 [ 1, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02127.i.i, 3 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %29, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %30 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %31, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %32, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %33 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %34, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %35, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %36 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %37, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %38, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %39 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %40, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %41, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %42 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %43, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %44, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %45 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %46 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %46, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %47, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %48 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %49, align 8, !alias.scope !4721, !noalias !4723, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %50 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %51 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> zeroinitializer %52 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %53 = shufflevector <4 x double> %45, <4 x double> poison, <4 x i32> zeroinitializer %54 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %55 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %57 = shufflevector <4 x double> %39, <4 x double> poison, <4 x i32> zeroinitializer %58 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %33, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %64, %bb58.i.i ] %64 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %65 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = fmul <4 x double> %51, %65 %67 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %66) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %68 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %69 = fmul <4 x double> %53, %68 %70 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %52, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %69) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %71 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = fmul <4 x double> %55, %71 %73 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %54, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %72) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %74 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %57, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %56, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %75) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %77 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %59, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %78) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %80 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %61, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %81) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !4719, !noalias !4724 %83 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %63, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %84) #23 %86 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %76 %87 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %76 %88 = fadd <4 x double> %70, %82 %89 = fsub <4 x double> %70, %82 %90 = bitcast <4 x double> %89 to <4 x i64> %91 = fsub <4 x double> %73, %85 %92 = bitcast <4 x double> %91 to <4 x i64> %93 = xor <4 x i64> %90, %94 = bitcast <4 x i64> %93 to <4 x double> %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = xor <4 x i64> %92, %97 = bitcast <4 x i64> %96 to <4 x double> %98 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> %99 = fadd <4 x double> %67, %79 %100 = fsub <4 x double> %67, %79 %101 = fadd <4 x double> %73, %85 %102 = fadd <4 x double> %86, %88 %103 = fadd <4 x double> %99, %101 %104 = fadd <4 x double> %102, %103 store <4 x double> %104, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %105 = fsub <4 x double> %102, %103 store <4 x double> %105, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %106 = fsub <4 x double> %87, %95 %107 = fsub <4 x double> %100, %98 %108 = bitcast <4 x double> %107 to <4 x i64> %109 = xor <4 x i64> %108, %110 = bitcast <4 x i64> %109 to <4 x double> %111 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> %112 = fadd <4 x double> %107, %111 %113 = fmul <4 x double> %112, %114 = fadd <4 x double> %106, %113 store <4 x double> %114, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %115 = fsub <4 x double> %106, %113 store <4 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %116 = fsub <4 x double> %86, %88 %117 = fsub <4 x double> %99, %101 %118 = bitcast <4 x double> %117 to <4 x i64> %119 = fadd <4 x double> %87, %95 %120 = fadd <4 x double> %100, %98 %121 = xor <4 x i64> %118, %122 = bitcast <4 x i64> %121 to <4 x double> %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fsub <4 x double> %116, %123 store <4 x double> %124, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %125 = fadd <4 x double> %116, %123 store <4 x double> %125, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %126 = bitcast <4 x double> %120 to <4 x i64> %127 = xor <4 x i64> %126, %128 = bitcast <4 x i64> %127 to <4 x double> %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = fadd <4 x double> %120, %129 %131 = fmul <4 x double> %130, %132 = fsub <4 x double> %119, %131 store <4 x double> %132, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %133 = fadd <4 x double> %119, %131 store <4 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4716, !noalias !4725 %exitcond.not.i.i = icmp eq i64 %64, 4 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4726) tail call void @llvm.experimental.noalias.scope.decl(metadata !4729) tail call void @llvm.experimental.noalias.scope.decl(metadata !4731) %134 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %135 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %137 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %138 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %139 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %140 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %141 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %142 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %143 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %144 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %146 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.106.01794.i.i = phi i64 [ %147, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %147 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %135, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21.i = getelementptr inbounds %"fft_simd::c64x2", ptr %134, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22.i = getelementptr inbounds %"fft_simd::c64x2", ptr %136, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %138, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %137, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %139, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %142, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %141, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %143, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %140, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %145, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %144, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %146, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !4731, !noalias !4733 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4731, !noalias !4733 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4731, !noalias !4733 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4731, !noalias !4733 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4731, !noalias !4733 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4731, !noalias !4733 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !4731, !noalias !4733 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4729, !noalias !4734 %148 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %148, align 8, !alias.scope !4729, !noalias !4734 %149 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %149, align 8, !alias.scope !4729, !noalias !4734 %150 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %150, align 8, !alias.scope !4729, !noalias !4734 %151 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %151, align 8, !alias.scope !4729, !noalias !4734 %152 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %152, align 8, !alias.scope !4729, !noalias !4734 %153 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %153, align 8, !alias.scope !4729, !noalias !4734 %154 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %154, align 8, !alias.scope !4729, !noalias !4734 %155 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %156 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %177, %175 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fadd <4 x double> %155, %179 %199 = fsub <4 x double> %155, %179 %200 = fadd <4 x double> %167, %191 %201 = fsub <4 x double> %167, %191 %202 = bitcast <4 x double> %201 to <4 x i64> %203 = fsub <4 x double> %173, %197 %204 = bitcast <4 x double> %203 to <4 x i64> %205 = xor <4 x i64> %202, %206 = bitcast <4 x i64> %205 to <4 x double> %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = xor <4 x i64> %204, %209 = bitcast <4 x i64> %208 to <4 x double> %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = fadd <4 x double> %161, %185 %212 = fsub <4 x double> %161, %185 %213 = fadd <4 x double> %173, %197 %214 = fadd <4 x double> %198, %200 %215 = fadd <4 x double> %211, %213 %216 = fadd <4 x double> %214, %215 store <4 x double> %216, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4726, !noalias !4735 %217 = fsub <4 x double> %214, %215 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !4726, !noalias !4735 %218 = fsub <4 x double> %199, %207 %219 = fsub <4 x double> %212, %210 %220 = bitcast <4 x double> %219 to <4 x i64> %221 = xor <4 x i64> %220, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fadd <4 x double> %219, %223 %225 = fmul <4 x double> %224, %226 = fadd <4 x double> %218, %225 store <4 x double> %226, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4726, !noalias !4735 %227 = fsub <4 x double> %218, %225 store <4 x double> %227, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !4726, !noalias !4735 %228 = fsub <4 x double> %198, %200 %229 = fsub <4 x double> %211, %213 %230 = bitcast <4 x double> %229 to <4 x i64> %231 = fadd <4 x double> %199, %207 %232 = fadd <4 x double> %212, %210 %233 = xor <4 x i64> %230, %234 = bitcast <4 x i64> %233 to <4 x double> %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = fsub <4 x double> %228, %235 store <4 x double> %236, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i21.i, align 8, !alias.scope !4726, !noalias !4735 %237 = fadd <4 x double> %228, %235 store <4 x double> %237, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !4726, !noalias !4735 %238 = bitcast <4 x double> %232 to <4 x i64> %239 = xor <4 x i64> %238, %240 = bitcast <4 x i64> %239 to <4 x double> %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = fadd <4 x double> %232, %241 %243 = fmul <4 x double> %242, %244 = fsub <4 x double> %231, %243 store <4 x double> %244, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i22.i, align 8, !alias.scope !4726, !noalias !4735 %245 = fadd <4 x double> %231, %243 store <4 x double> %245, ptr %_3.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !4726, !noalias !4735 %exitcond.not.i28.i = icmp eq i64 %147, 8 br i1 %exitcond.not.i28.i, label %_ZN4pulp3x862V39vectorize6__impl17h2fb9c763c375ac0cE.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17h2fb9c763c375ac0cE.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4711 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17ha9982bf6d43a3f40E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hef381ddd18071fb6E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hac09fcb73d929b37E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4736 store i64 32, ptr %n.i, align 8, !noalias !4736 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4736 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4736 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4736 store ptr null, ptr %_16.i, align 8, !noalias !4736 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4736 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4736 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4736 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4736 store ptr null, ptr %_24.i, align 8, !noalias !4736 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4736 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4736 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4736 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4736 store ptr null, ptr %_32.i, align 8, !noalias !4736 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4736 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4736 store i64 %w.1, ptr %_34.i, align 8, !noalias !4736 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4736 store ptr null, ptr %_40.i, align 8, !noalias !4736 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4736 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4736 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !4736 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %2 = fadd <4 x double> %strided.vec, %strided.vec3 %3 = fadd <4 x double> %strided.vec1, %strided.vec4 %4 = fsub <4 x double> %strided.vec, %strided.vec3 %5 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %2, <4 x double> %3, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !4736 %interleaved.vec5 = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec5, ptr %1, align 8, !noalias !4736 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %6, align 8, !noalias !4736 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %7, align 8, !noalias !4736 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %8 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %9 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %10 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %11 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %8, <4 x double> %9, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %12, align 8, !noalias !4736 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec5.1 = shufflevector <4 x double> %10, <4 x double> %11, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %13, align 8, !noalias !4736 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %14, align 8, !noalias !4736 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %15, align 8, !noalias !4736 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %16 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %17 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %18 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %19 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %20, align 8, !noalias !4736 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec5.2 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %21, align 8, !noalias !4736 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %22, align 8, !noalias !4736 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %23, align 8, !noalias !4736 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %24 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %25 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %26 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %27 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %28, align 8, !noalias !4736 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec5.3 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %29, align 8, !noalias !4736 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <2 x i64> %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %31, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %32, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2 %wide.masked.gather13 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %33, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %34, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3 %wide.masked.gather15 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %35, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %36, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4 %wide.masked.gather17 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %37, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 4, i32 1 %wide.masked.gather18 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %38, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5 %wide.masked.gather19 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %39, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 5, i32 1 %wide.masked.gather20 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %40, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6 %wide.masked.gather21 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %41, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 6, i32 1 %wide.masked.gather22 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %42, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7 %wide.masked.gather23 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %43, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 7, i32 1 %wide.masked.gather24 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %44, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 8 %wide.masked.gather25 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %45, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 8, i32 1 %wide.masked.gather26 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %46, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 9 %wide.masked.gather27 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %47, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 9, i32 1 %wide.masked.gather28 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %48, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 10 %wide.masked.gather29 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %49, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 10, i32 1 %wide.masked.gather30 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %50, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 11 %wide.masked.gather31 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %51, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 11, i32 1 %wide.masked.gather32 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %52, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 12 %wide.masked.gather33 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %53, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 12, i32 1 %wide.masked.gather34 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %54, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 13 %wide.masked.gather35 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %55, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 13, i32 1 %wide.masked.gather36 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %56, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 14 %wide.masked.gather37 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %57, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 14, i32 1 %wide.masked.gather38 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %58, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 15 %wide.masked.gather39 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %59, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 15, i32 1 %wide.masked.gather40 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %60, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %61 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 8 %62 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 4 %63 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 2 %64 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 1 %65 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 3 %66 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 6 %67 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 5 %68 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 7 %69 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 12 %70 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 10 %71 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 9 %72 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 11 %73 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 14 %74 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 13 %75 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 15 %76 = fneg <2 x double> %wide.masked.gather12 %77 = fneg <2 x double> %wide.masked.gather14 %78 = fneg <2 x double> %wide.masked.gather16 %79 = fneg <2 x double> %wide.masked.gather18 %80 = fneg <2 x double> %wide.masked.gather20 %81 = fneg <2 x double> %wide.masked.gather22 %82 = fneg <2 x double> %wide.masked.gather24 %83 = fneg <2 x double> %wide.masked.gather26 %84 = fneg <2 x double> %wide.masked.gather28 %85 = fneg <2 x double> %wide.masked.gather30 %86 = fneg <2 x double> %wide.masked.gather32 %87 = fneg <2 x double> %wide.masked.gather34 %88 = fneg <2 x double> %wide.masked.gather36 %89 = fneg <2 x double> %wide.masked.gather38 %90 = fneg <2 x double> %wide.masked.gather40 %wide.masked.gather41 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %30, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %91 = getelementptr inbounds i8, <2 x ptr> %30, i64 8 %wide.masked.gather42 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %91, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %wide.masked.gather43 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %64, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %92 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 1, i32 1 %wide.masked.gather44 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %92, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %93 = fmul <2 x double> %wide.masked.gather44, %76 %94 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather43, <2 x double> %93) %95 = fmul <2 x double> %wide.masked.gather12, %wide.masked.gather43 %96 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %wide.masked.gather44, <2 x double> %95) %wide.masked.gather45 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %63, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %97 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 2, i32 1 %wide.masked.gather46 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %97, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %98 = fmul <2 x double> %wide.masked.gather46, %77 %99 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather45, <2 x double> %98) %100 = fmul <2 x double> %wide.masked.gather14, %wide.masked.gather45 %101 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %wide.masked.gather46, <2 x double> %100) %wide.masked.gather47 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %65, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %102 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 3, i32 1 %wide.masked.gather48 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %102, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %103 = fmul <2 x double> %wide.masked.gather48, %78 %104 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather47, <2 x double> %103) %105 = fmul <2 x double> %wide.masked.gather16, %wide.masked.gather47 %106 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %wide.masked.gather48, <2 x double> %105) %wide.masked.gather49 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %62, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %107 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 4, i32 1 %wide.masked.gather50 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %107, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %108 = fmul <2 x double> %wide.masked.gather50, %79 %109 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather49, <2 x double> %108) %110 = fmul <2 x double> %wide.masked.gather18, %wide.masked.gather49 %111 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather17, <2 x double> %wide.masked.gather50, <2 x double> %110) %wide.masked.gather51 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %67, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %112 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 5, i32 1 %wide.masked.gather52 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %112, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %113 = fmul <2 x double> %wide.masked.gather52, %80 %114 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather51, <2 x double> %113) %115 = fmul <2 x double> %wide.masked.gather20, %wide.masked.gather51 %116 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather19, <2 x double> %wide.masked.gather52, <2 x double> %115) %wide.masked.gather53 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %66, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %117 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 6, i32 1 %wide.masked.gather54 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %117, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %118 = fmul <2 x double> %wide.masked.gather54, %81 %119 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather53, <2 x double> %118) %120 = fmul <2 x double> %wide.masked.gather22, %wide.masked.gather53 %121 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather21, <2 x double> %wide.masked.gather54, <2 x double> %120) %wide.masked.gather55 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %68, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %122 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 7, i32 1 %wide.masked.gather56 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %122, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %123 = fmul <2 x double> %wide.masked.gather56, %82 %124 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather55, <2 x double> %123) %125 = fmul <2 x double> %wide.masked.gather24, %wide.masked.gather55 %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather23, <2 x double> %wide.masked.gather56, <2 x double> %125) %wide.masked.gather57 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %61, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %127 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 8, i32 1 %wide.masked.gather58 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %127, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %128 = fmul <2 x double> %wide.masked.gather58, %83 %129 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather25, <2 x double> %wide.masked.gather57, <2 x double> %128) %130 = fmul <2 x double> %wide.masked.gather26, %wide.masked.gather57 %131 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather25, <2 x double> %wide.masked.gather58, <2 x double> %130) %wide.masked.gather59 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %71, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %132 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 9, i32 1 %wide.masked.gather60 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %132, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %133 = fmul <2 x double> %wide.masked.gather60, %84 %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather27, <2 x double> %wide.masked.gather59, <2 x double> %133) %135 = fmul <2 x double> %wide.masked.gather28, %wide.masked.gather59 %136 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather27, <2 x double> %wide.masked.gather60, <2 x double> %135) %wide.masked.gather61 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %70, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %137 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 10, i32 1 %wide.masked.gather62 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %137, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %138 = fmul <2 x double> %wide.masked.gather62, %85 %139 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather29, <2 x double> %wide.masked.gather61, <2 x double> %138) %140 = fmul <2 x double> %wide.masked.gather30, %wide.masked.gather61 %141 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather29, <2 x double> %wide.masked.gather62, <2 x double> %140) %wide.masked.gather63 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %72, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %142 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 11, i32 1 %wide.masked.gather64 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %142, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %143 = fmul <2 x double> %wide.masked.gather64, %86 %144 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather31, <2 x double> %wide.masked.gather63, <2 x double> %143) %145 = fmul <2 x double> %wide.masked.gather32, %wide.masked.gather63 %146 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather31, <2 x double> %wide.masked.gather64, <2 x double> %145) %wide.masked.gather65 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %69, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %147 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 12, i32 1 %wide.masked.gather66 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %147, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %148 = fmul <2 x double> %wide.masked.gather66, %87 %149 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather33, <2 x double> %wide.masked.gather65, <2 x double> %148) %150 = fmul <2 x double> %wide.masked.gather34, %wide.masked.gather65 %151 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather33, <2 x double> %wide.masked.gather66, <2 x double> %150) %wide.masked.gather67 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %74, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %152 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 13, i32 1 %wide.masked.gather68 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %152, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %153 = fmul <2 x double> %wide.masked.gather68, %88 %154 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather35, <2 x double> %wide.masked.gather67, <2 x double> %153) %155 = fmul <2 x double> %wide.masked.gather36, %wide.masked.gather67 %156 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather35, <2 x double> %wide.masked.gather68, <2 x double> %155) %wide.masked.gather69 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %73, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %157 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 14, i32 1 %wide.masked.gather70 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %157, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %158 = fmul <2 x double> %wide.masked.gather70, %89 %159 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather37, <2 x double> %wide.masked.gather69, <2 x double> %158) %160 = fmul <2 x double> %wide.masked.gather38, %wide.masked.gather69 %161 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather37, <2 x double> %wide.masked.gather70, <2 x double> %160) %wide.masked.gather71 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %75, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %162 = getelementptr inbounds %"num_complex::Complex", <2 x ptr> %30, i64 15, i32 1 %wide.masked.gather72 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %162, i32 8, <2 x i1> , <2 x double> poison), !noalias !4736 %163 = fmul <2 x double> %wide.masked.gather72, %90 %164 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather39, <2 x double> %wide.masked.gather71, <2 x double> %163) %165 = fmul <2 x double> %wide.masked.gather40, %wide.masked.gather71 %166 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather39, <2 x double> %wide.masked.gather72, <2 x double> %165) %167 = fadd <2 x double> %wide.masked.gather41, %129 %168 = fadd <2 x double> %wide.masked.gather42, %131 %169 = fsub <2 x double> %wide.masked.gather41, %129 %170 = fsub <2 x double> %wide.masked.gather42, %131 %171 = fadd <2 x double> %109, %149 %172 = fadd <2 x double> %111, %151 %173 = fsub <2 x double> %109, %149 %174 = fsub <2 x double> %111, %151 %175 = fadd <2 x double> %99, %139 %176 = fadd <2 x double> %101, %141 %177 = fsub <2 x double> %99, %139 %178 = fsub <2 x double> %101, %141 %179 = fadd <2 x double> %119, %159 %180 = fadd <2 x double> %121, %161 %181 = fsub <2 x double> %119, %159 %182 = fsub <2 x double> %121, %161 %183 = fadd <2 x double> %94, %134 %184 = fadd <2 x double> %96, %136 %185 = fsub <2 x double> %94, %134 %186 = fsub <2 x double> %96, %136 %187 = fadd <2 x double> %114, %154 %188 = fadd <2 x double> %116, %156 %189 = fsub <2 x double> %114, %154 %190 = fsub <2 x double> %116, %156 %191 = fadd <2 x double> %104, %144 %192 = fadd <2 x double> %106, %146 %193 = fsub <2 x double> %104, %144 %194 = fsub <2 x double> %106, %146 %195 = fadd <2 x double> %124, %164 %196 = fadd <2 x double> %126, %166 %197 = fsub <2 x double> %124, %164 %198 = fsub <2 x double> %126, %166 %199 = fadd <2 x double> %167, %171 %200 = fadd <2 x double> %168, %172 %201 = fsub <2 x double> %169, %174 %202 = fadd <2 x double> %170, %173 %203 = fsub <2 x double> %167, %171 %204 = fsub <2 x double> %168, %172 %205 = fadd <2 x double> %169, %174 %206 = fsub <2 x double> %170, %173 %207 = fadd <2 x double> %175, %179 %208 = fadd <2 x double> %176, %180 %209 = fsub <2 x double> %177, %182 %210 = fadd <2 x double> %178, %181 %211 = fsub <2 x double> %175, %179 %212 = fsub <2 x double> %176, %180 %213 = fadd <2 x double> %177, %182 %214 = fsub <2 x double> %178, %181 %215 = fadd <2 x double> %183, %187 %216 = fadd <2 x double> %184, %188 %217 = fsub <2 x double> %185, %190 %218 = fadd <2 x double> %186, %189 %219 = fsub <2 x double> %183, %187 %220 = fsub <2 x double> %184, %188 %221 = fadd <2 x double> %185, %190 %222 = fsub <2 x double> %186, %189 %223 = fadd <2 x double> %191, %195 %224 = fadd <2 x double> %192, %196 %225 = fsub <2 x double> %193, %198 %226 = fadd <2 x double> %194, %197 %227 = fsub <2 x double> %191, %195 %228 = fsub <2 x double> %192, %196 %229 = fadd <2 x double> %193, %198 %230 = fsub <2 x double> %194, %197 %231 = fsub <2 x double> %209, %210 %232 = fadd <2 x double> %209, %210 %233 = fmul <2 x double> %231, %234 = fmul <2 x double> %232, %235 = fadd <2 x double> %213, %214 %236 = fsub <2 x double> %214, %213 %237 = fmul <2 x double> %235, %238 = fmul <2 x double> %236, %239 = fadd <2 x double> %199, %207 %240 = fadd <2 x double> %200, %208 %241 = fadd <2 x double> %201, %233 %242 = fadd <2 x double> %202, %234 %243 = fsub <2 x double> %203, %212 %244 = fadd <2 x double> %204, %211 %245 = fsub <2 x double> %205, %237 %246 = fsub <2 x double> %206, %238 %247 = fsub <2 x double> %199, %207 %248 = fsub <2 x double> %200, %208 %249 = fsub <2 x double> %201, %233 %250 = fsub <2 x double> %202, %234 %251 = fadd <2 x double> %203, %212 %252 = fsub <2 x double> %204, %211 %253 = fadd <2 x double> %205, %237 %254 = fadd <2 x double> %206, %238 %255 = fsub <2 x double> %225, %226 %256 = fadd <2 x double> %225, %226 %257 = fmul <2 x double> %255, %258 = fmul <2 x double> %256, %259 = fadd <2 x double> %229, %230 %260 = fsub <2 x double> %230, %229 %261 = fmul <2 x double> %259, %262 = fmul <2 x double> %260, %263 = fadd <2 x double> %215, %223 %264 = fadd <2 x double> %216, %224 %265 = fadd <2 x double> %217, %257 %266 = fadd <2 x double> %218, %258 %267 = fsub <2 x double> %219, %228 %268 = fadd <2 x double> %220, %227 %269 = fsub <2 x double> %221, %261 %270 = fsub <2 x double> %222, %262 %271 = fsub <2 x double> %215, %223 %272 = fsub <2 x double> %216, %224 %273 = fsub <2 x double> %217, %257 %274 = fsub <2 x double> %218, %258 %275 = fadd <2 x double> %219, %228 %276 = fsub <2 x double> %220, %227 %277 = fadd <2 x double> %221, %261 %278 = fadd <2 x double> %222, %262 %279 = fadd <2 x double> %239, %263 %280 = fadd <2 x double> %240, %264 %interleaved.vec73 = shufflevector <2 x double> %279, <2 x double> %280, <4 x i32> store <4 x double> %interleaved.vec73, ptr %buf.0, align 8, !noalias !4736 %281 = fsub <2 x double> %239, %263 %282 = fsub <2 x double> %240, %264 %283 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec74 = shufflevector <2 x double> %281, <2 x double> %282, <4 x i32> store <4 x double> %interleaved.vec74, ptr %283, align 8, !noalias !4736 %284 = fmul <2 x double> %266, %285 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %265, <2 x double> , <2 x double> %284) %286 = fmul <2 x double> %265, %287 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %266, <2 x double> , <2 x double> %286) %288 = fadd <2 x double> %241, %285 %289 = fadd <2 x double> %242, %287 %290 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec75 = shufflevector <2 x double> %288, <2 x double> %289, <4 x i32> store <4 x double> %interleaved.vec75, ptr %290, align 8, !noalias !4736 %291 = fsub <2 x double> %241, %285 %292 = fsub <2 x double> %242, %287 %293 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %interleaved.vec76 = shufflevector <2 x double> %291, <2 x double> %292, <4 x i32> store <4 x double> %interleaved.vec76, ptr %293, align 8, !noalias !4736 %294 = fsub <2 x double> %267, %268 %295 = fadd <2 x double> %267, %268 %296 = fmul <2 x double> %294, %297 = fmul <2 x double> %295, %298 = fadd <2 x double> %243, %296 %299 = fadd <2 x double> %244, %297 %300 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec77 = shufflevector <2 x double> %298, <2 x double> %299, <4 x i32> store <4 x double> %interleaved.vec77, ptr %300, align 8, !noalias !4736 %301 = fsub <2 x double> %243, %296 %302 = fsub <2 x double> %244, %297 %303 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec78 = shufflevector <2 x double> %301, <2 x double> %302, <4 x i32> store <4 x double> %interleaved.vec78, ptr %303, align 8, !noalias !4736 %304 = fmul <2 x double> %270, %305 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %269, <2 x double> , <2 x double> %304) %306 = fmul <2 x double> %269, %307 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %270, <2 x double> , <2 x double> %306) %308 = fadd <2 x double> %245, %305 %309 = fadd <2 x double> %246, %307 %310 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %interleaved.vec79 = shufflevector <2 x double> %308, <2 x double> %309, <4 x i32> store <4 x double> %interleaved.vec79, ptr %310, align 8, !noalias !4736 %311 = fsub <2 x double> %245, %305 %312 = fsub <2 x double> %246, %307 %313 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %interleaved.vec80 = shufflevector <2 x double> %311, <2 x double> %312, <4 x i32> store <4 x double> %interleaved.vec80, ptr %313, align 8, !noalias !4736 %314 = fsub <2 x double> %247, %272 %315 = fadd <2 x double> %248, %271 %316 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec81 = shufflevector <2 x double> %314, <2 x double> %315, <4 x i32> store <4 x double> %interleaved.vec81, ptr %316, align 8, !noalias !4736 %317 = fadd <2 x double> %247, %272 %318 = fsub <2 x double> %248, %271 %319 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec82 = shufflevector <2 x double> %317, <2 x double> %318, <4 x i32> store <4 x double> %interleaved.vec82, ptr %319, align 8, !noalias !4736 %320 = fmul <2 x double> %274, %321 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %273, <2 x double> , <2 x double> %320) %322 = fmul <2 x double> %273, %323 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %274, <2 x double> , <2 x double> %322) %324 = fsub <2 x double> %249, %321 %325 = fsub <2 x double> %250, %323 %326 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %interleaved.vec83 = shufflevector <2 x double> %324, <2 x double> %325, <4 x i32> store <4 x double> %interleaved.vec83, ptr %326, align 8, !noalias !4736 %327 = fadd <2 x double> %249, %321 %328 = fadd <2 x double> %250, %323 %329 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %interleaved.vec84 = shufflevector <2 x double> %327, <2 x double> %328, <4 x i32> store <4 x double> %interleaved.vec84, ptr %329, align 8, !noalias !4736 %330 = fadd <2 x double> %275, %276 %331 = fsub <2 x double> %276, %275 %332 = fmul <2 x double> %330, %333 = fmul <2 x double> %331, %334 = fsub <2 x double> %251, %332 %335 = fsub <2 x double> %252, %333 %336 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec85 = shufflevector <2 x double> %334, <2 x double> %335, <4 x i32> store <4 x double> %interleaved.vec85, ptr %336, align 8, !noalias !4736 %337 = fadd <2 x double> %251, %332 %338 = fadd <2 x double> %252, %333 %339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec86 = shufflevector <2 x double> %337, <2 x double> %338, <4 x i32> store <4 x double> %interleaved.vec86, ptr %339, align 8, !noalias !4736 %340 = fmul <2 x double> %278, %341 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %277, <2 x double> , <2 x double> %340) %342 = fmul <2 x double> %277, %343 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %278, <2 x double> , <2 x double> %342) %344 = fsub <2 x double> %253, %341 %345 = fsub <2 x double> %254, %343 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %interleaved.vec87 = shufflevector <2 x double> %344, <2 x double> %345, <4 x i32> store <4 x double> %interleaved.vec87, ptr %346, align 8, !noalias !4736 %347 = fadd <2 x double> %253, %341 %348 = fadd <2 x double> %254, %343 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %interleaved.vec88 = shufflevector <2 x double> %347, <2 x double> %348, <4 x i32> store <4 x double> %interleaved.vec88, ptr %349, align 8, !noalias !4736 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4736 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hac16e62aa3dfe03eE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4739 store i64 16, ptr %n.i.i, align 8, !noalias !4739 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4739 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4739 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4739 store ptr null, ptr %_16.i.i, align 8, !noalias !4739 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4739 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4739 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4739 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4739 store ptr null, ptr %_24.i.i, align 8, !noalias !4739 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4739 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4739 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4739 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4739 store ptr null, ptr %_32.i.i, align 8, !noalias !4739 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4739 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4739 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4739 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h5b2f271ebca2fdd7E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4739 store ptr null, ptr %_40.i.i, align 8, !noalias !4739 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h5b2f271ebca2fdd7E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4739 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !4744 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !4744 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !4744 store <4 x double> %5, ptr %2, align 8, !noalias !4744 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4744 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4744 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i store <4 x double> %6, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4744 store <4 x double> %7, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !4744 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_51.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4744 %_52.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4744 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4744 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !4744 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_51.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4744 %_52.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4744 %10 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i %11 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i store <4 x double> %10, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4744 store <4 x double> %11, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !4744 tail call void @llvm.experimental.noalias.scope.decl(metadata !4748) tail call void @llvm.experimental.noalias.scope.decl(metadata !4751) %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !4751, !noalias !4753 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !4751, !noalias !4753 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !4751, !noalias !4753 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !4751, !noalias !4753 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %17, align 8, !alias.scope !4751, !noalias !4753 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %16, align 8, !alias.scope !4751, !noalias !4753 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %18, align 8, !alias.scope !4751, !noalias !4753 %19 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %20 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %21 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> %22 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %23 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %24 = fmul <4 x double> %21, %23 %25 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %22, <4 x double> %20, <4 x double> %24) #23 %26 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %29 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %30 = fmul <4 x double> %27, %29 %31 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %28, <4 x double> %26, <4 x double> %30) #23 %32 = shufflevector <4 x double> %6, <4 x double> %7, <4 x i32> %33 = shufflevector <4 x double> %32, <4 x double> poison, <4 x i32> %34 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %35 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %33, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %34, <4 x double> %32, <4 x double> %36) #23 %38 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %39 = shufflevector <4 x double> %38, <4 x double> poison, <4 x i32> %40 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %41 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %39, %41 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %40, <4 x double> %38, <4 x double> %42) #23 %44 = shufflevector <4 x double> %8, <4 x double> %9, <4 x i32> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %47 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %45, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %46, <4 x double> %44, <4 x double> %48) #23 %50 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %51 = shufflevector <4 x double> %50, <4 x double> poison, <4 x i32> %52 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %54 = fmul <4 x double> %51, %53 %55 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %52, <4 x double> %50, <4 x double> %54) #23 %56 = shufflevector <4 x double> %10, <4 x double> %11, <4 x i32> %57 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> %58 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %57, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %56, <4 x double> %60) #23 %62 = fadd <4 x double> %19, %43 %63 = fsub <4 x double> %19, %43 %64 = fadd <4 x double> %31, %55 %65 = fsub <4 x double> %31, %55 %66 = bitcast <4 x double> %65 to <4 x i64> %67 = fsub <4 x double> %37, %61 %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %66, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = xor <4 x i64> %68, %73 = bitcast <4 x i64> %72 to <4 x double> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fadd <4 x double> %25, %49 %76 = fsub <4 x double> %25, %49 %77 = fadd <4 x double> %37, %61 %78 = fadd <4 x double> %62, %64 %79 = fadd <4 x double> %75, %77 %80 = fadd <4 x double> %78, %79 store <4 x double> %80, ptr %buf.0, align 8, !alias.scope !4748, !noalias !4755 %81 = fsub <4 x double> %78, %79 store <4 x double> %81, ptr %3, align 8, !alias.scope !4748, !noalias !4755 %82 = fsub <4 x double> %63, %71 %83 = fsub <4 x double> %76, %74 %84 = bitcast <4 x double> %83 to <4 x i64> %85 = xor <4 x i64> %84, %86 = bitcast <4 x i64> %85 to <4 x double> %87 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> %88 = fadd <4 x double> %83, %87 %89 = fmul <4 x double> %88, %90 = fadd <4 x double> %82, %89 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !4748, !noalias !4755 %91 = fsub <4 x double> %82, %89 store <4 x double> %91, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !4748, !noalias !4755 %92 = fsub <4 x double> %62, %64 %93 = fsub <4 x double> %75, %77 %94 = bitcast <4 x double> %93 to <4 x i64> %95 = fadd <4 x double> %63, %71 %96 = fadd <4 x double> %76, %74 %97 = xor <4 x i64> %94, %98 = bitcast <4 x i64> %97 to <4 x double> %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fsub <4 x double> %92, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !4748, !noalias !4755 %101 = fadd <4 x double> %92, %99 store <4 x double> %101, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !4748, !noalias !4755 %102 = bitcast <4 x double> %96 to <4 x i64> %103 = xor <4 x i64> %102, %104 = bitcast <4 x i64> %103 to <4 x double> %105 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> %106 = fadd <4 x double> %96, %105 %107 = fmul <4 x double> %106, %108 = fsub <4 x double> %95, %107 store <4 x double> %108, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !4748, !noalias !4755 %109 = fadd <4 x double> %95, %107 store <4 x double> %109, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !4748, !noalias !4755 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4739 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17haed0fbf0cfcc17e3E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb949f96d3bd8822fE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17haf9d9fce6e52139fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h7574dcdf5e4202faE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb16f4b3a8b8c4729E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4756 store i64 512, ptr %n.i.i, align 8, !noalias !4756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4756 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4756 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4756 store ptr null, ptr %_16.i.i, align 8, !noalias !4756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4756 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4756 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4756 store ptr null, ptr %_24.i.i, align 8, !noalias !4756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4756 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4756 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4756 store ptr null, ptr %_32.i.i, align 8, !noalias !4756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4756 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4756 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4756 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd1e956cb8c0cd385E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4756 store ptr null, ptr %_40.i.i, align 8, !noalias !4756 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd1e956cb8c0cd385E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4756 tail call void @llvm.experimental.noalias.scope.decl(metadata !4761) tail call void @llvm.experimental.noalias.scope.decl(metadata !4764) tail call void @llvm.experimental.noalias.scope.decl(metadata !4766) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd1e956cb8c0cd385E.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd1e956cb8c0cd385E.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4766, !noalias !4768 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4766, !noalias !4768 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !4766, !noalias !4768 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4761, !noalias !4769 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4761, !noalias !4769 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4761, !noalias !4769 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4761, !noalias !4769 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4764, !noalias !4770 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !4764, !noalias !4770 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !4764, !noalias !4770 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !4764, !noalias !4770 %exitcond.not.i.i = icmp eq i64 %8, 64 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4771) tail call void @llvm.experimental.noalias.scope.decl(metadata !4774) tail call void @llvm.experimental.noalias.scope.decl(metadata !4776) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !4776, !noalias !4778, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !4776, !noalias !4778, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !4776, !noalias !4778, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !4776, !noalias !4778, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !4776, !noalias !4778, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !4776, !noalias !4778, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4771, !noalias !4779 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4771, !noalias !4779 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4771, !noalias !4779 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4771, !noalias !4779 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4774, !noalias !4780 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !4774, !noalias !4780 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !4774, !noalias !4780 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !4774, !noalias !4780 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4771, !noalias !4779 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4771, !noalias !4779 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4771, !noalias !4779 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4771, !noalias !4779 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4774, !noalias !4780 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4774, !noalias !4780 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4774, !noalias !4780 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !4774, !noalias !4780 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 32 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4781) tail call void @llvm.experimental.noalias.scope.decl(metadata !4784) tail call void @llvm.experimental.noalias.scope.decl(metadata !4786) br label %bb22.us.i40.i bb22.us.i40.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter.sroa.60.0710.us.i41.i = phi i64 [ %147, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i = shl i64 %iter.sroa.60.0710.us.i41.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.us.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %start1.i.i.i.i.i.i.us.i47.i = shl i64 %iter.sroa.60.0710.us.i41.i, 5 %data.i.i.i.i.i.i.us.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i47.i %start1.i.i.i.i.us.i49.i = shl i64 %iter.sroa.60.0710.us.i41.i, 4 %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !4786, !noalias !4788, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !4786, !noalias !4788, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !4786, !noalias !4788, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !4786, !noalias !4788, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !4786, !noalias !4788, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !4786, !noalias !4788, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 24 %119 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %124 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %bb22.us.i40.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %bb22.us.i40.i ], [ %125, %bb38.us.i59.i ] %125 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !4781, !noalias !4789 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !4781, !noalias !4789 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !4781, !noalias !4789 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !4781, !noalias !4789 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %128 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !4784, !noalias !4790 %135 = fsub <4 x double> %127, %133 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %120, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %135, <4 x double> %137) #23 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !4784, !noalias !4790 %139 = fsub <4 x double> %126, %128 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %122, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %139, <4 x double> %141) #23 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !4784, !noalias !4790 %143 = fadd <4 x double> %127, %133 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %124, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %123, <4 x double> %143, <4 x double> %145) #23 store <4 x double> %146, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !4784, !noalias !4790 %exitcond.not.i73.i = icmp eq i64 %125, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %147 = add nuw nsw i64 %iter.sroa.60.0710.us.i41.i, 1 %exitcond157.not.i = icmp eq i64 %147, 8 br i1 %exitcond157.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i, label %bb22.us.i40.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4791) tail call void @llvm.experimental.noalias.scope.decl(metadata !4794) tail call void @llvm.experimental.noalias.scope.decl(metadata !4796) %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i106.i = load double, ptr %148, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i107.i = load double, ptr %149, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i108.i = load double, ptr %150, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i109.i = load double, ptr %151, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %152 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i110.i = load double, ptr %152, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %153 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i111.i = load double, ptr %153, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.i = insertelement <2 x double> poison, double %w1.0.us.i106.i, i64 0 %154 = insertelement <4 x double> poison, double %w1.1.us.i107.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.i = insertelement <2 x double> poison, double %w2.0.us.i108.i, i64 0 %155 = insertelement <4 x double> poison, double %w2.1.us.i109.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.i = insertelement <2 x double> poison, double %w3.0.us.i110.i, i64 0 %156 = insertelement <4 x double> poison, double %w3.1.us.i111.i, i64 0 %157 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %158 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %159 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.i bb38.us.i115.i: ; preds = %bb38.us.i115.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i %iter5.sroa.50.0697.us.i116.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i ], [ %165, %bb38.us.i115.i ] %165 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.us.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %157, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.us.i123.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.us.i124.i = getelementptr inbounds %"fft_simd::c64x2", ptr %158, i64 %iter5.sroa.50.0697.us.i116.i %a.sroa.0.0.copyload.us.i125.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !4791, !noalias !4799 %b.sroa.0.0.copyload.us.i126.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, align 8, !alias.scope !4791, !noalias !4799 %c.sroa.0.0.copyload.us.i127.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i, align 8, !alias.scope !4791, !noalias !4799 %d.sroa.0.0.copyload.us.i128.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i, align 8, !alias.scope !4791, !noalias !4799 %166 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %167 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %168 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %169 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %166, %168 store <4 x double> %174, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i, align 8, !alias.scope !4794, !noalias !4800 %175 = fsub <4 x double> %167, %173 %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %160, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %175, <4 x double> %177) #23 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.us.i122.i, align 8, !alias.scope !4794, !noalias !4800 %179 = fsub <4 x double> %166, %168 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %162, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.i.i.us.i123.i, align 8, !alias.scope !4794, !noalias !4800 %183 = fadd <4 x double> %167, %173 %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = fmul <4 x double> %164, %184 %186 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %183, <4 x double> %185) #23 store <4 x double> %186, ptr %_3.i.i.i.i.us.i124.i, align 8, !alias.scope !4794, !noalias !4800 %exitcond.not.i129.i = icmp eq i64 %165, 32 br i1 %exitcond.not.i129.i, label %bb36.bb20.loopexit_crit_edge.us.i130.i, label %bb38.us.i115.i bb36.bb20.loopexit_crit_edge.us.i130.i: ; preds = %bb38.us.i115.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %data.i.i.i.i.i.i.i.i.us.i102.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i106.1.i = load double, ptr %187, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i107.1.i = load double, ptr %188, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i108.1.i = load double, ptr %189, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i109.1.i = load double, ptr %190, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i110.1.i = load double, ptr %191, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i111.1.i = load double, ptr %192, align 8, !alias.scope !4796, !noalias !4798, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.1.i = insertelement <2 x double> poison, double %w1.0.us.i106.1.i, i64 0 %193 = insertelement <4 x double> poison, double %w1.1.us.i107.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.1.i = insertelement <2 x double> poison, double %w2.0.us.i108.1.i, i64 0 %194 = insertelement <4 x double> poison, double %w2.1.us.i109.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.1.i = insertelement <2 x double> poison, double %w3.0.us.i110.1.i, i64 0 %195 = insertelement <4 x double> poison, double %w3.1.us.i111.1.i, i64 0 %196 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %197 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %198 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.1.i, <2 x double> poison, <4 x i32> zeroinitializer %199 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> zeroinitializer %200 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.1.i, <2 x double> poison, <4 x i32> zeroinitializer %201 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> zeroinitializer %202 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.1.i, <2 x double> poison, <4 x i32> zeroinitializer %203 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.1.i bb38.us.i115.1.i: ; preds = %bb38.us.i115.1.i, %bb36.bb20.loopexit_crit_edge.us.i130.i %iter5.sroa.50.0697.us.i116.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.i ], [ %204, %bb38.us.i115.1.i ] %204 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.us.i122.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %196, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.us.i123.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.us.i124.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %197, i64 %iter5.sroa.50.0697.us.i116.1.i %a.sroa.0.0.copyload.us.i125.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !4791, !noalias !4799 %b.sroa.0.0.copyload.us.i126.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !4791, !noalias !4799 %c.sroa.0.0.copyload.us.i127.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i, align 8, !alias.scope !4791, !noalias !4799 %d.sroa.0.0.copyload.us.i128.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i, align 8, !alias.scope !4791, !noalias !4799 %205 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %206 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %207 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %208 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %209 = bitcast <4 x double> %208 to <4 x i64> %210 = xor <4 x i64> %209, %211 = bitcast <4 x i64> %210 to <4 x double> %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fadd <4 x double> %205, %207 store <4 x double> %213, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i, align 8, !alias.scope !4794, !noalias !4800 %214 = fsub <4 x double> %206, %212 %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %199, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %198, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.us.i122.1.i, align 8, !alias.scope !4794, !noalias !4800 %218 = fsub <4 x double> %205, %207 %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %201, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %218, <4 x double> %220) #23 store <4 x double> %221, ptr %_3.i.i.i.i.i.i.us.i123.1.i, align 8, !alias.scope !4794, !noalias !4800 %222 = fadd <4 x double> %206, %212 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %203, %223 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %222, <4 x double> %224) #23 store <4 x double> %225, ptr %_3.i.i.i.i.us.i124.1.i, align 8, !alias.scope !4794, !noalias !4800 %exitcond.not.i129.1.i = icmp eq i64 %204, 32 br i1 %exitcond.not.i129.1.i, label %bb9.i.i.i.i.i.i, label %bb38.us.i115.1.i bb9.i.i.i.i.i.i: ; preds = %bb38.us.i115.1.i, %bb9.i.i.i.i.i.i %iter.i.i.i.i.i.sroa.8.0156.i = phi i64 [ %235, %bb9.i.i.i.i.i.i ], [ 0, %bb38.us.i115.1.i ] %226 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0156.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0156.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0156.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4756 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !4756 %227 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %228 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %227, ptr %_3.i.i.i.i.i, align 8, !noalias !4756 store <4 x double> %228, ptr %_3.i2.i.i.i.i, align 8, !noalias !4756 %229 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0156.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %226 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %226 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4756 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4756 %230 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %231 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %230, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4756 store <4 x double> %231, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4756 %232 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0156.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %229 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %229 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4756 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4756 %233 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %234 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %233, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4756 store <4 x double> %234, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4756 %235 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0156.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %232 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %232 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4756 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4756 %236 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %237 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %236, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4756 store <4 x double> %237, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4756 %exitcond158.not.i.3 = icmp eq i64 %235, 128 br i1 %exitcond158.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17h1c3d93bc955b8d34E.exit, label %bb9.i.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h1c3d93bc955b8d34E.exit: ; preds = %bb9.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4756 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb1faef4c24f45a03E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4801 store i64 256, ptr %n.i, align 8, !noalias !4801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4801 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4801 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4801 store ptr null, ptr %_16.i, align 8, !noalias !4801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4801 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4801 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4801 store ptr null, ptr %_24.i, align 8, !noalias !4801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4801 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4801 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4801 store ptr null, ptr %_32.i, align 8, !noalias !4801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4801 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4801 store i64 %w.1, ptr %_34.i, align 8, !noalias !4801 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4801 store ptr null, ptr %_40.i, align 8, !noalias !4801 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4801 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !4801 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !4801 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !4801 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !4801 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !4801 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !4801 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !4801 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !4801 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !4801 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !4801 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !4801 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !4801 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !4801 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !4801 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !4801 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !4801 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !4801 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fadd <4 x double> %147, %152 %180 = fsub <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fsub <4 x double> %147, %152 %184 = fadd <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fadd <4 x double> %155, %160 %188 = fsub <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fsub <4 x double> %155, %160 %192 = fadd <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fadd <4 x double> %163, %168 %196 = fsub <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fsub <4 x double> %163, %168 %200 = fadd <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fadd <4 x double> %171, %176 %204 = fsub <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fsub <4 x double> %171, %176 %208 = fadd <4 x double> %172, %175 %209 = fadd <4 x double> %188, %187 %210 = fsub <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fsub <4 x double> %191, %192 %214 = fadd <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fadd <4 x double> %181, %190 %222 = fsub <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fsub <4 x double> %181, %190 %230 = fadd <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fadd <4 x double> %204, %203 %234 = fsub <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fsub <4 x double> %207, %208 %238 = fadd <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fadd <4 x double> %197, %206 %246 = fsub <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fsub <4 x double> %197, %206 %254 = fadd <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fadd <4 x double> %246, %245 %262 = fsub <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fsub <4 x double> %253, %254 %274 = fadd <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !4801 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !4801 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !4801 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !4801 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !4801 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !4801 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !4801 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !4801 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !4801 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !4801 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !4801 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !4801 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !4801 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !4801 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !4801 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !4801 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !4801 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !4801 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !4801 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !4801 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !4801 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !4801 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !4801 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !4801 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !4801 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !4801 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !4801 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !4801 %341 = fadd <4 x double> %225, %250 %342 = fsub <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !4801 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !4801 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !4801 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !4801 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !4801 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !4801 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !4801 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !4801 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !4801 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !4801 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !4801 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !4801 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !4801 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !4801 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !4801 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !4801 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !4801 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !4801 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !4801 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !4801 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !4801 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !4801 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !4801 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !4801 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !4801 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !4801 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !4801 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !4801 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !4801 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !4801 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !4801 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !4801 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !4801 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !4801 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !4801 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !4801 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !4801 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !4801 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !4801 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !4801 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !4801 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !4801 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !4801 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !4801 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !4801 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !4801 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !4801 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !4801 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !4801 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !4801 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !4801 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !4801 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !4801 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !4801 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !4801 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !4801 %469 = fsub <4 x double> %225, %250 %470 = fadd <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !4801 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !4801 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !4801 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !4801 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !4801 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !4801 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !4801 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !4801 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !4801 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !4801 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !4801 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !4801 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !4801 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !4801 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !4801 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !4801 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !4801 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !4801 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !4801 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !4801 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !4801 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !4801 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !4801 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !4801 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !4801 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !4801 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !4801 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !4801 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 16 br i1 %533, label %bb62.i.i.i.preheader, label %vector.body, !llvm.loop !4804 bb62.i.i.i.preheader: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %542 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %543 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb62.i.i.i.preheader %index81 = phi i64 [ 0, %bb62.i.i.i.preheader ], [ %index.next145, %vector.body80 ] %549 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index81 %550 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %index81 %551 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %index81 %552 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %index81 %553 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %index81 %554 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %index81 %555 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %index81 %556 = getelementptr inbounds %"num_complex::Complex", ptr %541, i64 %index81 %557 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %index81 %558 = getelementptr inbounds %"num_complex::Complex", ptr %544, i64 %index81 %559 = getelementptr inbounds %"num_complex::Complex", ptr %543, i64 %index81 %560 = getelementptr inbounds %"num_complex::Complex", ptr %545, i64 %index81 %561 = getelementptr inbounds %"num_complex::Complex", ptr %542, i64 %index81 %562 = getelementptr inbounds %"num_complex::Complex", ptr %547, i64 %index81 %563 = getelementptr inbounds %"num_complex::Complex", ptr %546, i64 %index81 %564 = getelementptr inbounds %"num_complex::Complex", ptr %548, i64 %index81 %wide.vec82 = load <8 x double>, ptr %549, align 8, !noalias !4801 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %550, align 8, !noalias !4801 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %551, align 8, !noalias !4801 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %552, align 8, !noalias !4801 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %553, align 8, !noalias !4801 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %554, align 8, !noalias !4801 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %555, align 8, !noalias !4801 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %556, align 8, !noalias !4801 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %wide.vec106 = load <8 x double>, ptr %557, align 8, !noalias !4801 %strided.vec107 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %strided.vec108 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %wide.vec109 = load <8 x double>, ptr %558, align 8, !noalias !4801 %strided.vec110 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %strided.vec111 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %wide.vec112 = load <8 x double>, ptr %559, align 8, !noalias !4801 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %wide.vec115 = load <8 x double>, ptr %560, align 8, !noalias !4801 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %561, align 8, !noalias !4801 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %wide.vec121 = load <8 x double>, ptr %562, align 8, !noalias !4801 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %wide.vec124 = load <8 x double>, ptr %563, align 8, !noalias !4801 %strided.vec125 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %strided.vec126 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %wide.vec127 = load <8 x double>, ptr %564, align 8, !noalias !4801 %strided.vec128 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %strided.vec129 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %565 = fadd <4 x double> %strided.vec83, %strided.vec107 %566 = fadd <4 x double> %strided.vec84, %strided.vec108 %567 = fsub <4 x double> %strided.vec83, %strided.vec107 %568 = fsub <4 x double> %strided.vec84, %strided.vec108 %569 = fadd <4 x double> %strided.vec95, %strided.vec119 %570 = fadd <4 x double> %strided.vec96, %strided.vec120 %571 = fsub <4 x double> %strided.vec95, %strided.vec119 %572 = fsub <4 x double> %strided.vec96, %strided.vec120 %573 = fadd <4 x double> %strided.vec89, %strided.vec113 %574 = fadd <4 x double> %strided.vec90, %strided.vec114 %575 = fsub <4 x double> %strided.vec89, %strided.vec113 %576 = fsub <4 x double> %strided.vec90, %strided.vec114 %577 = fadd <4 x double> %strided.vec101, %strided.vec125 %578 = fadd <4 x double> %strided.vec102, %strided.vec126 %579 = fsub <4 x double> %strided.vec101, %strided.vec125 %580 = fsub <4 x double> %strided.vec102, %strided.vec126 %581 = fadd <4 x double> %strided.vec86, %strided.vec110 %582 = fadd <4 x double> %strided.vec87, %strided.vec111 %583 = fsub <4 x double> %strided.vec86, %strided.vec110 %584 = fsub <4 x double> %strided.vec87, %strided.vec111 %585 = fadd <4 x double> %strided.vec98, %strided.vec122 %586 = fadd <4 x double> %strided.vec99, %strided.vec123 %587 = fsub <4 x double> %strided.vec98, %strided.vec122 %588 = fsub <4 x double> %strided.vec99, %strided.vec123 %589 = fadd <4 x double> %strided.vec92, %strided.vec116 %590 = fadd <4 x double> %strided.vec93, %strided.vec117 %591 = fsub <4 x double> %strided.vec92, %strided.vec116 %592 = fsub <4 x double> %strided.vec93, %strided.vec117 %593 = fadd <4 x double> %strided.vec104, %strided.vec128 %594 = fadd <4 x double> %strided.vec105, %strided.vec129 %595 = fsub <4 x double> %strided.vec104, %strided.vec128 %596 = fsub <4 x double> %strided.vec105, %strided.vec129 %597 = fadd <4 x double> %565, %569 %598 = fadd <4 x double> %566, %570 %599 = fadd <4 x double> %567, %572 %600 = fsub <4 x double> %568, %571 %601 = fsub <4 x double> %565, %569 %602 = fsub <4 x double> %566, %570 %603 = fsub <4 x double> %567, %572 %604 = fadd <4 x double> %568, %571 %605 = fadd <4 x double> %573, %577 %606 = fadd <4 x double> %574, %578 %607 = fadd <4 x double> %575, %580 %608 = fsub <4 x double> %576, %579 %609 = fsub <4 x double> %573, %577 %610 = fsub <4 x double> %574, %578 %611 = fsub <4 x double> %575, %580 %612 = fadd <4 x double> %576, %579 %613 = fadd <4 x double> %581, %585 %614 = fadd <4 x double> %582, %586 %615 = fadd <4 x double> %583, %588 %616 = fsub <4 x double> %584, %587 %617 = fsub <4 x double> %581, %585 %618 = fsub <4 x double> %582, %586 %619 = fsub <4 x double> %583, %588 %620 = fadd <4 x double> %584, %587 %621 = fadd <4 x double> %589, %593 %622 = fadd <4 x double> %590, %594 %623 = fadd <4 x double> %591, %596 %624 = fsub <4 x double> %592, %595 %625 = fsub <4 x double> %589, %593 %626 = fsub <4 x double> %590, %594 %627 = fsub <4 x double> %591, %596 %628 = fadd <4 x double> %592, %595 %629 = fadd <4 x double> %608, %607 %630 = fsub <4 x double> %608, %607 %631 = fmul <4 x double> %629, %632 = fmul <4 x double> %630, %633 = fsub <4 x double> %611, %612 %634 = fadd <4 x double> %612, %611 %635 = fmul <4 x double> %633, %636 = fmul <4 x double> %634, %637 = fadd <4 x double> %597, %605 %638 = fadd <4 x double> %598, %606 %639 = fadd <4 x double> %599, %631 %640 = fadd <4 x double> %600, %632 %641 = fadd <4 x double> %601, %610 %642 = fsub <4 x double> %602, %609 %643 = fsub <4 x double> %603, %635 %644 = fsub <4 x double> %604, %636 %645 = fsub <4 x double> %597, %605 %646 = fsub <4 x double> %598, %606 %647 = fsub <4 x double> %599, %631 %648 = fsub <4 x double> %600, %632 %649 = fsub <4 x double> %601, %610 %650 = fadd <4 x double> %602, %609 %651 = fadd <4 x double> %603, %635 %652 = fadd <4 x double> %604, %636 %653 = fadd <4 x double> %624, %623 %654 = fsub <4 x double> %624, %623 %655 = fmul <4 x double> %653, %656 = fmul <4 x double> %654, %657 = fsub <4 x double> %627, %628 %658 = fadd <4 x double> %628, %627 %659 = fmul <4 x double> %657, %660 = fmul <4 x double> %658, %661 = fadd <4 x double> %613, %621 %662 = fadd <4 x double> %614, %622 %663 = fadd <4 x double> %615, %655 %664 = fadd <4 x double> %616, %656 %665 = fadd <4 x double> %617, %626 %666 = fsub <4 x double> %618, %625 %667 = fsub <4 x double> %619, %659 %668 = fsub <4 x double> %620, %660 %669 = fsub <4 x double> %613, %621 %670 = fsub <4 x double> %614, %622 %671 = fsub <4 x double> %615, %655 %672 = fsub <4 x double> %616, %656 %673 = fsub <4 x double> %617, %626 %674 = fadd <4 x double> %618, %625 %675 = fadd <4 x double> %619, %659 %676 = fadd <4 x double> %620, %660 %677 = fmul <4 x double> %664, %678 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %663, <4 x double> , <4 x double> %677) %679 = fmul <4 x double> %663, %680 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %664, <4 x double> , <4 x double> %679) %681 = fadd <4 x double> %666, %665 %682 = fsub <4 x double> %666, %665 %683 = fmul <4 x double> %681, %684 = fmul <4 x double> %682, %685 = fmul <4 x double> %668, %686 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %667, <4 x double> , <4 x double> %685) %687 = fmul <4 x double> %667, %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %668, <4 x double> , <4 x double> %687) %689 = fmul <4 x double> %672, %690 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %671, <4 x double> , <4 x double> %689) %691 = fmul <4 x double> %671, %692 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %672, <4 x double> , <4 x double> %691) %693 = fsub <4 x double> %673, %674 %694 = fadd <4 x double> %674, %673 %695 = fmul <4 x double> %693, %696 = fmul <4 x double> %694, %697 = fmul <4 x double> %676, %698 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %675, <4 x double> , <4 x double> %697) %699 = fmul <4 x double> %675, %700 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %676, <4 x double> , <4 x double> %699) %701 = fadd <4 x double> %637, %661 %702 = fadd <4 x double> %638, %662 %703 = fadd <4 x double> %639, %678 %704 = fadd <4 x double> %640, %680 %705 = fadd <4 x double> %641, %683 %706 = fadd <4 x double> %642, %684 %707 = fadd <4 x double> %643, %686 %708 = fadd <4 x double> %644, %688 %709 = fadd <4 x double> %645, %670 %710 = fsub <4 x double> %646, %669 %711 = fsub <4 x double> %647, %690 %712 = fsub <4 x double> %648, %692 %713 = fsub <4 x double> %649, %695 %714 = fsub <4 x double> %650, %696 %715 = fsub <4 x double> %651, %698 %716 = fsub <4 x double> %652, %700 %717 = fsub <4 x double> %637, %661 %718 = fsub <4 x double> %638, %662 %719 = fsub <4 x double> %639, %678 %720 = fsub <4 x double> %640, %680 %721 = fsub <4 x double> %641, %683 %722 = fsub <4 x double> %642, %684 %723 = fsub <4 x double> %643, %686 %724 = fsub <4 x double> %644, %688 %725 = fsub <4 x double> %645, %670 %726 = fadd <4 x double> %646, %669 %727 = fadd <4 x double> %647, %690 %728 = fadd <4 x double> %648, %692 %729 = fadd <4 x double> %649, %695 %730 = fadd <4 x double> %650, %696 %731 = fadd <4 x double> %651, %698 %732 = fadd <4 x double> %652, %700 %733 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index81 %interleaved.vec = shufflevector <4 x double> %701, <4 x double> %702, <8 x i32> store <8 x double> %interleaved.vec, ptr %733, align 8, !noalias !4801 %734 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index81 %interleaved.vec130 = shufflevector <4 x double> %703, <4 x double> %704, <8 x i32> store <8 x double> %interleaved.vec130, ptr %734, align 8, !noalias !4801 %735 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index81 %interleaved.vec131 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec131, ptr %735, align 8, !noalias !4801 %736 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index81 %interleaved.vec132 = shufflevector <4 x double> %707, <4 x double> %708, <8 x i32> store <8 x double> %interleaved.vec132, ptr %736, align 8, !noalias !4801 %737 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index81 %interleaved.vec133 = shufflevector <4 x double> %709, <4 x double> %710, <8 x i32> store <8 x double> %interleaved.vec133, ptr %737, align 8, !noalias !4801 %738 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index81 %interleaved.vec134 = shufflevector <4 x double> %711, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec134, ptr %738, align 8, !noalias !4801 %739 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index81 %interleaved.vec135 = shufflevector <4 x double> %713, <4 x double> %714, <8 x i32> store <8 x double> %interleaved.vec135, ptr %739, align 8, !noalias !4801 %740 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index81 %interleaved.vec136 = shufflevector <4 x double> %715, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec136, ptr %740, align 8, !noalias !4801 %741 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index81 %interleaved.vec137 = shufflevector <4 x double> %717, <4 x double> %718, <8 x i32> store <8 x double> %interleaved.vec137, ptr %741, align 8, !noalias !4801 %742 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index81 %interleaved.vec138 = shufflevector <4 x double> %719, <4 x double> %720, <8 x i32> store <8 x double> %interleaved.vec138, ptr %742, align 8, !noalias !4801 %743 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index81 %interleaved.vec139 = shufflevector <4 x double> %721, <4 x double> %722, <8 x i32> store <8 x double> %interleaved.vec139, ptr %743, align 8, !noalias !4801 %744 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index81 %interleaved.vec140 = shufflevector <4 x double> %723, <4 x double> %724, <8 x i32> store <8 x double> %interleaved.vec140, ptr %744, align 8, !noalias !4801 %745 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index81 %interleaved.vec141 = shufflevector <4 x double> %725, <4 x double> %726, <8 x i32> store <8 x double> %interleaved.vec141, ptr %745, align 8, !noalias !4801 %746 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index81 %interleaved.vec142 = shufflevector <4 x double> %727, <4 x double> %728, <8 x i32> store <8 x double> %interleaved.vec142, ptr %746, align 8, !noalias !4801 %747 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index81 %interleaved.vec143 = shufflevector <4 x double> %729, <4 x double> %730, <8 x i32> store <8 x double> %interleaved.vec143, ptr %747, align 8, !noalias !4801 %748 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index81 %interleaved.vec144 = shufflevector <4 x double> %731, <4 x double> %732, <8 x i32> store <8 x double> %interleaved.vec144, ptr %748, align 8, !noalias !4801 %index.next145 = add nuw i64 %index81, 4 %749 = icmp eq i64 %index.next145, 16 br i1 %749, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha4b462246138bd7fE.exit", label %vector.body80, !llvm.loop !4805 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha4b462246138bd7fE.exit": ; preds = %vector.body80 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4801 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb370d48835eccebfE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h9f3a67eb7fa480cbE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb3f02642362e9e1aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4806 store i64 512, ptr %n.i.i, align 8, !noalias !4806 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4806 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4806 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4806 store ptr null, ptr %_16.i.i, align 8, !noalias !4806 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4806 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4806 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4806 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4806 store ptr null, ptr %_24.i.i, align 8, !noalias !4806 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4806 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4806 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4806 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4806 store ptr null, ptr %_32.i.i, align 8, !noalias !4806 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4806 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4806 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4806 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce795478eb4aa4f4E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4806 store ptr null, ptr %_40.i.i, align 8, !noalias !4806 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce795478eb4aa4f4E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4806 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 br label %bb17.i.i.i.i bb17.i.i.i.i: ; preds = %bb17.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce795478eb4aa4f4E.exit.i" %iter.i.i.i.sroa.50.0447.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce795478eb4aa4f4E.exit.i" ], [ %9, %bb17.i.i.i.i ] %9 = add nuw nsw i64 %iter.i.i.i.sroa.50.0447.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.50.0447.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.50.0447.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.50.0447.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.i.i.i.sroa.50.0447.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.50.0447.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.i.i.i.sroa.50.0447.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.i.i.i.sroa.50.0447.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.i.i.i.sroa.50.0447.i %_63.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 %_64.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 %_65.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 %_66.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 %_67.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 %_68.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 %_69.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4811 %_70.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4811 %10 = fadd <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %12 = fadd <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %13 = fsub <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %14 = bitcast <4 x double> %13 to <4 x i64> %15 = xor <4 x i64> %14, %16 = bitcast <4 x i64> %15 to <4 x double> %17 = shufflevector <4 x double> %16, <4 x double> poison, <4 x i32> %18 = fadd <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %19 = fsub <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %20 = fadd <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %21 = fsub <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %22 = bitcast <4 x double> %21 to <4 x i64> %23 = xor <4 x i64> %22, %24 = bitcast <4 x i64> %23 to <4 x double> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = fadd <4 x double> %10, %12 %27 = fsub <4 x double> %11, %17 %28 = fsub <4 x double> %10, %12 %29 = fadd <4 x double> %11, %17 %30 = fadd <4 x double> %18, %20 %31 = fsub <4 x double> %19, %25 %32 = bitcast <4 x double> %31 to <4 x i64> %33 = xor <4 x i64> %32, %34 = bitcast <4 x i64> %33 to <4 x double> %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fadd <4 x double> %31, %35 %37 = fmul <4 x double> %36, %38 = fsub <4 x double> %18, %20 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %19, %25 %44 = bitcast <4 x double> %43 to <4 x i64> %45 = xor <4 x i64> %44, %46 = bitcast <4 x i64> %45 to <4 x double> %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fadd <4 x double> %43, %47 %49 = fmul <4 x double> %48, %50 = fadd <4 x double> %26, %30 %51 = fadd <4 x double> %27, %37 %52 = fsub <4 x double> %28, %42 %53 = fsub <4 x double> %29, %49 %54 = fsub <4 x double> %26, %30 %55 = fsub <4 x double> %27, %37 %56 = fadd <4 x double> %28, %42 %57 = fadd <4 x double> %29, %49 store <4 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %51, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %52, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %53, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %54, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %56, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !4811 store <4 x double> %57, ptr %_3.i.i.i.i.i, align 8, !noalias !4811 %exitcond.not.i = icmp eq i64 %9, 32 br i1 %exitcond.not.i, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i", label %bb17.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i": ; preds = %bb17.i.i.i.i %58 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %59 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 tail call void @llvm.experimental.noalias.scope.decl(metadata !4815) tail call void @llvm.experimental.noalias.scope.decl(metadata !4818) tail call void @llvm.experimental.noalias.scope.decl(metadata !4820) %60 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %61 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %62 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %63 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %64 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %65 = add nuw nsw i64 %iter.sroa.104.02127.i.i, 1 %exitcond448.not.i = icmp eq i64 %65, 8 br i1 %exitcond448.not.i, label %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" %iter.sroa.104.02127.i.i = phi i64 [ %65, %bb28.loopexit.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %64, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %59, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %63, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %58, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %62, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %60, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %61, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %66 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02127.i.i, 3 %73 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %73, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %74 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %75 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %75, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %76 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %76, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %77 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %78 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %78, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %79 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %79, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %80 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %81 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %81, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %82 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %82, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %83 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %84 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %84, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %85 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %85, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %86 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %87 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %87, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %88 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %88, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %89 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %90 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %90, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %91 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %91, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %92 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %93 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %93, align 8, !alias.scope !4820, !noalias !4822, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %94 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> zeroinitializer %96 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %97 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %99 = shufflevector <4 x double> %86, <4 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> zeroinitializer %102 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %103 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02066.i.i = phi i64 [ 0, %bb30.i.i ], [ %108, %bb58.i.i ] %108 = add nuw nsw i64 %iter8.sroa.106.02066.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02066.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %66, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter8.sroa.106.02066.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter8.sroa.106.02066.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %_131.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %109 = shufflevector <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %110 = fmul <4 x double> %95, %109 %111 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_131.sroa.0.0.copyload.i.i, <4 x double> %110) #23 %_133.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %112 = shufflevector <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %113 = fmul <4 x double> %97, %112 %114 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %_133.sroa.0.0.copyload.i.i, <4 x double> %113) #23 %_135.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %115 = shufflevector <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %116 = fmul <4 x double> %99, %115 %117 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %_135.sroa.0.0.copyload.i.i, <4 x double> %116) #23 %_137.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %118 = shufflevector <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %101, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_137.sroa.0.0.copyload.i.i, <4 x double> %119) #23 %_139.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %121 = shufflevector <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %103, %121 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %_139.sroa.0.0.copyload.i.i, <4 x double> %122) #23 %_141.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %124 = shufflevector <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %125 = fmul <4 x double> %105, %124 %126 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_141.sroa.0.0.copyload.i.i, <4 x double> %125) #23 %_143.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !4818, !noalias !4823 %127 = shufflevector <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %128 = fmul <4 x double> %107, %127 %129 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_143.sroa.0.0.copyload.i.i, <4 x double> %128) #23 %130 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %120 %131 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %120 %132 = fadd <4 x double> %114, %126 %133 = fsub <4 x double> %114, %126 %134 = bitcast <4 x double> %133 to <4 x i64> %135 = fsub <4 x double> %117, %129 %136 = bitcast <4 x double> %135 to <4 x i64> %137 = xor <4 x i64> %134, %138 = bitcast <4 x i64> %137 to <4 x double> %139 = shufflevector <4 x double> %138, <4 x double> poison, <4 x i32> %140 = xor <4 x i64> %136, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fadd <4 x double> %111, %123 %144 = fsub <4 x double> %111, %123 %145 = fadd <4 x double> %117, %129 %146 = fadd <4 x double> %130, %132 %147 = fadd <4 x double> %143, %145 %148 = fadd <4 x double> %146, %147 store <4 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %149 = fsub <4 x double> %146, %147 store <4 x double> %149, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %150 = fsub <4 x double> %131, %139 %151 = fsub <4 x double> %144, %142 %152 = bitcast <4 x double> %151 to <4 x i64> %153 = xor <4 x i64> %152, %154 = bitcast <4 x i64> %153 to <4 x double> %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fadd <4 x double> %151, %155 %157 = fmul <4 x double> %156, %158 = fadd <4 x double> %150, %157 store <4 x double> %158, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %159 = fsub <4 x double> %150, %157 store <4 x double> %159, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %160 = fsub <4 x double> %130, %132 %161 = fsub <4 x double> %143, %145 %162 = bitcast <4 x double> %161 to <4 x i64> %163 = fadd <4 x double> %131, %139 %164 = fadd <4 x double> %144, %142 %165 = xor <4 x i64> %162, %166 = bitcast <4 x i64> %165 to <4 x double> %167 = shufflevector <4 x double> %166, <4 x double> poison, <4 x i32> %168 = fsub <4 x double> %160, %167 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %169 = fadd <4 x double> %160, %167 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %170 = bitcast <4 x double> %164 to <4 x i64> %171 = xor <4 x i64> %170, %172 = bitcast <4 x i64> %171 to <4 x double> %173 = shufflevector <4 x double> %172, <4 x double> poison, <4 x i32> %174 = fadd <4 x double> %164, %173 %175 = fmul <4 x double> %174, %176 = fsub <4 x double> %163, %175 store <4 x double> %176, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %177 = fadd <4 x double> %163, %175 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4815, !noalias !4824 %exitcond.not.i.i = icmp eq i64 %108, 4 br i1 %exitcond.not.i.i, label %bb28.loopexit.i.i, label %bb58.i.i _ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i: ; preds = %bb28.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4825) tail call void @llvm.experimental.noalias.scope.decl(metadata !4828) tail call void @llvm.experimental.noalias.scope.decl(metadata !4830) %178 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %179 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %180 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %181 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %182 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %183 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %184 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i %iter.sroa.106.01794.i.i = phi i64 [ %185, %bb23.i.i ], [ 0, %_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE.exit.i ] %185 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i157.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i158.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i159.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %180, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %179, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %181, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %178, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %183, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %182, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i160.i = getelementptr inbounds %"fft_simd::c64x2", ptr %184, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !4830, !noalias !4832 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4830, !noalias !4832 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !4830, !noalias !4832 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !4830, !noalias !4832 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !4830, !noalias !4832 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !4830, !noalias !4832 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i160.i, align 8, !alias.scope !4830, !noalias !4832 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4828, !noalias !4833 %186 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %186, align 8, !alias.scope !4828, !noalias !4833 %187 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %187, align 8, !alias.scope !4828, !noalias !4833 %188 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %188, align 8, !alias.scope !4828, !noalias !4833 %189 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %189, align 8, !alias.scope !4828, !noalias !4833 %190 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %190, align 8, !alias.scope !4828, !noalias !4833 %191 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %191, align 8, !alias.scope !4828, !noalias !4833 %192 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %192, align 8, !alias.scope !4828, !noalias !4833 %193 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %194 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %197 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %198 = fmul <4 x double> %197, %195 %199 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %196, <4 x double> %194, <4 x double> %198) #23 %200 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %201 = shufflevector <4 x double> %200, <4 x double> poison, <4 x i32> %202 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %203 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %204 = fmul <4 x double> %203, %201 %205 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %200, <4 x double> %204) #23 %206 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %209 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %210 = fmul <4 x double> %209, %207 %211 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %208, <4 x double> %206, <4 x double> %210) #23 %212 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %213 = shufflevector <4 x double> %212, <4 x double> poison, <4 x i32> %214 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %215 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %215, %213 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %214, <4 x double> %212, <4 x double> %216) #23 %218 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %221 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %221, %219 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %220, <4 x double> %218, <4 x double> %222) #23 %224 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %227 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %228 = fmul <4 x double> %227, %225 %229 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %226, <4 x double> %224, <4 x double> %228) #23 %230 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %233 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %234 = fmul <4 x double> %233, %231 %235 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %232, <4 x double> %230, <4 x double> %234) #23 %236 = fadd <4 x double> %193, %217 %237 = fsub <4 x double> %193, %217 %238 = fadd <4 x double> %205, %229 %239 = fsub <4 x double> %205, %229 %240 = bitcast <4 x double> %239 to <4 x i64> %241 = fsub <4 x double> %211, %235 %242 = bitcast <4 x double> %241 to <4 x i64> %243 = xor <4 x i64> %240, %244 = bitcast <4 x i64> %243 to <4 x double> %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = xor <4 x i64> %242, %247 = bitcast <4 x i64> %246 to <4 x double> %248 = shufflevector <4 x double> %247, <4 x double> poison, <4 x i32> %249 = fadd <4 x double> %199, %223 %250 = fsub <4 x double> %199, %223 %251 = fadd <4 x double> %211, %235 %252 = fadd <4 x double> %236, %238 %253 = fadd <4 x double> %249, %251 %254 = fadd <4 x double> %252, %253 store <4 x double> %254, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4825, !noalias !4834 %255 = fsub <4 x double> %252, %253 store <4 x double> %255, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i156.i, align 8, !alias.scope !4825, !noalias !4834 %256 = fsub <4 x double> %237, %245 %257 = fsub <4 x double> %250, %248 %258 = bitcast <4 x double> %257 to <4 x i64> %259 = xor <4 x i64> %258, %260 = bitcast <4 x i64> %259 to <4 x double> %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fadd <4 x double> %257, %261 %263 = fmul <4 x double> %262, %264 = fadd <4 x double> %256, %263 store <4 x double> %264, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4825, !noalias !4834 %265 = fsub <4 x double> %256, %263 store <4 x double> %265, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i157.i, align 8, !alias.scope !4825, !noalias !4834 %266 = fsub <4 x double> %236, %238 %267 = fsub <4 x double> %249, %251 %268 = bitcast <4 x double> %267 to <4 x i64> %269 = fadd <4 x double> %237, %245 %270 = fadd <4 x double> %250, %248 %271 = xor <4 x i64> %268, %272 = bitcast <4 x i64> %271 to <4 x double> %273 = shufflevector <4 x double> %272, <4 x double> poison, <4 x i32> %274 = fsub <4 x double> %266, %273 store <4 x double> %274, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i154.i, align 8, !alias.scope !4825, !noalias !4834 %275 = fadd <4 x double> %266, %273 store <4 x double> %275, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i158.i, align 8, !alias.scope !4825, !noalias !4834 %276 = bitcast <4 x double> %270 to <4 x i64> %277 = xor <4 x i64> %276, %278 = bitcast <4 x i64> %277 to <4 x double> %279 = shufflevector <4 x double> %278, <4 x double> poison, <4 x i32> %280 = fadd <4 x double> %270, %279 %281 = fmul <4 x double> %280, %282 = fsub <4 x double> %269, %281 store <4 x double> %282, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i155.i, align 8, !alias.scope !4825, !noalias !4834 %283 = fadd <4 x double> %269, %281 store <4 x double> %283, ptr %_3.i.i.i.i.i.i.i.i.i.i.i159.i, align 8, !alias.scope !4825, !noalias !4834 %exitcond.not.i161.i = icmp eq i64 %185, 32 br i1 %exitcond.not.i161.i, label %_ZN4pulp3x862V39vectorize6__impl17h9efe06f4f9abb32bE.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17h9efe06f4f9abb32bE.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4806 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb47e07b68c989573E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4cede8cf8dfba7d6E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb4b727ac091e82efE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4835 store i64 1024, ptr %n.i, align 8, !noalias !4835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4835 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4835 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4835 store ptr null, ptr %_16.i, align 8, !noalias !4835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4835 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4835 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4835 store ptr null, ptr %_24.i, align 8, !noalias !4835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4835 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4835 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4835 store ptr null, ptr %_32.i, align 8, !noalias !4835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4835 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4835 store i64 %w.1, ptr %_34.i, align 8, !noalias !4835 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4835 store ptr null, ptr %_40.i, align 8, !noalias !4835 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4835 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit ], [ %index.next, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %3 = shl nuw nsw i64 %index, 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %3 %5 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index, i64 1 %wide.vec = load <16 x double>, ptr %5, align 8, !noalias !4838 %strided.vec = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %strided.vec1 = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %6 = fneg <4 x double> %strided.vec1 %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !4838 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !4838 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec3, %strided.vec6 %8 = fadd <4 x double> %strided.vec4, %strided.vec7 %9 = fsub <4 x double> %strided.vec3, %strided.vec6 %10 = fsub <4 x double> %strided.vec4, %strided.vec7 %11 = fmul <4 x double> %10, %6 %12 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %9, <4 x double> %11) %13 = fmul <4 x double> %strided.vec1, %9 %14 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %10, <4 x double> %13) %15 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> %16 = shufflevector <4 x double> %12, <4 x double> %14, <8 x i32> %interleaved.vec = shufflevector <8 x double> %15, <8 x double> %16, <16 x i32> store <16 x double> %interleaved.vec, ptr %4, align 8, !noalias !4838 %index.next = add nuw i64 %index, 4 %17 = icmp eq i64 %index.next, 508 br i1 %17, label %bb19.i.i, label %vector.body, !llvm.loop !4841 bb19.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i5.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %18 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1 %w1.0.i.i = load double, ptr %18, align 8, !noalias !4838, !noundef !3 %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1, i32 1 %w1.1.i.i = load double, ptr %19, align 8, !noalias !4838, !noundef !3 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017 %_6.i.i.i = fneg double %w1.1.i.i %21 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4838 %22 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i, align 8, !noalias !4838 %23 = fadd <2 x double> %21, %22 store <2 x double> %23, ptr %data.i.i.i.i.i.i, align 8, !noalias !4838 %24 = fsub <2 x double> %21, %22 %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %20, align 8, !noalias !4838 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %32 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 509, i64 1 %w1.0.i.i.1 = load double, ptr %32, align 8, !noalias !4838, !noundef !3 %33 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 509, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %33, align 8, !noalias !4838, !noundef !3 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %35 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4838 %36 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4838 %37 = fadd <2 x double> %35, %36 store <2 x double> %37, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4838 %38 = fsub <2 x double> %35, %36 %39 = shufflevector <2 x double> %38, <2 x double> poison, <2 x i32> %40 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %41 = insertelement <2 x double> %40, double %w1.1.i.i.1, i64 1 %42 = fmul <2 x double> %39, %41 %43 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %44 = shufflevector <2 x double> %43, <2 x double> poison, <2 x i32> zeroinitializer %45 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %44, <2 x double> %38, <2 x double> %42) store <2 x double> %45, ptr %34, align 8, !noalias !4838 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1 %w1.0.i.i.2 = load double, ptr %46, align 8, !noalias !4838, !noundef !3 %47 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %47, align 8, !noalias !4838, !noundef !3 %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %49 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4838 %50 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !4838 %51 = fadd <2 x double> %49, %50 store <2 x double> %51, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4838 %52 = fsub <2 x double> %49, %50 %53 = shufflevector <2 x double> %52, <2 x double> poison, <2 x i32> %54 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %55 = insertelement <2 x double> %54, double %w1.1.i.i.2, i64 1 %56 = fmul <2 x double> %53, %55 %57 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %58 = shufflevector <2 x double> %57, <2 x double> poison, <2 x i32> zeroinitializer %59 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %58, <2 x double> %52, <2 x double> %56) store <2 x double> %59, ptr %48, align 8, !noalias !4838 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %60 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 511, i64 1 %w1.0.i.i.3 = load double, ptr %60, align 8, !noalias !4838, !noundef !3 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 511, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %61, align 8, !noalias !4838, !noundef !3 %62 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %63 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4838 %64 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !4838 %65 = fadd <2 x double> %63, %64 store <2 x double> %65, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4838 %66 = fsub <2 x double> %63, %64 %67 = shufflevector <2 x double> %66, <2 x double> poison, <2 x i32> %68 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %69 = insertelement <2 x double> %68, double %w1.1.i.i.3, i64 1 %70 = fmul <2 x double> %67, %69 %71 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %72 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> zeroinitializer %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %72, <2 x double> %66, <2 x double> %70) store <2 x double> %73, ptr %62, align 8, !noalias !4838 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 br label %vector.body12 vector.body12: ; preds = %vector.body12, %bb19.i.i %index13 = phi i64 [ 0, %bb19.i.i ], [ %index.next26, %vector.body12 ] %vec.ind = phi <4 x i64> [ , %bb19.i.i ], [ %vec.ind.next, %vector.body12 ] %75 = shl nuw nsw <4 x i64> %vec.ind, %76 = extractelement <4 x i64> %75, i64 0 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %76 %78 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %76 %79 = shl nuw nsw i64 %index13, 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %79 %81 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !4842 %82 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !4842 %83 = fneg <4 x double> %wide.masked.gather14 %wide.vec15 = load <16 x double>, ptr %77, align 8, !noalias !4842 %strided.vec16 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec18 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %wide.vec20 = load <16 x double>, ptr %78, align 8, !noalias !4842 %strided.vec21 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %84 = fadd <4 x double> %strided.vec16, %strided.vec21 %85 = fadd <4 x double> %strided.vec17, %strided.vec22 %86 = fsub <4 x double> %strided.vec16, %strided.vec21 %87 = fsub <4 x double> %strided.vec17, %strided.vec22 %88 = fmul <4 x double> %87, %83 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %86, <4 x double> %88) %90 = fmul <4 x double> %wide.masked.gather14, %86 %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %87, <4 x double> %90) %92 = fadd <4 x double> %strided.vec18, %strided.vec23 %93 = fadd <4 x double> %strided.vec19, %strided.vec24 %94 = fsub <4 x double> %strided.vec18, %strided.vec23 %95 = fsub <4 x double> %strided.vec19, %strided.vec24 %96 = fmul <4 x double> %95, %83 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %94, <4 x double> %96) %98 = fmul <4 x double> %wide.masked.gather14, %94 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %95, <4 x double> %98) %100 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> %101 = shufflevector <4 x double> %92, <4 x double> %93, <8 x i32> %102 = shufflevector <4 x double> %89, <4 x double> %91, <8 x i32> %103 = shufflevector <4 x double> %97, <4 x double> %99, <8 x i32> %104 = shufflevector <8 x double> %100, <8 x double> %101, <16 x i32> %105 = shufflevector <8 x double> %102, <8 x double> %103, <16 x i32> %interleaved.vec25 = shufflevector <16 x double> %104, <16 x double> %105, <32 x i32> store <32 x double> %interleaved.vec25, ptr %80, align 8, !noalias !4842 %index.next26 = add nuw i64 %index13, 4 %vec.ind.next = add <4 x i64> %vec.ind, %106 = icmp eq i64 %index.next26, 252 br i1 %106, label %bb19.i.i.i, label %vector.body12, !llvm.loop !4845 bb19.i.i.i: ; preds = %vector.body12 %data.i.i.i.i.i.i.i.i398 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %data.i5.i.i.i.i.i.i.i403 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %data.i.i.i.i.i.i407 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1008 %107 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 504, i64 1 %w1.0.i.i.i = load double, ptr %107, align 8, !noalias !4842, !noundef !3 %108 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 504, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %108, align 8, !noalias !4842, !noundef !3 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1010 %_6.i.i.i.i = fneg double %w1.1.i.i.i %110 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i398, align 8, !noalias !4842 %111 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i403, align 8, !noalias !4842 %112 = fadd <4 x double> %110, %111 store <4 x double> %112, ptr %data.i.i.i.i.i.i407, align 8, !noalias !4842 %113 = fsub <4 x double> %110, %111 %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %116 = insertelement <4 x double> %115, double %w1.1.i.i.i, i64 1 %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %114, %117 %119 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> zeroinitializer %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %120, <4 x double> %113, <4 x double> %118) store <4 x double> %121, ptr %109, align 8, !noalias !4842 %data.i.i.i.i.i.i.i.i398.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %data.i5.i.i.i.i.i.i.i403.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %data.i.i.i.i.i.i407.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1012 %122 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 506, i64 1 %w1.0.i.i.i.1 = load double, ptr %122, align 8, !noalias !4842, !noundef !3 %123 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 506, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %123, align 8, !noalias !4842, !noundef !3 %124 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1014 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %125 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i398.1, align 8, !noalias !4842 %126 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i403.1, align 8, !noalias !4842 %127 = fadd <4 x double> %125, %126 store <4 x double> %127, ptr %data.i.i.i.i.i.i407.1, align 8, !noalias !4842 %128 = fsub <4 x double> %125, %126 %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i.i.1, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %129, %132 %134 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %128, <4 x double> %133) store <4 x double> %136, ptr %124, align 8, !noalias !4842 %data.i.i.i.i.i.i.i.i398.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %data.i5.i.i.i.i.i.i.i403.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %data.i.i.i.i.i.i407.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1016 %137 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1 %w1.0.i.i.i.2 = load double, ptr %137, align 8, !noalias !4842, !noundef !3 %138 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 508, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %138, align 8, !noalias !4842, !noundef !3 %139 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1018 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %140 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i398.2, align 8, !noalias !4842 %141 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i403.2, align 8, !noalias !4842 %142 = fadd <4 x double> %140, %141 store <4 x double> %142, ptr %data.i.i.i.i.i.i407.2, align 8, !noalias !4842 %143 = fsub <4 x double> %140, %141 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %146 = insertelement <4 x double> %145, double %w1.1.i.i.i.2, i64 1 %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = fmul <4 x double> %144, %147 %149 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %151 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %150, <4 x double> %143, <4 x double> %148) store <4 x double> %151, ptr %139, align 8, !noalias !4842 %data.i.i.i.i.i.i.i.i398.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %data.i5.i.i.i.i.i.i.i403.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %data.i.i.i.i.i.i407.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %152 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1 %w1.0.i.i.i.3 = load double, ptr %152, align 8, !noalias !4842, !noundef !3 %153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 510, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %153, align 8, !noalias !4842, !noundef !3 %154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %155 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i398.3, align 8, !noalias !4842 %156 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i403.3, align 8, !noalias !4842 %157 = fadd <4 x double> %155, %156 store <4 x double> %157, ptr %data.i.i.i.i.i.i407.3, align 8, !noalias !4842 %158 = fsub <4 x double> %155, %156 %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %161 = insertelement <4 x double> %160, double %w1.1.i.i.i.3, i64 1 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %159, %162 %164 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> zeroinitializer %166 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %165, <4 x double> %158, <4 x double> %163) store <4 x double> %166, ptr %154, align 8, !noalias !4842 br label %bb19.i.i58 bb19.i.i58: ; preds = %bb19.i.i.i, %bb19.i.i58 %iter.i.i28.sroa.38.0185 = phi i64 [ %189, %bb19.i.i58 ], [ 0, %bb19.i.i.i ] %start1.i.i.i.i.i.i.i.i570 = shl nuw nsw i64 %iter.i.i28.sroa.38.0185, 2 %data.i.i.i.i.i.i.i.i571 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i570 %data.i5.i.i.i.i.i.i.i576 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i570 %start1.i.i.i.i.i.i579 = shl nuw nsw i64 %iter.i.i28.sroa.38.0185, 3 %data.i.i.i.i.i.i580 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i579 %167 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i570, i64 1 %w1.0.i.i60 = load double, ptr %167, align 8, !noalias !4846, !noundef !3 %168 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i570, i64 1, i32 1 %w1.1.i.i61 = load double, ptr %168, align 8, !noalias !4846, !noundef !3 %169 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i580, i64 4 %_6.i.i.i81 = fneg double %w1.1.i.i61 %170 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i571, align 8, !noalias !4846 %171 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i576, align 8, !noalias !4846 %172 = fadd <4 x double> %170, %171 store <4 x double> %172, ptr %data.i.i.i.i.i.i580, align 8, !noalias !4846 %173 = fsub <4 x double> %170, %171 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = insertelement <4 x double> poison, double %_6.i.i.i81, i64 0 %176 = insertelement <4 x double> %175, double %w1.1.i.i61, i64 1 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %174, %177 %179 = insertelement <4 x double> poison, double %w1.0.i.i60, i64 0 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> zeroinitializer %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %173, <4 x double> %178) store <4 x double> %181, ptr %169, align 8, !noalias !4846 %_3.i.i.i.i.i.i.i.i629.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i571, i64 2 %_3.i2.i.i.i.i.i.i.i632.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i576, i64 2 %_3.i.i.i.i.i.i635.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i580, i64 2 %_3.i.i.i.i638.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i580, i64 6 %182 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i629.2, align 8, !noalias !4846 %183 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i632.2, align 8, !noalias !4846 %184 = fadd <4 x double> %182, %183 store <4 x double> %184, ptr %_3.i.i.i.i.i.i635.2, align 8, !noalias !4846 %185 = fsub <4 x double> %182, %183 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %177 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %185, <4 x double> %187) store <4 x double> %188, ptr %_3.i.i.i.i638.2, align 8, !noalias !4846 %189 = add nuw nsw i64 %iter.i.i28.sroa.38.0185, 1 %exitcond202.not = icmp eq i64 %189, 128 br i1 %exitcond202.not, label %bb19.i.i.i105, label %bb19.i.i58 bb19.i.i.i105: ; preds = %bb19.i.i58, %bb19.i.i.i105 %iter.i.i.i9.sroa.38.0187 = phi i64 [ %226, %bb19.i.i.i105 ], [ 0, %bb19.i.i58 ] %start1.i.i.i.i.i.i.i.i743 = shl nuw nsw i64 %iter.i.i.i9.sroa.38.0187, 3 %data.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i743 %data.i5.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i743 %start1.i.i.i.i.i.i752 = shl nuw nsw i64 %iter.i.i.i9.sroa.38.0187, 4 %data.i.i.i.i.i.i753 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i752 %190 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i743, i64 1 %w1.0.i.i.i107 = load double, ptr %190, align 8, !noalias !4849, !noundef !3 %191 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i743, i64 1, i32 1 %w1.1.i.i.i108 = load double, ptr %191, align 8, !noalias !4849, !noundef !3 %192 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 8 %_6.i.i.i.i128 = fneg double %w1.1.i.i.i108 %193 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i744, align 8, !noalias !4849 %194 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i749, align 8, !noalias !4849 %195 = fadd <4 x double> %193, %194 store <4 x double> %195, ptr %data.i.i.i.i.i.i753, align 8, !noalias !4849 %196 = fsub <4 x double> %193, %194 %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = insertelement <4 x double> poison, double %_6.i.i.i.i128, i64 0 %199 = insertelement <4 x double> %198, double %w1.1.i.i.i108, i64 1 %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %197, %200 %202 = insertelement <4 x double> poison, double %w1.0.i.i.i107, i64 0 %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> zeroinitializer %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %196, <4 x double> %201) store <4 x double> %204, ptr %192, align 8, !noalias !4849 %_3.i.i.i.i.i.i.i.i802.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i744, i64 2 %_3.i2.i.i.i.i.i.i.i805.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i749, i64 2 %_3.i.i.i.i.i.i808.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 2 %_3.i.i.i.i811.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 10 %205 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i802.2, align 8, !noalias !4849 %206 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i805.2, align 8, !noalias !4849 %207 = fadd <4 x double> %205, %206 store <4 x double> %207, ptr %_3.i.i.i.i.i.i808.2, align 8, !noalias !4849 %208 = fsub <4 x double> %205, %206 %209 = shufflevector <4 x double> %208, <4 x double> poison, <4 x i32> %210 = fmul <4 x double> %209, %200 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %208, <4 x double> %210) store <4 x double> %211, ptr %_3.i.i.i.i811.2, align 8, !noalias !4849 %_3.i.i.i.i.i.i.i.i802.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i744, i64 4 %_3.i2.i.i.i.i.i.i.i805.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i749, i64 4 %_3.i.i.i.i.i.i808.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 4 %_3.i.i.i.i811.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 12 %212 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i802.4, align 8, !noalias !4849 %213 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i805.4, align 8, !noalias !4849 %214 = fadd <4 x double> %212, %213 store <4 x double> %214, ptr %_3.i.i.i.i.i.i808.4, align 8, !noalias !4849 %215 = fsub <4 x double> %212, %213 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %216, %200 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %215, <4 x double> %217) store <4 x double> %218, ptr %_3.i.i.i.i811.4, align 8, !noalias !4849 %_3.i.i.i.i.i.i.i.i802.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i744, i64 6 %_3.i2.i.i.i.i.i.i.i805.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i749, i64 6 %_3.i.i.i.i.i.i808.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 6 %_3.i.i.i.i811.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i753, i64 14 %219 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i802.6, align 8, !noalias !4849 %220 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i805.6, align 8, !noalias !4849 %221 = fadd <4 x double> %219, %220 store <4 x double> %221, ptr %_3.i.i.i.i.i.i808.6, align 8, !noalias !4849 %222 = fsub <4 x double> %219, %220 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %223, %200 %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %222, <4 x double> %224) store <4 x double> %225, ptr %_3.i.i.i.i811.6, align 8, !noalias !4849 %226 = add nuw nsw i64 %iter.i.i.i9.sroa.38.0187, 1 %exitcond204.not = icmp eq i64 %226, 64 br i1 %exitcond204.not, label %bb19.i.i39.i, label %bb19.i.i.i105 bb19.i.i39.i: ; preds = %bb19.i.i.i105, %bb19.i.i39.i %iter.i.i9.i.sroa.38.0189 = phi i64 [ %274, %bb19.i.i39.i ], [ 0, %bb19.i.i.i105 ] %start1.i.i.i.i.i.i.i.i916 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0189, 4 %227 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i916, i64 1, i32 1 %w1.1.i.i42.i = load double, ptr %227, align 8, !noalias !4852, !noundef !3 %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.1.i.i42.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %228 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i916, i64 1 %w1.0.i.i41.i = load double, ptr %228, align 8, !noalias !4852, !noundef !3 %broadcast.splatinsert40 = insertelement <4 x double> poison, double %w1.0.i.i41.i, i64 0 %broadcast.splat41 = shufflevector <4 x double> %broadcast.splatinsert40, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i62.i = fneg double %w1.1.i.i42.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i62.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i925 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0189, 5 %data.i.i.i.i.i.i926 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i925 %229 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 16 %data.i5.i.i.i.i.i.i.i922 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i916 %data.i.i.i.i.i.i.i.i917 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i916 %wide.vec33 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i917, align 8, !noalias !4852 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %wide.vec36 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i922, align 8, !noalias !4852 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %230 = fadd <4 x double> %strided.vec34, %strided.vec37 %231 = fadd <4 x double> %strided.vec35, %strided.vec38 %interleaved.vec39 = shufflevector <4 x double> %230, <4 x double> %231, <8 x i32> store <8 x double> %interleaved.vec39, ptr %data.i.i.i.i.i.i926, align 8, !noalias !4852 %232 = fsub <4 x double> %strided.vec34, %strided.vec37 %233 = fsub <4 x double> %strided.vec35, %strided.vec38 %234 = fmul <4 x double> %233, %broadcast.splat %235 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %232, <4 x double> %234) %236 = fmul <4 x double> %broadcast.splat43, %232 %237 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %233, <4 x double> %236) %interleaved.vec44 = shufflevector <4 x double> %235, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec44, ptr %229, align 8, !noalias !4852 %238 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i917, i64 4 %239 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i922, i64 4 %wide.vec33.1 = load <8 x double>, ptr %238, align 8, !noalias !4852 %strided.vec34.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %wide.vec36.1 = load <8 x double>, ptr %239, align 8, !noalias !4852 %strided.vec37.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %strided.vec38.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %240 = fadd <4 x double> %strided.vec34.1, %strided.vec37.1 %241 = fadd <4 x double> %strided.vec35.1, %strided.vec38.1 %242 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 4 %interleaved.vec39.1 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %242, align 8, !noalias !4852 %243 = fsub <4 x double> %strided.vec34.1, %strided.vec37.1 %244 = fsub <4 x double> %strided.vec35.1, %strided.vec38.1 %245 = fmul <4 x double> %244, %broadcast.splat %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %243, <4 x double> %245) %247 = fmul <4 x double> %broadcast.splat43, %243 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %244, <4 x double> %247) %249 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 20 %interleaved.vec44.1 = shufflevector <4 x double> %246, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %249, align 8, !noalias !4852 %250 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i917, i64 8 %251 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i922, i64 8 %wide.vec33.2 = load <8 x double>, ptr %250, align 8, !noalias !4852 %strided.vec34.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %wide.vec36.2 = load <8 x double>, ptr %251, align 8, !noalias !4852 %strided.vec37.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %strided.vec38.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %252 = fadd <4 x double> %strided.vec34.2, %strided.vec37.2 %253 = fadd <4 x double> %strided.vec35.2, %strided.vec38.2 %254 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 8 %interleaved.vec39.2 = shufflevector <4 x double> %252, <4 x double> %253, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %254, align 8, !noalias !4852 %255 = fsub <4 x double> %strided.vec34.2, %strided.vec37.2 %256 = fsub <4 x double> %strided.vec35.2, %strided.vec38.2 %257 = fmul <4 x double> %256, %broadcast.splat %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %255, <4 x double> %257) %259 = fmul <4 x double> %broadcast.splat43, %255 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %256, <4 x double> %259) %261 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 24 %interleaved.vec44.2 = shufflevector <4 x double> %258, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %261, align 8, !noalias !4852 %262 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i917, i64 12 %263 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i922, i64 12 %wide.vec33.3 = load <8 x double>, ptr %262, align 8, !noalias !4852 %strided.vec34.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %strided.vec35.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %wide.vec36.3 = load <8 x double>, ptr %263, align 8, !noalias !4852 %strided.vec37.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %strided.vec38.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %264 = fadd <4 x double> %strided.vec34.3, %strided.vec37.3 %265 = fadd <4 x double> %strided.vec35.3, %strided.vec38.3 %266 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 12 %interleaved.vec39.3 = shufflevector <4 x double> %264, <4 x double> %265, <8 x i32> store <8 x double> %interleaved.vec39.3, ptr %266, align 8, !noalias !4852 %267 = fsub <4 x double> %strided.vec34.3, %strided.vec37.3 %268 = fsub <4 x double> %strided.vec35.3, %strided.vec38.3 %269 = fmul <4 x double> %268, %broadcast.splat %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %267, <4 x double> %269) %271 = fmul <4 x double> %broadcast.splat43, %267 %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %268, <4 x double> %271) %273 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i926, i64 28 %interleaved.vec44.3 = shufflevector <4 x double> %270, <4 x double> %272, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %273, align 8, !noalias !4852 %274 = add nuw nsw i64 %iter.i.i9.i.sroa.38.0189, 1 %exitcond206.not = icmp eq i64 %274, 32 br i1 %exitcond206.not, label %bb19.i.i106.i, label %bb19.i.i39.i bb19.i.i.i.i.preheader: ; preds = %bb19.i.i106.i %275 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i.i = load double, ptr %275, align 8, !noalias !4835, !noundef !3 %276 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %276, align 8, !noalias !4835, !noundef !3 %277 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %_6.i.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert80 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body71 vector.body71: ; preds = %vector.body71, %bb19.i.i.i.i.preheader %index72 = phi i64 [ 0, %bb19.i.i.i.i.preheader ], [ %index.next87, %vector.body71 ] %278 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index72 %279 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index72 %wide.vec73 = load <8 x double>, ptr %278, align 8, !noalias !4855 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %279, align 8, !noalias !4855 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %280 = fadd <4 x double> %strided.vec74, %strided.vec77 %281 = fadd <4 x double> %strided.vec75, %strided.vec78 %282 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index72 %interleaved.vec79 = shufflevector <4 x double> %280, <4 x double> %281, <8 x i32> store <8 x double> %interleaved.vec79, ptr %282, align 8, !noalias !4855 %283 = fsub <4 x double> %strided.vec74, %strided.vec77 %284 = fsub <4 x double> %strided.vec75, %strided.vec78 %285 = fmul <4 x double> %284, %broadcast.splat81 %286 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %283, <4 x double> %285) %287 = fmul <4 x double> %broadcast.splat85, %283 %288 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %284, <4 x double> %287) %289 = getelementptr inbounds %"num_complex::Complex", ptr %277, i64 %index72 %interleaved.vec86 = shufflevector <4 x double> %286, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec86, ptr %289, align 8, !noalias !4855 %index.next87 = add nuw i64 %index72, 4 %290 = icmp eq i64 %index.next87, 64 br i1 %290, label %bb15.i.i.i.i.loopexit, label %vector.body71, !llvm.loop !4860 bb19.i.i106.i: ; preds = %bb19.i.i39.i, %bb19.i.i106.i %iter.i.i76.i.sroa.38.0191 = phi i64 [ %386, %bb19.i.i106.i ], [ 0, %bb19.i.i39.i ] %start1.i.i.i.i.i.i.i.i1089 = shl nuw nsw i64 %iter.i.i76.i.sroa.38.0191, 5 %291 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i1089, i64 1, i32 1 %w1.1.i.i109.i = load double, ptr %291, align 8, !noalias !4861, !noundef !3 %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w1.1.i.i109.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %292 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i1089, i64 1 %w1.0.i.i108.i = load double, ptr %292, align 8, !noalias !4861, !noundef !3 %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.0.i.i108.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i129.i = fneg double %w1.1.i.i109.i %broadcast.splatinsert59 = insertelement <4 x double> poison, double %_6.i.i.i129.i, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i1098 = shl nuw nsw i64 %iter.i.i76.i.sroa.38.0191, 6 %data.i.i.i.i.i.i1099 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1098 %293 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 32 %data.i5.i.i.i.i.i.i.i1095 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i1089 %data.i.i.i.i.i.i.i.i1090 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i1089 %wide.vec52 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i1090, align 8, !noalias !4861 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1095, align 8, !noalias !4861 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %294 = fadd <4 x double> %strided.vec53, %strided.vec56 %295 = fadd <4 x double> %strided.vec54, %strided.vec57 %interleaved.vec58 = shufflevector <4 x double> %294, <4 x double> %295, <8 x i32> store <8 x double> %interleaved.vec58, ptr %data.i.i.i.i.i.i1099, align 8, !noalias !4861 %296 = fsub <4 x double> %strided.vec53, %strided.vec56 %297 = fsub <4 x double> %strided.vec54, %strided.vec57 %298 = fmul <4 x double> %297, %broadcast.splat60 %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %296, <4 x double> %298) %300 = fmul <4 x double> %broadcast.splat64, %296 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %297, <4 x double> %300) %interleaved.vec65 = shufflevector <4 x double> %299, <4 x double> %301, <8 x i32> store <8 x double> %interleaved.vec65, ptr %293, align 8, !noalias !4861 %302 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 4 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 4 %wide.vec52.1 = load <8 x double>, ptr %302, align 8, !noalias !4861 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %303, align 8, !noalias !4861 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %304 = fadd <4 x double> %strided.vec53.1, %strided.vec56.1 %305 = fadd <4 x double> %strided.vec54.1, %strided.vec57.1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 4 %interleaved.vec58.1 = shufflevector <4 x double> %304, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec58.1, ptr %306, align 8, !noalias !4861 %307 = fsub <4 x double> %strided.vec53.1, %strided.vec56.1 %308 = fsub <4 x double> %strided.vec54.1, %strided.vec57.1 %309 = fmul <4 x double> %308, %broadcast.splat60 %310 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %307, <4 x double> %309) %311 = fmul <4 x double> %broadcast.splat64, %307 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %308, <4 x double> %311) %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 36 %interleaved.vec65.1 = shufflevector <4 x double> %310, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %313, align 8, !noalias !4861 %314 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 8 %315 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 8 %wide.vec52.2 = load <8 x double>, ptr %314, align 8, !noalias !4861 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %315, align 8, !noalias !4861 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %316 = fadd <4 x double> %strided.vec53.2, %strided.vec56.2 %317 = fadd <4 x double> %strided.vec54.2, %strided.vec57.2 %318 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 8 %interleaved.vec58.2 = shufflevector <4 x double> %316, <4 x double> %317, <8 x i32> store <8 x double> %interleaved.vec58.2, ptr %318, align 8, !noalias !4861 %319 = fsub <4 x double> %strided.vec53.2, %strided.vec56.2 %320 = fsub <4 x double> %strided.vec54.2, %strided.vec57.2 %321 = fmul <4 x double> %320, %broadcast.splat60 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %319, <4 x double> %321) %323 = fmul <4 x double> %broadcast.splat64, %319 %324 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %320, <4 x double> %323) %325 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 40 %interleaved.vec65.2 = shufflevector <4 x double> %322, <4 x double> %324, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %325, align 8, !noalias !4861 %326 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 12 %327 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 12 %wide.vec52.3 = load <8 x double>, ptr %326, align 8, !noalias !4861 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %327, align 8, !noalias !4861 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %328 = fadd <4 x double> %strided.vec53.3, %strided.vec56.3 %329 = fadd <4 x double> %strided.vec54.3, %strided.vec57.3 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 12 %interleaved.vec58.3 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec58.3, ptr %330, align 8, !noalias !4861 %331 = fsub <4 x double> %strided.vec53.3, %strided.vec56.3 %332 = fsub <4 x double> %strided.vec54.3, %strided.vec57.3 %333 = fmul <4 x double> %332, %broadcast.splat60 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %331, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat64, %331 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %332, <4 x double> %335) %337 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 44 %interleaved.vec65.3 = shufflevector <4 x double> %334, <4 x double> %336, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %337, align 8, !noalias !4861 %338 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 16 %339 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 16 %wide.vec52.4 = load <8 x double>, ptr %338, align 8, !noalias !4861 %strided.vec53.4 = shufflevector <8 x double> %wide.vec52.4, <8 x double> poison, <4 x i32> %strided.vec54.4 = shufflevector <8 x double> %wide.vec52.4, <8 x double> poison, <4 x i32> %wide.vec55.4 = load <8 x double>, ptr %339, align 8, !noalias !4861 %strided.vec56.4 = shufflevector <8 x double> %wide.vec55.4, <8 x double> poison, <4 x i32> %strided.vec57.4 = shufflevector <8 x double> %wide.vec55.4, <8 x double> poison, <4 x i32> %340 = fadd <4 x double> %strided.vec53.4, %strided.vec56.4 %341 = fadd <4 x double> %strided.vec54.4, %strided.vec57.4 %342 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 16 %interleaved.vec58.4 = shufflevector <4 x double> %340, <4 x double> %341, <8 x i32> store <8 x double> %interleaved.vec58.4, ptr %342, align 8, !noalias !4861 %343 = fsub <4 x double> %strided.vec53.4, %strided.vec56.4 %344 = fsub <4 x double> %strided.vec54.4, %strided.vec57.4 %345 = fmul <4 x double> %344, %broadcast.splat60 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %343, <4 x double> %345) %347 = fmul <4 x double> %broadcast.splat64, %343 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %344, <4 x double> %347) %349 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 48 %interleaved.vec65.4 = shufflevector <4 x double> %346, <4 x double> %348, <8 x i32> store <8 x double> %interleaved.vec65.4, ptr %349, align 8, !noalias !4861 %350 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 20 %351 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 20 %wide.vec52.5 = load <8 x double>, ptr %350, align 8, !noalias !4861 %strided.vec53.5 = shufflevector <8 x double> %wide.vec52.5, <8 x double> poison, <4 x i32> %strided.vec54.5 = shufflevector <8 x double> %wide.vec52.5, <8 x double> poison, <4 x i32> %wide.vec55.5 = load <8 x double>, ptr %351, align 8, !noalias !4861 %strided.vec56.5 = shufflevector <8 x double> %wide.vec55.5, <8 x double> poison, <4 x i32> %strided.vec57.5 = shufflevector <8 x double> %wide.vec55.5, <8 x double> poison, <4 x i32> %352 = fadd <4 x double> %strided.vec53.5, %strided.vec56.5 %353 = fadd <4 x double> %strided.vec54.5, %strided.vec57.5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 20 %interleaved.vec58.5 = shufflevector <4 x double> %352, <4 x double> %353, <8 x i32> store <8 x double> %interleaved.vec58.5, ptr %354, align 8, !noalias !4861 %355 = fsub <4 x double> %strided.vec53.5, %strided.vec56.5 %356 = fsub <4 x double> %strided.vec54.5, %strided.vec57.5 %357 = fmul <4 x double> %356, %broadcast.splat60 %358 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %355, <4 x double> %357) %359 = fmul <4 x double> %broadcast.splat64, %355 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %356, <4 x double> %359) %361 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 52 %interleaved.vec65.5 = shufflevector <4 x double> %358, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec65.5, ptr %361, align 8, !noalias !4861 %362 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 24 %363 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 24 %wide.vec52.6 = load <8 x double>, ptr %362, align 8, !noalias !4861 %strided.vec53.6 = shufflevector <8 x double> %wide.vec52.6, <8 x double> poison, <4 x i32> %strided.vec54.6 = shufflevector <8 x double> %wide.vec52.6, <8 x double> poison, <4 x i32> %wide.vec55.6 = load <8 x double>, ptr %363, align 8, !noalias !4861 %strided.vec56.6 = shufflevector <8 x double> %wide.vec55.6, <8 x double> poison, <4 x i32> %strided.vec57.6 = shufflevector <8 x double> %wide.vec55.6, <8 x double> poison, <4 x i32> %364 = fadd <4 x double> %strided.vec53.6, %strided.vec56.6 %365 = fadd <4 x double> %strided.vec54.6, %strided.vec57.6 %366 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 24 %interleaved.vec58.6 = shufflevector <4 x double> %364, <4 x double> %365, <8 x i32> store <8 x double> %interleaved.vec58.6, ptr %366, align 8, !noalias !4861 %367 = fsub <4 x double> %strided.vec53.6, %strided.vec56.6 %368 = fsub <4 x double> %strided.vec54.6, %strided.vec57.6 %369 = fmul <4 x double> %368, %broadcast.splat60 %370 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %367, <4 x double> %369) %371 = fmul <4 x double> %broadcast.splat64, %367 %372 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %368, <4 x double> %371) %373 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 56 %interleaved.vec65.6 = shufflevector <4 x double> %370, <4 x double> %372, <8 x i32> store <8 x double> %interleaved.vec65.6, ptr %373, align 8, !noalias !4861 %374 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1090, i64 28 %375 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1095, i64 28 %wide.vec52.7 = load <8 x double>, ptr %374, align 8, !noalias !4861 %strided.vec53.7 = shufflevector <8 x double> %wide.vec52.7, <8 x double> poison, <4 x i32> %strided.vec54.7 = shufflevector <8 x double> %wide.vec52.7, <8 x double> poison, <4 x i32> %wide.vec55.7 = load <8 x double>, ptr %375, align 8, !noalias !4861 %strided.vec56.7 = shufflevector <8 x double> %wide.vec55.7, <8 x double> poison, <4 x i32> %strided.vec57.7 = shufflevector <8 x double> %wide.vec55.7, <8 x double> poison, <4 x i32> %376 = fadd <4 x double> %strided.vec53.7, %strided.vec56.7 %377 = fadd <4 x double> %strided.vec54.7, %strided.vec57.7 %378 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 28 %interleaved.vec58.7 = shufflevector <4 x double> %376, <4 x double> %377, <8 x i32> store <8 x double> %interleaved.vec58.7, ptr %378, align 8, !noalias !4861 %379 = fsub <4 x double> %strided.vec53.7, %strided.vec56.7 %380 = fsub <4 x double> %strided.vec54.7, %strided.vec57.7 %381 = fmul <4 x double> %380, %broadcast.splat60 %382 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %379, <4 x double> %381) %383 = fmul <4 x double> %broadcast.splat64, %379 %384 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %380, <4 x double> %383) %385 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1099, i64 60 %interleaved.vec65.7 = shufflevector <4 x double> %382, <4 x double> %384, <8 x i32> store <8 x double> %interleaved.vec65.7, ptr %385, align 8, !noalias !4861 %386 = add nuw nsw i64 %iter.i.i76.i.sroa.38.0191, 1 %exitcond208.not = icmp eq i64 %386, 16 br i1 %exitcond208.not, label %bb19.i.i.i.i.preheader, label %bb19.i.i106.i bb15.i.i.i.i.loopexit: ; preds = %vector.body71 %data.i.i.i.i.i.i.i.i1263.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i1268.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 576 %data.i.i.i.i.i.i1272.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %387 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %388 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i.i.1 = load double, ptr %388, align 8, !noalias !4855, !noundef !3 %_6.i.i.i.i.i.1 = fneg double %w1.1.i.i.i.i.1 %389 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i.i.1 = load double, ptr %389, align 8, !noalias !4855, !noundef !3 %broadcast.splatinsert101 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.1, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.1, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert105 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.1, i64 0 %broadcast.splat106 = shufflevector <4 x double> %broadcast.splatinsert105, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body92 vector.body92: ; preds = %vector.body92, %bb15.i.i.i.i.loopexit %index93 = phi i64 [ 0, %bb15.i.i.i.i.loopexit ], [ %index.next108, %vector.body92 ] %390 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.1, i64 %index93 %391 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.1, i64 %index93 %wide.vec94 = load <8 x double>, ptr %390, align 8, !noalias !4855 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %391, align 8, !noalias !4855 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %392 = fadd <4 x double> %strided.vec95, %strided.vec98 %393 = fadd <4 x double> %strided.vec96, %strided.vec99 %394 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.1, i64 %index93 %interleaved.vec100 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> store <8 x double> %interleaved.vec100, ptr %394, align 8, !noalias !4855 %395 = fsub <4 x double> %strided.vec95, %strided.vec98 %396 = fsub <4 x double> %strided.vec96, %strided.vec99 %397 = fmul <4 x double> %396, %broadcast.splat102 %398 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %395, <4 x double> %397) %399 = fmul <4 x double> %broadcast.splat106, %395 %400 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %396, <4 x double> %399) %401 = getelementptr inbounds %"num_complex::Complex", ptr %387, i64 %index93 %interleaved.vec107 = shufflevector <4 x double> %398, <4 x double> %400, <8 x i32> store <8 x double> %interleaved.vec107, ptr %401, align 8, !noalias !4855 %index.next108 = add nuw i64 %index93, 4 %402 = icmp eq i64 %index.next108, 64 br i1 %402, label %bb15.i.i.i.i.loopexit.1, label %vector.body92, !llvm.loop !4862 bb15.i.i.i.i.loopexit.1: ; preds = %vector.body92 %data.i.i.i.i.i.i.i.i1263.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %data.i5.i.i.i.i.i.i.i1268.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %data.i.i.i.i.i.i1272.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %403 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.i.i.i.i.2 = load double, ptr %403, align 8, !noalias !4846, !noundef !3 %404 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.i.i.i.i.2 = load double, ptr %404, align 8, !noalias !4846, !noundef !3 %405 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %_6.i.i.i.i.i.2 = fneg double %w1.1.i.i.i.i.2 %broadcast.splatinsert122 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.2, i64 0 %broadcast.splat123 = shufflevector <4 x double> %broadcast.splatinsert122, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.2, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert126 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.2, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body113 vector.body113: ; preds = %vector.body113, %bb15.i.i.i.i.loopexit.1 %index114 = phi i64 [ 0, %bb15.i.i.i.i.loopexit.1 ], [ %index.next129, %vector.body113 ] %406 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.2, i64 %index114 %407 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.2, i64 %index114 %wide.vec115 = load <8 x double>, ptr %406, align 8, !noalias !4855 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %407, align 8, !noalias !4855 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %408 = fadd <4 x double> %strided.vec116, %strided.vec119 %409 = fadd <4 x double> %strided.vec117, %strided.vec120 %410 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.2, i64 %index114 %interleaved.vec121 = shufflevector <4 x double> %408, <4 x double> %409, <8 x i32> store <8 x double> %interleaved.vec121, ptr %410, align 8, !noalias !4855 %411 = fsub <4 x double> %strided.vec116, %strided.vec119 %412 = fsub <4 x double> %strided.vec117, %strided.vec120 %413 = fmul <4 x double> %412, %broadcast.splat123 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %411, <4 x double> %413) %415 = fmul <4 x double> %broadcast.splat127, %411 %416 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %412, <4 x double> %415) %417 = getelementptr inbounds %"num_complex::Complex", ptr %405, i64 %index114 %interleaved.vec128 = shufflevector <4 x double> %414, <4 x double> %416, <8 x i32> store <8 x double> %interleaved.vec128, ptr %417, align 8, !noalias !4855 %index.next129 = add nuw i64 %index114, 4 %418 = icmp eq i64 %index.next129, 64 br i1 %418, label %bb15.i.i.i.i.loopexit.2, label %vector.body113, !llvm.loop !4863 bb15.i.i.i.i.loopexit.2: ; preds = %vector.body113 %data.i.i.i.i.i.i.i.i1263.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %data.i5.i.i.i.i.i.i.i1268.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 704 %data.i.i.i.i.i.i1272.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %420 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.i.i.i.i.3 = load double, ptr %420, align 8, !noalias !4855, !noundef !3 %_6.i.i.i.i.i.3 = fneg double %w1.1.i.i.i.i.3 %421 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.i.i.i.i.3 = load double, ptr %421, align 8, !noalias !4855, !noundef !3 %broadcast.splatinsert143 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.3, i64 0 %broadcast.splat144 = shufflevector <4 x double> %broadcast.splatinsert143, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert145 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.3, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert147 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.3, i64 0 %broadcast.splat148 = shufflevector <4 x double> %broadcast.splatinsert147, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body134 vector.body134: ; preds = %vector.body134, %bb15.i.i.i.i.loopexit.2 %index135 = phi i64 [ 0, %bb15.i.i.i.i.loopexit.2 ], [ %index.next150, %vector.body134 ] %422 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.3, i64 %index135 %423 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.3, i64 %index135 %wide.vec136 = load <8 x double>, ptr %422, align 8, !noalias !4855 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %423, align 8, !noalias !4855 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %424 = fadd <4 x double> %strided.vec137, %strided.vec140 %425 = fadd <4 x double> %strided.vec138, %strided.vec141 %426 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.3, i64 %index135 %interleaved.vec142 = shufflevector <4 x double> %424, <4 x double> %425, <8 x i32> store <8 x double> %interleaved.vec142, ptr %426, align 8, !noalias !4855 %427 = fsub <4 x double> %strided.vec137, %strided.vec140 %428 = fsub <4 x double> %strided.vec138, %strided.vec141 %429 = fmul <4 x double> %428, %broadcast.splat144 %430 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %427, <4 x double> %429) %431 = fmul <4 x double> %broadcast.splat148, %427 %432 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %428, <4 x double> %431) %433 = getelementptr inbounds %"num_complex::Complex", ptr %419, i64 %index135 %interleaved.vec149 = shufflevector <4 x double> %430, <4 x double> %432, <8 x i32> store <8 x double> %interleaved.vec149, ptr %433, align 8, !noalias !4855 %index.next150 = add nuw i64 %index135, 4 %434 = icmp eq i64 %index.next150, 64 br i1 %434, label %bb15.i.i.i.i.loopexit.3, label %vector.body134, !llvm.loop !4864 bb15.i.i.i.i.loopexit.3: ; preds = %vector.body134 %data.i.i.i.i.i.i.i.i1263.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %data.i5.i.i.i.i.i.i.i1268.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %435 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1 %w1.0.i.i.i.i.4 = load double, ptr %435, align 8, !noalias !4835, !noundef !3 %436 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 256, i64 1, i32 1 %w1.1.i.i.i.i.4 = load double, ptr %436, align 8, !noalias !4835, !noundef !3 %437 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 576 %_6.i.i.i.i.i.4 = fneg double %w1.1.i.i.i.i.4 %broadcast.splatinsert164 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat165 = shufflevector <4 x double> %broadcast.splatinsert164, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert166 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert168 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat169 = shufflevector <4 x double> %broadcast.splatinsert168, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body155 vector.body155: ; preds = %vector.body155, %bb15.i.i.i.i.loopexit.3 %index156 = phi i64 [ 0, %bb15.i.i.i.i.loopexit.3 ], [ %index.next171, %vector.body155 ] %438 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.4, i64 %index156 %439 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.4, i64 %index156 %wide.vec157 = load <8 x double>, ptr %438, align 8, !noalias !4855 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %439, align 8, !noalias !4855 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %440 = fadd <4 x double> %strided.vec158, %strided.vec161 %441 = fadd <4 x double> %strided.vec159, %strided.vec162 %442 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index156 %interleaved.vec163 = shufflevector <4 x double> %440, <4 x double> %441, <8 x i32> store <8 x double> %interleaved.vec163, ptr %442, align 8, !noalias !4855 %443 = fsub <4 x double> %strided.vec158, %strided.vec161 %444 = fsub <4 x double> %strided.vec159, %strided.vec162 %445 = fmul <4 x double> %444, %broadcast.splat165 %446 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %443, <4 x double> %445) %447 = fmul <4 x double> %broadcast.splat169, %443 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %444, <4 x double> %447) %449 = getelementptr inbounds %"num_complex::Complex", ptr %437, i64 %index156 %interleaved.vec170 = shufflevector <4 x double> %446, <4 x double> %448, <8 x i32> store <8 x double> %interleaved.vec170, ptr %449, align 8, !noalias !4855 %index.next171 = add nuw i64 %index156, 4 %450 = icmp eq i64 %index.next171, 64 br i1 %450, label %bb15.i.i.i.i.loopexit.4, label %vector.body155, !llvm.loop !4865 bb15.i.i.i.i.loopexit.4: ; preds = %vector.body155 %data.i.i.i.i.i.i.i.i1263.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %data.i5.i.i.i.i.i.i.i1268.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 832 %data.i.i.i.i.i.i1272.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %451 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 704 %452 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1, i32 1 %w1.1.i.i.i.i.5 = load double, ptr %452, align 8, !noalias !4855, !noundef !3 %_6.i.i.i.i.i.5 = fneg double %w1.1.i.i.i.i.5 %453 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 320, i64 1 %w1.0.i.i.i.i.5 = load double, ptr %453, align 8, !noalias !4855, !noundef !3 %broadcast.splatinsert185 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.5, i64 0 %broadcast.splat186 = shufflevector <4 x double> %broadcast.splatinsert185, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert187 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.5, i64 0 %broadcast.splat188 = shufflevector <4 x double> %broadcast.splatinsert187, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert189 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.5, i64 0 %broadcast.splat190 = shufflevector <4 x double> %broadcast.splatinsert189, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body176 vector.body176: ; preds = %vector.body176, %bb15.i.i.i.i.loopexit.4 %index177 = phi i64 [ 0, %bb15.i.i.i.i.loopexit.4 ], [ %index.next192, %vector.body176 ] %454 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.5, i64 %index177 %455 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.5, i64 %index177 %wide.vec178 = load <8 x double>, ptr %454, align 8, !noalias !4855 %strided.vec179 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %strided.vec180 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %wide.vec181 = load <8 x double>, ptr %455, align 8, !noalias !4855 %strided.vec182 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %strided.vec183 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %456 = fadd <4 x double> %strided.vec179, %strided.vec182 %457 = fadd <4 x double> %strided.vec180, %strided.vec183 %458 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.5, i64 %index177 %interleaved.vec184 = shufflevector <4 x double> %456, <4 x double> %457, <8 x i32> store <8 x double> %interleaved.vec184, ptr %458, align 8, !noalias !4855 %459 = fsub <4 x double> %strided.vec179, %strided.vec182 %460 = fsub <4 x double> %strided.vec180, %strided.vec183 %461 = fmul <4 x double> %460, %broadcast.splat186 %462 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %459, <4 x double> %461) %463 = fmul <4 x double> %broadcast.splat190, %459 %464 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %460, <4 x double> %463) %465 = getelementptr inbounds %"num_complex::Complex", ptr %451, i64 %index177 %interleaved.vec191 = shufflevector <4 x double> %462, <4 x double> %464, <8 x i32> store <8 x double> %interleaved.vec191, ptr %465, align 8, !noalias !4855 %index.next192 = add nuw i64 %index177, 4 %466 = icmp eq i64 %index.next192, 64 br i1 %466, label %bb15.i.i.i.i.loopexit.5, label %vector.body176, !llvm.loop !4866 bb15.i.i.i.i.loopexit.5: ; preds = %vector.body176 %data.i.i.i.i.i.i.i.i1263.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %data.i5.i.i.i.i.i.i.i1268.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %data.i.i.i.i.i.i1272.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %467 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1 %w1.0.i.i.i.i.6 = load double, ptr %467, align 8, !noalias !4846, !noundef !3 %468 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 384, i64 1, i32 1 %w1.1.i.i.i.i.6 = load double, ptr %468, align 8, !noalias !4846, !noundef !3 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 832 %_6.i.i.i.i.i.6 = fneg double %w1.1.i.i.i.i.6 %broadcast.splatinsert206 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.6, i64 0 %broadcast.splat207 = shufflevector <4 x double> %broadcast.splatinsert206, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert208 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.6, i64 0 %broadcast.splat209 = shufflevector <4 x double> %broadcast.splatinsert208, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert210 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.6, i64 0 %broadcast.splat211 = shufflevector <4 x double> %broadcast.splatinsert210, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body197 vector.body197: ; preds = %vector.body197, %bb15.i.i.i.i.loopexit.5 %index198 = phi i64 [ 0, %bb15.i.i.i.i.loopexit.5 ], [ %index.next213, %vector.body197 ] %470 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.6, i64 %index198 %471 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.6, i64 %index198 %wide.vec199 = load <8 x double>, ptr %470, align 8, !noalias !4855 %strided.vec200 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %strided.vec201 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %wide.vec202 = load <8 x double>, ptr %471, align 8, !noalias !4855 %strided.vec203 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %strided.vec204 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %472 = fadd <4 x double> %strided.vec200, %strided.vec203 %473 = fadd <4 x double> %strided.vec201, %strided.vec204 %474 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.6, i64 %index198 %interleaved.vec205 = shufflevector <4 x double> %472, <4 x double> %473, <8 x i32> store <8 x double> %interleaved.vec205, ptr %474, align 8, !noalias !4855 %475 = fsub <4 x double> %strided.vec200, %strided.vec203 %476 = fsub <4 x double> %strided.vec201, %strided.vec204 %477 = fmul <4 x double> %476, %broadcast.splat207 %478 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %475, <4 x double> %477) %479 = fmul <4 x double> %broadcast.splat211, %475 %480 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %476, <4 x double> %479) %481 = getelementptr inbounds %"num_complex::Complex", ptr %469, i64 %index198 %interleaved.vec212 = shufflevector <4 x double> %478, <4 x double> %480, <8 x i32> store <8 x double> %interleaved.vec212, ptr %481, align 8, !noalias !4855 %index.next213 = add nuw i64 %index198, 4 %482 = icmp eq i64 %index.next213, 64 br i1 %482, label %bb15.i.i.i.i.loopexit.6, label %vector.body197, !llvm.loop !4867 bb15.i.i.i.i.loopexit.6: ; preds = %vector.body197 %data.i.i.i.i.i.i.i.i1263.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %data.i5.i.i.i.i.i.i.i1268.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 960 %data.i.i.i.i.i.i1272.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %483 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 960 %484 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1, i32 1 %w1.1.i.i.i.i.7 = load double, ptr %484, align 8, !noalias !4855, !noundef !3 %_6.i.i.i.i.i.7 = fneg double %w1.1.i.i.i.i.7 %485 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 448, i64 1 %w1.0.i.i.i.i.7 = load double, ptr %485, align 8, !noalias !4855, !noundef !3 %broadcast.splatinsert227 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.7, i64 0 %broadcast.splat228 = shufflevector <4 x double> %broadcast.splatinsert227, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert229 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.7, i64 0 %broadcast.splat230 = shufflevector <4 x double> %broadcast.splatinsert229, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert231 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.7, i64 0 %broadcast.splat232 = shufflevector <4 x double> %broadcast.splatinsert231, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body218 vector.body218: ; preds = %vector.body218, %bb15.i.i.i.i.loopexit.6 %index219 = phi i64 [ 0, %bb15.i.i.i.i.loopexit.6 ], [ %index.next234, %vector.body218 ] %486 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.7, i64 %index219 %487 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.7, i64 %index219 %wide.vec220 = load <8 x double>, ptr %486, align 8, !noalias !4855 %strided.vec221 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %strided.vec222 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %wide.vec223 = load <8 x double>, ptr %487, align 8, !noalias !4855 %strided.vec224 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %strided.vec225 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %488 = fadd <4 x double> %strided.vec221, %strided.vec224 %489 = fadd <4 x double> %strided.vec222, %strided.vec225 %490 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.7, i64 %index219 %interleaved.vec226 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> store <8 x double> %interleaved.vec226, ptr %490, align 8, !noalias !4855 %491 = fsub <4 x double> %strided.vec221, %strided.vec224 %492 = fsub <4 x double> %strided.vec222, %strided.vec225 %493 = fmul <4 x double> %492, %broadcast.splat228 %494 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %491, <4 x double> %493) %495 = fmul <4 x double> %broadcast.splat232, %491 %496 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %492, <4 x double> %495) %497 = getelementptr inbounds %"num_complex::Complex", ptr %483, i64 %index219 %interleaved.vec233 = shufflevector <4 x double> %494, <4 x double> %496, <8 x i32> store <8 x double> %interleaved.vec233, ptr %497, align 8, !noalias !4855 %index.next234 = add nuw i64 %index219, 4 %498 = icmp eq i64 %index.next234, 64 br i1 %498, label %vector.ph237, label %vector.body218, !llvm.loop !4868 vector.ph237: ; preds = %vector.body218 %broadcast.splatinsert248 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat249 = shufflevector <4 x double> %broadcast.splatinsert248, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert250 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat251 = shufflevector <4 x double> %broadcast.splatinsert250, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert252 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat253 = shufflevector <4 x double> %broadcast.splatinsert252, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body239 vector.body239: ; preds = %vector.body239, %vector.ph237 %index240 = phi i64 [ 0, %vector.ph237 ], [ %index.next255, %vector.body239 ] %499 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index240 %500 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index240 %wide.vec241 = load <8 x double>, ptr %499, align 8, !noalias !4869 %strided.vec242 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %strided.vec243 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %wide.vec244 = load <8 x double>, ptr %500, align 8, !noalias !4869 %strided.vec245 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %strided.vec246 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %501 = fadd <4 x double> %strided.vec242, %strided.vec245 %502 = fadd <4 x double> %strided.vec243, %strided.vec246 %503 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index240 %interleaved.vec247 = shufflevector <4 x double> %501, <4 x double> %502, <8 x i32> store <8 x double> %interleaved.vec247, ptr %503, align 8, !noalias !4869 %504 = fsub <4 x double> %strided.vec242, %strided.vec245 %505 = fsub <4 x double> %strided.vec243, %strided.vec246 %506 = fmul <4 x double> %505, %broadcast.splat249 %507 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %504, <4 x double> %506) %508 = fmul <4 x double> %broadcast.splat253, %504 %509 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %505, <4 x double> %508) %510 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.2, i64 %index240 %interleaved.vec254 = shufflevector <4 x double> %507, <4 x double> %509, <8 x i32> store <8 x double> %interleaved.vec254, ptr %510, align 8, !noalias !4869 %index.next255 = add nuw i64 %index240, 4 %511 = icmp eq i64 %index.next255, 128 br i1 %511, label %bb15.i.i164.i.loopexit, label %vector.body239, !llvm.loop !4872 bb15.i.i164.i.loopexit: ; preds = %vector.body239 %data.i5.i.i.i.i.i.i.i1441.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %512 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %broadcast.splatinsert269 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.2, i64 0 %broadcast.splat270 = shufflevector <4 x double> %broadcast.splatinsert269, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert271 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.2, i64 0 %broadcast.splat272 = shufflevector <4 x double> %broadcast.splatinsert271, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert273 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.2, i64 0 %broadcast.splat274 = shufflevector <4 x double> %broadcast.splatinsert273, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body260 vector.body260: ; preds = %vector.body260, %bb15.i.i164.i.loopexit %index261 = phi i64 [ 0, %bb15.i.i164.i.loopexit ], [ %index.next276, %vector.body260 ] %513 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.1, i64 %index261 %514 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1441.1, i64 %index261 %wide.vec262 = load <8 x double>, ptr %513, align 8, !noalias !4869 %strided.vec263 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %strided.vec264 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %wide.vec265 = load <8 x double>, ptr %514, align 8, !noalias !4869 %strided.vec266 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %strided.vec267 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %515 = fadd <4 x double> %strided.vec263, %strided.vec266 %516 = fadd <4 x double> %strided.vec264, %strided.vec267 %517 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.4, i64 %index261 %interleaved.vec268 = shufflevector <4 x double> %515, <4 x double> %516, <8 x i32> store <8 x double> %interleaved.vec268, ptr %517, align 8, !noalias !4869 %518 = fsub <4 x double> %strided.vec263, %strided.vec266 %519 = fsub <4 x double> %strided.vec264, %strided.vec267 %520 = fmul <4 x double> %519, %broadcast.splat270 %521 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %518, <4 x double> %520) %522 = fmul <4 x double> %broadcast.splat274, %518 %523 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %519, <4 x double> %522) %524 = getelementptr inbounds %"num_complex::Complex", ptr %512, i64 %index261 %interleaved.vec275 = shufflevector <4 x double> %521, <4 x double> %523, <8 x i32> store <8 x double> %interleaved.vec275, ptr %524, align 8, !noalias !4869 %index.next276 = add nuw i64 %index261, 4 %525 = icmp eq i64 %index.next276, 128 br i1 %525, label %bb15.i.i164.i.loopexit.1, label %vector.body260, !llvm.loop !4873 bb15.i.i164.i.loopexit.1: ; preds = %vector.body260 %data.i5.i.i.i.i.i.i.i1441.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %broadcast.splatinsert290 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat291 = shufflevector <4 x double> %broadcast.splatinsert290, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert292 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat293 = shufflevector <4 x double> %broadcast.splatinsert292, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert294 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat295 = shufflevector <4 x double> %broadcast.splatinsert294, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body281 vector.body281: ; preds = %vector.body281, %bb15.i.i164.i.loopexit.1 %index282 = phi i64 [ 0, %bb15.i.i164.i.loopexit.1 ], [ %index.next297, %vector.body281 ] %526 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.2, i64 %index282 %527 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1441.2, i64 %index282 %wide.vec283 = load <8 x double>, ptr %526, align 8, !noalias !4869 %strided.vec284 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %strided.vec285 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %wide.vec286 = load <8 x double>, ptr %527, align 8, !noalias !4869 %strided.vec287 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %strided.vec288 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %528 = fadd <4 x double> %strided.vec284, %strided.vec287 %529 = fadd <4 x double> %strided.vec285, %strided.vec288 %530 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index282 %interleaved.vec289 = shufflevector <4 x double> %528, <4 x double> %529, <8 x i32> store <8 x double> %interleaved.vec289, ptr %530, align 8, !noalias !4869 %531 = fsub <4 x double> %strided.vec284, %strided.vec287 %532 = fsub <4 x double> %strided.vec285, %strided.vec288 %533 = fmul <4 x double> %532, %broadcast.splat291 %534 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat293, <4 x double> %531, <4 x double> %533) %535 = fmul <4 x double> %broadcast.splat295, %531 %536 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat293, <4 x double> %532, <4 x double> %535) %537 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.2, i64 %index282 %interleaved.vec296 = shufflevector <4 x double> %534, <4 x double> %536, <8 x i32> store <8 x double> %interleaved.vec296, ptr %537, align 8, !noalias !4869 %index.next297 = add nuw i64 %index282, 4 %538 = icmp eq i64 %index.next297, 128 br i1 %538, label %bb15.i.i164.i.loopexit.2, label %vector.body281, !llvm.loop !4874 bb15.i.i164.i.loopexit.2: ; preds = %vector.body281 %data.i5.i.i.i.i.i.i.i1441.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %data.i.i.i.i.i.i1445.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %539 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %broadcast.splatinsert311 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.6, i64 0 %broadcast.splat312 = shufflevector <4 x double> %broadcast.splatinsert311, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert313 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.6, i64 0 %broadcast.splat314 = shufflevector <4 x double> %broadcast.splatinsert313, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert315 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.6, i64 0 %broadcast.splat316 = shufflevector <4 x double> %broadcast.splatinsert315, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body302 vector.body302: ; preds = %vector.body302, %bb15.i.i164.i.loopexit.2 %index303 = phi i64 [ 0, %bb15.i.i164.i.loopexit.2 ], [ %index.next318, %vector.body302 ] %540 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.3, i64 %index303 %541 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1441.3, i64 %index303 %wide.vec304 = load <8 x double>, ptr %540, align 8, !noalias !4869 %strided.vec305 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %strided.vec306 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %wide.vec307 = load <8 x double>, ptr %541, align 8, !noalias !4869 %strided.vec308 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %strided.vec309 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %542 = fadd <4 x double> %strided.vec305, %strided.vec308 %543 = fadd <4 x double> %strided.vec306, %strided.vec309 %544 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1445.3, i64 %index303 %interleaved.vec310 = shufflevector <4 x double> %542, <4 x double> %543, <8 x i32> store <8 x double> %interleaved.vec310, ptr %544, align 8, !noalias !4869 %545 = fsub <4 x double> %strided.vec305, %strided.vec308 %546 = fsub <4 x double> %strided.vec306, %strided.vec309 %547 = fmul <4 x double> %546, %broadcast.splat312 %548 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat314, <4 x double> %545, <4 x double> %547) %549 = fmul <4 x double> %broadcast.splat316, %545 %550 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat314, <4 x double> %546, <4 x double> %549) %551 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %index303 %interleaved.vec317 = shufflevector <4 x double> %548, <4 x double> %550, <8 x i32> store <8 x double> %interleaved.vec317, ptr %551, align 8, !noalias !4869 %index.next318 = add nuw i64 %index303, 4 %552 = icmp eq i64 %index.next318, 128 br i1 %552, label %vector.ph321, label %vector.body302, !llvm.loop !4875 vector.ph321: ; preds = %vector.body302 %broadcast.splatinsert332 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat333 = shufflevector <4 x double> %broadcast.splatinsert332, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert334 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat335 = shufflevector <4 x double> %broadcast.splatinsert334, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert336 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat337 = shufflevector <4 x double> %broadcast.splatinsert336, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body323 vector.body323: ; preds = %vector.body323, %vector.ph321 %index324 = phi i64 [ 0, %vector.ph321 ], [ %index.next339, %vector.body323 ] %553 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index324 %554 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index324 %wide.vec325 = load <8 x double>, ptr %553, align 8, !noalias !4835 %strided.vec326 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %strided.vec327 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %wide.vec328 = load <8 x double>, ptr %554, align 8, !noalias !4835 %strided.vec329 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %strided.vec330 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %555 = fadd <4 x double> %strided.vec326, %strided.vec329 %556 = fadd <4 x double> %strided.vec327, %strided.vec330 %557 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index324 %interleaved.vec331 = shufflevector <4 x double> %555, <4 x double> %556, <8 x i32> store <8 x double> %interleaved.vec331, ptr %557, align 8, !noalias !4835 %558 = fsub <4 x double> %strided.vec326, %strided.vec329 %559 = fsub <4 x double> %strided.vec327, %strided.vec330 %560 = fmul <4 x double> %559, %broadcast.splat333 %561 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat335, <4 x double> %558, <4 x double> %560) %562 = fmul <4 x double> %broadcast.splat337, %558 %563 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat335, <4 x double> %559, <4 x double> %562) %564 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1272.2, i64 %index324 %interleaved.vec338 = shufflevector <4 x double> %561, <4 x double> %563, <8 x i32> store <8 x double> %interleaved.vec338, ptr %564, align 8, !noalias !4835 %index.next339 = add nuw i64 %index324, 4 %565 = icmp eq i64 %index.next339, 256 br i1 %565, label %vector.ph342, label %vector.body323, !llvm.loop !4876 vector.body365: ; preds = %vector.body344, %vector.body365 %index366 = phi i64 [ %index.next375.1, %vector.body365 ], [ 0, %vector.body344 ] %566 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index366 %567 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index366 %wide.vec367 = load <8 x double>, ptr %566, align 8, !noalias !4835 %strided.vec368 = shufflevector <8 x double> %wide.vec367, <8 x double> poison, <4 x i32> %strided.vec369 = shufflevector <8 x double> %wide.vec367, <8 x double> poison, <4 x i32> %wide.vec370 = load <8 x double>, ptr %567, align 8, !noalias !4835 %strided.vec371 = shufflevector <8 x double> %wide.vec370, <8 x double> poison, <4 x i32> %strided.vec372 = shufflevector <8 x double> %wide.vec370, <8 x double> poison, <4 x i32> %568 = fadd <4 x double> %strided.vec368, %strided.vec371 %569 = fadd <4 x double> %strided.vec369, %strided.vec372 %570 = fsub <4 x double> %strided.vec368, %strided.vec371 %571 = fsub <4 x double> %strided.vec369, %strided.vec372 %572 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index366 %interleaved.vec373 = shufflevector <4 x double> %568, <4 x double> %569, <8 x i32> store <8 x double> %interleaved.vec373, ptr %572, align 8, !noalias !4835 %573 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index366 %interleaved.vec374 = shufflevector <4 x double> %570, <4 x double> %571, <8 x i32> store <8 x double> %interleaved.vec374, ptr %573, align 8, !noalias !4835 %index.next375 = or disjoint i64 %index366, 4 %574 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next375 %575 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index.next375 %wide.vec367.1 = load <8 x double>, ptr %574, align 8, !noalias !4835 %strided.vec368.1 = shufflevector <8 x double> %wide.vec367.1, <8 x double> poison, <4 x i32> %strided.vec369.1 = shufflevector <8 x double> %wide.vec367.1, <8 x double> poison, <4 x i32> %wide.vec370.1 = load <8 x double>, ptr %575, align 8, !noalias !4835 %strided.vec371.1 = shufflevector <8 x double> %wide.vec370.1, <8 x double> poison, <4 x i32> %strided.vec372.1 = shufflevector <8 x double> %wide.vec370.1, <8 x double> poison, <4 x i32> %576 = fadd <4 x double> %strided.vec368.1, %strided.vec371.1 %577 = fadd <4 x double> %strided.vec369.1, %strided.vec372.1 %578 = fsub <4 x double> %strided.vec368.1, %strided.vec371.1 %579 = fsub <4 x double> %strided.vec369.1, %strided.vec372.1 %580 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next375 %interleaved.vec373.1 = shufflevector <4 x double> %576, <4 x double> %577, <8 x i32> store <8 x double> %interleaved.vec373.1, ptr %580, align 8, !noalias !4835 %581 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next375 %interleaved.vec374.1 = shufflevector <4 x double> %578, <4 x double> %579, <8 x i32> store <8 x double> %interleaved.vec374.1, ptr %581, align 8, !noalias !4835 %index.next375.1 = add nuw nsw i64 %index366, 8 %582 = icmp eq i64 %index.next375.1, 512 br i1 %582, label %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit", label %vector.body365, !llvm.loop !4877 vector.ph342: ; preds = %vector.body323 %broadcast.splatinsert353 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat354 = shufflevector <4 x double> %broadcast.splatinsert353, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert355 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat356 = shufflevector <4 x double> %broadcast.splatinsert355, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert357 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat358 = shufflevector <4 x double> %broadcast.splatinsert357, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body344 vector.body344: ; preds = %vector.body344, %vector.ph342 %index345 = phi i64 [ 0, %vector.ph342 ], [ %index.next360, %vector.body344 ] %583 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1263.4, i64 %index345 %584 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1268.4, i64 %index345 %wide.vec346 = load <8 x double>, ptr %583, align 8, !noalias !4835 %strided.vec347 = shufflevector <8 x double> %wide.vec346, <8 x double> poison, <4 x i32> %strided.vec348 = shufflevector <8 x double> %wide.vec346, <8 x double> poison, <4 x i32> %wide.vec349 = load <8 x double>, ptr %584, align 8, !noalias !4835 %strided.vec350 = shufflevector <8 x double> %wide.vec349, <8 x double> poison, <4 x i32> %strided.vec351 = shufflevector <8 x double> %wide.vec349, <8 x double> poison, <4 x i32> %585 = fadd <4 x double> %strided.vec347, %strided.vec350 %586 = fadd <4 x double> %strided.vec348, %strided.vec351 %587 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index345 %interleaved.vec352 = shufflevector <4 x double> %585, <4 x double> %586, <8 x i32> store <8 x double> %interleaved.vec352, ptr %587, align 8, !noalias !4835 %588 = fsub <4 x double> %strided.vec347, %strided.vec350 %589 = fsub <4 x double> %strided.vec348, %strided.vec351 %590 = fmul <4 x double> %589, %broadcast.splat354 %591 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat356, <4 x double> %588, <4 x double> %590) %592 = fmul <4 x double> %broadcast.splat358, %588 %593 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat356, <4 x double> %589, <4 x double> %592) %594 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i1441.2, i64 %index345 %interleaved.vec359 = shufflevector <4 x double> %591, <4 x double> %593, <8 x i32> store <8 x double> %interleaved.vec359, ptr %594, align 8, !noalias !4835 %index.next360 = add nuw i64 %index345, 4 %595 = icmp eq i64 %index.next360, 256 br i1 %595, label %vector.body365, label %vector.body344, !llvm.loop !4878 "_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit": ; preds = %vector.body365 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4835 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb4e6516353ac180eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4879 store i64 512, ptr %n.i.i, align 8, !noalias !4879 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4879 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4879 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4879 store ptr null, ptr %_16.i.i, align 8, !noalias !4879 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4879 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4879 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4879 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4879 store ptr null, ptr %_24.i.i, align 8, !noalias !4879 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4879 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4879 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4879 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4879 store ptr null, ptr %_32.i.i, align 8, !noalias !4879 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4879 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4879 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4879 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1a2a14d20a8b35a1E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4879 store ptr null, ptr %_40.i.i, align 8, !noalias !4879 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1a2a14d20a8b35a1E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4879 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1a2a14d20a8b35a1E.exit.i" %iter.i.i.i.sroa.8.058.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1a2a14d20a8b35a1E.exit.i" ], [ %12, %bb9.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.sroa.8.058.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.058.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.058.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !4879 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !4879 %4 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !4879 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !4879 %6 = or disjoint i64 %iter.i.i.i.sroa.8.058.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4879 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4879 %7 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !4879 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !4879 %9 = or disjoint i64 %iter.i.i.i.sroa.8.058.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4879 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4879 %10 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !4879 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !4879 %12 = add nuw nsw i64 %iter.i.i.i.sroa.8.058.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4879 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4879 %13 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !4879 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !4879 %exitcond.not.i.3 = icmp eq i64 %12, 128 br i1 %exitcond.not.i.3, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i", label %bb9.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i": ; preds = %bb9.i.i.i.i %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 tail call void @llvm.experimental.noalias.scope.decl(metadata !4884) tail call void @llvm.experimental.noalias.scope.decl(metadata !4887) tail call void @llvm.experimental.noalias.scope.decl(metadata !4889) %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 144 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 176 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 208 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 240 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i br i1 %_2.i.i.i.i.i, label %bb46.i.i, label %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i" %_2.i.i.i.i.i = phi i1 [ false, %bb44.loopexit.i.i ], [ true, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i" ] %iter.sroa.208.05943.i.i = phi i64 [ 1, %bb44.loopexit.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05943.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05943.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %33 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %35 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %36 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %37 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %38 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %39 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %40 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %41 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05943.i.i, 4 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %45, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %46 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %47, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %48, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %49 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %50, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %51, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %52 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %53, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %54, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %55 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %56, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %57, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %58 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %59, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %60, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %61 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %62, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %63, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %64 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %65, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %66, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %67 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %68, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %69, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %70 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %71 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %71, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %72, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %73 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %74 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %74, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %75 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %75, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %76 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %77 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %77, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %78 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %78, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %79 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %80 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %80, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %81 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %81, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %82 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %83 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %83, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %84 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %84, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %85 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %86 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %86, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %87 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %87, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %88 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %89 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %89, align 8, !alias.scope !4889, !noalias !4891, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %90 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %91 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> zeroinitializer %92 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %93 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> zeroinitializer %94 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> zeroinitializer %96 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %97 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %99 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> zeroinitializer %102 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %103 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %61, <4 x double> poison, <4 x i32> zeroinitializer %110 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %111 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> zeroinitializer %112 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %113 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.05770.i.i = phi i64 [ 0, %bb46.i.i ], [ %120, %bb98.i.i ] %120 = add nuw nsw i64 %iter10.sroa.218.05770.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %33, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %34, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %36, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %35, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %40, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %39, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %41, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %38, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %42, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter10.sroa.218.05770.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %_220.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %121 = shufflevector <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %91, %121 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> %122) #23 %_222.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %124 = shufflevector <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %125 = fmul <4 x double> %93, %124 %126 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> %125) #23 %_224.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %127 = shufflevector <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %128 = fmul <4 x double> %95, %127 %129 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> %128) #23 %_226.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %130 = shufflevector <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %131 = fmul <4 x double> %97, %130 %132 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> %131) #23 %_228.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %133 = shufflevector <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %99, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> %134) #23 %_230.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %136 = shufflevector <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %101, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> %137) #23 %_232.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %139 = shufflevector <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %103, %139 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> %140) #23 %_234.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %142 = shufflevector <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %105, %142 %144 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> %143) #23 %_236.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %145 = shufflevector <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %146 = fmul <4 x double> %107, %145 %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> %146) #23 %_238.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %148 = shufflevector <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %149 = fmul <4 x double> %109, %148 %150 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> %149) #23 %_240.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %151 = shufflevector <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %152 = fmul <4 x double> %111, %151 %153 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> %152) #23 %_242.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %154 = shufflevector <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %155 = fmul <4 x double> %113, %154 %156 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %112, <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> %155) #23 %_244.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %157 = shufflevector <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %158 = fmul <4 x double> %115, %157 %159 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %114, <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> %158) #23 %_246.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %160 = shufflevector <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %117, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> %161) #23 %_248.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !4887, !noalias !4892 %163 = shufflevector <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %119, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> %164) #23 %166 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %144 %167 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %144 %168 = fadd <4 x double> %132, %156 %169 = fsub <4 x double> %132, %156 %170 = fadd <4 x double> %126, %150 %171 = fsub <4 x double> %126, %150 %172 = fadd <4 x double> %138, %162 %173 = fsub <4 x double> %138, %162 %174 = fadd <4 x double> %123, %147 %175 = fsub <4 x double> %123, %147 %176 = fadd <4 x double> %135, %159 %177 = fsub <4 x double> %135, %159 %178 = fadd <4 x double> %129, %153 %179 = fsub <4 x double> %129, %153 %180 = fadd <4 x double> %141, %165 %181 = fsub <4 x double> %141, %165 %182 = bitcast <4 x double> %169 to <4 x i64> %183 = bitcast <4 x double> %173 to <4 x i64> %184 = bitcast <4 x double> %177 to <4 x i64> %185 = bitcast <4 x double> %181 to <4 x i64> %186 = xor <4 x i64> %182, %187 = bitcast <4 x i64> %186 to <4 x double> %188 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> %189 = xor <4 x i64> %183, %190 = bitcast <4 x i64> %189 to <4 x double> %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %192 = xor <4 x i64> %184, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = xor <4 x i64> %185, %196 = bitcast <4 x i64> %195 to <4 x double> %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = fadd <4 x double> %166, %168 %199 = fsub <4 x double> %167, %188 %200 = fsub <4 x double> %166, %168 %201 = fadd <4 x double> %167, %188 %202 = fadd <4 x double> %170, %172 %203 = fsub <4 x double> %171, %191 %204 = fsub <4 x double> %170, %172 %205 = fadd <4 x double> %171, %191 %206 = fadd <4 x double> %174, %176 %207 = fsub <4 x double> %175, %194 %208 = fsub <4 x double> %174, %176 %209 = fadd <4 x double> %175, %194 %210 = fadd <4 x double> %178, %180 %211 = fsub <4 x double> %179, %197 %212 = fsub <4 x double> %178, %180 %213 = fadd <4 x double> %179, %197 %214 = bitcast <4 x double> %203 to <4 x i64> %215 = xor <4 x i64> %214, %216 = bitcast <4 x i64> %215 to <4 x double> %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = fadd <4 x double> %203, %217 %219 = fmul <4 x double> %218, %220 = bitcast <4 x double> %204 to <4 x i64> %221 = xor <4 x i64> %220, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = bitcast <4 x double> %205 to <4 x i64> %225 = xor <4 x i64> %224, %226 = bitcast <4 x i64> %225 to <4 x double> %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = fadd <4 x double> %205, %227 %229 = fmul <4 x double> %228, %230 = fadd <4 x double> %198, %202 %231 = fadd <4 x double> %199, %219 %232 = fsub <4 x double> %200, %223 %233 = fsub <4 x double> %201, %229 %234 = fsub <4 x double> %198, %202 %235 = fsub <4 x double> %199, %219 %236 = fadd <4 x double> %200, %223 %237 = fadd <4 x double> %201, %229 %238 = bitcast <4 x double> %211 to <4 x i64> %239 = xor <4 x i64> %238, %240 = bitcast <4 x i64> %239 to <4 x double> %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = fadd <4 x double> %211, %241 %243 = fmul <4 x double> %242, %244 = bitcast <4 x double> %212 to <4 x i64> %245 = xor <4 x i64> %244, %246 = bitcast <4 x i64> %245 to <4 x double> %247 = shufflevector <4 x double> %246, <4 x double> poison, <4 x i32> %248 = bitcast <4 x double> %213 to <4 x i64> %249 = xor <4 x i64> %248, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fadd <4 x double> %213, %251 %253 = fmul <4 x double> %252, %254 = fadd <4 x double> %206, %210 %255 = fadd <4 x double> %207, %243 %256 = fsub <4 x double> %208, %247 %257 = fsub <4 x double> %209, %253 %258 = fsub <4 x double> %206, %210 %259 = fsub <4 x double> %207, %243 %260 = fadd <4 x double> %208, %247 %261 = fadd <4 x double> %209, %253 %262 = fadd <4 x double> %230, %254 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %263 = fsub <4 x double> %230, %254 store <4 x double> %263, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %264 = fmul <4 x double> %255, %265 = shufflevector <4 x double> %264, <4 x double> poison, <4 x i32> %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %255, <4 x double> %265) #23 %267 = fadd <4 x double> %266, %231 store <4 x double> %267, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %268 = fsub <4 x double> %231, %266 store <4 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %269 = bitcast <4 x double> %256 to <4 x i64> %270 = xor <4 x i64> %269, %271 = bitcast <4 x i64> %270 to <4 x double> %272 = shufflevector <4 x double> %271, <4 x double> poison, <4 x i32> %273 = fadd <4 x double> %256, %272 %274 = fmul <4 x double> %273, %275 = fadd <4 x double> %232, %274 store <4 x double> %275, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %276 = fsub <4 x double> %232, %274 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %277 = fmul <4 x double> %257, %278 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> %279 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %257, <4 x double> %278) #23 %280 = bitcast <4 x double> %258 to <4 x i64> %281 = xor <4 x i64> %280, %282 = bitcast <4 x i64> %281 to <4 x double> %283 = shufflevector <4 x double> %282, <4 x double> poison, <4 x i32> %284 = fmul <4 x double> %259, %285 = shufflevector <4 x double> %284, <4 x double> poison, <4 x i32> %286 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %259, <4 x double> %285) #23 %.sink.i18.i = fadd <4 x double> %234, %283 %.sink6030.i.i = fsub <4 x double> %234, %283 %.sink6031.i.i = fsub <4 x double> %233, %279 %.sink6032.i.i = fadd <4 x double> %279, %233 store <4 x double> %.sink6032.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 store <4 x double> %.sink6031.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 store <4 x double> %.sink6030.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 store <4 x double> %.sink.i18.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %287 = fsub <4 x double> %235, %286 store <4 x double> %287, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %288 = fadd <4 x double> %286, %235 store <4 x double> %288, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %289 = bitcast <4 x double> %260 to <4 x i64> %290 = xor <4 x i64> %289, %291 = bitcast <4 x i64> %290 to <4 x double> %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = fmul <4 x double> %261, %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %261, <4 x double> %294) #23 %.pn6038.in.i.i = fadd <4 x double> %260, %292 %.pn6038.i.i = fmul <4 x double> %.pn6038.in.i.i, %.sink6033.i.i = fadd <4 x double> %236, %.pn6038.i.i %.sink6034.i.i = fsub <4 x double> %236, %.pn6038.i.i store <4 x double> %.sink6034.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 store <4 x double> %.sink6033.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %296 = fsub <4 x double> %237, %295 store <4 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %297 = fadd <4 x double> %237, %295 store <4 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4884, !noalias !4893 %exitcond.not.i.i = icmp eq i64 %120, 8 br i1 %exitcond.not.i.i, label %bb44.loopexit.i.i, label %bb98.i.i _ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i: ; preds = %bb44.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4894) tail call void @llvm.experimental.noalias.scope.decl(metadata !4897) tail call void @llvm.experimental.noalias.scope.decl(metadata !4899) %298 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %299 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %300 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %301 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 144 %308 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 176 %309 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %310 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 208 %311 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 240 %312 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %313 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %314 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %315 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %316 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %317 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %318 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %319 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %320 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %321 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %322 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 144 %323 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 176 %324 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %325 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 208 %326 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 240 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i %iter.sroa.218.05279.i.i = phi i64 [ %327, %bb39.i.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i ] %327 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %300, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %299, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %301, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %298, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30.i = getelementptr inbounds %"fft_simd::c64x2", ptr %307, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32.i = getelementptr inbounds %"fft_simd::c64x2", ptr %308, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34.i = getelementptr inbounds %"fft_simd::c64x2", ptr %310, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i35.i = getelementptr inbounds %"fft_simd::c64x2", ptr %309, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i36.i = getelementptr inbounds %"fft_simd::c64x2", ptr %311, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %315, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %314, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %316, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %313, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %318, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %317, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %319, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %312, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %322, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %321, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %323, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %320, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %325, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %324, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i37.i = getelementptr inbounds %"fft_simd::c64x2", ptr %326, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !4899, !noalias !4901 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i37.i, align 8, !alias.scope !4899, !noalias !4901 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4897, !noalias !4902 %328 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %328, align 8, !alias.scope !4897, !noalias !4902 %329 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %329, align 8, !alias.scope !4897, !noalias !4902 %330 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %330, align 8, !alias.scope !4897, !noalias !4902 %331 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %331, align 8, !alias.scope !4897, !noalias !4902 %332 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %332, align 8, !alias.scope !4897, !noalias !4902 %333 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %333, align 8, !alias.scope !4897, !noalias !4902 %334 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %334, align 8, !alias.scope !4897, !noalias !4902 %335 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %335, align 8, !alias.scope !4897, !noalias !4902 %336 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %336, align 8, !alias.scope !4897, !noalias !4902 %337 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %337, align 8, !alias.scope !4897, !noalias !4902 %338 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %338, align 8, !alias.scope !4897, !noalias !4902 %339 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %339, align 8, !alias.scope !4897, !noalias !4902 %340 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %340, align 8, !alias.scope !4897, !noalias !4902 %341 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %341, align 8, !alias.scope !4897, !noalias !4902 %342 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %342, align 8, !alias.scope !4897, !noalias !4902 %343 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %344 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %345 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> %346 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %347 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %348 = fmul <4 x double> %347, %345 %349 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %346, <4 x double> %344, <4 x double> %348) #23 %350 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %351 = shufflevector <4 x double> %350, <4 x double> poison, <4 x i32> %352 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %353 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %354 = fmul <4 x double> %353, %351 %355 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %352, <4 x double> %350, <4 x double> %354) #23 %356 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %357 = shufflevector <4 x double> %356, <4 x double> poison, <4 x i32> %358 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %359 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %360 = fmul <4 x double> %359, %357 %361 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %358, <4 x double> %356, <4 x double> %360) #23 %362 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %363 = shufflevector <4 x double> %362, <4 x double> poison, <4 x i32> %364 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %365 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %366 = fmul <4 x double> %365, %363 %367 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %364, <4 x double> %362, <4 x double> %366) #23 %368 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %369 = shufflevector <4 x double> %368, <4 x double> poison, <4 x i32> %370 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %371 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %372 = fmul <4 x double> %371, %369 %373 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %368, <4 x double> %372) #23 %374 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %375 = shufflevector <4 x double> %374, <4 x double> poison, <4 x i32> %376 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %377 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %378 = fmul <4 x double> %377, %375 %379 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %376, <4 x double> %374, <4 x double> %378) #23 %380 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %381 = shufflevector <4 x double> %380, <4 x double> poison, <4 x i32> %382 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %383 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %384 = fmul <4 x double> %383, %381 %385 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %382, <4 x double> %380, <4 x double> %384) #23 %386 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %387 = shufflevector <4 x double> %386, <4 x double> poison, <4 x i32> %388 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %389 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %390 = fmul <4 x double> %389, %387 %391 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %388, <4 x double> %386, <4 x double> %390) #23 %392 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %393 = shufflevector <4 x double> %392, <4 x double> poison, <4 x i32> %394 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %395 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %396 = fmul <4 x double> %395, %393 %397 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %394, <4 x double> %392, <4 x double> %396) #23 %398 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %399 = shufflevector <4 x double> %398, <4 x double> poison, <4 x i32> %400 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %401 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %402 = fmul <4 x double> %401, %399 %403 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %400, <4 x double> %398, <4 x double> %402) #23 %404 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %405 = shufflevector <4 x double> %404, <4 x double> poison, <4 x i32> %406 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %407 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %408 = fmul <4 x double> %407, %405 %409 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %406, <4 x double> %404, <4 x double> %408) #23 %410 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %411 = shufflevector <4 x double> %410, <4 x double> poison, <4 x i32> %412 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %413 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %414 = fmul <4 x double> %413, %411 %415 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %412, <4 x double> %410, <4 x double> %414) #23 %416 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %417 = shufflevector <4 x double> %416, <4 x double> poison, <4 x i32> %418 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %419 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %420 = fmul <4 x double> %419, %417 %421 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %418, <4 x double> %416, <4 x double> %420) #23 %422 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %423 = shufflevector <4 x double> %422, <4 x double> poison, <4 x i32> %424 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %425 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %426 = fmul <4 x double> %425, %423 %427 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %424, <4 x double> %422, <4 x double> %426) #23 %428 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %429 = shufflevector <4 x double> %428, <4 x double> poison, <4 x i32> %430 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %431 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %432 = fmul <4 x double> %431, %429 %433 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %430, <4 x double> %428, <4 x double> %432) #23 %434 = fadd <4 x double> %343, %391 %435 = fsub <4 x double> %343, %391 %436 = fadd <4 x double> %367, %415 %437 = fsub <4 x double> %367, %415 %438 = fadd <4 x double> %355, %403 %439 = fsub <4 x double> %355, %403 %440 = fadd <4 x double> %379, %427 %441 = fsub <4 x double> %379, %427 %442 = fadd <4 x double> %349, %397 %443 = fsub <4 x double> %349, %397 %444 = fadd <4 x double> %373, %421 %445 = fsub <4 x double> %373, %421 %446 = fadd <4 x double> %361, %409 %447 = fsub <4 x double> %361, %409 %448 = fadd <4 x double> %385, %433 %449 = fsub <4 x double> %385, %433 %450 = bitcast <4 x double> %437 to <4 x i64> %451 = bitcast <4 x double> %441 to <4 x i64> %452 = bitcast <4 x double> %445 to <4 x i64> %453 = bitcast <4 x double> %449 to <4 x i64> %454 = xor <4 x i64> %450, %455 = bitcast <4 x i64> %454 to <4 x double> %456 = shufflevector <4 x double> %455, <4 x double> poison, <4 x i32> %457 = xor <4 x i64> %451, %458 = bitcast <4 x i64> %457 to <4 x double> %459 = shufflevector <4 x double> %458, <4 x double> poison, <4 x i32> %460 = xor <4 x i64> %452, %461 = bitcast <4 x i64> %460 to <4 x double> %462 = shufflevector <4 x double> %461, <4 x double> poison, <4 x i32> %463 = xor <4 x i64> %453, %464 = bitcast <4 x i64> %463 to <4 x double> %465 = shufflevector <4 x double> %464, <4 x double> poison, <4 x i32> %466 = fadd <4 x double> %434, %436 %467 = fsub <4 x double> %435, %456 %468 = fsub <4 x double> %434, %436 %469 = fadd <4 x double> %435, %456 %470 = fadd <4 x double> %438, %440 %471 = fsub <4 x double> %439, %459 %472 = fsub <4 x double> %438, %440 %473 = fadd <4 x double> %439, %459 %474 = fadd <4 x double> %442, %444 %475 = fsub <4 x double> %443, %462 %476 = fsub <4 x double> %442, %444 %477 = fadd <4 x double> %443, %462 %478 = fadd <4 x double> %446, %448 %479 = fsub <4 x double> %447, %465 %480 = fsub <4 x double> %446, %448 %481 = fadd <4 x double> %447, %465 %482 = bitcast <4 x double> %471 to <4 x i64> %483 = xor <4 x i64> %482, %484 = bitcast <4 x i64> %483 to <4 x double> %485 = shufflevector <4 x double> %484, <4 x double> poison, <4 x i32> %486 = fadd <4 x double> %471, %485 %487 = fmul <4 x double> %486, %488 = bitcast <4 x double> %472 to <4 x i64> %489 = xor <4 x i64> %488, %490 = bitcast <4 x i64> %489 to <4 x double> %491 = shufflevector <4 x double> %490, <4 x double> poison, <4 x i32> %492 = bitcast <4 x double> %473 to <4 x i64> %493 = xor <4 x i64> %492, %494 = bitcast <4 x i64> %493 to <4 x double> %495 = shufflevector <4 x double> %494, <4 x double> poison, <4 x i32> %496 = fadd <4 x double> %473, %495 %497 = fmul <4 x double> %496, %498 = fadd <4 x double> %466, %470 %499 = fadd <4 x double> %467, %487 %500 = fsub <4 x double> %468, %491 %501 = fsub <4 x double> %469, %497 %502 = fsub <4 x double> %466, %470 %503 = fsub <4 x double> %467, %487 %504 = fadd <4 x double> %468, %491 %505 = fadd <4 x double> %469, %497 %506 = bitcast <4 x double> %479 to <4 x i64> %507 = xor <4 x i64> %506, %508 = bitcast <4 x i64> %507 to <4 x double> %509 = shufflevector <4 x double> %508, <4 x double> poison, <4 x i32> %510 = fadd <4 x double> %479, %509 %511 = fmul <4 x double> %510, %512 = bitcast <4 x double> %480 to <4 x i64> %513 = xor <4 x i64> %512, %514 = bitcast <4 x i64> %513 to <4 x double> %515 = shufflevector <4 x double> %514, <4 x double> poison, <4 x i32> %516 = bitcast <4 x double> %481 to <4 x i64> %517 = xor <4 x i64> %516, %518 = bitcast <4 x i64> %517 to <4 x double> %519 = shufflevector <4 x double> %518, <4 x double> poison, <4 x i32> %520 = fadd <4 x double> %481, %519 %521 = fmul <4 x double> %520, %522 = fadd <4 x double> %474, %478 %523 = fadd <4 x double> %475, %511 %524 = fsub <4 x double> %476, %515 %525 = fsub <4 x double> %477, %521 %526 = fsub <4 x double> %474, %478 %527 = fsub <4 x double> %475, %511 %528 = fadd <4 x double> %476, %515 %529 = fadd <4 x double> %477, %521 %530 = fadd <4 x double> %498, %522 store <4 x double> %530, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4894, !noalias !4903 %531 = fsub <4 x double> %498, %522 store <4 x double> %531, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !4894, !noalias !4903 %532 = fmul <4 x double> %523, %533 = shufflevector <4 x double> %532, <4 x double> poison, <4 x i32> %534 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %523, <4 x double> %533) #23 %535 = fadd <4 x double> %534, %499 store <4 x double> %535, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4894, !noalias !4903 %536 = fsub <4 x double> %499, %534 store <4 x double> %536, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30.i, align 8, !alias.scope !4894, !noalias !4903 %537 = bitcast <4 x double> %524 to <4 x i64> %538 = xor <4 x i64> %537, %539 = bitcast <4 x i64> %538 to <4 x double> %540 = shufflevector <4 x double> %539, <4 x double> poison, <4 x i32> %541 = fadd <4 x double> %524, %540 %542 = fmul <4 x double> %541, %543 = fadd <4 x double> %500, %542 store <4 x double> %543, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !4894, !noalias !4903 %544 = fsub <4 x double> %500, %542 store <4 x double> %544, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31.i, align 8, !alias.scope !4894, !noalias !4903 %545 = fmul <4 x double> %525, %546 = shufflevector <4 x double> %545, <4 x double> poison, <4 x i32> %547 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %525, <4 x double> %546) #23 %548 = bitcast <4 x double> %526 to <4 x i64> %549 = xor <4 x i64> %548, %550 = bitcast <4 x i64> %549 to <4 x double> %551 = shufflevector <4 x double> %550, <4 x double> poison, <4 x i32> %552 = fmul <4 x double> %527, %553 = shufflevector <4 x double> %552, <4 x double> poison, <4 x i32> %554 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %527, <4 x double> %553) #23 %.sink.i38.i = fadd <4 x double> %502, %551 %.sink5280.i.i = fsub <4 x double> %502, %551 %.sink5281.i.i = fsub <4 x double> %501, %547 %.sink5282.i.i = fadd <4 x double> %547, %501 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !4894, !noalias !4903 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32.i, align 8, !alias.scope !4894, !noalias !4903 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !4894, !noalias !4903 store <4 x double> %.sink.i38.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i, align 8, !alias.scope !4894, !noalias !4903 %555 = fsub <4 x double> %503, %554 store <4 x double> %555, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !4894, !noalias !4903 %556 = fadd <4 x double> %554, %503 store <4 x double> %556, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34.i, align 8, !alias.scope !4894, !noalias !4903 %557 = bitcast <4 x double> %528 to <4 x i64> %558 = xor <4 x i64> %557, %559 = bitcast <4 x i64> %558 to <4 x double> %560 = shufflevector <4 x double> %559, <4 x double> poison, <4 x i32> %561 = fmul <4 x double> %529, %562 = shufflevector <4 x double> %561, <4 x double> poison, <4 x i32> %563 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %529, <4 x double> %562) #23 %.pn5288.in.i.i = fadd <4 x double> %528, %560 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %504, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %504, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !4894, !noalias !4903 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i35.i, align 8, !alias.scope !4894, !noalias !4903 %564 = fsub <4 x double> %505, %563 store <4 x double> %564, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !4894, !noalias !4903 %565 = fadd <4 x double> %505, %563 store <4 x double> %565, ptr %_3.i.i.i.i.i.i.i.i.i.i.i36.i, align 8, !alias.scope !4894, !noalias !4903 %exitcond.not.i39.i = icmp eq i64 %327, 16 br i1 %exitcond.not.i39.i, label %_ZN4pulp3x862V39vectorize6__impl17h13e7a391fa6a78beE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17h13e7a391fa6a78beE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4879 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb50a87dc61c000dfE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4904 store i64 32, ptr %n.i, align 8, !noalias !4904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4904 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4904 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4904 store ptr null, ptr %_16.i, align 8, !noalias !4904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4904 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4904 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4904 store ptr null, ptr %_24.i, align 8, !noalias !4904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4904 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4904 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4904 store ptr null, ptr %_32.i, align 8, !noalias !4904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4904 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4904 store i64 %w.1, ptr %_34.i, align 8, !noalias !4904 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %bb9.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4904 store ptr null, ptr %_40.i, align 8, !noalias !4904 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4904 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4904 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !4904 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %1 = fadd <4 x double> %strided.vec, %strided.vec3 %2 = fadd <4 x double> %strided.vec1, %strided.vec4 %3 = fsub <4 x double> %strided.vec, %strided.vec3 %4 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %1, <4 x double> %2, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4904 %interleaved.vec5 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !4904 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %5, align 8, !noalias !4904 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %6, align 8, !noalias !4904 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %8 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %9 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %5, align 8, !noalias !4904 %interleaved.vec5.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %6, align 8, !noalias !4904 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %11, align 8, !noalias !4904 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %12, align 8, !noalias !4904 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %13 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %14 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %15 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %16 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %interleaved.vec.2 = shufflevector <4 x double> %13, <4 x double> %14, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %11, align 8, !noalias !4904 %interleaved.vec5.2 = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %12, align 8, !noalias !4904 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %17, align 8, !noalias !4904 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %18, align 8, !noalias !4904 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %19 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %20 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %21 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %22 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %interleaved.vec.3 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %17, align 8, !noalias !4904 %interleaved.vec5.3 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %18, align 8, !noalias !4904 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 br label %bb24.i.i.i68 bb24.i.i.i68: ; preds = %bb9.i.i.i.preheader, %bb24.i.i.i68 %_2.i.i.i260 = phi i1 [ true, %bb9.i.i.i.preheader ], [ false, %bb24.i.i.i68 ] %iter.i.i.i22.sroa.60.070 = phi i64 [ 0, %bb9.i.i.i.preheader ], [ 1, %bb24.i.i.i68 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i22.sroa.60.070, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i22.sroa.60.070, 4 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i79 = load double, ptr %26, align 8, !noalias !4904, !noundef !3 %27 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i80 = load double, ptr %27, align 8, !noalias !4904, !noundef !3 %28 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i81 = load double, ptr %28, align 8, !noalias !4904, !noundef !3 %29 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i82 = load double, ptr %29, align 8, !noalias !4904, !noundef !3 %30 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i83 = load double, ptr %30, align 8, !noalias !4904, !noundef !3 %31 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i84 = load double, ptr %31, align 8, !noalias !4904, !noundef !3 %32 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %33 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4 %34 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12 %_6.i39.i.i.i121 = fneg double %w1.1.i.i.i80 %_6.i36.i.i.i126 = fneg double %w2.1.i.i.i82 %_6.i.i.i.i131 = fneg double %w3.1.i.i.i84 %a.0.i.i.i117 = load double, ptr %data.i.i.i.i.i.i, align 8, !noalias !4904, !noundef !3 %35 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i, i64 8 %a.1.i.i.i118 = load double, ptr %35, align 8, !noalias !4904, !noundef !3 %_84.0.i.i.i119 = load double, ptr %33, align 8, !noalias !4904, !noundef !3 %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4, i32 1 %_84.1.i.i.i120 = load double, ptr %36, align 8, !noalias !4904, !noundef !3 %b.i40.i.i.i122 = fmul double %_84.1.i.i.i120, %_6.i39.i.i.i121 %37 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119, double %b.i40.i.i.i122) %b1.i41.i.i.i123 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119 %38 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120, double %b1.i41.i.i.i123) %_86.0.i.i.i124 = load double, ptr %32, align 8, !noalias !4904, !noundef !3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8, i32 1 %_86.1.i.i.i125 = load double, ptr %39, align 8, !noalias !4904, !noundef !3 %b.i37.i.i.i127 = fmul double %_86.1.i.i.i125, %_6.i36.i.i.i126 %40 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124, double %b.i37.i.i.i127) %b1.i38.i.i.i128 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124 %41 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125, double %b1.i38.i.i.i128) %_88.0.i.i.i129 = load double, ptr %34, align 8, !noalias !4904, !noundef !3 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12, i32 1 %_88.1.i.i.i130 = load double, ptr %42, align 8, !noalias !4904, !noundef !3 %b.i35.i.i.i132 = fmul double %_88.1.i.i.i130, %_6.i.i.i.i131 %43 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129, double %b.i35.i.i.i132) %b1.i.i.i.i133 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129 %44 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130, double %b1.i.i.i.i133) %_0.i.i364 = fadd double %a.0.i.i.i117, %40 %_0.i3.i365 = fadd double %a.1.i.i.i118, %41 %_0.i.i366 = fsub double %a.0.i.i.i117, %40 %_0.i3.i367 = fsub double %a.1.i.i.i118, %41 %_0.i.i368 = fadd double %37, %43 %_0.i3.i369 = fadd double %38, %44 %_0.i.i370 = fsub double %37, %43 %_0.i3.i371 = fsub double %38, %44 %_0.i.i372 = fadd double %_0.i.i364, %_0.i.i368 %_0.i3.i373 = fadd double %_0.i3.i365, %_0.i3.i369 store double %_0.i.i372, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4904 %45 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i373, ptr %45, align 8, !noalias !4904 %_0.i.i374 = fadd double %_0.i.i366, %_0.i3.i371 %_0.i3.i375 = fsub double %_0.i3.i367, %_0.i.i370 store double %_0.i.i374, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4904 %46 = getelementptr inbounds i8, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i375, ptr %46, align 8, !noalias !4904 %_0.i.i376 = fsub double %_0.i.i364, %_0.i.i368 %_0.i3.i377 = fsub double %_0.i3.i365, %_0.i3.i369 store double %_0.i.i376, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4904 %47 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i377, ptr %47, align 8, !noalias !4904 %_0.i.i378 = fsub double %_0.i.i366, %_0.i3.i371 %_0.i3.i379 = fadd double %_0.i3.i367, %_0.i.i370 store double %_0.i.i378, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4904 %48 = getelementptr inbounds i8, ptr %data.i.i.i.i.i.i.i.i, i64 8 store double %_0.i3.i379, ptr %48, align 8, !noalias !4904 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9 %_3.i.i.i.i356.1 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13 %a.0.i.i.i117.1 = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4904, !noundef !3 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1, i32 1 %a.1.i.i.i118.1 = load double, ptr %49, align 8, !noalias !4904, !noundef !3 %_84.0.i.i.i119.1 = load double, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !noalias !4904, !noundef !3 %50 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5, i32 1 %_84.1.i.i.i120.1 = load double, ptr %50, align 8, !noalias !4904, !noundef !3 %b.i40.i.i.i122.1 = fmul double %_84.1.i.i.i120.1, %_6.i39.i.i.i121 %51 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119.1, double %b.i40.i.i.i122.1) %b1.i41.i.i.i123.1 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119.1 %52 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120.1, double %b1.i41.i.i.i123.1) %_86.0.i.i.i124.1 = load double, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !4904, !noundef !3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9, i32 1 %_86.1.i.i.i125.1 = load double, ptr %53, align 8, !noalias !4904, !noundef !3 %b.i37.i.i.i127.1 = fmul double %_86.1.i.i.i125.1, %_6.i36.i.i.i126 %54 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124.1, double %b.i37.i.i.i127.1) %b1.i38.i.i.i128.1 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124.1 %55 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125.1, double %b1.i38.i.i.i128.1) %_88.0.i.i.i129.1 = load double, ptr %_3.i.i.i.i356.1, align 8, !noalias !4904, !noundef !3 %56 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13, i32 1 %_88.1.i.i.i130.1 = load double, ptr %56, align 8, !noalias !4904, !noundef !3 %b.i35.i.i.i132.1 = fmul double %_88.1.i.i.i130.1, %_6.i.i.i.i131 %57 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129.1, double %b.i35.i.i.i132.1) %b1.i.i.i.i133.1 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129.1 %58 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130.1, double %b1.i.i.i.i133.1) %_0.i.i364.1 = fadd double %a.0.i.i.i117.1, %54 %_0.i3.i365.1 = fadd double %a.1.i.i.i118.1, %55 %_0.i.i366.1 = fsub double %a.0.i.i.i117.1, %54 %_0.i3.i367.1 = fsub double %a.1.i.i.i118.1, %55 %_0.i.i368.1 = fadd double %51, %57 %_0.i3.i369.1 = fadd double %52, %58 %_0.i.i370.1 = fsub double %51, %57 %_0.i3.i371.1 = fsub double %52, %58 %_0.i.i372.1 = fadd double %_0.i.i364.1, %_0.i.i368.1 %_0.i3.i373.1 = fadd double %_0.i3.i365.1, %_0.i3.i369.1 store double %_0.i.i372.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4904 %59 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i373.1, ptr %59, align 8, !noalias !4904 %_0.i.i374.1 = fadd double %_0.i.i366.1, %_0.i3.i371.1 %_0.i3.i375.1 = fsub double %_0.i3.i367.1, %_0.i.i370.1 store double %_0.i.i374.1, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4904 %60 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i375.1, ptr %60, align 8, !noalias !4904 %_0.i.i376.1 = fsub double %_0.i.i364.1, %_0.i.i368.1 %_0.i3.i377.1 = fsub double %_0.i3.i365.1, %_0.i3.i369.1 store double %_0.i.i376.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4904 %61 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i377.1, ptr %61, align 8, !noalias !4904 %_0.i.i378.1 = fsub double %_0.i.i366.1, %_0.i3.i371.1 %_0.i3.i379.1 = fadd double %_0.i3.i367.1, %_0.i.i370.1 store double %_0.i.i378.1, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4904 %62 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 1, i32 1 store double %_0.i3.i379.1, ptr %62, align 8, !noalias !4904 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2 %_3.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6 %_3.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10 %_3.i.i.i.i356.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14 %a.0.i.i.i117.2 = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4904, !noundef !3 %63 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2, i32 1 %a.1.i.i.i118.2 = load double, ptr %63, align 8, !noalias !4904, !noundef !3 %_84.0.i.i.i119.2 = load double, ptr %_3.i.i.i.i.i.i.i.i.2, align 8, !noalias !4904, !noundef !3 %64 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6, i32 1 %_84.1.i.i.i120.2 = load double, ptr %64, align 8, !noalias !4904, !noundef !3 %b.i40.i.i.i122.2 = fmul double %_84.1.i.i.i120.2, %_6.i39.i.i.i121 %65 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119.2, double %b.i40.i.i.i122.2) %b1.i41.i.i.i123.2 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119.2 %66 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120.2, double %b1.i41.i.i.i123.2) %_86.0.i.i.i124.2 = load double, ptr %_3.i.i.i.i.i.i.2, align 8, !noalias !4904, !noundef !3 %67 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10, i32 1 %_86.1.i.i.i125.2 = load double, ptr %67, align 8, !noalias !4904, !noundef !3 %b.i37.i.i.i127.2 = fmul double %_86.1.i.i.i125.2, %_6.i36.i.i.i126 %68 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124.2, double %b.i37.i.i.i127.2) %b1.i38.i.i.i128.2 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124.2 %69 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125.2, double %b1.i38.i.i.i128.2) %_88.0.i.i.i129.2 = load double, ptr %_3.i.i.i.i356.2, align 8, !noalias !4904, !noundef !3 %70 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14, i32 1 %_88.1.i.i.i130.2 = load double, ptr %70, align 8, !noalias !4904, !noundef !3 %b.i35.i.i.i132.2 = fmul double %_88.1.i.i.i130.2, %_6.i.i.i.i131 %71 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129.2, double %b.i35.i.i.i132.2) %b1.i.i.i.i133.2 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129.2 %72 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130.2, double %b1.i.i.i.i133.2) %_0.i.i364.2 = fadd double %a.0.i.i.i117.2, %68 %_0.i3.i365.2 = fadd double %a.1.i.i.i118.2, %69 %_0.i.i366.2 = fsub double %a.0.i.i.i117.2, %68 %_0.i3.i367.2 = fsub double %a.1.i.i.i118.2, %69 %_0.i.i368.2 = fadd double %65, %71 %_0.i3.i369.2 = fadd double %66, %72 %_0.i.i370.2 = fsub double %65, %71 %_0.i3.i371.2 = fsub double %66, %72 %_0.i.i372.2 = fadd double %_0.i.i364.2, %_0.i.i368.2 %_0.i3.i373.2 = fadd double %_0.i3.i365.2, %_0.i3.i369.2 store double %_0.i.i372.2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4904 %73 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i373.2, ptr %73, align 8, !noalias !4904 %_0.i.i374.2 = fadd double %_0.i.i366.2, %_0.i3.i371.2 %_0.i3.i375.2 = fsub double %_0.i3.i367.2, %_0.i.i370.2 store double %_0.i.i374.2, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4904 %74 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i375.2, ptr %74, align 8, !noalias !4904 %_0.i.i376.2 = fsub double %_0.i.i364.2, %_0.i.i368.2 %_0.i3.i377.2 = fsub double %_0.i3.i365.2, %_0.i3.i369.2 store double %_0.i.i376.2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4904 %75 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i377.2, ptr %75, align 8, !noalias !4904 %_0.i.i378.2 = fsub double %_0.i.i366.2, %_0.i3.i371.2 %_0.i3.i379.2 = fadd double %_0.i3.i367.2, %_0.i.i370.2 store double %_0.i.i378.2, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4904 %76 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 2, i32 1 store double %_0.i3.i379.2, ptr %76, align 8, !noalias !4904 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3 %_3.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 7 %_3.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11 %_3.i.i.i.i356.3 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 15 %a.0.i.i.i117.3 = load double, ptr %_3.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4904, !noundef !3 %77 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3, i32 1 %a.1.i.i.i118.3 = load double, ptr %77, align 8, !noalias !4904, !noundef !3 %_84.0.i.i.i119.3 = load double, ptr %_3.i.i.i.i.i.i.i.i.3, align 8, !noalias !4904, !noundef !3 %78 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 7, i32 1 %_84.1.i.i.i120.3 = load double, ptr %78, align 8, !noalias !4904, !noundef !3 %b.i40.i.i.i122.3 = fmul double %_84.1.i.i.i120.3, %_6.i39.i.i.i121 %79 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.0.i.i.i119.3, double %b.i40.i.i.i122.3) %b1.i41.i.i.i123.3 = fmul double %w1.1.i.i.i80, %_84.0.i.i.i119.3 %80 = tail call double @llvm.fma.f64(double %w1.0.i.i.i79, double %_84.1.i.i.i120.3, double %b1.i41.i.i.i123.3) %_86.0.i.i.i124.3 = load double, ptr %_3.i.i.i.i.i.i.3, align 8, !noalias !4904, !noundef !3 %81 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11, i32 1 %_86.1.i.i.i125.3 = load double, ptr %81, align 8, !noalias !4904, !noundef !3 %b.i37.i.i.i127.3 = fmul double %_86.1.i.i.i125.3, %_6.i36.i.i.i126 %82 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.0.i.i.i124.3, double %b.i37.i.i.i127.3) %b1.i38.i.i.i128.3 = fmul double %w2.1.i.i.i82, %_86.0.i.i.i124.3 %83 = tail call double @llvm.fma.f64(double %w2.0.i.i.i81, double %_86.1.i.i.i125.3, double %b1.i38.i.i.i128.3) %_88.0.i.i.i129.3 = load double, ptr %_3.i.i.i.i356.3, align 8, !noalias !4904, !noundef !3 %84 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 15, i32 1 %_88.1.i.i.i130.3 = load double, ptr %84, align 8, !noalias !4904, !noundef !3 %b.i35.i.i.i132.3 = fmul double %_88.1.i.i.i130.3, %_6.i.i.i.i131 %85 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.0.i.i.i129.3, double %b.i35.i.i.i132.3) %b1.i.i.i.i133.3 = fmul double %w3.1.i.i.i84, %_88.0.i.i.i129.3 %86 = tail call double @llvm.fma.f64(double %w3.0.i.i.i83, double %_88.1.i.i.i130.3, double %b1.i.i.i.i133.3) %_0.i.i364.3 = fadd double %a.0.i.i.i117.3, %82 %_0.i3.i365.3 = fadd double %a.1.i.i.i118.3, %83 %_0.i.i366.3 = fsub double %a.0.i.i.i117.3, %82 %_0.i3.i367.3 = fsub double %a.1.i.i.i118.3, %83 %_0.i.i368.3 = fadd double %79, %85 %_0.i3.i369.3 = fadd double %80, %86 %_0.i.i370.3 = fsub double %79, %85 %_0.i3.i371.3 = fsub double %80, %86 %_0.i.i372.3 = fadd double %_0.i.i364.3, %_0.i.i368.3 %_0.i3.i373.3 = fadd double %_0.i3.i365.3, %_0.i3.i369.3 store double %_0.i.i372.3, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4904 %87 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i373.3, ptr %87, align 8, !noalias !4904 %_0.i.i374.3 = fadd double %_0.i.i366.3, %_0.i3.i371.3 %_0.i3.i375.3 = fsub double %_0.i3.i367.3, %_0.i.i370.3 store double %_0.i.i374.3, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4904 %88 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i375.3, ptr %88, align 8, !noalias !4904 %_0.i.i376.3 = fsub double %_0.i.i364.3, %_0.i.i368.3 %_0.i3.i377.3 = fsub double %_0.i3.i365.3, %_0.i3.i369.3 store double %_0.i.i376.3, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4904 %89 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i377.3, ptr %89, align 8, !noalias !4904 %_0.i.i378.3 = fsub double %_0.i.i366.3, %_0.i3.i371.3 %_0.i3.i379.3 = fadd double %_0.i3.i367.3, %_0.i.i370.3 store double %_0.i.i378.3, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4904 %90 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 3, i32 1 store double %_0.i3.i379.3, ptr %90, align 8, !noalias !4904 br i1 %_2.i.i.i260, label %bb24.i.i.i68, label %vector.body10 vector.body10: ; preds = %bb24.i.i.i68 %91 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %92 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %93 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %100 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 2 %101 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 1 %102 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 3 %103 = fneg <4 x double> %wide.masked.gather12 %104 = fneg <4 x double> %wide.masked.gather14 %105 = fneg <4 x double> %wide.masked.gather16 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %106 = getelementptr inbounds i8, <4 x ptr> %93, i64 8 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %107 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %107, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %108 = fmul <4 x double> %wide.masked.gather20, %103 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather19, <4 x double> %108) %110 = fmul <4 x double> %wide.masked.gather12, %wide.masked.gather19 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather20, <4 x double> %110) %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %112 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %112, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %113 = fmul <4 x double> %wide.masked.gather22, %104 %114 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13, <4 x double> %wide.masked.gather21, <4 x double> %113) %115 = fmul <4 x double> %wide.masked.gather14, %wide.masked.gather21 %116 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13, <4 x double> %wide.masked.gather22, <4 x double> %115) %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %117 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %93, i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %117, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %118 = fmul <4 x double> %wide.masked.gather24, %105 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15, <4 x double> %wide.masked.gather23, <4 x double> %118) %120 = fmul <4 x double> %wide.masked.gather16, %wide.masked.gather23 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15, <4 x double> %wide.masked.gather24, <4 x double> %120) %122 = fadd <4 x double> %wide.masked.gather17, %114 %123 = fadd <4 x double> %wide.masked.gather18, %116 %124 = fsub <4 x double> %wide.masked.gather17, %114 %125 = fsub <4 x double> %wide.masked.gather18, %116 %126 = fadd <4 x double> %109, %119 %127 = fadd <4 x double> %111, %121 %128 = fsub <4 x double> %109, %119 %129 = fsub <4 x double> %111, %121 %130 = fadd <4 x double> %122, %126 %131 = fadd <4 x double> %123, %127 %interleaved.vec25 = shufflevector <4 x double> %130, <4 x double> %131, <8 x i32> store <8 x double> %interleaved.vec25, ptr %buf.0, align 8, !noalias !4904 %132 = fadd <4 x double> %124, %129 %133 = fsub <4 x double> %125, %128 %interleaved.vec26 = shufflevector <4 x double> %132, <4 x double> %133, <8 x i32> store <8 x double> %interleaved.vec26, ptr %92, align 8, !noalias !4904 %134 = fsub <4 x double> %122, %126 %135 = fsub <4 x double> %123, %127 %interleaved.vec27 = shufflevector <4 x double> %134, <4 x double> %135, <8 x i32> store <8 x double> %interleaved.vec27, ptr %0, align 8, !noalias !4904 %136 = fsub <4 x double> %124, %129 %137 = fadd <4 x double> %125, %128 %interleaved.vec28 = shufflevector <4 x double> %136, <4 x double> %137, <8 x i32> store <8 x double> %interleaved.vec28, ptr %91, align 8, !noalias !4904 %138 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %139 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %140 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather12.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %140, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather13.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather14.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %142, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather15.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %143, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather16.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %144, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %145 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 2 %146 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 1 %147 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 3 %148 = fneg <4 x double> %wide.masked.gather12.1 %149 = fneg <4 x double> %wide.masked.gather14.1 %150 = fneg <4 x double> %wide.masked.gather16.1 %wide.masked.gather17.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %138, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %151 = getelementptr inbounds i8, <4 x ptr> %138, i64 8 %wide.masked.gather18.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %wide.masked.gather19.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %152 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 1, i32 1 %wide.masked.gather20.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %153 = fmul <4 x double> %wide.masked.gather20.1, %148 %154 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather19.1, <4 x double> %153) %155 = fmul <4 x double> %wide.masked.gather12.1, %wide.masked.gather19.1 %156 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %wide.masked.gather20.1, <4 x double> %155) %wide.masked.gather21.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %145, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %157 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 2, i32 1 %wide.masked.gather22.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %158 = fmul <4 x double> %wide.masked.gather22.1, %149 %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13.1, <4 x double> %wide.masked.gather21.1, <4 x double> %158) %160 = fmul <4 x double> %wide.masked.gather14.1, %wide.masked.gather21.1 %161 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather13.1, <4 x double> %wide.masked.gather22.1, <4 x double> %160) %wide.masked.gather23.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %138, i64 3, i32 1 %wide.masked.gather24.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !4904 %163 = fmul <4 x double> %wide.masked.gather24.1, %150 %164 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15.1, <4 x double> %wide.masked.gather23.1, <4 x double> %163) %165 = fmul <4 x double> %wide.masked.gather16.1, %wide.masked.gather23.1 %166 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather15.1, <4 x double> %wide.masked.gather24.1, <4 x double> %165) %167 = fadd <4 x double> %wide.masked.gather17.1, %159 %168 = fadd <4 x double> %wide.masked.gather18.1, %161 %169 = fsub <4 x double> %wide.masked.gather17.1, %159 %170 = fsub <4 x double> %wide.masked.gather18.1, %161 %171 = fadd <4 x double> %154, %164 %172 = fadd <4 x double> %156, %166 %173 = fsub <4 x double> %154, %164 %174 = fsub <4 x double> %156, %166 %175 = fadd <4 x double> %167, %171 %176 = fadd <4 x double> %168, %172 %177 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec25.1 = shufflevector <4 x double> %175, <4 x double> %176, <8 x i32> store <8 x double> %interleaved.vec25.1, ptr %177, align 8, !noalias !4904 %178 = fadd <4 x double> %169, %174 %179 = fsub <4 x double> %170, %173 %180 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec26.1 = shufflevector <4 x double> %178, <4 x double> %179, <8 x i32> store <8 x double> %interleaved.vec26.1, ptr %180, align 8, !noalias !4904 %181 = fsub <4 x double> %167, %171 %182 = fsub <4 x double> %168, %172 %183 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec27.1 = shufflevector <4 x double> %181, <4 x double> %182, <8 x i32> store <8 x double> %interleaved.vec27.1, ptr %183, align 8, !noalias !4904 %184 = fsub <4 x double> %169, %174 %185 = fadd <4 x double> %170, %173 %186 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec28.1 = shufflevector <4 x double> %184, <4 x double> %185, <8 x i32> store <8 x double> %interleaved.vec28.1, ptr %186, align 8, !noalias !4904 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4904 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb64f7aa9065b7b6cE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !4907 store i64 64, ptr %n.i.i, align 8, !noalias !4907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4907 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !4907 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !4907 store ptr null, ptr %_16.i.i, align 8, !noalias !4907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !4907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4907 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !4907 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !4907 store ptr null, ptr %_24.i.i, align 8, !noalias !4907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !4907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4907 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !4907 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !4907 store ptr null, ptr %_32.i.i, align 8, !noalias !4907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !4907 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4907 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !4907 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h296b602ff2d62b86E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !4907 store ptr null, ptr %_40.i.i, align 8, !noalias !4907 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h296b602ff2d62b86E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !4907 tail call void @llvm.experimental.noalias.scope.decl(metadata !4912) tail call void @llvm.experimental.noalias.scope.decl(metadata !4915) tail call void @llvm.experimental.noalias.scope.decl(metadata !4917) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h296b602ff2d62b86E.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h296b602ff2d62b86E.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4917, !noalias !4919 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !4917, !noalias !4919 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !4917, !noalias !4919 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4912, !noalias !4920 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4912, !noalias !4920 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4912, !noalias !4920 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4912, !noalias !4920 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !4915, !noalias !4921 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !4915, !noalias !4921 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !4915, !noalias !4921 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !4915, !noalias !4921 %exitcond.not.i.i = icmp eq i64 %8, 8 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !4922) tail call void @llvm.experimental.noalias.scope.decl(metadata !4925) tail call void @llvm.experimental.noalias.scope.decl(metadata !4927) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !4927, !noalias !4929, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !4927, !noalias !4929, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !4927, !noalias !4929, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !4927, !noalias !4929, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !4927, !noalias !4929, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !4927, !noalias !4929, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4922, !noalias !4930 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4922, !noalias !4930 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4922, !noalias !4930 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4922, !noalias !4930 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !4925, !noalias !4931 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !4925, !noalias !4931 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !4925, !noalias !4931 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !4925, !noalias !4931 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4922, !noalias !4930 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4922, !noalias !4930 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4922, !noalias !4930 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4922, !noalias !4930 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4925, !noalias !4931 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4925, !noalias !4931 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !4925, !noalias !4931 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !4925, !noalias !4931 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 4 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17hf5dff622f4d0faaeE.exit, label %bb22.us.i.i _ZN4pulp3x862V39vectorize6__impl17hf5dff622f4d0faaeE.exit: ; preds = %bb22.us.i.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %4, align 8, !noalias !4907 %107 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %108 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %109 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %110 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %111 = bitcast <4 x double> %110 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = fadd <4 x double> %107, %109 %116 = fsub <4 x double> %108, %114 %117 = fsub <4 x double> %107, %109 %118 = fadd <4 x double> %108, %114 store <4 x double> %115, ptr %buf.0, align 8, !noalias !4907 store <4 x double> %116, ptr %3, align 8, !noalias !4907 store <4 x double> %117, ptr %2, align 8, !noalias !4907 store <4 x double> %118, ptr %4, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_43.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4907 %119 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %120 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %121 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %122 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %123 = bitcast <4 x double> %122 to <4 x i64> %124 = xor <4 x i64> %123, %125 = bitcast <4 x i64> %124 to <4 x double> %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = fadd <4 x double> %119, %121 %128 = fsub <4 x double> %120, %126 %129 = fsub <4 x double> %119, %121 %130 = fadd <4 x double> %120, %126 store <4 x double> %127, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !4907 store <4 x double> %128, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !4907 store <4 x double> %129, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !4907 store <4 x double> %130, ptr %_3.i.i.i.i.1.i, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_43.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4907 %131 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %132 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %133 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %134 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %135 = bitcast <4 x double> %134 to <4 x i64> %136 = xor <4 x i64> %135, %137 = bitcast <4 x i64> %136 to <4 x double> %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fadd <4 x double> %131, %133 %140 = fsub <4 x double> %132, %138 %141 = fsub <4 x double> %131, %133 %142 = fadd <4 x double> %132, %138 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !4907 store <4 x double> %140, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !4907 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !4907 store <4 x double> %142, ptr %_3.i.i.i.i.2.i, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_43.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4907 %143 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %144 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %145 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %146 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %147 = bitcast <4 x double> %146 to <4 x i64> %148 = xor <4 x i64> %147, %149 = bitcast <4 x i64> %148 to <4 x double> %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = fadd <4 x double> %143, %145 %152 = fsub <4 x double> %144, %150 %153 = fsub <4 x double> %143, %145 %154 = fadd <4 x double> %144, %150 store <4 x double> %151, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !4907 store <4 x double> %152, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !4907 store <4 x double> %153, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !4907 store <4 x double> %154, ptr %_3.i.i.i.i.3.i, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_43.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !4907 %155 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %156 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %157 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %158 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %159 = bitcast <4 x double> %158 to <4 x i64> %160 = xor <4 x i64> %159, %161 = bitcast <4 x i64> %160 to <4 x double> %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fadd <4 x double> %155, %157 %164 = fsub <4 x double> %156, %162 %165 = fsub <4 x double> %155, %157 %166 = fadd <4 x double> %156, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !4907 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !4907 store <4 x double> %165, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !4907 store <4 x double> %166, ptr %_3.i.i.i.i.4.i, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_43.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !4907 %167 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %168 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %169 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %170 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %171 = bitcast <4 x double> %170 to <4 x i64> %172 = xor <4 x i64> %171, %173 = bitcast <4 x i64> %172 to <4 x double> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = fadd <4 x double> %167, %169 %176 = fsub <4 x double> %168, %174 %177 = fsub <4 x double> %167, %169 %178 = fadd <4 x double> %168, %174 store <4 x double> %175, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !4907 store <4 x double> %176, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !4907 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !4907 store <4 x double> %178, ptr %_3.i.i.i.i.5.i, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_43.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !4907 %179 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %180 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %181 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %182 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %183 = bitcast <4 x double> %182 to <4 x i64> %184 = xor <4 x i64> %183, %185 = bitcast <4 x i64> %184 to <4 x double> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fadd <4 x double> %179, %181 %188 = fsub <4 x double> %180, %186 %189 = fsub <4 x double> %179, %181 %190 = fadd <4 x double> %180, %186 store <4 x double> %187, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !4907 store <4 x double> %188, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !4907 store <4 x double> %189, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !4907 store <4 x double> %190, ptr %_3.i.i.i.i.6.i, align 8, !noalias !4907 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_43.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4907 %_44.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !4907 %_45.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !4907 %_46.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !4907 %191 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %192 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %193 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %194 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %195 = bitcast <4 x double> %194 to <4 x i64> %196 = xor <4 x i64> %195, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = fadd <4 x double> %191, %193 %200 = fsub <4 x double> %192, %198 %201 = fsub <4 x double> %191, %193 %202 = fadd <4 x double> %192, %198 store <4 x double> %199, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !4907 store <4 x double> %200, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !4907 store <4 x double> %201, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !4907 store <4 x double> %202, ptr %_3.i.i.i.i.7.i, align 8, !noalias !4907 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !4907 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb65bddc23e55ec42E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4932 store i64 256, ptr %n.i, align 8, !noalias !4932 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4932 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4932 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4932 store ptr null, ptr %_16.i, align 8, !noalias !4932 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4932 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4932 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4932 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4932 store ptr null, ptr %_24.i, align 8, !noalias !4932 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4932 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4932 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4932 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4932 store ptr null, ptr %_32.i, align 8, !noalias !4932 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4932 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4932 store i64 %w.1, ptr %_34.i, align 8, !noalias !4932 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab6228bc00a08f73E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4932 store ptr null, ptr %_40.i, align 8, !noalias !4932 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab6228bc00a08f73E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4932 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab6228bc00a08f73E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab6228bc00a08f73E.exit" ], [ %index.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !4935 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %4, align 8, !noalias !4935 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %5, align 8, !noalias !4935 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %6, align 8, !noalias !4935 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec, %strided.vec6 %8 = fadd <4 x double> %strided.vec1, %strided.vec7 %9 = fsub <4 x double> %strided.vec, %strided.vec6 %10 = fsub <4 x double> %strided.vec1, %strided.vec7 %11 = fadd <4 x double> %strided.vec3, %strided.vec9 %12 = fadd <4 x double> %strided.vec4, %strided.vec10 %13 = fsub <4 x double> %strided.vec3, %strided.vec9 %14 = fsub <4 x double> %strided.vec4, %strided.vec10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %12 %17 = fadd <4 x double> %9, %14 %18 = fsub <4 x double> %10, %13 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %12 %21 = fsub <4 x double> %9, %14 %22 = fadd <4 x double> %10, %13 %interleaved.vec = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec, ptr %3, align 8, !noalias !4935 %interleaved.vec11 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !4935 %interleaved.vec12 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !4935 %interleaved.vec13 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec13, ptr %6, align 8, !noalias !4935 %index.next = add nuw i64 %index, 4 %23 = icmp eq i64 %index.next, 64 br i1 %23, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !4938 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 br label %bb32.i.i.i154 bb32.i.i.i154: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block14 %iter.i.i.i56.sroa.104.0121 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ %153, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0121, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0121, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %31 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %32 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %33 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %34 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %35 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %37 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i186 = load double, ptr %38, align 8, !noalias !4932, !noundef !3 %_6.i.i.i.i306 = fneg double %w7.1.i.i.i186 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i184 = load double, ptr %39, align 8, !noalias !4932, !noundef !3 %_6.i166.i.i.i301 = fneg double %w6.1.i.i.i184 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i182 = load double, ptr %40, align 8, !noalias !4932, !noundef !3 %_6.i169.i.i.i296 = fneg double %w5.1.i.i.i182 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i180 = load double, ptr %41, align 8, !noalias !4932, !noundef !3 %_6.i172.i.i.i291 = fneg double %w4.1.i.i.i180 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i178 = load double, ptr %42, align 8, !noalias !4932, !noundef !3 %_6.i175.i.i.i286 = fneg double %w3.1.i.i.i178 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i176 = load double, ptr %43, align 8, !noalias !4932, !noundef !3 %_6.i178.i.i.i281 = fneg double %w2.1.i.i.i176 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i174 = load double, ptr %44, align 8, !noalias !4932, !noundef !3 %_6.i181.i.i.i276 = fneg double %w1.1.i.i.i174 %45 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i185 = load double, ptr %45, align 8, !noalias !4932, !noundef !3 %46 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i183 = load double, ptr %46, align 8, !noalias !4932, !noundef !3 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i181 = load double, ptr %47, align 8, !noalias !4932, !noundef !3 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i179 = load double, ptr %48, align 8, !noalias !4932, !noundef !3 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i177 = load double, ptr %49, align 8, !noalias !4932, !noundef !3 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i175 = load double, ptr %50, align 8, !noalias !4932, !noundef !3 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i173 = load double, ptr %51, align 8, !noalias !4932, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i276, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i173, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i174, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i178.i.i.i281, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i175, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i176, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i175.i.i.i286, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i177, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i178, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert51 = insertelement <4 x double> poison, double %_6.i172.i.i.i291, i64 0 %broadcast.splat52 = shufflevector <4 x double> %broadcast.splatinsert51, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert53 = insertelement <4 x double> poison, double %w4.0.i.i.i179, i64 0 %broadcast.splat54 = shufflevector <4 x double> %broadcast.splatinsert53, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert55 = insertelement <4 x double> poison, double %w4.1.i.i.i180, i64 0 %broadcast.splat56 = shufflevector <4 x double> %broadcast.splatinsert55, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %_6.i169.i.i.i296, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w5.0.i.i.i181, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert64 = insertelement <4 x double> poison, double %w5.1.i.i.i182, i64 0 %broadcast.splat65 = shufflevector <4 x double> %broadcast.splatinsert64, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert69 = insertelement <4 x double> poison, double %_6.i166.i.i.i301, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %w6.0.i.i.i183, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w6.1.i.i.i184, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i.i.i.i306, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w7.0.i.i.i185, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w7.1.i.i.i186, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body18 vector.body18: ; preds = %vector.body18, %bb32.i.i.i154 %index19 = phi i64 [ 0, %bb32.i.i.i154 ], [ %index.next92, %vector.body18 ] %52 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index19 %53 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %index19 %54 = getelementptr inbounds %"num_complex::Complex", ptr %32, i64 %index19 %55 = getelementptr inbounds %"num_complex::Complex", ptr %34, i64 %index19 %56 = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %index19 %57 = getelementptr inbounds %"num_complex::Complex", ptr %36, i64 %index19 %58 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 %index19 %59 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index19 %wide.vec20 = load <8 x double>, ptr %52, align 8, !noalias !4932 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %53, align 8, !noalias !4932 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %60 = fmul <4 x double> %strided.vec25, %broadcast.splat %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %60) %62 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %62) %wide.vec30 = load <8 x double>, ptr %54, align 8, !noalias !4932 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %64 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %64) %66 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %66) %wide.vec39 = load <8 x double>, ptr %55, align 8, !noalias !4932 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %68 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %68) %70 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %70) %wide.vec48 = load <8 x double>, ptr %56, align 8, !noalias !4932 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %72 = fmul <4 x double> %strided.vec50, %broadcast.splat52 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec49, <4 x double> %72) %74 = fmul <4 x double> %broadcast.splat56, %strided.vec49 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec50, <4 x double> %74) %wide.vec57 = load <8 x double>, ptr %57, align 8, !noalias !4932 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %76 = fmul <4 x double> %strided.vec59, %broadcast.splat61 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec58, <4 x double> %76) %78 = fmul <4 x double> %broadcast.splat65, %strided.vec58 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec59, <4 x double> %78) %wide.vec66 = load <8 x double>, ptr %58, align 8, !noalias !4932 %strided.vec67 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %strided.vec68 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %80 = fmul <4 x double> %strided.vec68, %broadcast.splat70 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec67, <4 x double> %80) %82 = fmul <4 x double> %broadcast.splat74, %strided.vec67 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec68, <4 x double> %82) %wide.vec75 = load <8 x double>, ptr %59, align 8, !noalias !4932 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %84 = fmul <4 x double> %strided.vec77, %broadcast.splat79 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec76, <4 x double> %84) %86 = fmul <4 x double> %broadcast.splat83, %strided.vec76 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec77, <4 x double> %86) %88 = fadd <4 x double> %strided.vec21, %73 %89 = fadd <4 x double> %strided.vec22, %75 %90 = fsub <4 x double> %strided.vec21, %73 %91 = fsub <4 x double> %strided.vec22, %75 %92 = fadd <4 x double> %65, %81 %93 = fadd <4 x double> %67, %83 %94 = fsub <4 x double> %65, %81 %95 = fsub <4 x double> %67, %83 %96 = fadd <4 x double> %61, %77 %97 = fadd <4 x double> %63, %79 %98 = fsub <4 x double> %61, %77 %99 = fsub <4 x double> %63, %79 %100 = fadd <4 x double> %69, %85 %101 = fadd <4 x double> %71, %87 %102 = fsub <4 x double> %69, %85 %103 = fsub <4 x double> %71, %87 %104 = fadd <4 x double> %88, %92 %105 = fadd <4 x double> %89, %93 %106 = fadd <4 x double> %96, %100 %107 = fadd <4 x double> %97, %101 %108 = fadd <4 x double> %104, %106 %109 = fadd <4 x double> %105, %107 %110 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec84 = shufflevector <4 x double> %108, <4 x double> %109, <8 x i32> store <8 x double> %interleaved.vec84, ptr %110, align 8, !noalias !4932 %111 = fsub <4 x double> %104, %106 %112 = fsub <4 x double> %105, %107 %113 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec85 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> store <8 x double> %interleaved.vec85, ptr %113, align 8, !noalias !4932 %114 = fadd <4 x double> %90, %95 %115 = fsub <4 x double> %91, %94 %116 = fadd <4 x double> %98, %103 %117 = fsub <4 x double> %99, %102 %118 = fadd <4 x double> %116, %117 %119 = fsub <4 x double> %117, %116 %120 = fmul <4 x double> %118, %121 = fmul <4 x double> %119, %122 = fadd <4 x double> %114, %120 %123 = fadd <4 x double> %115, %121 %124 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec86 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec86, ptr %124, align 8, !noalias !4932 %125 = fsub <4 x double> %114, %120 %126 = fsub <4 x double> %115, %121 %127 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec87 = shufflevector <4 x double> %125, <4 x double> %126, <8 x i32> store <8 x double> %interleaved.vec87, ptr %127, align 8, !noalias !4932 %128 = fsub <4 x double> %88, %92 %129 = fsub <4 x double> %89, %93 %130 = fsub <4 x double> %96, %100 %131 = fsub <4 x double> %97, %101 %132 = fadd <4 x double> %128, %131 %133 = fsub <4 x double> %129, %130 %134 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec88 = shufflevector <4 x double> %132, <4 x double> %133, <8 x i32> store <8 x double> %interleaved.vec88, ptr %134, align 8, !noalias !4932 %135 = fsub <4 x double> %128, %131 %136 = fadd <4 x double> %129, %130 %137 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec89 = shufflevector <4 x double> %135, <4 x double> %136, <8 x i32> store <8 x double> %interleaved.vec89, ptr %137, align 8, !noalias !4932 %138 = fsub <4 x double> %90, %95 %139 = fadd <4 x double> %91, %94 %140 = fsub <4 x double> %98, %103 %141 = fadd <4 x double> %99, %102 %142 = fsub <4 x double> %140, %141 %143 = fadd <4 x double> %140, %141 %144 = fmul <4 x double> %142, %145 = fmul <4 x double> %143, %146 = fsub <4 x double> %138, %144 %147 = fsub <4 x double> %139, %145 %148 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec90 = shufflevector <4 x double> %146, <4 x double> %147, <8 x i32> store <8 x double> %interleaved.vec90, ptr %148, align 8, !noalias !4932 %149 = fadd <4 x double> %138, %144 %150 = fadd <4 x double> %139, %145 %151 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec91 = shufflevector <4 x double> %149, <4 x double> %150, <8 x i32> store <8 x double> %interleaved.vec91, ptr %151, align 8, !noalias !4932 %index.next92 = add nuw i64 %index19, 4 %152 = icmp eq i64 %index.next92, 8 br i1 %152, label %middle.block14, label %vector.body18, !llvm.loop !4939 middle.block14: ; preds = %vector.body18 %153 = add nuw nsw i64 %iter.i.i.i56.sroa.104.0121, 1 %exitcond126.not = icmp eq i64 %153, 4 br i1 %exitcond126.not, label %bb32.i.i.i.preheader, label %bb32.i.i.i154 bb32.i.i.i.preheader: ; preds = %middle.block14 %154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %155 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %157 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 br label %vector.body97 vector.body97: ; preds = %vector.body97, %bb32.i.i.i.preheader %index98 = phi i64 [ 0, %bb32.i.i.i.preheader ], [ %index.next136, %vector.body97 ] %vec.ind = phi <4 x i64> [ , %bb32.i.i.i.preheader ], [ %vec.ind.next, %vector.body97 ] %158 = shl <4 x i64> %vec.ind, %159 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %158 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %165 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %166 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %167 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %168 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %169 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %169, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %170 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %171 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %172 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %173 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %174 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 4 %175 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 2 %176 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 1 %177 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 3 %178 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 6 %179 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 5 %180 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 7 %181 = fneg <4 x double> %wide.masked.gather99 %182 = fneg <4 x double> %wide.masked.gather101 %183 = fneg <4 x double> %wide.masked.gather103 %184 = fneg <4 x double> %wide.masked.gather105 %185 = fneg <4 x double> %wide.masked.gather107 %186 = fneg <4 x double> %wide.masked.gather109 %187 = fneg <4 x double> %wide.masked.gather111 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %188 = getelementptr inbounds i8, <4 x ptr> %159, i64 8 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %176, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %189 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 1, i32 1 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %189, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %190 = fmul <4 x double> %wide.masked.gather115, %181 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather114, <4 x double> %190) %192 = fmul <4 x double> %wide.masked.gather99, %wide.masked.gather114 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather115, <4 x double> %192) %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %175, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %194 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 2, i32 1 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %194, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %195 = fmul <4 x double> %wide.masked.gather117, %182 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather116, <4 x double> %195) %197 = fmul <4 x double> %wide.masked.gather101, %wide.masked.gather116 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather117, <4 x double> %197) %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 3, i32 1 %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %200 = fmul <4 x double> %wide.masked.gather119, %183 %201 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather118, <4 x double> %200) %202 = fmul <4 x double> %wide.masked.gather103, %wide.masked.gather118 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather119, <4 x double> %202) %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %174, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %204 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 4, i32 1 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %204, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %205 = fmul <4 x double> %wide.masked.gather121, %184 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather104, <4 x double> %wide.masked.gather120, <4 x double> %205) %207 = fmul <4 x double> %wide.masked.gather105, %wide.masked.gather120 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather104, <4 x double> %wide.masked.gather121, <4 x double> %207) %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %179, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %209 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 5, i32 1 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %209, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %210 = fmul <4 x double> %wide.masked.gather123, %185 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather106, <4 x double> %wide.masked.gather122, <4 x double> %210) %212 = fmul <4 x double> %wide.masked.gather107, %wide.masked.gather122 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather106, <4 x double> %wide.masked.gather123, <4 x double> %212) %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %214 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 6, i32 1 %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %214, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %215 = fmul <4 x double> %wide.masked.gather125, %186 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather108, <4 x double> %wide.masked.gather124, <4 x double> %215) %217 = fmul <4 x double> %wide.masked.gather109, %wide.masked.gather124 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather108, <4 x double> %wide.masked.gather125, <4 x double> %217) %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %180, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %219 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 7, i32 1 %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %219, i32 8, <4 x i1> , <4 x double> poison), !noalias !4932 %220 = fmul <4 x double> %wide.masked.gather127, %187 %221 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather110, <4 x double> %wide.masked.gather126, <4 x double> %220) %222 = fmul <4 x double> %wide.masked.gather111, %wide.masked.gather126 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather110, <4 x double> %wide.masked.gather127, <4 x double> %222) %224 = fadd <4 x double> %wide.masked.gather112, %206 %225 = fadd <4 x double> %wide.masked.gather113, %208 %226 = fsub <4 x double> %wide.masked.gather112, %206 %227 = fsub <4 x double> %wide.masked.gather113, %208 %228 = fadd <4 x double> %196, %216 %229 = fadd <4 x double> %198, %218 %230 = fsub <4 x double> %196, %216 %231 = fsub <4 x double> %198, %218 %232 = fadd <4 x double> %191, %211 %233 = fadd <4 x double> %193, %213 %234 = fsub <4 x double> %191, %211 %235 = fsub <4 x double> %193, %213 %236 = fadd <4 x double> %201, %221 %237 = fadd <4 x double> %203, %223 %238 = fsub <4 x double> %201, %221 %239 = fsub <4 x double> %203, %223 %240 = fadd <4 x double> %224, %228 %241 = fadd <4 x double> %225, %229 %242 = fadd <4 x double> %232, %236 %243 = fadd <4 x double> %233, %237 %244 = fadd <4 x double> %240, %242 %245 = fadd <4 x double> %241, %243 %246 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index98 %interleaved.vec128 = shufflevector <4 x double> %244, <4 x double> %245, <8 x i32> store <8 x double> %interleaved.vec128, ptr %246, align 8, !noalias !4932 %247 = fsub <4 x double> %240, %242 %248 = fsub <4 x double> %241, %243 %249 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index98 %interleaved.vec129 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec129, ptr %249, align 8, !noalias !4932 %250 = fadd <4 x double> %226, %231 %251 = fsub <4 x double> %227, %230 %252 = fadd <4 x double> %234, %239 %253 = fsub <4 x double> %235, %238 %254 = fadd <4 x double> %252, %253 %255 = fsub <4 x double> %253, %252 %256 = fmul <4 x double> %254, %257 = fmul <4 x double> %255, %258 = fadd <4 x double> %250, %256 %259 = fadd <4 x double> %251, %257 %260 = getelementptr inbounds %"num_complex::Complex", ptr %154, i64 %index98 %interleaved.vec130 = shufflevector <4 x double> %258, <4 x double> %259, <8 x i32> store <8 x double> %interleaved.vec130, ptr %260, align 8, !noalias !4932 %261 = fsub <4 x double> %250, %256 %262 = fsub <4 x double> %251, %257 %263 = getelementptr inbounds %"num_complex::Complex", ptr %156, i64 %index98 %interleaved.vec131 = shufflevector <4 x double> %261, <4 x double> %262, <8 x i32> store <8 x double> %interleaved.vec131, ptr %263, align 8, !noalias !4932 %264 = fsub <4 x double> %224, %228 %265 = fsub <4 x double> %225, %229 %266 = fsub <4 x double> %232, %236 %267 = fsub <4 x double> %233, %237 %268 = fadd <4 x double> %264, %267 %269 = fsub <4 x double> %265, %266 %270 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index98 %interleaved.vec132 = shufflevector <4 x double> %268, <4 x double> %269, <8 x i32> store <8 x double> %interleaved.vec132, ptr %270, align 8, !noalias !4932 %271 = fsub <4 x double> %264, %267 %272 = fadd <4 x double> %265, %266 %273 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index98 %interleaved.vec133 = shufflevector <4 x double> %271, <4 x double> %272, <8 x i32> store <8 x double> %interleaved.vec133, ptr %273, align 8, !noalias !4932 %274 = fsub <4 x double> %226, %231 %275 = fadd <4 x double> %227, %230 %276 = fsub <4 x double> %234, %239 %277 = fadd <4 x double> %235, %238 %278 = fsub <4 x double> %276, %277 %279 = fadd <4 x double> %276, %277 %280 = fmul <4 x double> %278, %281 = fmul <4 x double> %279, %282 = fsub <4 x double> %274, %280 %283 = fsub <4 x double> %275, %281 %284 = getelementptr inbounds %"num_complex::Complex", ptr %155, i64 %index98 %interleaved.vec134 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec134, ptr %284, align 8, !noalias !4932 %285 = fadd <4 x double> %274, %280 %286 = fadd <4 x double> %275, %281 %287 = getelementptr inbounds %"num_complex::Complex", ptr %157, i64 %index98 %interleaved.vec135 = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec135, ptr %287, align 8, !noalias !4932 %index.next136 = add nuw i64 %index98, 4 %vec.ind.next = add <4 x i64> %vec.ind, %288 = icmp eq i64 %index.next136, 32 br i1 %288, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ebf3ef135e9b583E.exit", label %vector.body97, !llvm.loop !4940 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ebf3ef135e9b583E.exit": ; preds = %vector.body97 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4932 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb78af5f0247024b6E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif4::Dif4>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hb1277c03d7a14cb4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb84e75641c2d1928E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4941 store i64 64, ptr %n.i, align 8, !noalias !4941 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4941 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4941 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4941 store ptr null, ptr %_16.i, align 8, !noalias !4941 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4941 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4941 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4941 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4941 store ptr null, ptr %_24.i, align 8, !noalias !4941 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4941 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4941 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4941 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4941 store ptr null, ptr %_32.i, align 8, !noalias !4941 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4941 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4941 store i64 %w.1, ptr %_34.i, align 8, !noalias !4941 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he791476a00b05da5E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4941 store ptr null, ptr %_40.i, align 8, !noalias !4941 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he791476a00b05da5E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4941 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4944 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !4944 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %0, align 8, !noalias !4944 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %2, align 8, !noalias !4944 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec6 %4 = fadd <4 x double> %strided.vec1, %strided.vec7 %5 = fsub <4 x double> %strided.vec, %strided.vec6 %6 = fsub <4 x double> %strided.vec1, %strided.vec7 %7 = fadd <4 x double> %strided.vec3, %strided.vec9 %8 = fadd <4 x double> %strided.vec4, %strided.vec10 %9 = fsub <4 x double> %strided.vec3, %strided.vec9 %10 = fsub <4 x double> %strided.vec4, %strided.vec10 %11 = fadd <4 x double> %3, %7 %12 = fadd <4 x double> %4, %8 %13 = fsub <4 x double> %5, %10 %14 = fadd <4 x double> %6, %9 %15 = fsub <4 x double> %3, %7 %16 = fsub <4 x double> %4, %8 %17 = fadd <4 x double> %5, %10 %18 = fsub <4 x double> %6, %9 %interleaved.vec = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4944 %interleaved.vec11 = shufflevector <4 x double> %13, <4 x double> %14, <8 x i32> store <8 x double> %interleaved.vec11, ptr %1, align 8, !noalias !4944 %interleaved.vec12 = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec12, ptr %0, align 8, !noalias !4944 %interleaved.vec13 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec13, ptr %2, align 8, !noalias !4944 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %21 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec.1 = load <8 x double>, ptr %19, align 8, !noalias !4944 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %20, align 8, !noalias !4944 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %21, align 8, !noalias !4944 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %22, align 8, !noalias !4944 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %23 = fadd <4 x double> %strided.vec.1, %strided.vec6.1 %24 = fadd <4 x double> %strided.vec1.1, %strided.vec7.1 %25 = fsub <4 x double> %strided.vec.1, %strided.vec6.1 %26 = fsub <4 x double> %strided.vec1.1, %strided.vec7.1 %27 = fadd <4 x double> %strided.vec3.1, %strided.vec9.1 %28 = fadd <4 x double> %strided.vec4.1, %strided.vec10.1 %29 = fsub <4 x double> %strided.vec3.1, %strided.vec9.1 %30 = fsub <4 x double> %strided.vec4.1, %strided.vec10.1 %31 = fadd <4 x double> %23, %27 %32 = fadd <4 x double> %24, %28 %33 = fsub <4 x double> %25, %30 %34 = fadd <4 x double> %26, %29 %35 = fsub <4 x double> %23, %27 %36 = fsub <4 x double> %24, %28 %37 = fadd <4 x double> %25, %30 %38 = fsub <4 x double> %26, %29 %interleaved.vec.1 = shufflevector <4 x double> %31, <4 x double> %32, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %19, align 8, !noalias !4944 %interleaved.vec11.1 = shufflevector <4 x double> %33, <4 x double> %34, <8 x i32> store <8 x double> %interleaved.vec11.1, ptr %20, align 8, !noalias !4944 %interleaved.vec12.1 = shufflevector <4 x double> %35, <4 x double> %36, <8 x i32> store <8 x double> %interleaved.vec12.1, ptr %21, align 8, !noalias !4944 %interleaved.vec13.1 = shufflevector <4 x double> %37, <4 x double> %38, <8 x i32> store <8 x double> %interleaved.vec13.1, ptr %22, align 8, !noalias !4944 %39 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %40 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %41 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %42 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec.2 = load <8 x double>, ptr %39, align 8, !noalias !4944 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %40, align 8, !noalias !4944 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %wide.vec5.2 = load <8 x double>, ptr %41, align 8, !noalias !4944 %strided.vec6.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %strided.vec7.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %wide.vec8.2 = load <8 x double>, ptr %42, align 8, !noalias !4944 %strided.vec9.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %strided.vec10.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %43 = fadd <4 x double> %strided.vec.2, %strided.vec6.2 %44 = fadd <4 x double> %strided.vec1.2, %strided.vec7.2 %45 = fsub <4 x double> %strided.vec.2, %strided.vec6.2 %46 = fsub <4 x double> %strided.vec1.2, %strided.vec7.2 %47 = fadd <4 x double> %strided.vec3.2, %strided.vec9.2 %48 = fadd <4 x double> %strided.vec4.2, %strided.vec10.2 %49 = fsub <4 x double> %strided.vec3.2, %strided.vec9.2 %50 = fsub <4 x double> %strided.vec4.2, %strided.vec10.2 %51 = fadd <4 x double> %43, %47 %52 = fadd <4 x double> %44, %48 %53 = fsub <4 x double> %45, %50 %54 = fadd <4 x double> %46, %49 %55 = fsub <4 x double> %43, %47 %56 = fsub <4 x double> %44, %48 %57 = fadd <4 x double> %45, %50 %58 = fsub <4 x double> %46, %49 %interleaved.vec.2 = shufflevector <4 x double> %51, <4 x double> %52, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %39, align 8, !noalias !4944 %interleaved.vec11.2 = shufflevector <4 x double> %53, <4 x double> %54, <8 x i32> store <8 x double> %interleaved.vec11.2, ptr %40, align 8, !noalias !4944 %interleaved.vec12.2 = shufflevector <4 x double> %55, <4 x double> %56, <8 x i32> store <8 x double> %interleaved.vec12.2, ptr %41, align 8, !noalias !4944 %interleaved.vec13.2 = shufflevector <4 x double> %57, <4 x double> %58, <8 x i32> store <8 x double> %interleaved.vec13.2, ptr %42, align 8, !noalias !4944 %59 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %60 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %61 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %62 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.3 = load <8 x double>, ptr %59, align 8, !noalias !4944 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %60, align 8, !noalias !4944 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %wide.vec5.3 = load <8 x double>, ptr %61, align 8, !noalias !4944 %strided.vec6.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %strided.vec7.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %wide.vec8.3 = load <8 x double>, ptr %62, align 8, !noalias !4944 %strided.vec9.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %strided.vec10.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %63 = fadd <4 x double> %strided.vec.3, %strided.vec6.3 %64 = fadd <4 x double> %strided.vec1.3, %strided.vec7.3 %65 = fsub <4 x double> %strided.vec.3, %strided.vec6.3 %66 = fsub <4 x double> %strided.vec1.3, %strided.vec7.3 %67 = fadd <4 x double> %strided.vec3.3, %strided.vec9.3 %68 = fadd <4 x double> %strided.vec4.3, %strided.vec10.3 %69 = fsub <4 x double> %strided.vec3.3, %strided.vec9.3 %70 = fsub <4 x double> %strided.vec4.3, %strided.vec10.3 %71 = fadd <4 x double> %63, %67 %72 = fadd <4 x double> %64, %68 %73 = fsub <4 x double> %65, %70 %74 = fadd <4 x double> %66, %69 %75 = fsub <4 x double> %63, %67 %76 = fsub <4 x double> %64, %68 %77 = fadd <4 x double> %65, %70 %78 = fsub <4 x double> %66, %69 %interleaved.vec.3 = shufflevector <4 x double> %71, <4 x double> %72, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %59, align 8, !noalias !4944 %interleaved.vec11.3 = shufflevector <4 x double> %73, <4 x double> %74, <8 x i32> store <8 x double> %interleaved.vec11.3, ptr %60, align 8, !noalias !4944 %interleaved.vec12.3 = shufflevector <4 x double> %75, <4 x double> %76, <8 x i32> store <8 x double> %interleaved.vec12.3, ptr %61, align 8, !noalias !4944 %interleaved.vec13.3 = shufflevector <4 x double> %77, <4 x double> %78, <8 x i32> store <8 x double> %interleaved.vec13.3, ptr %62, align 8, !noalias !4944 %79 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %80 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %80, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %81 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %82 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %83 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %84 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %85 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %86 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 8 %87 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 4 %88 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 12 %89 = fneg <4 x double> %wide.masked.gather20 %90 = fneg <4 x double> %wide.masked.gather22 %91 = fneg <4 x double> %wide.masked.gather24 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %79, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %92 = getelementptr inbounds i8, <4 x ptr> %79, i64 8 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %92, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %93 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 4, i32 1 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %94 = fmul <4 x double> %wide.masked.gather28, %89 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather27, <4 x double> %94) %96 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather27 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather28, <4 x double> %96) %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %98 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 8, i32 1 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %99 = fmul <4 x double> %wide.masked.gather30, %90 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather29, <4 x double> %99) %101 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather29 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather30, <4 x double> %101) %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %103 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 12, i32 1 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %104 = fmul <4 x double> %wide.masked.gather32, %91 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather31, <4 x double> %104) %106 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather31 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather32, <4 x double> %106) %108 = fadd <4 x double> %wide.masked.gather25, %100 %109 = fadd <4 x double> %wide.masked.gather26, %102 %110 = fsub <4 x double> %wide.masked.gather25, %100 %111 = fsub <4 x double> %wide.masked.gather26, %102 %112 = fadd <4 x double> %95, %105 %113 = fadd <4 x double> %97, %107 %114 = fsub <4 x double> %95, %105 %115 = fsub <4 x double> %97, %107 %116 = fadd <4 x double> %108, %112 %117 = fadd <4 x double> %109, %113 %118 = fsub <4 x double> %110, %115 %119 = fadd <4 x double> %111, %114 %120 = fsub <4 x double> %108, %112 %121 = fsub <4 x double> %109, %113 %122 = fadd <4 x double> %110, %115 %123 = fsub <4 x double> %111, %114 %124 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 1 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 5 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 9 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 13 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 1, i32 1 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 5, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %130 = fmul <4 x double> %wide.masked.gather36, %89 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather35, <4 x double> %130) %132 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather35 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather36, <4 x double> %132) %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 9, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %135 = fmul <4 x double> %wide.masked.gather38, %90 %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather37, <4 x double> %135) %137 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather37 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather38, <4 x double> %137) %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %139 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 13, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %140 = fmul <4 x double> %wide.masked.gather40, %91 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather39, <4 x double> %140) %142 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather39 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather40, <4 x double> %142) %144 = fadd <4 x double> %wide.masked.gather33, %136 %145 = fadd <4 x double> %wide.masked.gather34, %138 %146 = fsub <4 x double> %wide.masked.gather33, %136 %147 = fsub <4 x double> %wide.masked.gather34, %138 %148 = fadd <4 x double> %131, %141 %149 = fadd <4 x double> %133, %143 %150 = fsub <4 x double> %131, %141 %151 = fsub <4 x double> %133, %143 %152 = fadd <4 x double> %144, %148 %153 = fadd <4 x double> %145, %149 %154 = fsub <4 x double> %146, %151 %155 = fadd <4 x double> %147, %150 %156 = fsub <4 x double> %144, %148 %157 = fsub <4 x double> %145, %149 %158 = fadd <4 x double> %146, %151 %159 = fsub <4 x double> %147, %150 %160 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 2 %161 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 6 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 10 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 14 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 2, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 6, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %166 = fmul <4 x double> %wide.masked.gather44, %89 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather43, <4 x double> %166) %168 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather43 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather44, <4 x double> %168) %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 10, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %171 = fmul <4 x double> %wide.masked.gather46, %90 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather45, <4 x double> %171) %173 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather45 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather46, <4 x double> %173) %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %175 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 14, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %175, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %176 = fmul <4 x double> %wide.masked.gather48, %91 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather47, <4 x double> %176) %178 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather47 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather48, <4 x double> %178) %180 = fadd <4 x double> %wide.masked.gather41, %172 %181 = fadd <4 x double> %wide.masked.gather42, %174 %182 = fsub <4 x double> %wide.masked.gather41, %172 %183 = fsub <4 x double> %wide.masked.gather42, %174 %184 = fadd <4 x double> %167, %177 %185 = fadd <4 x double> %169, %179 %186 = fsub <4 x double> %167, %177 %187 = fsub <4 x double> %169, %179 %188 = fadd <4 x double> %180, %184 %189 = fadd <4 x double> %181, %185 %190 = fsub <4 x double> %182, %187 %191 = fadd <4 x double> %183, %186 %192 = fsub <4 x double> %180, %184 %193 = fsub <4 x double> %181, %185 %194 = fadd <4 x double> %182, %187 %195 = fsub <4 x double> %183, %186 %196 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 3 %197 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 7 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 11 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 15 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %196, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 3, i32 1 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %197, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 7, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %202 = fmul <4 x double> %wide.masked.gather52, %89 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather51, <4 x double> %202) %204 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather51 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather52, <4 x double> %204) %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %206 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 11, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %206, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %207 = fmul <4 x double> %wide.masked.gather54, %90 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather53, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather53 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather54, <4 x double> %209) %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %211 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %79, i64 15, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %211, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %212 = fmul <4 x double> %wide.masked.gather56, %91 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather55, <4 x double> %212) %214 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather55 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather56, <4 x double> %214) %216 = fadd <4 x double> %wide.masked.gather49, %208 %217 = fadd <4 x double> %wide.masked.gather50, %210 %218 = fsub <4 x double> %wide.masked.gather49, %208 %219 = fsub <4 x double> %wide.masked.gather50, %210 %220 = fadd <4 x double> %203, %213 %221 = fadd <4 x double> %205, %215 %222 = fsub <4 x double> %203, %213 %223 = fsub <4 x double> %205, %215 %224 = fadd <4 x double> %216, %220 %225 = fadd <4 x double> %217, %221 %226 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> %227 = shufflevector <4 x double> %152, <4 x double> %153, <8 x i32> %228 = shufflevector <4 x double> %188, <4 x double> %189, <8 x i32> %229 = shufflevector <4 x double> %224, <4 x double> %225, <8 x i32> %230 = shufflevector <8 x double> %226, <8 x double> %227, <16 x i32> %231 = shufflevector <8 x double> %228, <8 x double> %229, <16 x i32> %interleaved.vec57 = shufflevector <16 x double> %230, <16 x double> %231, <32 x i32> store <32 x double> %interleaved.vec57, ptr %scratch.0, align 8, !noalias !4941 %232 = fsub <4 x double> %218, %223 %233 = fadd <4 x double> %219, %222 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %235 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> %236 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> %237 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %238 = shufflevector <4 x double> %232, <4 x double> %233, <8 x i32> %239 = shufflevector <8 x double> %235, <8 x double> %236, <16 x i32> %240 = shufflevector <8 x double> %237, <8 x double> %238, <16 x i32> %interleaved.vec58 = shufflevector <16 x double> %239, <16 x double> %240, <32 x i32> store <32 x double> %interleaved.vec58, ptr %234, align 8, !noalias !4941 %241 = fsub <4 x double> %216, %220 %242 = fsub <4 x double> %217, %221 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %244 = shufflevector <4 x double> %120, <4 x double> %121, <8 x i32> %245 = shufflevector <4 x double> %156, <4 x double> %157, <8 x i32> %246 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> %247 = shufflevector <4 x double> %241, <4 x double> %242, <8 x i32> %248 = shufflevector <8 x double> %244, <8 x double> %245, <16 x i32> %249 = shufflevector <8 x double> %246, <8 x double> %247, <16 x i32> %interleaved.vec59 = shufflevector <16 x double> %248, <16 x double> %249, <32 x i32> store <32 x double> %interleaved.vec59, ptr %243, align 8, !noalias !4941 %250 = fadd <4 x double> %218, %223 %251 = fsub <4 x double> %219, %222 %252 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %253 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> %254 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> %255 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> %256 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> %257 = shufflevector <8 x double> %253, <8 x double> %254, <16 x i32> %258 = shufflevector <8 x double> %255, <8 x double> %256, <16 x i32> %interleaved.vec60 = shufflevector <16 x double> %257, <16 x double> %258, <32 x i32> store <32 x double> %interleaved.vec60, ptr %252, align 8, !noalias !4941 %259 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %260 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %260, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %261 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %261, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %262 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %262, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %263 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %263, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %264 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %264, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %265 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %265, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %266 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 2 %267 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 1 %268 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 3 %269 = fneg <4 x double> %wide.masked.gather71 %270 = fneg <4 x double> %wide.masked.gather73 %271 = fneg <4 x double> %wide.masked.gather75 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %259, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %272 = getelementptr inbounds i8, <4 x ptr> %259, i64 8 %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %267, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %273 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 1, i32 1 %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %274 = fmul <4 x double> %wide.masked.gather79, %269 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70, <4 x double> %wide.masked.gather78, <4 x double> %274) %276 = fmul <4 x double> %wide.masked.gather71, %wide.masked.gather78 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70, <4 x double> %wide.masked.gather79, <4 x double> %276) %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %266, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %278 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 2, i32 1 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %278, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %279 = fmul <4 x double> %wide.masked.gather81, %270 %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72, <4 x double> %wide.masked.gather80, <4 x double> %279) %281 = fmul <4 x double> %wide.masked.gather73, %wide.masked.gather80 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72, <4 x double> %wide.masked.gather81, <4 x double> %281) %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %268, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %283 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %259, i64 3, i32 1 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %283, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %284 = fmul <4 x double> %wide.masked.gather83, %271 %285 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74, <4 x double> %wide.masked.gather82, <4 x double> %284) %286 = fmul <4 x double> %wide.masked.gather75, %wide.masked.gather82 %287 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74, <4 x double> %wide.masked.gather83, <4 x double> %286) %288 = fadd <4 x double> %wide.masked.gather76, %280 %289 = fadd <4 x double> %wide.masked.gather77, %282 %290 = fsub <4 x double> %wide.masked.gather76, %280 %291 = fsub <4 x double> %wide.masked.gather77, %282 %292 = fadd <4 x double> %275, %285 %293 = fadd <4 x double> %277, %287 %294 = fsub <4 x double> %275, %285 %295 = fsub <4 x double> %277, %287 %296 = fadd <4 x double> %288, %292 %297 = fadd <4 x double> %289, %293 %interleaved.vec84 = shufflevector <4 x double> %296, <4 x double> %297, <8 x i32> store <8 x double> %interleaved.vec84, ptr %buf.0, align 8, !noalias !4941 %298 = fsub <4 x double> %290, %295 %299 = fadd <4 x double> %291, %294 %interleaved.vec85 = shufflevector <4 x double> %298, <4 x double> %299, <8 x i32> store <8 x double> %interleaved.vec85, ptr %1, align 8, !noalias !4941 %300 = fsub <4 x double> %288, %292 %301 = fsub <4 x double> %289, %293 %interleaved.vec86 = shufflevector <4 x double> %300, <4 x double> %301, <8 x i32> store <8 x double> %interleaved.vec86, ptr %0, align 8, !noalias !4941 %302 = fadd <4 x double> %290, %295 %303 = fsub <4 x double> %291, %294 %interleaved.vec87 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec87, ptr %2, align 8, !noalias !4941 %304 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %305 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather70.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %305, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %306 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather71.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %306, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %307 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather72.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %307, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %308 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather73.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %308, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %309 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather74.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %309, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %310 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather75.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %310, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %311 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 2 %312 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 1 %313 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 3 %314 = fneg <4 x double> %wide.masked.gather71.1 %315 = fneg <4 x double> %wide.masked.gather73.1 %316 = fneg <4 x double> %wide.masked.gather75.1 %wide.masked.gather76.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %304, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %317 = getelementptr inbounds i8, <4 x ptr> %304, i64 8 %wide.masked.gather77.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %317, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather78.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %312, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %318 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 1, i32 1 %wide.masked.gather79.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %318, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %319 = fmul <4 x double> %wide.masked.gather79.1, %314 %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.1, <4 x double> %wide.masked.gather78.1, <4 x double> %319) %321 = fmul <4 x double> %wide.masked.gather71.1, %wide.masked.gather78.1 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.1, <4 x double> %wide.masked.gather79.1, <4 x double> %321) %wide.masked.gather80.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %311, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %323 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 2, i32 1 %wide.masked.gather81.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %323, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %324 = fmul <4 x double> %wide.masked.gather81.1, %315 %325 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.1, <4 x double> %wide.masked.gather80.1, <4 x double> %324) %326 = fmul <4 x double> %wide.masked.gather73.1, %wide.masked.gather80.1 %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.1, <4 x double> %wide.masked.gather81.1, <4 x double> %326) %wide.masked.gather82.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %313, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %328 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %304, i64 3, i32 1 %wide.masked.gather83.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %329 = fmul <4 x double> %wide.masked.gather83.1, %316 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.1, <4 x double> %wide.masked.gather82.1, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather75.1, %wide.masked.gather82.1 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.1, <4 x double> %wide.masked.gather83.1, <4 x double> %331) %333 = fadd <4 x double> %wide.masked.gather76.1, %325 %334 = fadd <4 x double> %wide.masked.gather77.1, %327 %335 = fsub <4 x double> %wide.masked.gather76.1, %325 %336 = fsub <4 x double> %wide.masked.gather77.1, %327 %337 = fadd <4 x double> %320, %330 %338 = fadd <4 x double> %322, %332 %339 = fsub <4 x double> %320, %330 %340 = fsub <4 x double> %322, %332 %341 = fadd <4 x double> %333, %337 %342 = fadd <4 x double> %334, %338 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec84.1 = shufflevector <4 x double> %341, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec84.1, ptr %343, align 8, !noalias !4941 %344 = fsub <4 x double> %335, %340 %345 = fadd <4 x double> %336, %339 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec85.1 = shufflevector <4 x double> %344, <4 x double> %345, <8 x i32> store <8 x double> %interleaved.vec85.1, ptr %346, align 8, !noalias !4941 %347 = fsub <4 x double> %333, %337 %348 = fsub <4 x double> %334, %338 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec86.1 = shufflevector <4 x double> %347, <4 x double> %348, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %349, align 8, !noalias !4941 %350 = fadd <4 x double> %335, %340 %351 = fsub <4 x double> %336, %339 %352 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec87.1 = shufflevector <4 x double> %350, <4 x double> %351, <8 x i32> store <8 x double> %interleaved.vec87.1, ptr %352, align 8, !noalias !4941 %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %354 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather70.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %355 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather71.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %355, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %356 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather72.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %356, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %357 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather73.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %357, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %358 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather74.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %358, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %359 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather75.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %360 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 2 %361 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 1 %362 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 3 %363 = fneg <4 x double> %wide.masked.gather71.2 %364 = fneg <4 x double> %wide.masked.gather73.2 %365 = fneg <4 x double> %wide.masked.gather75.2 %wide.masked.gather76.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %353, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %366 = getelementptr inbounds i8, <4 x ptr> %353, i64 8 %wide.masked.gather77.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %wide.masked.gather78.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %361, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %367 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 1, i32 1 %wide.masked.gather79.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %368 = fmul <4 x double> %wide.masked.gather79.2, %363 %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.2, <4 x double> %wide.masked.gather78.2, <4 x double> %368) %370 = fmul <4 x double> %wide.masked.gather71.2, %wide.masked.gather78.2 %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather70.2, <4 x double> %wide.masked.gather79.2, <4 x double> %370) %wide.masked.gather80.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %360, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %372 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 2, i32 1 %wide.masked.gather81.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %373 = fmul <4 x double> %wide.masked.gather81.2, %364 %374 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.2, <4 x double> %wide.masked.gather80.2, <4 x double> %373) %375 = fmul <4 x double> %wide.masked.gather73.2, %wide.masked.gather80.2 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather72.2, <4 x double> %wide.masked.gather81.2, <4 x double> %375) %wide.masked.gather82.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %362, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %377 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %353, i64 3, i32 1 %wide.masked.gather83.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !4941 %378 = fmul <4 x double> %wide.masked.gather83.2, %365 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.2, <4 x double> %wide.masked.gather82.2, <4 x double> %378) %380 = fmul <4 x double> %wide.masked.gather75.2, %wide.masked.gather82.2 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather74.2, <4 x double> %wide.masked.gather83.2, <4 x double> %380) %382 = fadd <4 x double> %wide.masked.gather76.2, %374 %383 = fadd <4 x double> %wide.masked.gather77.2, %376 %384 = fsub <4 x double> %wide.masked.gather76.2, %374 %385 = fsub <4 x double> %wide.masked.gather77.2, %376 %386 = fadd <4 x double> %369, %379 %387 = fadd <4 x double> %371, %381 %388 = fsub <4 x double> %369, %379 %389 = fsub <4 x double> %371, %381 %390 = fadd <4 x double> %382, %386 %391 = fadd <4 x double> %383, %387 %392 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec84.2 = shufflevector <4 x double> %390, <4 x double> %391, <8 x i32> store <8 x double> %interleaved.vec84.2, ptr %392, align 8, !noalias !4941 %393 = fsub <4 x double> %384, %389 %394 = fadd <4 x double> %385, %388 %395 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec85.2 = shufflevector <4 x double> %393, <4 x double> %394, <8 x i32> store <8 x double> %interleaved.vec85.2, ptr %395, align 8, !noalias !4941 %396 = fsub <4 x double> %382, %386 %397 = fsub <4 x double> %383, %387 %398 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec86.2 = shufflevector <4 x double> %396, <4 x double> %397, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %398, align 8, !noalias !4941 %399 = fadd <4 x double> %384, %389 %400 = fsub <4 x double> %385, %388 %401 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec87.2 = shufflevector <4 x double> %399, <4 x double> %400, <8 x i32> store <8 x double> %interleaved.vec87.2, ptr %401, align 8, !noalias !4941 %data.i.i.i.i.i.i.i.i.i.i.i.i410 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i.i.i.i.i.i420 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i.i.i.i.i.i.i.i424 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i.i.i.i.i428 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %data.i5.i.i.i.i.i.i.i.i.i.i.i432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %402 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i.i = load double, ptr %402, align 8, !noalias !4941, !noundef !3 %403 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %403, align 8, !noalias !4941, !noundef !3 %404 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2 %w2.0.i.i.i = load double, ptr %404, align 8, !noalias !4941, !noundef !3 %405 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %405, align 8, !noalias !4941, !noundef !3 %406 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3 %w3.0.i.i.i = load double, ptr %406, align 8, !noalias !4941, !noundef !3 %407 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %407, align 8, !noalias !4941, !noundef !3 %408 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %409 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49 %410 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i420, align 8, !noalias !4941, !noundef !3 %411 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48, i32 1 %a.1.i.i.i = load double, ptr %411, align 8, !noalias !4941, !noundef !3 %_84.0.i.i.i = load double, ptr %409, align 8, !noalias !4941, !noundef !3 %412 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49, i32 1 %_84.1.i.i.i = load double, ptr %412, align 8, !noalias !4941, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %413 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %414 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %408, align 8, !noalias !4941, !noundef !3 %415 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50, i32 1 %_86.1.i.i.i = load double, ptr %415, align 8, !noalias !4941, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %416 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %417 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %410, align 8, !noalias !4941, !noundef !3 %418 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51, i32 1 %_88.1.i.i.i = load double, ptr %418, align 8, !noalias !4941, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %419 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %420 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i565 = fadd double %a.0.i.i.i, %416 %_0.i3.i566 = fadd double %a.1.i.i.i, %417 %_0.i.i567 = fsub double %a.0.i.i.i, %416 %_0.i3.i568 = fsub double %a.1.i.i.i, %417 %_0.i.i569 = fadd double %413, %419 %_0.i3.i570 = fadd double %414, %420 %_0.i.i571 = fsub double %413, %419 %_0.i3.i572 = fsub double %414, %420 %_0.i.i573 = fadd double %_0.i.i565, %_0.i.i569 %_0.i3.i574 = fadd double %_0.i3.i566, %_0.i3.i570 store double %_0.i.i573, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410, align 8, !noalias !4941 %421 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12, i32 1 store double %_0.i3.i574, ptr %421, align 8, !noalias !4941 %_0.i.i575 = fsub double %_0.i.i567, %_0.i3.i572 %_0.i3.i576 = fadd double %_0.i3.i568, %_0.i.i571 store double %_0.i.i575, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432, align 8, !noalias !4941 %422 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28, i32 1 store double %_0.i3.i576, ptr %422, align 8, !noalias !4941 %_0.i.i577 = fsub double %_0.i.i565, %_0.i.i569 %_0.i3.i578 = fsub double %_0.i3.i566, %_0.i3.i570 store double %_0.i.i577, ptr %data.i.i.i.i.i.i.i.i.i.i428, align 8, !noalias !4941 %423 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44, i32 1 store double %_0.i3.i578, ptr %423, align 8, !noalias !4941 %_0.i.i579 = fadd double %_0.i.i567, %_0.i3.i572 %_0.i3.i580 = fsub double %_0.i3.i568, %_0.i.i571 store double %_0.i.i579, ptr %data.i.i.i.i.i.i.i.i424, align 8, !noalias !4941 %424 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60, i32 1 store double %_0.i3.i580, ptr %424, align 8, !noalias !4941 %data.i.i.i.i.i.i.i.i.i.i.i.i410.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i420.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %data.i.i.i.i.i.i.i.i424.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.i.i.i.i428.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45 %data.i5.i.i.i.i.i.i.i.i.i.i.i432.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %425 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1 %w1.0.i.i.i.1 = load double, ptr %425, align 8, !noalias !4941, !noundef !3 %426 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %426, align 8, !noalias !4941, !noundef !3 %427 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2 %w2.0.i.i.i.1 = load double, ptr %427, align 8, !noalias !4941, !noundef !3 %428 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %428, align 8, !noalias !4941, !noundef !3 %429 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3 %w3.0.i.i.i.1 = load double, ptr %429, align 8, !noalias !4941, !noundef !3 %430 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %430, align 8, !noalias !4941, !noundef !3 %431 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %432 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53 %433 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i420.1, align 8, !noalias !4941, !noundef !3 %434 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52, i32 1 %a.1.i.i.i.1 = load double, ptr %434, align 8, !noalias !4941, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %432, align 8, !noalias !4941, !noundef !3 %435 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53, i32 1 %_84.1.i.i.i.1 = load double, ptr %435, align 8, !noalias !4941, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %436 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %437 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %431, align 8, !noalias !4941, !noundef !3 %438 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54, i32 1 %_86.1.i.i.i.1 = load double, ptr %438, align 8, !noalias !4941, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %439 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %440 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %433, align 8, !noalias !4941, !noundef !3 %441 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55, i32 1 %_88.1.i.i.i.1 = load double, ptr %441, align 8, !noalias !4941, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %442 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %443 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i565.1 = fadd double %a.0.i.i.i.1, %439 %_0.i3.i566.1 = fadd double %a.1.i.i.i.1, %440 %_0.i.i567.1 = fsub double %a.0.i.i.i.1, %439 %_0.i3.i568.1 = fsub double %a.1.i.i.i.1, %440 %_0.i.i569.1 = fadd double %436, %442 %_0.i3.i570.1 = fadd double %437, %443 %_0.i.i571.1 = fsub double %436, %442 %_0.i3.i572.1 = fsub double %437, %443 %_0.i.i573.1 = fadd double %_0.i.i565.1, %_0.i.i569.1 %_0.i3.i574.1 = fadd double %_0.i3.i566.1, %_0.i3.i570.1 store double %_0.i.i573.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410.1, align 8, !noalias !4941 %444 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13, i32 1 store double %_0.i3.i574.1, ptr %444, align 8, !noalias !4941 %_0.i.i575.1 = fsub double %_0.i.i567.1, %_0.i3.i572.1 %_0.i3.i576.1 = fadd double %_0.i3.i568.1, %_0.i.i571.1 store double %_0.i.i575.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432.1, align 8, !noalias !4941 %445 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29, i32 1 store double %_0.i3.i576.1, ptr %445, align 8, !noalias !4941 %_0.i.i577.1 = fsub double %_0.i.i565.1, %_0.i.i569.1 %_0.i3.i578.1 = fsub double %_0.i3.i566.1, %_0.i3.i570.1 store double %_0.i.i577.1, ptr %data.i.i.i.i.i.i.i.i.i.i428.1, align 8, !noalias !4941 %446 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45, i32 1 store double %_0.i3.i578.1, ptr %446, align 8, !noalias !4941 %_0.i.i579.1 = fadd double %_0.i.i567.1, %_0.i3.i572.1 %_0.i3.i580.1 = fsub double %_0.i3.i568.1, %_0.i.i571.1 store double %_0.i.i579.1, ptr %data.i.i.i.i.i.i.i.i424.1, align 8, !noalias !4941 %447 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61, i32 1 store double %_0.i3.i580.1, ptr %447, align 8, !noalias !4941 %data.i.i.i.i.i.i.i.i.i.i.i.i410.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i.i.i.i.i.i420.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i.i.i.i.i.i.i.i424.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.i.i.i.i428.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %data.i5.i.i.i.i.i.i.i.i.i.i.i432.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %448 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.i.i.i.2 = load double, ptr %448, align 8, !noalias !4941, !noundef !3 %449 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %449, align 8, !noalias !4941, !noundef !3 %450 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2 %w2.0.i.i.i.2 = load double, ptr %450, align 8, !noalias !4941, !noundef !3 %451 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %451, align 8, !noalias !4941, !noundef !3 %452 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3 %w3.0.i.i.i.2 = load double, ptr %452, align 8, !noalias !4941, !noundef !3 %453 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %453, align 8, !noalias !4941, !noundef !3 %454 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %455 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57 %456 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i420.2, align 8, !noalias !4941, !noundef !3 %457 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56, i32 1 %a.1.i.i.i.2 = load double, ptr %457, align 8, !noalias !4941, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %455, align 8, !noalias !4941, !noundef !3 %458 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57, i32 1 %_84.1.i.i.i.2 = load double, ptr %458, align 8, !noalias !4941, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %459 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %460 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %454, align 8, !noalias !4941, !noundef !3 %461 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58, i32 1 %_86.1.i.i.i.2 = load double, ptr %461, align 8, !noalias !4941, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %462 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %463 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %456, align 8, !noalias !4941, !noundef !3 %464 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59, i32 1 %_88.1.i.i.i.2 = load double, ptr %464, align 8, !noalias !4941, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %465 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %466 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i565.2 = fadd double %a.0.i.i.i.2, %462 %_0.i3.i566.2 = fadd double %a.1.i.i.i.2, %463 %_0.i.i567.2 = fsub double %a.0.i.i.i.2, %462 %_0.i3.i568.2 = fsub double %a.1.i.i.i.2, %463 %_0.i.i569.2 = fadd double %459, %465 %_0.i3.i570.2 = fadd double %460, %466 %_0.i.i571.2 = fsub double %459, %465 %_0.i3.i572.2 = fsub double %460, %466 %_0.i.i573.2 = fadd double %_0.i.i565.2, %_0.i.i569.2 %_0.i3.i574.2 = fadd double %_0.i3.i566.2, %_0.i3.i570.2 store double %_0.i.i573.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410.2, align 8, !noalias !4941 %467 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14, i32 1 store double %_0.i3.i574.2, ptr %467, align 8, !noalias !4941 %_0.i.i575.2 = fsub double %_0.i.i567.2, %_0.i3.i572.2 %_0.i3.i576.2 = fadd double %_0.i3.i568.2, %_0.i.i571.2 store double %_0.i.i575.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432.2, align 8, !noalias !4941 %468 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30, i32 1 store double %_0.i3.i576.2, ptr %468, align 8, !noalias !4941 %_0.i.i577.2 = fsub double %_0.i.i565.2, %_0.i.i569.2 %_0.i3.i578.2 = fsub double %_0.i3.i566.2, %_0.i3.i570.2 store double %_0.i.i577.2, ptr %data.i.i.i.i.i.i.i.i.i.i428.2, align 8, !noalias !4941 %469 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46, i32 1 store double %_0.i3.i578.2, ptr %469, align 8, !noalias !4941 %_0.i.i579.2 = fadd double %_0.i.i567.2, %_0.i3.i572.2 %_0.i3.i580.2 = fsub double %_0.i3.i568.2, %_0.i.i571.2 store double %_0.i.i579.2, ptr %data.i.i.i.i.i.i.i.i424.2, align 8, !noalias !4941 %470 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62, i32 1 store double %_0.i3.i580.2, ptr %470, align 8, !noalias !4941 %data.i.i.i.i.i.i.i.i.i.i.i.i410.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i420.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %data.i.i.i.i.i.i.i.i424.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.i.i.i.i428.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47 %data.i5.i.i.i.i.i.i.i.i.i.i.i432.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %471 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1 %w1.0.i.i.i.3 = load double, ptr %471, align 8, !noalias !4941, !noundef !3 %472 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %472, align 8, !noalias !4941, !noundef !3 %473 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2 %w2.0.i.i.i.3 = load double, ptr %473, align 8, !noalias !4941, !noundef !3 %474 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %474, align 8, !noalias !4941, !noundef !3 %475 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3 %w3.0.i.i.i.3 = load double, ptr %475, align 8, !noalias !4941, !noundef !3 %476 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %476, align 8, !noalias !4941, !noundef !3 %477 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %478 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61 %479 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i420.3, align 8, !noalias !4941, !noundef !3 %480 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60, i32 1 %a.1.i.i.i.3 = load double, ptr %480, align 8, !noalias !4941, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %478, align 8, !noalias !4941, !noundef !3 %481 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61, i32 1 %_84.1.i.i.i.3 = load double, ptr %481, align 8, !noalias !4941, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %482 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %483 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %477, align 8, !noalias !4941, !noundef !3 %484 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62, i32 1 %_86.1.i.i.i.3 = load double, ptr %484, align 8, !noalias !4941, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %485 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %486 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %479, align 8, !noalias !4941, !noundef !3 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63, i32 1 %_88.1.i.i.i.3 = load double, ptr %487, align 8, !noalias !4941, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %488 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %489 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i565.3 = fadd double %a.0.i.i.i.3, %485 %_0.i3.i566.3 = fadd double %a.1.i.i.i.3, %486 %_0.i.i567.3 = fsub double %a.0.i.i.i.3, %485 %_0.i3.i568.3 = fsub double %a.1.i.i.i.3, %486 %_0.i.i569.3 = fadd double %482, %488 %_0.i3.i570.3 = fadd double %483, %489 %_0.i.i571.3 = fsub double %482, %488 %_0.i3.i572.3 = fsub double %483, %489 %_0.i.i573.3 = fadd double %_0.i.i565.3, %_0.i.i569.3 %_0.i3.i574.3 = fadd double %_0.i3.i566.3, %_0.i3.i570.3 store double %_0.i.i573.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i410.3, align 8, !noalias !4941 %490 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15, i32 1 store double %_0.i3.i574.3, ptr %490, align 8, !noalias !4941 %_0.i.i575.3 = fsub double %_0.i.i567.3, %_0.i3.i572.3 %_0.i3.i576.3 = fadd double %_0.i3.i568.3, %_0.i.i571.3 store double %_0.i.i575.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i432.3, align 8, !noalias !4941 %491 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31, i32 1 store double %_0.i3.i576.3, ptr %491, align 8, !noalias !4941 %_0.i.i577.3 = fsub double %_0.i.i565.3, %_0.i.i569.3 %_0.i3.i578.3 = fsub double %_0.i3.i566.3, %_0.i3.i570.3 store double %_0.i.i577.3, ptr %data.i.i.i.i.i.i.i.i.i.i428.3, align 8, !noalias !4941 %492 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47, i32 1 store double %_0.i3.i578.3, ptr %492, align 8, !noalias !4941 %_0.i.i579.3 = fadd double %_0.i.i567.3, %_0.i3.i572.3 %_0.i3.i580.3 = fsub double %_0.i3.i568.3, %_0.i.i571.3 store double %_0.i.i579.3, ptr %data.i.i.i.i.i.i.i.i424.3, align 8, !noalias !4941 %493 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63, i32 1 store double %_0.i3.i580.3, ptr %493, align 8, !noalias !4941 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4941 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb89e79f2cf5e2973E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4949 store i64 8, ptr %n.i, align 8, !noalias !4949 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4949 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4949 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4949 store ptr null, ptr %_16.i, align 8, !noalias !4949 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4949 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4949 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4949 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4949 store ptr null, ptr %_24.i, align 8, !noalias !4949 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4949 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4949 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4949 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4949 store ptr null, ptr %_32.i, align 8, !noalias !4949 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4949 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4949 store i64 %w.1, ptr %_34.i, align 8, !noalias !4949 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %bb9.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4949 store ptr null, ptr %_40.i, align 8, !noalias !4949 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4949 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %1 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i = load double, ptr %1, align 8, !noalias !4952, !noundef !3 %2 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i = load double, ptr %2, align 8, !noalias !4952, !noundef !3 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_6.i.i.i = fneg double %w1.1.i.i %4 = load <2 x double>, ptr %buf.0, align 8, !noalias !4952 %5 = load <2 x double>, ptr %0, align 8, !noalias !4952 %6 = fadd <2 x double> %4, %5 store <2 x double> %6, ptr %scratch.0, align 8, !noalias !4952 %7 = fsub <2 x double> %4, %5 %8 = shufflevector <2 x double> %7, <2 x double> poison, <2 x i32> %9 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %10 = insertelement <2 x double> %9, double %w1.1.i.i, i64 1 %11 = fmul <2 x double> %8, %10 %12 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %13 = shufflevector <2 x double> %12, <2 x double> poison, <2 x i32> zeroinitializer %14 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %13, <2 x double> %7, <2 x double> %11) store <2 x double> %14, ptr %3, align 8, !noalias !4952 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %15 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.1 = load double, ptr %15, align 8, !noalias !4952, !noundef !3 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %16, align 8, !noalias !4952, !noundef !3 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %18 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4952 %19 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4952 %20 = fadd <2 x double> %18, %19 store <2 x double> %20, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4952 %21 = fsub <2 x double> %18, %19 %22 = shufflevector <2 x double> %21, <2 x double> poison, <2 x i32> %23 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %24 = insertelement <2 x double> %23, double %w1.1.i.i.1, i64 1 %25 = fmul <2 x double> %22, %24 %26 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %27 = shufflevector <2 x double> %26, <2 x double> poison, <2 x i32> zeroinitializer %28 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %27, <2 x double> %21, <2 x double> %25) store <2 x double> %28, ptr %17, align 8, !noalias !4952 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %29 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.i.i.2 = load double, ptr %29, align 8, !noalias !4949, !noundef !3 %30 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %30, align 8, !noalias !4949, !noundef !3 %31 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %32 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4952 %33 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !4952 %34 = fadd <2 x double> %32, %33 store <2 x double> %34, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4952 %35 = fsub <2 x double> %32, %33 %36 = shufflevector <2 x double> %35, <2 x double> poison, <2 x i32> %37 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %38 = insertelement <2 x double> %37, double %w1.1.i.i.2, i64 1 %39 = fmul <2 x double> %36, %38 %40 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> zeroinitializer %42 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %41, <2 x double> %35, <2 x double> %39) store <2 x double> %42, ptr %31, align 8, !noalias !4952 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %43 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1 %w1.0.i.i.3 = load double, ptr %43, align 8, !noalias !4952, !noundef !3 %44 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %44, align 8, !noalias !4952, !noundef !3 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %46 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4952 %47 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !4952 %48 = fadd <2 x double> %46, %47 store <2 x double> %48, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4952 %49 = fsub <2 x double> %46, %47 %50 = shufflevector <2 x double> %49, <2 x double> poison, <2 x i32> %51 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %52 = insertelement <2 x double> %51, double %w1.1.i.i.3, i64 1 %53 = fmul <2 x double> %50, %52 %54 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %55 = shufflevector <2 x double> %54, <2 x double> poison, <2 x i32> zeroinitializer %56 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %55, <2 x double> %49, <2 x double> %53) store <2 x double> %56, ptr %45, align 8, !noalias !4952 %w1.0.i.i43 = load double, ptr %1, align 8, !noalias !4949, !noundef !3 %w1.1.i.i44 = load double, ptr %2, align 8, !noalias !4949, !noundef !3 %_6.i.i.i64 = fneg double %w1.1.i.i44 %57 = load <4 x double>, ptr %scratch.0, align 8, !noalias !4949 %58 = shufflevector <2 x double> %34, <2 x double> %42, <4 x i32> %59 = fadd <4 x double> %57, %58 store <4 x double> %59, ptr %buf.0, align 8, !noalias !4949 %60 = fsub <4 x double> %57, %58 %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = insertelement <4 x double> poison, double %_6.i.i.i64, i64 0 %63 = insertelement <4 x double> %62, double %w1.1.i.i44, i64 1 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %61, %64 %66 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %67 = shufflevector <4 x double> %66, <4 x double> poison, <4 x i32> zeroinitializer %68 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %67, <4 x double> %60, <4 x double> %65) store <4 x double> %68, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4949 %69 = load <4 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4949 %70 = shufflevector <2 x double> %48, <2 x double> %56, <4 x i32> %71 = fadd <4 x double> %69, %70 store <4 x double> %71, ptr %0, align 8, !noalias !4949 %72 = fsub <4 x double> %69, %70 %73 = shufflevector <4 x double> %72, <4 x double> poison, <4 x i32> %74 = insertelement <4 x double> poison, double %_6.i.i.i.2, i64 0 %75 = insertelement <4 x double> %74, double %w1.1.i.i.2, i64 1 %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %73, %76 %78 = insertelement <4 x double> poison, double %w1.0.i.i.2, i64 0 %79 = shufflevector <4 x double> %78, <4 x double> poison, <4 x i32> zeroinitializer %80 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %79, <4 x double> %72, <4 x double> %77) store <4 x double> %80, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !4949 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !4949 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !4949 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %81 = fadd <4 x double> %strided.vec, %strided.vec3 %82 = fadd <4 x double> %strided.vec1, %strided.vec4 %83 = fsub <4 x double> %strided.vec, %strided.vec3 %84 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %81, <4 x double> %82, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !4949 %85 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec5 = shufflevector <4 x double> %83, <4 x double> %84, <8 x i32> store <8 x double> %interleaved.vec5, ptr %85, align 8, !noalias !4949 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4949 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb89f75badd232403E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4955 store i64 256, ptr %n.i, align 8, !noalias !4955 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4955 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4955 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4955 store ptr null, ptr %_16.i, align 8, !noalias !4955 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4955 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4955 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4955 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4955 store ptr null, ptr %_24.i, align 8, !noalias !4955 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4955 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4955 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4955 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4955 store ptr null, ptr %_32.i, align 8, !noalias !4955 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4955 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4955 store i64 %w.1, ptr %_34.i, align 8, !noalias !4955 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4955 store ptr null, ptr %_40.i, align 8, !noalias !4955 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4955 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 br label %vector.body vector.body: ; preds = %vector.body, %bb18.i.i.i.i.preheader %index = phi i64 [ 0, %bb18.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %3 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %wide.vec = load <8 x double>, ptr %2, align 8, !noalias !4958 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %3, align 8, !noalias !4958 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %4 = fadd <4 x double> %strided.vec, %strided.vec3 %5 = fadd <4 x double> %strided.vec1, %strided.vec4 %6 = fsub <4 x double> %strided.vec, %strided.vec3 %7 = fsub <4 x double> %strided.vec1, %strided.vec4 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !4958 %9 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec5 = shufflevector <4 x double> %6, <4 x double> %7, <8 x i32> store <8 x double> %interleaved.vec5, ptr %9, align 8, !noalias !4958 %index.next = or disjoint i64 %index, 4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %11 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %10, align 8, !noalias !4958 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %11, align 8, !noalias !4958 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %13 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %14 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %15 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next %interleaved.vec.1 = shufflevector <4 x double> %12, <4 x double> %13, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %16, align 8, !noalias !4958 %17 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %interleaved.vec5.1 = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %17, align 8, !noalias !4958 %index.next.1 = add nuw nsw i64 %index, 8 %18 = icmp eq i64 %index.next.1, 128 br i1 %18, label %bb15.i.i31.i134.preheader, label %vector.body, !llvm.loop !4963 bb15.i.i31.i134.preheader: ; preds = %vector.body %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i42.i145 = load double, ptr %19, align 8, !noalias !4955, !noundef !3 %20 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i43.i146 = load double, ptr %20, align 8, !noalias !4955, !noundef !3 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %_6.i.i.i58.i161 = fneg double %w1.1.i.i43.i146 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i58.i161, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i42.i145, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i43.i146, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb15.i.i31.i134.preheader %index11 = phi i64 [ 0, %bb15.i.i31.i134.preheader ], [ %index.next24, %vector.body10 ] %22 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index11 %23 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index11 %wide.vec12 = load <8 x double>, ptr %22, align 8, !noalias !4955 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %23, align 8, !noalias !4955 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %24 = fmul <4 x double> %strided.vec17, %broadcast.splat %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %24) %26 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %27 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %26) %28 = fadd <4 x double> %strided.vec13, %25 %29 = fadd <4 x double> %strided.vec14, %27 %30 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index11 %interleaved.vec22 = shufflevector <4 x double> %28, <4 x double> %29, <8 x i32> store <8 x double> %interleaved.vec22, ptr %30, align 8, !noalias !4955 %31 = fsub <4 x double> %strided.vec13, %25 %32 = fsub <4 x double> %strided.vec14, %27 %33 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index11 %interleaved.vec23 = shufflevector <4 x double> %31, <4 x double> %32, <8 x i32> store <8 x double> %interleaved.vec23, ptr %33, align 8, !noalias !4955 %index.next24 = add nuw i64 %index11, 4 %34 = icmp eq i64 %index.next24, 64 br i1 %34, label %bb15.i.i31.i134.loopexit, label %vector.body10, !llvm.loop !4964 bb15.i.i31.i134.loopexit: ; preds = %vector.body10 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %35 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i42.i145.1 = load double, ptr %35, align 8, !noalias !4955, !noundef !3 %36 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i43.i146.1 = load double, ptr %36, align 8, !noalias !4955, !noundef !3 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %_6.i.i.i58.i161.1 = fneg double %w1.1.i.i43.i146.1 %broadcast.splatinsert37 = insertelement <4 x double> poison, double %_6.i.i.i58.i161.1, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert39 = insertelement <4 x double> poison, double %w1.0.i.i42.i145.1, i64 0 %broadcast.splat40 = shufflevector <4 x double> %broadcast.splatinsert39, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert41 = insertelement <4 x double> poison, double %w1.1.i.i43.i146.1, i64 0 %broadcast.splat42 = shufflevector <4 x double> %broadcast.splatinsert41, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body29 vector.body29: ; preds = %vector.body29, %bb15.i.i31.i134.loopexit %index30 = phi i64 [ 0, %bb15.i.i31.i134.loopexit ], [ %index.next45, %vector.body29 ] %38 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index30 %39 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index30 %wide.vec31 = load <8 x double>, ptr %38, align 8, !noalias !4955 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %39, align 8, !noalias !4955 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %40 = fmul <4 x double> %strided.vec36, %broadcast.splat38 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec35, <4 x double> %40) %42 = fmul <4 x double> %broadcast.splat42, %strided.vec35 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat40, <4 x double> %strided.vec36, <4 x double> %42) %44 = fadd <4 x double> %strided.vec32, %41 %45 = fadd <4 x double> %strided.vec33, %43 %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index30 %interleaved.vec43 = shufflevector <4 x double> %44, <4 x double> %45, <8 x i32> store <8 x double> %interleaved.vec43, ptr %46, align 8, !noalias !4955 %47 = fsub <4 x double> %strided.vec32, %41 %48 = fsub <4 x double> %strided.vec33, %43 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.1, i64 %index30 %interleaved.vec44 = shufflevector <4 x double> %47, <4 x double> %48, <8 x i32> store <8 x double> %interleaved.vec44, ptr %49, align 8, !noalias !4955 %index.next45 = add nuw i64 %index30, 4 %50 = icmp eq i64 %index.next45, 64 br i1 %50, label %bb15.i.i31.i134.loopexit.1, label %vector.body29, !llvm.loop !4965 bb15.i.i31.i134.loopexit.1: ; preds = %vector.body29 %51 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w1.1.i.i43.i146, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %w1.0.i.i42.i145, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert58 = insertelement <4 x double> poison, double %_6.i.i.i58.i161, i64 0 %broadcast.splat59 = shufflevector <4 x double> %broadcast.splatinsert58, <4 x double> poison, <4 x i32> zeroinitializer %wide.vec52 = load <8 x double>, ptr %buf.0, align 8, !noalias !4955 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %51, align 8, !noalias !4955 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %52 = fmul <4 x double> %strided.vec57, %broadcast.splat59 %53 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56, <4 x double> %52) %54 = fmul <4 x double> %broadcast.splat63, %strided.vec56 %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57, <4 x double> %54) %56 = fadd <4 x double> %strided.vec53, %53 %57 = fadd <4 x double> %strided.vec54, %55 %interleaved.vec64 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec64, ptr %scratch.0, align 8, !noalias !4955 %58 = fsub <4 x double> %strided.vec53, %53 %59 = fsub <4 x double> %strided.vec54, %55 %interleaved.vec65 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec65, ptr %0, align 8, !noalias !4955 %60 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %61 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %wide.vec52.1 = load <8 x double>, ptr %60, align 8, !noalias !4955 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %61, align 8, !noalias !4955 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec57.1, %broadcast.splat59 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.1, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat63, %strided.vec56.1 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.1, <4 x double> %64) %66 = fadd <4 x double> %strided.vec53.1, %63 %67 = fadd <4 x double> %strided.vec54.1, %65 %68 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec64.1 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec64.1, ptr %68, align 8, !noalias !4955 %69 = fsub <4 x double> %strided.vec53.1, %63 %70 = fsub <4 x double> %strided.vec54.1, %65 %71 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 132 %interleaved.vec65.1 = shufflevector <4 x double> %69, <4 x double> %70, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %71, align 8, !noalias !4955 %72 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %wide.vec52.2 = load <8 x double>, ptr %72, align 8, !noalias !4955 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %73, align 8, !noalias !4955 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %74 = fmul <4 x double> %strided.vec57.2, %broadcast.splat59 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.2, <4 x double> %74) %76 = fmul <4 x double> %broadcast.splat63, %strided.vec56.2 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.2, <4 x double> %76) %78 = fadd <4 x double> %strided.vec53.2, %75 %79 = fadd <4 x double> %strided.vec54.2, %77 %80 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec64.2 = shufflevector <4 x double> %78, <4 x double> %79, <8 x i32> store <8 x double> %interleaved.vec64.2, ptr %80, align 8, !noalias !4955 %81 = fsub <4 x double> %strided.vec53.2, %75 %82 = fsub <4 x double> %strided.vec54.2, %77 %83 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 136 %interleaved.vec65.2 = shufflevector <4 x double> %81, <4 x double> %82, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %83, align 8, !noalias !4955 %84 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %85 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %wide.vec52.3 = load <8 x double>, ptr %84, align 8, !noalias !4955 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %85, align 8, !noalias !4955 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %86 = fmul <4 x double> %strided.vec57.3, %broadcast.splat59 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.3, <4 x double> %86) %88 = fmul <4 x double> %broadcast.splat63, %strided.vec56.3 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.3, <4 x double> %88) %90 = fadd <4 x double> %strided.vec53.3, %87 %91 = fadd <4 x double> %strided.vec54.3, %89 %92 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec64.3 = shufflevector <4 x double> %90, <4 x double> %91, <8 x i32> store <8 x double> %interleaved.vec64.3, ptr %92, align 8, !noalias !4955 %93 = fsub <4 x double> %strided.vec53.3, %87 %94 = fsub <4 x double> %strided.vec54.3, %89 %95 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 140 %interleaved.vec65.3 = shufflevector <4 x double> %93, <4 x double> %94, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %95, align 8, !noalias !4955 %96 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %97 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec52.4 = load <8 x double>, ptr %96, align 8, !noalias !4955 %strided.vec53.4 = shufflevector <8 x double> %wide.vec52.4, <8 x double> poison, <4 x i32> %strided.vec54.4 = shufflevector <8 x double> %wide.vec52.4, <8 x double> poison, <4 x i32> %wide.vec55.4 = load <8 x double>, ptr %97, align 8, !noalias !4955 %strided.vec56.4 = shufflevector <8 x double> %wide.vec55.4, <8 x double> poison, <4 x i32> %strided.vec57.4 = shufflevector <8 x double> %wide.vec55.4, <8 x double> poison, <4 x i32> %98 = fmul <4 x double> %strided.vec57.4, %broadcast.splat59 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.4, <4 x double> %98) %100 = fmul <4 x double> %broadcast.splat63, %strided.vec56.4 %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.4, <4 x double> %100) %102 = fadd <4 x double> %strided.vec53.4, %99 %103 = fadd <4 x double> %strided.vec54.4, %101 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %interleaved.vec64.4 = shufflevector <4 x double> %102, <4 x double> %103, <8 x i32> store <8 x double> %interleaved.vec64.4, ptr %104, align 8, !noalias !4955 %105 = fsub <4 x double> %strided.vec53.4, %99 %106 = fsub <4 x double> %strided.vec54.4, %101 %107 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %interleaved.vec65.4 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec65.4, ptr %107, align 8, !noalias !4955 %108 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec52.5 = load <8 x double>, ptr %108, align 8, !noalias !4955 %strided.vec53.5 = shufflevector <8 x double> %wide.vec52.5, <8 x double> poison, <4 x i32> %strided.vec54.5 = shufflevector <8 x double> %wide.vec52.5, <8 x double> poison, <4 x i32> %wide.vec55.5 = load <8 x double>, ptr %109, align 8, !noalias !4955 %strided.vec56.5 = shufflevector <8 x double> %wide.vec55.5, <8 x double> poison, <4 x i32> %strided.vec57.5 = shufflevector <8 x double> %wide.vec55.5, <8 x double> poison, <4 x i32> %110 = fmul <4 x double> %strided.vec57.5, %broadcast.splat59 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.5, <4 x double> %110) %112 = fmul <4 x double> %broadcast.splat63, %strided.vec56.5 %113 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.5, <4 x double> %112) %114 = fadd <4 x double> %strided.vec53.5, %111 %115 = fadd <4 x double> %strided.vec54.5, %113 %116 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec64.5 = shufflevector <4 x double> %114, <4 x double> %115, <8 x i32> store <8 x double> %interleaved.vec64.5, ptr %116, align 8, !noalias !4955 %117 = fsub <4 x double> %strided.vec53.5, %111 %118 = fsub <4 x double> %strided.vec54.5, %113 %119 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 148 %interleaved.vec65.5 = shufflevector <4 x double> %117, <4 x double> %118, <8 x i32> store <8 x double> %interleaved.vec65.5, ptr %119, align 8, !noalias !4955 %120 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %121 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec52.6 = load <8 x double>, ptr %120, align 8, !noalias !4955 %strided.vec53.6 = shufflevector <8 x double> %wide.vec52.6, <8 x double> poison, <4 x i32> %strided.vec54.6 = shufflevector <8 x double> %wide.vec52.6, <8 x double> poison, <4 x i32> %wide.vec55.6 = load <8 x double>, ptr %121, align 8, !noalias !4955 %strided.vec56.6 = shufflevector <8 x double> %wide.vec55.6, <8 x double> poison, <4 x i32> %strided.vec57.6 = shufflevector <8 x double> %wide.vec55.6, <8 x double> poison, <4 x i32> %122 = fmul <4 x double> %strided.vec57.6, %broadcast.splat59 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.6, <4 x double> %122) %124 = fmul <4 x double> %broadcast.splat63, %strided.vec56.6 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.6, <4 x double> %124) %126 = fadd <4 x double> %strided.vec53.6, %123 %127 = fadd <4 x double> %strided.vec54.6, %125 %128 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec64.6 = shufflevector <4 x double> %126, <4 x double> %127, <8 x i32> store <8 x double> %interleaved.vec64.6, ptr %128, align 8, !noalias !4955 %129 = fsub <4 x double> %strided.vec53.6, %123 %130 = fsub <4 x double> %strided.vec54.6, %125 %131 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 152 %interleaved.vec65.6 = shufflevector <4 x double> %129, <4 x double> %130, <8 x i32> store <8 x double> %interleaved.vec65.6, ptr %131, align 8, !noalias !4955 %132 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %133 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec52.7 = load <8 x double>, ptr %132, align 8, !noalias !4955 %strided.vec53.7 = shufflevector <8 x double> %wide.vec52.7, <8 x double> poison, <4 x i32> %strided.vec54.7 = shufflevector <8 x double> %wide.vec52.7, <8 x double> poison, <4 x i32> %wide.vec55.7 = load <8 x double>, ptr %133, align 8, !noalias !4955 %strided.vec56.7 = shufflevector <8 x double> %wide.vec55.7, <8 x double> poison, <4 x i32> %strided.vec57.7 = shufflevector <8 x double> %wide.vec55.7, <8 x double> poison, <4 x i32> %134 = fmul <4 x double> %strided.vec57.7, %broadcast.splat59 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56.7, <4 x double> %134) %136 = fmul <4 x double> %broadcast.splat63, %strided.vec56.7 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57.7, <4 x double> %136) %138 = fadd <4 x double> %strided.vec53.7, %135 %139 = fadd <4 x double> %strided.vec54.7, %137 %140 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec64.7 = shufflevector <4 x double> %138, <4 x double> %139, <8 x i32> store <8 x double> %interleaved.vec64.7, ptr %140, align 8, !noalias !4955 %141 = fsub <4 x double> %strided.vec53.7, %135 %142 = fsub <4 x double> %strided.vec54.7, %137 %143 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 156 %interleaved.vec65.7 = shufflevector <4 x double> %141, <4 x double> %142, <8 x i32> store <8 x double> %interleaved.vec65.7, ptr %143, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i502.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %144 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.i.i.i190.1 = load double, ptr %144, align 8, !noalias !4955, !noundef !3 %145 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.i.i.i191.1 = load double, ptr %145, align 8, !noalias !4955, !noundef !3 %_6.i.i.i.i206.1 = fneg double %w1.1.i.i.i191.1 %broadcast.splatinsert83 = insertelement <4 x double> poison, double %w1.1.i.i.i191.1, i64 0 %broadcast.splat84 = shufflevector <4 x double> %broadcast.splatinsert83, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert81 = insertelement <4 x double> poison, double %w1.0.i.i.i190.1, i64 0 %broadcast.splat82 = shufflevector <4 x double> %broadcast.splatinsert81, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert79 = insertelement <4 x double> poison, double %_6.i.i.i.i206.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer %146 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i516.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %wide.vec73 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4955 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %146, align 8, !noalias !4955 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %147 = fmul <4 x double> %strided.vec78, %broadcast.splat80 %148 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77, <4 x double> %147) %149 = fmul <4 x double> %broadcast.splat84, %strided.vec77 %150 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78, <4 x double> %149) %151 = fadd <4 x double> %strided.vec74, %148 %152 = fadd <4 x double> %strided.vec75, %150 %interleaved.vec85 = shufflevector <4 x double> %151, <4 x double> %152, <8 x i32> store <8 x double> %interleaved.vec85, ptr %data.i.i.i.i.i.i.i.i502.1, align 8, !noalias !4955 %153 = fsub <4 x double> %strided.vec74, %148 %154 = fsub <4 x double> %strided.vec75, %150 %interleaved.vec86 = shufflevector <4 x double> %153, <4 x double> %154, <8 x i32> store <8 x double> %interleaved.vec86, ptr %data.i5.i.i.i.i.i.i.i516.1, align 8, !noalias !4955 %155 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %wide.vec73.1 = load <8 x double>, ptr %155, align 8, !noalias !4955 %strided.vec74.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %strided.vec75.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %wide.vec76.1 = load <8 x double>, ptr %156, align 8, !noalias !4955 %strided.vec77.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %strided.vec78.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %157 = fmul <4 x double> %strided.vec78.1, %broadcast.splat80 %158 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.1, <4 x double> %157) %159 = fmul <4 x double> %broadcast.splat84, %strided.vec77.1 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.1, <4 x double> %159) %161 = fadd <4 x double> %strided.vec74.1, %158 %162 = fadd <4 x double> %strided.vec75.1, %160 %163 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec85.1 = shufflevector <4 x double> %161, <4 x double> %162, <8 x i32> store <8 x double> %interleaved.vec85.1, ptr %163, align 8, !noalias !4955 %164 = fsub <4 x double> %strided.vec74.1, %158 %165 = fsub <4 x double> %strided.vec75.1, %160 %166 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 164 %interleaved.vec86.1 = shufflevector <4 x double> %164, <4 x double> %165, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %166, align 8, !noalias !4955 %167 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %168 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %wide.vec73.2 = load <8 x double>, ptr %167, align 8, !noalias !4955 %strided.vec74.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %strided.vec75.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %wide.vec76.2 = load <8 x double>, ptr %168, align 8, !noalias !4955 %strided.vec77.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %strided.vec78.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %169 = fmul <4 x double> %strided.vec78.2, %broadcast.splat80 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.2, <4 x double> %169) %171 = fmul <4 x double> %broadcast.splat84, %strided.vec77.2 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.2, <4 x double> %171) %173 = fadd <4 x double> %strided.vec74.2, %170 %174 = fadd <4 x double> %strided.vec75.2, %172 %175 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec85.2 = shufflevector <4 x double> %173, <4 x double> %174, <8 x i32> store <8 x double> %interleaved.vec85.2, ptr %175, align 8, !noalias !4955 %176 = fsub <4 x double> %strided.vec74.2, %170 %177 = fsub <4 x double> %strided.vec75.2, %172 %178 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 168 %interleaved.vec86.2 = shufflevector <4 x double> %176, <4 x double> %177, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %178, align 8, !noalias !4955 %179 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %180 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %wide.vec73.3 = load <8 x double>, ptr %179, align 8, !noalias !4955 %strided.vec74.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %strided.vec75.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %wide.vec76.3 = load <8 x double>, ptr %180, align 8, !noalias !4955 %strided.vec77.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %strided.vec78.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %181 = fmul <4 x double> %strided.vec78.3, %broadcast.splat80 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.3, <4 x double> %181) %183 = fmul <4 x double> %broadcast.splat84, %strided.vec77.3 %184 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.3, <4 x double> %183) %185 = fadd <4 x double> %strided.vec74.3, %182 %186 = fadd <4 x double> %strided.vec75.3, %184 %187 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec85.3 = shufflevector <4 x double> %185, <4 x double> %186, <8 x i32> store <8 x double> %interleaved.vec85.3, ptr %187, align 8, !noalias !4955 %188 = fsub <4 x double> %strided.vec74.3, %182 %189 = fsub <4 x double> %strided.vec75.3, %184 %190 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 172 %interleaved.vec86.3 = shufflevector <4 x double> %188, <4 x double> %189, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %190, align 8, !noalias !4955 %191 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %192 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %wide.vec73.4 = load <8 x double>, ptr %191, align 8, !noalias !4955 %strided.vec74.4 = shufflevector <8 x double> %wide.vec73.4, <8 x double> poison, <4 x i32> %strided.vec75.4 = shufflevector <8 x double> %wide.vec73.4, <8 x double> poison, <4 x i32> %wide.vec76.4 = load <8 x double>, ptr %192, align 8, !noalias !4955 %strided.vec77.4 = shufflevector <8 x double> %wide.vec76.4, <8 x double> poison, <4 x i32> %strided.vec78.4 = shufflevector <8 x double> %wide.vec76.4, <8 x double> poison, <4 x i32> %193 = fmul <4 x double> %strided.vec78.4, %broadcast.splat80 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.4, <4 x double> %193) %195 = fmul <4 x double> %broadcast.splat84, %strided.vec77.4 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.4, <4 x double> %195) %197 = fadd <4 x double> %strided.vec74.4, %194 %198 = fadd <4 x double> %strided.vec75.4, %196 %199 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %interleaved.vec85.4 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec85.4, ptr %199, align 8, !noalias !4955 %200 = fsub <4 x double> %strided.vec74.4, %194 %201 = fsub <4 x double> %strided.vec75.4, %196 %202 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %interleaved.vec86.4 = shufflevector <4 x double> %200, <4 x double> %201, <8 x i32> store <8 x double> %interleaved.vec86.4, ptr %202, align 8, !noalias !4955 %203 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %204 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %wide.vec73.5 = load <8 x double>, ptr %203, align 8, !noalias !4955 %strided.vec74.5 = shufflevector <8 x double> %wide.vec73.5, <8 x double> poison, <4 x i32> %strided.vec75.5 = shufflevector <8 x double> %wide.vec73.5, <8 x double> poison, <4 x i32> %wide.vec76.5 = load <8 x double>, ptr %204, align 8, !noalias !4955 %strided.vec77.5 = shufflevector <8 x double> %wide.vec76.5, <8 x double> poison, <4 x i32> %strided.vec78.5 = shufflevector <8 x double> %wide.vec76.5, <8 x double> poison, <4 x i32> %205 = fmul <4 x double> %strided.vec78.5, %broadcast.splat80 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.5, <4 x double> %205) %207 = fmul <4 x double> %broadcast.splat84, %strided.vec77.5 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.5, <4 x double> %207) %209 = fadd <4 x double> %strided.vec74.5, %206 %210 = fadd <4 x double> %strided.vec75.5, %208 %211 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec85.5 = shufflevector <4 x double> %209, <4 x double> %210, <8 x i32> store <8 x double> %interleaved.vec85.5, ptr %211, align 8, !noalias !4955 %212 = fsub <4 x double> %strided.vec74.5, %206 %213 = fsub <4 x double> %strided.vec75.5, %208 %214 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 180 %interleaved.vec86.5 = shufflevector <4 x double> %212, <4 x double> %213, <8 x i32> store <8 x double> %interleaved.vec86.5, ptr %214, align 8, !noalias !4955 %215 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %216 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %wide.vec73.6 = load <8 x double>, ptr %215, align 8, !noalias !4955 %strided.vec74.6 = shufflevector <8 x double> %wide.vec73.6, <8 x double> poison, <4 x i32> %strided.vec75.6 = shufflevector <8 x double> %wide.vec73.6, <8 x double> poison, <4 x i32> %wide.vec76.6 = load <8 x double>, ptr %216, align 8, !noalias !4955 %strided.vec77.6 = shufflevector <8 x double> %wide.vec76.6, <8 x double> poison, <4 x i32> %strided.vec78.6 = shufflevector <8 x double> %wide.vec76.6, <8 x double> poison, <4 x i32> %217 = fmul <4 x double> %strided.vec78.6, %broadcast.splat80 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.6, <4 x double> %217) %219 = fmul <4 x double> %broadcast.splat84, %strided.vec77.6 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.6, <4 x double> %219) %221 = fadd <4 x double> %strided.vec74.6, %218 %222 = fadd <4 x double> %strided.vec75.6, %220 %223 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec85.6 = shufflevector <4 x double> %221, <4 x double> %222, <8 x i32> store <8 x double> %interleaved.vec85.6, ptr %223, align 8, !noalias !4955 %224 = fsub <4 x double> %strided.vec74.6, %218 %225 = fsub <4 x double> %strided.vec75.6, %220 %226 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 184 %interleaved.vec86.6 = shufflevector <4 x double> %224, <4 x double> %225, <8 x i32> store <8 x double> %interleaved.vec86.6, ptr %226, align 8, !noalias !4955 %227 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %228 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %wide.vec73.7 = load <8 x double>, ptr %227, align 8, !noalias !4955 %strided.vec74.7 = shufflevector <8 x double> %wide.vec73.7, <8 x double> poison, <4 x i32> %strided.vec75.7 = shufflevector <8 x double> %wide.vec73.7, <8 x double> poison, <4 x i32> %wide.vec76.7 = load <8 x double>, ptr %228, align 8, !noalias !4955 %strided.vec77.7 = shufflevector <8 x double> %wide.vec76.7, <8 x double> poison, <4 x i32> %strided.vec78.7 = shufflevector <8 x double> %wide.vec76.7, <8 x double> poison, <4 x i32> %229 = fmul <4 x double> %strided.vec78.7, %broadcast.splat80 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec77.7, <4 x double> %229) %231 = fmul <4 x double> %broadcast.splat84, %strided.vec77.7 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat82, <4 x double> %strided.vec78.7, <4 x double> %231) %233 = fadd <4 x double> %strided.vec74.7, %230 %234 = fadd <4 x double> %strided.vec75.7, %232 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec85.7 = shufflevector <4 x double> %233, <4 x double> %234, <8 x i32> store <8 x double> %interleaved.vec85.7, ptr %235, align 8, !noalias !4955 %236 = fsub <4 x double> %strided.vec74.7, %230 %237 = fsub <4 x double> %strided.vec75.7, %232 %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 188 %interleaved.vec86.7 = shufflevector <4 x double> %236, <4 x double> %237, <8 x i32> store <8 x double> %interleaved.vec86.7, ptr %238, align 8, !noalias !4955 %239 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %broadcast.splatinsert104 = insertelement <4 x double> poison, double %w1.1.i.i43.i146.1, i64 0 %broadcast.splat105 = shufflevector <4 x double> %broadcast.splatinsert104, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert102 = insertelement <4 x double> poison, double %w1.0.i.i42.i145.1, i64 0 %broadcast.splat103 = shufflevector <4 x double> %broadcast.splatinsert102, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert100 = insertelement <4 x double> poison, double %_6.i.i.i58.i161.1, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %wide.vec94 = load <8 x double>, ptr %1, align 8, !noalias !4955 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %239, align 8, !noalias !4955 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %240 = fmul <4 x double> %strided.vec99, %broadcast.splat101 %241 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98, <4 x double> %240) %242 = fmul <4 x double> %broadcast.splat105, %strided.vec98 %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99, <4 x double> %242) %244 = fadd <4 x double> %strided.vec95, %241 %245 = fadd <4 x double> %strided.vec96, %243 %interleaved.vec106 = shufflevector <4 x double> %244, <4 x double> %245, <8 x i32> store <8 x double> %interleaved.vec106, ptr %21, align 8, !noalias !4955 %246 = fsub <4 x double> %strided.vec95, %241 %247 = fsub <4 x double> %strided.vec96, %243 %interleaved.vec107 = shufflevector <4 x double> %246, <4 x double> %247, <8 x i32> store <8 x double> %interleaved.vec107, ptr %37, align 8, !noalias !4955 %248 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 132 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 164 %wide.vec94.1 = load <8 x double>, ptr %248, align 8, !noalias !4955 %strided.vec95.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %strided.vec96.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %wide.vec97.1 = load <8 x double>, ptr %249, align 8, !noalias !4955 %strided.vec98.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %strided.vec99.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %250 = fmul <4 x double> %strided.vec99.1, %broadcast.splat101 %251 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.1, <4 x double> %250) %252 = fmul <4 x double> %broadcast.splat105, %strided.vec98.1 %253 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.1, <4 x double> %252) %254 = fadd <4 x double> %strided.vec95.1, %251 %255 = fadd <4 x double> %strided.vec96.1, %253 %256 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec106.1 = shufflevector <4 x double> %254, <4 x double> %255, <8 x i32> store <8 x double> %interleaved.vec106.1, ptr %256, align 8, !noalias !4955 %257 = fsub <4 x double> %strided.vec95.1, %251 %258 = fsub <4 x double> %strided.vec96.1, %253 %259 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 196 %interleaved.vec107.1 = shufflevector <4 x double> %257, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec107.1, ptr %259, align 8, !noalias !4955 %260 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 136 %261 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 168 %wide.vec94.2 = load <8 x double>, ptr %260, align 8, !noalias !4955 %strided.vec95.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %strided.vec96.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %wide.vec97.2 = load <8 x double>, ptr %261, align 8, !noalias !4955 %strided.vec98.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %strided.vec99.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %262 = fmul <4 x double> %strided.vec99.2, %broadcast.splat101 %263 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.2, <4 x double> %262) %264 = fmul <4 x double> %broadcast.splat105, %strided.vec98.2 %265 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.2, <4 x double> %264) %266 = fadd <4 x double> %strided.vec95.2, %263 %267 = fadd <4 x double> %strided.vec96.2, %265 %268 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec106.2 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec106.2, ptr %268, align 8, !noalias !4955 %269 = fsub <4 x double> %strided.vec95.2, %263 %270 = fsub <4 x double> %strided.vec96.2, %265 %271 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 200 %interleaved.vec107.2 = shufflevector <4 x double> %269, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec107.2, ptr %271, align 8, !noalias !4955 %272 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 140 %273 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 172 %wide.vec94.3 = load <8 x double>, ptr %272, align 8, !noalias !4955 %strided.vec95.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %strided.vec96.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %wide.vec97.3 = load <8 x double>, ptr %273, align 8, !noalias !4955 %strided.vec98.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %strided.vec99.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %274 = fmul <4 x double> %strided.vec99.3, %broadcast.splat101 %275 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.3, <4 x double> %274) %276 = fmul <4 x double> %broadcast.splat105, %strided.vec98.3 %277 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.3, <4 x double> %276) %278 = fadd <4 x double> %strided.vec95.3, %275 %279 = fadd <4 x double> %strided.vec96.3, %277 %280 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec106.3 = shufflevector <4 x double> %278, <4 x double> %279, <8 x i32> store <8 x double> %interleaved.vec106.3, ptr %280, align 8, !noalias !4955 %281 = fsub <4 x double> %strided.vec95.3, %275 %282 = fsub <4 x double> %strided.vec96.3, %277 %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 204 %interleaved.vec107.3 = shufflevector <4 x double> %281, <4 x double> %282, <8 x i32> store <8 x double> %interleaved.vec107.3, ptr %283, align 8, !noalias !4955 %284 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %285 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %wide.vec94.4 = load <8 x double>, ptr %284, align 8, !noalias !4955 %strided.vec95.4 = shufflevector <8 x double> %wide.vec94.4, <8 x double> poison, <4 x i32> %strided.vec96.4 = shufflevector <8 x double> %wide.vec94.4, <8 x double> poison, <4 x i32> %wide.vec97.4 = load <8 x double>, ptr %285, align 8, !noalias !4955 %strided.vec98.4 = shufflevector <8 x double> %wide.vec97.4, <8 x double> poison, <4 x i32> %strided.vec99.4 = shufflevector <8 x double> %wide.vec97.4, <8 x double> poison, <4 x i32> %286 = fmul <4 x double> %strided.vec99.4, %broadcast.splat101 %287 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.4, <4 x double> %286) %288 = fmul <4 x double> %broadcast.splat105, %strided.vec98.4 %289 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.4, <4 x double> %288) %290 = fadd <4 x double> %strided.vec95.4, %287 %291 = fadd <4 x double> %strided.vec96.4, %289 %292 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %interleaved.vec106.4 = shufflevector <4 x double> %290, <4 x double> %291, <8 x i32> store <8 x double> %interleaved.vec106.4, ptr %292, align 8, !noalias !4955 %293 = fsub <4 x double> %strided.vec95.4, %287 %294 = fsub <4 x double> %strided.vec96.4, %289 %295 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %interleaved.vec107.4 = shufflevector <4 x double> %293, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec107.4, ptr %295, align 8, !noalias !4955 %296 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 148 %297 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 180 %wide.vec94.5 = load <8 x double>, ptr %296, align 8, !noalias !4955 %strided.vec95.5 = shufflevector <8 x double> %wide.vec94.5, <8 x double> poison, <4 x i32> %strided.vec96.5 = shufflevector <8 x double> %wide.vec94.5, <8 x double> poison, <4 x i32> %wide.vec97.5 = load <8 x double>, ptr %297, align 8, !noalias !4955 %strided.vec98.5 = shufflevector <8 x double> %wide.vec97.5, <8 x double> poison, <4 x i32> %strided.vec99.5 = shufflevector <8 x double> %wide.vec97.5, <8 x double> poison, <4 x i32> %298 = fmul <4 x double> %strided.vec99.5, %broadcast.splat101 %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.5, <4 x double> %298) %300 = fmul <4 x double> %broadcast.splat105, %strided.vec98.5 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.5, <4 x double> %300) %302 = fadd <4 x double> %strided.vec95.5, %299 %303 = fadd <4 x double> %strided.vec96.5, %301 %304 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec106.5 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec106.5, ptr %304, align 8, !noalias !4955 %305 = fsub <4 x double> %strided.vec95.5, %299 %306 = fsub <4 x double> %strided.vec96.5, %301 %307 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 212 %interleaved.vec107.5 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec107.5, ptr %307, align 8, !noalias !4955 %308 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 152 %309 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 184 %wide.vec94.6 = load <8 x double>, ptr %308, align 8, !noalias !4955 %strided.vec95.6 = shufflevector <8 x double> %wide.vec94.6, <8 x double> poison, <4 x i32> %strided.vec96.6 = shufflevector <8 x double> %wide.vec94.6, <8 x double> poison, <4 x i32> %wide.vec97.6 = load <8 x double>, ptr %309, align 8, !noalias !4955 %strided.vec98.6 = shufflevector <8 x double> %wide.vec97.6, <8 x double> poison, <4 x i32> %strided.vec99.6 = shufflevector <8 x double> %wide.vec97.6, <8 x double> poison, <4 x i32> %310 = fmul <4 x double> %strided.vec99.6, %broadcast.splat101 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.6, <4 x double> %310) %312 = fmul <4 x double> %broadcast.splat105, %strided.vec98.6 %313 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.6, <4 x double> %312) %314 = fadd <4 x double> %strided.vec95.6, %311 %315 = fadd <4 x double> %strided.vec96.6, %313 %316 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec106.6 = shufflevector <4 x double> %314, <4 x double> %315, <8 x i32> store <8 x double> %interleaved.vec106.6, ptr %316, align 8, !noalias !4955 %317 = fsub <4 x double> %strided.vec95.6, %311 %318 = fsub <4 x double> %strided.vec96.6, %313 %319 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 216 %interleaved.vec107.6 = shufflevector <4 x double> %317, <4 x double> %318, <8 x i32> store <8 x double> %interleaved.vec107.6, ptr %319, align 8, !noalias !4955 %320 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 156 %321 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %wide.vec94.7 = load <8 x double>, ptr %320, align 8, !noalias !4955 %strided.vec95.7 = shufflevector <8 x double> %wide.vec94.7, <8 x double> poison, <4 x i32> %strided.vec96.7 = shufflevector <8 x double> %wide.vec94.7, <8 x double> poison, <4 x i32> %wide.vec97.7 = load <8 x double>, ptr %321, align 8, !noalias !4955 %strided.vec98.7 = shufflevector <8 x double> %wide.vec97.7, <8 x double> poison, <4 x i32> %strided.vec99.7 = shufflevector <8 x double> %wide.vec97.7, <8 x double> poison, <4 x i32> %322 = fmul <4 x double> %strided.vec99.7, %broadcast.splat101 %323 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec98.7, <4 x double> %322) %324 = fmul <4 x double> %broadcast.splat105, %strided.vec98.7 %325 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat103, <4 x double> %strided.vec99.7, <4 x double> %324) %326 = fadd <4 x double> %strided.vec95.7, %323 %327 = fadd <4 x double> %strided.vec96.7, %325 %328 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec106.7 = shufflevector <4 x double> %326, <4 x double> %327, <8 x i32> store <8 x double> %interleaved.vec106.7, ptr %328, align 8, !noalias !4955 %329 = fsub <4 x double> %strided.vec95.7, %323 %330 = fsub <4 x double> %strided.vec96.7, %325 %331 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 220 %interleaved.vec107.7 = shufflevector <4 x double> %329, <4 x double> %330, <8 x i32> store <8 x double> %interleaved.vec107.7, ptr %331, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i502.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %332 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1 %w1.0.i.i.i190.3 = load double, ptr %332, align 8, !noalias !4955, !noundef !3 %333 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1, i32 1 %w1.1.i.i.i191.3 = load double, ptr %333, align 8, !noalias !4955, !noundef !3 %_6.i.i.i.i206.3 = fneg double %w1.1.i.i.i191.3 %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i191.3, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i190.3, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i.i.i.i206.3, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %334 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %data.i5.i.i.i.i.i.i.i516.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %data.i.i.i.i.i.i512.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %wide.vec115 = load <8 x double>, ptr %data.i.i.i.i.i.i512.3, align 8, !noalias !4955 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %334, align 8, !noalias !4955 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %335 = fmul <4 x double> %strided.vec120, %broadcast.splat122 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119, <4 x double> %335) %337 = fmul <4 x double> %broadcast.splat126, %strided.vec119 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120, <4 x double> %337) %339 = fadd <4 x double> %strided.vec116, %336 %340 = fadd <4 x double> %strided.vec117, %338 %interleaved.vec127 = shufflevector <4 x double> %339, <4 x double> %340, <8 x i32> store <8 x double> %interleaved.vec127, ptr %data.i.i.i.i.i.i.i.i502.3, align 8, !noalias !4955 %341 = fsub <4 x double> %strided.vec116, %336 %342 = fsub <4 x double> %strided.vec117, %338 %interleaved.vec128 = shufflevector <4 x double> %341, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec128, ptr %data.i5.i.i.i.i.i.i.i516.3, align 8, !noalias !4955 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 196 %344 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 228 %wide.vec115.1 = load <8 x double>, ptr %343, align 8, !noalias !4955 %strided.vec116.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %strided.vec117.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %wide.vec118.1 = load <8 x double>, ptr %344, align 8, !noalias !4955 %strided.vec119.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %strided.vec120.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %345 = fmul <4 x double> %strided.vec120.1, %broadcast.splat122 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.1, <4 x double> %345) %347 = fmul <4 x double> %broadcast.splat126, %strided.vec119.1 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.1, <4 x double> %347) %349 = fadd <4 x double> %strided.vec116.1, %346 %350 = fadd <4 x double> %strided.vec117.1, %348 %351 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec127.1 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec127.1, ptr %351, align 8, !noalias !4955 %352 = fsub <4 x double> %strided.vec116.1, %346 %353 = fsub <4 x double> %strided.vec117.1, %348 %354 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 228 %interleaved.vec128.1 = shufflevector <4 x double> %352, <4 x double> %353, <8 x i32> store <8 x double> %interleaved.vec128.1, ptr %354, align 8, !noalias !4955 %355 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 200 %356 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 232 %wide.vec115.2 = load <8 x double>, ptr %355, align 8, !noalias !4955 %strided.vec116.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %strided.vec117.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %wide.vec118.2 = load <8 x double>, ptr %356, align 8, !noalias !4955 %strided.vec119.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %strided.vec120.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %357 = fmul <4 x double> %strided.vec120.2, %broadcast.splat122 %358 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.2, <4 x double> %357) %359 = fmul <4 x double> %broadcast.splat126, %strided.vec119.2 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.2, <4 x double> %359) %361 = fadd <4 x double> %strided.vec116.2, %358 %362 = fadd <4 x double> %strided.vec117.2, %360 %363 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec127.2 = shufflevector <4 x double> %361, <4 x double> %362, <8 x i32> store <8 x double> %interleaved.vec127.2, ptr %363, align 8, !noalias !4955 %364 = fsub <4 x double> %strided.vec116.2, %358 %365 = fsub <4 x double> %strided.vec117.2, %360 %366 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 232 %interleaved.vec128.2 = shufflevector <4 x double> %364, <4 x double> %365, <8 x i32> store <8 x double> %interleaved.vec128.2, ptr %366, align 8, !noalias !4955 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 204 %368 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 236 %wide.vec115.3 = load <8 x double>, ptr %367, align 8, !noalias !4955 %strided.vec116.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %strided.vec117.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %wide.vec118.3 = load <8 x double>, ptr %368, align 8, !noalias !4955 %strided.vec119.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %strided.vec120.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %369 = fmul <4 x double> %strided.vec120.3, %broadcast.splat122 %370 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.3, <4 x double> %369) %371 = fmul <4 x double> %broadcast.splat126, %strided.vec119.3 %372 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.3, <4 x double> %371) %373 = fadd <4 x double> %strided.vec116.3, %370 %374 = fadd <4 x double> %strided.vec117.3, %372 %375 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec127.3 = shufflevector <4 x double> %373, <4 x double> %374, <8 x i32> store <8 x double> %interleaved.vec127.3, ptr %375, align 8, !noalias !4955 %376 = fsub <4 x double> %strided.vec116.3, %370 %377 = fsub <4 x double> %strided.vec117.3, %372 %378 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 236 %interleaved.vec128.3 = shufflevector <4 x double> %376, <4 x double> %377, <8 x i32> store <8 x double> %interleaved.vec128.3, ptr %378, align 8, !noalias !4955 %379 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %380 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %wide.vec115.4 = load <8 x double>, ptr %379, align 8, !noalias !4955 %strided.vec116.4 = shufflevector <8 x double> %wide.vec115.4, <8 x double> poison, <4 x i32> %strided.vec117.4 = shufflevector <8 x double> %wide.vec115.4, <8 x double> poison, <4 x i32> %wide.vec118.4 = load <8 x double>, ptr %380, align 8, !noalias !4955 %strided.vec119.4 = shufflevector <8 x double> %wide.vec118.4, <8 x double> poison, <4 x i32> %strided.vec120.4 = shufflevector <8 x double> %wide.vec118.4, <8 x double> poison, <4 x i32> %381 = fmul <4 x double> %strided.vec120.4, %broadcast.splat122 %382 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.4, <4 x double> %381) %383 = fmul <4 x double> %broadcast.splat126, %strided.vec119.4 %384 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.4, <4 x double> %383) %385 = fadd <4 x double> %strided.vec116.4, %382 %386 = fadd <4 x double> %strided.vec117.4, %384 %387 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %interleaved.vec127.4 = shufflevector <4 x double> %385, <4 x double> %386, <8 x i32> store <8 x double> %interleaved.vec127.4, ptr %387, align 8, !noalias !4955 %388 = fsub <4 x double> %strided.vec116.4, %382 %389 = fsub <4 x double> %strided.vec117.4, %384 %390 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %interleaved.vec128.4 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> store <8 x double> %interleaved.vec128.4, ptr %390, align 8, !noalias !4955 %391 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 212 %392 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %wide.vec115.5 = load <8 x double>, ptr %391, align 8, !noalias !4955 %strided.vec116.5 = shufflevector <8 x double> %wide.vec115.5, <8 x double> poison, <4 x i32> %strided.vec117.5 = shufflevector <8 x double> %wide.vec115.5, <8 x double> poison, <4 x i32> %wide.vec118.5 = load <8 x double>, ptr %392, align 8, !noalias !4955 %strided.vec119.5 = shufflevector <8 x double> %wide.vec118.5, <8 x double> poison, <4 x i32> %strided.vec120.5 = shufflevector <8 x double> %wide.vec118.5, <8 x double> poison, <4 x i32> %393 = fmul <4 x double> %strided.vec120.5, %broadcast.splat122 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.5, <4 x double> %393) %395 = fmul <4 x double> %broadcast.splat126, %strided.vec119.5 %396 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.5, <4 x double> %395) %397 = fadd <4 x double> %strided.vec116.5, %394 %398 = fadd <4 x double> %strided.vec117.5, %396 %399 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec127.5 = shufflevector <4 x double> %397, <4 x double> %398, <8 x i32> store <8 x double> %interleaved.vec127.5, ptr %399, align 8, !noalias !4955 %400 = fsub <4 x double> %strided.vec116.5, %394 %401 = fsub <4 x double> %strided.vec117.5, %396 %402 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %interleaved.vec128.5 = shufflevector <4 x double> %400, <4 x double> %401, <8 x i32> store <8 x double> %interleaved.vec128.5, ptr %402, align 8, !noalias !4955 %403 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 216 %404 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %wide.vec115.6 = load <8 x double>, ptr %403, align 8, !noalias !4955 %strided.vec116.6 = shufflevector <8 x double> %wide.vec115.6, <8 x double> poison, <4 x i32> %strided.vec117.6 = shufflevector <8 x double> %wide.vec115.6, <8 x double> poison, <4 x i32> %wide.vec118.6 = load <8 x double>, ptr %404, align 8, !noalias !4955 %strided.vec119.6 = shufflevector <8 x double> %wide.vec118.6, <8 x double> poison, <4 x i32> %strided.vec120.6 = shufflevector <8 x double> %wide.vec118.6, <8 x double> poison, <4 x i32> %405 = fmul <4 x double> %strided.vec120.6, %broadcast.splat122 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.6, <4 x double> %405) %407 = fmul <4 x double> %broadcast.splat126, %strided.vec119.6 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.6, <4 x double> %407) %409 = fadd <4 x double> %strided.vec116.6, %406 %410 = fadd <4 x double> %strided.vec117.6, %408 %411 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec127.6 = shufflevector <4 x double> %409, <4 x double> %410, <8 x i32> store <8 x double> %interleaved.vec127.6, ptr %411, align 8, !noalias !4955 %412 = fsub <4 x double> %strided.vec116.6, %406 %413 = fsub <4 x double> %strided.vec117.6, %408 %414 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %interleaved.vec128.6 = shufflevector <4 x double> %412, <4 x double> %413, <8 x i32> store <8 x double> %interleaved.vec128.6, ptr %414, align 8, !noalias !4955 %415 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 220 %416 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %wide.vec115.7 = load <8 x double>, ptr %415, align 8, !noalias !4955 %strided.vec116.7 = shufflevector <8 x double> %wide.vec115.7, <8 x double> poison, <4 x i32> %strided.vec117.7 = shufflevector <8 x double> %wide.vec115.7, <8 x double> poison, <4 x i32> %wide.vec118.7 = load <8 x double>, ptr %416, align 8, !noalias !4955 %strided.vec119.7 = shufflevector <8 x double> %wide.vec118.7, <8 x double> poison, <4 x i32> %strided.vec120.7 = shufflevector <8 x double> %wide.vec118.7, <8 x double> poison, <4 x i32> %417 = fmul <4 x double> %strided.vec120.7, %broadcast.splat122 %418 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec119.7, <4 x double> %417) %419 = fmul <4 x double> %broadcast.splat126, %strided.vec119.7 %420 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %strided.vec120.7, <4 x double> %419) %421 = fadd <4 x double> %strided.vec116.7, %418 %422 = fadd <4 x double> %strided.vec117.7, %420 %423 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec127.7 = shufflevector <4 x double> %421, <4 x double> %422, <8 x i32> store <8 x double> %interleaved.vec127.7, ptr %423, align 8, !noalias !4955 %424 = fsub <4 x double> %strided.vec116.7, %418 %425 = fsub <4 x double> %strided.vec117.7, %420 %426 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %interleaved.vec128.7 = shufflevector <4 x double> %424, <4 x double> %425, <8 x i32> store <8 x double> %interleaved.vec128.7, ptr %426, align 8, !noalias !4955 %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w1.1.i.i43.i146, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w1.0.i.i42.i145, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i.i.i58.i161, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %427 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec136 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4955 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %427, align 8, !noalias !4955 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %428 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %428) %430 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %431 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %430) %432 = fadd <4 x double> %strided.vec137, %429 %433 = fadd <4 x double> %strided.vec138, %431 %interleaved.vec148 = shufflevector <4 x double> %432, <4 x double> %433, <8 x i32> store <8 x double> %interleaved.vec148, ptr %buf.0, align 8, !noalias !4955 %434 = fsub <4 x double> %strided.vec137, %429 %435 = fsub <4 x double> %strided.vec138, %431 %interleaved.vec149 = shufflevector <4 x double> %434, <4 x double> %435, <8 x i32> store <8 x double> %interleaved.vec149, ptr %1, align 8, !noalias !4955 %436 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %437 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %wide.vec136.1 = load <8 x double>, ptr %436, align 8, !noalias !4955 %strided.vec137.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %strided.vec138.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %wide.vec139.1 = load <8 x double>, ptr %437, align 8, !noalias !4955 %strided.vec140.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %strided.vec141.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %438 = fmul <4 x double> %strided.vec141.1, %broadcast.splat143 %439 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.1, <4 x double> %438) %440 = fmul <4 x double> %broadcast.splat147, %strided.vec140.1 %441 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.1, <4 x double> %440) %442 = fadd <4 x double> %strided.vec137.1, %439 %443 = fadd <4 x double> %strided.vec138.1, %441 %444 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec148.1 = shufflevector <4 x double> %442, <4 x double> %443, <8 x i32> store <8 x double> %interleaved.vec148.1, ptr %444, align 8, !noalias !4955 %445 = fsub <4 x double> %strided.vec137.1, %439 %446 = fsub <4 x double> %strided.vec138.1, %441 %447 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 132 %interleaved.vec149.1 = shufflevector <4 x double> %445, <4 x double> %446, <8 x i32> store <8 x double> %interleaved.vec149.1, ptr %447, align 8, !noalias !4955 %448 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %449 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %wide.vec136.2 = load <8 x double>, ptr %448, align 8, !noalias !4955 %strided.vec137.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %strided.vec138.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %wide.vec139.2 = load <8 x double>, ptr %449, align 8, !noalias !4955 %strided.vec140.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %strided.vec141.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %450 = fmul <4 x double> %strided.vec141.2, %broadcast.splat143 %451 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.2, <4 x double> %450) %452 = fmul <4 x double> %broadcast.splat147, %strided.vec140.2 %453 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.2, <4 x double> %452) %454 = fadd <4 x double> %strided.vec137.2, %451 %455 = fadd <4 x double> %strided.vec138.2, %453 %456 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec148.2 = shufflevector <4 x double> %454, <4 x double> %455, <8 x i32> store <8 x double> %interleaved.vec148.2, ptr %456, align 8, !noalias !4955 %457 = fsub <4 x double> %strided.vec137.2, %451 %458 = fsub <4 x double> %strided.vec138.2, %453 %459 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 136 %interleaved.vec149.2 = shufflevector <4 x double> %457, <4 x double> %458, <8 x i32> store <8 x double> %interleaved.vec149.2, ptr %459, align 8, !noalias !4955 %460 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %461 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec136.3 = load <8 x double>, ptr %460, align 8, !noalias !4955 %strided.vec137.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %strided.vec138.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %wide.vec139.3 = load <8 x double>, ptr %461, align 8, !noalias !4955 %strided.vec140.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %strided.vec141.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %462 = fmul <4 x double> %strided.vec141.3, %broadcast.splat143 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140.3, <4 x double> %462) %464 = fmul <4 x double> %broadcast.splat147, %strided.vec140.3 %465 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141.3, <4 x double> %464) %466 = fadd <4 x double> %strided.vec137.3, %463 %467 = fadd <4 x double> %strided.vec138.3, %465 %468 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec148.3 = shufflevector <4 x double> %466, <4 x double> %467, <8 x i32> store <8 x double> %interleaved.vec148.3, ptr %468, align 8, !noalias !4955 %469 = fsub <4 x double> %strided.vec137.3, %463 %470 = fsub <4 x double> %strided.vec138.3, %465 %471 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 140 %interleaved.vec149.3 = shufflevector <4 x double> %469, <4 x double> %470, <8 x i32> store <8 x double> %interleaved.vec149.3, ptr %471, align 8, !noalias !4955 %472 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i237.1 = load double, ptr %472, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w1.1.i.i237.1, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer %473 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i236.1 = load double, ptr %473, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w1.0.i.i236.1, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i252.1 = fneg double %w1.1.i.i237.1 %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i.i.i252.1, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %474 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i5.i.i.i.i.i.i.i688.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %data.i.i.i.i.i.i.i.i674.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec157 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i502.1, align 8, !noalias !4955 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %474, align 8, !noalias !4955 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %475 = fmul <4 x double> %strided.vec162, %broadcast.splat164 %476 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161, <4 x double> %475) %477 = fmul <4 x double> %broadcast.splat168, %strided.vec161 %478 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162, <4 x double> %477) %479 = fadd <4 x double> %strided.vec158, %476 %480 = fadd <4 x double> %strided.vec159, %478 %interleaved.vec169 = shufflevector <4 x double> %479, <4 x double> %480, <8 x i32> store <8 x double> %interleaved.vec169, ptr %data.i.i.i.i.i.i.i.i674.1, align 8, !noalias !4955 %481 = fsub <4 x double> %strided.vec158, %476 %482 = fsub <4 x double> %strided.vec159, %478 %interleaved.vec170 = shufflevector <4 x double> %481, <4 x double> %482, <8 x i32> store <8 x double> %interleaved.vec170, ptr %data.i5.i.i.i.i.i.i.i688.1, align 8, !noalias !4955 %483 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %484 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %wide.vec157.1 = load <8 x double>, ptr %483, align 8, !noalias !4955 %strided.vec158.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %strided.vec159.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %wide.vec160.1 = load <8 x double>, ptr %484, align 8, !noalias !4955 %strided.vec161.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %strided.vec162.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %485 = fmul <4 x double> %strided.vec162.1, %broadcast.splat164 %486 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.1, <4 x double> %485) %487 = fmul <4 x double> %broadcast.splat168, %strided.vec161.1 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.1, <4 x double> %487) %489 = fadd <4 x double> %strided.vec158.1, %486 %490 = fadd <4 x double> %strided.vec159.1, %488 %491 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec169.1 = shufflevector <4 x double> %489, <4 x double> %490, <8 x i32> store <8 x double> %interleaved.vec169.1, ptr %491, align 8, !noalias !4955 %492 = fsub <4 x double> %strided.vec158.1, %486 %493 = fsub <4 x double> %strided.vec159.1, %488 %494 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 148 %interleaved.vec170.1 = shufflevector <4 x double> %492, <4 x double> %493, <8 x i32> store <8 x double> %interleaved.vec170.1, ptr %494, align 8, !noalias !4955 %495 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %496 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %wide.vec157.2 = load <8 x double>, ptr %495, align 8, !noalias !4955 %strided.vec158.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %strided.vec159.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %wide.vec160.2 = load <8 x double>, ptr %496, align 8, !noalias !4955 %strided.vec161.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %strided.vec162.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %497 = fmul <4 x double> %strided.vec162.2, %broadcast.splat164 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.2, <4 x double> %497) %499 = fmul <4 x double> %broadcast.splat168, %strided.vec161.2 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.2, <4 x double> %499) %501 = fadd <4 x double> %strided.vec158.2, %498 %502 = fadd <4 x double> %strided.vec159.2, %500 %503 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec169.2 = shufflevector <4 x double> %501, <4 x double> %502, <8 x i32> store <8 x double> %interleaved.vec169.2, ptr %503, align 8, !noalias !4955 %504 = fsub <4 x double> %strided.vec158.2, %498 %505 = fsub <4 x double> %strided.vec159.2, %500 %506 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 152 %interleaved.vec170.2 = shufflevector <4 x double> %504, <4 x double> %505, <8 x i32> store <8 x double> %interleaved.vec170.2, ptr %506, align 8, !noalias !4955 %507 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %508 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %wide.vec157.3 = load <8 x double>, ptr %507, align 8, !noalias !4955 %strided.vec158.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %strided.vec159.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %wide.vec160.3 = load <8 x double>, ptr %508, align 8, !noalias !4955 %strided.vec161.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %strided.vec162.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %509 = fmul <4 x double> %strided.vec162.3, %broadcast.splat164 %510 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec161.3, <4 x double> %509) %511 = fmul <4 x double> %broadcast.splat168, %strided.vec161.3 %512 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %strided.vec162.3, <4 x double> %511) %513 = fadd <4 x double> %strided.vec158.3, %510 %514 = fadd <4 x double> %strided.vec159.3, %512 %515 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec169.3 = shufflevector <4 x double> %513, <4 x double> %514, <8 x i32> store <8 x double> %interleaved.vec169.3, ptr %515, align 8, !noalias !4955 %516 = fsub <4 x double> %strided.vec158.3, %510 %517 = fsub <4 x double> %strided.vec159.3, %512 %518 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 156 %interleaved.vec170.3 = shufflevector <4 x double> %516, <4 x double> %517, <8 x i32> store <8 x double> %interleaved.vec170.3, ptr %518, align 8, !noalias !4955 %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w1.1.i.i.i191.1, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w1.0.i.i.i190.1, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i.i.i.i206.1, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %519 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %wide.vec178 = load <8 x double>, ptr %21, align 8, !noalias !4955 %strided.vec179 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %strided.vec180 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %wide.vec181 = load <8 x double>, ptr %519, align 8, !noalias !4955 %strided.vec182 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %strided.vec183 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %520 = fmul <4 x double> %strided.vec183, %broadcast.splat185 %521 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182, <4 x double> %520) %522 = fmul <4 x double> %broadcast.splat189, %strided.vec182 %523 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183, <4 x double> %522) %524 = fadd <4 x double> %strided.vec179, %521 %525 = fadd <4 x double> %strided.vec180, %523 %interleaved.vec190 = shufflevector <4 x double> %524, <4 x double> %525, <8 x i32> store <8 x double> %interleaved.vec190, ptr %51, align 8, !noalias !4955 %526 = fsub <4 x double> %strided.vec179, %521 %527 = fsub <4 x double> %strided.vec180, %523 %interleaved.vec191 = shufflevector <4 x double> %526, <4 x double> %527, <8 x i32> store <8 x double> %interleaved.vec191, ptr %239, align 8, !noalias !4955 %528 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %529 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %wide.vec178.1 = load <8 x double>, ptr %528, align 8, !noalias !4955 %strided.vec179.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %strided.vec180.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %wide.vec181.1 = load <8 x double>, ptr %529, align 8, !noalias !4955 %strided.vec182.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %strided.vec183.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %530 = fmul <4 x double> %strided.vec183.1, %broadcast.splat185 %531 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.1, <4 x double> %530) %532 = fmul <4 x double> %broadcast.splat189, %strided.vec182.1 %533 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.1, <4 x double> %532) %534 = fadd <4 x double> %strided.vec179.1, %531 %535 = fadd <4 x double> %strided.vec180.1, %533 %536 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec190.1 = shufflevector <4 x double> %534, <4 x double> %535, <8 x i32> store <8 x double> %interleaved.vec190.1, ptr %536, align 8, !noalias !4955 %537 = fsub <4 x double> %strided.vec179.1, %531 %538 = fsub <4 x double> %strided.vec180.1, %533 %539 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 164 %interleaved.vec191.1 = shufflevector <4 x double> %537, <4 x double> %538, <8 x i32> store <8 x double> %interleaved.vec191.1, ptr %539, align 8, !noalias !4955 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %wide.vec178.2 = load <8 x double>, ptr %540, align 8, !noalias !4955 %strided.vec179.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %strided.vec180.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %wide.vec181.2 = load <8 x double>, ptr %541, align 8, !noalias !4955 %strided.vec182.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %strided.vec183.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %542 = fmul <4 x double> %strided.vec183.2, %broadcast.splat185 %543 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.2, <4 x double> %542) %544 = fmul <4 x double> %broadcast.splat189, %strided.vec182.2 %545 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.2, <4 x double> %544) %546 = fadd <4 x double> %strided.vec179.2, %543 %547 = fadd <4 x double> %strided.vec180.2, %545 %548 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec190.2 = shufflevector <4 x double> %546, <4 x double> %547, <8 x i32> store <8 x double> %interleaved.vec190.2, ptr %548, align 8, !noalias !4955 %549 = fsub <4 x double> %strided.vec179.2, %543 %550 = fsub <4 x double> %strided.vec180.2, %545 %551 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 168 %interleaved.vec191.2 = shufflevector <4 x double> %549, <4 x double> %550, <8 x i32> store <8 x double> %interleaved.vec191.2, ptr %551, align 8, !noalias !4955 %552 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %553 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %wide.vec178.3 = load <8 x double>, ptr %552, align 8, !noalias !4955 %strided.vec179.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %strided.vec180.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %wide.vec181.3 = load <8 x double>, ptr %553, align 8, !noalias !4955 %strided.vec182.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %strided.vec183.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %554 = fmul <4 x double> %strided.vec183.3, %broadcast.splat185 %555 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec182.3, <4 x double> %554) %556 = fmul <4 x double> %broadcast.splat189, %strided.vec182.3 %557 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %strided.vec183.3, <4 x double> %556) %558 = fadd <4 x double> %strided.vec179.3, %555 %559 = fadd <4 x double> %strided.vec180.3, %557 %560 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec190.3 = shufflevector <4 x double> %558, <4 x double> %559, <8 x i32> store <8 x double> %interleaved.vec190.3, ptr %560, align 8, !noalias !4955 %561 = fsub <4 x double> %strided.vec179.3, %555 %562 = fsub <4 x double> %strided.vec180.3, %557 %563 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 172 %interleaved.vec191.3 = shufflevector <4 x double> %561, <4 x double> %562, <8 x i32> store <8 x double> %interleaved.vec191.3, ptr %563, align 8, !noalias !4955 %564 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.i.i237.3 = load double, ptr %564, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert209 = insertelement <4 x double> poison, double %w1.1.i.i237.3, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer %565 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.i.i236.3 = load double, ptr %565, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert207 = insertelement <4 x double> poison, double %w1.0.i.i236.3, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i252.3 = fneg double %w1.1.i.i237.3 %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i.i.i252.3, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %566 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %data.i5.i.i.i.i.i.i.i688.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %data.i.i.i.i.i.i.i.i674.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec199 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i502.3, align 8, !noalias !4955 %strided.vec200 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %strided.vec201 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %wide.vec202 = load <8 x double>, ptr %566, align 8, !noalias !4955 %strided.vec203 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %strided.vec204 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %567 = fmul <4 x double> %strided.vec204, %broadcast.splat206 %568 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203, <4 x double> %567) %569 = fmul <4 x double> %broadcast.splat210, %strided.vec203 %570 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204, <4 x double> %569) %571 = fadd <4 x double> %strided.vec200, %568 %572 = fadd <4 x double> %strided.vec201, %570 %interleaved.vec211 = shufflevector <4 x double> %571, <4 x double> %572, <8 x i32> store <8 x double> %interleaved.vec211, ptr %data.i.i.i.i.i.i.i.i674.3, align 8, !noalias !4955 %573 = fsub <4 x double> %strided.vec200, %568 %574 = fsub <4 x double> %strided.vec201, %570 %interleaved.vec212 = shufflevector <4 x double> %573, <4 x double> %574, <8 x i32> store <8 x double> %interleaved.vec212, ptr %data.i5.i.i.i.i.i.i.i688.3, align 8, !noalias !4955 %575 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %576 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %wide.vec199.1 = load <8 x double>, ptr %575, align 8, !noalias !4955 %strided.vec200.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %strided.vec201.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %wide.vec202.1 = load <8 x double>, ptr %576, align 8, !noalias !4955 %strided.vec203.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %strided.vec204.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %577 = fmul <4 x double> %strided.vec204.1, %broadcast.splat206 %578 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.1, <4 x double> %577) %579 = fmul <4 x double> %broadcast.splat210, %strided.vec203.1 %580 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.1, <4 x double> %579) %581 = fadd <4 x double> %strided.vec200.1, %578 %582 = fadd <4 x double> %strided.vec201.1, %580 %583 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec211.1 = shufflevector <4 x double> %581, <4 x double> %582, <8 x i32> store <8 x double> %interleaved.vec211.1, ptr %583, align 8, !noalias !4955 %584 = fsub <4 x double> %strided.vec200.1, %578 %585 = fsub <4 x double> %strided.vec201.1, %580 %586 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 180 %interleaved.vec212.1 = shufflevector <4 x double> %584, <4 x double> %585, <8 x i32> store <8 x double> %interleaved.vec212.1, ptr %586, align 8, !noalias !4955 %587 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %588 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %wide.vec199.2 = load <8 x double>, ptr %587, align 8, !noalias !4955 %strided.vec200.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %strided.vec201.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %wide.vec202.2 = load <8 x double>, ptr %588, align 8, !noalias !4955 %strided.vec203.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %strided.vec204.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %589 = fmul <4 x double> %strided.vec204.2, %broadcast.splat206 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.2, <4 x double> %589) %591 = fmul <4 x double> %broadcast.splat210, %strided.vec203.2 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.2, <4 x double> %591) %593 = fadd <4 x double> %strided.vec200.2, %590 %594 = fadd <4 x double> %strided.vec201.2, %592 %595 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec211.2 = shufflevector <4 x double> %593, <4 x double> %594, <8 x i32> store <8 x double> %interleaved.vec211.2, ptr %595, align 8, !noalias !4955 %596 = fsub <4 x double> %strided.vec200.2, %590 %597 = fsub <4 x double> %strided.vec201.2, %592 %598 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 184 %interleaved.vec212.2 = shufflevector <4 x double> %596, <4 x double> %597, <8 x i32> store <8 x double> %interleaved.vec212.2, ptr %598, align 8, !noalias !4955 %599 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %600 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %wide.vec199.3 = load <8 x double>, ptr %599, align 8, !noalias !4955 %strided.vec200.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %strided.vec201.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %wide.vec202.3 = load <8 x double>, ptr %600, align 8, !noalias !4955 %strided.vec203.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %strided.vec204.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %601 = fmul <4 x double> %strided.vec204.3, %broadcast.splat206 %602 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec203.3, <4 x double> %601) %603 = fmul <4 x double> %broadcast.splat210, %strided.vec203.3 %604 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %strided.vec204.3, <4 x double> %603) %605 = fadd <4 x double> %strided.vec200.3, %602 %606 = fadd <4 x double> %strided.vec201.3, %604 %607 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec211.3 = shufflevector <4 x double> %605, <4 x double> %606, <8 x i32> store <8 x double> %interleaved.vec211.3, ptr %607, align 8, !noalias !4955 %608 = fsub <4 x double> %strided.vec200.3, %602 %609 = fsub <4 x double> %strided.vec201.3, %604 %610 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %interleaved.vec212.3 = shufflevector <4 x double> %608, <4 x double> %609, <8 x i32> store <8 x double> %interleaved.vec212.3, ptr %610, align 8, !noalias !4955 %broadcast.splatinsert230 = insertelement <4 x double> poison, double %w1.1.i.i43.i146.1, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %w1.0.i.i42.i145.1, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i.i.i58.i161.1, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %611 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %wide.vec220 = load <8 x double>, ptr %0, align 8, !noalias !4955 %strided.vec221 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %strided.vec222 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %wide.vec223 = load <8 x double>, ptr %611, align 8, !noalias !4955 %strided.vec224 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %strided.vec225 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %612 = fmul <4 x double> %strided.vec225, %broadcast.splat227 %613 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224, <4 x double> %612) %614 = fmul <4 x double> %broadcast.splat231, %strided.vec224 %615 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225, <4 x double> %614) %616 = fadd <4 x double> %strided.vec221, %613 %617 = fadd <4 x double> %strided.vec222, %615 %interleaved.vec232 = shufflevector <4 x double> %616, <4 x double> %617, <8 x i32> store <8 x double> %interleaved.vec232, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4955 %618 = fsub <4 x double> %strided.vec221, %613 %619 = fsub <4 x double> %strided.vec222, %615 %interleaved.vec233 = shufflevector <4 x double> %618, <4 x double> %619, <8 x i32> store <8 x double> %interleaved.vec233, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4955 %620 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 132 %621 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 148 %wide.vec220.1 = load <8 x double>, ptr %620, align 8, !noalias !4955 %strided.vec221.1 = shufflevector <8 x double> %wide.vec220.1, <8 x double> poison, <4 x i32> %strided.vec222.1 = shufflevector <8 x double> %wide.vec220.1, <8 x double> poison, <4 x i32> %wide.vec223.1 = load <8 x double>, ptr %621, align 8, !noalias !4955 %strided.vec224.1 = shufflevector <8 x double> %wide.vec223.1, <8 x double> poison, <4 x i32> %strided.vec225.1 = shufflevector <8 x double> %wide.vec223.1, <8 x double> poison, <4 x i32> %622 = fmul <4 x double> %strided.vec225.1, %broadcast.splat227 %623 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.1, <4 x double> %622) %624 = fmul <4 x double> %broadcast.splat231, %strided.vec224.1 %625 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.1, <4 x double> %624) %626 = fadd <4 x double> %strided.vec221.1, %623 %627 = fadd <4 x double> %strided.vec222.1, %625 %628 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec232.1 = shufflevector <4 x double> %626, <4 x double> %627, <8 x i32> store <8 x double> %interleaved.vec232.1, ptr %628, align 8, !noalias !4955 %629 = fsub <4 x double> %strided.vec221.1, %623 %630 = fsub <4 x double> %strided.vec222.1, %625 %631 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 196 %interleaved.vec233.1 = shufflevector <4 x double> %629, <4 x double> %630, <8 x i32> store <8 x double> %interleaved.vec233.1, ptr %631, align 8, !noalias !4955 %632 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 136 %633 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 152 %wide.vec220.2 = load <8 x double>, ptr %632, align 8, !noalias !4955 %strided.vec221.2 = shufflevector <8 x double> %wide.vec220.2, <8 x double> poison, <4 x i32> %strided.vec222.2 = shufflevector <8 x double> %wide.vec220.2, <8 x double> poison, <4 x i32> %wide.vec223.2 = load <8 x double>, ptr %633, align 8, !noalias !4955 %strided.vec224.2 = shufflevector <8 x double> %wide.vec223.2, <8 x double> poison, <4 x i32> %strided.vec225.2 = shufflevector <8 x double> %wide.vec223.2, <8 x double> poison, <4 x i32> %634 = fmul <4 x double> %strided.vec225.2, %broadcast.splat227 %635 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.2, <4 x double> %634) %636 = fmul <4 x double> %broadcast.splat231, %strided.vec224.2 %637 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.2, <4 x double> %636) %638 = fadd <4 x double> %strided.vec221.2, %635 %639 = fadd <4 x double> %strided.vec222.2, %637 %640 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec232.2 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec232.2, ptr %640, align 8, !noalias !4955 %641 = fsub <4 x double> %strided.vec221.2, %635 %642 = fsub <4 x double> %strided.vec222.2, %637 %643 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 200 %interleaved.vec233.2 = shufflevector <4 x double> %641, <4 x double> %642, <8 x i32> store <8 x double> %interleaved.vec233.2, ptr %643, align 8, !noalias !4955 %644 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 140 %645 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 156 %wide.vec220.3 = load <8 x double>, ptr %644, align 8, !noalias !4955 %strided.vec221.3 = shufflevector <8 x double> %wide.vec220.3, <8 x double> poison, <4 x i32> %strided.vec222.3 = shufflevector <8 x double> %wide.vec220.3, <8 x double> poison, <4 x i32> %wide.vec223.3 = load <8 x double>, ptr %645, align 8, !noalias !4955 %strided.vec224.3 = shufflevector <8 x double> %wide.vec223.3, <8 x double> poison, <4 x i32> %strided.vec225.3 = shufflevector <8 x double> %wide.vec223.3, <8 x double> poison, <4 x i32> %646 = fmul <4 x double> %strided.vec225.3, %broadcast.splat227 %647 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec224.3, <4 x double> %646) %648 = fmul <4 x double> %broadcast.splat231, %strided.vec224.3 %649 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %strided.vec225.3, <4 x double> %648) %650 = fadd <4 x double> %strided.vec221.3, %647 %651 = fadd <4 x double> %strided.vec222.3, %649 %652 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec232.3 = shufflevector <4 x double> %650, <4 x double> %651, <8 x i32> store <8 x double> %interleaved.vec232.3, ptr %652, align 8, !noalias !4955 %653 = fsub <4 x double> %strided.vec221.3, %647 %654 = fsub <4 x double> %strided.vec222.3, %649 %655 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 204 %interleaved.vec233.3 = shufflevector <4 x double> %653, <4 x double> %654, <8 x i32> store <8 x double> %interleaved.vec233.3, ptr %655, align 8, !noalias !4955 %656 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 80, i64 1, i32 1 %w1.1.i.i237.5 = load double, ptr %656, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert251 = insertelement <4 x double> poison, double %w1.1.i.i237.5, i64 0 %broadcast.splat252 = shufflevector <4 x double> %broadcast.splatinsert251, <4 x double> poison, <4 x i32> zeroinitializer %657 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 80, i64 1 %w1.0.i.i236.5 = load double, ptr %657, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert249 = insertelement <4 x double> poison, double %w1.0.i.i236.5, i64 0 %broadcast.splat250 = shufflevector <4 x double> %broadcast.splatinsert249, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i252.5 = fneg double %w1.1.i.i237.5 %broadcast.splatinsert247 = insertelement <4 x double> poison, double %_6.i.i.i252.5, i64 0 %broadcast.splat248 = shufflevector <4 x double> %broadcast.splatinsert247, <4 x double> poison, <4 x i32> zeroinitializer %658 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %data.i5.i.i.i.i.i.i.i688.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %data.i.i.i.i.i.i684.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %data.i.i.i.i.i.i.i.i674.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %wide.vec241 = load <8 x double>, ptr %data.i.i.i.i.i.i684.5, align 8, !noalias !4955 %strided.vec242 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %strided.vec243 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %wide.vec244 = load <8 x double>, ptr %658, align 8, !noalias !4955 %strided.vec245 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %strided.vec246 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %659 = fmul <4 x double> %strided.vec246, %broadcast.splat248 %660 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245, <4 x double> %659) %661 = fmul <4 x double> %broadcast.splat252, %strided.vec245 %662 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246, <4 x double> %661) %663 = fadd <4 x double> %strided.vec242, %660 %664 = fadd <4 x double> %strided.vec243, %662 %interleaved.vec253 = shufflevector <4 x double> %663, <4 x double> %664, <8 x i32> store <8 x double> %interleaved.vec253, ptr %data.i.i.i.i.i.i.i.i674.5, align 8, !noalias !4955 %665 = fsub <4 x double> %strided.vec242, %660 %666 = fsub <4 x double> %strided.vec243, %662 %interleaved.vec254 = shufflevector <4 x double> %665, <4 x double> %666, <8 x i32> store <8 x double> %interleaved.vec254, ptr %data.i5.i.i.i.i.i.i.i688.5, align 8, !noalias !4955 %667 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 164 %668 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 180 %wide.vec241.1 = load <8 x double>, ptr %667, align 8, !noalias !4955 %strided.vec242.1 = shufflevector <8 x double> %wide.vec241.1, <8 x double> poison, <4 x i32> %strided.vec243.1 = shufflevector <8 x double> %wide.vec241.1, <8 x double> poison, <4 x i32> %wide.vec244.1 = load <8 x double>, ptr %668, align 8, !noalias !4955 %strided.vec245.1 = shufflevector <8 x double> %wide.vec244.1, <8 x double> poison, <4 x i32> %strided.vec246.1 = shufflevector <8 x double> %wide.vec244.1, <8 x double> poison, <4 x i32> %669 = fmul <4 x double> %strided.vec246.1, %broadcast.splat248 %670 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.1, <4 x double> %669) %671 = fmul <4 x double> %broadcast.splat252, %strided.vec245.1 %672 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.1, <4 x double> %671) %673 = fadd <4 x double> %strided.vec242.1, %670 %674 = fadd <4 x double> %strided.vec243.1, %672 %675 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec253.1 = shufflevector <4 x double> %673, <4 x double> %674, <8 x i32> store <8 x double> %interleaved.vec253.1, ptr %675, align 8, !noalias !4955 %676 = fsub <4 x double> %strided.vec242.1, %670 %677 = fsub <4 x double> %strided.vec243.1, %672 %678 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 212 %interleaved.vec254.1 = shufflevector <4 x double> %676, <4 x double> %677, <8 x i32> store <8 x double> %interleaved.vec254.1, ptr %678, align 8, !noalias !4955 %679 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 168 %680 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 184 %wide.vec241.2 = load <8 x double>, ptr %679, align 8, !noalias !4955 %strided.vec242.2 = shufflevector <8 x double> %wide.vec241.2, <8 x double> poison, <4 x i32> %strided.vec243.2 = shufflevector <8 x double> %wide.vec241.2, <8 x double> poison, <4 x i32> %wide.vec244.2 = load <8 x double>, ptr %680, align 8, !noalias !4955 %strided.vec245.2 = shufflevector <8 x double> %wide.vec244.2, <8 x double> poison, <4 x i32> %strided.vec246.2 = shufflevector <8 x double> %wide.vec244.2, <8 x double> poison, <4 x i32> %681 = fmul <4 x double> %strided.vec246.2, %broadcast.splat248 %682 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.2, <4 x double> %681) %683 = fmul <4 x double> %broadcast.splat252, %strided.vec245.2 %684 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.2, <4 x double> %683) %685 = fadd <4 x double> %strided.vec242.2, %682 %686 = fadd <4 x double> %strided.vec243.2, %684 %687 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec253.2 = shufflevector <4 x double> %685, <4 x double> %686, <8 x i32> store <8 x double> %interleaved.vec253.2, ptr %687, align 8, !noalias !4955 %688 = fsub <4 x double> %strided.vec242.2, %682 %689 = fsub <4 x double> %strided.vec243.2, %684 %690 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 216 %interleaved.vec254.2 = shufflevector <4 x double> %688, <4 x double> %689, <8 x i32> store <8 x double> %interleaved.vec254.2, ptr %690, align 8, !noalias !4955 %691 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 172 %692 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 188 %wide.vec241.3 = load <8 x double>, ptr %691, align 8, !noalias !4955 %strided.vec242.3 = shufflevector <8 x double> %wide.vec241.3, <8 x double> poison, <4 x i32> %strided.vec243.3 = shufflevector <8 x double> %wide.vec241.3, <8 x double> poison, <4 x i32> %wide.vec244.3 = load <8 x double>, ptr %692, align 8, !noalias !4955 %strided.vec245.3 = shufflevector <8 x double> %wide.vec244.3, <8 x double> poison, <4 x i32> %strided.vec246.3 = shufflevector <8 x double> %wide.vec244.3, <8 x double> poison, <4 x i32> %693 = fmul <4 x double> %strided.vec246.3, %broadcast.splat248 %694 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec245.3, <4 x double> %693) %695 = fmul <4 x double> %broadcast.splat252, %strided.vec245.3 %696 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat250, <4 x double> %strided.vec246.3, <4 x double> %695) %697 = fadd <4 x double> %strided.vec242.3, %694 %698 = fadd <4 x double> %strided.vec243.3, %696 %699 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec253.3 = shufflevector <4 x double> %697, <4 x double> %698, <8 x i32> store <8 x double> %interleaved.vec253.3, ptr %699, align 8, !noalias !4955 %700 = fsub <4 x double> %strided.vec242.3, %694 %701 = fsub <4 x double> %strided.vec243.3, %696 %702 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 220 %interleaved.vec254.3 = shufflevector <4 x double> %700, <4 x double> %701, <8 x i32> store <8 x double> %interleaved.vec254.3, ptr %702, align 8, !noalias !4955 %broadcast.splatinsert272 = insertelement <4 x double> poison, double %w1.1.i.i.i191.3, i64 0 %broadcast.splat273 = shufflevector <4 x double> %broadcast.splatinsert272, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert270 = insertelement <4 x double> poison, double %w1.0.i.i.i190.3, i64 0 %broadcast.splat271 = shufflevector <4 x double> %broadcast.splatinsert270, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert268 = insertelement <4 x double> poison, double %_6.i.i.i.i206.3, i64 0 %broadcast.splat269 = shufflevector <4 x double> %broadcast.splatinsert268, <4 x double> poison, <4 x i32> zeroinitializer %703 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %data.i5.i.i.i.i.i.i.i688.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %data.i.i.i.i.i.i684.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %data.i.i.i.i.i.i.i.i674.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %wide.vec262 = load <8 x double>, ptr %data.i.i.i.i.i.i684.6, align 8, !noalias !4955 %strided.vec263 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %strided.vec264 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %wide.vec265 = load <8 x double>, ptr %703, align 8, !noalias !4955 %strided.vec266 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %strided.vec267 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %704 = fmul <4 x double> %strided.vec267, %broadcast.splat269 %705 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266, <4 x double> %704) %706 = fmul <4 x double> %broadcast.splat273, %strided.vec266 %707 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267, <4 x double> %706) %708 = fadd <4 x double> %strided.vec263, %705 %709 = fadd <4 x double> %strided.vec264, %707 %interleaved.vec274 = shufflevector <4 x double> %708, <4 x double> %709, <8 x i32> store <8 x double> %interleaved.vec274, ptr %data.i.i.i.i.i.i.i.i674.6, align 8, !noalias !4955 %710 = fsub <4 x double> %strided.vec263, %705 %711 = fsub <4 x double> %strided.vec264, %707 %interleaved.vec275 = shufflevector <4 x double> %710, <4 x double> %711, <8 x i32> store <8 x double> %interleaved.vec275, ptr %data.i5.i.i.i.i.i.i.i688.6, align 8, !noalias !4955 %712 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 196 %713 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 212 %wide.vec262.1 = load <8 x double>, ptr %712, align 8, !noalias !4955 %strided.vec263.1 = shufflevector <8 x double> %wide.vec262.1, <8 x double> poison, <4 x i32> %strided.vec264.1 = shufflevector <8 x double> %wide.vec262.1, <8 x double> poison, <4 x i32> %wide.vec265.1 = load <8 x double>, ptr %713, align 8, !noalias !4955 %strided.vec266.1 = shufflevector <8 x double> %wide.vec265.1, <8 x double> poison, <4 x i32> %strided.vec267.1 = shufflevector <8 x double> %wide.vec265.1, <8 x double> poison, <4 x i32> %714 = fmul <4 x double> %strided.vec267.1, %broadcast.splat269 %715 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.1, <4 x double> %714) %716 = fmul <4 x double> %broadcast.splat273, %strided.vec266.1 %717 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.1, <4 x double> %716) %718 = fadd <4 x double> %strided.vec263.1, %715 %719 = fadd <4 x double> %strided.vec264.1, %717 %720 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec274.1 = shufflevector <4 x double> %718, <4 x double> %719, <8 x i32> store <8 x double> %interleaved.vec274.1, ptr %720, align 8, !noalias !4955 %721 = fsub <4 x double> %strided.vec263.1, %715 %722 = fsub <4 x double> %strided.vec264.1, %717 %723 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 228 %interleaved.vec275.1 = shufflevector <4 x double> %721, <4 x double> %722, <8 x i32> store <8 x double> %interleaved.vec275.1, ptr %723, align 8, !noalias !4955 %724 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 200 %725 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 216 %wide.vec262.2 = load <8 x double>, ptr %724, align 8, !noalias !4955 %strided.vec263.2 = shufflevector <8 x double> %wide.vec262.2, <8 x double> poison, <4 x i32> %strided.vec264.2 = shufflevector <8 x double> %wide.vec262.2, <8 x double> poison, <4 x i32> %wide.vec265.2 = load <8 x double>, ptr %725, align 8, !noalias !4955 %strided.vec266.2 = shufflevector <8 x double> %wide.vec265.2, <8 x double> poison, <4 x i32> %strided.vec267.2 = shufflevector <8 x double> %wide.vec265.2, <8 x double> poison, <4 x i32> %726 = fmul <4 x double> %strided.vec267.2, %broadcast.splat269 %727 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.2, <4 x double> %726) %728 = fmul <4 x double> %broadcast.splat273, %strided.vec266.2 %729 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.2, <4 x double> %728) %730 = fadd <4 x double> %strided.vec263.2, %727 %731 = fadd <4 x double> %strided.vec264.2, %729 %732 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec274.2 = shufflevector <4 x double> %730, <4 x double> %731, <8 x i32> store <8 x double> %interleaved.vec274.2, ptr %732, align 8, !noalias !4955 %733 = fsub <4 x double> %strided.vec263.2, %727 %734 = fsub <4 x double> %strided.vec264.2, %729 %735 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 232 %interleaved.vec275.2 = shufflevector <4 x double> %733, <4 x double> %734, <8 x i32> store <8 x double> %interleaved.vec275.2, ptr %735, align 8, !noalias !4955 %736 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 204 %737 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 220 %wide.vec262.3 = load <8 x double>, ptr %736, align 8, !noalias !4955 %strided.vec263.3 = shufflevector <8 x double> %wide.vec262.3, <8 x double> poison, <4 x i32> %strided.vec264.3 = shufflevector <8 x double> %wide.vec262.3, <8 x double> poison, <4 x i32> %wide.vec265.3 = load <8 x double>, ptr %737, align 8, !noalias !4955 %strided.vec266.3 = shufflevector <8 x double> %wide.vec265.3, <8 x double> poison, <4 x i32> %strided.vec267.3 = shufflevector <8 x double> %wide.vec265.3, <8 x double> poison, <4 x i32> %738 = fmul <4 x double> %strided.vec267.3, %broadcast.splat269 %739 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec266.3, <4 x double> %738) %740 = fmul <4 x double> %broadcast.splat273, %strided.vec266.3 %741 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat271, <4 x double> %strided.vec267.3, <4 x double> %740) %742 = fadd <4 x double> %strided.vec263.3, %739 %743 = fadd <4 x double> %strided.vec264.3, %741 %744 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec274.3 = shufflevector <4 x double> %742, <4 x double> %743, <8 x i32> store <8 x double> %interleaved.vec274.3, ptr %744, align 8, !noalias !4955 %745 = fsub <4 x double> %strided.vec263.3, %739 %746 = fsub <4 x double> %strided.vec264.3, %741 %747 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 236 %interleaved.vec275.3 = shufflevector <4 x double> %745, <4 x double> %746, <8 x i32> store <8 x double> %interleaved.vec275.3, ptr %747, align 8, !noalias !4955 %748 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 112, i64 1, i32 1 %w1.1.i.i237.7 = load double, ptr %748, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert293 = insertelement <4 x double> poison, double %w1.1.i.i237.7, i64 0 %broadcast.splat294 = shufflevector <4 x double> %broadcast.splatinsert293, <4 x double> poison, <4 x i32> zeroinitializer %749 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 112, i64 1 %w1.0.i.i236.7 = load double, ptr %749, align 8, !noalias !4955, !noundef !3 %broadcast.splatinsert291 = insertelement <4 x double> poison, double %w1.0.i.i236.7, i64 0 %broadcast.splat292 = shufflevector <4 x double> %broadcast.splatinsert291, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i252.7 = fneg double %w1.1.i.i237.7 %broadcast.splatinsert289 = insertelement <4 x double> poison, double %_6.i.i.i252.7, i64 0 %broadcast.splat290 = shufflevector <4 x double> %broadcast.splatinsert289, <4 x double> poison, <4 x i32> zeroinitializer %750 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %data.i5.i.i.i.i.i.i.i688.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %data.i.i.i.i.i.i684.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %data.i.i.i.i.i.i.i.i674.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %wide.vec283 = load <8 x double>, ptr %data.i.i.i.i.i.i684.7, align 8, !noalias !4955 %strided.vec284 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %strided.vec285 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %wide.vec286 = load <8 x double>, ptr %750, align 8, !noalias !4955 %strided.vec287 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %strided.vec288 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %751 = fmul <4 x double> %strided.vec288, %broadcast.splat290 %752 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287, <4 x double> %751) %753 = fmul <4 x double> %broadcast.splat294, %strided.vec287 %754 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288, <4 x double> %753) %755 = fadd <4 x double> %strided.vec284, %752 %756 = fadd <4 x double> %strided.vec285, %754 %interleaved.vec295 = shufflevector <4 x double> %755, <4 x double> %756, <8 x i32> store <8 x double> %interleaved.vec295, ptr %data.i.i.i.i.i.i.i.i674.7, align 8, !noalias !4955 %757 = fsub <4 x double> %strided.vec284, %752 %758 = fsub <4 x double> %strided.vec285, %754 %interleaved.vec296 = shufflevector <4 x double> %757, <4 x double> %758, <8 x i32> store <8 x double> %interleaved.vec296, ptr %data.i5.i.i.i.i.i.i.i688.7, align 8, !noalias !4955 %759 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 228 %760 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %wide.vec283.1 = load <8 x double>, ptr %759, align 8, !noalias !4955 %strided.vec284.1 = shufflevector <8 x double> %wide.vec283.1, <8 x double> poison, <4 x i32> %strided.vec285.1 = shufflevector <8 x double> %wide.vec283.1, <8 x double> poison, <4 x i32> %wide.vec286.1 = load <8 x double>, ptr %760, align 8, !noalias !4955 %strided.vec287.1 = shufflevector <8 x double> %wide.vec286.1, <8 x double> poison, <4 x i32> %strided.vec288.1 = shufflevector <8 x double> %wide.vec286.1, <8 x double> poison, <4 x i32> %761 = fmul <4 x double> %strided.vec288.1, %broadcast.splat290 %762 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.1, <4 x double> %761) %763 = fmul <4 x double> %broadcast.splat294, %strided.vec287.1 %764 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.1, <4 x double> %763) %765 = fadd <4 x double> %strided.vec284.1, %762 %766 = fadd <4 x double> %strided.vec285.1, %764 %767 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec295.1 = shufflevector <4 x double> %765, <4 x double> %766, <8 x i32> store <8 x double> %interleaved.vec295.1, ptr %767, align 8, !noalias !4955 %768 = fsub <4 x double> %strided.vec284.1, %762 %769 = fsub <4 x double> %strided.vec285.1, %764 %770 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %interleaved.vec296.1 = shufflevector <4 x double> %768, <4 x double> %769, <8 x i32> store <8 x double> %interleaved.vec296.1, ptr %770, align 8, !noalias !4955 %771 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 232 %772 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %wide.vec283.2 = load <8 x double>, ptr %771, align 8, !noalias !4955 %strided.vec284.2 = shufflevector <8 x double> %wide.vec283.2, <8 x double> poison, <4 x i32> %strided.vec285.2 = shufflevector <8 x double> %wide.vec283.2, <8 x double> poison, <4 x i32> %wide.vec286.2 = load <8 x double>, ptr %772, align 8, !noalias !4955 %strided.vec287.2 = shufflevector <8 x double> %wide.vec286.2, <8 x double> poison, <4 x i32> %strided.vec288.2 = shufflevector <8 x double> %wide.vec286.2, <8 x double> poison, <4 x i32> %773 = fmul <4 x double> %strided.vec288.2, %broadcast.splat290 %774 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.2, <4 x double> %773) %775 = fmul <4 x double> %broadcast.splat294, %strided.vec287.2 %776 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.2, <4 x double> %775) %777 = fadd <4 x double> %strided.vec284.2, %774 %778 = fadd <4 x double> %strided.vec285.2, %776 %779 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec295.2 = shufflevector <4 x double> %777, <4 x double> %778, <8 x i32> store <8 x double> %interleaved.vec295.2, ptr %779, align 8, !noalias !4955 %780 = fsub <4 x double> %strided.vec284.2, %774 %781 = fsub <4 x double> %strided.vec285.2, %776 %782 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %interleaved.vec296.2 = shufflevector <4 x double> %780, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec296.2, ptr %782, align 8, !noalias !4955 %783 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 236 %784 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %wide.vec283.3 = load <8 x double>, ptr %783, align 8, !noalias !4955 %strided.vec284.3 = shufflevector <8 x double> %wide.vec283.3, <8 x double> poison, <4 x i32> %strided.vec285.3 = shufflevector <8 x double> %wide.vec283.3, <8 x double> poison, <4 x i32> %wide.vec286.3 = load <8 x double>, ptr %784, align 8, !noalias !4955 %strided.vec287.3 = shufflevector <8 x double> %wide.vec286.3, <8 x double> poison, <4 x i32> %strided.vec288.3 = shufflevector <8 x double> %wide.vec286.3, <8 x double> poison, <4 x i32> %785 = fmul <4 x double> %strided.vec288.3, %broadcast.splat290 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec287.3, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat294, %strided.vec287.3 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat292, <4 x double> %strided.vec288.3, <4 x double> %787) %789 = fadd <4 x double> %strided.vec284.3, %786 %790 = fadd <4 x double> %strided.vec285.3, %788 %791 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec295.3 = shufflevector <4 x double> %789, <4 x double> %790, <8 x i32> store <8 x double> %interleaved.vec295.3, ptr %791, align 8, !noalias !4955 %792 = fsub <4 x double> %strided.vec284.3, %786 %793 = fsub <4 x double> %strided.vec285.3, %788 %794 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %interleaved.vec296.3 = shufflevector <4 x double> %792, <4 x double> %793, <8 x i32> store <8 x double> %interleaved.vec296.3, ptr %794, align 8, !noalias !4955 br label %bb19.i.i40.i bb19.i.i40.i: ; preds = %bb15.i.i31.i134.loopexit.1, %bb19.i.i40.i %iter.i.i9.i.sroa.38.0150 = phi i64 [ %831, %bb19.i.i40.i ], [ 0, %bb15.i.i31.i134.loopexit.1 ] %start1.i.i.i.i.i.i.i.i845 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0150, 3 %data.i.i.i.i.i.i.i.i846 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i845 %start1.i.i.i.i.i.i855 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0150, 4 %data.i.i.i.i.i.i856 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i855 %data.i5.i.i.i.i.i.i.i860 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i845 %795 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i845, i64 1 %w1.0.i.i42.i = load double, ptr %795, align 8, !noalias !4955, !noundef !3 %796 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i845, i64 1, i32 1 %w1.1.i.i43.i = load double, ptr %796, align 8, !noalias !4955, !noundef !3 %797 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 8 %_6.i.i.i58.i = fneg double %w1.1.i.i43.i %798 = load <4 x double>, ptr %data.i.i.i.i.i.i856, align 8, !noalias !4955 %799 = load <4 x double>, ptr %797, align 8, !noalias !4955 %800 = insertelement <4 x double> poison, double %_6.i.i.i58.i, i64 0 %801 = insertelement <4 x double> %800, double %w1.1.i.i43.i, i64 1 %802 = shufflevector <4 x double> %801, <4 x double> poison, <4 x i32> %803 = fmul <4 x double> %802, %799 %804 = shufflevector <4 x double> %803, <4 x double> poison, <4 x i32> %805 = insertelement <4 x double> poison, double %w1.0.i.i42.i, i64 0 %806 = shufflevector <4 x double> %805, <4 x double> poison, <4 x i32> zeroinitializer %807 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %806, <4 x double> %799, <4 x double> %804) %808 = fadd <4 x double> %798, %807 store <4 x double> %808, ptr %data.i.i.i.i.i.i.i.i846, align 8, !noalias !4955 %809 = fsub <4 x double> %798, %807 store <4 x double> %809, ptr %data.i5.i.i.i.i.i.i.i860, align 8, !noalias !4955 %_3.i.i.i.i.i.i.i.i905.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i846, i64 2 %_3.i2.i.i.i.i.i.i.i908.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i860, i64 2 %_3.i.i.i.i.i.i911.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 2 %_3.i.i.i.i914.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 10 %810 = load <4 x double>, ptr %_3.i.i.i.i.i.i911.2, align 8, !noalias !4955 %811 = load <4 x double>, ptr %_3.i.i.i.i914.2, align 8, !noalias !4955 %812 = fmul <4 x double> %802, %811 %813 = shufflevector <4 x double> %812, <4 x double> poison, <4 x i32> %814 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %806, <4 x double> %811, <4 x double> %813) %815 = fadd <4 x double> %810, %814 store <4 x double> %815, ptr %_3.i.i.i.i.i.i.i.i905.2, align 8, !noalias !4955 %816 = fsub <4 x double> %810, %814 store <4 x double> %816, ptr %_3.i2.i.i.i.i.i.i.i908.2, align 8, !noalias !4955 %_3.i.i.i.i.i.i.i.i905.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i846, i64 4 %_3.i2.i.i.i.i.i.i.i908.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i860, i64 4 %_3.i.i.i.i.i.i911.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 4 %_3.i.i.i.i914.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 12 %817 = load <4 x double>, ptr %_3.i.i.i.i.i.i911.4, align 8, !noalias !4955 %818 = load <4 x double>, ptr %_3.i.i.i.i914.4, align 8, !noalias !4955 %819 = fmul <4 x double> %802, %818 %820 = shufflevector <4 x double> %819, <4 x double> poison, <4 x i32> %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %806, <4 x double> %818, <4 x double> %820) %822 = fadd <4 x double> %817, %821 store <4 x double> %822, ptr %_3.i.i.i.i.i.i.i.i905.4, align 8, !noalias !4955 %823 = fsub <4 x double> %817, %821 store <4 x double> %823, ptr %_3.i2.i.i.i.i.i.i.i908.4, align 8, !noalias !4955 %_3.i.i.i.i.i.i.i.i905.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i846, i64 6 %_3.i2.i.i.i.i.i.i.i908.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i860, i64 6 %_3.i.i.i.i.i.i911.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 6 %_3.i.i.i.i914.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i856, i64 14 %824 = load <4 x double>, ptr %_3.i.i.i.i.i.i911.6, align 8, !noalias !4955 %825 = load <4 x double>, ptr %_3.i.i.i.i914.6, align 8, !noalias !4955 %826 = fmul <4 x double> %802, %825 %827 = shufflevector <4 x double> %826, <4 x double> poison, <4 x i32> %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %806, <4 x double> %825, <4 x double> %827) %829 = fadd <4 x double> %824, %828 store <4 x double> %829, ptr %_3.i.i.i.i.i.i.i.i905.6, align 8, !noalias !4955 %830 = fsub <4 x double> %824, %828 store <4 x double> %830, ptr %_3.i2.i.i.i.i.i.i.i908.6, align 8, !noalias !4955 %831 = add nuw nsw i64 %iter.i.i9.i.sroa.38.0150, 1 %exitcond164.not = icmp eq i64 %831, 16 br i1 %exitcond164.not, label %vector.body302, label %bb19.i.i40.i vector.body302: ; preds = %bb19.i.i40.i, %vector.body302 %index303 = phi i64 [ %index.next323, %vector.body302 ], [ 0, %bb19.i.i40.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body302 ], [ , %bb19.i.i40.i ] %832 = shl nuw nsw <4 x i64> %vec.ind, %833 = extractelement <4 x i64> %832, i64 0 %834 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %833 %835 = shl nuw nsw <4 x i64> %vec.ind, %836 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %835 %837 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %833 %838 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %832, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %838, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %839 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %832, i64 1, i32 1 %wide.masked.gather304 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %839, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %840 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 4 %841 = fneg <4 x double> %wide.masked.gather304 %wide.masked.gather305 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %836, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %842 = getelementptr inbounds i8, <4 x ptr> %836, i64 8 %wide.masked.gather306 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %842, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %wide.masked.gather307 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %840, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %843 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 4, i32 1 %wide.masked.gather308 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %843, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %844 = fmul <4 x double> %wide.masked.gather308, %841 %845 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather307, <4 x double> %844) %846 = fmul <4 x double> %wide.masked.gather304, %wide.masked.gather307 %847 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather308, <4 x double> %846) %848 = fadd <4 x double> %wide.masked.gather305, %845 %849 = fadd <4 x double> %wide.masked.gather306, %847 %850 = fsub <4 x double> %wide.masked.gather305, %845 %851 = fsub <4 x double> %wide.masked.gather306, %847 %852 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 1 %853 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 5 %wide.masked.gather309 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %852, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %854 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 1, i32 1 %wide.masked.gather310 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %854, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %wide.masked.gather311 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %853, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %855 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 5, i32 1 %wide.masked.gather312 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %855, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %856 = fmul <4 x double> %wide.masked.gather312, %841 %857 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather311, <4 x double> %856) %858 = fmul <4 x double> %wide.masked.gather304, %wide.masked.gather311 %859 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather312, <4 x double> %858) %860 = fadd <4 x double> %wide.masked.gather309, %857 %861 = fadd <4 x double> %wide.masked.gather310, %859 %862 = fsub <4 x double> %wide.masked.gather309, %857 %863 = fsub <4 x double> %wide.masked.gather310, %859 %864 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 2 %865 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 6 %wide.masked.gather313 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %864, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %866 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 2, i32 1 %wide.masked.gather314 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %866, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %wide.masked.gather315 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %865, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %867 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 6, i32 1 %wide.masked.gather316 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %867, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %868 = fmul <4 x double> %wide.masked.gather316, %841 %869 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather315, <4 x double> %868) %870 = fmul <4 x double> %wide.masked.gather304, %wide.masked.gather315 %871 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather316, <4 x double> %870) %872 = fadd <4 x double> %wide.masked.gather313, %869 %873 = fadd <4 x double> %wide.masked.gather314, %871 %874 = fsub <4 x double> %wide.masked.gather313, %869 %875 = fsub <4 x double> %wide.masked.gather314, %871 %876 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 3 %877 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 7 %wide.masked.gather317 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %876, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %878 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 3, i32 1 %wide.masked.gather318 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %878, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %wide.masked.gather319 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %877, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %879 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %836, i64 7, i32 1 %wide.masked.gather320 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %879, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %880 = fmul <4 x double> %wide.masked.gather320, %841 %881 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather319, <4 x double> %880) %882 = fmul <4 x double> %wide.masked.gather304, %wide.masked.gather319 %883 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather320, <4 x double> %882) %884 = fadd <4 x double> %wide.masked.gather317, %881 %885 = fadd <4 x double> %wide.masked.gather318, %883 %886 = shufflevector <4 x double> %848, <4 x double> %849, <8 x i32> %887 = shufflevector <4 x double> %860, <4 x double> %861, <8 x i32> %888 = shufflevector <4 x double> %872, <4 x double> %873, <8 x i32> %889 = shufflevector <4 x double> %884, <4 x double> %885, <8 x i32> %890 = shufflevector <8 x double> %886, <8 x double> %887, <16 x i32> %891 = shufflevector <8 x double> %888, <8 x double> %889, <16 x i32> %interleaved.vec321 = shufflevector <16 x double> %890, <16 x double> %891, <32 x i32> store <32 x double> %interleaved.vec321, ptr %834, align 8, !noalias !4955 %892 = fsub <4 x double> %wide.masked.gather317, %881 %893 = fsub <4 x double> %wide.masked.gather318, %883 %894 = shufflevector <4 x double> %850, <4 x double> %851, <8 x i32> %895 = shufflevector <4 x double> %862, <4 x double> %863, <8 x i32> %896 = shufflevector <4 x double> %874, <4 x double> %875, <8 x i32> %897 = shufflevector <4 x double> %892, <4 x double> %893, <8 x i32> %898 = shufflevector <8 x double> %894, <8 x double> %895, <16 x i32> %899 = shufflevector <8 x double> %896, <8 x double> %897, <16 x i32> %interleaved.vec322 = shufflevector <16 x double> %898, <16 x double> %899, <32 x i32> store <32 x double> %interleaved.vec322, ptr %837, align 8, !noalias !4955 %index.next323 = add nuw i64 %index303, 4 %vec.ind.next = add <4 x i64> %vec.ind, %900 = icmp eq i64 %index.next323, 32 br i1 %900, label %vector.body328, label %vector.body302, !llvm.loop !4966 vector.body328: ; preds = %vector.body302, %vector.body328 %index329 = phi i64 [ %index.next344, %vector.body328 ], [ 0, %vector.body302 ] %vec.ind330 = phi <4 x i64> [ %vec.ind.next331, %vector.body328 ], [ , %vector.body302 ] %901 = shl nuw nsw <4 x i64> %vec.ind330, %902 = extractelement <4 x i64> %901, i64 0 %903 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %902 %904 = shl nuw nsw <4 x i64> %vec.ind330, %905 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %904 %906 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %902 %907 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %901, i64 1 %wide.masked.gather332 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %907, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %908 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %901, i64 1, i32 1 %wide.masked.gather333 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %908, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %909 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %905, i64 2 %910 = fneg <4 x double> %wide.masked.gather333 %wide.masked.gather334 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %905, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %911 = getelementptr inbounds i8, <4 x ptr> %905, i64 8 %wide.masked.gather335 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %911, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %wide.masked.gather336 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %909, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %912 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %905, i64 2, i32 1 %wide.masked.gather337 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %912, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %913 = fmul <4 x double> %wide.masked.gather337, %910 %914 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather332, <4 x double> %wide.masked.gather336, <4 x double> %913) %915 = fmul <4 x double> %wide.masked.gather333, %wide.masked.gather336 %916 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather332, <4 x double> %wide.masked.gather337, <4 x double> %915) %917 = fadd <4 x double> %wide.masked.gather334, %914 %918 = fadd <4 x double> %wide.masked.gather335, %916 %919 = fsub <4 x double> %wide.masked.gather334, %914 %920 = fsub <4 x double> %wide.masked.gather335, %916 %921 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %905, i64 1 %922 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %905, i64 3 %wide.masked.gather338 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %921, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %923 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %905, i64 1, i32 1 %wide.masked.gather339 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %923, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %wide.masked.gather340 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %922, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %924 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %905, i64 3, i32 1 %wide.masked.gather341 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %924, i32 8, <4 x i1> , <4 x double> poison), !noalias !4955 %925 = fmul <4 x double> %wide.masked.gather341, %910 %926 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather332, <4 x double> %wide.masked.gather340, <4 x double> %925) %927 = fmul <4 x double> %wide.masked.gather333, %wide.masked.gather340 %928 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather332, <4 x double> %wide.masked.gather341, <4 x double> %927) %929 = fadd <4 x double> %wide.masked.gather338, %926 %930 = fadd <4 x double> %wide.masked.gather339, %928 %931 = shufflevector <4 x double> %917, <4 x double> %918, <8 x i32> %932 = shufflevector <4 x double> %929, <4 x double> %930, <8 x i32> %interleaved.vec342 = shufflevector <8 x double> %931, <8 x double> %932, <16 x i32> store <16 x double> %interleaved.vec342, ptr %903, align 8, !noalias !4955 %933 = fsub <4 x double> %wide.masked.gather338, %926 %934 = fsub <4 x double> %wide.masked.gather339, %928 %935 = shufflevector <4 x double> %919, <4 x double> %920, <8 x i32> %936 = shufflevector <4 x double> %933, <4 x double> %934, <8 x i32> %interleaved.vec343 = shufflevector <8 x double> %935, <8 x double> %936, <16 x i32> store <16 x double> %interleaved.vec343, ptr %906, align 8, !noalias !4955 %index.next344 = add nuw i64 %index329, 4 %vec.ind.next331 = add <4 x i64> %vec.ind330, %937 = icmp eq i64 %index.next344, 60 br i1 %937, label %bb19.i.i41, label %vector.body328, !llvm.loop !4967 bb19.i.i41: ; preds = %vector.body328 %data.i.i.i.i.i.i.i.i1190 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %data.i.i.i.i.i.i1200 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %data.i5.i.i.i.i.i.i.i1204 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %938 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 120, i64 1 %w1.0.i.i43 = load double, ptr %938, align 8, !noalias !4955, !noundef !3 %939 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 120, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %939, align 8, !noalias !4955, !noundef !3 %940 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 242 %_6.i.i.i59 = fneg double %w1.1.i.i44 %941 = load <4 x double>, ptr %data.i.i.i.i.i.i1200, align 8, !noalias !4955 %942 = load <4 x double>, ptr %940, align 8, !noalias !4955 %943 = insertelement <4 x double> poison, double %_6.i.i.i59, i64 0 %944 = insertelement <4 x double> %943, double %w1.1.i.i44, i64 1 %945 = shufflevector <4 x double> %944, <4 x double> poison, <4 x i32> %946 = fmul <4 x double> %945, %942 %947 = shufflevector <4 x double> %946, <4 x double> poison, <4 x i32> %948 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %949 = shufflevector <4 x double> %948, <4 x double> poison, <4 x i32> zeroinitializer %950 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %949, <4 x double> %942, <4 x double> %947) %951 = fadd <4 x double> %941, %950 store <4 x double> %951, ptr %data.i.i.i.i.i.i.i.i1190, align 8, !noalias !4955 %952 = fsub <4 x double> %941, %950 store <4 x double> %952, ptr %data.i5.i.i.i.i.i.i.i1204, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i1190.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %data.i.i.i.i.i.i1200.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %data.i5.i.i.i.i.i.i.i1204.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %953 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 122, i64 1 %w1.0.i.i43.1 = load double, ptr %953, align 8, !noalias !4955, !noundef !3 %954 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 122, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %954, align 8, !noalias !4955, !noundef !3 %955 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 246 %_6.i.i.i59.1 = fneg double %w1.1.i.i44.1 %956 = load <4 x double>, ptr %data.i.i.i.i.i.i1200.1, align 8, !noalias !4955 %957 = load <4 x double>, ptr %955, align 8, !noalias !4955 %958 = insertelement <4 x double> poison, double %_6.i.i.i59.1, i64 0 %959 = insertelement <4 x double> %958, double %w1.1.i.i44.1, i64 1 %960 = shufflevector <4 x double> %959, <4 x double> poison, <4 x i32> %961 = fmul <4 x double> %960, %957 %962 = shufflevector <4 x double> %961, <4 x double> poison, <4 x i32> %963 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %964 = shufflevector <4 x double> %963, <4 x double> poison, <4 x i32> zeroinitializer %965 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %964, <4 x double> %957, <4 x double> %962) %966 = fadd <4 x double> %956, %965 store <4 x double> %966, ptr %data.i.i.i.i.i.i.i.i1190.1, align 8, !noalias !4955 %967 = fsub <4 x double> %956, %965 store <4 x double> %967, ptr %data.i5.i.i.i.i.i.i.i1204.1, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i1190.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %data.i.i.i.i.i.i1200.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %data.i5.i.i.i.i.i.i.i1204.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %968 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i43.2 = load double, ptr %968, align 8, !noalias !4955, !noundef !3 %969 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i44.2 = load double, ptr %969, align 8, !noalias !4955, !noundef !3 %970 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 250 %_6.i.i.i59.2 = fneg double %w1.1.i.i44.2 %971 = load <4 x double>, ptr %data.i.i.i.i.i.i1200.2, align 8, !noalias !4955 %972 = load <4 x double>, ptr %970, align 8, !noalias !4955 %973 = insertelement <4 x double> poison, double %_6.i.i.i59.2, i64 0 %974 = insertelement <4 x double> %973, double %w1.1.i.i44.2, i64 1 %975 = shufflevector <4 x double> %974, <4 x double> poison, <4 x i32> %976 = fmul <4 x double> %975, %972 %977 = shufflevector <4 x double> %976, <4 x double> poison, <4 x i32> %978 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %979 = shufflevector <4 x double> %978, <4 x double> poison, <4 x i32> zeroinitializer %980 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %979, <4 x double> %972, <4 x double> %977) %981 = fadd <4 x double> %971, %980 store <4 x double> %981, ptr %data.i.i.i.i.i.i.i.i1190.2, align 8, !noalias !4955 %982 = fsub <4 x double> %971, %980 store <4 x double> %982, ptr %data.i5.i.i.i.i.i.i.i1204.2, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i1190.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %data.i.i.i.i.i.i1200.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i5.i.i.i.i.i.i.i1204.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %983 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i43.3 = load double, ptr %983, align 8, !noalias !4955, !noundef !3 %984 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i44.3 = load double, ptr %984, align 8, !noalias !4955, !noundef !3 %985 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %_6.i.i.i59.3 = fneg double %w1.1.i.i44.3 %986 = load <4 x double>, ptr %data.i.i.i.i.i.i1200.3, align 8, !noalias !4955 %987 = load <4 x double>, ptr %985, align 8, !noalias !4955 %988 = insertelement <4 x double> poison, double %_6.i.i.i59.3, i64 0 %989 = insertelement <4 x double> %988, double %w1.1.i.i44.3, i64 1 %990 = shufflevector <4 x double> %989, <4 x double> poison, <4 x i32> %991 = fmul <4 x double> %990, %987 %992 = shufflevector <4 x double> %991, <4 x double> poison, <4 x i32> %993 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %994 = shufflevector <4 x double> %993, <4 x double> poison, <4 x i32> zeroinitializer %995 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %994, <4 x double> %987, <4 x double> %992) %996 = fadd <4 x double> %986, %995 store <4 x double> %996, ptr %data.i.i.i.i.i.i.i.i1190.3, align 8, !noalias !4955 %997 = fsub <4 x double> %986, %995 store <4 x double> %997, ptr %data.i5.i.i.i.i.i.i.i1204.3, align 8, !noalias !4955 br label %vector.body349 vector.body349: ; preds = %bb19.i.i41, %vector.body349 %index350 = phi i64 [ %index.next361, %vector.body349 ], [ 0, %bb19.i.i41 ] %998 = shl i64 %index350, 1 %999 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %998 %1000 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index350, i64 1 %wide.vec351 = load <16 x double>, ptr %1000, align 8, !noalias !4955 %strided.vec352 = shufflevector <16 x double> %wide.vec351, <16 x double> poison, <4 x i32> %strided.vec353 = shufflevector <16 x double> %wide.vec351, <16 x double> poison, <4 x i32> %1001 = fneg <4 x double> %strided.vec353 %wide.vec354 = load <16 x double>, ptr %999, align 8, !noalias !4955 %strided.vec355 = shufflevector <16 x double> %wide.vec354, <16 x double> poison, <4 x i32> %strided.vec356 = shufflevector <16 x double> %wide.vec354, <16 x double> poison, <4 x i32> %strided.vec357 = shufflevector <16 x double> %wide.vec354, <16 x double> poison, <4 x i32> %strided.vec358 = shufflevector <16 x double> %wide.vec354, <16 x double> poison, <4 x i32> %1002 = fmul <4 x double> %strided.vec358, %1001 %1003 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec352, <4 x double> %strided.vec357, <4 x double> %1002) %1004 = fmul <4 x double> %strided.vec353, %strided.vec357 %1005 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec352, <4 x double> %strided.vec358, <4 x double> %1004) %1006 = fadd <4 x double> %strided.vec355, %1003 %1007 = fadd <4 x double> %strided.vec356, %1005 %1008 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index350 %interleaved.vec359 = shufflevector <4 x double> %1006, <4 x double> %1007, <8 x i32> store <8 x double> %interleaved.vec359, ptr %1008, align 8, !noalias !4955 %1009 = fsub <4 x double> %strided.vec355, %1003 %1010 = fsub <4 x double> %strided.vec356, %1005 %1011 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index350 %interleaved.vec360 = shufflevector <4 x double> %1009, <4 x double> %1010, <8 x i32> store <8 x double> %interleaved.vec360, ptr %1011, align 8, !noalias !4955 %index.next361 = add nuw i64 %index350, 4 %1012 = icmp eq i64 %index.next361, 124 br i1 %1012, label %bb19.i.i, label %vector.body349, !llvm.loop !4968 bb19.i.i: ; preds = %vector.body349 %data.i.i.i.i.i.i.i.i1356 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i1366 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %data.i5.i.i.i.i.i.i.i1370 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %1013 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i = load double, ptr %1013, align 8, !noalias !4955, !noundef !3 %1014 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i = load double, ptr %1014, align 8, !noalias !4955, !noundef !3 %1015 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249 %_6.i.i.i = fneg double %w1.1.i.i %1016 = load <2 x double>, ptr %data.i.i.i.i.i.i1366, align 8, !noalias !4955 %1017 = load <2 x double>, ptr %1015, align 8, !noalias !4955 %1018 = insertelement <2 x double> poison, double %w1.1.i.i, i64 0 %1019 = insertelement <2 x double> %1018, double %_6.i.i.i, i64 1 %1020 = fmul <2 x double> %1017, %1019 %1021 = shufflevector <2 x double> %1020, <2 x double> poison, <2 x i32> %1022 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %1023 = shufflevector <2 x double> %1022, <2 x double> poison, <2 x i32> zeroinitializer %1024 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1023, <2 x double> %1017, <2 x double> %1021) %1025 = fadd <2 x double> %1016, %1024 store <2 x double> %1025, ptr %data.i.i.i.i.i.i.i.i1356, align 8, !noalias !4955 %1026 = fsub <2 x double> %1016, %1024 store <2 x double> %1026, ptr %data.i5.i.i.i.i.i.i.i1370, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i1356.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i1366.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %data.i5.i.i.i.i.i.i.i1370.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %1027 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1 %w1.0.i.i.1 = load double, ptr %1027, align 8, !noalias !4955, !noundef !3 %1028 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %1028, align 8, !noalias !4955, !noundef !3 %1029 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %1030 = load <2 x double>, ptr %data.i.i.i.i.i.i1366.1, align 8, !noalias !4955 %1031 = load <2 x double>, ptr %1029, align 8, !noalias !4955 %1032 = insertelement <2 x double> poison, double %w1.1.i.i.1, i64 0 %1033 = insertelement <2 x double> %1032, double %_6.i.i.i.1, i64 1 %1034 = fmul <2 x double> %1031, %1033 %1035 = shufflevector <2 x double> %1034, <2 x double> poison, <2 x i32> %1036 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %1037 = shufflevector <2 x double> %1036, <2 x double> poison, <2 x i32> zeroinitializer %1038 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1037, <2 x double> %1031, <2 x double> %1035) %1039 = fadd <2 x double> %1030, %1038 store <2 x double> %1039, ptr %data.i.i.i.i.i.i.i.i1356.1, align 8, !noalias !4955 %1040 = fsub <2 x double> %1030, %1038 store <2 x double> %1040, ptr %data.i5.i.i.i.i.i.i.i1370.1, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i1356.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i1366.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %data.i5.i.i.i.i.i.i.i1370.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %1041 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.2 = load double, ptr %1041, align 8, !noalias !4955, !noundef !3 %1042 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %1042, align 8, !noalias !4955, !noundef !3 %1043 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %1044 = load <2 x double>, ptr %data.i.i.i.i.i.i1366.2, align 8, !noalias !4955 %1045 = load <2 x double>, ptr %1043, align 8, !noalias !4955 %1046 = insertelement <2 x double> poison, double %w1.1.i.i.2, i64 0 %1047 = insertelement <2 x double> %1046, double %_6.i.i.i.2, i64 1 %1048 = fmul <2 x double> %1045, %1047 %1049 = shufflevector <2 x double> %1048, <2 x double> poison, <2 x i32> %1050 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %1051 = shufflevector <2 x double> %1050, <2 x double> poison, <2 x i32> zeroinitializer %1052 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1051, <2 x double> %1045, <2 x double> %1049) %1053 = fadd <2 x double> %1044, %1052 store <2 x double> %1053, ptr %data.i.i.i.i.i.i.i.i1356.2, align 8, !noalias !4955 %1054 = fsub <2 x double> %1044, %1052 store <2 x double> %1054, ptr %data.i5.i.i.i.i.i.i.i1370.2, align 8, !noalias !4955 %data.i.i.i.i.i.i.i.i1356.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i1366.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %data.i5.i.i.i.i.i.i.i1370.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %1055 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1 %w1.0.i.i.3 = load double, ptr %1055, align 8, !noalias !4955, !noundef !3 %1056 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %1056, align 8, !noalias !4955, !noundef !3 %1057 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %1058 = load <2 x double>, ptr %data.i.i.i.i.i.i1366.3, align 8, !noalias !4955 %1059 = load <2 x double>, ptr %1057, align 8, !noalias !4955 %1060 = insertelement <2 x double> poison, double %w1.1.i.i.3, i64 0 %1061 = insertelement <2 x double> %1060, double %_6.i.i.i.3, i64 1 %1062 = fmul <2 x double> %1059, %1061 %1063 = shufflevector <2 x double> %1062, <2 x double> poison, <2 x i32> %1064 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %1065 = shufflevector <2 x double> %1064, <2 x double> poison, <2 x i32> zeroinitializer %1066 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %1065, <2 x double> %1059, <2 x double> %1063) %1067 = fadd <2 x double> %1058, %1066 store <2 x double> %1067, ptr %data.i.i.i.i.i.i.i.i1356.3, align 8, !noalias !4955 %1068 = fsub <2 x double> %1058, %1066 store <2 x double> %1068, ptr %data.i5.i.i.i.i.i.i.i1370.3, align 8, !noalias !4955 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4955 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb8b4b54fe33e62c6E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4969 store i64 256, ptr %n.i, align 8, !noalias !4969 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4969 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4969 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4969 store ptr null, ptr %_16.i, align 8, !noalias !4969 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4969 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4969 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4969 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4969 store ptr null, ptr %_24.i, align 8, !noalias !4969 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4969 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4969 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4969 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4969 store ptr null, ptr %_32.i, align 8, !noalias !4969 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4969 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4969 store i64 %w.1, ptr %_34.i, align 8, !noalias !4969 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4969 store ptr null, ptr %_40.i, align 8, !noalias !4969 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4969 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !4969 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !4969 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !4969 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !4969 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !4969 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !4969 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !4969 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !4969 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !4969 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !4969 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fsub <4 x double> %20, %25 %29 = fadd <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fadd <4 x double> %20, %25 %41 = fsub <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !4969 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 60 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !4972 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !4969, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !4969, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !4969, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !4969, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !4969, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !4969, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 242 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 241 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 243 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4969 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4969 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !4969 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4969 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !4969 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fsub <2 x double> %69, %71 %73 = fadd <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !4969 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !4969 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !4969 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 189 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !4969, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !4969, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !4969, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !4969, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !4969, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !4969, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 246 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 245 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 247 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4969 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4969 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !4969 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4969 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4969 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fsub <2 x double> %114, %116 %118 = fadd <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !4969 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !4969 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !4969 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 190 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !4969, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !4969, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !4969, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !4969, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !4969, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !4969, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4969 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4969 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !4969 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4969 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4969 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fsub <2 x double> %159, %161 %163 = fadd <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !4969 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !4969 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !4969 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 191 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !4969, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !4969, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !4969, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !4969, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !4969, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !4969, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4969 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4969 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !4969 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4969 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4969 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fsub <2 x double> %204, %206 %208 = fadd <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !4969 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !4969 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !4969 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !4973 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !4973 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !4973 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !4973 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !4973 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !4973 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !4973 %295 = fsub <4 x double> %277, %282 %296 = fadd <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !4973 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !4973 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !4973 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !4973 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !4973 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !4973 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !4973 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !4973 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !4973 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !4973 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !4973 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !4973 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !4973 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !4973 %327 = fadd <4 x double> %277, %282 %328 = fsub <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !4973 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !4973 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !4973 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !4973 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !4973 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !4973 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !4973 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !4973 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !4973 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !4973 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !4973 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !4973 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !4973 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !4973 %387 = fsub <4 x double> %369, %374 %388 = fadd <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !4973 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !4973 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !4973 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !4973 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !4973 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !4973 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !4973 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !4973 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !4973 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !4973 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !4973 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !4973 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !4973 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !4973 %419 = fadd <4 x double> %369, %374 %420 = fsub <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !4973 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !4973 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !4973 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !4973 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !4973 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !4973 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !4973 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !4973 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !4973 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !4973 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !4973 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !4973 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !4973 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !4973 %479 = fsub <4 x double> %461, %466 %480 = fadd <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !4973 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !4973 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !4973 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !4973 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !4973 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !4973 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !4973 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !4973 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !4973 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !4973 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !4973 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !4973 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !4973 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !4973 %511 = fadd <4 x double> %461, %466 %512 = fsub <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !4973 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !4973 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !4973 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !4973 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !4973 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !4973 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !4973 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !4973 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !4973 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !4973 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !4973 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !4973 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !4973 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !4973 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !4973 %571 = fsub <4 x double> %553, %558 %572 = fadd <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !4973 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !4973 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !4973 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !4973 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !4973 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !4973 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !4973 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !4973 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !4973 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !4973 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !4973 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !4973 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !4973 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !4973 %603 = fadd <4 x double> %553, %558 %604 = fsub <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !4973 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !4973 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !4973 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !4973 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !4973 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !4973 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !4973 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 16 br i1 %619, label %bb24.i.i.i72.i, label %vector.body20, !llvm.loop !4976 vector.body106: ; preds = %bb24.i.i.i72.i, %vector.body106 %index107 = phi i64 [ %index.next124, %vector.body106 ], [ 0, %bb24.i.i.i72.i ] %620 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index107 %621 = getelementptr inbounds %"num_complex::Complex", ptr %234, i64 %index107 %622 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index107 %623 = getelementptr inbounds %"num_complex::Complex", ptr %235, i64 %index107 %wide.vec108 = load <8 x double>, ptr %620, align 8, !noalias !4969 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %621, align 8, !noalias !4969 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %622, align 8, !noalias !4969 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %623, align 8, !noalias !4969 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %624 = fadd <4 x double> %strided.vec109, %strided.vec115 %625 = fadd <4 x double> %strided.vec110, %strided.vec116 %626 = fsub <4 x double> %strided.vec109, %strided.vec115 %627 = fsub <4 x double> %strided.vec110, %strided.vec116 %628 = fadd <4 x double> %strided.vec112, %strided.vec118 %629 = fadd <4 x double> %strided.vec113, %strided.vec119 %630 = fsub <4 x double> %strided.vec112, %strided.vec118 %631 = fsub <4 x double> %strided.vec113, %strided.vec119 %632 = fadd <4 x double> %624, %628 %633 = fadd <4 x double> %625, %629 %634 = fsub <4 x double> %626, %631 %635 = fadd <4 x double> %627, %630 %636 = fsub <4 x double> %624, %628 %637 = fsub <4 x double> %625, %629 %638 = fadd <4 x double> %626, %631 %639 = fsub <4 x double> %627, %630 %640 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index107 %interleaved.vec120 = shufflevector <4 x double> %632, <4 x double> %633, <8 x i32> store <8 x double> %interleaved.vec120, ptr %640, align 8, !noalias !4969 %641 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index107 %interleaved.vec121 = shufflevector <4 x double> %634, <4 x double> %635, <8 x i32> store <8 x double> %interleaved.vec121, ptr %641, align 8, !noalias !4969 %642 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index107 %interleaved.vec122 = shufflevector <4 x double> %636, <4 x double> %637, <8 x i32> store <8 x double> %interleaved.vec122, ptr %642, align 8, !noalias !4969 %643 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index107 %interleaved.vec123 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec123, ptr %643, align 8, !noalias !4969 %index.next124 = add nuw i64 %index107, 4 %644 = icmp eq i64 %index.next124, 64 br i1 %644, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit", label %vector.body106, !llvm.loop !4977 bb24.i.i.i72.i: ; preds = %vector.body20, %bb24.i.i.i72.i %iter.i.i.i25.i.sroa.60.0111 = phi i64 [ %790, %bb24.i.i.i72.i ], [ 0, %vector.body20 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i687 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0111, 4 %645 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 3, i32 1 %w3.1.i.i.i88.i = load double, ptr %645, align 8, !noalias !4969, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i88.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %646 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 3 %w3.0.i.i.i87.i = load double, ptr %646, align 8, !noalias !4969, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i87.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i160.i = fneg double %w3.1.i.i.i88.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i160.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %647 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 2, i32 1 %w2.1.i.i.i86.i = load double, ptr %647, align 8, !noalias !4969, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i86.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %648 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 2 %w2.0.i.i.i85.i = load double, ptr %648, align 8, !noalias !4969, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i85.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i155.i = fneg double %w2.1.i.i.i86.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i155.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %649 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 1, i32 1 %w1.1.i.i.i84.i = load double, ptr %649, align 8, !noalias !4969, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i84.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %650 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 1 %w1.0.i.i.i83.i = load double, ptr %650, align 8, !noalias !4969, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i83.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i150.i = fneg double %w1.1.i.i.i84.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i150.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i706 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0111, 6 %data.i.i.i.i.i.i707 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i706 %651 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 48 %652 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 16 %653 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 32 %data.i.i.i.i.i.i.i.i703 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %data.i.i.i.i.i.i.i.i.i.i698 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %data.i5.i.i.i.i.i.i.i.i.i.i.i693 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %data.i.i.i.i.i.i.i.i.i.i.i.i688 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %wide.vec69 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, align 8, !noalias !4969 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, align 8, !noalias !4969 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i698, align 8, !noalias !4969 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i703, align 8, !noalias !4969 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %654 = fadd <4 x double> %strided.vec70, %strided.vec76 %655 = fadd <4 x double> %strided.vec71, %strided.vec77 %656 = fsub <4 x double> %strided.vec70, %strided.vec76 %657 = fsub <4 x double> %strided.vec71, %strided.vec77 %658 = fadd <4 x double> %strided.vec73, %strided.vec79 %659 = fadd <4 x double> %strided.vec74, %strided.vec80 %660 = fsub <4 x double> %strided.vec73, %strided.vec79 %661 = fsub <4 x double> %strided.vec74, %strided.vec80 %662 = fadd <4 x double> %654, %658 %663 = fadd <4 x double> %655, %659 %interleaved.vec81 = shufflevector <4 x double> %662, <4 x double> %663, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i707, align 8, !noalias !4969 %664 = fsub <4 x double> %656, %661 %665 = fadd <4 x double> %657, %660 %666 = fmul <4 x double> %665, %broadcast.splat %667 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %664, <4 x double> %666) %668 = fmul <4 x double> %broadcast.splat85, %664 %669 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %665, <4 x double> %668) %interleaved.vec86 = shufflevector <4 x double> %667, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec86, ptr %652, align 8, !noalias !4969 %670 = fsub <4 x double> %654, %658 %671 = fsub <4 x double> %655, %659 %672 = fmul <4 x double> %671, %broadcast.splat88 %673 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %670, <4 x double> %672) %674 = fmul <4 x double> %broadcast.splat92, %670 %675 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %671, <4 x double> %674) %interleaved.vec93 = shufflevector <4 x double> %673, <4 x double> %675, <8 x i32> store <8 x double> %interleaved.vec93, ptr %653, align 8, !noalias !4969 %676 = fadd <4 x double> %656, %661 %677 = fsub <4 x double> %657, %660 %678 = fmul <4 x double> %677, %broadcast.splat95 %679 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %676, <4 x double> %678) %680 = fmul <4 x double> %broadcast.splat99, %676 %681 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %677, <4 x double> %680) %interleaved.vec100 = shufflevector <4 x double> %679, <4 x double> %681, <8 x i32> store <8 x double> %interleaved.vec100, ptr %651, align 8, !noalias !4969 %682 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, i64 4 %683 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, i64 4 %684 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i698, i64 4 %685 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i703, i64 4 %wide.vec69.1 = load <8 x double>, ptr %682, align 8, !noalias !4969 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %683, align 8, !noalias !4969 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %684, align 8, !noalias !4969 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %685, align 8, !noalias !4969 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %686 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %687 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %688 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %689 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %690 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %691 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %692 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %693 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %694 = fadd <4 x double> %686, %690 %695 = fadd <4 x double> %687, %691 %696 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %694, <4 x double> %695, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %696, align 8, !noalias !4969 %697 = fsub <4 x double> %688, %693 %698 = fadd <4 x double> %689, %692 %699 = fmul <4 x double> %698, %broadcast.splat %700 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %697, <4 x double> %699) %701 = fmul <4 x double> %broadcast.splat85, %697 %702 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %698, <4 x double> %701) %703 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %700, <4 x double> %702, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %703, align 8, !noalias !4969 %704 = fsub <4 x double> %686, %690 %705 = fsub <4 x double> %687, %691 %706 = fmul <4 x double> %705, %broadcast.splat88 %707 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %704, <4 x double> %706) %708 = fmul <4 x double> %broadcast.splat92, %704 %709 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %705, <4 x double> %708) %710 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %707, <4 x double> %709, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %710, align 8, !noalias !4969 %711 = fadd <4 x double> %688, %693 %712 = fsub <4 x double> %689, %692 %713 = fmul <4 x double> %712, %broadcast.splat95 %714 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %711, <4 x double> %713) %715 = fmul <4 x double> %broadcast.splat99, %711 %716 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %712, <4 x double> %715) %717 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %714, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %717, align 8, !noalias !4969 %718 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, i64 8 %719 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, i64 8 %720 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i698, i64 8 %721 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i703, i64 8 %wide.vec69.2 = load <8 x double>, ptr %718, align 8, !noalias !4969 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %719, align 8, !noalias !4969 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %720, align 8, !noalias !4969 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %721, align 8, !noalias !4969 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %722 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %723 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %724 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %725 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %726 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %727 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %728 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %729 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %730 = fadd <4 x double> %722, %726 %731 = fadd <4 x double> %723, %727 %732 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %730, <4 x double> %731, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %732, align 8, !noalias !4969 %733 = fsub <4 x double> %724, %729 %734 = fadd <4 x double> %725, %728 %735 = fmul <4 x double> %734, %broadcast.splat %736 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %733, <4 x double> %735) %737 = fmul <4 x double> %broadcast.splat85, %733 %738 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %734, <4 x double> %737) %739 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %736, <4 x double> %738, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %739, align 8, !noalias !4969 %740 = fsub <4 x double> %722, %726 %741 = fsub <4 x double> %723, %727 %742 = fmul <4 x double> %741, %broadcast.splat88 %743 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %740, <4 x double> %742) %744 = fmul <4 x double> %broadcast.splat92, %740 %745 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %741, <4 x double> %744) %746 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %743, <4 x double> %745, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %746, align 8, !noalias !4969 %747 = fadd <4 x double> %724, %729 %748 = fsub <4 x double> %725, %728 %749 = fmul <4 x double> %748, %broadcast.splat95 %750 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %747, <4 x double> %749) %751 = fmul <4 x double> %broadcast.splat99, %747 %752 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %748, <4 x double> %751) %753 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %750, <4 x double> %752, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %753, align 8, !noalias !4969 %754 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, i64 12 %755 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, i64 12 %756 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i698, i64 12 %757 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i703, i64 12 %wide.vec69.3 = load <8 x double>, ptr %754, align 8, !noalias !4969 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %755, align 8, !noalias !4969 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %756, align 8, !noalias !4969 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %757, align 8, !noalias !4969 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %758 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %759 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %760 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %761 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %762 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %763 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %764 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %765 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %766 = fadd <4 x double> %758, %762 %767 = fadd <4 x double> %759, %763 %768 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %766, <4 x double> %767, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %768, align 8, !noalias !4969 %769 = fsub <4 x double> %760, %765 %770 = fadd <4 x double> %761, %764 %771 = fmul <4 x double> %770, %broadcast.splat %772 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %769, <4 x double> %771) %773 = fmul <4 x double> %broadcast.splat85, %769 %774 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %770, <4 x double> %773) %775 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %772, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %775, align 8, !noalias !4969 %776 = fsub <4 x double> %758, %762 %777 = fsub <4 x double> %759, %763 %778 = fmul <4 x double> %777, %broadcast.splat88 %779 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %776, <4 x double> %778) %780 = fmul <4 x double> %broadcast.splat92, %776 %781 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %777, <4 x double> %780) %782 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %779, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %782, align 8, !noalias !4969 %783 = fadd <4 x double> %760, %765 %784 = fsub <4 x double> %761, %764 %785 = fmul <4 x double> %784, %broadcast.splat95 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %783, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat99, %783 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %784, <4 x double> %787) %789 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %786, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %789, align 8, !noalias !4969 %790 = add nuw nsw i64 %iter.i.i.i25.i.sroa.60.0111, 1 %exitcond117.not = icmp eq i64 %790, 4 br i1 %exitcond117.not, label %vector.body106, label %bb24.i.i.i72.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit": ; preds = %vector.body106 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4969 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb8cbc58a50ea338eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc0ebf6f49e270a1fE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb95240af773c23fbE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !4978 store i64 256, ptr %n.i, align 8, !noalias !4978 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !4978 store i64 %buf.1, ptr %_10.i, align 8, !noalias !4978 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !4978 store ptr null, ptr %_16.i, align 8, !noalias !4978 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !4978 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !4978 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !4978 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !4978 store ptr null, ptr %_24.i, align 8, !noalias !4978 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !4978 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !4978 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !4978 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !4978 store ptr null, ptr %_32.i, align 8, !noalias !4978 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !4978 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !4978 store i64 %w.1, ptr %_34.i, align 8, !noalias !4978 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !4978 store ptr null, ptr %_40.i, align 8, !noalias !4978 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !4978 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit ], [ %index.next, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %3 = shl nuw nsw i64 %index, 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %3 %5 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index, i64 1 %wide.vec = load <16 x double>, ptr %5, align 8, !noalias !4981 %strided.vec = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %strided.vec1 = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %6 = fneg <4 x double> %strided.vec1 %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !4981 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !4981 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec3, %strided.vec6 %8 = fadd <4 x double> %strided.vec4, %strided.vec7 %9 = fsub <4 x double> %strided.vec3, %strided.vec6 %10 = fsub <4 x double> %strided.vec4, %strided.vec7 %11 = fmul <4 x double> %10, %6 %12 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %9, <4 x double> %11) %13 = fmul <4 x double> %strided.vec1, %9 %14 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %10, <4 x double> %13) %15 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> %16 = shufflevector <4 x double> %12, <4 x double> %14, <8 x i32> %interleaved.vec = shufflevector <8 x double> %15, <8 x double> %16, <16 x i32> store <16 x double> %interleaved.vec, ptr %4, align 8, !noalias !4981 %index.next = add nuw i64 %index, 4 %17 = icmp eq i64 %index.next, 124 br i1 %17, label %bb19.i.i, label %vector.body, !llvm.loop !4984 bb19.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i5.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %18 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i = load double, ptr %18, align 8, !noalias !4981, !noundef !3 %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i = load double, ptr %19, align 8, !noalias !4981, !noundef !3 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249 %_6.i.i.i = fneg double %w1.1.i.i %21 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !4981 %22 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i, align 8, !noalias !4981 %23 = fadd <2 x double> %21, %22 store <2 x double> %23, ptr %data.i.i.i.i.i.i, align 8, !noalias !4981 %24 = fsub <2 x double> %21, %22 %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %20, align 8, !noalias !4981 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %32 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1 %w1.0.i.i.1 = load double, ptr %32, align 8, !noalias !4981, !noundef !3 %33 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %33, align 8, !noalias !4981, !noundef !3 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %35 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !4981 %36 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !4981 %37 = fadd <2 x double> %35, %36 store <2 x double> %37, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !4981 %38 = fsub <2 x double> %35, %36 %39 = shufflevector <2 x double> %38, <2 x double> poison, <2 x i32> %40 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %41 = insertelement <2 x double> %40, double %w1.1.i.i.1, i64 1 %42 = fmul <2 x double> %39, %41 %43 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %44 = shufflevector <2 x double> %43, <2 x double> poison, <2 x i32> zeroinitializer %45 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %44, <2 x double> %38, <2 x double> %42) store <2 x double> %45, ptr %34, align 8, !noalias !4981 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.2 = load double, ptr %46, align 8, !noalias !4981, !noundef !3 %47 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %47, align 8, !noalias !4981, !noundef !3 %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %49 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !4981 %50 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !4981 %51 = fadd <2 x double> %49, %50 store <2 x double> %51, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !4981 %52 = fsub <2 x double> %49, %50 %53 = shufflevector <2 x double> %52, <2 x double> poison, <2 x i32> %54 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %55 = insertelement <2 x double> %54, double %w1.1.i.i.2, i64 1 %56 = fmul <2 x double> %53, %55 %57 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %58 = shufflevector <2 x double> %57, <2 x double> poison, <2 x i32> zeroinitializer %59 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %58, <2 x double> %52, <2 x double> %56) store <2 x double> %59, ptr %48, align 8, !noalias !4981 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %60 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1 %w1.0.i.i.3 = load double, ptr %60, align 8, !noalias !4981, !noundef !3 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %61, align 8, !noalias !4981, !noundef !3 %62 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %63 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !4981 %64 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !4981 %65 = fadd <2 x double> %63, %64 store <2 x double> %65, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !4981 %66 = fsub <2 x double> %63, %64 %67 = shufflevector <2 x double> %66, <2 x double> poison, <2 x i32> %68 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %69 = insertelement <2 x double> %68, double %w1.1.i.i.3, i64 1 %70 = fmul <2 x double> %67, %69 %71 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %72 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> zeroinitializer %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %72, <2 x double> %66, <2 x double> %70) store <2 x double> %73, ptr %62, align 8, !noalias !4981 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 br label %vector.body12 vector.body12: ; preds = %vector.body12, %bb19.i.i %index13 = phi i64 [ 0, %bb19.i.i ], [ %index.next26, %vector.body12 ] %vec.ind = phi <4 x i64> [ , %bb19.i.i ], [ %vec.ind.next, %vector.body12 ] %75 = shl nuw nsw <4 x i64> %vec.ind, %76 = extractelement <4 x i64> %75, i64 0 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %76 %78 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %76 %79 = shl nuw nsw i64 %index13, 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %79 %81 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !4985 %82 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !4985 %83 = fneg <4 x double> %wide.masked.gather14 %wide.vec15 = load <16 x double>, ptr %77, align 8, !noalias !4985 %strided.vec16 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec18 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %wide.vec20 = load <16 x double>, ptr %78, align 8, !noalias !4985 %strided.vec21 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %84 = fadd <4 x double> %strided.vec16, %strided.vec21 %85 = fadd <4 x double> %strided.vec17, %strided.vec22 %86 = fsub <4 x double> %strided.vec16, %strided.vec21 %87 = fsub <4 x double> %strided.vec17, %strided.vec22 %88 = fmul <4 x double> %87, %83 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %86, <4 x double> %88) %90 = fmul <4 x double> %wide.masked.gather14, %86 %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %87, <4 x double> %90) %92 = fadd <4 x double> %strided.vec18, %strided.vec23 %93 = fadd <4 x double> %strided.vec19, %strided.vec24 %94 = fsub <4 x double> %strided.vec18, %strided.vec23 %95 = fsub <4 x double> %strided.vec19, %strided.vec24 %96 = fmul <4 x double> %95, %83 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %94, <4 x double> %96) %98 = fmul <4 x double> %wide.masked.gather14, %94 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %95, <4 x double> %98) %100 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> %101 = shufflevector <4 x double> %92, <4 x double> %93, <8 x i32> %102 = shufflevector <4 x double> %89, <4 x double> %91, <8 x i32> %103 = shufflevector <4 x double> %97, <4 x double> %99, <8 x i32> %104 = shufflevector <8 x double> %100, <8 x double> %101, <16 x i32> %105 = shufflevector <8 x double> %102, <8 x double> %103, <16 x i32> %interleaved.vec25 = shufflevector <16 x double> %104, <16 x double> %105, <32 x i32> store <32 x double> %interleaved.vec25, ptr %80, align 8, !noalias !4985 %index.next26 = add nuw i64 %index13, 4 %vec.ind.next = add <4 x i64> %vec.ind, %106 = icmp eq i64 %index.next26, 60 br i1 %106, label %bb19.i.i.i, label %vector.body12, !llvm.loop !4988 bb19.i.i.i: ; preds = %vector.body12 %data.i.i.i.i.i.i.i.i268 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %data.i5.i.i.i.i.i.i.i273 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %data.i.i.i.i.i.i277 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %107 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 120, i64 1 %w1.0.i.i.i = load double, ptr %107, align 8, !noalias !4985, !noundef !3 %108 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 120, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %108, align 8, !noalias !4985, !noundef !3 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 242 %_6.i.i.i.i = fneg double %w1.1.i.i.i %110 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i268, align 8, !noalias !4985 %111 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i273, align 8, !noalias !4985 %112 = fadd <4 x double> %110, %111 store <4 x double> %112, ptr %data.i.i.i.i.i.i277, align 8, !noalias !4985 %113 = fsub <4 x double> %110, %111 %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %116 = insertelement <4 x double> %115, double %w1.1.i.i.i, i64 1 %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %114, %117 %119 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> zeroinitializer %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %120, <4 x double> %113, <4 x double> %118) store <4 x double> %121, ptr %109, align 8, !noalias !4985 %data.i.i.i.i.i.i.i.i268.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %data.i5.i.i.i.i.i.i.i273.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %data.i.i.i.i.i.i277.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %122 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 122, i64 1 %w1.0.i.i.i.1 = load double, ptr %122, align 8, !noalias !4985, !noundef !3 %123 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 122, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %123, align 8, !noalias !4985, !noundef !3 %124 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 246 %_6.i.i.i.i.1 = fneg double %w1.1.i.i.i.1 %125 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i268.1, align 8, !noalias !4985 %126 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i273.1, align 8, !noalias !4985 %127 = fadd <4 x double> %125, %126 store <4 x double> %127, ptr %data.i.i.i.i.i.i277.1, align 8, !noalias !4985 %128 = fsub <4 x double> %125, %126 %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = insertelement <4 x double> poison, double %_6.i.i.i.i.1, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i.i.1, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %129, %132 %134 = insertelement <4 x double> poison, double %w1.0.i.i.i.1, i64 0 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %128, <4 x double> %133) store <4 x double> %136, ptr %124, align 8, !noalias !4985 %data.i.i.i.i.i.i.i.i268.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %data.i5.i.i.i.i.i.i.i273.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %data.i.i.i.i.i.i277.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %137 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i.i.2 = load double, ptr %137, align 8, !noalias !4985, !noundef !3 %138 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %138, align 8, !noalias !4985, !noundef !3 %139 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 250 %_6.i.i.i.i.2 = fneg double %w1.1.i.i.i.2 %140 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i268.2, align 8, !noalias !4985 %141 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i273.2, align 8, !noalias !4985 %142 = fadd <4 x double> %140, %141 store <4 x double> %142, ptr %data.i.i.i.i.i.i277.2, align 8, !noalias !4985 %143 = fsub <4 x double> %140, %141 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = insertelement <4 x double> poison, double %_6.i.i.i.i.2, i64 0 %146 = insertelement <4 x double> %145, double %w1.1.i.i.i.2, i64 1 %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = fmul <4 x double> %144, %147 %149 = insertelement <4 x double> poison, double %w1.0.i.i.i.2, i64 0 %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %151 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %150, <4 x double> %143, <4 x double> %148) store <4 x double> %151, ptr %139, align 8, !noalias !4985 %data.i.i.i.i.i.i.i.i268.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %data.i5.i.i.i.i.i.i.i273.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %data.i.i.i.i.i.i277.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %152 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.i.3 = load double, ptr %152, align 8, !noalias !4985, !noundef !3 %153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %153, align 8, !noalias !4985, !noundef !3 %154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %_6.i.i.i.i.3 = fneg double %w1.1.i.i.i.3 %155 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i268.3, align 8, !noalias !4985 %156 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i273.3, align 8, !noalias !4985 %157 = fadd <4 x double> %155, %156 store <4 x double> %157, ptr %data.i.i.i.i.i.i277.3, align 8, !noalias !4985 %158 = fsub <4 x double> %155, %156 %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = insertelement <4 x double> poison, double %_6.i.i.i.i.3, i64 0 %161 = insertelement <4 x double> %160, double %w1.1.i.i.i.3, i64 1 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %159, %162 %164 = insertelement <4 x double> poison, double %w1.0.i.i.i.3, i64 0 %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> zeroinitializer %166 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %165, <4 x double> %158, <4 x double> %163) store <4 x double> %166, ptr %154, align 8, !noalias !4985 br label %bb19.i.i39.i bb19.i.i39.i: ; preds = %bb19.i.i.i, %bb19.i.i39.i %iter.i.i9.i.sroa.38.0147 = phi i64 [ %189, %bb19.i.i39.i ], [ 0, %bb19.i.i.i ] %start1.i.i.i.i.i.i.i.i440 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0147, 2 %data.i.i.i.i.i.i.i.i441 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i440 %data.i5.i.i.i.i.i.i.i446 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i440 %start1.i.i.i.i.i.i449 = shl nuw nsw i64 %iter.i.i9.i.sroa.38.0147, 3 %data.i.i.i.i.i.i450 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i449 %167 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i440, i64 1 %w1.0.i.i41.i = load double, ptr %167, align 8, !noalias !4989, !noundef !3 %168 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i440, i64 1, i32 1 %w1.1.i.i42.i = load double, ptr %168, align 8, !noalias !4989, !noundef !3 %169 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i450, i64 4 %_6.i.i.i62.i = fneg double %w1.1.i.i42.i %170 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i441, align 8, !noalias !4989 %171 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i446, align 8, !noalias !4989 %172 = fadd <4 x double> %170, %171 store <4 x double> %172, ptr %data.i.i.i.i.i.i450, align 8, !noalias !4989 %173 = fsub <4 x double> %170, %171 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = insertelement <4 x double> poison, double %_6.i.i.i62.i, i64 0 %176 = insertelement <4 x double> %175, double %w1.1.i.i42.i, i64 1 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %174, %177 %179 = insertelement <4 x double> poison, double %w1.0.i.i41.i, i64 0 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> zeroinitializer %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %173, <4 x double> %178) store <4 x double> %181, ptr %169, align 8, !noalias !4989 %_3.i.i.i.i.i.i.i.i499.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i441, i64 2 %_3.i2.i.i.i.i.i.i.i502.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i446, i64 2 %_3.i.i.i.i.i.i505.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i450, i64 2 %_3.i.i.i.i508.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i450, i64 6 %182 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i499.2, align 8, !noalias !4989 %183 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i502.2, align 8, !noalias !4989 %184 = fadd <4 x double> %182, %183 store <4 x double> %184, ptr %_3.i.i.i.i.i.i505.2, align 8, !noalias !4989 %185 = fsub <4 x double> %182, %183 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %177 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %185, <4 x double> %187) store <4 x double> %188, ptr %_3.i.i.i.i508.2, align 8, !noalias !4989 %189 = add nuw nsw i64 %iter.i.i9.i.sroa.38.0147, 1 %exitcond160.not = icmp eq i64 %189, 32 br i1 %exitcond160.not, label %bb19.i.i106.i, label %bb19.i.i39.i bb19.i.i.i.i.preheader: ; preds = %bb19.i.i106.i %190 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i.i = load double, ptr %190, align 8, !noalias !4978, !noundef !3 %191 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %191, align 8, !noalias !4978, !noundef !3 %_6.i.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert40 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat41 = shufflevector <4 x double> %broadcast.splatinsert40, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %192 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec33 = load <8 x double>, ptr %buf.0, align 8, !noalias !4992 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %wide.vec36 = load <8 x double>, ptr %0, align 8, !noalias !4992 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %193 = fadd <4 x double> %strided.vec34, %strided.vec37 %194 = fadd <4 x double> %strided.vec35, %strided.vec38 %interleaved.vec39 = shufflevector <4 x double> %193, <4 x double> %194, <8 x i32> store <8 x double> %interleaved.vec39, ptr %scratch.0, align 8, !noalias !4992 %195 = fsub <4 x double> %strided.vec34, %strided.vec37 %196 = fsub <4 x double> %strided.vec35, %strided.vec38 %197 = fmul <4 x double> %196, %broadcast.splat %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %195, <4 x double> %197) %199 = fmul <4 x double> %broadcast.splat43, %195 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %196, <4 x double> %199) %interleaved.vec44 = shufflevector <4 x double> %198, <4 x double> %200, <8 x i32> store <8 x double> %interleaved.vec44, ptr %192, align 8, !noalias !4992 %201 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %202 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 132 %wide.vec33.1 = load <8 x double>, ptr %201, align 8, !noalias !4992 %strided.vec34.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %wide.vec36.1 = load <8 x double>, ptr %202, align 8, !noalias !4992 %strided.vec37.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %strided.vec38.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %203 = fadd <4 x double> %strided.vec34.1, %strided.vec37.1 %204 = fadd <4 x double> %strided.vec35.1, %strided.vec38.1 %205 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec39.1 = shufflevector <4 x double> %203, <4 x double> %204, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %205, align 8, !noalias !4992 %206 = fsub <4 x double> %strided.vec34.1, %strided.vec37.1 %207 = fsub <4 x double> %strided.vec35.1, %strided.vec38.1 %208 = fmul <4 x double> %207, %broadcast.splat %209 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %206, <4 x double> %208) %210 = fmul <4 x double> %broadcast.splat43, %206 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %207, <4 x double> %210) %212 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec44.1 = shufflevector <4 x double> %209, <4 x double> %211, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %212, align 8, !noalias !4992 %213 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %214 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 136 %wide.vec33.2 = load <8 x double>, ptr %213, align 8, !noalias !4992 %strided.vec34.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %wide.vec36.2 = load <8 x double>, ptr %214, align 8, !noalias !4992 %strided.vec37.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %strided.vec38.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %215 = fadd <4 x double> %strided.vec34.2, %strided.vec37.2 %216 = fadd <4 x double> %strided.vec35.2, %strided.vec38.2 %217 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec39.2 = shufflevector <4 x double> %215, <4 x double> %216, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %217, align 8, !noalias !4992 %218 = fsub <4 x double> %strided.vec34.2, %strided.vec37.2 %219 = fsub <4 x double> %strided.vec35.2, %strided.vec38.2 %220 = fmul <4 x double> %219, %broadcast.splat %221 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %218, <4 x double> %220) %222 = fmul <4 x double> %broadcast.splat43, %218 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %219, <4 x double> %222) %224 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec44.2 = shufflevector <4 x double> %221, <4 x double> %223, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %224, align 8, !noalias !4992 %225 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %226 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 140 %wide.vec33.3 = load <8 x double>, ptr %225, align 8, !noalias !4992 %strided.vec34.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %strided.vec35.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %wide.vec36.3 = load <8 x double>, ptr %226, align 8, !noalias !4992 %strided.vec37.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %strided.vec38.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %227 = fadd <4 x double> %strided.vec34.3, %strided.vec37.3 %228 = fadd <4 x double> %strided.vec35.3, %strided.vec38.3 %229 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec39.3 = shufflevector <4 x double> %227, <4 x double> %228, <8 x i32> store <8 x double> %interleaved.vec39.3, ptr %229, align 8, !noalias !4992 %230 = fsub <4 x double> %strided.vec34.3, %strided.vec37.3 %231 = fsub <4 x double> %strided.vec35.3, %strided.vec38.3 %232 = fmul <4 x double> %231, %broadcast.splat %233 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %230, <4 x double> %232) %234 = fmul <4 x double> %broadcast.splat43, %230 %235 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %231, <4 x double> %234) %236 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec44.3 = shufflevector <4 x double> %233, <4 x double> %235, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %236, align 8, !noalias !4992 %data.i.i.i.i.i.i796.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %237 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i.i.i.1 = load double, ptr %237, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.1, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %238 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i.i.i.1 = load double, ptr %238, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.1 = fneg double %w1.1.i.i.i.i.1 %broadcast.splatinsert59 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i5.i.i.i.i.i.i.i792.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %data.i.i.i.i.i.i.i.i787.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec52 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.1, align 8, !noalias !4992 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.1, align 8, !noalias !4992 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %240 = fadd <4 x double> %strided.vec53, %strided.vec56 %241 = fadd <4 x double> %strided.vec54, %strided.vec57 %interleaved.vec58 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec58, ptr %data.i.i.i.i.i.i796.1, align 8, !noalias !4992 %242 = fsub <4 x double> %strided.vec53, %strided.vec56 %243 = fsub <4 x double> %strided.vec54, %strided.vec57 %244 = fmul <4 x double> %243, %broadcast.splat60 %245 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %242, <4 x double> %244) %246 = fmul <4 x double> %broadcast.splat64, %242 %247 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %243, <4 x double> %246) %interleaved.vec65 = shufflevector <4 x double> %245, <4 x double> %247, <8 x i32> store <8 x double> %interleaved.vec65, ptr %239, align 8, !noalias !4992 %248 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 148 %wide.vec52.1 = load <8 x double>, ptr %248, align 8, !noalias !4992 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %249, align 8, !noalias !4992 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %250 = fadd <4 x double> %strided.vec53.1, %strided.vec56.1 %251 = fadd <4 x double> %strided.vec54.1, %strided.vec57.1 %252 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec58.1 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> store <8 x double> %interleaved.vec58.1, ptr %252, align 8, !noalias !4992 %253 = fsub <4 x double> %strided.vec53.1, %strided.vec56.1 %254 = fsub <4 x double> %strided.vec54.1, %strided.vec57.1 %255 = fmul <4 x double> %254, %broadcast.splat60 %256 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %253, <4 x double> %255) %257 = fmul <4 x double> %broadcast.splat64, %253 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %254, <4 x double> %257) %259 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec65.1 = shufflevector <4 x double> %256, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %259, align 8, !noalias !4992 %260 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %261 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 152 %wide.vec52.2 = load <8 x double>, ptr %260, align 8, !noalias !4992 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %261, align 8, !noalias !4992 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %262 = fadd <4 x double> %strided.vec53.2, %strided.vec56.2 %263 = fadd <4 x double> %strided.vec54.2, %strided.vec57.2 %264 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec58.2 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> store <8 x double> %interleaved.vec58.2, ptr %264, align 8, !noalias !4992 %265 = fsub <4 x double> %strided.vec53.2, %strided.vec56.2 %266 = fsub <4 x double> %strided.vec54.2, %strided.vec57.2 %267 = fmul <4 x double> %266, %broadcast.splat60 %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %265, <4 x double> %267) %269 = fmul <4 x double> %broadcast.splat64, %265 %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %266, <4 x double> %269) %271 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec65.2 = shufflevector <4 x double> %268, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %271, align 8, !noalias !4992 %272 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %273 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 156 %wide.vec52.3 = load <8 x double>, ptr %272, align 8, !noalias !4992 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %273, align 8, !noalias !4992 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %274 = fadd <4 x double> %strided.vec53.3, %strided.vec56.3 %275 = fadd <4 x double> %strided.vec54.3, %strided.vec57.3 %276 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec58.3 = shufflevector <4 x double> %274, <4 x double> %275, <8 x i32> store <8 x double> %interleaved.vec58.3, ptr %276, align 8, !noalias !4992 %277 = fsub <4 x double> %strided.vec53.3, %strided.vec56.3 %278 = fsub <4 x double> %strided.vec54.3, %strided.vec57.3 %279 = fmul <4 x double> %278, %broadcast.splat60 %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %277, <4 x double> %279) %281 = fmul <4 x double> %broadcast.splat64, %277 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %278, <4 x double> %281) %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec65.3 = shufflevector <4 x double> %280, <4 x double> %282, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %283, align 8, !noalias !4992 %data.i.i.i.i.i.i.i.i787.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i792.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %data.i.i.i.i.i.i796.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %284 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.i.i.i.i.2 = load double, ptr %284, align 8, !noalias !4981, !noundef !3 %285 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.i.i.i.i.2 = load double, ptr %285, align 8, !noalias !4981, !noundef !3 %_6.i.i.i.i.i.2 = fneg double %w1.1.i.i.i.i.2 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.2, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.2, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.2, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %286 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %wide.vec73 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.2, align 8, !noalias !4992 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.2, align 8, !noalias !4992 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %287 = fadd <4 x double> %strided.vec74, %strided.vec77 %288 = fadd <4 x double> %strided.vec75, %strided.vec78 %interleaved.vec79 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec79, ptr %data.i.i.i.i.i.i796.2, align 8, !noalias !4992 %289 = fsub <4 x double> %strided.vec74, %strided.vec77 %290 = fsub <4 x double> %strided.vec75, %strided.vec78 %291 = fmul <4 x double> %290, %broadcast.splat81 %292 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %289, <4 x double> %291) %293 = fmul <4 x double> %broadcast.splat85, %289 %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %290, <4 x double> %293) %interleaved.vec86 = shufflevector <4 x double> %292, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec86, ptr %286, align 8, !noalias !4992 %295 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %296 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 164 %wide.vec73.1 = load <8 x double>, ptr %295, align 8, !noalias !4992 %strided.vec74.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %strided.vec75.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %wide.vec76.1 = load <8 x double>, ptr %296, align 8, !noalias !4992 %strided.vec77.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %strided.vec78.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %297 = fadd <4 x double> %strided.vec74.1, %strided.vec77.1 %298 = fadd <4 x double> %strided.vec75.1, %strided.vec78.1 %299 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec79.1 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec79.1, ptr %299, align 8, !noalias !4992 %300 = fsub <4 x double> %strided.vec74.1, %strided.vec77.1 %301 = fsub <4 x double> %strided.vec75.1, %strided.vec78.1 %302 = fmul <4 x double> %301, %broadcast.splat81 %303 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %300, <4 x double> %302) %304 = fmul <4 x double> %broadcast.splat85, %300 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %301, <4 x double> %304) %306 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec86.1 = shufflevector <4 x double> %303, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %306, align 8, !noalias !4992 %307 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %308 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 168 %wide.vec73.2 = load <8 x double>, ptr %307, align 8, !noalias !4992 %strided.vec74.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %strided.vec75.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %wide.vec76.2 = load <8 x double>, ptr %308, align 8, !noalias !4992 %strided.vec77.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %strided.vec78.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %309 = fadd <4 x double> %strided.vec74.2, %strided.vec77.2 %310 = fadd <4 x double> %strided.vec75.2, %strided.vec78.2 %311 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec79.2 = shufflevector <4 x double> %309, <4 x double> %310, <8 x i32> store <8 x double> %interleaved.vec79.2, ptr %311, align 8, !noalias !4992 %312 = fsub <4 x double> %strided.vec74.2, %strided.vec77.2 %313 = fsub <4 x double> %strided.vec75.2, %strided.vec78.2 %314 = fmul <4 x double> %313, %broadcast.splat81 %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %312, <4 x double> %314) %316 = fmul <4 x double> %broadcast.splat85, %312 %317 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %313, <4 x double> %316) %318 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec86.2 = shufflevector <4 x double> %315, <4 x double> %317, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %318, align 8, !noalias !4992 %319 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %320 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 172 %wide.vec73.3 = load <8 x double>, ptr %319, align 8, !noalias !4992 %strided.vec74.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %strided.vec75.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %wide.vec76.3 = load <8 x double>, ptr %320, align 8, !noalias !4992 %strided.vec77.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %strided.vec78.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %321 = fadd <4 x double> %strided.vec74.3, %strided.vec77.3 %322 = fadd <4 x double> %strided.vec75.3, %strided.vec78.3 %323 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec79.3 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec79.3, ptr %323, align 8, !noalias !4992 %324 = fsub <4 x double> %strided.vec74.3, %strided.vec77.3 %325 = fsub <4 x double> %strided.vec75.3, %strided.vec78.3 %326 = fmul <4 x double> %325, %broadcast.splat81 %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %324, <4 x double> %326) %328 = fmul <4 x double> %broadcast.splat85, %324 %329 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %325, <4 x double> %328) %330 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec86.3 = shufflevector <4 x double> %327, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %330, align 8, !noalias !4992 %data.i.i.i.i.i.i796.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %331 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.i.i.i.i.3 = load double, ptr %331, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert105 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.3, i64 0 %broadcast.splat106 = shufflevector <4 x double> %broadcast.splatinsert105, <4 x double> poison, <4 x i32> zeroinitializer %332 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.i.i.i.i.3 = load double, ptr %332, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.3, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.3 = fneg double %w1.1.i.i.i.i.3 %broadcast.splatinsert101 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.3, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %333 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %data.i5.i.i.i.i.i.i.i792.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %data.i.i.i.i.i.i.i.i787.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec94 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.3, align 8, !noalias !4992 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.3, align 8, !noalias !4992 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %334 = fadd <4 x double> %strided.vec95, %strided.vec98 %335 = fadd <4 x double> %strided.vec96, %strided.vec99 %interleaved.vec100 = shufflevector <4 x double> %334, <4 x double> %335, <8 x i32> store <8 x double> %interleaved.vec100, ptr %data.i.i.i.i.i.i796.3, align 8, !noalias !4992 %336 = fsub <4 x double> %strided.vec95, %strided.vec98 %337 = fsub <4 x double> %strided.vec96, %strided.vec99 %338 = fmul <4 x double> %337, %broadcast.splat102 %339 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %336, <4 x double> %338) %340 = fmul <4 x double> %broadcast.splat106, %336 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %337, <4 x double> %340) %interleaved.vec107 = shufflevector <4 x double> %339, <4 x double> %341, <8 x i32> store <8 x double> %interleaved.vec107, ptr %333, align 8, !noalias !4992 %342 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 180 %wide.vec94.1 = load <8 x double>, ptr %342, align 8, !noalias !4992 %strided.vec95.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %strided.vec96.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %wide.vec97.1 = load <8 x double>, ptr %343, align 8, !noalias !4992 %strided.vec98.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %strided.vec99.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %344 = fadd <4 x double> %strided.vec95.1, %strided.vec98.1 %345 = fadd <4 x double> %strided.vec96.1, %strided.vec99.1 %346 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec100.1 = shufflevector <4 x double> %344, <4 x double> %345, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %346, align 8, !noalias !4992 %347 = fsub <4 x double> %strided.vec95.1, %strided.vec98.1 %348 = fsub <4 x double> %strided.vec96.1, %strided.vec99.1 %349 = fmul <4 x double> %348, %broadcast.splat102 %350 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %347, <4 x double> %349) %351 = fmul <4 x double> %broadcast.splat106, %347 %352 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %348, <4 x double> %351) %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec107.1 = shufflevector <4 x double> %350, <4 x double> %352, <8 x i32> store <8 x double> %interleaved.vec107.1, ptr %353, align 8, !noalias !4992 %354 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %355 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 184 %wide.vec94.2 = load <8 x double>, ptr %354, align 8, !noalias !4992 %strided.vec95.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %strided.vec96.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %wide.vec97.2 = load <8 x double>, ptr %355, align 8, !noalias !4992 %strided.vec98.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %strided.vec99.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %356 = fadd <4 x double> %strided.vec95.2, %strided.vec98.2 %357 = fadd <4 x double> %strided.vec96.2, %strided.vec99.2 %358 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec100.2 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %358, align 8, !noalias !4992 %359 = fsub <4 x double> %strided.vec95.2, %strided.vec98.2 %360 = fsub <4 x double> %strided.vec96.2, %strided.vec99.2 %361 = fmul <4 x double> %360, %broadcast.splat102 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %359, <4 x double> %361) %363 = fmul <4 x double> %broadcast.splat106, %359 %364 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %360, <4 x double> %363) %365 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec107.2 = shufflevector <4 x double> %362, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec107.2, ptr %365, align 8, !noalias !4992 %366 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %wide.vec94.3 = load <8 x double>, ptr %366, align 8, !noalias !4992 %strided.vec95.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %strided.vec96.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %wide.vec97.3 = load <8 x double>, ptr %367, align 8, !noalias !4992 %strided.vec98.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %strided.vec99.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %368 = fadd <4 x double> %strided.vec95.3, %strided.vec98.3 %369 = fadd <4 x double> %strided.vec96.3, %strided.vec99.3 %370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec100.3 = shufflevector <4 x double> %368, <4 x double> %369, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %370, align 8, !noalias !4992 %371 = fsub <4 x double> %strided.vec95.3, %strided.vec98.3 %372 = fsub <4 x double> %strided.vec96.3, %strided.vec99.3 %373 = fmul <4 x double> %372, %broadcast.splat102 %374 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %371, <4 x double> %373) %375 = fmul <4 x double> %broadcast.splat106, %371 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %372, <4 x double> %375) %377 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec107.3 = shufflevector <4 x double> %374, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec107.3, ptr %377, align 8, !noalias !4992 %data.i.i.i.i.i.i.i.i787.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %data.i5.i.i.i.i.i.i.i792.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %378 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i.i.4 = load double, ptr %378, align 8, !noalias !4978, !noundef !3 %379 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i.i.4 = load double, ptr %379, align 8, !noalias !4978, !noundef !3 %_6.i.i.i.i.i.4 = fneg double %w1.1.i.i.i.i.4 %broadcast.splatinsert126 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert122 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat123 = shufflevector <4 x double> %broadcast.splatinsert122, <4 x double> poison, <4 x i32> zeroinitializer %380 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %wide.vec115 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.4, align 8, !noalias !4992 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.4, align 8, !noalias !4992 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %381 = fadd <4 x double> %strided.vec116, %strided.vec119 %382 = fadd <4 x double> %strided.vec117, %strided.vec120 %interleaved.vec121 = shufflevector <4 x double> %381, <4 x double> %382, <8 x i32> store <8 x double> %interleaved.vec121, ptr %74, align 8, !noalias !4992 %383 = fsub <4 x double> %strided.vec116, %strided.vec119 %384 = fsub <4 x double> %strided.vec117, %strided.vec120 %385 = fmul <4 x double> %384, %broadcast.splat123 %386 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %383, <4 x double> %385) %387 = fmul <4 x double> %broadcast.splat127, %383 %388 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %384, <4 x double> %387) %interleaved.vec128 = shufflevector <4 x double> %386, <4 x double> %388, <8 x i32> store <8 x double> %interleaved.vec128, ptr %380, align 8, !noalias !4992 %389 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %390 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 196 %wide.vec115.1 = load <8 x double>, ptr %389, align 8, !noalias !4992 %strided.vec116.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %strided.vec117.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %wide.vec118.1 = load <8 x double>, ptr %390, align 8, !noalias !4992 %strided.vec119.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %strided.vec120.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %391 = fadd <4 x double> %strided.vec116.1, %strided.vec119.1 %392 = fadd <4 x double> %strided.vec117.1, %strided.vec120.1 %393 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 132 %interleaved.vec121.1 = shufflevector <4 x double> %391, <4 x double> %392, <8 x i32> store <8 x double> %interleaved.vec121.1, ptr %393, align 8, !noalias !4992 %394 = fsub <4 x double> %strided.vec116.1, %strided.vec119.1 %395 = fsub <4 x double> %strided.vec117.1, %strided.vec120.1 %396 = fmul <4 x double> %395, %broadcast.splat123 %397 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %394, <4 x double> %396) %398 = fmul <4 x double> %broadcast.splat127, %394 %399 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %395, <4 x double> %398) %400 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 148 %interleaved.vec128.1 = shufflevector <4 x double> %397, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec128.1, ptr %400, align 8, !noalias !4992 %401 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %402 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 200 %wide.vec115.2 = load <8 x double>, ptr %401, align 8, !noalias !4992 %strided.vec116.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %strided.vec117.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %wide.vec118.2 = load <8 x double>, ptr %402, align 8, !noalias !4992 %strided.vec119.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %strided.vec120.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %403 = fadd <4 x double> %strided.vec116.2, %strided.vec119.2 %404 = fadd <4 x double> %strided.vec117.2, %strided.vec120.2 %405 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 136 %interleaved.vec121.2 = shufflevector <4 x double> %403, <4 x double> %404, <8 x i32> store <8 x double> %interleaved.vec121.2, ptr %405, align 8, !noalias !4992 %406 = fsub <4 x double> %strided.vec116.2, %strided.vec119.2 %407 = fsub <4 x double> %strided.vec117.2, %strided.vec120.2 %408 = fmul <4 x double> %407, %broadcast.splat123 %409 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %406, <4 x double> %408) %410 = fmul <4 x double> %broadcast.splat127, %406 %411 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %407, <4 x double> %410) %412 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 152 %interleaved.vec128.2 = shufflevector <4 x double> %409, <4 x double> %411, <8 x i32> store <8 x double> %interleaved.vec128.2, ptr %412, align 8, !noalias !4992 %413 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %414 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 204 %wide.vec115.3 = load <8 x double>, ptr %413, align 8, !noalias !4992 %strided.vec116.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %strided.vec117.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %wide.vec118.3 = load <8 x double>, ptr %414, align 8, !noalias !4992 %strided.vec119.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %strided.vec120.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %415 = fadd <4 x double> %strided.vec116.3, %strided.vec119.3 %416 = fadd <4 x double> %strided.vec117.3, %strided.vec120.3 %417 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 140 %interleaved.vec121.3 = shufflevector <4 x double> %415, <4 x double> %416, <8 x i32> store <8 x double> %interleaved.vec121.3, ptr %417, align 8, !noalias !4992 %418 = fsub <4 x double> %strided.vec116.3, %strided.vec119.3 %419 = fsub <4 x double> %strided.vec117.3, %strided.vec120.3 %420 = fmul <4 x double> %419, %broadcast.splat123 %421 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %418, <4 x double> %420) %422 = fmul <4 x double> %broadcast.splat127, %418 %423 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %419, <4 x double> %422) %424 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 156 %interleaved.vec128.3 = shufflevector <4 x double> %421, <4 x double> %423, <8 x i32> store <8 x double> %interleaved.vec128.3, ptr %424, align 8, !noalias !4992 %425 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 80, i64 1, i32 1 %w1.1.i.i.i.i.5 = load double, ptr %425, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert147 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.5, i64 0 %broadcast.splat148 = shufflevector <4 x double> %broadcast.splatinsert147, <4 x double> poison, <4 x i32> zeroinitializer %426 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 80, i64 1 %w1.0.i.i.i.i.5 = load double, ptr %426, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert145 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.5, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.5 = fneg double %w1.1.i.i.i.i.5 %broadcast.splatinsert143 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.5, i64 0 %broadcast.splat144 = shufflevector <4 x double> %broadcast.splatinsert143, <4 x double> poison, <4 x i32> zeroinitializer %427 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %data.i.i.i.i.i.i796.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %data.i5.i.i.i.i.i.i.i792.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %data.i.i.i.i.i.i.i.i787.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %wide.vec136 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.5, align 8, !noalias !4992 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.5, align 8, !noalias !4992 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %428 = fadd <4 x double> %strided.vec137, %strided.vec140 %429 = fadd <4 x double> %strided.vec138, %strided.vec141 %interleaved.vec142 = shufflevector <4 x double> %428, <4 x double> %429, <8 x i32> store <8 x double> %interleaved.vec142, ptr %data.i.i.i.i.i.i796.5, align 8, !noalias !4992 %430 = fsub <4 x double> %strided.vec137, %strided.vec140 %431 = fsub <4 x double> %strided.vec138, %strided.vec141 %432 = fmul <4 x double> %431, %broadcast.splat144 %433 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %430, <4 x double> %432) %434 = fmul <4 x double> %broadcast.splat148, %430 %435 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %431, <4 x double> %434) %interleaved.vec149 = shufflevector <4 x double> %433, <4 x double> %435, <8 x i32> store <8 x double> %interleaved.vec149, ptr %427, align 8, !noalias !4992 %436 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %437 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 212 %wide.vec136.1 = load <8 x double>, ptr %436, align 8, !noalias !4992 %strided.vec137.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %strided.vec138.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %wide.vec139.1 = load <8 x double>, ptr %437, align 8, !noalias !4992 %strided.vec140.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %strided.vec141.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %438 = fadd <4 x double> %strided.vec137.1, %strided.vec140.1 %439 = fadd <4 x double> %strided.vec138.1, %strided.vec141.1 %440 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 164 %interleaved.vec142.1 = shufflevector <4 x double> %438, <4 x double> %439, <8 x i32> store <8 x double> %interleaved.vec142.1, ptr %440, align 8, !noalias !4992 %441 = fsub <4 x double> %strided.vec137.1, %strided.vec140.1 %442 = fsub <4 x double> %strided.vec138.1, %strided.vec141.1 %443 = fmul <4 x double> %442, %broadcast.splat144 %444 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %441, <4 x double> %443) %445 = fmul <4 x double> %broadcast.splat148, %441 %446 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %442, <4 x double> %445) %447 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 180 %interleaved.vec149.1 = shufflevector <4 x double> %444, <4 x double> %446, <8 x i32> store <8 x double> %interleaved.vec149.1, ptr %447, align 8, !noalias !4992 %448 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %449 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 216 %wide.vec136.2 = load <8 x double>, ptr %448, align 8, !noalias !4992 %strided.vec137.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %strided.vec138.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %wide.vec139.2 = load <8 x double>, ptr %449, align 8, !noalias !4992 %strided.vec140.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %strided.vec141.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %450 = fadd <4 x double> %strided.vec137.2, %strided.vec140.2 %451 = fadd <4 x double> %strided.vec138.2, %strided.vec141.2 %452 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 168 %interleaved.vec142.2 = shufflevector <4 x double> %450, <4 x double> %451, <8 x i32> store <8 x double> %interleaved.vec142.2, ptr %452, align 8, !noalias !4992 %453 = fsub <4 x double> %strided.vec137.2, %strided.vec140.2 %454 = fsub <4 x double> %strided.vec138.2, %strided.vec141.2 %455 = fmul <4 x double> %454, %broadcast.splat144 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %broadcast.splat148, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %454, <4 x double> %457) %459 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 184 %interleaved.vec149.2 = shufflevector <4 x double> %456, <4 x double> %458, <8 x i32> store <8 x double> %interleaved.vec149.2, ptr %459, align 8, !noalias !4992 %460 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %461 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 220 %wide.vec136.3 = load <8 x double>, ptr %460, align 8, !noalias !4992 %strided.vec137.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %strided.vec138.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %wide.vec139.3 = load <8 x double>, ptr %461, align 8, !noalias !4992 %strided.vec140.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %strided.vec141.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %462 = fadd <4 x double> %strided.vec137.3, %strided.vec140.3 %463 = fadd <4 x double> %strided.vec138.3, %strided.vec141.3 %464 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 172 %interleaved.vec142.3 = shufflevector <4 x double> %462, <4 x double> %463, <8 x i32> store <8 x double> %interleaved.vec142.3, ptr %464, align 8, !noalias !4992 %465 = fsub <4 x double> %strided.vec137.3, %strided.vec140.3 %466 = fsub <4 x double> %strided.vec138.3, %strided.vec141.3 %467 = fmul <4 x double> %466, %broadcast.splat144 %468 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %465, <4 x double> %467) %469 = fmul <4 x double> %broadcast.splat148, %465 %470 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %466, <4 x double> %469) %471 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 188 %interleaved.vec149.3 = shufflevector <4 x double> %468, <4 x double> %470, <8 x i32> store <8 x double> %interleaved.vec149.3, ptr %471, align 8, !noalias !4992 %472 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1 %w1.0.i.i.i.i.6 = load double, ptr %472, align 8, !noalias !4981, !noundef !3 %473 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 96, i64 1, i32 1 %w1.1.i.i.i.i.6 = load double, ptr %473, align 8, !noalias !4981, !noundef !3 %_6.i.i.i.i.i.6 = fneg double %w1.1.i.i.i.i.6 %broadcast.splatinsert168 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.6, i64 0 %broadcast.splat169 = shufflevector <4 x double> %broadcast.splatinsert168, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert166 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.6, i64 0 %broadcast.splat167 = shufflevector <4 x double> %broadcast.splatinsert166, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert164 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.6, i64 0 %broadcast.splat165 = shufflevector <4 x double> %broadcast.splatinsert164, <4 x double> poison, <4 x i32> zeroinitializer %474 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %data.i.i.i.i.i.i796.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %data.i5.i.i.i.i.i.i.i792.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %data.i.i.i.i.i.i.i.i787.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %wide.vec157 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.6, align 8, !noalias !4992 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.6, align 8, !noalias !4992 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %475 = fadd <4 x double> %strided.vec158, %strided.vec161 %476 = fadd <4 x double> %strided.vec159, %strided.vec162 %interleaved.vec163 = shufflevector <4 x double> %475, <4 x double> %476, <8 x i32> store <8 x double> %interleaved.vec163, ptr %data.i.i.i.i.i.i796.6, align 8, !noalias !4992 %477 = fsub <4 x double> %strided.vec158, %strided.vec161 %478 = fsub <4 x double> %strided.vec159, %strided.vec162 %479 = fmul <4 x double> %478, %broadcast.splat165 %480 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %477, <4 x double> %479) %481 = fmul <4 x double> %broadcast.splat169, %477 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %478, <4 x double> %481) %interleaved.vec170 = shufflevector <4 x double> %480, <4 x double> %482, <8 x i32> store <8 x double> %interleaved.vec170, ptr %474, align 8, !noalias !4992 %483 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %484 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 228 %wide.vec157.1 = load <8 x double>, ptr %483, align 8, !noalias !4992 %strided.vec158.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %strided.vec159.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %wide.vec160.1 = load <8 x double>, ptr %484, align 8, !noalias !4992 %strided.vec161.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %strided.vec162.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %485 = fadd <4 x double> %strided.vec158.1, %strided.vec161.1 %486 = fadd <4 x double> %strided.vec159.1, %strided.vec162.1 %487 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 196 %interleaved.vec163.1 = shufflevector <4 x double> %485, <4 x double> %486, <8 x i32> store <8 x double> %interleaved.vec163.1, ptr %487, align 8, !noalias !4992 %488 = fsub <4 x double> %strided.vec158.1, %strided.vec161.1 %489 = fsub <4 x double> %strided.vec159.1, %strided.vec162.1 %490 = fmul <4 x double> %489, %broadcast.splat165 %491 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %488, <4 x double> %490) %492 = fmul <4 x double> %broadcast.splat169, %488 %493 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %489, <4 x double> %492) %494 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 212 %interleaved.vec170.1 = shufflevector <4 x double> %491, <4 x double> %493, <8 x i32> store <8 x double> %interleaved.vec170.1, ptr %494, align 8, !noalias !4992 %495 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %496 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 232 %wide.vec157.2 = load <8 x double>, ptr %495, align 8, !noalias !4992 %strided.vec158.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %strided.vec159.2 = shufflevector <8 x double> %wide.vec157.2, <8 x double> poison, <4 x i32> %wide.vec160.2 = load <8 x double>, ptr %496, align 8, !noalias !4992 %strided.vec161.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %strided.vec162.2 = shufflevector <8 x double> %wide.vec160.2, <8 x double> poison, <4 x i32> %497 = fadd <4 x double> %strided.vec158.2, %strided.vec161.2 %498 = fadd <4 x double> %strided.vec159.2, %strided.vec162.2 %499 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 200 %interleaved.vec163.2 = shufflevector <4 x double> %497, <4 x double> %498, <8 x i32> store <8 x double> %interleaved.vec163.2, ptr %499, align 8, !noalias !4992 %500 = fsub <4 x double> %strided.vec158.2, %strided.vec161.2 %501 = fsub <4 x double> %strided.vec159.2, %strided.vec162.2 %502 = fmul <4 x double> %501, %broadcast.splat165 %503 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %500, <4 x double> %502) %504 = fmul <4 x double> %broadcast.splat169, %500 %505 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %501, <4 x double> %504) %506 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 216 %interleaved.vec170.2 = shufflevector <4 x double> %503, <4 x double> %505, <8 x i32> store <8 x double> %interleaved.vec170.2, ptr %506, align 8, !noalias !4992 %507 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %508 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 236 %wide.vec157.3 = load <8 x double>, ptr %507, align 8, !noalias !4992 %strided.vec158.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %strided.vec159.3 = shufflevector <8 x double> %wide.vec157.3, <8 x double> poison, <4 x i32> %wide.vec160.3 = load <8 x double>, ptr %508, align 8, !noalias !4992 %strided.vec161.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %strided.vec162.3 = shufflevector <8 x double> %wide.vec160.3, <8 x double> poison, <4 x i32> %509 = fadd <4 x double> %strided.vec158.3, %strided.vec161.3 %510 = fadd <4 x double> %strided.vec159.3, %strided.vec162.3 %511 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 204 %interleaved.vec163.3 = shufflevector <4 x double> %509, <4 x double> %510, <8 x i32> store <8 x double> %interleaved.vec163.3, ptr %511, align 8, !noalias !4992 %512 = fsub <4 x double> %strided.vec158.3, %strided.vec161.3 %513 = fsub <4 x double> %strided.vec159.3, %strided.vec162.3 %514 = fmul <4 x double> %513, %broadcast.splat165 %515 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %512, <4 x double> %514) %516 = fmul <4 x double> %broadcast.splat169, %512 %517 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat167, <4 x double> %513, <4 x double> %516) %518 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 220 %interleaved.vec170.3 = shufflevector <4 x double> %515, <4 x double> %517, <8 x i32> store <8 x double> %interleaved.vec170.3, ptr %518, align 8, !noalias !4992 %519 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 112, i64 1, i32 1 %w1.1.i.i.i.i.7 = load double, ptr %519, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert189 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.7, i64 0 %broadcast.splat190 = shufflevector <4 x double> %broadcast.splatinsert189, <4 x double> poison, <4 x i32> zeroinitializer %520 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 112, i64 1 %w1.0.i.i.i.i.7 = load double, ptr %520, align 8, !noalias !4992, !noundef !3 %broadcast.splatinsert187 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.7, i64 0 %broadcast.splat188 = shufflevector <4 x double> %broadcast.splatinsert187, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.7 = fneg double %w1.1.i.i.i.i.7 %broadcast.splatinsert185 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.7, i64 0 %broadcast.splat186 = shufflevector <4 x double> %broadcast.splatinsert185, <4 x double> poison, <4 x i32> zeroinitializer %521 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %data.i.i.i.i.i.i796.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %data.i5.i.i.i.i.i.i.i792.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %data.i.i.i.i.i.i.i.i787.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %wide.vec178 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i787.7, align 8, !noalias !4992 %strided.vec179 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %strided.vec180 = shufflevector <8 x double> %wide.vec178, <8 x double> poison, <4 x i32> %wide.vec181 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i792.7, align 8, !noalias !4992 %strided.vec182 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %strided.vec183 = shufflevector <8 x double> %wide.vec181, <8 x double> poison, <4 x i32> %522 = fadd <4 x double> %strided.vec179, %strided.vec182 %523 = fadd <4 x double> %strided.vec180, %strided.vec183 %interleaved.vec184 = shufflevector <4 x double> %522, <4 x double> %523, <8 x i32> store <8 x double> %interleaved.vec184, ptr %data.i.i.i.i.i.i796.7, align 8, !noalias !4992 %524 = fsub <4 x double> %strided.vec179, %strided.vec182 %525 = fsub <4 x double> %strided.vec180, %strided.vec183 %526 = fmul <4 x double> %525, %broadcast.splat186 %527 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %524, <4 x double> %526) %528 = fmul <4 x double> %broadcast.splat190, %524 %529 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %525, <4 x double> %528) %interleaved.vec191 = shufflevector <4 x double> %527, <4 x double> %529, <8 x i32> store <8 x double> %interleaved.vec191, ptr %521, align 8, !noalias !4992 %530 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %531 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %wide.vec178.1 = load <8 x double>, ptr %530, align 8, !noalias !4992 %strided.vec179.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %strided.vec180.1 = shufflevector <8 x double> %wide.vec178.1, <8 x double> poison, <4 x i32> %wide.vec181.1 = load <8 x double>, ptr %531, align 8, !noalias !4992 %strided.vec182.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %strided.vec183.1 = shufflevector <8 x double> %wide.vec181.1, <8 x double> poison, <4 x i32> %532 = fadd <4 x double> %strided.vec179.1, %strided.vec182.1 %533 = fadd <4 x double> %strided.vec180.1, %strided.vec183.1 %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 228 %interleaved.vec184.1 = shufflevector <4 x double> %532, <4 x double> %533, <8 x i32> store <8 x double> %interleaved.vec184.1, ptr %534, align 8, !noalias !4992 %535 = fsub <4 x double> %strided.vec179.1, %strided.vec182.1 %536 = fsub <4 x double> %strided.vec180.1, %strided.vec183.1 %537 = fmul <4 x double> %536, %broadcast.splat186 %538 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %535, <4 x double> %537) %539 = fmul <4 x double> %broadcast.splat190, %535 %540 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %536, <4 x double> %539) %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %interleaved.vec191.1 = shufflevector <4 x double> %538, <4 x double> %540, <8 x i32> store <8 x double> %interleaved.vec191.1, ptr %541, align 8, !noalias !4992 %542 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %543 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %wide.vec178.2 = load <8 x double>, ptr %542, align 8, !noalias !4992 %strided.vec179.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %strided.vec180.2 = shufflevector <8 x double> %wide.vec178.2, <8 x double> poison, <4 x i32> %wide.vec181.2 = load <8 x double>, ptr %543, align 8, !noalias !4992 %strided.vec182.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %strided.vec183.2 = shufflevector <8 x double> %wide.vec181.2, <8 x double> poison, <4 x i32> %544 = fadd <4 x double> %strided.vec179.2, %strided.vec182.2 %545 = fadd <4 x double> %strided.vec180.2, %strided.vec183.2 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 232 %interleaved.vec184.2 = shufflevector <4 x double> %544, <4 x double> %545, <8 x i32> store <8 x double> %interleaved.vec184.2, ptr %546, align 8, !noalias !4992 %547 = fsub <4 x double> %strided.vec179.2, %strided.vec182.2 %548 = fsub <4 x double> %strided.vec180.2, %strided.vec183.2 %549 = fmul <4 x double> %548, %broadcast.splat186 %550 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %547, <4 x double> %549) %551 = fmul <4 x double> %broadcast.splat190, %547 %552 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %548, <4 x double> %551) %553 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %interleaved.vec191.2 = shufflevector <4 x double> %550, <4 x double> %552, <8 x i32> store <8 x double> %interleaved.vec191.2, ptr %553, align 8, !noalias !4992 %554 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %555 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %wide.vec178.3 = load <8 x double>, ptr %554, align 8, !noalias !4992 %strided.vec179.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %strided.vec180.3 = shufflevector <8 x double> %wide.vec178.3, <8 x double> poison, <4 x i32> %wide.vec181.3 = load <8 x double>, ptr %555, align 8, !noalias !4992 %strided.vec182.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %strided.vec183.3 = shufflevector <8 x double> %wide.vec181.3, <8 x double> poison, <4 x i32> %556 = fadd <4 x double> %strided.vec179.3, %strided.vec182.3 %557 = fadd <4 x double> %strided.vec180.3, %strided.vec183.3 %558 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 236 %interleaved.vec184.3 = shufflevector <4 x double> %556, <4 x double> %557, <8 x i32> store <8 x double> %interleaved.vec184.3, ptr %558, align 8, !noalias !4992 %559 = fsub <4 x double> %strided.vec179.3, %strided.vec182.3 %560 = fsub <4 x double> %strided.vec180.3, %strided.vec183.3 %561 = fmul <4 x double> %560, %broadcast.splat186 %562 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %559, <4 x double> %561) %563 = fmul <4 x double> %broadcast.splat190, %559 %564 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat188, <4 x double> %560, <4 x double> %563) %565 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %interleaved.vec191.3 = shufflevector <4 x double> %562, <4 x double> %564, <8 x i32> store <8 x double> %interleaved.vec191.3, ptr %565, align 8, !noalias !4992 %broadcast.splatinsert210 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat211 = shufflevector <4 x double> %broadcast.splatinsert210, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert208 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat209 = shufflevector <4 x double> %broadcast.splatinsert208, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert206 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat207 = shufflevector <4 x double> %broadcast.splatinsert206, <4 x double> poison, <4 x i32> zeroinitializer %wide.vec199 = load <8 x double>, ptr %scratch.0, align 8, !noalias !4997 %strided.vec200 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %strided.vec201 = shufflevector <8 x double> %wide.vec199, <8 x double> poison, <4 x i32> %wide.vec202 = load <8 x double>, ptr %74, align 8, !noalias !4997 %strided.vec203 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %strided.vec204 = shufflevector <8 x double> %wide.vec202, <8 x double> poison, <4 x i32> %566 = fadd <4 x double> %strided.vec200, %strided.vec203 %567 = fadd <4 x double> %strided.vec201, %strided.vec204 %interleaved.vec205 = shufflevector <4 x double> %566, <4 x double> %567, <8 x i32> store <8 x double> %interleaved.vec205, ptr %buf.0, align 8, !noalias !4997 %568 = fsub <4 x double> %strided.vec200, %strided.vec203 %569 = fsub <4 x double> %strided.vec201, %strided.vec204 %570 = fmul <4 x double> %569, %broadcast.splat207 %571 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %568, <4 x double> %570) %572 = fmul <4 x double> %broadcast.splat211, %568 %573 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %569, <4 x double> %572) %interleaved.vec212 = shufflevector <4 x double> %571, <4 x double> %573, <8 x i32> store <8 x double> %interleaved.vec212, ptr %data.i.i.i.i.i.i.i.i787.2, align 8, !noalias !4997 %574 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %575 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 132 %wide.vec199.1 = load <8 x double>, ptr %574, align 8, !noalias !4997 %strided.vec200.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %strided.vec201.1 = shufflevector <8 x double> %wide.vec199.1, <8 x double> poison, <4 x i32> %wide.vec202.1 = load <8 x double>, ptr %575, align 8, !noalias !4997 %strided.vec203.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %strided.vec204.1 = shufflevector <8 x double> %wide.vec202.1, <8 x double> poison, <4 x i32> %576 = fadd <4 x double> %strided.vec200.1, %strided.vec203.1 %577 = fadd <4 x double> %strided.vec201.1, %strided.vec204.1 %578 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec205.1 = shufflevector <4 x double> %576, <4 x double> %577, <8 x i32> store <8 x double> %interleaved.vec205.1, ptr %578, align 8, !noalias !4997 %579 = fsub <4 x double> %strided.vec200.1, %strided.vec203.1 %580 = fsub <4 x double> %strided.vec201.1, %strided.vec204.1 %581 = fmul <4 x double> %580, %broadcast.splat207 %582 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %579, <4 x double> %581) %583 = fmul <4 x double> %broadcast.splat211, %579 %584 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %580, <4 x double> %583) %585 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec212.1 = shufflevector <4 x double> %582, <4 x double> %584, <8 x i32> store <8 x double> %interleaved.vec212.1, ptr %585, align 8, !noalias !4997 %586 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %587 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 136 %wide.vec199.2 = load <8 x double>, ptr %586, align 8, !noalias !4997 %strided.vec200.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %strided.vec201.2 = shufflevector <8 x double> %wide.vec199.2, <8 x double> poison, <4 x i32> %wide.vec202.2 = load <8 x double>, ptr %587, align 8, !noalias !4997 %strided.vec203.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %strided.vec204.2 = shufflevector <8 x double> %wide.vec202.2, <8 x double> poison, <4 x i32> %588 = fadd <4 x double> %strided.vec200.2, %strided.vec203.2 %589 = fadd <4 x double> %strided.vec201.2, %strided.vec204.2 %590 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec205.2 = shufflevector <4 x double> %588, <4 x double> %589, <8 x i32> store <8 x double> %interleaved.vec205.2, ptr %590, align 8, !noalias !4997 %591 = fsub <4 x double> %strided.vec200.2, %strided.vec203.2 %592 = fsub <4 x double> %strided.vec201.2, %strided.vec204.2 %593 = fmul <4 x double> %592, %broadcast.splat207 %594 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %591, <4 x double> %593) %595 = fmul <4 x double> %broadcast.splat211, %591 %596 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %592, <4 x double> %595) %597 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec212.2 = shufflevector <4 x double> %594, <4 x double> %596, <8 x i32> store <8 x double> %interleaved.vec212.2, ptr %597, align 8, !noalias !4997 %598 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %599 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 140 %wide.vec199.3 = load <8 x double>, ptr %598, align 8, !noalias !4997 %strided.vec200.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %strided.vec201.3 = shufflevector <8 x double> %wide.vec199.3, <8 x double> poison, <4 x i32> %wide.vec202.3 = load <8 x double>, ptr %599, align 8, !noalias !4997 %strided.vec203.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %strided.vec204.3 = shufflevector <8 x double> %wide.vec202.3, <8 x double> poison, <4 x i32> %600 = fadd <4 x double> %strided.vec200.3, %strided.vec203.3 %601 = fadd <4 x double> %strided.vec201.3, %strided.vec204.3 %602 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec205.3 = shufflevector <4 x double> %600, <4 x double> %601, <8 x i32> store <8 x double> %interleaved.vec205.3, ptr %602, align 8, !noalias !4997 %603 = fsub <4 x double> %strided.vec200.3, %strided.vec203.3 %604 = fsub <4 x double> %strided.vec201.3, %strided.vec204.3 %605 = fmul <4 x double> %604, %broadcast.splat207 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %broadcast.splat211, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %604, <4 x double> %607) %609 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec212.3 = shufflevector <4 x double> %606, <4 x double> %608, <8 x i32> store <8 x double> %interleaved.vec212.3, ptr %609, align 8, !noalias !4997 %610 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %611 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %wide.vec199.4 = load <8 x double>, ptr %610, align 8, !noalias !4997 %strided.vec200.4 = shufflevector <8 x double> %wide.vec199.4, <8 x double> poison, <4 x i32> %strided.vec201.4 = shufflevector <8 x double> %wide.vec199.4, <8 x double> poison, <4 x i32> %wide.vec202.4 = load <8 x double>, ptr %611, align 8, !noalias !4997 %strided.vec203.4 = shufflevector <8 x double> %wide.vec202.4, <8 x double> poison, <4 x i32> %strided.vec204.4 = shufflevector <8 x double> %wide.vec202.4, <8 x double> poison, <4 x i32> %612 = fadd <4 x double> %strided.vec200.4, %strided.vec203.4 %613 = fadd <4 x double> %strided.vec201.4, %strided.vec204.4 %614 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec205.4 = shufflevector <4 x double> %612, <4 x double> %613, <8 x i32> store <8 x double> %interleaved.vec205.4, ptr %614, align 8, !noalias !4997 %615 = fsub <4 x double> %strided.vec200.4, %strided.vec203.4 %616 = fsub <4 x double> %strided.vec201.4, %strided.vec204.4 %617 = fmul <4 x double> %616, %broadcast.splat207 %618 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %615, <4 x double> %617) %619 = fmul <4 x double> %broadcast.splat211, %615 %620 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %616, <4 x double> %619) %621 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec212.4 = shufflevector <4 x double> %618, <4 x double> %620, <8 x i32> store <8 x double> %interleaved.vec212.4, ptr %621, align 8, !noalias !4997 %622 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %623 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 148 %wide.vec199.5 = load <8 x double>, ptr %622, align 8, !noalias !4997 %strided.vec200.5 = shufflevector <8 x double> %wide.vec199.5, <8 x double> poison, <4 x i32> %strided.vec201.5 = shufflevector <8 x double> %wide.vec199.5, <8 x double> poison, <4 x i32> %wide.vec202.5 = load <8 x double>, ptr %623, align 8, !noalias !4997 %strided.vec203.5 = shufflevector <8 x double> %wide.vec202.5, <8 x double> poison, <4 x i32> %strided.vec204.5 = shufflevector <8 x double> %wide.vec202.5, <8 x double> poison, <4 x i32> %624 = fadd <4 x double> %strided.vec200.5, %strided.vec203.5 %625 = fadd <4 x double> %strided.vec201.5, %strided.vec204.5 %626 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec205.5 = shufflevector <4 x double> %624, <4 x double> %625, <8 x i32> store <8 x double> %interleaved.vec205.5, ptr %626, align 8, !noalias !4997 %627 = fsub <4 x double> %strided.vec200.5, %strided.vec203.5 %628 = fsub <4 x double> %strided.vec201.5, %strided.vec204.5 %629 = fmul <4 x double> %628, %broadcast.splat207 %630 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %627, <4 x double> %629) %631 = fmul <4 x double> %broadcast.splat211, %627 %632 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %628, <4 x double> %631) %633 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec212.5 = shufflevector <4 x double> %630, <4 x double> %632, <8 x i32> store <8 x double> %interleaved.vec212.5, ptr %633, align 8, !noalias !4997 %634 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %635 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 152 %wide.vec199.6 = load <8 x double>, ptr %634, align 8, !noalias !4997 %strided.vec200.6 = shufflevector <8 x double> %wide.vec199.6, <8 x double> poison, <4 x i32> %strided.vec201.6 = shufflevector <8 x double> %wide.vec199.6, <8 x double> poison, <4 x i32> %wide.vec202.6 = load <8 x double>, ptr %635, align 8, !noalias !4997 %strided.vec203.6 = shufflevector <8 x double> %wide.vec202.6, <8 x double> poison, <4 x i32> %strided.vec204.6 = shufflevector <8 x double> %wide.vec202.6, <8 x double> poison, <4 x i32> %636 = fadd <4 x double> %strided.vec200.6, %strided.vec203.6 %637 = fadd <4 x double> %strided.vec201.6, %strided.vec204.6 %638 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec205.6 = shufflevector <4 x double> %636, <4 x double> %637, <8 x i32> store <8 x double> %interleaved.vec205.6, ptr %638, align 8, !noalias !4997 %639 = fsub <4 x double> %strided.vec200.6, %strided.vec203.6 %640 = fsub <4 x double> %strided.vec201.6, %strided.vec204.6 %641 = fmul <4 x double> %640, %broadcast.splat207 %642 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %639, <4 x double> %641) %643 = fmul <4 x double> %broadcast.splat211, %639 %644 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %640, <4 x double> %643) %645 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec212.6 = shufflevector <4 x double> %642, <4 x double> %644, <8 x i32> store <8 x double> %interleaved.vec212.6, ptr %645, align 8, !noalias !4997 %646 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %647 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 156 %wide.vec199.7 = load <8 x double>, ptr %646, align 8, !noalias !4997 %strided.vec200.7 = shufflevector <8 x double> %wide.vec199.7, <8 x double> poison, <4 x i32> %strided.vec201.7 = shufflevector <8 x double> %wide.vec199.7, <8 x double> poison, <4 x i32> %wide.vec202.7 = load <8 x double>, ptr %647, align 8, !noalias !4997 %strided.vec203.7 = shufflevector <8 x double> %wide.vec202.7, <8 x double> poison, <4 x i32> %strided.vec204.7 = shufflevector <8 x double> %wide.vec202.7, <8 x double> poison, <4 x i32> %648 = fadd <4 x double> %strided.vec200.7, %strided.vec203.7 %649 = fadd <4 x double> %strided.vec201.7, %strided.vec204.7 %650 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec205.7 = shufflevector <4 x double> %648, <4 x double> %649, <8 x i32> store <8 x double> %interleaved.vec205.7, ptr %650, align 8, !noalias !4997 %651 = fsub <4 x double> %strided.vec200.7, %strided.vec203.7 %652 = fsub <4 x double> %strided.vec201.7, %strided.vec204.7 %653 = fmul <4 x double> %652, %broadcast.splat207 %654 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %651, <4 x double> %653) %655 = fmul <4 x double> %broadcast.splat211, %651 %656 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat209, <4 x double> %652, <4 x double> %655) %657 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec212.7 = shufflevector <4 x double> %654, <4 x double> %656, <8 x i32> store <8 x double> %interleaved.vec212.7, ptr %657, align 8, !noalias !4997 %broadcast.splatinsert231 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.2, i64 0 %broadcast.splat232 = shufflevector <4 x double> %broadcast.splatinsert231, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert229 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.2, i64 0 %broadcast.splat230 = shufflevector <4 x double> %broadcast.splatinsert229, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert227 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.2, i64 0 %broadcast.splat228 = shufflevector <4 x double> %broadcast.splatinsert227, <4 x double> poison, <4 x i32> zeroinitializer %658 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i965.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %wide.vec220 = load <8 x double>, ptr %data.i.i.i.i.i.i796.1, align 8, !noalias !4997 %strided.vec221 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %strided.vec222 = shufflevector <8 x double> %wide.vec220, <8 x double> poison, <4 x i32> %wide.vec223 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i965.1, align 8, !noalias !4997 %strided.vec224 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %strided.vec225 = shufflevector <8 x double> %wide.vec223, <8 x double> poison, <4 x i32> %659 = fadd <4 x double> %strided.vec221, %strided.vec224 %660 = fadd <4 x double> %strided.vec222, %strided.vec225 %interleaved.vec226 = shufflevector <4 x double> %659, <4 x double> %660, <8 x i32> store <8 x double> %interleaved.vec226, ptr %data.i.i.i.i.i.i.i.i787.4, align 8, !noalias !4997 %661 = fsub <4 x double> %strided.vec221, %strided.vec224 %662 = fsub <4 x double> %strided.vec222, %strided.vec225 %663 = fmul <4 x double> %662, %broadcast.splat228 %664 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %661, <4 x double> %663) %665 = fmul <4 x double> %broadcast.splat232, %661 %666 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %662, <4 x double> %665) %interleaved.vec233 = shufflevector <4 x double> %664, <4 x double> %666, <8 x i32> store <8 x double> %interleaved.vec233, ptr %658, align 8, !noalias !4997 %667 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %668 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 164 %wide.vec220.1 = load <8 x double>, ptr %667, align 8, !noalias !4997 %strided.vec221.1 = shufflevector <8 x double> %wide.vec220.1, <8 x double> poison, <4 x i32> %strided.vec222.1 = shufflevector <8 x double> %wide.vec220.1, <8 x double> poison, <4 x i32> %wide.vec223.1 = load <8 x double>, ptr %668, align 8, !noalias !4997 %strided.vec224.1 = shufflevector <8 x double> %wide.vec223.1, <8 x double> poison, <4 x i32> %strided.vec225.1 = shufflevector <8 x double> %wide.vec223.1, <8 x double> poison, <4 x i32> %669 = fadd <4 x double> %strided.vec221.1, %strided.vec224.1 %670 = fadd <4 x double> %strided.vec222.1, %strided.vec225.1 %671 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec226.1 = shufflevector <4 x double> %669, <4 x double> %670, <8 x i32> store <8 x double> %interleaved.vec226.1, ptr %671, align 8, !noalias !4997 %672 = fsub <4 x double> %strided.vec221.1, %strided.vec224.1 %673 = fsub <4 x double> %strided.vec222.1, %strided.vec225.1 %674 = fmul <4 x double> %673, %broadcast.splat228 %675 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %672, <4 x double> %674) %676 = fmul <4 x double> %broadcast.splat232, %672 %677 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %673, <4 x double> %676) %678 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec233.1 = shufflevector <4 x double> %675, <4 x double> %677, <8 x i32> store <8 x double> %interleaved.vec233.1, ptr %678, align 8, !noalias !4997 %679 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %680 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 168 %wide.vec220.2 = load <8 x double>, ptr %679, align 8, !noalias !4997 %strided.vec221.2 = shufflevector <8 x double> %wide.vec220.2, <8 x double> poison, <4 x i32> %strided.vec222.2 = shufflevector <8 x double> %wide.vec220.2, <8 x double> poison, <4 x i32> %wide.vec223.2 = load <8 x double>, ptr %680, align 8, !noalias !4997 %strided.vec224.2 = shufflevector <8 x double> %wide.vec223.2, <8 x double> poison, <4 x i32> %strided.vec225.2 = shufflevector <8 x double> %wide.vec223.2, <8 x double> poison, <4 x i32> %681 = fadd <4 x double> %strided.vec221.2, %strided.vec224.2 %682 = fadd <4 x double> %strided.vec222.2, %strided.vec225.2 %683 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec226.2 = shufflevector <4 x double> %681, <4 x double> %682, <8 x i32> store <8 x double> %interleaved.vec226.2, ptr %683, align 8, !noalias !4997 %684 = fsub <4 x double> %strided.vec221.2, %strided.vec224.2 %685 = fsub <4 x double> %strided.vec222.2, %strided.vec225.2 %686 = fmul <4 x double> %685, %broadcast.splat228 %687 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %684, <4 x double> %686) %688 = fmul <4 x double> %broadcast.splat232, %684 %689 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %685, <4 x double> %688) %690 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec233.2 = shufflevector <4 x double> %687, <4 x double> %689, <8 x i32> store <8 x double> %interleaved.vec233.2, ptr %690, align 8, !noalias !4997 %691 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %692 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 172 %wide.vec220.3 = load <8 x double>, ptr %691, align 8, !noalias !4997 %strided.vec221.3 = shufflevector <8 x double> %wide.vec220.3, <8 x double> poison, <4 x i32> %strided.vec222.3 = shufflevector <8 x double> %wide.vec220.3, <8 x double> poison, <4 x i32> %wide.vec223.3 = load <8 x double>, ptr %692, align 8, !noalias !4997 %strided.vec224.3 = shufflevector <8 x double> %wide.vec223.3, <8 x double> poison, <4 x i32> %strided.vec225.3 = shufflevector <8 x double> %wide.vec223.3, <8 x double> poison, <4 x i32> %693 = fadd <4 x double> %strided.vec221.3, %strided.vec224.3 %694 = fadd <4 x double> %strided.vec222.3, %strided.vec225.3 %695 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec226.3 = shufflevector <4 x double> %693, <4 x double> %694, <8 x i32> store <8 x double> %interleaved.vec226.3, ptr %695, align 8, !noalias !4997 %696 = fsub <4 x double> %strided.vec221.3, %strided.vec224.3 %697 = fsub <4 x double> %strided.vec222.3, %strided.vec225.3 %698 = fmul <4 x double> %697, %broadcast.splat228 %699 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %696, <4 x double> %698) %700 = fmul <4 x double> %broadcast.splat232, %696 %701 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %697, <4 x double> %700) %702 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec233.3 = shufflevector <4 x double> %699, <4 x double> %701, <8 x i32> store <8 x double> %interleaved.vec233.3, ptr %702, align 8, !noalias !4997 %703 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %704 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %wide.vec220.4 = load <8 x double>, ptr %703, align 8, !noalias !4997 %strided.vec221.4 = shufflevector <8 x double> %wide.vec220.4, <8 x double> poison, <4 x i32> %strided.vec222.4 = shufflevector <8 x double> %wide.vec220.4, <8 x double> poison, <4 x i32> %wide.vec223.4 = load <8 x double>, ptr %704, align 8, !noalias !4997 %strided.vec224.4 = shufflevector <8 x double> %wide.vec223.4, <8 x double> poison, <4 x i32> %strided.vec225.4 = shufflevector <8 x double> %wide.vec223.4, <8 x double> poison, <4 x i32> %705 = fadd <4 x double> %strided.vec221.4, %strided.vec224.4 %706 = fadd <4 x double> %strided.vec222.4, %strided.vec225.4 %707 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %interleaved.vec226.4 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec226.4, ptr %707, align 8, !noalias !4997 %708 = fsub <4 x double> %strided.vec221.4, %strided.vec224.4 %709 = fsub <4 x double> %strided.vec222.4, %strided.vec225.4 %710 = fmul <4 x double> %709, %broadcast.splat228 %711 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %708, <4 x double> %710) %712 = fmul <4 x double> %broadcast.splat232, %708 %713 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %709, <4 x double> %712) %714 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %interleaved.vec233.4 = shufflevector <4 x double> %711, <4 x double> %713, <8 x i32> store <8 x double> %interleaved.vec233.4, ptr %714, align 8, !noalias !4997 %715 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %716 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 180 %wide.vec220.5 = load <8 x double>, ptr %715, align 8, !noalias !4997 %strided.vec221.5 = shufflevector <8 x double> %wide.vec220.5, <8 x double> poison, <4 x i32> %strided.vec222.5 = shufflevector <8 x double> %wide.vec220.5, <8 x double> poison, <4 x i32> %wide.vec223.5 = load <8 x double>, ptr %716, align 8, !noalias !4997 %strided.vec224.5 = shufflevector <8 x double> %wide.vec223.5, <8 x double> poison, <4 x i32> %strided.vec225.5 = shufflevector <8 x double> %wide.vec223.5, <8 x double> poison, <4 x i32> %717 = fadd <4 x double> %strided.vec221.5, %strided.vec224.5 %718 = fadd <4 x double> %strided.vec222.5, %strided.vec225.5 %719 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec226.5 = shufflevector <4 x double> %717, <4 x double> %718, <8 x i32> store <8 x double> %interleaved.vec226.5, ptr %719, align 8, !noalias !4997 %720 = fsub <4 x double> %strided.vec221.5, %strided.vec224.5 %721 = fsub <4 x double> %strided.vec222.5, %strided.vec225.5 %722 = fmul <4 x double> %721, %broadcast.splat228 %723 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %720, <4 x double> %722) %724 = fmul <4 x double> %broadcast.splat232, %720 %725 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %721, <4 x double> %724) %726 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec233.5 = shufflevector <4 x double> %723, <4 x double> %725, <8 x i32> store <8 x double> %interleaved.vec233.5, ptr %726, align 8, !noalias !4997 %727 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %728 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 184 %wide.vec220.6 = load <8 x double>, ptr %727, align 8, !noalias !4997 %strided.vec221.6 = shufflevector <8 x double> %wide.vec220.6, <8 x double> poison, <4 x i32> %strided.vec222.6 = shufflevector <8 x double> %wide.vec220.6, <8 x double> poison, <4 x i32> %wide.vec223.6 = load <8 x double>, ptr %728, align 8, !noalias !4997 %strided.vec224.6 = shufflevector <8 x double> %wide.vec223.6, <8 x double> poison, <4 x i32> %strided.vec225.6 = shufflevector <8 x double> %wide.vec223.6, <8 x double> poison, <4 x i32> %729 = fadd <4 x double> %strided.vec221.6, %strided.vec224.6 %730 = fadd <4 x double> %strided.vec222.6, %strided.vec225.6 %731 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec226.6 = shufflevector <4 x double> %729, <4 x double> %730, <8 x i32> store <8 x double> %interleaved.vec226.6, ptr %731, align 8, !noalias !4997 %732 = fsub <4 x double> %strided.vec221.6, %strided.vec224.6 %733 = fsub <4 x double> %strided.vec222.6, %strided.vec225.6 %734 = fmul <4 x double> %733, %broadcast.splat228 %735 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %732, <4 x double> %734) %736 = fmul <4 x double> %broadcast.splat232, %732 %737 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %733, <4 x double> %736) %738 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec233.6 = shufflevector <4 x double> %735, <4 x double> %737, <8 x i32> store <8 x double> %interleaved.vec233.6, ptr %738, align 8, !noalias !4997 %739 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %740 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 188 %wide.vec220.7 = load <8 x double>, ptr %739, align 8, !noalias !4997 %strided.vec221.7 = shufflevector <8 x double> %wide.vec220.7, <8 x double> poison, <4 x i32> %strided.vec222.7 = shufflevector <8 x double> %wide.vec220.7, <8 x double> poison, <4 x i32> %wide.vec223.7 = load <8 x double>, ptr %740, align 8, !noalias !4997 %strided.vec224.7 = shufflevector <8 x double> %wide.vec223.7, <8 x double> poison, <4 x i32> %strided.vec225.7 = shufflevector <8 x double> %wide.vec223.7, <8 x double> poison, <4 x i32> %741 = fadd <4 x double> %strided.vec221.7, %strided.vec224.7 %742 = fadd <4 x double> %strided.vec222.7, %strided.vec225.7 %743 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec226.7 = shufflevector <4 x double> %741, <4 x double> %742, <8 x i32> store <8 x double> %interleaved.vec226.7, ptr %743, align 8, !noalias !4997 %744 = fsub <4 x double> %strided.vec221.7, %strided.vec224.7 %745 = fsub <4 x double> %strided.vec222.7, %strided.vec225.7 %746 = fmul <4 x double> %745, %broadcast.splat228 %747 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %744, <4 x double> %746) %748 = fmul <4 x double> %broadcast.splat232, %744 %749 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat230, <4 x double> %745, <4 x double> %748) %750 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec233.7 = shufflevector <4 x double> %747, <4 x double> %749, <8 x i32> store <8 x double> %interleaved.vec233.7, ptr %750, align 8, !noalias !4997 %data.i5.i.i.i.i.i.i.i965.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %broadcast.splatinsert252 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat253 = shufflevector <4 x double> %broadcast.splatinsert252, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert250 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat251 = shufflevector <4 x double> %broadcast.splatinsert250, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert248 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat249 = shufflevector <4 x double> %broadcast.splatinsert248, <4 x double> poison, <4 x i32> zeroinitializer %wide.vec241 = load <8 x double>, ptr %data.i.i.i.i.i.i796.2, align 8, !noalias !4997 %strided.vec242 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %strided.vec243 = shufflevector <8 x double> %wide.vec241, <8 x double> poison, <4 x i32> %wide.vec244 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i965.2, align 8, !noalias !4997 %strided.vec245 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %strided.vec246 = shufflevector <8 x double> %wide.vec244, <8 x double> poison, <4 x i32> %751 = fadd <4 x double> %strided.vec242, %strided.vec245 %752 = fadd <4 x double> %strided.vec243, %strided.vec246 %interleaved.vec247 = shufflevector <4 x double> %751, <4 x double> %752, <8 x i32> store <8 x double> %interleaved.vec247, ptr %0, align 8, !noalias !4997 %753 = fsub <4 x double> %strided.vec242, %strided.vec245 %754 = fsub <4 x double> %strided.vec243, %strided.vec246 %755 = fmul <4 x double> %754, %broadcast.splat249 %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %753, <4 x double> %755) %757 = fmul <4 x double> %broadcast.splat253, %753 %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %754, <4 x double> %757) %interleaved.vec254 = shufflevector <4 x double> %756, <4 x double> %758, <8 x i32> store <8 x double> %interleaved.vec254, ptr %data.i5.i.i.i.i.i.i.i792.2, align 8, !noalias !4997 %759 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %760 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 196 %wide.vec241.1 = load <8 x double>, ptr %759, align 8, !noalias !4997 %strided.vec242.1 = shufflevector <8 x double> %wide.vec241.1, <8 x double> poison, <4 x i32> %strided.vec243.1 = shufflevector <8 x double> %wide.vec241.1, <8 x double> poison, <4 x i32> %wide.vec244.1 = load <8 x double>, ptr %760, align 8, !noalias !4997 %strided.vec245.1 = shufflevector <8 x double> %wide.vec244.1, <8 x double> poison, <4 x i32> %strided.vec246.1 = shufflevector <8 x double> %wide.vec244.1, <8 x double> poison, <4 x i32> %761 = fadd <4 x double> %strided.vec242.1, %strided.vec245.1 %762 = fadd <4 x double> %strided.vec243.1, %strided.vec246.1 %763 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 132 %interleaved.vec247.1 = shufflevector <4 x double> %761, <4 x double> %762, <8 x i32> store <8 x double> %interleaved.vec247.1, ptr %763, align 8, !noalias !4997 %764 = fsub <4 x double> %strided.vec242.1, %strided.vec245.1 %765 = fsub <4 x double> %strided.vec243.1, %strided.vec246.1 %766 = fmul <4 x double> %765, %broadcast.splat249 %767 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %764, <4 x double> %766) %768 = fmul <4 x double> %broadcast.splat253, %764 %769 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %765, <4 x double> %768) %770 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 164 %interleaved.vec254.1 = shufflevector <4 x double> %767, <4 x double> %769, <8 x i32> store <8 x double> %interleaved.vec254.1, ptr %770, align 8, !noalias !4997 %771 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %772 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 200 %wide.vec241.2 = load <8 x double>, ptr %771, align 8, !noalias !4997 %strided.vec242.2 = shufflevector <8 x double> %wide.vec241.2, <8 x double> poison, <4 x i32> %strided.vec243.2 = shufflevector <8 x double> %wide.vec241.2, <8 x double> poison, <4 x i32> %wide.vec244.2 = load <8 x double>, ptr %772, align 8, !noalias !4997 %strided.vec245.2 = shufflevector <8 x double> %wide.vec244.2, <8 x double> poison, <4 x i32> %strided.vec246.2 = shufflevector <8 x double> %wide.vec244.2, <8 x double> poison, <4 x i32> %773 = fadd <4 x double> %strided.vec242.2, %strided.vec245.2 %774 = fadd <4 x double> %strided.vec243.2, %strided.vec246.2 %775 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 136 %interleaved.vec247.2 = shufflevector <4 x double> %773, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec247.2, ptr %775, align 8, !noalias !4997 %776 = fsub <4 x double> %strided.vec242.2, %strided.vec245.2 %777 = fsub <4 x double> %strided.vec243.2, %strided.vec246.2 %778 = fmul <4 x double> %777, %broadcast.splat249 %779 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %776, <4 x double> %778) %780 = fmul <4 x double> %broadcast.splat253, %776 %781 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %777, <4 x double> %780) %782 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 168 %interleaved.vec254.2 = shufflevector <4 x double> %779, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec254.2, ptr %782, align 8, !noalias !4997 %783 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %784 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 204 %wide.vec241.3 = load <8 x double>, ptr %783, align 8, !noalias !4997 %strided.vec242.3 = shufflevector <8 x double> %wide.vec241.3, <8 x double> poison, <4 x i32> %strided.vec243.3 = shufflevector <8 x double> %wide.vec241.3, <8 x double> poison, <4 x i32> %wide.vec244.3 = load <8 x double>, ptr %784, align 8, !noalias !4997 %strided.vec245.3 = shufflevector <8 x double> %wide.vec244.3, <8 x double> poison, <4 x i32> %strided.vec246.3 = shufflevector <8 x double> %wide.vec244.3, <8 x double> poison, <4 x i32> %785 = fadd <4 x double> %strided.vec242.3, %strided.vec245.3 %786 = fadd <4 x double> %strided.vec243.3, %strided.vec246.3 %787 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 140 %interleaved.vec247.3 = shufflevector <4 x double> %785, <4 x double> %786, <8 x i32> store <8 x double> %interleaved.vec247.3, ptr %787, align 8, !noalias !4997 %788 = fsub <4 x double> %strided.vec242.3, %strided.vec245.3 %789 = fsub <4 x double> %strided.vec243.3, %strided.vec246.3 %790 = fmul <4 x double> %789, %broadcast.splat249 %791 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %788, <4 x double> %790) %792 = fmul <4 x double> %broadcast.splat253, %788 %793 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %789, <4 x double> %792) %794 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 172 %interleaved.vec254.3 = shufflevector <4 x double> %791, <4 x double> %793, <8 x i32> store <8 x double> %interleaved.vec254.3, ptr %794, align 8, !noalias !4997 %795 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %796 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %wide.vec241.4 = load <8 x double>, ptr %795, align 8, !noalias !4997 %strided.vec242.4 = shufflevector <8 x double> %wide.vec241.4, <8 x double> poison, <4 x i32> %strided.vec243.4 = shufflevector <8 x double> %wide.vec241.4, <8 x double> poison, <4 x i32> %wide.vec244.4 = load <8 x double>, ptr %796, align 8, !noalias !4997 %strided.vec245.4 = shufflevector <8 x double> %wide.vec244.4, <8 x double> poison, <4 x i32> %strided.vec246.4 = shufflevector <8 x double> %wide.vec244.4, <8 x double> poison, <4 x i32> %797 = fadd <4 x double> %strided.vec242.4, %strided.vec245.4 %798 = fadd <4 x double> %strided.vec243.4, %strided.vec246.4 %799 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %interleaved.vec247.4 = shufflevector <4 x double> %797, <4 x double> %798, <8 x i32> store <8 x double> %interleaved.vec247.4, ptr %799, align 8, !noalias !4997 %800 = fsub <4 x double> %strided.vec242.4, %strided.vec245.4 %801 = fsub <4 x double> %strided.vec243.4, %strided.vec246.4 %802 = fmul <4 x double> %801, %broadcast.splat249 %803 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %800, <4 x double> %802) %804 = fmul <4 x double> %broadcast.splat253, %800 %805 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %801, <4 x double> %804) %806 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %interleaved.vec254.4 = shufflevector <4 x double> %803, <4 x double> %805, <8 x i32> store <8 x double> %interleaved.vec254.4, ptr %806, align 8, !noalias !4997 %807 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %808 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 212 %wide.vec241.5 = load <8 x double>, ptr %807, align 8, !noalias !4997 %strided.vec242.5 = shufflevector <8 x double> %wide.vec241.5, <8 x double> poison, <4 x i32> %strided.vec243.5 = shufflevector <8 x double> %wide.vec241.5, <8 x double> poison, <4 x i32> %wide.vec244.5 = load <8 x double>, ptr %808, align 8, !noalias !4997 %strided.vec245.5 = shufflevector <8 x double> %wide.vec244.5, <8 x double> poison, <4 x i32> %strided.vec246.5 = shufflevector <8 x double> %wide.vec244.5, <8 x double> poison, <4 x i32> %809 = fadd <4 x double> %strided.vec242.5, %strided.vec245.5 %810 = fadd <4 x double> %strided.vec243.5, %strided.vec246.5 %811 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 148 %interleaved.vec247.5 = shufflevector <4 x double> %809, <4 x double> %810, <8 x i32> store <8 x double> %interleaved.vec247.5, ptr %811, align 8, !noalias !4997 %812 = fsub <4 x double> %strided.vec242.5, %strided.vec245.5 %813 = fsub <4 x double> %strided.vec243.5, %strided.vec246.5 %814 = fmul <4 x double> %813, %broadcast.splat249 %815 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %812, <4 x double> %814) %816 = fmul <4 x double> %broadcast.splat253, %812 %817 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %813, <4 x double> %816) %818 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 180 %interleaved.vec254.5 = shufflevector <4 x double> %815, <4 x double> %817, <8 x i32> store <8 x double> %interleaved.vec254.5, ptr %818, align 8, !noalias !4997 %819 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %820 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 216 %wide.vec241.6 = load <8 x double>, ptr %819, align 8, !noalias !4997 %strided.vec242.6 = shufflevector <8 x double> %wide.vec241.6, <8 x double> poison, <4 x i32> %strided.vec243.6 = shufflevector <8 x double> %wide.vec241.6, <8 x double> poison, <4 x i32> %wide.vec244.6 = load <8 x double>, ptr %820, align 8, !noalias !4997 %strided.vec245.6 = shufflevector <8 x double> %wide.vec244.6, <8 x double> poison, <4 x i32> %strided.vec246.6 = shufflevector <8 x double> %wide.vec244.6, <8 x double> poison, <4 x i32> %821 = fadd <4 x double> %strided.vec242.6, %strided.vec245.6 %822 = fadd <4 x double> %strided.vec243.6, %strided.vec246.6 %823 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 152 %interleaved.vec247.6 = shufflevector <4 x double> %821, <4 x double> %822, <8 x i32> store <8 x double> %interleaved.vec247.6, ptr %823, align 8, !noalias !4997 %824 = fsub <4 x double> %strided.vec242.6, %strided.vec245.6 %825 = fsub <4 x double> %strided.vec243.6, %strided.vec246.6 %826 = fmul <4 x double> %825, %broadcast.splat249 %827 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %824, <4 x double> %826) %828 = fmul <4 x double> %broadcast.splat253, %824 %829 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %825, <4 x double> %828) %830 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 184 %interleaved.vec254.6 = shufflevector <4 x double> %827, <4 x double> %829, <8 x i32> store <8 x double> %interleaved.vec254.6, ptr %830, align 8, !noalias !4997 %831 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %832 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 220 %wide.vec241.7 = load <8 x double>, ptr %831, align 8, !noalias !4997 %strided.vec242.7 = shufflevector <8 x double> %wide.vec241.7, <8 x double> poison, <4 x i32> %strided.vec243.7 = shufflevector <8 x double> %wide.vec241.7, <8 x double> poison, <4 x i32> %wide.vec244.7 = load <8 x double>, ptr %832, align 8, !noalias !4997 %strided.vec245.7 = shufflevector <8 x double> %wide.vec244.7, <8 x double> poison, <4 x i32> %strided.vec246.7 = shufflevector <8 x double> %wide.vec244.7, <8 x double> poison, <4 x i32> %833 = fadd <4 x double> %strided.vec242.7, %strided.vec245.7 %834 = fadd <4 x double> %strided.vec243.7, %strided.vec246.7 %835 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 156 %interleaved.vec247.7 = shufflevector <4 x double> %833, <4 x double> %834, <8 x i32> store <8 x double> %interleaved.vec247.7, ptr %835, align 8, !noalias !4997 %836 = fsub <4 x double> %strided.vec242.7, %strided.vec245.7 %837 = fsub <4 x double> %strided.vec243.7, %strided.vec246.7 %838 = fmul <4 x double> %837, %broadcast.splat249 %839 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %836, <4 x double> %838) %840 = fmul <4 x double> %broadcast.splat253, %836 %841 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat251, <4 x double> %837, <4 x double> %840) %842 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %interleaved.vec254.7 = shufflevector <4 x double> %839, <4 x double> %841, <8 x i32> store <8 x double> %interleaved.vec254.7, ptr %842, align 8, !noalias !4997 %broadcast.splatinsert273 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.6, i64 0 %broadcast.splat274 = shufflevector <4 x double> %broadcast.splatinsert273, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert271 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.6, i64 0 %broadcast.splat272 = shufflevector <4 x double> %broadcast.splatinsert271, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert269 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.6, i64 0 %broadcast.splat270 = shufflevector <4 x double> %broadcast.splatinsert269, <4 x double> poison, <4 x i32> zeroinitializer %843 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %data.i.i.i.i.i.i969.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %data.i5.i.i.i.i.i.i.i965.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %wide.vec262 = load <8 x double>, ptr %data.i.i.i.i.i.i796.3, align 8, !noalias !4997 %strided.vec263 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %strided.vec264 = shufflevector <8 x double> %wide.vec262, <8 x double> poison, <4 x i32> %wide.vec265 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i965.3, align 8, !noalias !4997 %strided.vec266 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %strided.vec267 = shufflevector <8 x double> %wide.vec265, <8 x double> poison, <4 x i32> %844 = fadd <4 x double> %strided.vec263, %strided.vec266 %845 = fadd <4 x double> %strided.vec264, %strided.vec267 %interleaved.vec268 = shufflevector <4 x double> %844, <4 x double> %845, <8 x i32> store <8 x double> %interleaved.vec268, ptr %data.i.i.i.i.i.i969.3, align 8, !noalias !4997 %846 = fsub <4 x double> %strided.vec263, %strided.vec266 %847 = fsub <4 x double> %strided.vec264, %strided.vec267 %848 = fmul <4 x double> %847, %broadcast.splat270 %849 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %846, <4 x double> %848) %850 = fmul <4 x double> %broadcast.splat274, %846 %851 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %847, <4 x double> %850) %interleaved.vec275 = shufflevector <4 x double> %849, <4 x double> %851, <8 x i32> store <8 x double> %interleaved.vec275, ptr %843, align 8, !noalias !4997 %852 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %853 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 228 %wide.vec262.1 = load <8 x double>, ptr %852, align 8, !noalias !4997 %strided.vec263.1 = shufflevector <8 x double> %wide.vec262.1, <8 x double> poison, <4 x i32> %strided.vec264.1 = shufflevector <8 x double> %wide.vec262.1, <8 x double> poison, <4 x i32> %wide.vec265.1 = load <8 x double>, ptr %853, align 8, !noalias !4997 %strided.vec266.1 = shufflevector <8 x double> %wide.vec265.1, <8 x double> poison, <4 x i32> %strided.vec267.1 = shufflevector <8 x double> %wide.vec265.1, <8 x double> poison, <4 x i32> %854 = fadd <4 x double> %strided.vec263.1, %strided.vec266.1 %855 = fadd <4 x double> %strided.vec264.1, %strided.vec267.1 %856 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 196 %interleaved.vec268.1 = shufflevector <4 x double> %854, <4 x double> %855, <8 x i32> store <8 x double> %interleaved.vec268.1, ptr %856, align 8, !noalias !4997 %857 = fsub <4 x double> %strided.vec263.1, %strided.vec266.1 %858 = fsub <4 x double> %strided.vec264.1, %strided.vec267.1 %859 = fmul <4 x double> %858, %broadcast.splat270 %860 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %857, <4 x double> %859) %861 = fmul <4 x double> %broadcast.splat274, %857 %862 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %858, <4 x double> %861) %863 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 228 %interleaved.vec275.1 = shufflevector <4 x double> %860, <4 x double> %862, <8 x i32> store <8 x double> %interleaved.vec275.1, ptr %863, align 8, !noalias !4997 %864 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %865 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 232 %wide.vec262.2 = load <8 x double>, ptr %864, align 8, !noalias !4997 %strided.vec263.2 = shufflevector <8 x double> %wide.vec262.2, <8 x double> poison, <4 x i32> %strided.vec264.2 = shufflevector <8 x double> %wide.vec262.2, <8 x double> poison, <4 x i32> %wide.vec265.2 = load <8 x double>, ptr %865, align 8, !noalias !4997 %strided.vec266.2 = shufflevector <8 x double> %wide.vec265.2, <8 x double> poison, <4 x i32> %strided.vec267.2 = shufflevector <8 x double> %wide.vec265.2, <8 x double> poison, <4 x i32> %866 = fadd <4 x double> %strided.vec263.2, %strided.vec266.2 %867 = fadd <4 x double> %strided.vec264.2, %strided.vec267.2 %868 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 200 %interleaved.vec268.2 = shufflevector <4 x double> %866, <4 x double> %867, <8 x i32> store <8 x double> %interleaved.vec268.2, ptr %868, align 8, !noalias !4997 %869 = fsub <4 x double> %strided.vec263.2, %strided.vec266.2 %870 = fsub <4 x double> %strided.vec264.2, %strided.vec267.2 %871 = fmul <4 x double> %870, %broadcast.splat270 %872 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %869, <4 x double> %871) %873 = fmul <4 x double> %broadcast.splat274, %869 %874 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %870, <4 x double> %873) %875 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 232 %interleaved.vec275.2 = shufflevector <4 x double> %872, <4 x double> %874, <8 x i32> store <8 x double> %interleaved.vec275.2, ptr %875, align 8, !noalias !4997 %876 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %877 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 236 %wide.vec262.3 = load <8 x double>, ptr %876, align 8, !noalias !4997 %strided.vec263.3 = shufflevector <8 x double> %wide.vec262.3, <8 x double> poison, <4 x i32> %strided.vec264.3 = shufflevector <8 x double> %wide.vec262.3, <8 x double> poison, <4 x i32> %wide.vec265.3 = load <8 x double>, ptr %877, align 8, !noalias !4997 %strided.vec266.3 = shufflevector <8 x double> %wide.vec265.3, <8 x double> poison, <4 x i32> %strided.vec267.3 = shufflevector <8 x double> %wide.vec265.3, <8 x double> poison, <4 x i32> %878 = fadd <4 x double> %strided.vec263.3, %strided.vec266.3 %879 = fadd <4 x double> %strided.vec264.3, %strided.vec267.3 %880 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 204 %interleaved.vec268.3 = shufflevector <4 x double> %878, <4 x double> %879, <8 x i32> store <8 x double> %interleaved.vec268.3, ptr %880, align 8, !noalias !4997 %881 = fsub <4 x double> %strided.vec263.3, %strided.vec266.3 %882 = fsub <4 x double> %strided.vec264.3, %strided.vec267.3 %883 = fmul <4 x double> %882, %broadcast.splat270 %884 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %881, <4 x double> %883) %885 = fmul <4 x double> %broadcast.splat274, %881 %886 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %882, <4 x double> %885) %887 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 236 %interleaved.vec275.3 = shufflevector <4 x double> %884, <4 x double> %886, <8 x i32> store <8 x double> %interleaved.vec275.3, ptr %887, align 8, !noalias !4997 %888 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %889 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %wide.vec262.4 = load <8 x double>, ptr %888, align 8, !noalias !4997 %strided.vec263.4 = shufflevector <8 x double> %wide.vec262.4, <8 x double> poison, <4 x i32> %strided.vec264.4 = shufflevector <8 x double> %wide.vec262.4, <8 x double> poison, <4 x i32> %wide.vec265.4 = load <8 x double>, ptr %889, align 8, !noalias !4997 %strided.vec266.4 = shufflevector <8 x double> %wide.vec265.4, <8 x double> poison, <4 x i32> %strided.vec267.4 = shufflevector <8 x double> %wide.vec265.4, <8 x double> poison, <4 x i32> %890 = fadd <4 x double> %strided.vec263.4, %strided.vec266.4 %891 = fadd <4 x double> %strided.vec264.4, %strided.vec267.4 %892 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %interleaved.vec268.4 = shufflevector <4 x double> %890, <4 x double> %891, <8 x i32> store <8 x double> %interleaved.vec268.4, ptr %892, align 8, !noalias !4997 %893 = fsub <4 x double> %strided.vec263.4, %strided.vec266.4 %894 = fsub <4 x double> %strided.vec264.4, %strided.vec267.4 %895 = fmul <4 x double> %894, %broadcast.splat270 %896 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %893, <4 x double> %895) %897 = fmul <4 x double> %broadcast.splat274, %893 %898 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %894, <4 x double> %897) %899 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 %interleaved.vec275.4 = shufflevector <4 x double> %896, <4 x double> %898, <8 x i32> store <8 x double> %interleaved.vec275.4, ptr %899, align 8, !noalias !4997 %900 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %901 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %wide.vec262.5 = load <8 x double>, ptr %900, align 8, !noalias !4997 %strided.vec263.5 = shufflevector <8 x double> %wide.vec262.5, <8 x double> poison, <4 x i32> %strided.vec264.5 = shufflevector <8 x double> %wide.vec262.5, <8 x double> poison, <4 x i32> %wide.vec265.5 = load <8 x double>, ptr %901, align 8, !noalias !4997 %strided.vec266.5 = shufflevector <8 x double> %wide.vec265.5, <8 x double> poison, <4 x i32> %strided.vec267.5 = shufflevector <8 x double> %wide.vec265.5, <8 x double> poison, <4 x i32> %902 = fadd <4 x double> %strided.vec263.5, %strided.vec266.5 %903 = fadd <4 x double> %strided.vec264.5, %strided.vec267.5 %904 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 212 %interleaved.vec268.5 = shufflevector <4 x double> %902, <4 x double> %903, <8 x i32> store <8 x double> %interleaved.vec268.5, ptr %904, align 8, !noalias !4997 %905 = fsub <4 x double> %strided.vec263.5, %strided.vec266.5 %906 = fsub <4 x double> %strided.vec264.5, %strided.vec267.5 %907 = fmul <4 x double> %906, %broadcast.splat270 %908 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %905, <4 x double> %907) %909 = fmul <4 x double> %broadcast.splat274, %905 %910 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %906, <4 x double> %909) %911 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 244 %interleaved.vec275.5 = shufflevector <4 x double> %908, <4 x double> %910, <8 x i32> store <8 x double> %interleaved.vec275.5, ptr %911, align 8, !noalias !4997 %912 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %913 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %wide.vec262.6 = load <8 x double>, ptr %912, align 8, !noalias !4997 %strided.vec263.6 = shufflevector <8 x double> %wide.vec262.6, <8 x double> poison, <4 x i32> %strided.vec264.6 = shufflevector <8 x double> %wide.vec262.6, <8 x double> poison, <4 x i32> %wide.vec265.6 = load <8 x double>, ptr %913, align 8, !noalias !4997 %strided.vec266.6 = shufflevector <8 x double> %wide.vec265.6, <8 x double> poison, <4 x i32> %strided.vec267.6 = shufflevector <8 x double> %wide.vec265.6, <8 x double> poison, <4 x i32> %914 = fadd <4 x double> %strided.vec263.6, %strided.vec266.6 %915 = fadd <4 x double> %strided.vec264.6, %strided.vec267.6 %916 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 216 %interleaved.vec268.6 = shufflevector <4 x double> %914, <4 x double> %915, <8 x i32> store <8 x double> %interleaved.vec268.6, ptr %916, align 8, !noalias !4997 %917 = fsub <4 x double> %strided.vec263.6, %strided.vec266.6 %918 = fsub <4 x double> %strided.vec264.6, %strided.vec267.6 %919 = fmul <4 x double> %918, %broadcast.splat270 %920 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %917, <4 x double> %919) %921 = fmul <4 x double> %broadcast.splat274, %917 %922 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %918, <4 x double> %921) %923 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 248 %interleaved.vec275.6 = shufflevector <4 x double> %920, <4 x double> %922, <8 x i32> store <8 x double> %interleaved.vec275.6, ptr %923, align 8, !noalias !4997 %924 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %925 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %wide.vec262.7 = load <8 x double>, ptr %924, align 8, !noalias !4997 %strided.vec263.7 = shufflevector <8 x double> %wide.vec262.7, <8 x double> poison, <4 x i32> %strided.vec264.7 = shufflevector <8 x double> %wide.vec262.7, <8 x double> poison, <4 x i32> %wide.vec265.7 = load <8 x double>, ptr %925, align 8, !noalias !4997 %strided.vec266.7 = shufflevector <8 x double> %wide.vec265.7, <8 x double> poison, <4 x i32> %strided.vec267.7 = shufflevector <8 x double> %wide.vec265.7, <8 x double> poison, <4 x i32> %926 = fadd <4 x double> %strided.vec263.7, %strided.vec266.7 %927 = fadd <4 x double> %strided.vec264.7, %strided.vec267.7 %928 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 220 %interleaved.vec268.7 = shufflevector <4 x double> %926, <4 x double> %927, <8 x i32> store <8 x double> %interleaved.vec268.7, ptr %928, align 8, !noalias !4997 %929 = fsub <4 x double> %strided.vec263.7, %strided.vec266.7 %930 = fsub <4 x double> %strided.vec264.7, %strided.vec267.7 %931 = fmul <4 x double> %930, %broadcast.splat270 %932 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %929, <4 x double> %931) %933 = fmul <4 x double> %broadcast.splat274, %929 %934 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat272, <4 x double> %930, <4 x double> %933) %935 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %interleaved.vec275.7 = shufflevector <4 x double> %932, <4 x double> %934, <8 x i32> store <8 x double> %interleaved.vec275.7, ptr %935, align 8, !noalias !4997 %broadcast.splatinsert290 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat291 = shufflevector <4 x double> %broadcast.splatinsert290, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert292 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat293 = shufflevector <4 x double> %broadcast.splatinsert292, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert294 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat295 = shufflevector <4 x double> %broadcast.splatinsert294, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body281 bb19.i.i106.i: ; preds = %bb19.i.i39.i, %bb19.i.i106.i %iter.i.i76.i.sroa.38.0149 = phi i64 [ %972, %bb19.i.i106.i ], [ 0, %bb19.i.i39.i ] %start1.i.i.i.i.i.i.i.i613 = shl nuw nsw i64 %iter.i.i76.i.sroa.38.0149, 3 %data.i.i.i.i.i.i.i.i614 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i613 %data.i5.i.i.i.i.i.i.i619 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i613 %start1.i.i.i.i.i.i622 = shl nuw nsw i64 %iter.i.i76.i.sroa.38.0149, 4 %data.i.i.i.i.i.i623 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i622 %936 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i613, i64 1 %w1.0.i.i108.i = load double, ptr %936, align 8, !noalias !5000, !noundef !3 %937 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i613, i64 1, i32 1 %w1.1.i.i109.i = load double, ptr %937, align 8, !noalias !5000, !noundef !3 %938 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 8 %_6.i.i.i129.i = fneg double %w1.1.i.i109.i %939 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i614, align 8, !noalias !5000 %940 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i619, align 8, !noalias !5000 %941 = fadd <4 x double> %939, %940 store <4 x double> %941, ptr %data.i.i.i.i.i.i623, align 8, !noalias !5000 %942 = fsub <4 x double> %939, %940 %943 = shufflevector <4 x double> %942, <4 x double> poison, <4 x i32> %944 = insertelement <4 x double> poison, double %_6.i.i.i129.i, i64 0 %945 = insertelement <4 x double> %944, double %w1.1.i.i109.i, i64 1 %946 = shufflevector <4 x double> %945, <4 x double> poison, <4 x i32> %947 = fmul <4 x double> %943, %946 %948 = insertelement <4 x double> poison, double %w1.0.i.i108.i, i64 0 %949 = shufflevector <4 x double> %948, <4 x double> poison, <4 x i32> zeroinitializer %950 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %949, <4 x double> %942, <4 x double> %947) store <4 x double> %950, ptr %938, align 8, !noalias !5000 %_3.i.i.i.i.i.i.i.i672.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i614, i64 2 %_3.i2.i.i.i.i.i.i.i675.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i619, i64 2 %_3.i.i.i.i.i.i678.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 2 %_3.i.i.i.i681.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 10 %951 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i672.2, align 8, !noalias !5000 %952 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i675.2, align 8, !noalias !5000 %953 = fadd <4 x double> %951, %952 store <4 x double> %953, ptr %_3.i.i.i.i.i.i678.2, align 8, !noalias !5000 %954 = fsub <4 x double> %951, %952 %955 = shufflevector <4 x double> %954, <4 x double> poison, <4 x i32> %956 = fmul <4 x double> %955, %946 %957 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %949, <4 x double> %954, <4 x double> %956) store <4 x double> %957, ptr %_3.i.i.i.i681.2, align 8, !noalias !5000 %_3.i.i.i.i.i.i.i.i672.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i614, i64 4 %_3.i2.i.i.i.i.i.i.i675.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i619, i64 4 %_3.i.i.i.i.i.i678.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 4 %_3.i.i.i.i681.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 12 %958 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i672.4, align 8, !noalias !5000 %959 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i675.4, align 8, !noalias !5000 %960 = fadd <4 x double> %958, %959 store <4 x double> %960, ptr %_3.i.i.i.i.i.i678.4, align 8, !noalias !5000 %961 = fsub <4 x double> %958, %959 %962 = shufflevector <4 x double> %961, <4 x double> poison, <4 x i32> %963 = fmul <4 x double> %962, %946 %964 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %949, <4 x double> %961, <4 x double> %963) store <4 x double> %964, ptr %_3.i.i.i.i681.4, align 8, !noalias !5000 %_3.i.i.i.i.i.i.i.i672.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i614, i64 6 %_3.i2.i.i.i.i.i.i.i675.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i619, i64 6 %_3.i.i.i.i.i.i678.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 6 %_3.i.i.i.i681.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i623, i64 14 %965 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i672.6, align 8, !noalias !5000 %966 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i675.6, align 8, !noalias !5000 %967 = fadd <4 x double> %965, %966 store <4 x double> %967, ptr %_3.i.i.i.i.i.i678.6, align 8, !noalias !5000 %968 = fsub <4 x double> %965, %966 %969 = shufflevector <4 x double> %968, <4 x double> poison, <4 x i32> %970 = fmul <4 x double> %969, %946 %971 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %949, <4 x double> %968, <4 x double> %970) store <4 x double> %971, ptr %_3.i.i.i.i681.6, align 8, !noalias !5000 %972 = add nuw nsw i64 %iter.i.i76.i.sroa.38.0149, 1 %exitcond162.not = icmp eq i64 %972, 16 br i1 %exitcond162.not, label %bb19.i.i.i.i.preheader, label %bb19.i.i106.i vector.body281: ; preds = %vector.body281, %bb19.i.i.i.i.preheader %index282 = phi i64 [ 0, %bb19.i.i.i.i.preheader ], [ %index.next297, %vector.body281 ] %973 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index282 %974 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index282 %wide.vec283 = load <8 x double>, ptr %973, align 8, !noalias !4978 %strided.vec284 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %strided.vec285 = shufflevector <8 x double> %wide.vec283, <8 x double> poison, <4 x i32> %wide.vec286 = load <8 x double>, ptr %974, align 8, !noalias !4978 %strided.vec287 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %strided.vec288 = shufflevector <8 x double> %wide.vec286, <8 x double> poison, <4 x i32> %975 = fadd <4 x double> %strided.vec284, %strided.vec287 %976 = fadd <4 x double> %strided.vec285, %strided.vec288 %977 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index282 %interleaved.vec289 = shufflevector <4 x double> %975, <4 x double> %976, <8 x i32> store <8 x double> %interleaved.vec289, ptr %977, align 8, !noalias !4978 %978 = fsub <4 x double> %strided.vec284, %strided.vec287 %979 = fsub <4 x double> %strided.vec285, %strided.vec288 %980 = fmul <4 x double> %979, %broadcast.splat291 %981 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat293, <4 x double> %978, <4 x double> %980) %982 = fmul <4 x double> %broadcast.splat295, %978 %983 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat293, <4 x double> %979, <4 x double> %982) %984 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i796.2, i64 %index282 %interleaved.vec296 = shufflevector <4 x double> %981, <4 x double> %983, <8 x i32> store <8 x double> %interleaved.vec296, ptr %984, align 8, !noalias !4978 %index.next297 = add nuw i64 %index282, 4 %985 = icmp eq i64 %index.next297, 64 br i1 %985, label %vector.ph300, label %vector.body281, !llvm.loop !5001 vector.body323: ; preds = %vector.body302, %vector.body323 %index324 = phi i64 [ %index.next333.1, %vector.body323 ], [ 0, %vector.body302 ] %986 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index324 %987 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index324 %wide.vec325 = load <8 x double>, ptr %986, align 8, !noalias !4978 %strided.vec326 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %strided.vec327 = shufflevector <8 x double> %wide.vec325, <8 x double> poison, <4 x i32> %wide.vec328 = load <8 x double>, ptr %987, align 8, !noalias !4978 %strided.vec329 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %strided.vec330 = shufflevector <8 x double> %wide.vec328, <8 x double> poison, <4 x i32> %988 = fadd <4 x double> %strided.vec326, %strided.vec329 %989 = fadd <4 x double> %strided.vec327, %strided.vec330 %990 = fsub <4 x double> %strided.vec326, %strided.vec329 %991 = fsub <4 x double> %strided.vec327, %strided.vec330 %992 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index324 %interleaved.vec331 = shufflevector <4 x double> %988, <4 x double> %989, <8 x i32> store <8 x double> %interleaved.vec331, ptr %992, align 8, !noalias !4978 %993 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index324 %interleaved.vec332 = shufflevector <4 x double> %990, <4 x double> %991, <8 x i32> store <8 x double> %interleaved.vec332, ptr %993, align 8, !noalias !4978 %index.next333 = or disjoint i64 %index324, 4 %994 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next333 %995 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index.next333 %wide.vec325.1 = load <8 x double>, ptr %994, align 8, !noalias !4978 %strided.vec326.1 = shufflevector <8 x double> %wide.vec325.1, <8 x double> poison, <4 x i32> %strided.vec327.1 = shufflevector <8 x double> %wide.vec325.1, <8 x double> poison, <4 x i32> %wide.vec328.1 = load <8 x double>, ptr %995, align 8, !noalias !4978 %strided.vec329.1 = shufflevector <8 x double> %wide.vec328.1, <8 x double> poison, <4 x i32> %strided.vec330.1 = shufflevector <8 x double> %wide.vec328.1, <8 x double> poison, <4 x i32> %996 = fadd <4 x double> %strided.vec326.1, %strided.vec329.1 %997 = fadd <4 x double> %strided.vec327.1, %strided.vec330.1 %998 = fsub <4 x double> %strided.vec326.1, %strided.vec329.1 %999 = fsub <4 x double> %strided.vec327.1, %strided.vec330.1 %1000 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next333 %interleaved.vec331.1 = shufflevector <4 x double> %996, <4 x double> %997, <8 x i32> store <8 x double> %interleaved.vec331.1, ptr %1000, align 8, !noalias !4978 %1001 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next333 %interleaved.vec332.1 = shufflevector <4 x double> %998, <4 x double> %999, <8 x i32> store <8 x double> %interleaved.vec332.1, ptr %1001, align 8, !noalias !4978 %index.next333.1 = add nuw nsw i64 %index324, 8 %1002 = icmp eq i64 %index.next333.1, 128 br i1 %1002, label %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit", label %vector.body323, !llvm.loop !5002 vector.ph300: ; preds = %vector.body281 %broadcast.splatinsert311 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.4, i64 0 %broadcast.splat312 = shufflevector <4 x double> %broadcast.splatinsert311, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert313 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.4, i64 0 %broadcast.splat314 = shufflevector <4 x double> %broadcast.splatinsert313, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert315 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.4, i64 0 %broadcast.splat316 = shufflevector <4 x double> %broadcast.splatinsert315, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body302 vector.body302: ; preds = %vector.body302, %vector.ph300 %index303 = phi i64 [ 0, %vector.ph300 ], [ %index.next318, %vector.body302 ] %1003 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i787.4, i64 %index303 %1004 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i792.4, i64 %index303 %wide.vec304 = load <8 x double>, ptr %1003, align 8, !noalias !4978 %strided.vec305 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %strided.vec306 = shufflevector <8 x double> %wide.vec304, <8 x double> poison, <4 x i32> %wide.vec307 = load <8 x double>, ptr %1004, align 8, !noalias !4978 %strided.vec308 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %strided.vec309 = shufflevector <8 x double> %wide.vec307, <8 x double> poison, <4 x i32> %1005 = fadd <4 x double> %strided.vec305, %strided.vec308 %1006 = fadd <4 x double> %strided.vec306, %strided.vec309 %1007 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %index303 %interleaved.vec310 = shufflevector <4 x double> %1005, <4 x double> %1006, <8 x i32> store <8 x double> %interleaved.vec310, ptr %1007, align 8, !noalias !4978 %1008 = fsub <4 x double> %strided.vec305, %strided.vec308 %1009 = fsub <4 x double> %strided.vec306, %strided.vec309 %1010 = fmul <4 x double> %1009, %broadcast.splat312 %1011 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat314, <4 x double> %1008, <4 x double> %1010) %1012 = fmul <4 x double> %broadcast.splat316, %1008 %1013 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat314, <4 x double> %1009, <4 x double> %1012) %1014 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i965.2, i64 %index303 %interleaved.vec317 = shufflevector <4 x double> %1011, <4 x double> %1013, <8 x i32> store <8 x double> %interleaved.vec317, ptr %1014, align 8, !noalias !4978 %index.next318 = add nuw i64 %index303, 4 %1015 = icmp eq i64 %index.next318, 64 br i1 %1015, label %vector.body323, label %vector.body302, !llvm.loop !5003 "_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit": ; preds = %vector.body323 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !4978 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hb9ee9f6d63d61f1fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc28b2b338276ff85E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hba779a8c7daf0247E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5004 store i64 128, ptr %n.i.i, align 8, !noalias !5004 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5004 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5004 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5004 store ptr null, ptr %_16.i.i, align 8, !noalias !5004 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5004 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5004 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5004 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5004 store ptr null, ptr %_24.i.i, align 8, !noalias !5004 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5004 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5004 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5004 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5004 store ptr null, ptr %_32.i.i, align 8, !noalias !5004 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5004 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5004 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5004 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3bbe3c00d9254eE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5004 store ptr null, ptr %_40.i.i, align 8, !noalias !5004 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3bbe3c00d9254eE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5004 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3bbe3c00d9254eE.exit.i" %iter14.i.i.i.sroa.106.0523.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3bbe3c00d9254eE.exit.i" ], [ %16, %bb38.i.i.i.i ] %16 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0523.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter14.i.i.i.sroa.106.0523.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter14.i.i.i.sroa.106.0523.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !5009 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !5009 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !5009 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !5009 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !5009 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !5009 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !5009 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !5009 %17 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %18 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %19 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %20 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = xor <4 x i64> %21, %23 = bitcast <4 x i64> %22 to <4 x double> %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %26 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %27 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %28 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %29 = bitcast <4 x double> %28 to <4 x i64> %30 = xor <4 x i64> %29, %31 = bitcast <4 x i64> %30 to <4 x double> %32 = shufflevector <4 x double> %31, <4 x double> poison, <4 x i32> %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %24 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %24 %37 = fadd <4 x double> %25, %27 %38 = fsub <4 x double> %26, %32 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %38, %42 %44 = fmul <4 x double> %43, %45 = fsub <4 x double> %25, %27 %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %26, %32 %51 = bitcast <4 x double> %50 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %50, %54 %56 = fmul <4 x double> %55, %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %44 %59 = fsub <4 x double> %35, %49 %60 = fsub <4 x double> %36, %56 %61 = fsub <4 x double> %33, %37 %62 = fsub <4 x double> %34, %44 %63 = fadd <4 x double> %35, %49 %64 = fadd <4 x double> %36, %56 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %62, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 store <4 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5009 %exitcond.not.i = icmp eq i64 %16, 8 br i1 %exitcond.not.i, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i", label %bb38.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i": ; preds = %bb38.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5013) tail call void @llvm.experimental.noalias.scope.decl(metadata !5016) tail call void @llvm.experimental.noalias.scope.decl(metadata !5018) %65 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %66 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 36 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 44 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 52 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 60 %73 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %74 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %75 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %76 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %77 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %78 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %79 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %80 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %81 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %82 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %83 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 36 %84 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 44 %85 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %86 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 52 %87 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 60 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i" %iter.sroa.218.05279.i.i = phi i64 [ %88, %bb39.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE.exit.i" ] %88 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %65, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %66, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %76, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %75, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %77, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %74, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %79, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %78, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %80, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %73, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %83, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %82, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %84, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %81, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %86, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %85, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %87, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5018, !noalias !5020 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5016, !noalias !5021 %89 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %89, align 8, !alias.scope !5016, !noalias !5021 %90 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %90, align 8, !alias.scope !5016, !noalias !5021 %91 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %91, align 8, !alias.scope !5016, !noalias !5021 %92 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %92, align 8, !alias.scope !5016, !noalias !5021 %93 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %93, align 8, !alias.scope !5016, !noalias !5021 %94 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %94, align 8, !alias.scope !5016, !noalias !5021 %95 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %95, align 8, !alias.scope !5016, !noalias !5021 %96 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %96, align 8, !alias.scope !5016, !noalias !5021 %97 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %97, align 8, !alias.scope !5016, !noalias !5021 %98 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %98, align 8, !alias.scope !5016, !noalias !5021 %99 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %99, align 8, !alias.scope !5016, !noalias !5021 %100 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %100, align 8, !alias.scope !5016, !noalias !5021 %101 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %101, align 8, !alias.scope !5016, !noalias !5021 %102 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %102, align 8, !alias.scope !5016, !noalias !5021 %103 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %103, align 8, !alias.scope !5016, !noalias !5021 %104 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %105 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %106 = shufflevector <4 x double> %105, <4 x double> poison, <4 x i32> %107 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %108 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %108, %106 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %105, <4 x double> %109) #23 %111 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %112 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> %113 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %114 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %115 = fmul <4 x double> %114, %112 %116 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %111, <4 x double> %115) #23 %117 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %120 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %120, %118 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %117, <4 x double> %121) #23 %123 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %124 = shufflevector <4 x double> %123, <4 x double> poison, <4 x i32> %125 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %126 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %126, %124 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %125, <4 x double> %123, <4 x double> %127) #23 %129 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %132 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %132, %130 %134 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %131, <4 x double> %129, <4 x double> %133) #23 %135 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %138 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %138, %136 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %135, <4 x double> %139) #23 %141 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %144 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %144, %142 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %143, <4 x double> %141, <4 x double> %145) #23 %147 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %150 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %150, %148 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %149, <4 x double> %147, <4 x double> %151) #23 %153 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %154 = shufflevector <4 x double> %153, <4 x double> poison, <4 x i32> %155 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %156 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %157 = fmul <4 x double> %156, %154 %158 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %153, <4 x double> %157) #23 %159 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %162 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %162, %160 %164 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %159, <4 x double> %163) #23 %165 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %168 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %169 = fmul <4 x double> %168, %166 %170 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %167, <4 x double> %165, <4 x double> %169) #23 %171 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %172 = shufflevector <4 x double> %171, <4 x double> poison, <4 x i32> %173 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %174 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %174, %172 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %173, <4 x double> %171, <4 x double> %175) #23 %177 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %180 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %180, %178 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %179, <4 x double> %177, <4 x double> %181) #23 %183 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %184 = shufflevector <4 x double> %183, <4 x double> poison, <4 x i32> %185 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %186 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %184 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %185, <4 x double> %183, <4 x double> %187) #23 %189 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %192 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %193 = fmul <4 x double> %192, %190 %194 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %191, <4 x double> %189, <4 x double> %193) #23 %195 = fadd <4 x double> %104, %152 %196 = fsub <4 x double> %104, %152 %197 = fadd <4 x double> %128, %176 %198 = fsub <4 x double> %128, %176 %199 = fadd <4 x double> %116, %164 %200 = fsub <4 x double> %116, %164 %201 = fadd <4 x double> %140, %188 %202 = fsub <4 x double> %140, %188 %203 = fadd <4 x double> %110, %158 %204 = fsub <4 x double> %110, %158 %205 = fadd <4 x double> %134, %182 %206 = fsub <4 x double> %134, %182 %207 = fadd <4 x double> %122, %170 %208 = fsub <4 x double> %122, %170 %209 = fadd <4 x double> %146, %194 %210 = fsub <4 x double> %146, %194 %211 = bitcast <4 x double> %198 to <4 x i64> %212 = bitcast <4 x double> %202 to <4 x i64> %213 = bitcast <4 x double> %206 to <4 x i64> %214 = bitcast <4 x double> %210 to <4 x i64> %215 = xor <4 x i64> %211, %216 = bitcast <4 x i64> %215 to <4 x double> %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = xor <4 x i64> %212, %219 = bitcast <4 x i64> %218 to <4 x double> %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = xor <4 x i64> %213, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = xor <4 x i64> %214, %225 = bitcast <4 x i64> %224 to <4 x double> %226 = shufflevector <4 x double> %225, <4 x double> poison, <4 x i32> %227 = fadd <4 x double> %195, %197 %228 = fsub <4 x double> %196, %217 %229 = fsub <4 x double> %195, %197 %230 = fadd <4 x double> %196, %217 %231 = fadd <4 x double> %199, %201 %232 = fsub <4 x double> %200, %220 %233 = fsub <4 x double> %199, %201 %234 = fadd <4 x double> %200, %220 %235 = fadd <4 x double> %203, %205 %236 = fsub <4 x double> %204, %223 %237 = fsub <4 x double> %203, %205 %238 = fadd <4 x double> %204, %223 %239 = fadd <4 x double> %207, %209 %240 = fsub <4 x double> %208, %226 %241 = fsub <4 x double> %207, %209 %242 = fadd <4 x double> %208, %226 %243 = bitcast <4 x double> %232 to <4 x i64> %244 = xor <4 x i64> %243, %245 = bitcast <4 x i64> %244 to <4 x double> %246 = shufflevector <4 x double> %245, <4 x double> poison, <4 x i32> %247 = fadd <4 x double> %232, %246 %248 = fmul <4 x double> %247, %249 = bitcast <4 x double> %233 to <4 x i64> %250 = xor <4 x i64> %249, %251 = bitcast <4 x i64> %250 to <4 x double> %252 = shufflevector <4 x double> %251, <4 x double> poison, <4 x i32> %253 = bitcast <4 x double> %234 to <4 x i64> %254 = xor <4 x i64> %253, %255 = bitcast <4 x i64> %254 to <4 x double> %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fadd <4 x double> %234, %256 %258 = fmul <4 x double> %257, %259 = fadd <4 x double> %227, %231 %260 = fadd <4 x double> %228, %248 %261 = fsub <4 x double> %229, %252 %262 = fsub <4 x double> %230, %258 %263 = fsub <4 x double> %227, %231 %264 = fsub <4 x double> %228, %248 %265 = fadd <4 x double> %229, %252 %266 = fadd <4 x double> %230, %258 %267 = bitcast <4 x double> %240 to <4 x i64> %268 = xor <4 x i64> %267, %269 = bitcast <4 x i64> %268 to <4 x double> %270 = shufflevector <4 x double> %269, <4 x double> poison, <4 x i32> %271 = fadd <4 x double> %240, %270 %272 = fmul <4 x double> %271, %273 = bitcast <4 x double> %241 to <4 x i64> %274 = xor <4 x i64> %273, %275 = bitcast <4 x i64> %274 to <4 x double> %276 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> %277 = bitcast <4 x double> %242 to <4 x i64> %278 = xor <4 x i64> %277, %279 = bitcast <4 x i64> %278 to <4 x double> %280 = shufflevector <4 x double> %279, <4 x double> poison, <4 x i32> %281 = fadd <4 x double> %242, %280 %282 = fmul <4 x double> %281, %283 = fadd <4 x double> %235, %239 %284 = fadd <4 x double> %236, %272 %285 = fsub <4 x double> %237, %276 %286 = fsub <4 x double> %238, %282 %287 = fsub <4 x double> %235, %239 %288 = fsub <4 x double> %236, %272 %289 = fadd <4 x double> %237, %276 %290 = fadd <4 x double> %238, %282 %291 = fadd <4 x double> %259, %283 store <4 x double> %291, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %292 = fsub <4 x double> %259, %283 store <4 x double> %292, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %293 = fmul <4 x double> %284, %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %284, <4 x double> %294) #23 %296 = fadd <4 x double> %295, %260 store <4 x double> %296, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %297 = fsub <4 x double> %260, %295 store <4 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %298 = bitcast <4 x double> %285 to <4 x i64> %299 = xor <4 x i64> %298, %300 = bitcast <4 x i64> %299 to <4 x double> %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fadd <4 x double> %285, %301 %303 = fmul <4 x double> %302, %304 = fadd <4 x double> %261, %303 store <4 x double> %304, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %305 = fsub <4 x double> %261, %303 store <4 x double> %305, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %306 = fmul <4 x double> %286, %307 = shufflevector <4 x double> %306, <4 x double> poison, <4 x i32> %308 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %286, <4 x double> %307) #23 %309 = bitcast <4 x double> %287 to <4 x i64> %310 = xor <4 x i64> %309, %311 = bitcast <4 x i64> %310 to <4 x double> %312 = shufflevector <4 x double> %311, <4 x double> poison, <4 x i32> %313 = fmul <4 x double> %288, %314 = shufflevector <4 x double> %313, <4 x double> poison, <4 x i32> %315 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %288, <4 x double> %314) #23 %.sink.i228.i = fadd <4 x double> %263, %312 %.sink5280.i.i = fsub <4 x double> %263, %312 %.sink5281.i.i = fsub <4 x double> %262, %308 %.sink5282.i.i = fadd <4 x double> %308, %262 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 store <4 x double> %.sink.i228.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %316 = fsub <4 x double> %264, %315 store <4 x double> %316, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %317 = fadd <4 x double> %315, %264 store <4 x double> %317, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %318 = bitcast <4 x double> %289 to <4 x i64> %319 = xor <4 x i64> %318, %320 = bitcast <4 x i64> %319 to <4 x double> %321 = shufflevector <4 x double> %320, <4 x double> poison, <4 x i32> %322 = fmul <4 x double> %290, %323 = shufflevector <4 x double> %322, <4 x double> poison, <4 x i32> %324 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %290, <4 x double> %323) #23 %.pn5288.in.i.i = fadd <4 x double> %289, %321 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %265, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %265, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %325 = fsub <4 x double> %266, %324 store <4 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %326 = fadd <4 x double> %266, %324 store <4 x double> %326, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5013, !noalias !5022 %exitcond.not.i.i = icmp eq i64 %88, 4 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hfe3cb4a54b3da2eeE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17hfe3cb4a54b3da2eeE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5004 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hbc19dbac4c25a29bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5023 store i64 256, ptr %n.i.i, align 8, !noalias !5023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5023 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5023 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5023 store ptr null, ptr %_16.i.i, align 8, !noalias !5023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5023 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5023 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5023 store ptr null, ptr %_24.i.i, align 8, !noalias !5023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5023 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5023 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5023 store ptr null, ptr %_32.i.i, align 8, !noalias !5023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5023 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5023 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5023 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h870c5c12dfc12b9fE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5023 store ptr null, ptr %_40.i.i, align 8, !noalias !5023 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h870c5c12dfc12b9fE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5023 tail call void @llvm.experimental.noalias.scope.decl(metadata !5028) tail call void @llvm.experimental.noalias.scope.decl(metadata !5031) tail call void @llvm.experimental.noalias.scope.decl(metadata !5033) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 72 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 88 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 104 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 120 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h870c5c12dfc12b9fE.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h870c5c12dfc12b9fE.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5028, !noalias !5035 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5033, !noalias !5036 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5031, !noalias !5037 store <4 x double> %247, ptr %248, align 8, !alias.scope !5031, !noalias !5037 store <4 x double> %249, ptr %250, align 8, !alias.scope !5031, !noalias !5037 store <4 x double> %251, ptr %252, align 8, !alias.scope !5031, !noalias !5037 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !5031, !noalias !5037 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !5031, !noalias !5037 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !5031, !noalias !5037 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !5031, !noalias !5037 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !5031, !noalias !5037 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !5031, !noalias !5037 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !5031, !noalias !5037 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !5031, !noalias !5037 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !5031, !noalias !5037 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !5031, !noalias !5037 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !5031, !noalias !5037 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !5031, !noalias !5037 %exitcond.not.i.i = icmp eq i64 %32, 8 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %287 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %288 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %289 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %290 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %291 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 br label %bb62.i.i.i.i bb62.i.i.i.i: ; preds = %bb62.i.i.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %iter22.i.i.i.sroa.218.01492.i = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ], [ %292, %bb62.i.i.i.i ] %292 = add nuw nsw i64 %iter22.i.i.i.sroa.218.01492.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %287, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %288, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %290, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %289, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %291, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter22.i.i.i.sroa.218.01492.i %_208.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_209.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_210.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_211.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_212.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_213.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_214.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_215.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_216.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_217.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_218.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_219.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_220.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_221.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_222.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %_223.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5023 %293 = fadd <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %294 = fsub <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %295 = fadd <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %296 = fsub <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %297 = fadd <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %298 = fsub <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %299 = fadd <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %300 = fsub <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %301 = fadd <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %302 = fsub <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %303 = fadd <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %304 = fsub <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %305 = fadd <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %306 = fsub <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %307 = fadd <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %308 = fsub <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %309 = bitcast <4 x double> %296 to <4 x i64> %310 = xor <4 x i64> %309, %311 = bitcast <4 x i64> %310 to <4 x double> %312 = shufflevector <4 x double> %311, <4 x double> poison, <4 x i32> %313 = bitcast <4 x double> %300 to <4 x i64> %314 = xor <4 x i64> %313, %315 = bitcast <4 x i64> %314 to <4 x double> %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = bitcast <4 x double> %304 to <4 x i64> %318 = xor <4 x i64> %317, %319 = bitcast <4 x i64> %318 to <4 x double> %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = bitcast <4 x double> %308 to <4 x i64> %322 = xor <4 x i64> %321, %323 = bitcast <4 x i64> %322 to <4 x double> %324 = shufflevector <4 x double> %323, <4 x double> poison, <4 x i32> %325 = fadd <4 x double> %293, %295 %326 = fsub <4 x double> %294, %312 %327 = fsub <4 x double> %293, %295 %328 = fadd <4 x double> %294, %312 %329 = fadd <4 x double> %297, %299 %330 = fsub <4 x double> %298, %316 %331 = fsub <4 x double> %297, %299 %332 = fadd <4 x double> %298, %316 %333 = fadd <4 x double> %301, %303 %334 = fsub <4 x double> %302, %320 %335 = fsub <4 x double> %301, %303 %336 = fadd <4 x double> %302, %320 %337 = fadd <4 x double> %305, %307 %338 = fsub <4 x double> %306, %324 %339 = fsub <4 x double> %305, %307 %340 = fadd <4 x double> %306, %324 %341 = bitcast <4 x double> %330 to <4 x i64> %342 = xor <4 x i64> %341, %343 = bitcast <4 x i64> %342 to <4 x double> %344 = shufflevector <4 x double> %343, <4 x double> poison, <4 x i32> %345 = fadd <4 x double> %330, %344 %346 = fmul <4 x double> %345, %347 = bitcast <4 x double> %331 to <4 x i64> %348 = xor <4 x i64> %347, %349 = bitcast <4 x i64> %348 to <4 x double> %350 = shufflevector <4 x double> %349, <4 x double> poison, <4 x i32> %351 = bitcast <4 x double> %332 to <4 x i64> %352 = xor <4 x i64> %351, %353 = bitcast <4 x i64> %352 to <4 x double> %354 = shufflevector <4 x double> %353, <4 x double> poison, <4 x i32> %355 = fadd <4 x double> %332, %354 %356 = fmul <4 x double> %355, %357 = fadd <4 x double> %325, %329 %358 = fadd <4 x double> %326, %346 %359 = fsub <4 x double> %327, %350 %360 = fsub <4 x double> %328, %356 %361 = fsub <4 x double> %325, %329 %362 = fsub <4 x double> %326, %346 %363 = fadd <4 x double> %327, %350 %364 = fadd <4 x double> %328, %356 %365 = bitcast <4 x double> %338 to <4 x i64> %366 = xor <4 x i64> %365, %367 = bitcast <4 x i64> %366 to <4 x double> %368 = shufflevector <4 x double> %367, <4 x double> poison, <4 x i32> %369 = fadd <4 x double> %338, %368 %370 = fmul <4 x double> %369, %371 = bitcast <4 x double> %339 to <4 x i64> %372 = xor <4 x i64> %371, %373 = bitcast <4 x i64> %372 to <4 x double> %374 = shufflevector <4 x double> %373, <4 x double> poison, <4 x i32> %375 = bitcast <4 x double> %340 to <4 x i64> %376 = xor <4 x i64> %375, %377 = bitcast <4 x i64> %376 to <4 x double> %378 = shufflevector <4 x double> %377, <4 x double> poison, <4 x i32> %379 = fadd <4 x double> %340, %378 %380 = fmul <4 x double> %379, %381 = fadd <4 x double> %333, %337 %382 = fadd <4 x double> %334, %370 %383 = fsub <4 x double> %335, %374 %384 = fsub <4 x double> %336, %380 %385 = fsub <4 x double> %333, %337 %386 = fsub <4 x double> %334, %370 %387 = fadd <4 x double> %335, %374 %388 = fadd <4 x double> %336, %380 %389 = fmul <4 x double> %382, %390 = shufflevector <4 x double> %389, <4 x double> poison, <4 x i32> %391 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %382, <4 x double> %390) #23 %392 = bitcast <4 x double> %383 to <4 x i64> %393 = xor <4 x i64> %392, %394 = bitcast <4 x i64> %393 to <4 x double> %395 = shufflevector <4 x double> %394, <4 x double> poison, <4 x i32> %396 = fadd <4 x double> %383, %395 %397 = fmul <4 x double> %396, %398 = fmul <4 x double> %384, %399 = shufflevector <4 x double> %398, <4 x double> poison, <4 x i32> %400 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %384, <4 x double> %399) #23 %401 = bitcast <4 x double> %385 to <4 x i64> %402 = xor <4 x i64> %401, %403 = bitcast <4 x i64> %402 to <4 x double> %404 = shufflevector <4 x double> %403, <4 x double> poison, <4 x i32> %405 = fmul <4 x double> %386, %406 = shufflevector <4 x double> %405, <4 x double> poison, <4 x i32> %407 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %386, <4 x double> %406) #23 %408 = bitcast <4 x double> %387 to <4 x i64> %409 = xor <4 x i64> %408, %410 = bitcast <4 x i64> %409 to <4 x double> %411 = shufflevector <4 x double> %410, <4 x double> poison, <4 x i32> %412 = fadd <4 x double> %387, %411 %413 = fmul <4 x double> %412, %414 = fmul <4 x double> %388, %415 = shufflevector <4 x double> %414, <4 x double> poison, <4 x i32> %416 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %388, <4 x double> %415) #23 %417 = fadd <4 x double> %357, %381 %418 = fadd <4 x double> %391, %358 %419 = fadd <4 x double> %359, %397 %420 = fadd <4 x double> %400, %360 %421 = fsub <4 x double> %361, %404 %422 = fsub <4 x double> %362, %407 %423 = fsub <4 x double> %363, %413 %424 = fsub <4 x double> %364, %416 %425 = fsub <4 x double> %357, %381 %426 = fsub <4 x double> %358, %391 %427 = fsub <4 x double> %359, %397 %428 = fsub <4 x double> %360, %400 %429 = fadd <4 x double> %361, %404 %430 = fadd <4 x double> %407, %362 %431 = fadd <4 x double> %363, %413 %432 = fadd <4 x double> %416, %364 store <4 x double> %417, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !noalias !5023 store <4 x double> %418, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !noalias !5023 store <4 x double> %419, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !noalias !5023 store <4 x double> %420, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !noalias !5023 store <4 x double> %421, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !noalias !5023 store <4 x double> %422, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !noalias !5023 store <4 x double> %423, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !noalias !5023 store <4 x double> %424, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !noalias !5023 store <4 x double> %425, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !noalias !5023 store <4 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !noalias !5023 store <4 x double> %427, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !noalias !5023 store <4 x double> %428, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !noalias !5023 store <4 x double> %429, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !noalias !5023 store <4 x double> %430, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !noalias !5023 store <4 x double> %431, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !noalias !5023 store <4 x double> %432, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !noalias !5023 %exitcond.not.i = icmp eq i64 %292, 8 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h00b49cc188c45380E.exit, label %bb62.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h00b49cc188c45380E.exit: ; preds = %bb62.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5023 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hbe00fea886c055adE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5038 store i64 512, ptr %n.i, align 8, !noalias !5038 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5038 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5038 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5038 store ptr null, ptr %_16.i, align 8, !noalias !5038 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5038 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5038 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5038 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5038 store ptr null, ptr %_24.i, align 8, !noalias !5038 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5038 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5038 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5038 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5038 store ptr null, ptr %_32.i, align 8, !noalias !5038 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5038 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5038 store i64 %w.1, ptr %_34.i, align 8, !noalias !5038 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5038 store ptr null, ptr %_40.i, align 8, !noalias !5038 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5038 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit ], [ %vec.ind.next, %vector.body ] %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %15 = shl nuw nsw <4 x i64> %vec.ind, %16 = extractelement <4 x i64> %15, i64 0 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %16 %18 = extractelement <4 x i64> %15, i64 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %18 %20 = extractelement <4 x i64> %15, i64 2 %21 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %20 %22 = extractelement <4 x i64> %15, i64 3 %23 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %22 %24 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %24, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %25 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %25, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %26 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %26, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %27 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %27, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %28, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %29, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %30, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %31, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %32, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %33, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %34, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %36, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %37, i32 8, <4 x i1> , <4 x double> poison), !noalias !5038 %38 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4 %39 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4 %40 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4 %41 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 4 %42 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2 %43 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2 %44 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2 %45 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 2 %46 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1 %47 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1 %49 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 1 %50 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3 %51 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3 %52 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3 %53 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6 %56 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6 %57 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 6 %58 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5 %59 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5 %60 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5 %61 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 5 %62 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7 %63 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7 %64 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7 %65 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 7 %66 = fneg <4 x double> %wide.masked.gather1 %67 = fneg <4 x double> %wide.masked.gather3 %68 = fneg <4 x double> %wide.masked.gather5 %69 = fneg <4 x double> %wide.masked.gather7 %70 = fneg <4 x double> %wide.masked.gather9 %71 = fneg <4 x double> %wide.masked.gather11 %72 = fneg <4 x double> %wide.masked.gather13 %wide.vec = load <8 x double>, ptr %7, align 8, !noalias !5038 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %8, align 8, !noalias !5038 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %wide.vec18 = load <8 x double>, ptr %9, align 8, !noalias !5038 %strided.vec19 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %strided.vec20 = shufflevector <8 x double> %wide.vec18, <8 x double> poison, <4 x i32> %wide.vec21 = load <8 x double>, ptr %10, align 8, !noalias !5038 %strided.vec22 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %strided.vec23 = shufflevector <8 x double> %wide.vec21, <8 x double> poison, <4 x i32> %wide.vec24 = load <8 x double>, ptr %11, align 8, !noalias !5038 %strided.vec25 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %strided.vec26 = shufflevector <8 x double> %wide.vec24, <8 x double> poison, <4 x i32> %wide.vec27 = load <8 x double>, ptr %12, align 8, !noalias !5038 %strided.vec28 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %strided.vec29 = shufflevector <8 x double> %wide.vec27, <8 x double> poison, <4 x i32> %wide.vec30 = load <8 x double>, ptr %13, align 8, !noalias !5038 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %wide.vec33 = load <8 x double>, ptr %14, align 8, !noalias !5038 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %73 = fadd <4 x double> %strided.vec, %strided.vec25 %74 = fadd <4 x double> %strided.vec14, %strided.vec26 %75 = fsub <4 x double> %strided.vec, %strided.vec25 %76 = fsub <4 x double> %strided.vec14, %strided.vec26 %77 = fadd <4 x double> %strided.vec19, %strided.vec31 %78 = fadd <4 x double> %strided.vec20, %strided.vec32 %79 = fsub <4 x double> %strided.vec19, %strided.vec31 %80 = fsub <4 x double> %strided.vec20, %strided.vec32 %81 = fadd <4 x double> %strided.vec16, %strided.vec28 %82 = fadd <4 x double> %strided.vec17, %strided.vec29 %83 = fsub <4 x double> %strided.vec16, %strided.vec28 %84 = fsub <4 x double> %strided.vec17, %strided.vec29 %85 = fadd <4 x double> %strided.vec22, %strided.vec34 %86 = fadd <4 x double> %strided.vec23, %strided.vec35 %87 = fsub <4 x double> %strided.vec22, %strided.vec34 %88 = fsub <4 x double> %strided.vec23, %strided.vec35 %89 = fadd <4 x double> %73, %77 %90 = fadd <4 x double> %74, %78 %91 = fadd <4 x double> %75, %80 %92 = fsub <4 x double> %76, %79 %93 = fsub <4 x double> %73, %77 %94 = fsub <4 x double> %74, %78 %95 = fsub <4 x double> %75, %80 %96 = fadd <4 x double> %76, %79 %97 = fadd <4 x double> %81, %85 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %88 %100 = fsub <4 x double> %84, %87 %101 = fadd <4 x double> %100, %99 %102 = fsub <4 x double> %100, %99 %103 = fmul <4 x double> %101, %104 = fmul <4 x double> %102, %105 = fsub <4 x double> %81, %85 %106 = fsub <4 x double> %82, %86 %107 = fsub <4 x double> %83, %88 %108 = fadd <4 x double> %84, %87 %109 = fsub <4 x double> %107, %108 %110 = fadd <4 x double> %108, %107 %111 = fmul <4 x double> %109, %112 = fmul <4 x double> %110, %113 = fadd <4 x double> %89, %97 %114 = fadd <4 x double> %90, %98 %115 = extractelement <4 x double> %113, i64 0 store double %115, ptr %17, align 8, !noalias !5038 %116 = extractelement <4 x double> %113, i64 1 store double %116, ptr %19, align 8, !noalias !5038 %117 = extractelement <4 x double> %113, i64 2 store double %117, ptr %21, align 8, !noalias !5038 %118 = getelementptr inbounds i8, ptr %17, i64 8 %119 = getelementptr inbounds i8, ptr %19, i64 8 %120 = getelementptr inbounds i8, ptr %21, i64 8 %121 = extractelement <4 x double> %114, i64 0 store double %121, ptr %118, align 8, !noalias !5038 %122 = extractelement <4 x double> %114, i64 1 store double %122, ptr %119, align 8, !noalias !5038 %123 = extractelement <4 x double> %114, i64 2 store double %123, ptr %120, align 8, !noalias !5038 %124 = shufflevector <4 x double> %113, <4 x double> %114, <2 x i32> store <2 x double> %124, ptr %23, align 8, !noalias !5038 %125 = fadd <4 x double> %91, %103 %126 = fadd <4 x double> %92, %104 %127 = fmul <4 x double> %126, %66 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %125, <4 x double> %127) %129 = fmul <4 x double> %wide.masked.gather1, %125 %130 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %126, <4 x double> %129) %131 = extractelement <4 x double> %128, i64 0 store double %131, ptr %46, align 8, !noalias !5038 %132 = extractelement <4 x double> %128, i64 1 store double %132, ptr %47, align 8, !noalias !5038 %133 = extractelement <4 x double> %128, i64 2 store double %133, ptr %48, align 8, !noalias !5038 %134 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 1, i32 1 %135 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 1, i32 1 %136 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 1, i32 1 %137 = extractelement <4 x double> %130, i64 0 store double %137, ptr %134, align 8, !noalias !5038 %138 = extractelement <4 x double> %130, i64 1 store double %138, ptr %135, align 8, !noalias !5038 %139 = extractelement <4 x double> %130, i64 2 store double %139, ptr %136, align 8, !noalias !5038 %140 = shufflevector <4 x double> %128, <4 x double> %130, <2 x i32> store <2 x double> %140, ptr %49, align 8, !noalias !5038 %141 = fadd <4 x double> %93, %106 %142 = fsub <4 x double> %94, %105 %143 = fmul <4 x double> %142, %67 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %141, <4 x double> %143) %145 = fmul <4 x double> %wide.masked.gather3, %141 %146 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %142, <4 x double> %145) %147 = extractelement <4 x double> %144, i64 0 store double %147, ptr %42, align 8, !noalias !5038 %148 = extractelement <4 x double> %144, i64 1 store double %148, ptr %43, align 8, !noalias !5038 %149 = extractelement <4 x double> %144, i64 2 store double %149, ptr %44, align 8, !noalias !5038 %150 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 2, i32 1 %151 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 2, i32 1 %152 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 2, i32 1 %153 = extractelement <4 x double> %146, i64 0 store double %153, ptr %150, align 8, !noalias !5038 %154 = extractelement <4 x double> %146, i64 1 store double %154, ptr %151, align 8, !noalias !5038 %155 = extractelement <4 x double> %146, i64 2 store double %155, ptr %152, align 8, !noalias !5038 %156 = shufflevector <4 x double> %144, <4 x double> %146, <2 x i32> store <2 x double> %156, ptr %45, align 8, !noalias !5038 %157 = fsub <4 x double> %95, %111 %158 = fsub <4 x double> %96, %112 %159 = fmul <4 x double> %158, %68 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %157, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather5, %157 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %158, <4 x double> %161) %163 = extractelement <4 x double> %160, i64 0 store double %163, ptr %50, align 8, !noalias !5038 %164 = extractelement <4 x double> %160, i64 1 store double %164, ptr %51, align 8, !noalias !5038 %165 = extractelement <4 x double> %160, i64 2 store double %165, ptr %52, align 8, !noalias !5038 %166 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 3, i32 1 %167 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 3, i32 1 %168 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 3, i32 1 %169 = extractelement <4 x double> %162, i64 0 store double %169, ptr %166, align 8, !noalias !5038 %170 = extractelement <4 x double> %162, i64 1 store double %170, ptr %167, align 8, !noalias !5038 %171 = extractelement <4 x double> %162, i64 2 store double %171, ptr %168, align 8, !noalias !5038 %172 = shufflevector <4 x double> %160, <4 x double> %162, <2 x i32> store <2 x double> %172, ptr %53, align 8, !noalias !5038 %173 = fsub <4 x double> %89, %97 %174 = fsub <4 x double> %90, %98 %175 = fmul <4 x double> %174, %69 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %173, <4 x double> %175) %177 = fmul <4 x double> %wide.masked.gather7, %173 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %174, <4 x double> %177) %179 = extractelement <4 x double> %176, i64 0 store double %179, ptr %38, align 8, !noalias !5038 %180 = extractelement <4 x double> %176, i64 1 store double %180, ptr %39, align 8, !noalias !5038 %181 = extractelement <4 x double> %176, i64 2 store double %181, ptr %40, align 8, !noalias !5038 %182 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 4, i32 1 %183 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 4, i32 1 %184 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 4, i32 1 %185 = extractelement <4 x double> %178, i64 0 store double %185, ptr %182, align 8, !noalias !5038 %186 = extractelement <4 x double> %178, i64 1 store double %186, ptr %183, align 8, !noalias !5038 %187 = extractelement <4 x double> %178, i64 2 store double %187, ptr %184, align 8, !noalias !5038 %188 = shufflevector <4 x double> %176, <4 x double> %178, <2 x i32> store <2 x double> %188, ptr %41, align 8, !noalias !5038 %189 = fsub <4 x double> %91, %103 %190 = fsub <4 x double> %92, %104 %191 = fmul <4 x double> %190, %70 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %189, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather9, %189 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %190, <4 x double> %193) %195 = extractelement <4 x double> %192, i64 0 store double %195, ptr %58, align 8, !noalias !5038 %196 = extractelement <4 x double> %192, i64 1 store double %196, ptr %59, align 8, !noalias !5038 %197 = extractelement <4 x double> %192, i64 2 store double %197, ptr %60, align 8, !noalias !5038 %198 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 5, i32 1 %199 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 5, i32 1 %200 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 5, i32 1 %201 = extractelement <4 x double> %194, i64 0 store double %201, ptr %198, align 8, !noalias !5038 %202 = extractelement <4 x double> %194, i64 1 store double %202, ptr %199, align 8, !noalias !5038 %203 = extractelement <4 x double> %194, i64 2 store double %203, ptr %200, align 8, !noalias !5038 %204 = shufflevector <4 x double> %192, <4 x double> %194, <2 x i32> store <2 x double> %204, ptr %61, align 8, !noalias !5038 %205 = fsub <4 x double> %93, %106 %206 = fadd <4 x double> %94, %105 %207 = fmul <4 x double> %206, %71 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %205, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather11, %205 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %206, <4 x double> %209) %211 = extractelement <4 x double> %208, i64 0 store double %211, ptr %54, align 8, !noalias !5038 %212 = extractelement <4 x double> %208, i64 1 store double %212, ptr %55, align 8, !noalias !5038 %213 = extractelement <4 x double> %208, i64 2 store double %213, ptr %56, align 8, !noalias !5038 %214 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 6, i32 1 %215 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 6, i32 1 %216 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 6, i32 1 %217 = extractelement <4 x double> %210, i64 0 store double %217, ptr %214, align 8, !noalias !5038 %218 = extractelement <4 x double> %210, i64 1 store double %218, ptr %215, align 8, !noalias !5038 %219 = extractelement <4 x double> %210, i64 2 store double %219, ptr %216, align 8, !noalias !5038 %220 = shufflevector <4 x double> %208, <4 x double> %210, <2 x i32> store <2 x double> %220, ptr %57, align 8, !noalias !5038 %221 = fadd <4 x double> %95, %111 %222 = fadd <4 x double> %96, %112 %223 = fmul <4 x double> %222, %72 %224 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %221, <4 x double> %223) %225 = fmul <4 x double> %wide.masked.gather13, %221 %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %222, <4 x double> %225) %227 = extractelement <4 x double> %224, i64 0 store double %227, ptr %62, align 8, !noalias !5038 %228 = extractelement <4 x double> %224, i64 1 store double %228, ptr %63, align 8, !noalias !5038 %229 = extractelement <4 x double> %224, i64 2 store double %229, ptr %64, align 8, !noalias !5038 %230 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 7, i32 1 %231 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 7, i32 1 %232 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 7, i32 1 %233 = extractelement <4 x double> %226, i64 0 store double %233, ptr %230, align 8, !noalias !5038 %234 = extractelement <4 x double> %226, i64 1 store double %234, ptr %231, align 8, !noalias !5038 %235 = extractelement <4 x double> %226, i64 2 store double %235, ptr %232, align 8, !noalias !5038 %236 = shufflevector <4 x double> %224, <4 x double> %226, <2 x i32> store <2 x double> %236, ptr %65, align 8, !noalias !5038 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %237 = icmp eq i64 %index.next, 64 br i1 %237, label %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, label %vector.body, !llvm.loop !5041 _ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703: ; preds = %vector.body %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %241 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %242 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %243 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %244 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 br label %bb32.i.i.i.i vector.body118: ; preds = %middle.block36, %vector.body118 %index119 = phi i64 [ %index.next152, %vector.body118 ], [ 0, %middle.block36 ] %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index119 %246 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index119 %247 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index119 %248 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index119 %249 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index119 %250 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index119 %251 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index119 %252 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index119 %wide.vec120 = load <8 x double>, ptr %245, align 8, !noalias !5038 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %wide.vec123 = load <8 x double>, ptr %246, align 8, !noalias !5038 %strided.vec124 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %strided.vec125 = shufflevector <8 x double> %wide.vec123, <8 x double> poison, <4 x i32> %wide.vec126 = load <8 x double>, ptr %247, align 8, !noalias !5038 %strided.vec127 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %strided.vec128 = shufflevector <8 x double> %wide.vec126, <8 x double> poison, <4 x i32> %wide.vec129 = load <8 x double>, ptr %248, align 8, !noalias !5038 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %wide.vec132 = load <8 x double>, ptr %249, align 8, !noalias !5038 %strided.vec133 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %strided.vec134 = shufflevector <8 x double> %wide.vec132, <8 x double> poison, <4 x i32> %wide.vec135 = load <8 x double>, ptr %250, align 8, !noalias !5038 %strided.vec136 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %strided.vec137 = shufflevector <8 x double> %wide.vec135, <8 x double> poison, <4 x i32> %wide.vec138 = load <8 x double>, ptr %251, align 8, !noalias !5038 %strided.vec139 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %strided.vec140 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %wide.vec141 = load <8 x double>, ptr %252, align 8, !noalias !5038 %strided.vec142 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %strided.vec143 = shufflevector <8 x double> %wide.vec141, <8 x double> poison, <4 x i32> %253 = fadd <4 x double> %strided.vec121, %strided.vec133 %254 = fadd <4 x double> %strided.vec122, %strided.vec134 %255 = fsub <4 x double> %strided.vec121, %strided.vec133 %256 = fsub <4 x double> %strided.vec122, %strided.vec134 %257 = fadd <4 x double> %strided.vec127, %strided.vec139 %258 = fadd <4 x double> %strided.vec128, %strided.vec140 %259 = fsub <4 x double> %strided.vec127, %strided.vec139 %260 = fsub <4 x double> %strided.vec128, %strided.vec140 %261 = fadd <4 x double> %strided.vec124, %strided.vec136 %262 = fadd <4 x double> %strided.vec125, %strided.vec137 %263 = fsub <4 x double> %strided.vec124, %strided.vec136 %264 = fsub <4 x double> %strided.vec125, %strided.vec137 %265 = fadd <4 x double> %strided.vec130, %strided.vec142 %266 = fadd <4 x double> %strided.vec131, %strided.vec143 %267 = fsub <4 x double> %strided.vec130, %strided.vec142 %268 = fsub <4 x double> %strided.vec131, %strided.vec143 %269 = fadd <4 x double> %253, %257 %270 = fadd <4 x double> %254, %258 %271 = fadd <4 x double> %255, %260 %272 = fsub <4 x double> %256, %259 %273 = fsub <4 x double> %253, %257 %274 = fsub <4 x double> %254, %258 %275 = fsub <4 x double> %255, %260 %276 = fadd <4 x double> %256, %259 %277 = fadd <4 x double> %261, %265 %278 = fadd <4 x double> %262, %266 %279 = fadd <4 x double> %263, %268 %280 = fsub <4 x double> %264, %267 %281 = fadd <4 x double> %280, %279 %282 = fsub <4 x double> %280, %279 %283 = fmul <4 x double> %281, %284 = fmul <4 x double> %282, %285 = fsub <4 x double> %261, %265 %286 = fsub <4 x double> %262, %266 %287 = fsub <4 x double> %263, %268 %288 = fadd <4 x double> %264, %267 %289 = fsub <4 x double> %287, %288 %290 = fadd <4 x double> %288, %287 %291 = fmul <4 x double> %289, %292 = fmul <4 x double> %290, %293 = fadd <4 x double> %269, %277 %294 = fadd <4 x double> %270, %278 %295 = fadd <4 x double> %271, %283 %296 = fadd <4 x double> %272, %284 %297 = fadd <4 x double> %273, %286 %298 = fsub <4 x double> %274, %285 %299 = fsub <4 x double> %275, %291 %300 = fsub <4 x double> %276, %292 %301 = fsub <4 x double> %269, %277 %302 = fsub <4 x double> %270, %278 %303 = fsub <4 x double> %271, %283 %304 = fsub <4 x double> %272, %284 %305 = fsub <4 x double> %273, %286 %306 = fadd <4 x double> %274, %285 %307 = fadd <4 x double> %275, %291 %308 = fadd <4 x double> %276, %292 %interleaved.vec144 = shufflevector <4 x double> %293, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec144, ptr %245, align 8, !noalias !5038 %interleaved.vec145 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec145, ptr %246, align 8, !noalias !5038 %interleaved.vec146 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec146, ptr %247, align 8, !noalias !5038 %interleaved.vec147 = shufflevector <4 x double> %299, <4 x double> %300, <8 x i32> store <8 x double> %interleaved.vec147, ptr %248, align 8, !noalias !5038 %interleaved.vec148 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec148, ptr %249, align 8, !noalias !5038 %interleaved.vec149 = shufflevector <4 x double> %303, <4 x double> %304, <8 x i32> store <8 x double> %interleaved.vec149, ptr %250, align 8, !noalias !5038 %interleaved.vec150 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec150, ptr %251, align 8, !noalias !5038 %interleaved.vec151 = shufflevector <4 x double> %307, <4 x double> %308, <8 x i32> store <8 x double> %interleaved.vec151, ptr %252, align 8, !noalias !5038 %index.next152 = add nuw i64 %index119, 4 %309 = icmp eq i64 %index.next152, 64 br i1 %309, label %"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ea20b81015eea99E.exit", label %vector.body118, !llvm.loop !5042 bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703, %middle.block36 %iter.i.i.i.i.sroa.104.0127 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h4d0a216c9703f46dE.exit703 ], [ %432, %middle.block36 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0127, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734 = getelementptr inbounds %"num_complex::Complex", ptr %240, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739 = getelementptr inbounds %"num_complex::Complex", ptr %239, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744 = getelementptr inbounds %"num_complex::Complex", ptr %241, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749 = getelementptr inbounds %"num_complex::Complex", ptr %238, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i.i.i754 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i.i.i759 = getelementptr inbounds %"num_complex::Complex", ptr %242, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %data.i.i.i.i.i.i.i.i764 = getelementptr inbounds %"num_complex::Complex", ptr %244, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728 %start1.i.i.i.i.i.i767 = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0127, 6 %data.i.i.i.i.i.i768 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i767 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 32 %311 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 16 %312 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 8 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 24 %314 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 48 %315 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 40 %316 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 56 %317 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %317, align 8, !noalias !5038, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %318 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %318, align 8, !noalias !5038, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %319 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %319, align 8, !noalias !5038, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %320 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %320, align 8, !noalias !5038, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %321 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %321, align 8, !noalias !5038, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %322 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %322, align 8, !noalias !5038, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %323 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %323, align 8, !noalias !5038, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %324 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 7 %w7.0.i.i.i.i = load double, ptr %324, align 8, !noalias !5038, !noundef !3 %325 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 6 %w6.0.i.i.i.i = load double, ptr %325, align 8, !noalias !5038, !noundef !3 %326 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 5 %w5.0.i.i.i.i = load double, ptr %326, align 8, !noalias !5038, !noundef !3 %327 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 4 %w4.0.i.i.i.i = load double, ptr %327, align 8, !noalias !5038, !noundef !3 %328 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 3 %w3.0.i.i.i.i = load double, ptr %328, align 8, !noalias !5038, !noundef !3 %329 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 2 %w2.0.i.i.i.i = load double, ptr %329, align 8, !noalias !5038, !noundef !3 %330 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i728, i64 1 %w1.0.i.i.i.i = load double, ptr %330, align 8, !noalias !5038, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert92 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat93 = shufflevector <4 x double> %broadcast.splatinsert92, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body40 vector.body40: ; preds = %vector.body40, %bb32.i.i.i.i %index41 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next113, %vector.body40 ] %331 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i729, i64 %index41 %332 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i734, i64 %index41 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i739, i64 %index41 %334 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i744, i64 %index41 %335 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i749, i64 %index41 %336 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i754, i64 %index41 %337 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i759, i64 %index41 %338 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i764, i64 %index41 %wide.vec42 = load <8 x double>, ptr %331, align 8, !noalias !5038 %strided.vec43 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %strided.vec44 = shufflevector <8 x double> %wide.vec42, <8 x double> poison, <4 x i32> %wide.vec45 = load <8 x double>, ptr %332, align 8, !noalias !5038 %strided.vec46 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %strided.vec47 = shufflevector <8 x double> %wide.vec45, <8 x double> poison, <4 x i32> %wide.vec48 = load <8 x double>, ptr %333, align 8, !noalias !5038 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %wide.vec51 = load <8 x double>, ptr %334, align 8, !noalias !5038 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %335, align 8, !noalias !5038 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %wide.vec57 = load <8 x double>, ptr %336, align 8, !noalias !5038 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %wide.vec60 = load <8 x double>, ptr %337, align 8, !noalias !5038 %strided.vec61 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %strided.vec62 = shufflevector <8 x double> %wide.vec60, <8 x double> poison, <4 x i32> %wide.vec63 = load <8 x double>, ptr %338, align 8, !noalias !5038 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %339 = fadd <4 x double> %strided.vec43, %strided.vec55 %340 = fadd <4 x double> %strided.vec44, %strided.vec56 %341 = fsub <4 x double> %strided.vec43, %strided.vec55 %342 = fsub <4 x double> %strided.vec44, %strided.vec56 %343 = fadd <4 x double> %strided.vec49, %strided.vec61 %344 = fadd <4 x double> %strided.vec50, %strided.vec62 %345 = fsub <4 x double> %strided.vec49, %strided.vec61 %346 = fsub <4 x double> %strided.vec50, %strided.vec62 %347 = fadd <4 x double> %strided.vec46, %strided.vec58 %348 = fadd <4 x double> %strided.vec47, %strided.vec59 %349 = fsub <4 x double> %strided.vec46, %strided.vec58 %350 = fsub <4 x double> %strided.vec47, %strided.vec59 %351 = fadd <4 x double> %strided.vec52, %strided.vec64 %352 = fadd <4 x double> %strided.vec53, %strided.vec65 %353 = fsub <4 x double> %strided.vec52, %strided.vec64 %354 = fsub <4 x double> %strided.vec53, %strided.vec65 %355 = fadd <4 x double> %339, %343 %356 = fadd <4 x double> %340, %344 %357 = fadd <4 x double> %341, %346 %358 = fsub <4 x double> %342, %345 %359 = fsub <4 x double> %339, %343 %360 = fsub <4 x double> %340, %344 %361 = fsub <4 x double> %341, %346 %362 = fadd <4 x double> %342, %345 %363 = fadd <4 x double> %347, %351 %364 = fadd <4 x double> %348, %352 %365 = fadd <4 x double> %349, %354 %366 = fsub <4 x double> %350, %353 %367 = fadd <4 x double> %366, %365 %368 = fsub <4 x double> %366, %365 %369 = fmul <4 x double> %367, %370 = fmul <4 x double> %368, %371 = fsub <4 x double> %347, %351 %372 = fsub <4 x double> %348, %352 %373 = fsub <4 x double> %349, %354 %374 = fadd <4 x double> %350, %353 %375 = fsub <4 x double> %373, %374 %376 = fadd <4 x double> %374, %373 %377 = fmul <4 x double> %375, %378 = fmul <4 x double> %376, %379 = fadd <4 x double> %355, %363 %380 = fadd <4 x double> %356, %364 %381 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i768, i64 %index41 %interleaved.vec = shufflevector <4 x double> %379, <4 x double> %380, <8 x i32> store <8 x double> %interleaved.vec, ptr %381, align 8, !noalias !5038 %382 = fadd <4 x double> %357, %369 %383 = fadd <4 x double> %358, %370 %384 = fmul <4 x double> %383, %broadcast.splat %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %382, <4 x double> %384) %386 = fmul <4 x double> %broadcast.splat69, %382 %387 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat67, <4 x double> %383, <4 x double> %386) %388 = getelementptr inbounds %"num_complex::Complex", ptr %312, i64 %index41 %interleaved.vec70 = shufflevector <4 x double> %385, <4 x double> %387, <8 x i32> store <8 x double> %interleaved.vec70, ptr %388, align 8, !noalias !5038 %389 = fadd <4 x double> %359, %372 %390 = fsub <4 x double> %360, %371 %391 = fmul <4 x double> %390, %broadcast.splat72 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %broadcast.splat76, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat74, <4 x double> %390, <4 x double> %393) %395 = getelementptr inbounds %"num_complex::Complex", ptr %311, i64 %index41 %interleaved.vec77 = shufflevector <4 x double> %392, <4 x double> %394, <8 x i32> store <8 x double> %interleaved.vec77, ptr %395, align 8, !noalias !5038 %396 = fsub <4 x double> %361, %377 %397 = fsub <4 x double> %362, %378 %398 = fmul <4 x double> %397, %broadcast.splat79 %399 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %396, <4 x double> %398) %400 = fmul <4 x double> %broadcast.splat83, %396 %401 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %397, <4 x double> %400) %402 = getelementptr inbounds %"num_complex::Complex", ptr %313, i64 %index41 %interleaved.vec84 = shufflevector <4 x double> %399, <4 x double> %401, <8 x i32> store <8 x double> %interleaved.vec84, ptr %402, align 8, !noalias !5038 %403 = fsub <4 x double> %355, %363 %404 = fsub <4 x double> %356, %364 %405 = fmul <4 x double> %404, %broadcast.splat86 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %broadcast.splat90, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %404, <4 x double> %407) %409 = getelementptr inbounds %"num_complex::Complex", ptr %310, i64 %index41 %interleaved.vec91 = shufflevector <4 x double> %406, <4 x double> %408, <8 x i32> store <8 x double> %interleaved.vec91, ptr %409, align 8, !noalias !5038 %410 = fsub <4 x double> %357, %369 %411 = fsub <4 x double> %358, %370 %412 = fmul <4 x double> %411, %broadcast.splat93 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %410, <4 x double> %412) %414 = fmul <4 x double> %broadcast.splat97, %410 %415 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat95, <4 x double> %411, <4 x double> %414) %416 = getelementptr inbounds %"num_complex::Complex", ptr %315, i64 %index41 %interleaved.vec98 = shufflevector <4 x double> %413, <4 x double> %415, <8 x i32> store <8 x double> %interleaved.vec98, ptr %416, align 8, !noalias !5038 %417 = fsub <4 x double> %359, %372 %418 = fadd <4 x double> %360, %371 %419 = fmul <4 x double> %418, %broadcast.splat100 %420 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %417, <4 x double> %419) %421 = fmul <4 x double> %broadcast.splat104, %417 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat102, <4 x double> %418, <4 x double> %421) %423 = getelementptr inbounds %"num_complex::Complex", ptr %314, i64 %index41 %interleaved.vec105 = shufflevector <4 x double> %420, <4 x double> %422, <8 x i32> store <8 x double> %interleaved.vec105, ptr %423, align 8, !noalias !5038 %424 = fadd <4 x double> %361, %377 %425 = fadd <4 x double> %362, %378 %426 = fmul <4 x double> %425, %broadcast.splat107 %427 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %424, <4 x double> %426) %428 = fmul <4 x double> %broadcast.splat111, %424 %429 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %425, <4 x double> %428) %430 = getelementptr inbounds %"num_complex::Complex", ptr %316, i64 %index41 %interleaved.vec112 = shufflevector <4 x double> %427, <4 x double> %429, <8 x i32> store <8 x double> %interleaved.vec112, ptr %430, align 8, !noalias !5038 %index.next113 = add nuw i64 %index41, 4 %431 = icmp eq i64 %index.next113, 8 br i1 %431, label %middle.block36, label %vector.body40, !llvm.loop !5043 middle.block36: ; preds = %vector.body40 %432 = add nuw nsw i64 %iter.i.i.i.i.sroa.104.0127, 1 %exitcond131.not = icmp eq i64 %432, 8 br i1 %exitcond131.not, label %vector.body118, label %bb32.i.i.i.i "_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ea20b81015eea99E.exit": ; preds = %vector.body118 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5038 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hbf85ec8d3b433573E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5044 store i64 1024, ptr %n.i, align 8, !noalias !5044 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5044 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5044 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5044 store ptr null, ptr %_16.i, align 8, !noalias !5044 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5044 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5044 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5044 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5044 store ptr null, ptr %_24.i, align 8, !noalias !5044 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5044 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5044 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5044 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5044 store ptr null, ptr %_32.i, align 8, !noalias !5044 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5044 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5044 store i64 %w.1, ptr %_34.i, align 8, !noalias !5044 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8f7aaa8069f32e26E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5044 store ptr null, ptr %_40.i, align 8, !noalias !5044 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8f7aaa8069f32e26E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5044 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8f7aaa8069f32e26E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8f7aaa8069f32e26E.exit" ], [ %index.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !5044 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %4, align 8, !noalias !5044 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %5, align 8, !noalias !5044 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %6, align 8, !noalias !5044 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec, %strided.vec6 %8 = fadd <4 x double> %strided.vec1, %strided.vec7 %9 = fsub <4 x double> %strided.vec, %strided.vec6 %10 = fsub <4 x double> %strided.vec1, %strided.vec7 %11 = fadd <4 x double> %strided.vec3, %strided.vec9 %12 = fadd <4 x double> %strided.vec4, %strided.vec10 %13 = fsub <4 x double> %strided.vec3, %strided.vec9 %14 = fsub <4 x double> %strided.vec4, %strided.vec10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %12 %17 = fadd <4 x double> %9, %14 %18 = fsub <4 x double> %10, %13 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %12 %21 = fsub <4 x double> %9, %14 %22 = fadd <4 x double> %10, %13 %interleaved.vec = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec, ptr %3, align 8, !noalias !5044 %interleaved.vec11 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !5044 %interleaved.vec12 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !5044 %interleaved.vec13 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec13, ptr %6, align 8, !noalias !5044 %index.next = add nuw i64 %index, 4 %23 = icmp eq i64 %index.next, 256 br i1 %23, label %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, label %vector.body, !llvm.loop !5047 _ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit: ; preds = %vector.body %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %31 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %32 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 576 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 704 %36 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 832 %38 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 960 br label %bb48.i.i.i.i bb48.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, %middle.block14 %iter.i.i.i.i.sroa.208.0219 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit ], [ %345, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0219, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0219, 8 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %38, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %36, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %32, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %34, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %39 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %40 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %41 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %43 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %44 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 96 %45 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 80 %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 112 %47 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %48 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 160 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 144 %50 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 176 %51 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 224 %52 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 208 %53 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 240 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i.i.i = load double, ptr %54, align 8, !noalias !5044, !noundef !3 %_6.i483.i.i.i.i = fneg double %wf.1.i.i.i.i %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i.i.i = load double, ptr %55, align 8, !noalias !5044, !noundef !3 %_6.i486.i.i.i.i = fneg double %we.1.i.i.i.i %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i.i.i = load double, ptr %56, align 8, !noalias !5044, !noundef !3 %_6.i489.i.i.i.i = fneg double %wd.1.i.i.i.i %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i.i.i = load double, ptr %57, align 8, !noalias !5044, !noundef !3 %_6.i492.i.i.i.i = fneg double %wc.1.i.i.i.i %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i.i.i = load double, ptr %58, align 8, !noalias !5044, !noundef !3 %_6.i495.i.i.i.i = fneg double %wb.1.i.i.i.i %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i.i.i = load double, ptr %59, align 8, !noalias !5044, !noundef !3 %_6.i498.i.i.i.i = fneg double %wa.1.i.i.i.i %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i.i.i = load double, ptr %60, align 8, !noalias !5044, !noundef !3 %_6.i501.i.i.i.i = fneg double %w9.1.i.i.i.i %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i.i.i = load double, ptr %61, align 8, !noalias !5044, !noundef !3 %_6.i504.i.i.i.i = fneg double %w8.1.i.i.i.i %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %62, align 8, !noalias !5044, !noundef !3 %_6.i507.i.i.i.i = fneg double %w7.1.i.i.i.i %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %63, align 8, !noalias !5044, !noundef !3 %_6.i510.i.i.i.i = fneg double %w6.1.i.i.i.i %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %64, align 8, !noalias !5044, !noundef !3 %_6.i513.i.i.i.i = fneg double %w5.1.i.i.i.i %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %65, align 8, !noalias !5044, !noundef !3 %_6.i516.i.i.i.i = fneg double %w4.1.i.i.i.i %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %66, align 8, !noalias !5044, !noundef !3 %_6.i519.i.i.i.i = fneg double %w3.1.i.i.i.i %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %67, align 8, !noalias !5044, !noundef !3 %_6.i522.i.i.i.i = fneg double %w2.1.i.i.i.i %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %68, align 8, !noalias !5044, !noundef !3 %_6.i525.i.i.i.i = fneg double %w1.1.i.i.i.i %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15 %wf.0.i.i.i.i = load double, ptr %69, align 8, !noalias !5044, !noundef !3 %70 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14 %we.0.i.i.i.i = load double, ptr %70, align 8, !noalias !5044, !noundef !3 %71 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13 %wd.0.i.i.i.i = load double, ptr %71, align 8, !noalias !5044, !noundef !3 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12 %wc.0.i.i.i.i = load double, ptr %72, align 8, !noalias !5044, !noundef !3 %73 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11 %wb.0.i.i.i.i = load double, ptr %73, align 8, !noalias !5044, !noundef !3 %74 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10 %wa.0.i.i.i.i = load double, ptr %74, align 8, !noalias !5044, !noundef !3 %75 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9 %w9.0.i.i.i.i = load double, ptr %75, align 8, !noalias !5044, !noundef !3 %76 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %w8.0.i.i.i.i = load double, ptr %76, align 8, !noalias !5044, !noundef !3 %77 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %77, align 8, !noalias !5044, !noundef !3 %78 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %78, align 8, !noalias !5044, !noundef !3 %79 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %79, align 8, !noalias !5044, !noundef !3 %80 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %80, align 8, !noalias !5044, !noundef !3 %81 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %81, align 8, !noalias !5044, !noundef !3 %82 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %82, align 8, !noalias !5044, !noundef !3 %83 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %83, align 8, !noalias !5044, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i522.i.i.i.i, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i519.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert51 = insertelement <4 x double> poison, double %_6.i516.i.i.i.i, i64 0 %broadcast.splat52 = shufflevector <4 x double> %broadcast.splatinsert51, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert53 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat54 = shufflevector <4 x double> %broadcast.splatinsert53, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert55 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat56 = shufflevector <4 x double> %broadcast.splatinsert55, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %_6.i513.i.i.i.i, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert64 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat65 = shufflevector <4 x double> %broadcast.splatinsert64, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert69 = insertelement <4 x double> poison, double %_6.i510.i.i.i.i, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i507.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i504.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w8.0.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w8.1.i.i.i.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %_6.i501.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w9.0.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert100 = insertelement <4 x double> poison, double %w9.1.i.i.i.i, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert105 = insertelement <4 x double> poison, double %_6.i498.i.i.i.i, i64 0 %broadcast.splat106 = shufflevector <4 x double> %broadcast.splatinsert105, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert107 = insertelement <4 x double> poison, double %wa.0.i.i.i.i, i64 0 %broadcast.splat108 = shufflevector <4 x double> %broadcast.splatinsert107, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert109 = insertelement <4 x double> poison, double %wa.1.i.i.i.i, i64 0 %broadcast.splat110 = shufflevector <4 x double> %broadcast.splatinsert109, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert114 = insertelement <4 x double> poison, double %_6.i495.i.i.i.i, i64 0 %broadcast.splat115 = shufflevector <4 x double> %broadcast.splatinsert114, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert116 = insertelement <4 x double> poison, double %wb.0.i.i.i.i, i64 0 %broadcast.splat117 = shufflevector <4 x double> %broadcast.splatinsert116, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert118 = insertelement <4 x double> poison, double %wb.1.i.i.i.i, i64 0 %broadcast.splat119 = shufflevector <4 x double> %broadcast.splatinsert118, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %_6.i492.i.i.i.i, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %wc.0.i.i.i.i, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert127 = insertelement <4 x double> poison, double %wc.1.i.i.i.i, i64 0 %broadcast.splat128 = shufflevector <4 x double> %broadcast.splatinsert127, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %_6.i489.i.i.i.i, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert134 = insertelement <4 x double> poison, double %wd.0.i.i.i.i, i64 0 %broadcast.splat135 = shufflevector <4 x double> %broadcast.splatinsert134, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert136 = insertelement <4 x double> poison, double %wd.1.i.i.i.i, i64 0 %broadcast.splat137 = shufflevector <4 x double> %broadcast.splatinsert136, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert141 = insertelement <4 x double> poison, double %_6.i486.i.i.i.i, i64 0 %broadcast.splat142 = shufflevector <4 x double> %broadcast.splatinsert141, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert143 = insertelement <4 x double> poison, double %we.0.i.i.i.i, i64 0 %broadcast.splat144 = shufflevector <4 x double> %broadcast.splatinsert143, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert145 = insertelement <4 x double> poison, double %we.1.i.i.i.i, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert150 = insertelement <4 x double> poison, double %_6.i483.i.i.i.i, i64 0 %broadcast.splat151 = shufflevector <4 x double> %broadcast.splatinsert150, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert152 = insertelement <4 x double> poison, double %wf.0.i.i.i.i, i64 0 %broadcast.splat153 = shufflevector <4 x double> %broadcast.splatinsert152, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert154 = insertelement <4 x double> poison, double %wf.1.i.i.i.i, i64 0 %broadcast.splat155 = shufflevector <4 x double> %broadcast.splatinsert154, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body18 vector.body18: ; preds = %vector.body18, %bb48.i.i.i.i %index19 = phi i64 [ 0, %bb48.i.i.i.i ], [ %index.next172, %vector.body18 ] %84 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index19 %85 = getelementptr inbounds %"num_complex::Complex", ptr %42, i64 %index19 %86 = getelementptr inbounds %"num_complex::Complex", ptr %41, i64 %index19 %87 = getelementptr inbounds %"num_complex::Complex", ptr %43, i64 %index19 %88 = getelementptr inbounds %"num_complex::Complex", ptr %40, i64 %index19 %89 = getelementptr inbounds %"num_complex::Complex", ptr %45, i64 %index19 %90 = getelementptr inbounds %"num_complex::Complex", ptr %44, i64 %index19 %91 = getelementptr inbounds %"num_complex::Complex", ptr %46, i64 %index19 %92 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 %index19 %93 = getelementptr inbounds %"num_complex::Complex", ptr %49, i64 %index19 %94 = getelementptr inbounds %"num_complex::Complex", ptr %48, i64 %index19 %95 = getelementptr inbounds %"num_complex::Complex", ptr %50, i64 %index19 %96 = getelementptr inbounds %"num_complex::Complex", ptr %47, i64 %index19 %97 = getelementptr inbounds %"num_complex::Complex", ptr %52, i64 %index19 %98 = getelementptr inbounds %"num_complex::Complex", ptr %51, i64 %index19 %99 = getelementptr inbounds %"num_complex::Complex", ptr %53, i64 %index19 %wide.vec20 = load <8 x double>, ptr %84, align 8, !noalias !5044 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %85, align 8, !noalias !5044 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %100 = fmul <4 x double> %strided.vec25, %broadcast.splat %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %100) %102 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %102) %wide.vec30 = load <8 x double>, ptr %86, align 8, !noalias !5044 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %104 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %104) %106 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %106) %wide.vec39 = load <8 x double>, ptr %87, align 8, !noalias !5044 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %108 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %108) %110 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %110) %wide.vec48 = load <8 x double>, ptr %88, align 8, !noalias !5044 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %112 = fmul <4 x double> %strided.vec50, %broadcast.splat52 %113 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec49, <4 x double> %112) %114 = fmul <4 x double> %broadcast.splat56, %strided.vec49 %115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec50, <4 x double> %114) %wide.vec57 = load <8 x double>, ptr %89, align 8, !noalias !5044 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %116 = fmul <4 x double> %strided.vec59, %broadcast.splat61 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec58, <4 x double> %116) %118 = fmul <4 x double> %broadcast.splat65, %strided.vec58 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec59, <4 x double> %118) %wide.vec66 = load <8 x double>, ptr %90, align 8, !noalias !5044 %strided.vec67 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %strided.vec68 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %120 = fmul <4 x double> %strided.vec68, %broadcast.splat70 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec67, <4 x double> %120) %122 = fmul <4 x double> %broadcast.splat74, %strided.vec67 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec68, <4 x double> %122) %wide.vec75 = load <8 x double>, ptr %91, align 8, !noalias !5044 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %124 = fmul <4 x double> %strided.vec77, %broadcast.splat79 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec76, <4 x double> %124) %126 = fmul <4 x double> %broadcast.splat83, %strided.vec76 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec77, <4 x double> %126) %wide.vec84 = load <8 x double>, ptr %92, align 8, !noalias !5044 %strided.vec85 = shufflevector <8 x double> %wide.vec84, <8 x double> poison, <4 x i32> %strided.vec86 = shufflevector <8 x double> %wide.vec84, <8 x double> poison, <4 x i32> %128 = fmul <4 x double> %strided.vec86, %broadcast.splat88 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %strided.vec85, <4 x double> %128) %130 = fmul <4 x double> %broadcast.splat92, %strided.vec85 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %strided.vec86, <4 x double> %130) %wide.vec93 = load <8 x double>, ptr %93, align 8, !noalias !5044 %strided.vec94 = shufflevector <8 x double> %wide.vec93, <8 x double> poison, <4 x i32> %strided.vec95 = shufflevector <8 x double> %wide.vec93, <8 x double> poison, <4 x i32> %132 = fmul <4 x double> %strided.vec95, %broadcast.splat97 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat99, <4 x double> %strided.vec94, <4 x double> %132) %134 = fmul <4 x double> %broadcast.splat101, %strided.vec94 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat99, <4 x double> %strided.vec95, <4 x double> %134) %wide.vec102 = load <8 x double>, ptr %94, align 8, !noalias !5044 %strided.vec103 = shufflevector <8 x double> %wide.vec102, <8 x double> poison, <4 x i32> %strided.vec104 = shufflevector <8 x double> %wide.vec102, <8 x double> poison, <4 x i32> %136 = fmul <4 x double> %strided.vec104, %broadcast.splat106 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat108, <4 x double> %strided.vec103, <4 x double> %136) %138 = fmul <4 x double> %broadcast.splat110, %strided.vec103 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat108, <4 x double> %strided.vec104, <4 x double> %138) %wide.vec111 = load <8 x double>, ptr %95, align 8, !noalias !5044 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %140 = fmul <4 x double> %strided.vec113, %broadcast.splat115 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat117, <4 x double> %strided.vec112, <4 x double> %140) %142 = fmul <4 x double> %broadcast.splat119, %strided.vec112 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat117, <4 x double> %strided.vec113, <4 x double> %142) %wide.vec120 = load <8 x double>, ptr %96, align 8, !noalias !5044 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %144 = fmul <4 x double> %strided.vec122, %broadcast.splat124 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat126, <4 x double> %strided.vec121, <4 x double> %144) %146 = fmul <4 x double> %broadcast.splat128, %strided.vec121 %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat126, <4 x double> %strided.vec122, <4 x double> %146) %wide.vec129 = load <8 x double>, ptr %97, align 8, !noalias !5044 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %148 = fmul <4 x double> %strided.vec131, %broadcast.splat133 %149 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat135, <4 x double> %strided.vec130, <4 x double> %148) %150 = fmul <4 x double> %broadcast.splat137, %strided.vec130 %151 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat135, <4 x double> %strided.vec131, <4 x double> %150) %wide.vec138 = load <8 x double>, ptr %98, align 8, !noalias !5044 %strided.vec139 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %strided.vec140 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %152 = fmul <4 x double> %strided.vec140, %broadcast.splat142 %153 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat144, <4 x double> %strided.vec139, <4 x double> %152) %154 = fmul <4 x double> %broadcast.splat146, %strided.vec139 %155 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat144, <4 x double> %strided.vec140, <4 x double> %154) %wide.vec147 = load <8 x double>, ptr %99, align 8, !noalias !5044 %strided.vec148 = shufflevector <8 x double> %wide.vec147, <8 x double> poison, <4 x i32> %strided.vec149 = shufflevector <8 x double> %wide.vec147, <8 x double> poison, <4 x i32> %156 = fmul <4 x double> %strided.vec149, %broadcast.splat151 %157 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat153, <4 x double> %strided.vec148, <4 x double> %156) %158 = fmul <4 x double> %broadcast.splat155, %strided.vec148 %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat153, <4 x double> %strided.vec149, <4 x double> %158) %160 = fadd <4 x double> %strided.vec21, %129 %161 = fadd <4 x double> %strided.vec22, %131 %162 = fsub <4 x double> %strided.vec21, %129 %163 = fsub <4 x double> %strided.vec22, %131 %164 = fadd <4 x double> %113, %145 %165 = fadd <4 x double> %115, %147 %166 = fsub <4 x double> %113, %145 %167 = fsub <4 x double> %115, %147 %168 = fadd <4 x double> %105, %137 %169 = fadd <4 x double> %107, %139 %170 = fsub <4 x double> %105, %137 %171 = fsub <4 x double> %107, %139 %172 = fadd <4 x double> %121, %153 %173 = fadd <4 x double> %123, %155 %174 = fsub <4 x double> %121, %153 %175 = fsub <4 x double> %123, %155 %176 = fadd <4 x double> %101, %133 %177 = fadd <4 x double> %103, %135 %178 = fsub <4 x double> %101, %133 %179 = fsub <4 x double> %103, %135 %180 = fadd <4 x double> %117, %149 %181 = fadd <4 x double> %119, %151 %182 = fsub <4 x double> %117, %149 %183 = fsub <4 x double> %119, %151 %184 = fadd <4 x double> %109, %141 %185 = fadd <4 x double> %111, %143 %186 = fsub <4 x double> %109, %141 %187 = fsub <4 x double> %111, %143 %188 = fadd <4 x double> %125, %157 %189 = fadd <4 x double> %127, %159 %190 = fsub <4 x double> %125, %157 %191 = fsub <4 x double> %127, %159 %192 = fadd <4 x double> %160, %164 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %167 %195 = fsub <4 x double> %163, %166 %196 = fsub <4 x double> %160, %164 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %167 %199 = fadd <4 x double> %163, %166 %200 = fadd <4 x double> %168, %172 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %175 %203 = fsub <4 x double> %171, %174 %204 = fsub <4 x double> %168, %172 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %175 %207 = fadd <4 x double> %171, %174 %208 = fadd <4 x double> %176, %180 %209 = fadd <4 x double> %177, %181 %210 = fadd <4 x double> %178, %183 %211 = fsub <4 x double> %179, %182 %212 = fsub <4 x double> %176, %180 %213 = fsub <4 x double> %177, %181 %214 = fsub <4 x double> %178, %183 %215 = fadd <4 x double> %179, %182 %216 = fadd <4 x double> %184, %188 %217 = fadd <4 x double> %185, %189 %218 = fadd <4 x double> %186, %191 %219 = fsub <4 x double> %187, %190 %220 = fsub <4 x double> %184, %188 %221 = fsub <4 x double> %185, %189 %222 = fsub <4 x double> %186, %191 %223 = fadd <4 x double> %187, %190 %224 = fadd <4 x double> %202, %203 %225 = fsub <4 x double> %203, %202 %226 = fmul <4 x double> %224, %227 = fmul <4 x double> %225, %228 = fsub <4 x double> %206, %207 %229 = fadd <4 x double> %206, %207 %230 = fmul <4 x double> %228, %231 = fmul <4 x double> %229, %232 = fadd <4 x double> %192, %200 %233 = fadd <4 x double> %193, %201 %234 = fadd <4 x double> %194, %226 %235 = fadd <4 x double> %195, %227 %236 = fadd <4 x double> %196, %205 %237 = fsub <4 x double> %197, %204 %238 = fsub <4 x double> %198, %230 %239 = fsub <4 x double> %199, %231 %240 = fsub <4 x double> %192, %200 %241 = fsub <4 x double> %193, %201 %242 = fsub <4 x double> %194, %226 %243 = fsub <4 x double> %195, %227 %244 = fsub <4 x double> %196, %205 %245 = fadd <4 x double> %197, %204 %246 = fadd <4 x double> %198, %230 %247 = fadd <4 x double> %199, %231 %248 = fadd <4 x double> %218, %219 %249 = fsub <4 x double> %219, %218 %250 = fmul <4 x double> %248, %251 = fmul <4 x double> %249, %252 = fsub <4 x double> %222, %223 %253 = fadd <4 x double> %222, %223 %254 = fmul <4 x double> %252, %255 = fmul <4 x double> %253, %256 = fadd <4 x double> %208, %216 %257 = fadd <4 x double> %209, %217 %258 = fadd <4 x double> %210, %250 %259 = fadd <4 x double> %211, %251 %260 = fadd <4 x double> %212, %221 %261 = fsub <4 x double> %213, %220 %262 = fsub <4 x double> %214, %254 %263 = fsub <4 x double> %215, %255 %264 = fsub <4 x double> %208, %216 %265 = fsub <4 x double> %209, %217 %266 = fsub <4 x double> %210, %250 %267 = fsub <4 x double> %211, %251 %268 = fsub <4 x double> %212, %221 %269 = fadd <4 x double> %213, %220 %270 = fadd <4 x double> %214, %254 %271 = fadd <4 x double> %215, %255 %272 = fadd <4 x double> %232, %256 %273 = fadd <4 x double> %233, %257 %274 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec156 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec156, ptr %274, align 8, !noalias !5044 %275 = fsub <4 x double> %232, %256 %276 = fsub <4 x double> %233, %257 %277 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec157 = shufflevector <4 x double> %275, <4 x double> %276, <8 x i32> store <8 x double> %interleaved.vec157, ptr %277, align 8, !noalias !5044 %278 = fmul <4 x double> %259, %279 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %258, <4 x double> , <4 x double> %278) %280 = fmul <4 x double> %258, %281 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %259, <4 x double> , <4 x double> %280) %282 = fadd <4 x double> %234, %279 %283 = fadd <4 x double> %235, %281 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec158 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec158, ptr %284, align 8, !noalias !5044 %285 = fsub <4 x double> %234, %279 %286 = fsub <4 x double> %235, %281 %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec159 = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec159, ptr %287, align 8, !noalias !5044 %288 = fadd <4 x double> %260, %261 %289 = fsub <4 x double> %261, %260 %290 = fmul <4 x double> %288, %291 = fmul <4 x double> %289, %292 = fadd <4 x double> %236, %290 %293 = fadd <4 x double> %237, %291 %294 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec160 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec160, ptr %294, align 8, !noalias !5044 %295 = fsub <4 x double> %236, %290 %296 = fsub <4 x double> %237, %291 %297 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec161 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec161, ptr %297, align 8, !noalias !5044 %298 = fmul <4 x double> %263, %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %262, <4 x double> , <4 x double> %298) %300 = fmul <4 x double> %262, %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %263, <4 x double> , <4 x double> %300) %302 = fadd <4 x double> %238, %299 %303 = fadd <4 x double> %239, %301 %304 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec162 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec162, ptr %304, align 8, !noalias !5044 %305 = fsub <4 x double> %238, %299 %306 = fsub <4 x double> %239, %301 %307 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec163 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec163, ptr %307, align 8, !noalias !5044 %308 = fadd <4 x double> %240, %265 %309 = fsub <4 x double> %241, %264 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec164 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec164, ptr %310, align 8, !noalias !5044 %311 = fsub <4 x double> %240, %265 %312 = fadd <4 x double> %241, %264 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec165 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec165, ptr %313, align 8, !noalias !5044 %314 = fmul <4 x double> %267, %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %266, <4 x double> , <4 x double> %314) %316 = fmul <4 x double> %266, %317 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %267, <4 x double> , <4 x double> %316) %318 = fsub <4 x double> %242, %315 %319 = fsub <4 x double> %243, %317 %320 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec166 = shufflevector <4 x double> %318, <4 x double> %319, <8 x i32> store <8 x double> %interleaved.vec166, ptr %320, align 8, !noalias !5044 %321 = fadd <4 x double> %242, %315 %322 = fadd <4 x double> %243, %317 %323 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec167 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec167, ptr %323, align 8, !noalias !5044 %324 = fsub <4 x double> %268, %269 %325 = fadd <4 x double> %268, %269 %326 = fmul <4 x double> %324, %327 = fmul <4 x double> %325, %328 = fsub <4 x double> %244, %326 %329 = fsub <4 x double> %245, %327 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec168 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec168, ptr %330, align 8, !noalias !5044 %331 = fadd <4 x double> %244, %326 %332 = fadd <4 x double> %245, %327 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec169 = shufflevector <4 x double> %331, <4 x double> %332, <8 x i32> store <8 x double> %interleaved.vec169, ptr %333, align 8, !noalias !5044 %334 = fmul <4 x double> %271, %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %270, <4 x double> , <4 x double> %334) %336 = fmul <4 x double> %270, %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %271, <4 x double> , <4 x double> %336) %338 = fsub <4 x double> %246, %335 %339 = fsub <4 x double> %247, %337 %340 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec170 = shufflevector <4 x double> %338, <4 x double> %339, <8 x i32> store <8 x double> %interleaved.vec170, ptr %340, align 8, !noalias !5044 %341 = fadd <4 x double> %246, %335 %342 = fadd <4 x double> %247, %337 %343 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec171 = shufflevector <4 x double> %341, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec171, ptr %343, align 8, !noalias !5044 %index.next172 = add nuw i64 %index19, 4 %344 = icmp eq i64 %index.next172, 16 br i1 %344, label %middle.block14, label %vector.body18, !llvm.loop !5048 middle.block14: ; preds = %vector.body18 %345 = add nuw nsw i64 %iter.i.i.i.i.sroa.208.0219, 1 %exitcond224.not = icmp eq i64 %345, 4 br i1 %exitcond224.not, label %bb48.i.i.i.preheader, label %bb48.i.i.i.i bb48.i.i.i.preheader: ; preds = %middle.block14 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %348 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %350 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %351 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %352 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %353 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 576 %354 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 704 %355 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %356 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 832 %357 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 960 br label %vector.body177 vector.body177: ; preds = %vector.body177, %bb48.i.i.i.preheader %index178 = phi i64 [ 0, %bb48.i.i.i.preheader ], [ %index.next256, %vector.body177 ] %vec.ind = phi <4 x i64> [ , %bb48.i.i.i.preheader ], [ %vec.ind.next, %vector.body177 ] %358 = shl <4 x i64> %vec.ind, %359 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %358 %360 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %360, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %361 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather179 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %361, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %362 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather180 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %362, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %363 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather181 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %364 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather182 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %365 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %366 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %367 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %368 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %369 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %370 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %371 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %372 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %373 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %373, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %374 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %374, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %375 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %375, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %376 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %376, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %377 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %378 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %378, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %379 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather197 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %379, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %380 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather198 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %380, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %381 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather199 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %381, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %382 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather200 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %383 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather201 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %383, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %384 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather202 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %384, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %385 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather203 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %385, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %386 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather204 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %386, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %387 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather205 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %387, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %388 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather206 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %388, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %389 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather207 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %389, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %390 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 8 %391 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 4 %392 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 2 %393 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 1 %394 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 3 %395 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 6 %396 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 5 %397 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 7 %398 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 12 %399 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 10 %400 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 9 %401 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 11 %402 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 14 %403 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 13 %404 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 15 %405 = fneg <4 x double> %wide.masked.gather179 %406 = fneg <4 x double> %wide.masked.gather181 %407 = fneg <4 x double> %wide.masked.gather183 %408 = fneg <4 x double> %wide.masked.gather185 %409 = fneg <4 x double> %wide.masked.gather187 %410 = fneg <4 x double> %wide.masked.gather189 %411 = fneg <4 x double> %wide.masked.gather191 %412 = fneg <4 x double> %wide.masked.gather193 %413 = fneg <4 x double> %wide.masked.gather195 %414 = fneg <4 x double> %wide.masked.gather197 %415 = fneg <4 x double> %wide.masked.gather199 %416 = fneg <4 x double> %wide.masked.gather201 %417 = fneg <4 x double> %wide.masked.gather203 %418 = fneg <4 x double> %wide.masked.gather205 %419 = fneg <4 x double> %wide.masked.gather207 %wide.masked.gather208 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %420 = getelementptr inbounds i8, <4 x ptr> %359, i64 8 %wide.masked.gather209 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %420, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %wide.masked.gather210 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %393, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %421 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 1, i32 1 %wide.masked.gather211 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %421, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %422 = fmul <4 x double> %wide.masked.gather211, %405 %423 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather210, <4 x double> %422) %424 = fmul <4 x double> %wide.masked.gather179, %wide.masked.gather210 %425 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather211, <4 x double> %424) %wide.masked.gather212 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %392, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %426 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 2, i32 1 %wide.masked.gather213 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %426, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %427 = fmul <4 x double> %wide.masked.gather213, %406 %428 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather212, <4 x double> %427) %429 = fmul <4 x double> %wide.masked.gather181, %wide.masked.gather212 %430 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather213, <4 x double> %429) %wide.masked.gather214 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %394, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %431 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 3, i32 1 %wide.masked.gather215 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %431, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %432 = fmul <4 x double> %wide.masked.gather215, %407 %433 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather214, <4 x double> %432) %434 = fmul <4 x double> %wide.masked.gather183, %wide.masked.gather214 %435 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather215, <4 x double> %434) %wide.masked.gather216 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %391, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 4, i32 1 %wide.masked.gather217 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %437 = fmul <4 x double> %wide.masked.gather217, %408 %438 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather216, <4 x double> %437) %439 = fmul <4 x double> %wide.masked.gather185, %wide.masked.gather216 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather217, <4 x double> %439) %wide.masked.gather218 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %396, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %441 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 5, i32 1 %wide.masked.gather219 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %441, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %442 = fmul <4 x double> %wide.masked.gather219, %409 %443 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather218, <4 x double> %442) %444 = fmul <4 x double> %wide.masked.gather187, %wide.masked.gather218 %445 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather219, <4 x double> %444) %wide.masked.gather220 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %395, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 6, i32 1 %wide.masked.gather221 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %447 = fmul <4 x double> %wide.masked.gather221, %410 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather220, <4 x double> %447) %449 = fmul <4 x double> %wide.masked.gather189, %wide.masked.gather220 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather221, <4 x double> %449) %wide.masked.gather222 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %397, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %451 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 7, i32 1 %wide.masked.gather223 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %451, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %452 = fmul <4 x double> %wide.masked.gather223, %411 %453 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather222, <4 x double> %452) %454 = fmul <4 x double> %wide.masked.gather191, %wide.masked.gather222 %455 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather223, <4 x double> %454) %wide.masked.gather224 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %390, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 8, i32 1 %wide.masked.gather225 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %457 = fmul <4 x double> %wide.masked.gather225, %412 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather224, <4 x double> %457) %459 = fmul <4 x double> %wide.masked.gather193, %wide.masked.gather224 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather225, <4 x double> %459) %wide.masked.gather226 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %400, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %461 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 9, i32 1 %wide.masked.gather227 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %461, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %462 = fmul <4 x double> %wide.masked.gather227, %413 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather226, <4 x double> %462) %464 = fmul <4 x double> %wide.masked.gather195, %wide.masked.gather226 %465 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather227, <4 x double> %464) %wide.masked.gather228 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %399, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %466 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 10, i32 1 %wide.masked.gather229 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %466, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %467 = fmul <4 x double> %wide.masked.gather229, %414 %468 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather228, <4 x double> %467) %469 = fmul <4 x double> %wide.masked.gather197, %wide.masked.gather228 %470 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather229, <4 x double> %469) %wide.masked.gather230 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %401, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %471 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 11, i32 1 %wide.masked.gather231 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %471, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %472 = fmul <4 x double> %wide.masked.gather231, %415 %473 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather230, <4 x double> %472) %474 = fmul <4 x double> %wide.masked.gather199, %wide.masked.gather230 %475 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather231, <4 x double> %474) %wide.masked.gather232 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %398, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %476 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 12, i32 1 %wide.masked.gather233 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %476, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %477 = fmul <4 x double> %wide.masked.gather233, %416 %478 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather200, <4 x double> %wide.masked.gather232, <4 x double> %477) %479 = fmul <4 x double> %wide.masked.gather201, %wide.masked.gather232 %480 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather200, <4 x double> %wide.masked.gather233, <4 x double> %479) %wide.masked.gather234 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %403, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %481 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 13, i32 1 %wide.masked.gather235 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %481, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %482 = fmul <4 x double> %wide.masked.gather235, %417 %483 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather202, <4 x double> %wide.masked.gather234, <4 x double> %482) %484 = fmul <4 x double> %wide.masked.gather203, %wide.masked.gather234 %485 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather202, <4 x double> %wide.masked.gather235, <4 x double> %484) %wide.masked.gather236 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %402, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %486 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 14, i32 1 %wide.masked.gather237 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %486, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %487 = fmul <4 x double> %wide.masked.gather237, %418 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather204, <4 x double> %wide.masked.gather236, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather205, %wide.masked.gather236 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather204, <4 x double> %wide.masked.gather237, <4 x double> %489) %wide.masked.gather238 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %404, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %491 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 15, i32 1 %wide.masked.gather239 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %491, i32 8, <4 x i1> , <4 x double> poison), !noalias !5044 %492 = fmul <4 x double> %wide.masked.gather239, %419 %493 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather206, <4 x double> %wide.masked.gather238, <4 x double> %492) %494 = fmul <4 x double> %wide.masked.gather207, %wide.masked.gather238 %495 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather206, <4 x double> %wide.masked.gather239, <4 x double> %494) %496 = fadd <4 x double> %wide.masked.gather208, %458 %497 = fadd <4 x double> %wide.masked.gather209, %460 %498 = fsub <4 x double> %wide.masked.gather208, %458 %499 = fsub <4 x double> %wide.masked.gather209, %460 %500 = fadd <4 x double> %438, %478 %501 = fadd <4 x double> %440, %480 %502 = fsub <4 x double> %438, %478 %503 = fsub <4 x double> %440, %480 %504 = fadd <4 x double> %428, %468 %505 = fadd <4 x double> %430, %470 %506 = fsub <4 x double> %428, %468 %507 = fsub <4 x double> %430, %470 %508 = fadd <4 x double> %448, %488 %509 = fadd <4 x double> %450, %490 %510 = fsub <4 x double> %448, %488 %511 = fsub <4 x double> %450, %490 %512 = fadd <4 x double> %423, %463 %513 = fadd <4 x double> %425, %465 %514 = fsub <4 x double> %423, %463 %515 = fsub <4 x double> %425, %465 %516 = fadd <4 x double> %443, %483 %517 = fadd <4 x double> %445, %485 %518 = fsub <4 x double> %443, %483 %519 = fsub <4 x double> %445, %485 %520 = fadd <4 x double> %433, %473 %521 = fadd <4 x double> %435, %475 %522 = fsub <4 x double> %433, %473 %523 = fsub <4 x double> %435, %475 %524 = fadd <4 x double> %453, %493 %525 = fadd <4 x double> %455, %495 %526 = fsub <4 x double> %453, %493 %527 = fsub <4 x double> %455, %495 %528 = fadd <4 x double> %496, %500 %529 = fadd <4 x double> %497, %501 %530 = fadd <4 x double> %498, %503 %531 = fsub <4 x double> %499, %502 %532 = fsub <4 x double> %496, %500 %533 = fsub <4 x double> %497, %501 %534 = fsub <4 x double> %498, %503 %535 = fadd <4 x double> %499, %502 %536 = fadd <4 x double> %504, %508 %537 = fadd <4 x double> %505, %509 %538 = fadd <4 x double> %506, %511 %539 = fsub <4 x double> %507, %510 %540 = fsub <4 x double> %504, %508 %541 = fsub <4 x double> %505, %509 %542 = fsub <4 x double> %506, %511 %543 = fadd <4 x double> %507, %510 %544 = fadd <4 x double> %512, %516 %545 = fadd <4 x double> %513, %517 %546 = fadd <4 x double> %514, %519 %547 = fsub <4 x double> %515, %518 %548 = fsub <4 x double> %512, %516 %549 = fsub <4 x double> %513, %517 %550 = fsub <4 x double> %514, %519 %551 = fadd <4 x double> %515, %518 %552 = fadd <4 x double> %520, %524 %553 = fadd <4 x double> %521, %525 %554 = fadd <4 x double> %522, %527 %555 = fsub <4 x double> %523, %526 %556 = fsub <4 x double> %520, %524 %557 = fsub <4 x double> %521, %525 %558 = fsub <4 x double> %522, %527 %559 = fadd <4 x double> %523, %526 %560 = fadd <4 x double> %538, %539 %561 = fsub <4 x double> %539, %538 %562 = fmul <4 x double> %560, %563 = fmul <4 x double> %561, %564 = fsub <4 x double> %542, %543 %565 = fadd <4 x double> %542, %543 %566 = fmul <4 x double> %564, %567 = fmul <4 x double> %565, %568 = fadd <4 x double> %528, %536 %569 = fadd <4 x double> %529, %537 %570 = fadd <4 x double> %530, %562 %571 = fadd <4 x double> %531, %563 %572 = fadd <4 x double> %532, %541 %573 = fsub <4 x double> %533, %540 %574 = fsub <4 x double> %534, %566 %575 = fsub <4 x double> %535, %567 %576 = fsub <4 x double> %528, %536 %577 = fsub <4 x double> %529, %537 %578 = fsub <4 x double> %530, %562 %579 = fsub <4 x double> %531, %563 %580 = fsub <4 x double> %532, %541 %581 = fadd <4 x double> %533, %540 %582 = fadd <4 x double> %534, %566 %583 = fadd <4 x double> %535, %567 %584 = fadd <4 x double> %554, %555 %585 = fsub <4 x double> %555, %554 %586 = fmul <4 x double> %584, %587 = fmul <4 x double> %585, %588 = fsub <4 x double> %558, %559 %589 = fadd <4 x double> %558, %559 %590 = fmul <4 x double> %588, %591 = fmul <4 x double> %589, %592 = fadd <4 x double> %544, %552 %593 = fadd <4 x double> %545, %553 %594 = fadd <4 x double> %546, %586 %595 = fadd <4 x double> %547, %587 %596 = fadd <4 x double> %548, %557 %597 = fsub <4 x double> %549, %556 %598 = fsub <4 x double> %550, %590 %599 = fsub <4 x double> %551, %591 %600 = fsub <4 x double> %544, %552 %601 = fsub <4 x double> %545, %553 %602 = fsub <4 x double> %546, %586 %603 = fsub <4 x double> %547, %587 %604 = fsub <4 x double> %548, %557 %605 = fadd <4 x double> %549, %556 %606 = fadd <4 x double> %550, %590 %607 = fadd <4 x double> %551, %591 %608 = fadd <4 x double> %568, %592 %609 = fadd <4 x double> %569, %593 %610 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index178 %interleaved.vec240 = shufflevector <4 x double> %608, <4 x double> %609, <8 x i32> store <8 x double> %interleaved.vec240, ptr %610, align 8, !noalias !5044 %611 = fsub <4 x double> %568, %592 %612 = fsub <4 x double> %569, %593 %613 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index178 %interleaved.vec241 = shufflevector <4 x double> %611, <4 x double> %612, <8 x i32> store <8 x double> %interleaved.vec241, ptr %613, align 8, !noalias !5044 %614 = fmul <4 x double> %595, %615 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %594, <4 x double> , <4 x double> %614) %616 = fmul <4 x double> %594, %617 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %595, <4 x double> , <4 x double> %616) %618 = fadd <4 x double> %570, %615 %619 = fadd <4 x double> %571, %617 %620 = getelementptr inbounds %"num_complex::Complex", ptr %347, i64 %index178 %interleaved.vec242 = shufflevector <4 x double> %618, <4 x double> %619, <8 x i32> store <8 x double> %interleaved.vec242, ptr %620, align 8, !noalias !5044 %621 = fsub <4 x double> %570, %615 %622 = fsub <4 x double> %571, %617 %623 = getelementptr inbounds %"num_complex::Complex", ptr %353, i64 %index178 %interleaved.vec243 = shufflevector <4 x double> %621, <4 x double> %622, <8 x i32> store <8 x double> %interleaved.vec243, ptr %623, align 8, !noalias !5044 %624 = fadd <4 x double> %596, %597 %625 = fsub <4 x double> %597, %596 %626 = fmul <4 x double> %624, %627 = fmul <4 x double> %625, %628 = fadd <4 x double> %572, %626 %629 = fadd <4 x double> %573, %627 %630 = getelementptr inbounds %"num_complex::Complex", ptr %346, i64 %index178 %interleaved.vec244 = shufflevector <4 x double> %628, <4 x double> %629, <8 x i32> store <8 x double> %interleaved.vec244, ptr %630, align 8, !noalias !5044 %631 = fsub <4 x double> %572, %626 %632 = fsub <4 x double> %573, %627 %633 = getelementptr inbounds %"num_complex::Complex", ptr %352, i64 %index178 %interleaved.vec245 = shufflevector <4 x double> %631, <4 x double> %632, <8 x i32> store <8 x double> %interleaved.vec245, ptr %633, align 8, !noalias !5044 %634 = fmul <4 x double> %599, %635 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> , <4 x double> %634) %636 = fmul <4 x double> %598, %637 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %599, <4 x double> , <4 x double> %636) %638 = fadd <4 x double> %574, %635 %639 = fadd <4 x double> %575, %637 %640 = getelementptr inbounds %"num_complex::Complex", ptr %348, i64 %index178 %interleaved.vec246 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec246, ptr %640, align 8, !noalias !5044 %641 = fsub <4 x double> %574, %635 %642 = fsub <4 x double> %575, %637 %643 = getelementptr inbounds %"num_complex::Complex", ptr %354, i64 %index178 %interleaved.vec247 = shufflevector <4 x double> %641, <4 x double> %642, <8 x i32> store <8 x double> %interleaved.vec247, ptr %643, align 8, !noalias !5044 %644 = fadd <4 x double> %576, %601 %645 = fsub <4 x double> %577, %600 %646 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index178 %interleaved.vec248 = shufflevector <4 x double> %644, <4 x double> %645, <8 x i32> store <8 x double> %interleaved.vec248, ptr %646, align 8, !noalias !5044 %647 = fsub <4 x double> %576, %601 %648 = fadd <4 x double> %577, %600 %649 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index178 %interleaved.vec249 = shufflevector <4 x double> %647, <4 x double> %648, <8 x i32> store <8 x double> %interleaved.vec249, ptr %649, align 8, !noalias !5044 %650 = fmul <4 x double> %603, %651 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %602, <4 x double> , <4 x double> %650) %652 = fmul <4 x double> %602, %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %603, <4 x double> , <4 x double> %652) %654 = fsub <4 x double> %578, %651 %655 = fsub <4 x double> %579, %653 %656 = getelementptr inbounds %"num_complex::Complex", ptr %350, i64 %index178 %interleaved.vec250 = shufflevector <4 x double> %654, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec250, ptr %656, align 8, !noalias !5044 %657 = fadd <4 x double> %578, %651 %658 = fadd <4 x double> %579, %653 %659 = getelementptr inbounds %"num_complex::Complex", ptr %356, i64 %index178 %interleaved.vec251 = shufflevector <4 x double> %657, <4 x double> %658, <8 x i32> store <8 x double> %interleaved.vec251, ptr %659, align 8, !noalias !5044 %660 = fsub <4 x double> %604, %605 %661 = fadd <4 x double> %604, %605 %662 = fmul <4 x double> %660, %663 = fmul <4 x double> %661, %664 = fsub <4 x double> %580, %662 %665 = fsub <4 x double> %581, %663 %666 = getelementptr inbounds %"num_complex::Complex", ptr %349, i64 %index178 %interleaved.vec252 = shufflevector <4 x double> %664, <4 x double> %665, <8 x i32> store <8 x double> %interleaved.vec252, ptr %666, align 8, !noalias !5044 %667 = fadd <4 x double> %580, %662 %668 = fadd <4 x double> %581, %663 %669 = getelementptr inbounds %"num_complex::Complex", ptr %355, i64 %index178 %interleaved.vec253 = shufflevector <4 x double> %667, <4 x double> %668, <8 x i32> store <8 x double> %interleaved.vec253, ptr %669, align 8, !noalias !5044 %670 = fmul <4 x double> %607, %671 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %606, <4 x double> , <4 x double> %670) %672 = fmul <4 x double> %606, %673 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %607, <4 x double> , <4 x double> %672) %674 = fsub <4 x double> %582, %671 %675 = fsub <4 x double> %583, %673 %676 = getelementptr inbounds %"num_complex::Complex", ptr %351, i64 %index178 %interleaved.vec254 = shufflevector <4 x double> %674, <4 x double> %675, <8 x i32> store <8 x double> %interleaved.vec254, ptr %676, align 8, !noalias !5044 %677 = fadd <4 x double> %582, %671 %678 = fadd <4 x double> %583, %673 %679 = getelementptr inbounds %"num_complex::Complex", ptr %357, i64 %index178 %interleaved.vec255 = shufflevector <4 x double> %677, <4 x double> %678, <8 x i32> store <8 x double> %interleaved.vec255, ptr %679, align 8, !noalias !5044 %index.next256 = add nuw i64 %index178, 4 %vec.ind.next = add <4 x i64> %vec.ind, %680 = icmp eq i64 %index.next256, 64 br i1 %680, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1000f48b55dc070E.exit", label %vector.body177, !llvm.loop !5049 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1000f48b55dc070E.exit": ; preds = %vector.body177 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5044 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc0b10ca956f767a9E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h511827430d653b50E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc43363985977744fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h6c69c2606e9edb8eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc50a59fd1e4d9bedE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5050 store i64 16, ptr %n.i, align 8, !noalias !5050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5050 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5050 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5050 store ptr null, ptr %_16.i, align 8, !noalias !5050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5050 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5050 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5050 store ptr null, ptr %_24.i, align 8, !noalias !5050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5050 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5050 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5050 store ptr null, ptr %_32.i, align 8, !noalias !5050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5050 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5050 store i64 %w.1, ptr %_34.i, align 8, !noalias !5050 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5050 store ptr null, ptr %_40.i, align 8, !noalias !5050 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5050 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i = load double, ptr %1, align 8, !noalias !5053, !noundef !3 %2 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i = load double, ptr %2, align 8, !noalias !5053, !noundef !3 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_6.i.i.i = fneg double %w1.1.i.i %4 = load <2 x double>, ptr %buf.0, align 8, !noalias !5053 %5 = load <2 x double>, ptr %0, align 8, !noalias !5053 %6 = fadd <2 x double> %4, %5 store <2 x double> %6, ptr %scratch.0, align 8, !noalias !5053 %7 = fsub <2 x double> %4, %5 %8 = shufflevector <2 x double> %7, <2 x double> poison, <2 x i32> %9 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %10 = insertelement <2 x double> %9, double %w1.1.i.i, i64 1 %11 = fmul <2 x double> %8, %10 %12 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %13 = shufflevector <2 x double> %12, <2 x double> poison, <2 x i32> zeroinitializer %14 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %13, <2 x double> %7, <2 x double> %11) store <2 x double> %14, ptr %3, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %15 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.1 = load double, ptr %15, align 8, !noalias !5053, !noundef !3 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %16, align 8, !noalias !5053, !noundef !3 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %18 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5053 %19 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !5053 %20 = fadd <2 x double> %18, %19 store <2 x double> %20, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5053 %21 = fsub <2 x double> %18, %19 %22 = shufflevector <2 x double> %21, <2 x double> poison, <2 x i32> %23 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %24 = insertelement <2 x double> %23, double %w1.1.i.i.1, i64 1 %25 = fmul <2 x double> %22, %24 %26 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %27 = shufflevector <2 x double> %26, <2 x double> poison, <2 x i32> zeroinitializer %28 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %27, <2 x double> %21, <2 x double> %25) store <2 x double> %28, ptr %17, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %29 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.i.i.2 = load double, ptr %29, align 8, !noalias !5053, !noundef !3 %30 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %30, align 8, !noalias !5053, !noundef !3 %31 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %32 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5053 %33 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !5053 %34 = fadd <2 x double> %32, %33 store <2 x double> %34, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5053 %35 = fsub <2 x double> %32, %33 %36 = shufflevector <2 x double> %35, <2 x double> poison, <2 x i32> %37 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %38 = insertelement <2 x double> %37, double %w1.1.i.i.2, i64 1 %39 = fmul <2 x double> %36, %38 %40 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> zeroinitializer %42 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %41, <2 x double> %35, <2 x double> %39) store <2 x double> %42, ptr %31, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %43 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1 %w1.0.i.i.3 = load double, ptr %43, align 8, !noalias !5053, !noundef !3 %44 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %44, align 8, !noalias !5053, !noundef !3 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %46 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5053 %47 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !5053 %48 = fadd <2 x double> %46, %47 store <2 x double> %48, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5053 %49 = fsub <2 x double> %46, %47 %50 = shufflevector <2 x double> %49, <2 x double> poison, <2 x i32> %51 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %52 = insertelement <2 x double> %51, double %w1.1.i.i.3, i64 1 %53 = fmul <2 x double> %50, %52 %54 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %55 = shufflevector <2 x double> %54, <2 x double> poison, <2 x i32> zeroinitializer %56 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %55, <2 x double> %49, <2 x double> %53) store <2 x double> %56, ptr %45, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %data.i5.i.i.i.i.i.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i.i.i.i.i.i.4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %57 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.i.i.4 = load double, ptr %57, align 8, !noalias !5053, !noundef !3 %58 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.i.i.4 = load double, ptr %58, align 8, !noalias !5053, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %_6.i.i.i.4 = fneg double %w1.1.i.i.4 %60 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.4, align 8, !noalias !5053 %61 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.4, align 8, !noalias !5053 %62 = fadd <2 x double> %60, %61 store <2 x double> %62, ptr %data.i.i.i.i.i.i.4, align 8, !noalias !5053 %63 = fsub <2 x double> %60, %61 %64 = shufflevector <2 x double> %63, <2 x double> poison, <2 x i32> %65 = insertelement <2 x double> poison, double %_6.i.i.i.4, i64 0 %66 = insertelement <2 x double> %65, double %w1.1.i.i.4, i64 1 %67 = fmul <2 x double> %64, %66 %68 = insertelement <2 x double> poison, double %w1.0.i.i.4, i64 0 %69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> zeroinitializer %70 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %69, <2 x double> %63, <2 x double> %67) store <2 x double> %70, ptr %59, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i5.i.i.i.i.i.i.i.5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i.5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %71 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 5, i64 1 %w1.0.i.i.5 = load double, ptr %71, align 8, !noalias !5053, !noundef !3 %72 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 5, i64 1, i32 1 %w1.1.i.i.5 = load double, ptr %72, align 8, !noalias !5053, !noundef !3 %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_6.i.i.i.5 = fneg double %w1.1.i.i.5 %74 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.5, align 8, !noalias !5053 %75 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.5, align 8, !noalias !5053 %76 = fadd <2 x double> %74, %75 store <2 x double> %76, ptr %data.i.i.i.i.i.i.5, align 8, !noalias !5053 %77 = fsub <2 x double> %74, %75 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = insertelement <2 x double> poison, double %_6.i.i.i.5, i64 0 %80 = insertelement <2 x double> %79, double %w1.1.i.i.5, i64 1 %81 = fmul <2 x double> %78, %80 %82 = insertelement <2 x double> poison, double %w1.0.i.i.5, i64 0 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> zeroinitializer %84 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %83, <2 x double> %77, <2 x double> %81) store <2 x double> %84, ptr %73, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %data.i5.i.i.i.i.i.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i.i.i.i.i.i.6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %85 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1 %w1.0.i.i.6 = load double, ptr %85, align 8, !noalias !5053, !noundef !3 %86 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1, i32 1 %w1.1.i.i.6 = load double, ptr %86, align 8, !noalias !5053, !noundef !3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %_6.i.i.i.6 = fneg double %w1.1.i.i.6 %88 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.6, align 8, !noalias !5053 %89 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.6, align 8, !noalias !5053 %90 = fadd <2 x double> %88, %89 store <2 x double> %90, ptr %data.i.i.i.i.i.i.6, align 8, !noalias !5053 %91 = fsub <2 x double> %88, %89 %92 = shufflevector <2 x double> %91, <2 x double> poison, <2 x i32> %93 = insertelement <2 x double> poison, double %_6.i.i.i.6, i64 0 %94 = insertelement <2 x double> %93, double %w1.1.i.i.6, i64 1 %95 = fmul <2 x double> %92, %94 %96 = insertelement <2 x double> poison, double %w1.0.i.i.6, i64 0 %97 = shufflevector <2 x double> %96, <2 x double> poison, <2 x i32> zeroinitializer %98 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %97, <2 x double> %91, <2 x double> %95) store <2 x double> %98, ptr %87, align 8, !noalias !5053 %data.i.i.i.i.i.i.i.i.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i5.i.i.i.i.i.i.i.7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i.7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %99 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 7, i64 1 %w1.0.i.i.7 = load double, ptr %99, align 8, !noalias !5053, !noundef !3 %100 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 7, i64 1, i32 1 %w1.1.i.i.7 = load double, ptr %100, align 8, !noalias !5053, !noundef !3 %101 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_6.i.i.i.7 = fneg double %w1.1.i.i.7 %102 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.7, align 8, !noalias !5053 %103 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.7, align 8, !noalias !5053 %104 = fadd <2 x double> %102, %103 store <2 x double> %104, ptr %data.i.i.i.i.i.i.7, align 8, !noalias !5053 %105 = fsub <2 x double> %102, %103 %106 = shufflevector <2 x double> %105, <2 x double> poison, <2 x i32> %107 = insertelement <2 x double> poison, double %_6.i.i.i.7, i64 0 %108 = insertelement <2 x double> %107, double %w1.1.i.i.7, i64 1 %109 = fmul <2 x double> %106, %108 %110 = insertelement <2 x double> poison, double %w1.0.i.i.7, i64 0 %111 = shufflevector <2 x double> %110, <2 x double> poison, <2 x i32> zeroinitializer %112 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %111, <2 x double> %105, <2 x double> %109) store <2 x double> %112, ptr %101, align 8, !noalias !5053 %w1.0.i.i43 = load double, ptr %1, align 8, !noalias !5056, !noundef !3 %w1.1.i.i44 = load double, ptr %2, align 8, !noalias !5056, !noundef !3 %_6.i.i.i64 = fneg double %w1.1.i.i44 %113 = load <4 x double>, ptr %scratch.0, align 8, !noalias !5056 %114 = load <4 x double>, ptr %data.i.i.i.i.i.i.4, align 8, !noalias !5056 %115 = fadd <4 x double> %113, %114 store <4 x double> %115, ptr %buf.0, align 8, !noalias !5056 %116 = fsub <4 x double> %113, %114 %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = insertelement <4 x double> poison, double %_6.i.i.i64, i64 0 %119 = insertelement <4 x double> %118, double %w1.1.i.i44, i64 1 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %117, %120 %122 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> zeroinitializer %124 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %123, <4 x double> %116, <4 x double> %121) store <4 x double> %124, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5056 %data.i5.i.i.i.i.i.i.i320.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %w1.0.i.i43.1 = load double, ptr %29, align 8, !noalias !5056, !noundef !3 %w1.1.i.i44.1 = load double, ptr %30, align 8, !noalias !5056, !noundef !3 %125 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %_6.i.i.i64.1 = fneg double %w1.1.i.i44.1 %126 = load <4 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5056 %127 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i320.1, align 8, !noalias !5056 %128 = fadd <4 x double> %126, %127 store <4 x double> %128, ptr %data.i.i.i.i.i.i.i.i.4, align 8, !noalias !5056 %129 = fsub <4 x double> %126, %127 %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = insertelement <4 x double> poison, double %_6.i.i.i64.1, i64 0 %132 = insertelement <4 x double> %131, double %w1.1.i.i44.1, i64 1 %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %130, %133 %135 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> zeroinitializer %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %136, <4 x double> %129, <4 x double> %134) store <4 x double> %137, ptr %125, align 8, !noalias !5056 %data.i5.i.i.i.i.i.i.i320.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %w1.0.i.i43.2 = load double, ptr %57, align 8, !noalias !5056, !noundef !3 %w1.1.i.i44.2 = load double, ptr %58, align 8, !noalias !5056, !noundef !3 %_6.i.i.i64.2 = fneg double %w1.1.i.i44.2 %data.i5.i.i.i.i.i.i.i320.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %data.i.i.i.i.i.i324.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %w1.0.i.i43.3 = load double, ptr %85, align 8, !noalias !5056, !noundef !3 %w1.1.i.i44.3 = load double, ptr %86, align 8, !noalias !5056, !noundef !3 %138 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_6.i.i.i64.3 = fneg double %w1.1.i.i44.3 %139 = load <4 x double>, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5056 %140 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i320.3, align 8, !noalias !5056 %141 = fadd <4 x double> %139, %140 store <4 x double> %141, ptr %data.i.i.i.i.i.i324.3, align 8, !noalias !5056 %142 = fsub <4 x double> %139, %140 %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = insertelement <4 x double> poison, double %_6.i.i.i64.3, i64 0 %145 = insertelement <4 x double> %144, double %w1.1.i.i44.3, i64 1 %146 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> %147 = fmul <4 x double> %143, %146 %148 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %150 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %149, <4 x double> %142, <4 x double> %147) store <4 x double> %150, ptr %138, align 8, !noalias !5056 %w1.0.i.i109 = load double, ptr %1, align 8, !noalias !5050, !noundef !3 %w1.1.i.i110 = load double, ptr %2, align 8, !noalias !5050, !noundef !3 %_6.i.i.i130 = fneg double %w1.1.i.i110 %151 = load <4 x double>, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5056 %152 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i320.2, align 8, !noalias !5056 %153 = fadd <4 x double> %151, %152 store <4 x double> %153, ptr %0, align 8, !noalias !5056 %154 = fsub <4 x double> %151, %152 %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = insertelement <4 x double> poison, double %_6.i.i.i64.2, i64 0 %157 = insertelement <4 x double> %156, double %w1.1.i.i44.2, i64 1 %158 = shufflevector <4 x double> %157, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %155, %158 %160 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %161 = shufflevector <4 x double> %160, <4 x double> poison, <4 x i32> zeroinitializer %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %161, <4 x double> %154, <4 x double> %159) store <4 x double> %162, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !5056 %163 = load <4 x double>, ptr %buf.0, align 8, !noalias !5050 %164 = fadd <4 x double> %163, %153 store <4 x double> %164, ptr %scratch.0, align 8, !noalias !5050 %165 = fsub <4 x double> %163, %153 %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = insertelement <4 x double> poison, double %_6.i.i.i130, i64 0 %168 = insertelement <4 x double> %167, double %w1.1.i.i110, i64 1 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = fmul <4 x double> %166, %169 %171 = insertelement <4 x double> poison, double %w1.0.i.i109, i64 0 %172 = shufflevector <4 x double> %171, <4 x double> poison, <4 x i32> zeroinitializer %173 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %172, <4 x double> %165, <4 x double> %170) store <4 x double> %173, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5050 %_3.i.i.i.i555.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %174 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5050 %175 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !5050 %176 = fadd <4 x double> %174, %175 store <4 x double> %176, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5050 %177 = fsub <4 x double> %174, %175 %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fmul <4 x double> %178, %169 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %172, <4 x double> %177, <4 x double> %179) store <4 x double> %180, ptr %_3.i.i.i.i555.2, align 8, !noalias !5050 %w1.0.i.i109.1 = load double, ptr %57, align 8, !noalias !5050, !noundef !3 %w1.1.i.i110.1 = load double, ptr %58, align 8, !noalias !5050, !noundef !3 %_6.i.i.i130.1 = fneg double %w1.1.i.i110.1 %181 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.4, align 8, !noalias !5050 %182 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.4, align 8, !noalias !5050 %183 = fadd <4 x double> %181, %182 store <4 x double> %183, ptr %data.i.i.i.i.i.i.4, align 8, !noalias !5050 %184 = fsub <4 x double> %181, %182 %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = insertelement <4 x double> poison, double %_6.i.i.i130.1, i64 0 %187 = insertelement <4 x double> %186, double %w1.1.i.i110.1, i64 1 %188 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %185, %188 %190 = insertelement <4 x double> poison, double %w1.0.i.i109.1, i64 0 %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> zeroinitializer %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %191, <4 x double> %184, <4 x double> %189) store <4 x double> %192, ptr %data.i5.i.i.i.i.i.i.i320.2, align 8, !noalias !5050 %_3.i2.i.i.i.i.i.i.i549.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %_3.i.i.i.i555.2.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %193 = load <4 x double>, ptr %125, align 8, !noalias !5050 %194 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i549.2.1, align 8, !noalias !5050 %195 = fadd <4 x double> %193, %194 store <4 x double> %195, ptr %data.i5.i.i.i.i.i.i.i320.1, align 8, !noalias !5050 %196 = fsub <4 x double> %193, %194 %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = fmul <4 x double> %197, %188 %199 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %191, <4 x double> %196, <4 x double> %198) store <4 x double> %199, ptr %_3.i.i.i.i555.2.1, align 8, !noalias !5050 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !5050 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %data.i.i.i.i.i.i.4, align 8, !noalias !5050 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %200 = fadd <4 x double> %strided.vec, %strided.vec3 %201 = fadd <4 x double> %strided.vec1, %strided.vec4 %202 = fsub <4 x double> %strided.vec, %strided.vec3 %203 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %200, <4 x double> %201, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !5050 %interleaved.vec5 = shufflevector <4 x double> %202, <4 x double> %203, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !5050 %204 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %205 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %wide.vec.1 = load <8 x double>, ptr %204, align 8, !noalias !5050 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %205, align 8, !noalias !5050 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %206 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %207 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %208 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %209 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %210 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %206, <4 x double> %207, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %210, align 8, !noalias !5050 %211 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec5.1 = shufflevector <4 x double> %208, <4 x double> %209, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %211, align 8, !noalias !5050 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5050 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc7659f76a4ab3799E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5059 store i64 256, ptr %n.i, align 8, !noalias !5059 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5059 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5059 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5059 store ptr null, ptr %_16.i, align 8, !noalias !5059 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5059 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5059 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5059 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5059 store ptr null, ptr %_24.i, align 8, !noalias !5059 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5059 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5059 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5059 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5059 store ptr null, ptr %_32.i, align 8, !noalias !5059 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5059 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5059 store i64 %w.1, ptr %_34.i, align 8, !noalias !5059 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9db63aca6c536c43E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5059 store ptr null, ptr %_40.i, align 8, !noalias !5059 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9db63aca6c536c43E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5059 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9db63aca6c536c43E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9db63aca6c536c43E.exit" ], [ %index.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !5062 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %4, align 8, !noalias !5062 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %5, align 8, !noalias !5062 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %6, align 8, !noalias !5062 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec, %strided.vec6 %8 = fadd <4 x double> %strided.vec1, %strided.vec7 %9 = fsub <4 x double> %strided.vec, %strided.vec6 %10 = fsub <4 x double> %strided.vec1, %strided.vec7 %11 = fadd <4 x double> %strided.vec3, %strided.vec9 %12 = fadd <4 x double> %strided.vec4, %strided.vec10 %13 = fsub <4 x double> %strided.vec3, %strided.vec9 %14 = fsub <4 x double> %strided.vec4, %strided.vec10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %12 %17 = fsub <4 x double> %9, %14 %18 = fadd <4 x double> %10, %13 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %12 %21 = fadd <4 x double> %9, %14 %22 = fsub <4 x double> %10, %13 %interleaved.vec = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec, ptr %3, align 8, !noalias !5062 %interleaved.vec11 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !5062 %interleaved.vec12 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !5062 %interleaved.vec13 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec13, ptr %6, align 8, !noalias !5062 %index.next = add nuw i64 %index, 4 %23 = icmp eq i64 %index.next, 64 br i1 %23, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !5065 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 br label %bb32.i.i.i154 bb32.i.i.i154: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block14 %iter.i.i.i56.sroa.104.0121 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ %153, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0121, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0121, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %31 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %32 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %33 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %34 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %35 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %36 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %37 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i186 = load double, ptr %38, align 8, !noalias !5059, !noundef !3 %_6.i.i.i.i306 = fneg double %w7.1.i.i.i186 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i184 = load double, ptr %39, align 8, !noalias !5059, !noundef !3 %_6.i166.i.i.i301 = fneg double %w6.1.i.i.i184 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i182 = load double, ptr %40, align 8, !noalias !5059, !noundef !3 %_6.i169.i.i.i296 = fneg double %w5.1.i.i.i182 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i180 = load double, ptr %41, align 8, !noalias !5059, !noundef !3 %_6.i172.i.i.i291 = fneg double %w4.1.i.i.i180 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i178 = load double, ptr %42, align 8, !noalias !5059, !noundef !3 %_6.i175.i.i.i286 = fneg double %w3.1.i.i.i178 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i176 = load double, ptr %43, align 8, !noalias !5059, !noundef !3 %_6.i178.i.i.i281 = fneg double %w2.1.i.i.i176 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i174 = load double, ptr %44, align 8, !noalias !5059, !noundef !3 %_6.i181.i.i.i276 = fneg double %w1.1.i.i.i174 %45 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i185 = load double, ptr %45, align 8, !noalias !5059, !noundef !3 %46 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i183 = load double, ptr %46, align 8, !noalias !5059, !noundef !3 %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i181 = load double, ptr %47, align 8, !noalias !5059, !noundef !3 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i179 = load double, ptr %48, align 8, !noalias !5059, !noundef !3 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i177 = load double, ptr %49, align 8, !noalias !5059, !noundef !3 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i175 = load double, ptr %50, align 8, !noalias !5059, !noundef !3 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i173 = load double, ptr %51, align 8, !noalias !5059, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i276, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i173, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i174, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i178.i.i.i281, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i175, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i176, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i175.i.i.i286, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i177, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i178, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert51 = insertelement <4 x double> poison, double %_6.i172.i.i.i291, i64 0 %broadcast.splat52 = shufflevector <4 x double> %broadcast.splatinsert51, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert53 = insertelement <4 x double> poison, double %w4.0.i.i.i179, i64 0 %broadcast.splat54 = shufflevector <4 x double> %broadcast.splatinsert53, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert55 = insertelement <4 x double> poison, double %w4.1.i.i.i180, i64 0 %broadcast.splat56 = shufflevector <4 x double> %broadcast.splatinsert55, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %_6.i169.i.i.i296, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w5.0.i.i.i181, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert64 = insertelement <4 x double> poison, double %w5.1.i.i.i182, i64 0 %broadcast.splat65 = shufflevector <4 x double> %broadcast.splatinsert64, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert69 = insertelement <4 x double> poison, double %_6.i166.i.i.i301, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %w6.0.i.i.i183, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w6.1.i.i.i184, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i.i.i.i306, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w7.0.i.i.i185, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w7.1.i.i.i186, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body18 vector.body18: ; preds = %vector.body18, %bb32.i.i.i154 %index19 = phi i64 [ 0, %bb32.i.i.i154 ], [ %index.next92, %vector.body18 ] %52 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index19 %53 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %index19 %54 = getelementptr inbounds %"num_complex::Complex", ptr %32, i64 %index19 %55 = getelementptr inbounds %"num_complex::Complex", ptr %34, i64 %index19 %56 = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %index19 %57 = getelementptr inbounds %"num_complex::Complex", ptr %36, i64 %index19 %58 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 %index19 %59 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %index19 %wide.vec20 = load <8 x double>, ptr %52, align 8, !noalias !5059 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %53, align 8, !noalias !5059 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %60 = fmul <4 x double> %strided.vec25, %broadcast.splat %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %60) %62 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %62) %wide.vec30 = load <8 x double>, ptr %54, align 8, !noalias !5059 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %64 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %64) %66 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %66) %wide.vec39 = load <8 x double>, ptr %55, align 8, !noalias !5059 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %68 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %68) %70 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %70) %wide.vec48 = load <8 x double>, ptr %56, align 8, !noalias !5059 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %72 = fmul <4 x double> %strided.vec50, %broadcast.splat52 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec49, <4 x double> %72) %74 = fmul <4 x double> %broadcast.splat56, %strided.vec49 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec50, <4 x double> %74) %wide.vec57 = load <8 x double>, ptr %57, align 8, !noalias !5059 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %76 = fmul <4 x double> %strided.vec59, %broadcast.splat61 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec58, <4 x double> %76) %78 = fmul <4 x double> %broadcast.splat65, %strided.vec58 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec59, <4 x double> %78) %wide.vec66 = load <8 x double>, ptr %58, align 8, !noalias !5059 %strided.vec67 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %strided.vec68 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %80 = fmul <4 x double> %strided.vec68, %broadcast.splat70 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec67, <4 x double> %80) %82 = fmul <4 x double> %broadcast.splat74, %strided.vec67 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec68, <4 x double> %82) %wide.vec75 = load <8 x double>, ptr %59, align 8, !noalias !5059 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %84 = fmul <4 x double> %strided.vec77, %broadcast.splat79 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec76, <4 x double> %84) %86 = fmul <4 x double> %broadcast.splat83, %strided.vec76 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec77, <4 x double> %86) %88 = fadd <4 x double> %strided.vec21, %73 %89 = fadd <4 x double> %strided.vec22, %75 %90 = fsub <4 x double> %strided.vec21, %73 %91 = fsub <4 x double> %strided.vec22, %75 %92 = fadd <4 x double> %65, %81 %93 = fadd <4 x double> %67, %83 %94 = fsub <4 x double> %65, %81 %95 = fsub <4 x double> %67, %83 %96 = fadd <4 x double> %61, %77 %97 = fadd <4 x double> %63, %79 %98 = fsub <4 x double> %61, %77 %99 = fsub <4 x double> %63, %79 %100 = fadd <4 x double> %69, %85 %101 = fadd <4 x double> %71, %87 %102 = fsub <4 x double> %69, %85 %103 = fsub <4 x double> %71, %87 %104 = fadd <4 x double> %88, %92 %105 = fadd <4 x double> %89, %93 %106 = fadd <4 x double> %96, %100 %107 = fadd <4 x double> %97, %101 %108 = fadd <4 x double> %104, %106 %109 = fadd <4 x double> %105, %107 %110 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec84 = shufflevector <4 x double> %108, <4 x double> %109, <8 x i32> store <8 x double> %interleaved.vec84, ptr %110, align 8, !noalias !5059 %111 = fsub <4 x double> %104, %106 %112 = fsub <4 x double> %105, %107 %113 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec85 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> store <8 x double> %interleaved.vec85, ptr %113, align 8, !noalias !5059 %114 = fsub <4 x double> %90, %95 %115 = fadd <4 x double> %91, %94 %116 = fsub <4 x double> %98, %103 %117 = fadd <4 x double> %99, %102 %118 = fsub <4 x double> %116, %117 %119 = fadd <4 x double> %116, %117 %120 = fmul <4 x double> %118, %121 = fmul <4 x double> %119, %122 = fadd <4 x double> %114, %120 %123 = fadd <4 x double> %115, %121 %124 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec86 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec86, ptr %124, align 8, !noalias !5059 %125 = fsub <4 x double> %114, %120 %126 = fsub <4 x double> %115, %121 %127 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec87 = shufflevector <4 x double> %125, <4 x double> %126, <8 x i32> store <8 x double> %interleaved.vec87, ptr %127, align 8, !noalias !5059 %128 = fsub <4 x double> %88, %92 %129 = fsub <4 x double> %89, %93 %130 = fsub <4 x double> %96, %100 %131 = fsub <4 x double> %97, %101 %132 = fsub <4 x double> %128, %131 %133 = fadd <4 x double> %129, %130 %134 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec88 = shufflevector <4 x double> %132, <4 x double> %133, <8 x i32> store <8 x double> %interleaved.vec88, ptr %134, align 8, !noalias !5059 %135 = fadd <4 x double> %128, %131 %136 = fsub <4 x double> %129, %130 %137 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec89 = shufflevector <4 x double> %135, <4 x double> %136, <8 x i32> store <8 x double> %interleaved.vec89, ptr %137, align 8, !noalias !5059 %138 = fadd <4 x double> %90, %95 %139 = fsub <4 x double> %91, %94 %140 = fadd <4 x double> %98, %103 %141 = fsub <4 x double> %99, %102 %142 = fadd <4 x double> %140, %141 %143 = fsub <4 x double> %141, %140 %144 = fmul <4 x double> %142, %145 = fmul <4 x double> %143, %146 = fsub <4 x double> %138, %144 %147 = fsub <4 x double> %139, %145 %148 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec90 = shufflevector <4 x double> %146, <4 x double> %147, <8 x i32> store <8 x double> %interleaved.vec90, ptr %148, align 8, !noalias !5059 %149 = fadd <4 x double> %138, %144 %150 = fadd <4 x double> %139, %145 %151 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec91 = shufflevector <4 x double> %149, <4 x double> %150, <8 x i32> store <8 x double> %interleaved.vec91, ptr %151, align 8, !noalias !5059 %index.next92 = add nuw i64 %index19, 4 %152 = icmp eq i64 %index.next92, 8 br i1 %152, label %middle.block14, label %vector.body18, !llvm.loop !5066 middle.block14: ; preds = %vector.body18 %153 = add nuw nsw i64 %iter.i.i.i56.sroa.104.0121, 1 %exitcond126.not = icmp eq i64 %153, 4 br i1 %exitcond126.not, label %bb32.i.i.i.preheader, label %bb32.i.i.i154 bb32.i.i.i.preheader: ; preds = %middle.block14 %154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %155 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %157 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 br label %vector.body97 vector.body97: ; preds = %vector.body97, %bb32.i.i.i.preheader %index98 = phi i64 [ 0, %bb32.i.i.i.preheader ], [ %index.next136, %vector.body97 ] %vec.ind = phi <4 x i64> [ , %bb32.i.i.i.preheader ], [ %vec.ind.next, %vector.body97 ] %158 = shl <4 x i64> %vec.ind, %159 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %158 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %165 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %166 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %167 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %168 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %169 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %169, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %170 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %171 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %172 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %173 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %174 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 4 %175 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 2 %176 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 1 %177 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 3 %178 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 6 %179 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 5 %180 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 7 %181 = fneg <4 x double> %wide.masked.gather99 %182 = fneg <4 x double> %wide.masked.gather101 %183 = fneg <4 x double> %wide.masked.gather103 %184 = fneg <4 x double> %wide.masked.gather105 %185 = fneg <4 x double> %wide.masked.gather107 %186 = fneg <4 x double> %wide.masked.gather109 %187 = fneg <4 x double> %wide.masked.gather111 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %188 = getelementptr inbounds i8, <4 x ptr> %159, i64 8 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %176, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %189 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 1, i32 1 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %189, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %190 = fmul <4 x double> %wide.masked.gather115, %181 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather114, <4 x double> %190) %192 = fmul <4 x double> %wide.masked.gather99, %wide.masked.gather114 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather115, <4 x double> %192) %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %175, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %194 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 2, i32 1 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %194, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %195 = fmul <4 x double> %wide.masked.gather117, %182 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather116, <4 x double> %195) %197 = fmul <4 x double> %wide.masked.gather101, %wide.masked.gather116 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather117, <4 x double> %197) %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 3, i32 1 %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %200 = fmul <4 x double> %wide.masked.gather119, %183 %201 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather118, <4 x double> %200) %202 = fmul <4 x double> %wide.masked.gather103, %wide.masked.gather118 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather119, <4 x double> %202) %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %174, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %204 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 4, i32 1 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %204, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %205 = fmul <4 x double> %wide.masked.gather121, %184 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather104, <4 x double> %wide.masked.gather120, <4 x double> %205) %207 = fmul <4 x double> %wide.masked.gather105, %wide.masked.gather120 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather104, <4 x double> %wide.masked.gather121, <4 x double> %207) %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %179, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %209 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 5, i32 1 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %209, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %210 = fmul <4 x double> %wide.masked.gather123, %185 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather106, <4 x double> %wide.masked.gather122, <4 x double> %210) %212 = fmul <4 x double> %wide.masked.gather107, %wide.masked.gather122 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather106, <4 x double> %wide.masked.gather123, <4 x double> %212) %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %214 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 6, i32 1 %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %214, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %215 = fmul <4 x double> %wide.masked.gather125, %186 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather108, <4 x double> %wide.masked.gather124, <4 x double> %215) %217 = fmul <4 x double> %wide.masked.gather109, %wide.masked.gather124 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather108, <4 x double> %wide.masked.gather125, <4 x double> %217) %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %180, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %219 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %159, i64 7, i32 1 %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %219, i32 8, <4 x i1> , <4 x double> poison), !noalias !5059 %220 = fmul <4 x double> %wide.masked.gather127, %187 %221 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather110, <4 x double> %wide.masked.gather126, <4 x double> %220) %222 = fmul <4 x double> %wide.masked.gather111, %wide.masked.gather126 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather110, <4 x double> %wide.masked.gather127, <4 x double> %222) %224 = fadd <4 x double> %wide.masked.gather112, %206 %225 = fadd <4 x double> %wide.masked.gather113, %208 %226 = fsub <4 x double> %wide.masked.gather112, %206 %227 = fsub <4 x double> %wide.masked.gather113, %208 %228 = fadd <4 x double> %196, %216 %229 = fadd <4 x double> %198, %218 %230 = fsub <4 x double> %196, %216 %231 = fsub <4 x double> %198, %218 %232 = fadd <4 x double> %191, %211 %233 = fadd <4 x double> %193, %213 %234 = fsub <4 x double> %191, %211 %235 = fsub <4 x double> %193, %213 %236 = fadd <4 x double> %201, %221 %237 = fadd <4 x double> %203, %223 %238 = fsub <4 x double> %201, %221 %239 = fsub <4 x double> %203, %223 %240 = fadd <4 x double> %224, %228 %241 = fadd <4 x double> %225, %229 %242 = fadd <4 x double> %232, %236 %243 = fadd <4 x double> %233, %237 %244 = fadd <4 x double> %240, %242 %245 = fadd <4 x double> %241, %243 %246 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index98 %interleaved.vec128 = shufflevector <4 x double> %244, <4 x double> %245, <8 x i32> store <8 x double> %interleaved.vec128, ptr %246, align 8, !noalias !5059 %247 = fsub <4 x double> %240, %242 %248 = fsub <4 x double> %241, %243 %249 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index98 %interleaved.vec129 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec129, ptr %249, align 8, !noalias !5059 %250 = fsub <4 x double> %226, %231 %251 = fadd <4 x double> %227, %230 %252 = fsub <4 x double> %234, %239 %253 = fadd <4 x double> %235, %238 %254 = fsub <4 x double> %252, %253 %255 = fadd <4 x double> %252, %253 %256 = fmul <4 x double> %254, %257 = fmul <4 x double> %255, %258 = fadd <4 x double> %250, %256 %259 = fadd <4 x double> %251, %257 %260 = getelementptr inbounds %"num_complex::Complex", ptr %154, i64 %index98 %interleaved.vec130 = shufflevector <4 x double> %258, <4 x double> %259, <8 x i32> store <8 x double> %interleaved.vec130, ptr %260, align 8, !noalias !5059 %261 = fsub <4 x double> %250, %256 %262 = fsub <4 x double> %251, %257 %263 = getelementptr inbounds %"num_complex::Complex", ptr %156, i64 %index98 %interleaved.vec131 = shufflevector <4 x double> %261, <4 x double> %262, <8 x i32> store <8 x double> %interleaved.vec131, ptr %263, align 8, !noalias !5059 %264 = fsub <4 x double> %224, %228 %265 = fsub <4 x double> %225, %229 %266 = fsub <4 x double> %232, %236 %267 = fsub <4 x double> %233, %237 %268 = fsub <4 x double> %264, %267 %269 = fadd <4 x double> %265, %266 %270 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index98 %interleaved.vec132 = shufflevector <4 x double> %268, <4 x double> %269, <8 x i32> store <8 x double> %interleaved.vec132, ptr %270, align 8, !noalias !5059 %271 = fadd <4 x double> %264, %267 %272 = fsub <4 x double> %265, %266 %273 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index98 %interleaved.vec133 = shufflevector <4 x double> %271, <4 x double> %272, <8 x i32> store <8 x double> %interleaved.vec133, ptr %273, align 8, !noalias !5059 %274 = fadd <4 x double> %226, %231 %275 = fsub <4 x double> %227, %230 %276 = fadd <4 x double> %234, %239 %277 = fsub <4 x double> %235, %238 %278 = fadd <4 x double> %276, %277 %279 = fsub <4 x double> %277, %276 %280 = fmul <4 x double> %278, %281 = fmul <4 x double> %279, %282 = fsub <4 x double> %274, %280 %283 = fsub <4 x double> %275, %281 %284 = getelementptr inbounds %"num_complex::Complex", ptr %155, i64 %index98 %interleaved.vec134 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec134, ptr %284, align 8, !noalias !5059 %285 = fadd <4 x double> %274, %280 %286 = fadd <4 x double> %275, %281 %287 = getelementptr inbounds %"num_complex::Complex", ptr %157, i64 %index98 %interleaved.vec135 = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec135, ptr %287, align 8, !noalias !5059 %index.next136 = add nuw i64 %index98, 4 %vec.ind.next = add <4 x i64> %vec.ind, %288 = icmp eq i64 %index.next136, 32 br i1 %288, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ebf3ef135e9b583E.exit", label %vector.body97, !llvm.loop !5067 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4ebf3ef135e9b583E.exit": ; preds = %vector.body97 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5059 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc795e8e3a1c9b55cE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5068 store i64 256, ptr %n.i, align 8, !noalias !5068 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5068 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5068 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5068 store ptr null, ptr %_16.i, align 8, !noalias !5068 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5068 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5068 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5068 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5068 store ptr null, ptr %_24.i, align 8, !noalias !5068 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5068 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5068 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5068 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5068 store ptr null, ptr %_32.i, align 8, !noalias !5068 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5068 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5068 store i64 %w.1, ptr %_34.i, align 8, !noalias !5068 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5068 store ptr null, ptr %_40.i, align 8, !noalias !5068 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5068 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !5068 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !5068 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !5068 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !5068 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !5068 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !5068 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !5068 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !5068 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !5068 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !5068 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !5068 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !5068 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !5068 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !5068 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !5068 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !5068 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !5068 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fsub <4 x double> %147, %152 %180 = fadd <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fadd <4 x double> %147, %152 %184 = fsub <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fsub <4 x double> %155, %160 %188 = fadd <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fadd <4 x double> %155, %160 %192 = fsub <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fsub <4 x double> %163, %168 %196 = fadd <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fadd <4 x double> %163, %168 %200 = fsub <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fsub <4 x double> %171, %176 %204 = fadd <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fadd <4 x double> %171, %176 %208 = fsub <4 x double> %172, %175 %209 = fsub <4 x double> %187, %188 %210 = fadd <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fadd <4 x double> %192, %191 %214 = fsub <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fsub <4 x double> %181, %190 %222 = fadd <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fadd <4 x double> %181, %190 %230 = fsub <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fsub <4 x double> %203, %204 %234 = fadd <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fadd <4 x double> %208, %207 %238 = fsub <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fsub <4 x double> %197, %206 %246 = fadd <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fadd <4 x double> %197, %206 %254 = fsub <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fsub <4 x double> %245, %246 %262 = fadd <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fadd <4 x double> %254, %253 %274 = fsub <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !5068 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !5068 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !5068 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !5068 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !5068 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !5068 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !5068 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !5068 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !5068 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !5068 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !5068 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !5068 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !5068 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !5068 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !5068 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !5068 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !5068 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !5068 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !5068 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !5068 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !5068 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !5068 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !5068 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !5068 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !5068 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !5068 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !5068 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !5068 %341 = fsub <4 x double> %225, %250 %342 = fadd <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !5068 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !5068 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !5068 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !5068 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !5068 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !5068 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !5068 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !5068 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !5068 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !5068 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !5068 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !5068 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !5068 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !5068 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !5068 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !5068 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !5068 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !5068 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !5068 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !5068 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !5068 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !5068 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !5068 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !5068 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !5068 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !5068 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !5068 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !5068 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !5068 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !5068 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !5068 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !5068 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !5068 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !5068 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !5068 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !5068 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !5068 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !5068 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !5068 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !5068 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !5068 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !5068 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !5068 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !5068 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !5068 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !5068 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !5068 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !5068 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !5068 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !5068 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !5068 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !5068 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !5068 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !5068 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !5068 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !5068 %469 = fadd <4 x double> %225, %250 %470 = fsub <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !5068 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !5068 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !5068 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !5068 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !5068 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !5068 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !5068 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !5068 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !5068 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !5068 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !5068 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !5068 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !5068 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !5068 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !5068 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !5068 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !5068 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !5068 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !5068 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !5068 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !5068 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !5068 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !5068 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !5068 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !5068 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !5068 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !5068 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !5068 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 16 br i1 %533, label %bb62.i.i.i.preheader, label %vector.body, !llvm.loop !5071 bb62.i.i.i.preheader: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %542 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %543 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb62.i.i.i.preheader %index81 = phi i64 [ 0, %bb62.i.i.i.preheader ], [ %index.next145, %vector.body80 ] %549 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index81 %550 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %index81 %551 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %index81 %552 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %index81 %553 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %index81 %554 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %index81 %555 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %index81 %556 = getelementptr inbounds %"num_complex::Complex", ptr %541, i64 %index81 %557 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %index81 %558 = getelementptr inbounds %"num_complex::Complex", ptr %544, i64 %index81 %559 = getelementptr inbounds %"num_complex::Complex", ptr %543, i64 %index81 %560 = getelementptr inbounds %"num_complex::Complex", ptr %545, i64 %index81 %561 = getelementptr inbounds %"num_complex::Complex", ptr %542, i64 %index81 %562 = getelementptr inbounds %"num_complex::Complex", ptr %547, i64 %index81 %563 = getelementptr inbounds %"num_complex::Complex", ptr %546, i64 %index81 %564 = getelementptr inbounds %"num_complex::Complex", ptr %548, i64 %index81 %wide.vec82 = load <8 x double>, ptr %549, align 8, !noalias !5068 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %550, align 8, !noalias !5068 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %551, align 8, !noalias !5068 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %552, align 8, !noalias !5068 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %553, align 8, !noalias !5068 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %554, align 8, !noalias !5068 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %555, align 8, !noalias !5068 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %556, align 8, !noalias !5068 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %wide.vec106 = load <8 x double>, ptr %557, align 8, !noalias !5068 %strided.vec107 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %strided.vec108 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %wide.vec109 = load <8 x double>, ptr %558, align 8, !noalias !5068 %strided.vec110 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %strided.vec111 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %wide.vec112 = load <8 x double>, ptr %559, align 8, !noalias !5068 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %wide.vec115 = load <8 x double>, ptr %560, align 8, !noalias !5068 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %561, align 8, !noalias !5068 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %wide.vec121 = load <8 x double>, ptr %562, align 8, !noalias !5068 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %wide.vec124 = load <8 x double>, ptr %563, align 8, !noalias !5068 %strided.vec125 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %strided.vec126 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %wide.vec127 = load <8 x double>, ptr %564, align 8, !noalias !5068 %strided.vec128 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %strided.vec129 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %565 = fadd <4 x double> %strided.vec83, %strided.vec107 %566 = fadd <4 x double> %strided.vec84, %strided.vec108 %567 = fsub <4 x double> %strided.vec83, %strided.vec107 %568 = fsub <4 x double> %strided.vec84, %strided.vec108 %569 = fadd <4 x double> %strided.vec95, %strided.vec119 %570 = fadd <4 x double> %strided.vec96, %strided.vec120 %571 = fsub <4 x double> %strided.vec95, %strided.vec119 %572 = fsub <4 x double> %strided.vec96, %strided.vec120 %573 = fadd <4 x double> %strided.vec89, %strided.vec113 %574 = fadd <4 x double> %strided.vec90, %strided.vec114 %575 = fsub <4 x double> %strided.vec89, %strided.vec113 %576 = fsub <4 x double> %strided.vec90, %strided.vec114 %577 = fadd <4 x double> %strided.vec101, %strided.vec125 %578 = fadd <4 x double> %strided.vec102, %strided.vec126 %579 = fsub <4 x double> %strided.vec101, %strided.vec125 %580 = fsub <4 x double> %strided.vec102, %strided.vec126 %581 = fadd <4 x double> %strided.vec86, %strided.vec110 %582 = fadd <4 x double> %strided.vec87, %strided.vec111 %583 = fsub <4 x double> %strided.vec86, %strided.vec110 %584 = fsub <4 x double> %strided.vec87, %strided.vec111 %585 = fadd <4 x double> %strided.vec98, %strided.vec122 %586 = fadd <4 x double> %strided.vec99, %strided.vec123 %587 = fsub <4 x double> %strided.vec98, %strided.vec122 %588 = fsub <4 x double> %strided.vec99, %strided.vec123 %589 = fadd <4 x double> %strided.vec92, %strided.vec116 %590 = fadd <4 x double> %strided.vec93, %strided.vec117 %591 = fsub <4 x double> %strided.vec92, %strided.vec116 %592 = fsub <4 x double> %strided.vec93, %strided.vec117 %593 = fadd <4 x double> %strided.vec104, %strided.vec128 %594 = fadd <4 x double> %strided.vec105, %strided.vec129 %595 = fsub <4 x double> %strided.vec104, %strided.vec128 %596 = fsub <4 x double> %strided.vec105, %strided.vec129 %597 = fadd <4 x double> %565, %569 %598 = fadd <4 x double> %566, %570 %599 = fsub <4 x double> %567, %572 %600 = fadd <4 x double> %568, %571 %601 = fsub <4 x double> %565, %569 %602 = fsub <4 x double> %566, %570 %603 = fadd <4 x double> %567, %572 %604 = fsub <4 x double> %568, %571 %605 = fadd <4 x double> %573, %577 %606 = fadd <4 x double> %574, %578 %607 = fsub <4 x double> %575, %580 %608 = fadd <4 x double> %576, %579 %609 = fsub <4 x double> %573, %577 %610 = fsub <4 x double> %574, %578 %611 = fadd <4 x double> %575, %580 %612 = fsub <4 x double> %576, %579 %613 = fadd <4 x double> %581, %585 %614 = fadd <4 x double> %582, %586 %615 = fsub <4 x double> %583, %588 %616 = fadd <4 x double> %584, %587 %617 = fsub <4 x double> %581, %585 %618 = fsub <4 x double> %582, %586 %619 = fadd <4 x double> %583, %588 %620 = fsub <4 x double> %584, %587 %621 = fadd <4 x double> %589, %593 %622 = fadd <4 x double> %590, %594 %623 = fsub <4 x double> %591, %596 %624 = fadd <4 x double> %592, %595 %625 = fsub <4 x double> %589, %593 %626 = fsub <4 x double> %590, %594 %627 = fadd <4 x double> %591, %596 %628 = fsub <4 x double> %592, %595 %629 = fsub <4 x double> %607, %608 %630 = fadd <4 x double> %608, %607 %631 = fmul <4 x double> %629, %632 = fmul <4 x double> %630, %633 = fadd <4 x double> %612, %611 %634 = fsub <4 x double> %612, %611 %635 = fmul <4 x double> %633, %636 = fmul <4 x double> %634, %637 = fadd <4 x double> %597, %605 %638 = fadd <4 x double> %598, %606 %639 = fadd <4 x double> %599, %631 %640 = fadd <4 x double> %600, %632 %641 = fsub <4 x double> %601, %610 %642 = fadd <4 x double> %602, %609 %643 = fsub <4 x double> %603, %635 %644 = fsub <4 x double> %604, %636 %645 = fsub <4 x double> %597, %605 %646 = fsub <4 x double> %598, %606 %647 = fsub <4 x double> %599, %631 %648 = fsub <4 x double> %600, %632 %649 = fadd <4 x double> %601, %610 %650 = fsub <4 x double> %602, %609 %651 = fadd <4 x double> %603, %635 %652 = fadd <4 x double> %604, %636 %653 = fsub <4 x double> %623, %624 %654 = fadd <4 x double> %624, %623 %655 = fmul <4 x double> %653, %656 = fmul <4 x double> %654, %657 = fadd <4 x double> %628, %627 %658 = fsub <4 x double> %628, %627 %659 = fmul <4 x double> %657, %660 = fmul <4 x double> %658, %661 = fadd <4 x double> %613, %621 %662 = fadd <4 x double> %614, %622 %663 = fadd <4 x double> %615, %655 %664 = fadd <4 x double> %616, %656 %665 = fsub <4 x double> %617, %626 %666 = fadd <4 x double> %618, %625 %667 = fsub <4 x double> %619, %659 %668 = fsub <4 x double> %620, %660 %669 = fsub <4 x double> %613, %621 %670 = fsub <4 x double> %614, %622 %671 = fsub <4 x double> %615, %655 %672 = fsub <4 x double> %616, %656 %673 = fadd <4 x double> %617, %626 %674 = fsub <4 x double> %618, %625 %675 = fadd <4 x double> %619, %659 %676 = fadd <4 x double> %620, %660 %677 = fmul <4 x double> %664, %678 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %663, <4 x double> , <4 x double> %677) %679 = fmul <4 x double> %663, %680 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %664, <4 x double> , <4 x double> %679) %681 = fsub <4 x double> %665, %666 %682 = fadd <4 x double> %666, %665 %683 = fmul <4 x double> %681, %684 = fmul <4 x double> %682, %685 = fmul <4 x double> %668, %686 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %667, <4 x double> , <4 x double> %685) %687 = fmul <4 x double> %667, %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %668, <4 x double> , <4 x double> %687) %689 = fmul <4 x double> %672, %690 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %671, <4 x double> , <4 x double> %689) %691 = fmul <4 x double> %671, %692 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %672, <4 x double> , <4 x double> %691) %693 = fadd <4 x double> %674, %673 %694 = fsub <4 x double> %674, %673 %695 = fmul <4 x double> %693, %696 = fmul <4 x double> %694, %697 = fmul <4 x double> %676, %698 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %675, <4 x double> , <4 x double> %697) %699 = fmul <4 x double> %675, %700 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %676, <4 x double> , <4 x double> %699) %701 = fadd <4 x double> %637, %661 %702 = fadd <4 x double> %638, %662 %703 = fadd <4 x double> %639, %678 %704 = fadd <4 x double> %640, %680 %705 = fadd <4 x double> %641, %683 %706 = fadd <4 x double> %642, %684 %707 = fadd <4 x double> %643, %686 %708 = fadd <4 x double> %644, %688 %709 = fsub <4 x double> %645, %670 %710 = fadd <4 x double> %646, %669 %711 = fsub <4 x double> %647, %690 %712 = fsub <4 x double> %648, %692 %713 = fsub <4 x double> %649, %695 %714 = fsub <4 x double> %650, %696 %715 = fsub <4 x double> %651, %698 %716 = fsub <4 x double> %652, %700 %717 = fsub <4 x double> %637, %661 %718 = fsub <4 x double> %638, %662 %719 = fsub <4 x double> %639, %678 %720 = fsub <4 x double> %640, %680 %721 = fsub <4 x double> %641, %683 %722 = fsub <4 x double> %642, %684 %723 = fsub <4 x double> %643, %686 %724 = fsub <4 x double> %644, %688 %725 = fadd <4 x double> %645, %670 %726 = fsub <4 x double> %646, %669 %727 = fadd <4 x double> %647, %690 %728 = fadd <4 x double> %648, %692 %729 = fadd <4 x double> %649, %695 %730 = fadd <4 x double> %650, %696 %731 = fadd <4 x double> %651, %698 %732 = fadd <4 x double> %652, %700 %733 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index81 %interleaved.vec = shufflevector <4 x double> %701, <4 x double> %702, <8 x i32> store <8 x double> %interleaved.vec, ptr %733, align 8, !noalias !5068 %734 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index81 %interleaved.vec130 = shufflevector <4 x double> %703, <4 x double> %704, <8 x i32> store <8 x double> %interleaved.vec130, ptr %734, align 8, !noalias !5068 %735 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index81 %interleaved.vec131 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec131, ptr %735, align 8, !noalias !5068 %736 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index81 %interleaved.vec132 = shufflevector <4 x double> %707, <4 x double> %708, <8 x i32> store <8 x double> %interleaved.vec132, ptr %736, align 8, !noalias !5068 %737 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index81 %interleaved.vec133 = shufflevector <4 x double> %709, <4 x double> %710, <8 x i32> store <8 x double> %interleaved.vec133, ptr %737, align 8, !noalias !5068 %738 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index81 %interleaved.vec134 = shufflevector <4 x double> %711, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec134, ptr %738, align 8, !noalias !5068 %739 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index81 %interleaved.vec135 = shufflevector <4 x double> %713, <4 x double> %714, <8 x i32> store <8 x double> %interleaved.vec135, ptr %739, align 8, !noalias !5068 %740 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index81 %interleaved.vec136 = shufflevector <4 x double> %715, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec136, ptr %740, align 8, !noalias !5068 %741 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index81 %interleaved.vec137 = shufflevector <4 x double> %717, <4 x double> %718, <8 x i32> store <8 x double> %interleaved.vec137, ptr %741, align 8, !noalias !5068 %742 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index81 %interleaved.vec138 = shufflevector <4 x double> %719, <4 x double> %720, <8 x i32> store <8 x double> %interleaved.vec138, ptr %742, align 8, !noalias !5068 %743 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index81 %interleaved.vec139 = shufflevector <4 x double> %721, <4 x double> %722, <8 x i32> store <8 x double> %interleaved.vec139, ptr %743, align 8, !noalias !5068 %744 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index81 %interleaved.vec140 = shufflevector <4 x double> %723, <4 x double> %724, <8 x i32> store <8 x double> %interleaved.vec140, ptr %744, align 8, !noalias !5068 %745 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index81 %interleaved.vec141 = shufflevector <4 x double> %725, <4 x double> %726, <8 x i32> store <8 x double> %interleaved.vec141, ptr %745, align 8, !noalias !5068 %746 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index81 %interleaved.vec142 = shufflevector <4 x double> %727, <4 x double> %728, <8 x i32> store <8 x double> %interleaved.vec142, ptr %746, align 8, !noalias !5068 %747 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index81 %interleaved.vec143 = shufflevector <4 x double> %729, <4 x double> %730, <8 x i32> store <8 x double> %interleaved.vec143, ptr %747, align 8, !noalias !5068 %748 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index81 %interleaved.vec144 = shufflevector <4 x double> %731, <4 x double> %732, <8 x i32> store <8 x double> %interleaved.vec144, ptr %748, align 8, !noalias !5068 %index.next145 = add nuw i64 %index81, 4 %749 = icmp eq i64 %index.next145, 16 br i1 %749, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha4b462246138bd7fE.exit", label %vector.body80, !llvm.loop !5072 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha4b462246138bd7fE.exit": ; preds = %vector.body80 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5068 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hc9f4788c4692de61E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5073 store i64 4, ptr %n.i.i, align 8, !noalias !5073 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5073 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5073 %_12.i.i = icmp eq i64 %buf.1, 4 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5073 store ptr null, ptr %_16.i.i, align 8, !noalias !5073 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5073 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5073 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5073 %_20.i.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5073 store ptr null, ptr %_24.i.i, align 8, !noalias !5073 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5073 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5073 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5073 %_28.i.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5073 store ptr null, ptr %_32.i.i, align 8, !noalias !5073 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5073 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5073 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5073 %_36.i.i = icmp eq i64 %w.1, 4 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h4a79dc9b12ae7b7eE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5073 store ptr null, ptr %_40.i.i, align 8, !noalias !5073 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h4a79dc9b12ae7b7eE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5073 tail call void @llvm.experimental.noalias.scope.decl(metadata !5078) tail call void @llvm.experimental.noalias.scope.decl(metadata !5081) tail call void @llvm.experimental.noalias.scope.decl(metadata !5083) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !5078, !noalias !5085 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !5078, !noalias !5085 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !5083, !noalias !5086 %4 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %5 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = shufflevector <4 x double> %5, <4 x double> poison, <4 x i32> %7 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = fmul <4 x double> %8, %6 %10 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %7, <4 x double> %5, <4 x double> %9) #23 %11 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> store <4 x double> %11, ptr %scratch.0, align 8, !alias.scope !5081, !noalias !5087 %12 = shufflevector <4 x double> %4, <4 x double> %10, <4 x i32> %13 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %12, ptr %13, align 8, !alias.scope !5081, !noalias !5087 %14 = fadd <4 x double> %11, %12 %15 = fsub <4 x double> %11, %12 store <4 x double> %14, ptr %buf.0, align 8, !noalias !5073 store <4 x double> %15, ptr %2, align 8, !noalias !5073 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5073 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hca7a51cdc7d0321fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5088 store i64 1024, ptr %n.i, align 8, !noalias !5088 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5088 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5088 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5088 store ptr null, ptr %_16.i, align 8, !noalias !5088 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5088 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5088 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5088 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5088 store ptr null, ptr %_24.i, align 8, !noalias !5088 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5088 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5088 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5088 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5088 store ptr null, ptr %_32.i, align 8, !noalias !5088 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5088 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5088 store i64 %w.1, ptr %_34.i, align 8, !noalias !5088 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5088 store ptr null, ptr %_40.i, align 8, !noalias !5088 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5088 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 576 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 704 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 832 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 960 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ %vec.ind.next, %vector.body ] %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %22 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %23 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %24 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %25 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %26 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %27 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %28 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %29 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %30 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = extractelement <4 x i64> %31, i64 1 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %34 %36 = extractelement <4 x i64> %31, i64 2 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %36 %38 = extractelement <4 x i64> %31, i64 3 %39 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %38 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %46 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather6 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather7 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather8 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %49 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather9 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather10 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather11 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %52 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather12 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather13 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather15 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather16 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather17 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather18 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather19 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %68, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %69, i32 8, <4 x i1> , <4 x double> poison), !noalias !5091 %70 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8 %71 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8 %72 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8 %73 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 8 %74 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4 %75 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4 %76 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4 %77 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 4 %78 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2 %79 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2 %81 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 2 %82 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1 %83 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1 %85 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 1 %86 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3 %87 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3 %88 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3 %89 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 3 %90 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6 %91 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6 %92 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6 %93 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 6 %94 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5 %95 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5 %96 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5 %97 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 5 %98 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7 %99 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7 %100 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7 %101 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 7 %102 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12 %103 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12 %104 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12 %105 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 12 %106 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10 %107 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10 %108 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10 %109 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 10 %110 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9 %111 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9 %112 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9 %113 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 9 %114 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11 %115 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11 %116 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11 %117 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 11 %118 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14 %119 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14 %120 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14 %121 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 14 %122 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13 %123 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13 %124 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13 %125 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 13 %126 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15 %127 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15 %128 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15 %129 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 15 %130 = fneg <4 x double> %wide.masked.gather1 %131 = fneg <4 x double> %wide.masked.gather3 %132 = fneg <4 x double> %wide.masked.gather5 %133 = fneg <4 x double> %wide.masked.gather7 %134 = fneg <4 x double> %wide.masked.gather9 %135 = fneg <4 x double> %wide.masked.gather11 %136 = fneg <4 x double> %wide.masked.gather13 %137 = fneg <4 x double> %wide.masked.gather15 %138 = fneg <4 x double> %wide.masked.gather17 %139 = fneg <4 x double> %wide.masked.gather19 %140 = fneg <4 x double> %wide.masked.gather21 %141 = fneg <4 x double> %wide.masked.gather23 %142 = fneg <4 x double> %wide.masked.gather25 %143 = fneg <4 x double> %wide.masked.gather27 %144 = fneg <4 x double> %wide.masked.gather29 %wide.vec = load <8 x double>, ptr %15, align 8, !noalias !5091 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec30 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec31 = load <8 x double>, ptr %16, align 8, !noalias !5091 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %wide.vec34 = load <8 x double>, ptr %17, align 8, !noalias !5091 %strided.vec35 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %strided.vec36 = shufflevector <8 x double> %wide.vec34, <8 x double> poison, <4 x i32> %wide.vec37 = load <8 x double>, ptr %18, align 8, !noalias !5091 %strided.vec38 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %strided.vec39 = shufflevector <8 x double> %wide.vec37, <8 x double> poison, <4 x i32> %wide.vec40 = load <8 x double>, ptr %19, align 8, !noalias !5091 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %wide.vec43 = load <8 x double>, ptr %20, align 8, !noalias !5091 %strided.vec44 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %strided.vec45 = shufflevector <8 x double> %wide.vec43, <8 x double> poison, <4 x i32> %wide.vec46 = load <8 x double>, ptr %21, align 8, !noalias !5091 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %wide.vec49 = load <8 x double>, ptr %22, align 8, !noalias !5091 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %wide.vec52 = load <8 x double>, ptr %23, align 8, !noalias !5091 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %24, align 8, !noalias !5091 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %wide.vec58 = load <8 x double>, ptr %25, align 8, !noalias !5091 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %wide.vec61 = load <8 x double>, ptr %26, align 8, !noalias !5091 %strided.vec62 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %strided.vec63 = shufflevector <8 x double> %wide.vec61, <8 x double> poison, <4 x i32> %wide.vec64 = load <8 x double>, ptr %27, align 8, !noalias !5091 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %wide.vec67 = load <8 x double>, ptr %28, align 8, !noalias !5091 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %wide.vec70 = load <8 x double>, ptr %29, align 8, !noalias !5091 %strided.vec71 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %strided.vec72 = shufflevector <8 x double> %wide.vec70, <8 x double> poison, <4 x i32> %wide.vec73 = load <8 x double>, ptr %30, align 8, !noalias !5091 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %145 = fadd <4 x double> %strided.vec, %strided.vec53 %146 = fadd <4 x double> %strided.vec30, %strided.vec54 %147 = fsub <4 x double> %strided.vec, %strided.vec53 %148 = fsub <4 x double> %strided.vec30, %strided.vec54 %149 = fadd <4 x double> %strided.vec41, %strided.vec65 %150 = fadd <4 x double> %strided.vec42, %strided.vec66 %151 = fsub <4 x double> %strided.vec41, %strided.vec65 %152 = fsub <4 x double> %strided.vec42, %strided.vec66 %153 = fadd <4 x double> %strided.vec35, %strided.vec59 %154 = fadd <4 x double> %strided.vec36, %strided.vec60 %155 = fsub <4 x double> %strided.vec35, %strided.vec59 %156 = fsub <4 x double> %strided.vec36, %strided.vec60 %157 = fadd <4 x double> %strided.vec47, %strided.vec71 %158 = fadd <4 x double> %strided.vec48, %strided.vec72 %159 = fsub <4 x double> %strided.vec47, %strided.vec71 %160 = fsub <4 x double> %strided.vec48, %strided.vec72 %161 = fadd <4 x double> %strided.vec32, %strided.vec56 %162 = fadd <4 x double> %strided.vec33, %strided.vec57 %163 = fsub <4 x double> %strided.vec32, %strided.vec56 %164 = fsub <4 x double> %strided.vec33, %strided.vec57 %165 = fadd <4 x double> %strided.vec44, %strided.vec68 %166 = fadd <4 x double> %strided.vec45, %strided.vec69 %167 = fsub <4 x double> %strided.vec44, %strided.vec68 %168 = fsub <4 x double> %strided.vec45, %strided.vec69 %169 = fadd <4 x double> %strided.vec38, %strided.vec62 %170 = fadd <4 x double> %strided.vec39, %strided.vec63 %171 = fsub <4 x double> %strided.vec38, %strided.vec62 %172 = fsub <4 x double> %strided.vec39, %strided.vec63 %173 = fadd <4 x double> %strided.vec50, %strided.vec74 %174 = fadd <4 x double> %strided.vec51, %strided.vec75 %175 = fsub <4 x double> %strided.vec50, %strided.vec74 %176 = fsub <4 x double> %strided.vec51, %strided.vec75 %177 = fadd <4 x double> %145, %149 %178 = fadd <4 x double> %146, %150 %179 = fadd <4 x double> %147, %152 %180 = fsub <4 x double> %148, %151 %181 = fsub <4 x double> %145, %149 %182 = fsub <4 x double> %146, %150 %183 = fsub <4 x double> %147, %152 %184 = fadd <4 x double> %148, %151 %185 = fadd <4 x double> %153, %157 %186 = fadd <4 x double> %154, %158 %187 = fadd <4 x double> %155, %160 %188 = fsub <4 x double> %156, %159 %189 = fsub <4 x double> %153, %157 %190 = fsub <4 x double> %154, %158 %191 = fsub <4 x double> %155, %160 %192 = fadd <4 x double> %156, %159 %193 = fadd <4 x double> %161, %165 %194 = fadd <4 x double> %162, %166 %195 = fadd <4 x double> %163, %168 %196 = fsub <4 x double> %164, %167 %197 = fsub <4 x double> %161, %165 %198 = fsub <4 x double> %162, %166 %199 = fsub <4 x double> %163, %168 %200 = fadd <4 x double> %164, %167 %201 = fadd <4 x double> %169, %173 %202 = fadd <4 x double> %170, %174 %203 = fadd <4 x double> %171, %176 %204 = fsub <4 x double> %172, %175 %205 = fsub <4 x double> %169, %173 %206 = fsub <4 x double> %170, %174 %207 = fsub <4 x double> %171, %176 %208 = fadd <4 x double> %172, %175 %209 = fadd <4 x double> %188, %187 %210 = fsub <4 x double> %188, %187 %211 = fmul <4 x double> %209, %212 = fmul <4 x double> %210, %213 = fsub <4 x double> %191, %192 %214 = fadd <4 x double> %192, %191 %215 = fmul <4 x double> %213, %216 = fmul <4 x double> %214, %217 = fadd <4 x double> %177, %185 %218 = fadd <4 x double> %178, %186 %219 = fadd <4 x double> %179, %211 %220 = fadd <4 x double> %180, %212 %221 = fadd <4 x double> %181, %190 %222 = fsub <4 x double> %182, %189 %223 = fsub <4 x double> %183, %215 %224 = fsub <4 x double> %184, %216 %225 = fsub <4 x double> %177, %185 %226 = fsub <4 x double> %178, %186 %227 = fsub <4 x double> %179, %211 %228 = fsub <4 x double> %180, %212 %229 = fsub <4 x double> %181, %190 %230 = fadd <4 x double> %182, %189 %231 = fadd <4 x double> %183, %215 %232 = fadd <4 x double> %184, %216 %233 = fadd <4 x double> %204, %203 %234 = fsub <4 x double> %204, %203 %235 = fmul <4 x double> %233, %236 = fmul <4 x double> %234, %237 = fsub <4 x double> %207, %208 %238 = fadd <4 x double> %208, %207 %239 = fmul <4 x double> %237, %240 = fmul <4 x double> %238, %241 = fadd <4 x double> %193, %201 %242 = fadd <4 x double> %194, %202 %243 = fadd <4 x double> %195, %235 %244 = fadd <4 x double> %196, %236 %245 = fadd <4 x double> %197, %206 %246 = fsub <4 x double> %198, %205 %247 = fsub <4 x double> %199, %239 %248 = fsub <4 x double> %200, %240 %249 = fsub <4 x double> %193, %201 %250 = fsub <4 x double> %194, %202 %251 = fsub <4 x double> %195, %235 %252 = fsub <4 x double> %196, %236 %253 = fsub <4 x double> %197, %206 %254 = fadd <4 x double> %198, %205 %255 = fadd <4 x double> %199, %239 %256 = fadd <4 x double> %200, %240 %257 = fmul <4 x double> %244, %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %243, <4 x double> , <4 x double> %257) %259 = fmul <4 x double> %243, %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %259) %261 = fadd <4 x double> %246, %245 %262 = fsub <4 x double> %246, %245 %263 = fmul <4 x double> %261, %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %248, %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> %265) %267 = fmul <4 x double> %247, %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> , <4 x double> %267) %269 = fmul <4 x double> %252, %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> , <4 x double> %269) %271 = fmul <4 x double> %251, %272 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> , <4 x double> %271) %273 = fsub <4 x double> %253, %254 %274 = fadd <4 x double> %254, %253 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fmul <4 x double> %256, %278 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> , <4 x double> %277) %279 = fmul <4 x double> %255, %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> , <4 x double> %279) %281 = fadd <4 x double> %217, %241 %282 = fadd <4 x double> %218, %242 %283 = extractelement <4 x double> %281, i64 0 store double %283, ptr %33, align 8, !noalias !5091 %284 = extractelement <4 x double> %281, i64 1 store double %284, ptr %35, align 8, !noalias !5091 %285 = extractelement <4 x double> %281, i64 2 store double %285, ptr %37, align 8, !noalias !5091 %286 = getelementptr inbounds i8, ptr %33, i64 8 %287 = getelementptr inbounds i8, ptr %35, i64 8 %288 = getelementptr inbounds i8, ptr %37, i64 8 %289 = extractelement <4 x double> %282, i64 0 store double %289, ptr %286, align 8, !noalias !5091 %290 = extractelement <4 x double> %282, i64 1 store double %290, ptr %287, align 8, !noalias !5091 %291 = extractelement <4 x double> %282, i64 2 store double %291, ptr %288, align 8, !noalias !5091 %292 = shufflevector <4 x double> %281, <4 x double> %282, <2 x i32> store <2 x double> %292, ptr %39, align 8, !noalias !5091 %293 = fadd <4 x double> %219, %258 %294 = fadd <4 x double> %220, %260 %295 = fmul <4 x double> %294, %130 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %293, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather1, %293 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %294, <4 x double> %297) %299 = extractelement <4 x double> %296, i64 0 store double %299, ptr %82, align 8, !noalias !5091 %300 = extractelement <4 x double> %296, i64 1 store double %300, ptr %83, align 8, !noalias !5091 %301 = extractelement <4 x double> %296, i64 2 store double %301, ptr %84, align 8, !noalias !5091 %302 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 1, i32 1 %303 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 1, i32 1 %304 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 1, i32 1 %305 = extractelement <4 x double> %298, i64 0 store double %305, ptr %302, align 8, !noalias !5091 %306 = extractelement <4 x double> %298, i64 1 store double %306, ptr %303, align 8, !noalias !5091 %307 = extractelement <4 x double> %298, i64 2 store double %307, ptr %304, align 8, !noalias !5091 %308 = shufflevector <4 x double> %296, <4 x double> %298, <2 x i32> store <2 x double> %308, ptr %85, align 8, !noalias !5091 %309 = fadd <4 x double> %221, %263 %310 = fadd <4 x double> %222, %264 %311 = fmul <4 x double> %310, %131 %312 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %309, <4 x double> %311) %313 = fmul <4 x double> %wide.masked.gather3, %309 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %310, <4 x double> %313) %315 = extractelement <4 x double> %312, i64 0 store double %315, ptr %78, align 8, !noalias !5091 %316 = extractelement <4 x double> %312, i64 1 store double %316, ptr %79, align 8, !noalias !5091 %317 = extractelement <4 x double> %312, i64 2 store double %317, ptr %80, align 8, !noalias !5091 %318 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 2, i32 1 %319 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 2, i32 1 %320 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 2, i32 1 %321 = extractelement <4 x double> %314, i64 0 store double %321, ptr %318, align 8, !noalias !5091 %322 = extractelement <4 x double> %314, i64 1 store double %322, ptr %319, align 8, !noalias !5091 %323 = extractelement <4 x double> %314, i64 2 store double %323, ptr %320, align 8, !noalias !5091 %324 = shufflevector <4 x double> %312, <4 x double> %314, <2 x i32> store <2 x double> %324, ptr %81, align 8, !noalias !5091 %325 = fadd <4 x double> %223, %266 %326 = fadd <4 x double> %224, %268 %327 = fmul <4 x double> %326, %132 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %325, <4 x double> %327) %329 = fmul <4 x double> %wide.masked.gather5, %325 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %326, <4 x double> %329) %331 = extractelement <4 x double> %328, i64 0 store double %331, ptr %86, align 8, !noalias !5091 %332 = extractelement <4 x double> %328, i64 1 store double %332, ptr %87, align 8, !noalias !5091 %333 = extractelement <4 x double> %328, i64 2 store double %333, ptr %88, align 8, !noalias !5091 %334 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 3, i32 1 %335 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 3, i32 1 %336 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 3, i32 1 %337 = extractelement <4 x double> %330, i64 0 store double %337, ptr %334, align 8, !noalias !5091 %338 = extractelement <4 x double> %330, i64 1 store double %338, ptr %335, align 8, !noalias !5091 %339 = extractelement <4 x double> %330, i64 2 store double %339, ptr %336, align 8, !noalias !5091 %340 = shufflevector <4 x double> %328, <4 x double> %330, <2 x i32> store <2 x double> %340, ptr %89, align 8, !noalias !5091 %341 = fadd <4 x double> %225, %250 %342 = fsub <4 x double> %226, %249 %343 = fmul <4 x double> %342, %133 %344 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %341, <4 x double> %343) %345 = fmul <4 x double> %wide.masked.gather7, %341 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather6, <4 x double> %342, <4 x double> %345) %347 = extractelement <4 x double> %344, i64 0 store double %347, ptr %74, align 8, !noalias !5091 %348 = extractelement <4 x double> %344, i64 1 store double %348, ptr %75, align 8, !noalias !5091 %349 = extractelement <4 x double> %344, i64 2 store double %349, ptr %76, align 8, !noalias !5091 %350 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 4, i32 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 4, i32 1 %352 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 4, i32 1 %353 = extractelement <4 x double> %346, i64 0 store double %353, ptr %350, align 8, !noalias !5091 %354 = extractelement <4 x double> %346, i64 1 store double %354, ptr %351, align 8, !noalias !5091 %355 = extractelement <4 x double> %346, i64 2 store double %355, ptr %352, align 8, !noalias !5091 %356 = shufflevector <4 x double> %344, <4 x double> %346, <2 x i32> store <2 x double> %356, ptr %77, align 8, !noalias !5091 %357 = fsub <4 x double> %227, %270 %358 = fsub <4 x double> %228, %272 %359 = fmul <4 x double> %358, %134 %360 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %357, <4 x double> %359) %361 = fmul <4 x double> %wide.masked.gather9, %357 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather8, <4 x double> %358, <4 x double> %361) %363 = extractelement <4 x double> %360, i64 0 store double %363, ptr %94, align 8, !noalias !5091 %364 = extractelement <4 x double> %360, i64 1 store double %364, ptr %95, align 8, !noalias !5091 %365 = extractelement <4 x double> %360, i64 2 store double %365, ptr %96, align 8, !noalias !5091 %366 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 5, i32 1 %367 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 5, i32 1 %368 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 5, i32 1 %369 = extractelement <4 x double> %362, i64 0 store double %369, ptr %366, align 8, !noalias !5091 %370 = extractelement <4 x double> %362, i64 1 store double %370, ptr %367, align 8, !noalias !5091 %371 = extractelement <4 x double> %362, i64 2 store double %371, ptr %368, align 8, !noalias !5091 %372 = shufflevector <4 x double> %360, <4 x double> %362, <2 x i32> store <2 x double> %372, ptr %97, align 8, !noalias !5091 %373 = fsub <4 x double> %229, %275 %374 = fsub <4 x double> %230, %276 %375 = fmul <4 x double> %374, %135 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %373, <4 x double> %375) %377 = fmul <4 x double> %wide.masked.gather11, %373 %378 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather10, <4 x double> %374, <4 x double> %377) %379 = extractelement <4 x double> %376, i64 0 store double %379, ptr %90, align 8, !noalias !5091 %380 = extractelement <4 x double> %376, i64 1 store double %380, ptr %91, align 8, !noalias !5091 %381 = extractelement <4 x double> %376, i64 2 store double %381, ptr %92, align 8, !noalias !5091 %382 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 6, i32 1 %383 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 6, i32 1 %384 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 6, i32 1 %385 = extractelement <4 x double> %378, i64 0 store double %385, ptr %382, align 8, !noalias !5091 %386 = extractelement <4 x double> %378, i64 1 store double %386, ptr %383, align 8, !noalias !5091 %387 = extractelement <4 x double> %378, i64 2 store double %387, ptr %384, align 8, !noalias !5091 %388 = shufflevector <4 x double> %376, <4 x double> %378, <2 x i32> store <2 x double> %388, ptr %93, align 8, !noalias !5091 %389 = fsub <4 x double> %231, %278 %390 = fsub <4 x double> %232, %280 %391 = fmul <4 x double> %390, %136 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %389, <4 x double> %391) %393 = fmul <4 x double> %wide.masked.gather13, %389 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather12, <4 x double> %390, <4 x double> %393) %395 = extractelement <4 x double> %392, i64 0 store double %395, ptr %98, align 8, !noalias !5091 %396 = extractelement <4 x double> %392, i64 1 store double %396, ptr %99, align 8, !noalias !5091 %397 = extractelement <4 x double> %392, i64 2 store double %397, ptr %100, align 8, !noalias !5091 %398 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 7, i32 1 %399 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 7, i32 1 %400 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 7, i32 1 %401 = extractelement <4 x double> %394, i64 0 store double %401, ptr %398, align 8, !noalias !5091 %402 = extractelement <4 x double> %394, i64 1 store double %402, ptr %399, align 8, !noalias !5091 %403 = extractelement <4 x double> %394, i64 2 store double %403, ptr %400, align 8, !noalias !5091 %404 = shufflevector <4 x double> %392, <4 x double> %394, <2 x i32> store <2 x double> %404, ptr %101, align 8, !noalias !5091 %405 = fsub <4 x double> %217, %241 %406 = fsub <4 x double> %218, %242 %407 = fmul <4 x double> %406, %137 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %405, <4 x double> %407) %409 = fmul <4 x double> %wide.masked.gather15, %405 %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather14, <4 x double> %406, <4 x double> %409) %411 = extractelement <4 x double> %408, i64 0 store double %411, ptr %70, align 8, !noalias !5091 %412 = extractelement <4 x double> %408, i64 1 store double %412, ptr %71, align 8, !noalias !5091 %413 = extractelement <4 x double> %408, i64 2 store double %413, ptr %72, align 8, !noalias !5091 %414 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 8, i32 1 %415 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 8, i32 1 %416 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 8, i32 1 %417 = extractelement <4 x double> %410, i64 0 store double %417, ptr %414, align 8, !noalias !5091 %418 = extractelement <4 x double> %410, i64 1 store double %418, ptr %415, align 8, !noalias !5091 %419 = extractelement <4 x double> %410, i64 2 store double %419, ptr %416, align 8, !noalias !5091 %420 = shufflevector <4 x double> %408, <4 x double> %410, <2 x i32> store <2 x double> %420, ptr %73, align 8, !noalias !5091 %421 = fsub <4 x double> %219, %258 %422 = fsub <4 x double> %220, %260 %423 = fmul <4 x double> %422, %138 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %421, <4 x double> %423) %425 = fmul <4 x double> %wide.masked.gather17, %421 %426 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather16, <4 x double> %422, <4 x double> %425) %427 = extractelement <4 x double> %424, i64 0 store double %427, ptr %110, align 8, !noalias !5091 %428 = extractelement <4 x double> %424, i64 1 store double %428, ptr %111, align 8, !noalias !5091 %429 = extractelement <4 x double> %424, i64 2 store double %429, ptr %112, align 8, !noalias !5091 %430 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 9, i32 1 %431 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 9, i32 1 %432 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 9, i32 1 %433 = extractelement <4 x double> %426, i64 0 store double %433, ptr %430, align 8, !noalias !5091 %434 = extractelement <4 x double> %426, i64 1 store double %434, ptr %431, align 8, !noalias !5091 %435 = extractelement <4 x double> %426, i64 2 store double %435, ptr %432, align 8, !noalias !5091 %436 = shufflevector <4 x double> %424, <4 x double> %426, <2 x i32> store <2 x double> %436, ptr %113, align 8, !noalias !5091 %437 = fsub <4 x double> %221, %263 %438 = fsub <4 x double> %222, %264 %439 = fmul <4 x double> %438, %139 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %437, <4 x double> %439) %441 = fmul <4 x double> %wide.masked.gather19, %437 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather18, <4 x double> %438, <4 x double> %441) %443 = extractelement <4 x double> %440, i64 0 store double %443, ptr %106, align 8, !noalias !5091 %444 = extractelement <4 x double> %440, i64 1 store double %444, ptr %107, align 8, !noalias !5091 %445 = extractelement <4 x double> %440, i64 2 store double %445, ptr %108, align 8, !noalias !5091 %446 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 10, i32 1 %447 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 10, i32 1 %448 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 10, i32 1 %449 = extractelement <4 x double> %442, i64 0 store double %449, ptr %446, align 8, !noalias !5091 %450 = extractelement <4 x double> %442, i64 1 store double %450, ptr %447, align 8, !noalias !5091 %451 = extractelement <4 x double> %442, i64 2 store double %451, ptr %448, align 8, !noalias !5091 %452 = shufflevector <4 x double> %440, <4 x double> %442, <2 x i32> store <2 x double> %452, ptr %109, align 8, !noalias !5091 %453 = fsub <4 x double> %223, %266 %454 = fsub <4 x double> %224, %268 %455 = fmul <4 x double> %454, %140 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %453, <4 x double> %455) %457 = fmul <4 x double> %wide.masked.gather21, %453 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather20, <4 x double> %454, <4 x double> %457) %459 = extractelement <4 x double> %456, i64 0 store double %459, ptr %114, align 8, !noalias !5091 %460 = extractelement <4 x double> %456, i64 1 store double %460, ptr %115, align 8, !noalias !5091 %461 = extractelement <4 x double> %456, i64 2 store double %461, ptr %116, align 8, !noalias !5091 %462 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 11, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 11, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 11, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !5091 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !5091 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !5091 %468 = shufflevector <4 x double> %456, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %117, align 8, !noalias !5091 %469 = fsub <4 x double> %225, %250 %470 = fadd <4 x double> %226, %249 %471 = fmul <4 x double> %470, %141 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather23, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather22, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %102, align 8, !noalias !5091 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %103, align 8, !noalias !5091 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %104, align 8, !noalias !5091 %478 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 12, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 12, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 12, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !5091 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !5091 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !5091 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %105, align 8, !noalias !5091 %485 = fadd <4 x double> %227, %270 %486 = fadd <4 x double> %228, %272 %487 = fmul <4 x double> %486, %142 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather25, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %122, align 8, !noalias !5091 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %123, align 8, !noalias !5091 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %124, align 8, !noalias !5091 %494 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 13, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 13, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 13, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !5091 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !5091 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !5091 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %125, align 8, !noalias !5091 %501 = fadd <4 x double> %229, %275 %502 = fadd <4 x double> %230, %276 %503 = fmul <4 x double> %502, %143 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather27, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %118, align 8, !noalias !5091 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %119, align 8, !noalias !5091 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %120, align 8, !noalias !5091 %510 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 14, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 14, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 14, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !5091 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !5091 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !5091 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %121, align 8, !noalias !5091 %517 = fadd <4 x double> %231, %278 %518 = fadd <4 x double> %232, %280 %519 = fmul <4 x double> %518, %144 %520 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %517, <4 x double> %519) %521 = fmul <4 x double> %wide.masked.gather29, %517 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %518, <4 x double> %521) %523 = extractelement <4 x double> %520, i64 0 store double %523, ptr %126, align 8, !noalias !5091 %524 = extractelement <4 x double> %520, i64 1 store double %524, ptr %127, align 8, !noalias !5091 %525 = extractelement <4 x double> %520, i64 2 store double %525, ptr %128, align 8, !noalias !5091 %526 = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 15, i32 1 %527 = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 15, i32 1 %528 = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 15, i32 1 %529 = extractelement <4 x double> %522, i64 0 store double %529, ptr %526, align 8, !noalias !5091 %530 = extractelement <4 x double> %522, i64 1 store double %530, ptr %527, align 8, !noalias !5091 %531 = extractelement <4 x double> %522, i64 2 store double %531, ptr %528, align 8, !noalias !5091 %532 = shufflevector <4 x double> %520, <4 x double> %522, <2 x i32> store <2 x double> %532, ptr %129, align 8, !noalias !5091 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %533 = icmp eq i64 %index.next, 64 br i1 %533, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326, label %vector.body, !llvm.loop !5094 _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326: ; preds = %vector.body %534 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %535 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %536 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %537 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %540 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %541 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %542 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %543 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 576 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 704 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 832 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 960 br label %bb48.i.i.i339 vector.body238: ; preds = %middle.block76, %vector.body238 %index239 = phi i64 [ %index.next256, %vector.body238 ], [ 0, %middle.block76 ] %549 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index239 %550 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index239 %551 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index239 %552 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index239 %wide.vec240 = load <8 x double>, ptr %549, align 8, !noalias !5088 %strided.vec241 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %strided.vec242 = shufflevector <8 x double> %wide.vec240, <8 x double> poison, <4 x i32> %wide.vec243 = load <8 x double>, ptr %550, align 8, !noalias !5088 %strided.vec244 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %strided.vec245 = shufflevector <8 x double> %wide.vec243, <8 x double> poison, <4 x i32> %wide.vec246 = load <8 x double>, ptr %551, align 8, !noalias !5088 %strided.vec247 = shufflevector <8 x double> %wide.vec246, <8 x double> poison, <4 x i32> %strided.vec248 = shufflevector <8 x double> %wide.vec246, <8 x double> poison, <4 x i32> %wide.vec249 = load <8 x double>, ptr %552, align 8, !noalias !5088 %strided.vec250 = shufflevector <8 x double> %wide.vec249, <8 x double> poison, <4 x i32> %strided.vec251 = shufflevector <8 x double> %wide.vec249, <8 x double> poison, <4 x i32> %553 = fadd <4 x double> %strided.vec241, %strided.vec247 %554 = fadd <4 x double> %strided.vec242, %strided.vec248 %555 = fsub <4 x double> %strided.vec241, %strided.vec247 %556 = fsub <4 x double> %strided.vec242, %strided.vec248 %557 = fadd <4 x double> %strided.vec244, %strided.vec250 %558 = fadd <4 x double> %strided.vec245, %strided.vec251 %559 = fsub <4 x double> %strided.vec244, %strided.vec250 %560 = fsub <4 x double> %strided.vec245, %strided.vec251 %561 = fadd <4 x double> %553, %557 %562 = fadd <4 x double> %554, %558 %563 = fadd <4 x double> %555, %560 %564 = fsub <4 x double> %556, %559 %565 = fsub <4 x double> %553, %557 %566 = fsub <4 x double> %554, %558 %567 = fsub <4 x double> %555, %560 %568 = fadd <4 x double> %556, %559 %interleaved.vec252 = shufflevector <4 x double> %561, <4 x double> %562, <8 x i32> store <8 x double> %interleaved.vec252, ptr %549, align 8, !noalias !5088 %interleaved.vec253 = shufflevector <4 x double> %563, <4 x double> %564, <8 x i32> store <8 x double> %interleaved.vec253, ptr %550, align 8, !noalias !5088 %interleaved.vec254 = shufflevector <4 x double> %565, <4 x double> %566, <8 x i32> store <8 x double> %interleaved.vec254, ptr %551, align 8, !noalias !5088 %interleaved.vec255 = shufflevector <4 x double> %567, <4 x double> %568, <8 x i32> store <8 x double> %interleaved.vec255, ptr %552, align 8, !noalias !5088 %index.next256 = add nuw i64 %index239, 4 %569 = icmp eq i64 %index.next256, 256 br i1 %569, label %"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h61337811798f11c8E.exit", label %vector.body238, !llvm.loop !5095 bb48.i.i.i339: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326, %middle.block76 %iter.i.i.i120.sroa.192.0221 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit2326 ], [ %876, %middle.block76 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0221, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2372 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2377 = getelementptr inbounds %"num_complex::Complex", ptr %537, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2382 = getelementptr inbounds %"num_complex::Complex", ptr %536, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2387 = getelementptr inbounds %"num_complex::Complex", ptr %538, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2392 = getelementptr inbounds %"num_complex::Complex", ptr %535, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2397 = getelementptr inbounds %"num_complex::Complex", ptr %540, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2402 = getelementptr inbounds %"num_complex::Complex", ptr %539, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2407 = getelementptr inbounds %"num_complex::Complex", ptr %541, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2412 = getelementptr inbounds %"num_complex::Complex", ptr %534, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2417 = getelementptr inbounds %"num_complex::Complex", ptr %544, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2422 = getelementptr inbounds %"num_complex::Complex", ptr %543, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2427 = getelementptr inbounds %"num_complex::Complex", ptr %545, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2432 = getelementptr inbounds %"num_complex::Complex", ptr %542, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2437 = getelementptr inbounds %"num_complex::Complex", ptr %547, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i.i.i2442 = getelementptr inbounds %"num_complex::Complex", ptr %546, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %data.i.i.i.i.i.i.i.i.i.i2447 = getelementptr inbounds %"num_complex::Complex", ptr %548, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371 %start1.i.i.i.i.i.i2450 = shl nuw nsw i64 %iter.i.i.i120.sroa.192.0221, 8 %data.i.i.i.i.i.i2451 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i2450 %570 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 128 %571 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 64 %572 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 32 %573 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 16 %574 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 48 %575 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 96 %576 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 80 %577 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 112 %578 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 192 %579 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 160 %580 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 144 %581 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 176 %582 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 224 %583 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 208 %584 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 240 %585 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 15, i32 1 %wf.1.i.i.i403 = load double, ptr %585, align 8, !noalias !5088, !noundef !3 %_6.i483.i.i.i908 = fneg double %wf.1.i.i.i403 %586 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 14, i32 1 %we.1.i.i.i401 = load double, ptr %586, align 8, !noalias !5088, !noundef !3 %_6.i486.i.i.i903 = fneg double %we.1.i.i.i401 %587 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 13, i32 1 %wd.1.i.i.i399 = load double, ptr %587, align 8, !noalias !5088, !noundef !3 %_6.i489.i.i.i898 = fneg double %wd.1.i.i.i399 %588 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 12, i32 1 %wc.1.i.i.i397 = load double, ptr %588, align 8, !noalias !5088, !noundef !3 %_6.i492.i.i.i893 = fneg double %wc.1.i.i.i397 %589 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 11, i32 1 %wb.1.i.i.i395 = load double, ptr %589, align 8, !noalias !5088, !noundef !3 %_6.i495.i.i.i888 = fneg double %wb.1.i.i.i395 %590 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 10, i32 1 %wa.1.i.i.i393 = load double, ptr %590, align 8, !noalias !5088, !noundef !3 %_6.i498.i.i.i883 = fneg double %wa.1.i.i.i393 %591 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 9, i32 1 %w9.1.i.i.i391 = load double, ptr %591, align 8, !noalias !5088, !noundef !3 %_6.i501.i.i.i878 = fneg double %w9.1.i.i.i391 %592 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 8, i32 1 %w8.1.i.i.i389 = load double, ptr %592, align 8, !noalias !5088, !noundef !3 %_6.i504.i.i.i873 = fneg double %w8.1.i.i.i389 %593 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 7, i32 1 %w7.1.i.i.i387 = load double, ptr %593, align 8, !noalias !5088, !noundef !3 %_6.i507.i.i.i868 = fneg double %w7.1.i.i.i387 %594 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 6, i32 1 %w6.1.i.i.i385 = load double, ptr %594, align 8, !noalias !5088, !noundef !3 %_6.i510.i.i.i863 = fneg double %w6.1.i.i.i385 %595 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 5, i32 1 %w5.1.i.i.i383 = load double, ptr %595, align 8, !noalias !5088, !noundef !3 %_6.i513.i.i.i858 = fneg double %w5.1.i.i.i383 %596 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 4, i32 1 %w4.1.i.i.i381 = load double, ptr %596, align 8, !noalias !5088, !noundef !3 %_6.i516.i.i.i853 = fneg double %w4.1.i.i.i381 %597 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 3, i32 1 %w3.1.i.i.i379 = load double, ptr %597, align 8, !noalias !5088, !noundef !3 %_6.i519.i.i.i848 = fneg double %w3.1.i.i.i379 %598 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 2, i32 1 %w2.1.i.i.i377 = load double, ptr %598, align 8, !noalias !5088, !noundef !3 %_6.i522.i.i.i843 = fneg double %w2.1.i.i.i377 %599 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 1, i32 1 %w1.1.i.i.i375 = load double, ptr %599, align 8, !noalias !5088, !noundef !3 %_6.i525.i.i.i838 = fneg double %w1.1.i.i.i375 %600 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 15 %wf.0.i.i.i402 = load double, ptr %600, align 8, !noalias !5088, !noundef !3 %601 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 14 %we.0.i.i.i400 = load double, ptr %601, align 8, !noalias !5088, !noundef !3 %602 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 13 %wd.0.i.i.i398 = load double, ptr %602, align 8, !noalias !5088, !noundef !3 %603 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 12 %wc.0.i.i.i396 = load double, ptr %603, align 8, !noalias !5088, !noundef !3 %604 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 11 %wb.0.i.i.i394 = load double, ptr %604, align 8, !noalias !5088, !noundef !3 %605 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 10 %wa.0.i.i.i392 = load double, ptr %605, align 8, !noalias !5088, !noundef !3 %606 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 9 %w9.0.i.i.i390 = load double, ptr %606, align 8, !noalias !5088, !noundef !3 %607 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 8 %w8.0.i.i.i388 = load double, ptr %607, align 8, !noalias !5088, !noundef !3 %608 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 7 %w7.0.i.i.i386 = load double, ptr %608, align 8, !noalias !5088, !noundef !3 %609 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 6 %w6.0.i.i.i384 = load double, ptr %609, align 8, !noalias !5088, !noundef !3 %610 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 5 %w5.0.i.i.i382 = load double, ptr %610, align 8, !noalias !5088, !noundef !3 %611 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 4 %w4.0.i.i.i380 = load double, ptr %611, align 8, !noalias !5088, !noundef !3 %612 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 3 %w3.0.i.i.i378 = load double, ptr %612, align 8, !noalias !5088, !noundef !3 %613 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 2 %w2.0.i.i.i376 = load double, ptr %613, align 8, !noalias !5088, !noundef !3 %614 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2371, i64 1 %w1.0.i.i.i374 = load double, ptr %614, align 8, !noalias !5088, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i838, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w1.0.i.i.i374, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w1.1.i.i.i375, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i522.i.i.i843, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w2.0.i.i.i376, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w2.1.i.i.i377, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i519.i.i.i848, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w3.0.i.i.i378, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w3.1.i.i.i379, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert149 = insertelement <4 x double> poison, double %_6.i516.i.i.i853, i64 0 %broadcast.splat150 = shufflevector <4 x double> %broadcast.splatinsert149, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert151 = insertelement <4 x double> poison, double %w4.0.i.i.i380, i64 0 %broadcast.splat152 = shufflevector <4 x double> %broadcast.splatinsert151, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert153 = insertelement <4 x double> poison, double %w4.1.i.i.i381, i64 0 %broadcast.splat154 = shufflevector <4 x double> %broadcast.splatinsert153, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert156 = insertelement <4 x double> poison, double %_6.i513.i.i.i858, i64 0 %broadcast.splat157 = shufflevector <4 x double> %broadcast.splatinsert156, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert158 = insertelement <4 x double> poison, double %w5.0.i.i.i382, i64 0 %broadcast.splat159 = shufflevector <4 x double> %broadcast.splatinsert158, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert160 = insertelement <4 x double> poison, double %w5.1.i.i.i383, i64 0 %broadcast.splat161 = shufflevector <4 x double> %broadcast.splatinsert160, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert163 = insertelement <4 x double> poison, double %_6.i510.i.i.i863, i64 0 %broadcast.splat164 = shufflevector <4 x double> %broadcast.splatinsert163, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert165 = insertelement <4 x double> poison, double %w6.0.i.i.i384, i64 0 %broadcast.splat166 = shufflevector <4 x double> %broadcast.splatinsert165, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert167 = insertelement <4 x double> poison, double %w6.1.i.i.i385, i64 0 %broadcast.splat168 = shufflevector <4 x double> %broadcast.splatinsert167, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert170 = insertelement <4 x double> poison, double %_6.i507.i.i.i868, i64 0 %broadcast.splat171 = shufflevector <4 x double> %broadcast.splatinsert170, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert172 = insertelement <4 x double> poison, double %w7.0.i.i.i386, i64 0 %broadcast.splat173 = shufflevector <4 x double> %broadcast.splatinsert172, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert174 = insertelement <4 x double> poison, double %w7.1.i.i.i387, i64 0 %broadcast.splat175 = shufflevector <4 x double> %broadcast.splatinsert174, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert177 = insertelement <4 x double> poison, double %_6.i504.i.i.i873, i64 0 %broadcast.splat178 = shufflevector <4 x double> %broadcast.splatinsert177, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert179 = insertelement <4 x double> poison, double %w8.0.i.i.i388, i64 0 %broadcast.splat180 = shufflevector <4 x double> %broadcast.splatinsert179, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert181 = insertelement <4 x double> poison, double %w8.1.i.i.i389, i64 0 %broadcast.splat182 = shufflevector <4 x double> %broadcast.splatinsert181, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert184 = insertelement <4 x double> poison, double %_6.i501.i.i.i878, i64 0 %broadcast.splat185 = shufflevector <4 x double> %broadcast.splatinsert184, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert186 = insertelement <4 x double> poison, double %w9.0.i.i.i390, i64 0 %broadcast.splat187 = shufflevector <4 x double> %broadcast.splatinsert186, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert188 = insertelement <4 x double> poison, double %w9.1.i.i.i391, i64 0 %broadcast.splat189 = shufflevector <4 x double> %broadcast.splatinsert188, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert191 = insertelement <4 x double> poison, double %_6.i498.i.i.i883, i64 0 %broadcast.splat192 = shufflevector <4 x double> %broadcast.splatinsert191, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert193 = insertelement <4 x double> poison, double %wa.0.i.i.i392, i64 0 %broadcast.splat194 = shufflevector <4 x double> %broadcast.splatinsert193, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert195 = insertelement <4 x double> poison, double %wa.1.i.i.i393, i64 0 %broadcast.splat196 = shufflevector <4 x double> %broadcast.splatinsert195, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert198 = insertelement <4 x double> poison, double %_6.i495.i.i.i888, i64 0 %broadcast.splat199 = shufflevector <4 x double> %broadcast.splatinsert198, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert200 = insertelement <4 x double> poison, double %wb.0.i.i.i394, i64 0 %broadcast.splat201 = shufflevector <4 x double> %broadcast.splatinsert200, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert202 = insertelement <4 x double> poison, double %wb.1.i.i.i395, i64 0 %broadcast.splat203 = shufflevector <4 x double> %broadcast.splatinsert202, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert205 = insertelement <4 x double> poison, double %_6.i492.i.i.i893, i64 0 %broadcast.splat206 = shufflevector <4 x double> %broadcast.splatinsert205, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert207 = insertelement <4 x double> poison, double %wc.0.i.i.i396, i64 0 %broadcast.splat208 = shufflevector <4 x double> %broadcast.splatinsert207, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert209 = insertelement <4 x double> poison, double %wc.1.i.i.i397, i64 0 %broadcast.splat210 = shufflevector <4 x double> %broadcast.splatinsert209, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert212 = insertelement <4 x double> poison, double %_6.i489.i.i.i898, i64 0 %broadcast.splat213 = shufflevector <4 x double> %broadcast.splatinsert212, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert214 = insertelement <4 x double> poison, double %wd.0.i.i.i398, i64 0 %broadcast.splat215 = shufflevector <4 x double> %broadcast.splatinsert214, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert216 = insertelement <4 x double> poison, double %wd.1.i.i.i399, i64 0 %broadcast.splat217 = shufflevector <4 x double> %broadcast.splatinsert216, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert219 = insertelement <4 x double> poison, double %_6.i486.i.i.i903, i64 0 %broadcast.splat220 = shufflevector <4 x double> %broadcast.splatinsert219, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert221 = insertelement <4 x double> poison, double %we.0.i.i.i400, i64 0 %broadcast.splat222 = shufflevector <4 x double> %broadcast.splatinsert221, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert223 = insertelement <4 x double> poison, double %we.1.i.i.i401, i64 0 %broadcast.splat224 = shufflevector <4 x double> %broadcast.splatinsert223, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert226 = insertelement <4 x double> poison, double %_6.i483.i.i.i908, i64 0 %broadcast.splat227 = shufflevector <4 x double> %broadcast.splatinsert226, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert228 = insertelement <4 x double> poison, double %wf.0.i.i.i402, i64 0 %broadcast.splat229 = shufflevector <4 x double> %broadcast.splatinsert228, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert230 = insertelement <4 x double> poison, double %wf.1.i.i.i403, i64 0 %broadcast.splat231 = shufflevector <4 x double> %broadcast.splatinsert230, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body80 vector.body80: ; preds = %vector.body80, %bb48.i.i.i339 %index81 = phi i64 [ 0, %bb48.i.i.i339 ], [ %index.next233, %vector.body80 ] %615 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2372, i64 %index81 %616 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2377, i64 %index81 %617 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2382, i64 %index81 %618 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2387, i64 %index81 %619 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2392, i64 %index81 %620 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2397, i64 %index81 %621 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2402, i64 %index81 %622 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2407, i64 %index81 %623 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2412, i64 %index81 %624 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2417, i64 %index81 %625 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2422, i64 %index81 %626 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2427, i64 %index81 %627 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i2432, i64 %index81 %628 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i2437, i64 %index81 %629 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i2442, i64 %index81 %630 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i2447, i64 %index81 %wide.vec82 = load <8 x double>, ptr %615, align 8, !noalias !5088 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %wide.vec85 = load <8 x double>, ptr %616, align 8, !noalias !5088 %strided.vec86 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %strided.vec87 = shufflevector <8 x double> %wide.vec85, <8 x double> poison, <4 x i32> %wide.vec88 = load <8 x double>, ptr %617, align 8, !noalias !5088 %strided.vec89 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %strided.vec90 = shufflevector <8 x double> %wide.vec88, <8 x double> poison, <4 x i32> %wide.vec91 = load <8 x double>, ptr %618, align 8, !noalias !5088 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %619, align 8, !noalias !5088 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %620, align 8, !noalias !5088 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %wide.vec100 = load <8 x double>, ptr %621, align 8, !noalias !5088 %strided.vec101 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %strided.vec102 = shufflevector <8 x double> %wide.vec100, <8 x double> poison, <4 x i32> %wide.vec103 = load <8 x double>, ptr %622, align 8, !noalias !5088 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %wide.vec106 = load <8 x double>, ptr %623, align 8, !noalias !5088 %strided.vec107 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %strided.vec108 = shufflevector <8 x double> %wide.vec106, <8 x double> poison, <4 x i32> %wide.vec109 = load <8 x double>, ptr %624, align 8, !noalias !5088 %strided.vec110 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %strided.vec111 = shufflevector <8 x double> %wide.vec109, <8 x double> poison, <4 x i32> %wide.vec112 = load <8 x double>, ptr %625, align 8, !noalias !5088 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %wide.vec115 = load <8 x double>, ptr %626, align 8, !noalias !5088 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %627, align 8, !noalias !5088 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %wide.vec121 = load <8 x double>, ptr %628, align 8, !noalias !5088 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %wide.vec124 = load <8 x double>, ptr %629, align 8, !noalias !5088 %strided.vec125 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %strided.vec126 = shufflevector <8 x double> %wide.vec124, <8 x double> poison, <4 x i32> %wide.vec127 = load <8 x double>, ptr %630, align 8, !noalias !5088 %strided.vec128 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %strided.vec129 = shufflevector <8 x double> %wide.vec127, <8 x double> poison, <4 x i32> %631 = fadd <4 x double> %strided.vec83, %strided.vec107 %632 = fadd <4 x double> %strided.vec84, %strided.vec108 %633 = fsub <4 x double> %strided.vec83, %strided.vec107 %634 = fsub <4 x double> %strided.vec84, %strided.vec108 %635 = fadd <4 x double> %strided.vec95, %strided.vec119 %636 = fadd <4 x double> %strided.vec96, %strided.vec120 %637 = fsub <4 x double> %strided.vec95, %strided.vec119 %638 = fsub <4 x double> %strided.vec96, %strided.vec120 %639 = fadd <4 x double> %strided.vec89, %strided.vec113 %640 = fadd <4 x double> %strided.vec90, %strided.vec114 %641 = fsub <4 x double> %strided.vec89, %strided.vec113 %642 = fsub <4 x double> %strided.vec90, %strided.vec114 %643 = fadd <4 x double> %strided.vec101, %strided.vec125 %644 = fadd <4 x double> %strided.vec102, %strided.vec126 %645 = fsub <4 x double> %strided.vec101, %strided.vec125 %646 = fsub <4 x double> %strided.vec102, %strided.vec126 %647 = fadd <4 x double> %strided.vec86, %strided.vec110 %648 = fadd <4 x double> %strided.vec87, %strided.vec111 %649 = fsub <4 x double> %strided.vec86, %strided.vec110 %650 = fsub <4 x double> %strided.vec87, %strided.vec111 %651 = fadd <4 x double> %strided.vec98, %strided.vec122 %652 = fadd <4 x double> %strided.vec99, %strided.vec123 %653 = fsub <4 x double> %strided.vec98, %strided.vec122 %654 = fsub <4 x double> %strided.vec99, %strided.vec123 %655 = fadd <4 x double> %strided.vec92, %strided.vec116 %656 = fadd <4 x double> %strided.vec93, %strided.vec117 %657 = fsub <4 x double> %strided.vec92, %strided.vec116 %658 = fsub <4 x double> %strided.vec93, %strided.vec117 %659 = fadd <4 x double> %strided.vec104, %strided.vec128 %660 = fadd <4 x double> %strided.vec105, %strided.vec129 %661 = fsub <4 x double> %strided.vec104, %strided.vec128 %662 = fsub <4 x double> %strided.vec105, %strided.vec129 %663 = fadd <4 x double> %631, %635 %664 = fadd <4 x double> %632, %636 %665 = fadd <4 x double> %633, %638 %666 = fsub <4 x double> %634, %637 %667 = fsub <4 x double> %631, %635 %668 = fsub <4 x double> %632, %636 %669 = fsub <4 x double> %633, %638 %670 = fadd <4 x double> %634, %637 %671 = fadd <4 x double> %639, %643 %672 = fadd <4 x double> %640, %644 %673 = fadd <4 x double> %641, %646 %674 = fsub <4 x double> %642, %645 %675 = fsub <4 x double> %639, %643 %676 = fsub <4 x double> %640, %644 %677 = fsub <4 x double> %641, %646 %678 = fadd <4 x double> %642, %645 %679 = fadd <4 x double> %647, %651 %680 = fadd <4 x double> %648, %652 %681 = fadd <4 x double> %649, %654 %682 = fsub <4 x double> %650, %653 %683 = fsub <4 x double> %647, %651 %684 = fsub <4 x double> %648, %652 %685 = fsub <4 x double> %649, %654 %686 = fadd <4 x double> %650, %653 %687 = fadd <4 x double> %655, %659 %688 = fadd <4 x double> %656, %660 %689 = fadd <4 x double> %657, %662 %690 = fsub <4 x double> %658, %661 %691 = fsub <4 x double> %655, %659 %692 = fsub <4 x double> %656, %660 %693 = fsub <4 x double> %657, %662 %694 = fadd <4 x double> %658, %661 %695 = fadd <4 x double> %674, %673 %696 = fsub <4 x double> %674, %673 %697 = fmul <4 x double> %695, %698 = fmul <4 x double> %696, %699 = fsub <4 x double> %677, %678 %700 = fadd <4 x double> %678, %677 %701 = fmul <4 x double> %699, %702 = fmul <4 x double> %700, %703 = fadd <4 x double> %663, %671 %704 = fadd <4 x double> %664, %672 %705 = fadd <4 x double> %665, %697 %706 = fadd <4 x double> %666, %698 %707 = fadd <4 x double> %667, %676 %708 = fsub <4 x double> %668, %675 %709 = fsub <4 x double> %669, %701 %710 = fsub <4 x double> %670, %702 %711 = fsub <4 x double> %663, %671 %712 = fsub <4 x double> %664, %672 %713 = fsub <4 x double> %665, %697 %714 = fsub <4 x double> %666, %698 %715 = fsub <4 x double> %667, %676 %716 = fadd <4 x double> %668, %675 %717 = fadd <4 x double> %669, %701 %718 = fadd <4 x double> %670, %702 %719 = fadd <4 x double> %690, %689 %720 = fsub <4 x double> %690, %689 %721 = fmul <4 x double> %719, %722 = fmul <4 x double> %720, %723 = fsub <4 x double> %693, %694 %724 = fadd <4 x double> %694, %693 %725 = fmul <4 x double> %723, %726 = fmul <4 x double> %724, %727 = fadd <4 x double> %679, %687 %728 = fadd <4 x double> %680, %688 %729 = fadd <4 x double> %681, %721 %730 = fadd <4 x double> %682, %722 %731 = fadd <4 x double> %683, %692 %732 = fsub <4 x double> %684, %691 %733 = fsub <4 x double> %685, %725 %734 = fsub <4 x double> %686, %726 %735 = fsub <4 x double> %679, %687 %736 = fsub <4 x double> %680, %688 %737 = fsub <4 x double> %681, %721 %738 = fsub <4 x double> %682, %722 %739 = fsub <4 x double> %683, %692 %740 = fadd <4 x double> %684, %691 %741 = fadd <4 x double> %685, %725 %742 = fadd <4 x double> %686, %726 %743 = fmul <4 x double> %730, %744 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %729, <4 x double> , <4 x double> %743) %745 = fmul <4 x double> %729, %746 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %730, <4 x double> , <4 x double> %745) %747 = fadd <4 x double> %732, %731 %748 = fsub <4 x double> %732, %731 %749 = fmul <4 x double> %747, %750 = fmul <4 x double> %748, %751 = fmul <4 x double> %734, %752 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %733, <4 x double> , <4 x double> %751) %753 = fmul <4 x double> %733, %754 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %734, <4 x double> , <4 x double> %753) %755 = fmul <4 x double> %738, %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %737, <4 x double> , <4 x double> %755) %757 = fmul <4 x double> %737, %758 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %738, <4 x double> , <4 x double> %757) %759 = fsub <4 x double> %739, %740 %760 = fadd <4 x double> %740, %739 %761 = fmul <4 x double> %759, %762 = fmul <4 x double> %760, %763 = fmul <4 x double> %742, %764 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %741, <4 x double> , <4 x double> %763) %765 = fmul <4 x double> %741, %766 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %742, <4 x double> , <4 x double> %765) %767 = fadd <4 x double> %703, %727 %768 = fadd <4 x double> %704, %728 %769 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i2451, i64 %index81 %interleaved.vec = shufflevector <4 x double> %767, <4 x double> %768, <8 x i32> store <8 x double> %interleaved.vec, ptr %769, align 8, !noalias !5088 %770 = fadd <4 x double> %705, %744 %771 = fadd <4 x double> %706, %746 %772 = fmul <4 x double> %771, %broadcast.splat %773 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %770, <4 x double> %772) %774 = fmul <4 x double> %broadcast.splat133, %770 %775 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %771, <4 x double> %774) %776 = getelementptr inbounds %"num_complex::Complex", ptr %573, i64 %index81 %interleaved.vec134 = shufflevector <4 x double> %773, <4 x double> %775, <8 x i32> store <8 x double> %interleaved.vec134, ptr %776, align 8, !noalias !5088 %777 = fadd <4 x double> %707, %749 %778 = fadd <4 x double> %708, %750 %779 = fmul <4 x double> %778, %broadcast.splat136 %780 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %777, <4 x double> %779) %781 = fmul <4 x double> %broadcast.splat140, %777 %782 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %778, <4 x double> %781) %783 = getelementptr inbounds %"num_complex::Complex", ptr %572, i64 %index81 %interleaved.vec141 = shufflevector <4 x double> %780, <4 x double> %782, <8 x i32> store <8 x double> %interleaved.vec141, ptr %783, align 8, !noalias !5088 %784 = fadd <4 x double> %709, %752 %785 = fadd <4 x double> %710, %754 %786 = fmul <4 x double> %785, %broadcast.splat143 %787 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %784, <4 x double> %786) %788 = fmul <4 x double> %broadcast.splat147, %784 %789 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %785, <4 x double> %788) %790 = getelementptr inbounds %"num_complex::Complex", ptr %574, i64 %index81 %interleaved.vec148 = shufflevector <4 x double> %787, <4 x double> %789, <8 x i32> store <8 x double> %interleaved.vec148, ptr %790, align 8, !noalias !5088 %791 = fadd <4 x double> %711, %736 %792 = fsub <4 x double> %712, %735 %793 = fmul <4 x double> %792, %broadcast.splat150 %794 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %791, <4 x double> %793) %795 = fmul <4 x double> %broadcast.splat154, %791 %796 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat152, <4 x double> %792, <4 x double> %795) %797 = getelementptr inbounds %"num_complex::Complex", ptr %571, i64 %index81 %interleaved.vec155 = shufflevector <4 x double> %794, <4 x double> %796, <8 x i32> store <8 x double> %interleaved.vec155, ptr %797, align 8, !noalias !5088 %798 = fsub <4 x double> %713, %756 %799 = fsub <4 x double> %714, %758 %800 = fmul <4 x double> %799, %broadcast.splat157 %801 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %798, <4 x double> %800) %802 = fmul <4 x double> %broadcast.splat161, %798 %803 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat159, <4 x double> %799, <4 x double> %802) %804 = getelementptr inbounds %"num_complex::Complex", ptr %576, i64 %index81 %interleaved.vec162 = shufflevector <4 x double> %801, <4 x double> %803, <8 x i32> store <8 x double> %interleaved.vec162, ptr %804, align 8, !noalias !5088 %805 = fsub <4 x double> %715, %761 %806 = fsub <4 x double> %716, %762 %807 = fmul <4 x double> %806, %broadcast.splat164 %808 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %805, <4 x double> %807) %809 = fmul <4 x double> %broadcast.splat168, %805 %810 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat166, <4 x double> %806, <4 x double> %809) %811 = getelementptr inbounds %"num_complex::Complex", ptr %575, i64 %index81 %interleaved.vec169 = shufflevector <4 x double> %808, <4 x double> %810, <8 x i32> store <8 x double> %interleaved.vec169, ptr %811, align 8, !noalias !5088 %812 = fsub <4 x double> %717, %764 %813 = fsub <4 x double> %718, %766 %814 = fmul <4 x double> %813, %broadcast.splat171 %815 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %812, <4 x double> %814) %816 = fmul <4 x double> %broadcast.splat175, %812 %817 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat173, <4 x double> %813, <4 x double> %816) %818 = getelementptr inbounds %"num_complex::Complex", ptr %577, i64 %index81 %interleaved.vec176 = shufflevector <4 x double> %815, <4 x double> %817, <8 x i32> store <8 x double> %interleaved.vec176, ptr %818, align 8, !noalias !5088 %819 = fsub <4 x double> %703, %727 %820 = fsub <4 x double> %704, %728 %821 = fmul <4 x double> %820, %broadcast.splat178 %822 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %819, <4 x double> %821) %823 = fmul <4 x double> %broadcast.splat182, %819 %824 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat180, <4 x double> %820, <4 x double> %823) %825 = getelementptr inbounds %"num_complex::Complex", ptr %570, i64 %index81 %interleaved.vec183 = shufflevector <4 x double> %822, <4 x double> %824, <8 x i32> store <8 x double> %interleaved.vec183, ptr %825, align 8, !noalias !5088 %826 = fsub <4 x double> %705, %744 %827 = fsub <4 x double> %706, %746 %828 = fmul <4 x double> %827, %broadcast.splat185 %829 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %826, <4 x double> %828) %830 = fmul <4 x double> %broadcast.splat189, %826 %831 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat187, <4 x double> %827, <4 x double> %830) %832 = getelementptr inbounds %"num_complex::Complex", ptr %580, i64 %index81 %interleaved.vec190 = shufflevector <4 x double> %829, <4 x double> %831, <8 x i32> store <8 x double> %interleaved.vec190, ptr %832, align 8, !noalias !5088 %833 = fsub <4 x double> %707, %749 %834 = fsub <4 x double> %708, %750 %835 = fmul <4 x double> %834, %broadcast.splat192 %836 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %833, <4 x double> %835) %837 = fmul <4 x double> %broadcast.splat196, %833 %838 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat194, <4 x double> %834, <4 x double> %837) %839 = getelementptr inbounds %"num_complex::Complex", ptr %579, i64 %index81 %interleaved.vec197 = shufflevector <4 x double> %836, <4 x double> %838, <8 x i32> store <8 x double> %interleaved.vec197, ptr %839, align 8, !noalias !5088 %840 = fsub <4 x double> %709, %752 %841 = fsub <4 x double> %710, %754 %842 = fmul <4 x double> %841, %broadcast.splat199 %843 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %840, <4 x double> %842) %844 = fmul <4 x double> %broadcast.splat203, %840 %845 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat201, <4 x double> %841, <4 x double> %844) %846 = getelementptr inbounds %"num_complex::Complex", ptr %581, i64 %index81 %interleaved.vec204 = shufflevector <4 x double> %843, <4 x double> %845, <8 x i32> store <8 x double> %interleaved.vec204, ptr %846, align 8, !noalias !5088 %847 = fsub <4 x double> %711, %736 %848 = fadd <4 x double> %712, %735 %849 = fmul <4 x double> %848, %broadcast.splat206 %850 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %847, <4 x double> %849) %851 = fmul <4 x double> %broadcast.splat210, %847 %852 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat208, <4 x double> %848, <4 x double> %851) %853 = getelementptr inbounds %"num_complex::Complex", ptr %578, i64 %index81 %interleaved.vec211 = shufflevector <4 x double> %850, <4 x double> %852, <8 x i32> store <8 x double> %interleaved.vec211, ptr %853, align 8, !noalias !5088 %854 = fadd <4 x double> %713, %756 %855 = fadd <4 x double> %714, %758 %856 = fmul <4 x double> %855, %broadcast.splat213 %857 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %854, <4 x double> %856) %858 = fmul <4 x double> %broadcast.splat217, %854 %859 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat215, <4 x double> %855, <4 x double> %858) %860 = getelementptr inbounds %"num_complex::Complex", ptr %583, i64 %index81 %interleaved.vec218 = shufflevector <4 x double> %857, <4 x double> %859, <8 x i32> store <8 x double> %interleaved.vec218, ptr %860, align 8, !noalias !5088 %861 = fadd <4 x double> %715, %761 %862 = fadd <4 x double> %716, %762 %863 = fmul <4 x double> %862, %broadcast.splat220 %864 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %861, <4 x double> %863) %865 = fmul <4 x double> %broadcast.splat224, %861 %866 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat222, <4 x double> %862, <4 x double> %865) %867 = getelementptr inbounds %"num_complex::Complex", ptr %582, i64 %index81 %interleaved.vec225 = shufflevector <4 x double> %864, <4 x double> %866, <8 x i32> store <8 x double> %interleaved.vec225, ptr %867, align 8, !noalias !5088 %868 = fadd <4 x double> %717, %764 %869 = fadd <4 x double> %718, %766 %870 = fmul <4 x double> %869, %broadcast.splat227 %871 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %868, <4 x double> %870) %872 = fmul <4 x double> %broadcast.splat231, %868 %873 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat229, <4 x double> %869, <4 x double> %872) %874 = getelementptr inbounds %"num_complex::Complex", ptr %584, i64 %index81 %interleaved.vec232 = shufflevector <4 x double> %871, <4 x double> %873, <8 x i32> store <8 x double> %interleaved.vec232, ptr %874, align 8, !noalias !5088 %index.next233 = add nuw i64 %index81, 4 %875 = icmp eq i64 %index.next233, 16 br i1 %875, label %middle.block76, label %vector.body80, !llvm.loop !5096 middle.block76: ; preds = %vector.body80 %876 = add nuw nsw i64 %iter.i.i.i120.sroa.192.0221, 1 %exitcond225.not = icmp eq i64 %876, 4 br i1 %exitcond225.not, label %vector.body238, label %bb48.i.i.i339 "_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h61337811798f11c8E.exit": ; preds = %vector.body238 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5088 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcaffc7c72767fdd1E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5097 store i64 16, ptr %n.i.i, align 8, !noalias !5097 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5097 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5097 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5097 store ptr null, ptr %_16.i.i, align 8, !noalias !5097 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5097 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5097 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5097 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5097 store ptr null, ptr %_24.i.i, align 8, !noalias !5097 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5097 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5097 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5097 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5097 store ptr null, ptr %_32.i.i, align 8, !noalias !5097 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5097 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5097 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5097 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h31df6eef189f99c2E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5097 store ptr null, ptr %_40.i.i, align 8, !noalias !5097 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h31df6eef189f99c2E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5097 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !5102 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !5102 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_51.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !5102 %_52.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !5102 %6 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %7 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.1.i, %_52.i.i.i.sroa.0.0.copyload.1.i %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_51.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !5102 %_52.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !5102 %8 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i %9 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.2.i, %_52.i.i.i.sroa.0.0.copyload.2.i %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_51.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !5102 %_52.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !5102 %10 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i %11 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.3.i, %_52.i.i.i.sroa.0.0.copyload.3.i %12 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %12, align 8, !noalias !5097, !noundef !3 %13 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %13, align 8, !noalias !5097, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %14 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %15 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %16 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> zeroinitializer %17 = shufflevector <4 x double> %8, <4 x double> poison, <4 x i32> %18 = fmul <4 x double> %17, %16 %19 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %15, <4 x double> %8, <4 x double> %18) #23 %20 = fadd <4 x double> %4, %19 %21 = fsub <4 x double> %4, %19 %22 = shufflevector <4 x double> %10, <4 x double> poison, <4 x i32> %23 = fmul <4 x double> %22, %16 %24 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %15, <4 x double> %10, <4 x double> %23) #23 %25 = fadd <4 x double> %6, %24 %26 = fsub <4 x double> %6, %24 %27 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1 %w1.0.us.i.1.i = load double, ptr %27, align 8, !noalias !5097, !noundef !3 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 4, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %28, align 8, !noalias !5097, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %29 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %30 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %31 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %9, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %31 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %30, <4 x double> %9, <4 x double> %33) #23 %35 = fadd <4 x double> %5, %34 %36 = fsub <4 x double> %5, %34 %37 = shufflevector <4 x double> %11, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %37, %31 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %30, <4 x double> %11, <4 x double> %38) #23 %40 = fadd <4 x double> %7, %39 %41 = fsub <4 x double> %7, %39 tail call void @llvm.experimental.noalias.scope.decl(metadata !5106) tail call void @llvm.experimental.noalias.scope.decl(metadata !5109) %42 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %43 = fmul <4 x double> %16, %42 %44 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %15, <4 x double> %25, <4 x double> %43) #23 %45 = fadd <4 x double> %20, %44 store <4 x double> %45, ptr %scratch.0, align 8, !alias.scope !5106, !noalias !5111 %46 = fsub <4 x double> %20, %44 store <4 x double> %46, ptr %2, align 8, !alias.scope !5106, !noalias !5111 %47 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.us.i51.1.i = load double, ptr %47, align 8, !alias.scope !5109, !noalias !5113, !noundef !3 %48 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.us.i52.1.i = load double, ptr %48, align 8, !alias.scope !5109, !noalias !5113, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i53.1.i = insertelement <2 x double> poison, double %w1.0.us.i51.1.i, i64 0 %49 = insertelement <4 x double> poison, double %w1.1.us.i52.1.i, i64 0 %50 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i53.1.i, <2 x double> poison, <4 x i32> zeroinitializer %51 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> zeroinitializer %52 = shufflevector <4 x double> %40, <4 x double> poison, <4 x i32> %53 = fmul <4 x double> %52, %51 %54 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %40, <4 x double> %53) #23 %55 = fadd <4 x double> %35, %54 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5106, !noalias !5111 %56 = fsub <4 x double> %35, %54 store <4 x double> %56, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5106, !noalias !5111 %57 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %58 = fmul <4 x double> %57, %31 %59 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %30, <4 x double> %26, <4 x double> %58) #23 %60 = fadd <4 x double> %21, %59 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !5106, !noalias !5111 %61 = fsub <4 x double> %21, %59 store <4 x double> %61, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !alias.scope !5106, !noalias !5111 %62 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1 %w1.0.us.i51.3.i = load double, ptr %62, align 8, !alias.scope !5109, !noalias !5113, !noundef !3 %63 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 6, i64 1, i32 1 %w1.1.us.i52.3.i = load double, ptr %63, align 8, !alias.scope !5109, !noalias !5113, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i53.3.i = insertelement <2 x double> poison, double %w1.0.us.i51.3.i, i64 0 %64 = insertelement <4 x double> poison, double %w1.1.us.i52.3.i, i64 0 %65 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i53.3.i, <2 x double> poison, <4 x i32> zeroinitializer %66 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> zeroinitializer %67 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %66 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %41, <4 x double> %68) #23 %70 = fadd <4 x double> %36, %69 store <4 x double> %70, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !5106, !noalias !5111 %71 = fsub <4 x double> %36, %69 store <4 x double> %71, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !alias.scope !5106, !noalias !5111 tail call void @llvm.experimental.noalias.scope.decl(metadata !5114) tail call void @llvm.experimental.noalias.scope.decl(metadata !5117) %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %72, align 8, !alias.scope !5117, !noalias !5119 %73 = shufflevector <4 x double> %45, <4 x double> %55, <4 x i32> %74 = shufflevector <4 x double> %45, <4 x double> %55, <4 x i32> %75 = shufflevector <4 x double> %74, <4 x double> poison, <4 x i32> %76 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %77 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %75, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %76, <4 x double> %74, <4 x double> %78) #23 %80 = fadd <4 x double> %73, %79 store <4 x double> %80, ptr %buf.0, align 8, !alias.scope !5114, !noalias !5121 %81 = fsub <4 x double> %73, %79 store <4 x double> %81, ptr %3, align 8, !alias.scope !5114, !noalias !5121 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !5117, !noalias !5119 %82 = shufflevector <4 x double> %60, <4 x double> %70, <4 x i32> %83 = shufflevector <4 x double> %60, <4 x double> %70, <4 x i32> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %86 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %84, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %85, <4 x double> %83, <4 x double> %87) #23 %89 = fadd <4 x double> %82, %88 store <4 x double> %89, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !5114, !noalias !5121 %90 = fsub <4 x double> %82, %88 store <4 x double> %90, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !5114, !noalias !5121 %_3.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %w1.sroa.0.0.copyload.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.2.i, align 8, !alias.scope !5117, !noalias !5119 %91 = shufflevector <4 x double> %46, <4 x double> %56, <4 x i32> %92 = shufflevector <4 x double> %46, <4 x double> %56, <4 x i32> %93 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> %94 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.2.i, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %93, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %92, <4 x double> %96) #23 %98 = fadd <4 x double> %91, %97 store <4 x double> %98, ptr %_3.i.i.i.i.i.i.2.i, align 8, !alias.scope !5114, !noalias !5121 %99 = fsub <4 x double> %91, %97 store <4 x double> %99, ptr %_3.i.i.i.i.2.i, align 8, !alias.scope !5114, !noalias !5121 %_3.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.3.i, align 8, !alias.scope !5117, !noalias !5119 %100 = shufflevector <4 x double> %61, <4 x double> %71, <4 x i32> %101 = shufflevector <4 x double> %61, <4 x double> %71, <4 x i32> %102 = shufflevector <4 x double> %101, <4 x double> poison, <4 x i32> %103 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %104 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.3.i, <4 x double> poison, <4 x i32> %105 = fmul <4 x double> %102, %104 %106 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %103, <4 x double> %101, <4 x double> %105) #23 %107 = fadd <4 x double> %100, %106 store <4 x double> %107, ptr %_3.i.i.i.i.i.i.3.i, align 8, !alias.scope !5114, !noalias !5121 %108 = fsub <4 x double> %100, %106 store <4 x double> %108, ptr %_3.i.i.i.i.3.i, align 8, !alias.scope !5114, !noalias !5121 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5097 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcb84e1837fb74817E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5122 store i64 64, ptr %n.i.i, align 8, !noalias !5122 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5122 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5122 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5122 store ptr null, ptr %_16.i.i, align 8, !noalias !5122 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5122 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5122 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5122 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5122 store ptr null, ptr %_24.i.i, align 8, !noalias !5122 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5122 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5122 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5122 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5122 store ptr null, ptr %_32.i.i, align 8, !noalias !5122 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5122 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5122 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5122 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66bc4cfc9b192a36E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5122 store ptr null, ptr %_40.i.i, align 8, !noalias !5122 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66bc4cfc9b192a36E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5122 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %3, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %4, align 8, !noalias !5127 %5 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %7 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %8 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %9 = bitcast <4 x double> %8 to <4 x i64> %10 = xor <4 x i64> %9, %11 = bitcast <4 x i64> %10 to <4 x double> %12 = shufflevector <4 x double> %11, <4 x double> poison, <4 x i32> %13 = fadd <4 x double> %5, %7 %14 = fsub <4 x double> %6, %12 %15 = fsub <4 x double> %5, %7 %16 = fadd <4 x double> %6, %12 store <4 x double> %13, ptr %buf.0, align 8, !noalias !5127 store <4 x double> %14, ptr %3, align 8, !noalias !5127 store <4 x double> %15, ptr %2, align 8, !noalias !5127 store <4 x double> %16, ptr %4, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_43.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !5127 %17 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %18 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.1.i, %_45.i.i.i.sroa.0.0.copyload.1.i %19 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %20 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.1.i, %_46.i.i.i.sroa.0.0.copyload.1.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = xor <4 x i64> %21, %23 = bitcast <4 x i64> %22 to <4 x double> %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = fadd <4 x double> %17, %19 %26 = fsub <4 x double> %18, %24 %27 = fsub <4 x double> %17, %19 %28 = fadd <4 x double> %18, %24 store <4 x double> %25, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5127 store <4 x double> %26, ptr %_3.i2.i.i.i.i.i.i.i.1.i, align 8, !noalias !5127 store <4 x double> %27, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !5127 store <4 x double> %28, ptr %_3.i.i.i.i.1.i, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_3.i2.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %_3.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %_3.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %_43.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.2.i, align 8, !noalias !5127 %29 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %30 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.2.i, %_45.i.i.i.sroa.0.0.copyload.2.i %31 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %32 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.2.i, %_46.i.i.i.sroa.0.0.copyload.2.i %33 = bitcast <4 x double> %32 to <4 x i64> %34 = xor <4 x i64> %33, %35 = bitcast <4 x i64> %34 to <4 x double> %36 = shufflevector <4 x double> %35, <4 x double> poison, <4 x i32> %37 = fadd <4 x double> %29, %31 %38 = fsub <4 x double> %30, %36 %39 = fsub <4 x double> %29, %31 %40 = fadd <4 x double> %30, %36 store <4 x double> %37, ptr %_3.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !5127 store <4 x double> %38, ptr %_3.i2.i.i.i.i.i.i.i.2.i, align 8, !noalias !5127 store <4 x double> %39, ptr %_3.i.i.i.i.i.i.2.i, align 8, !noalias !5127 store <4 x double> %40, ptr %_3.i.i.i.i.2.i, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i2.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_43.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.3.i, align 8, !noalias !5127 %41 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %42 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.3.i, %_45.i.i.i.sroa.0.0.copyload.3.i %43 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %44 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.3.i, %_46.i.i.i.sroa.0.0.copyload.3.i %45 = bitcast <4 x double> %44 to <4 x i64> %46 = xor <4 x i64> %45, %47 = bitcast <4 x i64> %46 to <4 x double> %48 = shufflevector <4 x double> %47, <4 x double> poison, <4 x i32> %49 = fadd <4 x double> %41, %43 %50 = fsub <4 x double> %42, %48 %51 = fsub <4 x double> %41, %43 %52 = fadd <4 x double> %42, %48 store <4 x double> %49, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5127 store <4 x double> %50, ptr %_3.i2.i.i.i.i.i.i.i.3.i, align 8, !noalias !5127 store <4 x double> %51, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !5127 store <4 x double> %52, ptr %_3.i.i.i.i.3.i, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %_3.i2.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %_3.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %_3.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %_43.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.4.i, align 8, !noalias !5127 %53 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %54 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.4.i, %_45.i.i.i.sroa.0.0.copyload.4.i %55 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %56 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.4.i, %_46.i.i.i.sroa.0.0.copyload.4.i %57 = bitcast <4 x double> %56 to <4 x i64> %58 = xor <4 x i64> %57, %59 = bitcast <4 x i64> %58 to <4 x double> %60 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> %61 = fadd <4 x double> %53, %55 %62 = fsub <4 x double> %54, %60 %63 = fsub <4 x double> %53, %55 %64 = fadd <4 x double> %54, %60 store <4 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !5127 store <4 x double> %62, ptr %_3.i2.i.i.i.i.i.i.i.4.i, align 8, !noalias !5127 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.4.i, align 8, !noalias !5127 store <4 x double> %64, ptr %_3.i.i.i.i.4.i, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i2.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_43.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.5.i, align 8, !noalias !5127 %65 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %66 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.5.i, %_45.i.i.i.sroa.0.0.copyload.5.i %67 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %68 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.5.i, %_46.i.i.i.sroa.0.0.copyload.5.i %69 = bitcast <4 x double> %68 to <4 x i64> %70 = xor <4 x i64> %69, %71 = bitcast <4 x i64> %70 to <4 x double> %72 = shufflevector <4 x double> %71, <4 x double> poison, <4 x i32> %73 = fadd <4 x double> %65, %67 %74 = fsub <4 x double> %66, %72 %75 = fsub <4 x double> %65, %67 %76 = fadd <4 x double> %66, %72 store <4 x double> %73, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5127 store <4 x double> %74, ptr %_3.i2.i.i.i.i.i.i.i.5.i, align 8, !noalias !5127 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !5127 store <4 x double> %76, ptr %_3.i.i.i.i.5.i, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_3.i2.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %_3.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %_3.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %_43.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.6.i, align 8, !noalias !5127 %77 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %78 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.6.i, %_45.i.i.i.sroa.0.0.copyload.6.i %79 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %80 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.6.i, %_46.i.i.i.sroa.0.0.copyload.6.i %81 = bitcast <4 x double> %80 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %77, %79 %86 = fsub <4 x double> %78, %84 %87 = fsub <4 x double> %77, %79 %88 = fadd <4 x double> %78, %84 store <4 x double> %85, ptr %_3.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !5127 store <4 x double> %86, ptr %_3.i2.i.i.i.i.i.i.i.6.i, align 8, !noalias !5127 store <4 x double> %87, ptr %_3.i.i.i.i.i.i.6.i, align 8, !noalias !5127 store <4 x double> %88, ptr %_3.i.i.i.i.6.i, align 8, !noalias !5127 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i2.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_43.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5127 %_44.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !5127 %_45.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !5127 %_46.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.7.i, align 8, !noalias !5127 %89 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %90 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.7.i, %_45.i.i.i.sroa.0.0.copyload.7.i %91 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %92 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.7.i, %_46.i.i.i.sroa.0.0.copyload.7.i %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %89, %91 %98 = fsub <4 x double> %90, %96 %99 = fsub <4 x double> %89, %91 %100 = fadd <4 x double> %90, %96 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5127 store <4 x double> %98, ptr %_3.i2.i.i.i.i.i.i.i.7.i, align 8, !noalias !5127 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !5127 store <4 x double> %100, ptr %_3.i.i.i.i.7.i, align 8, !noalias !5127 %101 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 tail call void @llvm.experimental.noalias.scope.decl(metadata !5131) tail call void @llvm.experimental.noalias.scope.decl(metadata !5134) tail call void @llvm.experimental.noalias.scope.decl(metadata !5136) %102 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %103 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66bc4cfc9b192a36E.exit.i" %iter.sroa.60.0707.us.i.i = phi i64 [ %164, %bb22.us.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66bc4cfc9b192a36E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0707.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0707.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %103, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %101, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %102, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0707.us.i.i, 2 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %104, align 8, !alias.scope !5136, !noalias !5138, !noundef !3 %105 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %105, align 8, !alias.scope !5136, !noalias !5138, !noundef !3 %106 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %106, align 8, !alias.scope !5136, !noalias !5138, !noundef !3 %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %107, align 8, !alias.scope !5136, !noalias !5138, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %108, align 8, !alias.scope !5136, !noalias !5138, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %109, align 8, !alias.scope !5136, !noalias !5138, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %110 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %111 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %112 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %113 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %114 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %116 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <4 x double> %110, <4 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5134, !noalias !5139 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %114, align 8, !alias.scope !5134, !noalias !5139 %122 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %123 = fmul <4 x double> %117, %122 %124 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %123) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %113, align 8, !alias.scope !5134, !noalias !5139 %125 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %126 = fmul <4 x double> %119, %125 %127 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %126) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %115, align 8, !alias.scope !5134, !noalias !5139 %128 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %121, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %129) #23 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %127 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %127 %133 = fadd <4 x double> %124, %130 %134 = fsub <4 x double> %124, %130 %135 = bitcast <4 x double> %134 to <4 x i64> %136 = xor <4 x i64> %135, %137 = bitcast <4 x i64> %136 to <4 x double> %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fadd <4 x double> %131, %133 store <4 x double> %139, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5131, !noalias !5140 %140 = fsub <4 x double> %132, %138 store <4 x double> %140, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5131, !noalias !5140 %141 = fsub <4 x double> %131, %133 store <4 x double> %141, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5131, !noalias !5140 %142 = fadd <4 x double> %132, %138 store <4 x double> %142, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5131, !noalias !5140 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5134, !noalias !5139 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5134, !noalias !5139 %143 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %117, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %144) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5134, !noalias !5139 %146 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %147 = fmul <4 x double> %119, %146 %148 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %147) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !5134, !noalias !5139 %149 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %121, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %120, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %150) #23 %152 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %148 %153 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %148 %154 = fadd <4 x double> %145, %151 %155 = fsub <4 x double> %145, %151 %156 = bitcast <4 x double> %155 to <4 x i64> %157 = xor <4 x i64> %156, %158 = bitcast <4 x i64> %157 to <4 x double> %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = fadd <4 x double> %152, %154 store <4 x double> %160, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5131, !noalias !5140 %161 = fsub <4 x double> %153, %159 store <4 x double> %161, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5131, !noalias !5140 %162 = fsub <4 x double> %152, %154 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5131, !noalias !5140 %163 = fadd <4 x double> %153, %159 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5131, !noalias !5140 %164 = add nuw nsw i64 %iter.sroa.60.0707.us.i.i, 1 %exitcond.not.i = icmp eq i64 %164, 4 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5141) tail call void @llvm.experimental.noalias.scope.decl(metadata !5144) tail call void @llvm.experimental.noalias.scope.decl(metadata !5146) %165 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %166 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %167 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 br label %bb15.i49.i bb15.i49.i: ; preds = %bb15.i49.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i %iter.sroa.50.0547.i.i = phi i64 [ %168, %bb15.i49.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit.i ] %168 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %166, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %165, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %167, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5146, !noalias !5148 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5146, !noalias !5148 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5146, !noalias !5148 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5144, !noalias !5149 %169 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %169, align 8, !alias.scope !5144, !noalias !5149 %170 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %170, align 8, !alias.scope !5144, !noalias !5149 %171 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %171, align 8, !alias.scope !5144, !noalias !5149 %172 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %173 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %176, %174 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %182, %180 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %188, %186 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = fadd <4 x double> %172, %184 %192 = fsub <4 x double> %172, %184 %193 = fadd <4 x double> %178, %190 %194 = fsub <4 x double> %178, %190 %195 = bitcast <4 x double> %194 to <4 x i64> %196 = xor <4 x i64> %195, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = fadd <4 x double> %191, %193 store <4 x double> %199, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5141, !noalias !5150 %200 = fsub <4 x double> %192, %198 store <4 x double> %200, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5141, !noalias !5150 %201 = fsub <4 x double> %191, %193 store <4 x double> %201, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5141, !noalias !5150 %202 = fadd <4 x double> %192, %198 store <4 x double> %202, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5141, !noalias !5150 %exitcond.not.i50.i = icmp eq i64 %168, 8 br i1 %exitcond.not.i50.i, label %_ZN4pulp3x862V39vectorize6__impl17h465ee1b66937e3c7E.exit, label %bb15.i49.i _ZN4pulp3x862V39vectorize6__impl17h465ee1b66937e3c7E.exit: ; preds = %bb15.i49.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5122 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcbc38a52b10b0a29E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5151 store i64 256, ptr %n.i, align 8, !noalias !5151 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5151 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5151 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5151 store ptr null, ptr %_16.i, align 8, !noalias !5151 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5151 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5151 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5151 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5151 store ptr null, ptr %_24.i, align 8, !noalias !5151 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5151 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5151 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5151 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5151 store ptr null, ptr %_32.i, align 8, !noalias !5151 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5151 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5151 store i64 %w.1, ptr %_34.i, align 8, !noalias !5151 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h602bc23c7f2f6befE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5151 store ptr null, ptr %_40.i, align 8, !noalias !5151 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h602bc23c7f2f6befE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5151 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 160 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 144 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 176 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 224 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 208 %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %16 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %21 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 160 %25 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 144 %26 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 176 %27 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 224 %28 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 208 %29 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 240 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h602bc23c7f2f6befE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h602bc23c7f2f6befE.exit" ], [ %index.next, %vector.body ] %30 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %31 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index %32 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index %33 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index %34 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index %35 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index %36 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index %37 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index %38 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %index %39 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index %40 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index %41 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index %42 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index %43 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index %44 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index %45 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index %wide.vec = load <8 x double>, ptr %30, align 8, !noalias !5151 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %31, align 8, !noalias !5151 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %32, align 8, !noalias !5151 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %33, align 8, !noalias !5151 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %34, align 8, !noalias !5151 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %35, align 8, !noalias !5151 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %36, align 8, !noalias !5151 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %37, align 8, !noalias !5151 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %38, align 8, !noalias !5151 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %wide.vec26 = load <8 x double>, ptr %39, align 8, !noalias !5151 %strided.vec27 = shufflevector <8 x double> %wide.vec26, <8 x double> poison, <4 x i32> %strided.vec28 = shufflevector <8 x double> %wide.vec26, <8 x double> poison, <4 x i32> %wide.vec29 = load <8 x double>, ptr %40, align 8, !noalias !5151 %strided.vec30 = shufflevector <8 x double> %wide.vec29, <8 x double> poison, <4 x i32> %strided.vec31 = shufflevector <8 x double> %wide.vec29, <8 x double> poison, <4 x i32> %wide.vec32 = load <8 x double>, ptr %41, align 8, !noalias !5151 %strided.vec33 = shufflevector <8 x double> %wide.vec32, <8 x double> poison, <4 x i32> %strided.vec34 = shufflevector <8 x double> %wide.vec32, <8 x double> poison, <4 x i32> %wide.vec35 = load <8 x double>, ptr %42, align 8, !noalias !5151 %strided.vec36 = shufflevector <8 x double> %wide.vec35, <8 x double> poison, <4 x i32> %strided.vec37 = shufflevector <8 x double> %wide.vec35, <8 x double> poison, <4 x i32> %wide.vec38 = load <8 x double>, ptr %43, align 8, !noalias !5151 %strided.vec39 = shufflevector <8 x double> %wide.vec38, <8 x double> poison, <4 x i32> %strided.vec40 = shufflevector <8 x double> %wide.vec38, <8 x double> poison, <4 x i32> %wide.vec41 = load <8 x double>, ptr %44, align 8, !noalias !5151 %strided.vec42 = shufflevector <8 x double> %wide.vec41, <8 x double> poison, <4 x i32> %strided.vec43 = shufflevector <8 x double> %wide.vec41, <8 x double> poison, <4 x i32> %wide.vec44 = load <8 x double>, ptr %45, align 8, !noalias !5151 %strided.vec45 = shufflevector <8 x double> %wide.vec44, <8 x double> poison, <4 x i32> %strided.vec46 = shufflevector <8 x double> %wide.vec44, <8 x double> poison, <4 x i32> %46 = fadd <4 x double> %strided.vec, %strided.vec24 %47 = fadd <4 x double> %strided.vec1, %strided.vec25 %48 = fsub <4 x double> %strided.vec, %strided.vec24 %49 = fsub <4 x double> %strided.vec1, %strided.vec25 %50 = fadd <4 x double> %strided.vec12, %strided.vec36 %51 = fadd <4 x double> %strided.vec13, %strided.vec37 %52 = fsub <4 x double> %strided.vec12, %strided.vec36 %53 = fsub <4 x double> %strided.vec13, %strided.vec37 %54 = fadd <4 x double> %strided.vec6, %strided.vec30 %55 = fadd <4 x double> %strided.vec7, %strided.vec31 %56 = fsub <4 x double> %strided.vec6, %strided.vec30 %57 = fsub <4 x double> %strided.vec7, %strided.vec31 %58 = fadd <4 x double> %strided.vec18, %strided.vec42 %59 = fadd <4 x double> %strided.vec19, %strided.vec43 %60 = fsub <4 x double> %strided.vec18, %strided.vec42 %61 = fsub <4 x double> %strided.vec19, %strided.vec43 %62 = fadd <4 x double> %strided.vec3, %strided.vec27 %63 = fadd <4 x double> %strided.vec4, %strided.vec28 %64 = fsub <4 x double> %strided.vec3, %strided.vec27 %65 = fsub <4 x double> %strided.vec4, %strided.vec28 %66 = fadd <4 x double> %strided.vec15, %strided.vec39 %67 = fadd <4 x double> %strided.vec16, %strided.vec40 %68 = fsub <4 x double> %strided.vec15, %strided.vec39 %69 = fsub <4 x double> %strided.vec16, %strided.vec40 %70 = fadd <4 x double> %strided.vec9, %strided.vec33 %71 = fadd <4 x double> %strided.vec10, %strided.vec34 %72 = fsub <4 x double> %strided.vec9, %strided.vec33 %73 = fsub <4 x double> %strided.vec10, %strided.vec34 %74 = fadd <4 x double> %strided.vec21, %strided.vec45 %75 = fadd <4 x double> %strided.vec22, %strided.vec46 %76 = fsub <4 x double> %strided.vec21, %strided.vec45 %77 = fsub <4 x double> %strided.vec22, %strided.vec46 %78 = fadd <4 x double> %46, %50 %79 = fadd <4 x double> %47, %51 %80 = fsub <4 x double> %48, %53 %81 = fadd <4 x double> %49, %52 %82 = fsub <4 x double> %46, %50 %83 = fsub <4 x double> %47, %51 %84 = fadd <4 x double> %48, %53 %85 = fsub <4 x double> %49, %52 %86 = fadd <4 x double> %54, %58 %87 = fadd <4 x double> %55, %59 %88 = fsub <4 x double> %56, %61 %89 = fadd <4 x double> %57, %60 %90 = fsub <4 x double> %54, %58 %91 = fsub <4 x double> %55, %59 %92 = fadd <4 x double> %56, %61 %93 = fsub <4 x double> %57, %60 %94 = fadd <4 x double> %62, %66 %95 = fadd <4 x double> %63, %67 %96 = fsub <4 x double> %64, %69 %97 = fadd <4 x double> %65, %68 %98 = fsub <4 x double> %62, %66 %99 = fsub <4 x double> %63, %67 %100 = fadd <4 x double> %64, %69 %101 = fsub <4 x double> %65, %68 %102 = fadd <4 x double> %70, %74 %103 = fadd <4 x double> %71, %75 %104 = fsub <4 x double> %72, %77 %105 = fadd <4 x double> %73, %76 %106 = fsub <4 x double> %70, %74 %107 = fsub <4 x double> %71, %75 %108 = fadd <4 x double> %72, %77 %109 = fsub <4 x double> %73, %76 %110 = fsub <4 x double> %88, %89 %111 = fadd <4 x double> %89, %88 %112 = fmul <4 x double> %110, %113 = fmul <4 x double> %111, %114 = fadd <4 x double> %93, %92 %115 = fsub <4 x double> %93, %92 %116 = fmul <4 x double> %114, %117 = fmul <4 x double> %115, %118 = fadd <4 x double> %78, %86 %119 = fadd <4 x double> %79, %87 %120 = fadd <4 x double> %80, %112 %121 = fadd <4 x double> %81, %113 %122 = fsub <4 x double> %82, %91 %123 = fadd <4 x double> %83, %90 %124 = fsub <4 x double> %84, %116 %125 = fsub <4 x double> %85, %117 %126 = fsub <4 x double> %78, %86 %127 = fsub <4 x double> %79, %87 %128 = fsub <4 x double> %80, %112 %129 = fsub <4 x double> %81, %113 %130 = fadd <4 x double> %82, %91 %131 = fsub <4 x double> %83, %90 %132 = fadd <4 x double> %84, %116 %133 = fadd <4 x double> %85, %117 %134 = fsub <4 x double> %104, %105 %135 = fadd <4 x double> %105, %104 %136 = fmul <4 x double> %134, %137 = fmul <4 x double> %135, %138 = fadd <4 x double> %109, %108 %139 = fsub <4 x double> %109, %108 %140 = fmul <4 x double> %138, %141 = fmul <4 x double> %139, %142 = fadd <4 x double> %94, %102 %143 = fadd <4 x double> %95, %103 %144 = fadd <4 x double> %96, %136 %145 = fadd <4 x double> %97, %137 %146 = fsub <4 x double> %98, %107 %147 = fadd <4 x double> %99, %106 %148 = fsub <4 x double> %100, %140 %149 = fsub <4 x double> %101, %141 %150 = fsub <4 x double> %94, %102 %151 = fsub <4 x double> %95, %103 %152 = fsub <4 x double> %96, %136 %153 = fsub <4 x double> %97, %137 %154 = fadd <4 x double> %98, %107 %155 = fsub <4 x double> %99, %106 %156 = fadd <4 x double> %100, %140 %157 = fadd <4 x double> %101, %141 %158 = fmul <4 x double> %145, %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %144, <4 x double> , <4 x double> %158) %160 = fmul <4 x double> %144, %161 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %145, <4 x double> , <4 x double> %160) %162 = fsub <4 x double> %146, %147 %163 = fadd <4 x double> %147, %146 %164 = fmul <4 x double> %162, %165 = fmul <4 x double> %163, %166 = fmul <4 x double> %149, %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %148, <4 x double> , <4 x double> %166) %168 = fmul <4 x double> %148, %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %149, <4 x double> , <4 x double> %168) %170 = fmul <4 x double> %153, %171 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %152, <4 x double> , <4 x double> %170) %172 = fmul <4 x double> %152, %173 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %153, <4 x double> , <4 x double> %172) %174 = fadd <4 x double> %155, %154 %175 = fsub <4 x double> %155, %154 %176 = fmul <4 x double> %174, %177 = fmul <4 x double> %175, %178 = fmul <4 x double> %157, %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %156, <4 x double> , <4 x double> %178) %180 = fmul <4 x double> %156, %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %157, <4 x double> , <4 x double> %180) %182 = fadd <4 x double> %118, %142 %183 = fadd <4 x double> %119, %143 %184 = fadd <4 x double> %120, %159 %185 = fadd <4 x double> %121, %161 %186 = fadd <4 x double> %122, %164 %187 = fadd <4 x double> %123, %165 %188 = fadd <4 x double> %124, %167 %189 = fadd <4 x double> %125, %169 %190 = fsub <4 x double> %126, %151 %191 = fadd <4 x double> %127, %150 %192 = fsub <4 x double> %128, %171 %193 = fsub <4 x double> %129, %173 %194 = fsub <4 x double> %130, %176 %195 = fsub <4 x double> %131, %177 %196 = fsub <4 x double> %132, %179 %197 = fsub <4 x double> %133, %181 %198 = fsub <4 x double> %118, %142 %199 = fsub <4 x double> %119, %143 %200 = fsub <4 x double> %120, %159 %201 = fsub <4 x double> %121, %161 %202 = fsub <4 x double> %122, %164 %203 = fsub <4 x double> %123, %165 %204 = fsub <4 x double> %124, %167 %205 = fsub <4 x double> %125, %169 %206 = fadd <4 x double> %126, %151 %207 = fsub <4 x double> %127, %150 %208 = fadd <4 x double> %128, %171 %209 = fadd <4 x double> %129, %173 %210 = fadd <4 x double> %130, %176 %211 = fadd <4 x double> %131, %177 %212 = fadd <4 x double> %132, %179 %213 = fadd <4 x double> %133, %181 %214 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %182, <4 x double> %183, <8 x i32> store <8 x double> %interleaved.vec, ptr %214, align 8, !noalias !5151 %215 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %interleaved.vec47 = shufflevector <4 x double> %184, <4 x double> %185, <8 x i32> store <8 x double> %interleaved.vec47, ptr %215, align 8, !noalias !5151 %216 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %interleaved.vec48 = shufflevector <4 x double> %186, <4 x double> %187, <8 x i32> store <8 x double> %interleaved.vec48, ptr %216, align 8, !noalias !5151 %217 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %interleaved.vec49 = shufflevector <4 x double> %188, <4 x double> %189, <8 x i32> store <8 x double> %interleaved.vec49, ptr %217, align 8, !noalias !5151 %218 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %interleaved.vec50 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> store <8 x double> %interleaved.vec50, ptr %218, align 8, !noalias !5151 %219 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %interleaved.vec51 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> store <8 x double> %interleaved.vec51, ptr %219, align 8, !noalias !5151 %220 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %interleaved.vec52 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> store <8 x double> %interleaved.vec52, ptr %220, align 8, !noalias !5151 %221 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %interleaved.vec53 = shufflevector <4 x double> %196, <4 x double> %197, <8 x i32> store <8 x double> %interleaved.vec53, ptr %221, align 8, !noalias !5151 %222 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec54 = shufflevector <4 x double> %198, <4 x double> %199, <8 x i32> store <8 x double> %interleaved.vec54, ptr %222, align 8, !noalias !5151 %223 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %interleaved.vec55 = shufflevector <4 x double> %200, <4 x double> %201, <8 x i32> store <8 x double> %interleaved.vec55, ptr %223, align 8, !noalias !5151 %224 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %interleaved.vec56 = shufflevector <4 x double> %202, <4 x double> %203, <8 x i32> store <8 x double> %interleaved.vec56, ptr %224, align 8, !noalias !5151 %225 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %interleaved.vec57 = shufflevector <4 x double> %204, <4 x double> %205, <8 x i32> store <8 x double> %interleaved.vec57, ptr %225, align 8, !noalias !5151 %226 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %interleaved.vec58 = shufflevector <4 x double> %206, <4 x double> %207, <8 x i32> store <8 x double> %interleaved.vec58, ptr %226, align 8, !noalias !5151 %227 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %interleaved.vec59 = shufflevector <4 x double> %208, <4 x double> %209, <8 x i32> store <8 x double> %interleaved.vec59, ptr %227, align 8, !noalias !5151 %228 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %interleaved.vec60 = shufflevector <4 x double> %210, <4 x double> %211, <8 x i32> store <8 x double> %interleaved.vec60, ptr %228, align 8, !noalias !5151 %229 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index %interleaved.vec61 = shufflevector <4 x double> %212, <4 x double> %213, <8 x i32> store <8 x double> %interleaved.vec61, ptr %229, align 8, !noalias !5151 %index.next = add nuw i64 %index, 4 %230 = icmp eq i64 %index.next, 16 br i1 %230, label %vector.body66, label %vector.body, !llvm.loop !5154 vector.body66: ; preds = %vector.body, %vector.body66 %index67 = phi i64 [ %index.next145, %vector.body66 ], [ 0, %vector.body ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body66 ], [ , %vector.body ] %231 = shl <4 x i64> %vec.ind, %232 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %231 %233 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %233, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %234 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %234, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %235 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %235, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %236 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %236, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %237 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %238 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %239 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %240 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %241 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %241, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %242 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %242, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %243 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %243, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %244 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %244, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %245 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %245, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %246 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %246, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %247 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %247, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %248 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %248, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %249 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %249, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %250 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %251 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %252 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %253 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %254 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %255 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %256 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather90 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %256, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %257 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %257, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %258 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %258, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %259 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %259, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %260 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %260, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %261 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %261, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %262 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %262, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %263 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 8 %264 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 4 %265 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 2 %266 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 1 %267 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 3 %268 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 6 %269 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 5 %270 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 7 %271 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 12 %272 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 10 %273 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 9 %274 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 11 %275 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 14 %276 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 13 %277 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 15 %278 = fneg <4 x double> %wide.masked.gather68 %279 = fneg <4 x double> %wide.masked.gather70 %280 = fneg <4 x double> %wide.masked.gather72 %281 = fneg <4 x double> %wide.masked.gather74 %282 = fneg <4 x double> %wide.masked.gather76 %283 = fneg <4 x double> %wide.masked.gather78 %284 = fneg <4 x double> %wide.masked.gather80 %285 = fneg <4 x double> %wide.masked.gather82 %286 = fneg <4 x double> %wide.masked.gather84 %287 = fneg <4 x double> %wide.masked.gather86 %288 = fneg <4 x double> %wide.masked.gather88 %289 = fneg <4 x double> %wide.masked.gather90 %290 = fneg <4 x double> %wide.masked.gather92 %291 = fneg <4 x double> %wide.masked.gather94 %292 = fneg <4 x double> %wide.masked.gather96 %wide.masked.gather97 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %232, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %293 = getelementptr inbounds i8, <4 x ptr> %232, i64 8 %wide.masked.gather98 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %293, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %266, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %294 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 1, i32 1 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %294, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %295 = fmul <4 x double> %wide.masked.gather100, %278 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather99, <4 x double> %295) %297 = fmul <4 x double> %wide.masked.gather68, %wide.masked.gather99 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather100, <4 x double> %297) %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %265, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %299 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 2, i32 1 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %299, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %300 = fmul <4 x double> %wide.masked.gather102, %279 %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather69, <4 x double> %wide.masked.gather101, <4 x double> %300) %302 = fmul <4 x double> %wide.masked.gather70, %wide.masked.gather101 %303 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather69, <4 x double> %wide.masked.gather102, <4 x double> %302) %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %267, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %304 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 3, i32 1 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %304, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %305 = fmul <4 x double> %wide.masked.gather104, %280 %306 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather71, <4 x double> %wide.masked.gather103, <4 x double> %305) %307 = fmul <4 x double> %wide.masked.gather72, %wide.masked.gather103 %308 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather71, <4 x double> %wide.masked.gather104, <4 x double> %307) %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %264, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %309 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 4, i32 1 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %309, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %310 = fmul <4 x double> %wide.masked.gather106, %281 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather73, <4 x double> %wide.masked.gather105, <4 x double> %310) %312 = fmul <4 x double> %wide.masked.gather74, %wide.masked.gather105 %313 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather73, <4 x double> %wide.masked.gather106, <4 x double> %312) %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %269, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %314 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 5, i32 1 %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %314, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %315 = fmul <4 x double> %wide.masked.gather108, %282 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather75, <4 x double> %wide.masked.gather107, <4 x double> %315) %317 = fmul <4 x double> %wide.masked.gather76, %wide.masked.gather107 %318 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather75, <4 x double> %wide.masked.gather108, <4 x double> %317) %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %268, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %319 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 6, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %319, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %320 = fmul <4 x double> %wide.masked.gather110, %283 %321 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather77, <4 x double> %wide.masked.gather109, <4 x double> %320) %322 = fmul <4 x double> %wide.masked.gather78, %wide.masked.gather109 %323 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather77, <4 x double> %wide.masked.gather110, <4 x double> %322) %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %270, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %324 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 7, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %324, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %325 = fmul <4 x double> %wide.masked.gather112, %284 %326 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather79, <4 x double> %wide.masked.gather111, <4 x double> %325) %327 = fmul <4 x double> %wide.masked.gather80, %wide.masked.gather111 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather79, <4 x double> %wide.masked.gather112, <4 x double> %327) %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %263, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %329 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 8, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %329, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %330 = fmul <4 x double> %wide.masked.gather114, %285 %331 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather81, <4 x double> %wide.masked.gather113, <4 x double> %330) %332 = fmul <4 x double> %wide.masked.gather82, %wide.masked.gather113 %333 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather81, <4 x double> %wide.masked.gather114, <4 x double> %332) %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %334 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 9, i32 1 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %334, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %335 = fmul <4 x double> %wide.masked.gather116, %286 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather83, <4 x double> %wide.masked.gather115, <4 x double> %335) %337 = fmul <4 x double> %wide.masked.gather84, %wide.masked.gather115 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather83, <4 x double> %wide.masked.gather116, <4 x double> %337) %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %339 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 10, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %339, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %340 = fmul <4 x double> %wide.masked.gather118, %287 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather85, <4 x double> %wide.masked.gather117, <4 x double> %340) %342 = fmul <4 x double> %wide.masked.gather86, %wide.masked.gather117 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather85, <4 x double> %wide.masked.gather118, <4 x double> %342) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 11, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %345 = fmul <4 x double> %wide.masked.gather120, %288 %346 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather87, <4 x double> %wide.masked.gather119, <4 x double> %345) %347 = fmul <4 x double> %wide.masked.gather88, %wide.masked.gather119 %348 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather87, <4 x double> %wide.masked.gather120, <4 x double> %347) %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %349 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 12, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %349, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %350 = fmul <4 x double> %wide.masked.gather122, %289 %351 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather89, <4 x double> %wide.masked.gather121, <4 x double> %350) %352 = fmul <4 x double> %wide.masked.gather90, %wide.masked.gather121 %353 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather89, <4 x double> %wide.masked.gather122, <4 x double> %352) %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %276, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %354 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 13, i32 1 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %355 = fmul <4 x double> %wide.masked.gather124, %290 %356 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather91, <4 x double> %wide.masked.gather123, <4 x double> %355) %357 = fmul <4 x double> %wide.masked.gather92, %wide.masked.gather123 %358 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather91, <4 x double> %wide.masked.gather124, <4 x double> %357) %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %275, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %359 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 14, i32 1 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %360 = fmul <4 x double> %wide.masked.gather126, %291 %361 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather125, <4 x double> %360) %362 = fmul <4 x double> %wide.masked.gather94, %wide.masked.gather125 %363 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather93, <4 x double> %wide.masked.gather126, <4 x double> %362) %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %277, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %232, i64 15, i32 1 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !5151 %365 = fmul <4 x double> %wide.masked.gather128, %292 %366 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather127, <4 x double> %365) %367 = fmul <4 x double> %wide.masked.gather96, %wide.masked.gather127 %368 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather95, <4 x double> %wide.masked.gather128, <4 x double> %367) %369 = fadd <4 x double> %wide.masked.gather97, %331 %370 = fadd <4 x double> %wide.masked.gather98, %333 %371 = fsub <4 x double> %wide.masked.gather97, %331 %372 = fsub <4 x double> %wide.masked.gather98, %333 %373 = fadd <4 x double> %311, %351 %374 = fadd <4 x double> %313, %353 %375 = fsub <4 x double> %311, %351 %376 = fsub <4 x double> %313, %353 %377 = fadd <4 x double> %301, %341 %378 = fadd <4 x double> %303, %343 %379 = fsub <4 x double> %301, %341 %380 = fsub <4 x double> %303, %343 %381 = fadd <4 x double> %321, %361 %382 = fadd <4 x double> %323, %363 %383 = fsub <4 x double> %321, %361 %384 = fsub <4 x double> %323, %363 %385 = fadd <4 x double> %296, %336 %386 = fadd <4 x double> %298, %338 %387 = fsub <4 x double> %296, %336 %388 = fsub <4 x double> %298, %338 %389 = fadd <4 x double> %316, %356 %390 = fadd <4 x double> %318, %358 %391 = fsub <4 x double> %316, %356 %392 = fsub <4 x double> %318, %358 %393 = fadd <4 x double> %306, %346 %394 = fadd <4 x double> %308, %348 %395 = fsub <4 x double> %306, %346 %396 = fsub <4 x double> %308, %348 %397 = fadd <4 x double> %326, %366 %398 = fadd <4 x double> %328, %368 %399 = fsub <4 x double> %326, %366 %400 = fsub <4 x double> %328, %368 %401 = fadd <4 x double> %369, %373 %402 = fadd <4 x double> %370, %374 %403 = fsub <4 x double> %371, %376 %404 = fadd <4 x double> %372, %375 %405 = fsub <4 x double> %369, %373 %406 = fsub <4 x double> %370, %374 %407 = fadd <4 x double> %371, %376 %408 = fsub <4 x double> %372, %375 %409 = fadd <4 x double> %377, %381 %410 = fadd <4 x double> %378, %382 %411 = fsub <4 x double> %379, %384 %412 = fadd <4 x double> %380, %383 %413 = fsub <4 x double> %377, %381 %414 = fsub <4 x double> %378, %382 %415 = fadd <4 x double> %379, %384 %416 = fsub <4 x double> %380, %383 %417 = fadd <4 x double> %385, %389 %418 = fadd <4 x double> %386, %390 %419 = fsub <4 x double> %387, %392 %420 = fadd <4 x double> %388, %391 %421 = fsub <4 x double> %385, %389 %422 = fsub <4 x double> %386, %390 %423 = fadd <4 x double> %387, %392 %424 = fsub <4 x double> %388, %391 %425 = fadd <4 x double> %393, %397 %426 = fadd <4 x double> %394, %398 %427 = fsub <4 x double> %395, %400 %428 = fadd <4 x double> %396, %399 %429 = fsub <4 x double> %393, %397 %430 = fsub <4 x double> %394, %398 %431 = fadd <4 x double> %395, %400 %432 = fsub <4 x double> %396, %399 %433 = fsub <4 x double> %411, %412 %434 = fadd <4 x double> %411, %412 %435 = fmul <4 x double> %433, %436 = fmul <4 x double> %434, %437 = fadd <4 x double> %415, %416 %438 = fsub <4 x double> %416, %415 %439 = fmul <4 x double> %437, %440 = fmul <4 x double> %438, %441 = fadd <4 x double> %401, %409 %442 = fadd <4 x double> %402, %410 %443 = fadd <4 x double> %403, %435 %444 = fadd <4 x double> %404, %436 %445 = fsub <4 x double> %405, %414 %446 = fadd <4 x double> %406, %413 %447 = fsub <4 x double> %407, %439 %448 = fsub <4 x double> %408, %440 %449 = fsub <4 x double> %401, %409 %450 = fsub <4 x double> %402, %410 %451 = fsub <4 x double> %403, %435 %452 = fsub <4 x double> %404, %436 %453 = fadd <4 x double> %405, %414 %454 = fsub <4 x double> %406, %413 %455 = fadd <4 x double> %407, %439 %456 = fadd <4 x double> %408, %440 %457 = fsub <4 x double> %427, %428 %458 = fadd <4 x double> %427, %428 %459 = fmul <4 x double> %457, %460 = fmul <4 x double> %458, %461 = fadd <4 x double> %431, %432 %462 = fsub <4 x double> %432, %431 %463 = fmul <4 x double> %461, %464 = fmul <4 x double> %462, %465 = fadd <4 x double> %417, %425 %466 = fadd <4 x double> %418, %426 %467 = fadd <4 x double> %419, %459 %468 = fadd <4 x double> %420, %460 %469 = fsub <4 x double> %421, %430 %470 = fadd <4 x double> %422, %429 %471 = fsub <4 x double> %423, %463 %472 = fsub <4 x double> %424, %464 %473 = fsub <4 x double> %417, %425 %474 = fsub <4 x double> %418, %426 %475 = fsub <4 x double> %419, %459 %476 = fsub <4 x double> %420, %460 %477 = fadd <4 x double> %421, %430 %478 = fsub <4 x double> %422, %429 %479 = fadd <4 x double> %423, %463 %480 = fadd <4 x double> %424, %464 %481 = fadd <4 x double> %441, %465 %482 = fadd <4 x double> %442, %466 %483 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index67 %interleaved.vec129 = shufflevector <4 x double> %481, <4 x double> %482, <8 x i32> store <8 x double> %interleaved.vec129, ptr %483, align 8, !noalias !5151 %484 = fsub <4 x double> %441, %465 %485 = fsub <4 x double> %442, %466 %486 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %index67 %interleaved.vec130 = shufflevector <4 x double> %484, <4 x double> %485, <8 x i32> store <8 x double> %interleaved.vec130, ptr %486, align 8, !noalias !5151 %487 = fmul <4 x double> %468, %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %467, <4 x double> , <4 x double> %487) %489 = fmul <4 x double> %467, %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %468, <4 x double> , <4 x double> %489) %491 = fadd <4 x double> %443, %488 %492 = fadd <4 x double> %444, %490 %493 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index67 %interleaved.vec131 = shufflevector <4 x double> %491, <4 x double> %492, <8 x i32> store <8 x double> %interleaved.vec131, ptr %493, align 8, !noalias !5151 %494 = fsub <4 x double> %443, %488 %495 = fsub <4 x double> %444, %490 %496 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index67 %interleaved.vec132 = shufflevector <4 x double> %494, <4 x double> %495, <8 x i32> store <8 x double> %interleaved.vec132, ptr %496, align 8, !noalias !5151 %497 = fsub <4 x double> %469, %470 %498 = fadd <4 x double> %469, %470 %499 = fmul <4 x double> %497, %500 = fmul <4 x double> %498, %501 = fadd <4 x double> %445, %499 %502 = fadd <4 x double> %446, %500 %503 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index67 %interleaved.vec133 = shufflevector <4 x double> %501, <4 x double> %502, <8 x i32> store <8 x double> %interleaved.vec133, ptr %503, align 8, !noalias !5151 %504 = fsub <4 x double> %445, %499 %505 = fsub <4 x double> %446, %500 %506 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index67 %interleaved.vec134 = shufflevector <4 x double> %504, <4 x double> %505, <8 x i32> store <8 x double> %interleaved.vec134, ptr %506, align 8, !noalias !5151 %507 = fmul <4 x double> %472, %508 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %471, <4 x double> , <4 x double> %507) %509 = fmul <4 x double> %471, %510 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %472, <4 x double> , <4 x double> %509) %511 = fadd <4 x double> %447, %508 %512 = fadd <4 x double> %448, %510 %513 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index67 %interleaved.vec135 = shufflevector <4 x double> %511, <4 x double> %512, <8 x i32> store <8 x double> %interleaved.vec135, ptr %513, align 8, !noalias !5151 %514 = fsub <4 x double> %447, %508 %515 = fsub <4 x double> %448, %510 %516 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index67 %interleaved.vec136 = shufflevector <4 x double> %514, <4 x double> %515, <8 x i32> store <8 x double> %interleaved.vec136, ptr %516, align 8, !noalias !5151 %517 = fsub <4 x double> %449, %474 %518 = fadd <4 x double> %450, %473 %519 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index67 %interleaved.vec137 = shufflevector <4 x double> %517, <4 x double> %518, <8 x i32> store <8 x double> %interleaved.vec137, ptr %519, align 8, !noalias !5151 %520 = fadd <4 x double> %449, %474 %521 = fsub <4 x double> %450, %473 %522 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index67 %interleaved.vec138 = shufflevector <4 x double> %520, <4 x double> %521, <8 x i32> store <8 x double> %interleaved.vec138, ptr %522, align 8, !noalias !5151 %523 = fmul <4 x double> %476, %524 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %475, <4 x double> , <4 x double> %523) %525 = fmul <4 x double> %475, %526 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %476, <4 x double> , <4 x double> %525) %527 = fsub <4 x double> %451, %524 %528 = fsub <4 x double> %452, %526 %529 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index67 %interleaved.vec139 = shufflevector <4 x double> %527, <4 x double> %528, <8 x i32> store <8 x double> %interleaved.vec139, ptr %529, align 8, !noalias !5151 %530 = fadd <4 x double> %451, %524 %531 = fadd <4 x double> %452, %526 %532 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index67 %interleaved.vec140 = shufflevector <4 x double> %530, <4 x double> %531, <8 x i32> store <8 x double> %interleaved.vec140, ptr %532, align 8, !noalias !5151 %533 = fadd <4 x double> %477, %478 %534 = fsub <4 x double> %478, %477 %535 = fmul <4 x double> %533, %536 = fmul <4 x double> %534, %537 = fsub <4 x double> %453, %535 %538 = fsub <4 x double> %454, %536 %539 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index67 %interleaved.vec141 = shufflevector <4 x double> %537, <4 x double> %538, <8 x i32> store <8 x double> %interleaved.vec141, ptr %539, align 8, !noalias !5151 %540 = fadd <4 x double> %453, %535 %541 = fadd <4 x double> %454, %536 %542 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index67 %interleaved.vec142 = shufflevector <4 x double> %540, <4 x double> %541, <8 x i32> store <8 x double> %interleaved.vec142, ptr %542, align 8, !noalias !5151 %543 = fmul <4 x double> %480, %544 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %479, <4 x double> , <4 x double> %543) %545 = fmul <4 x double> %479, %546 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %480, <4 x double> , <4 x double> %545) %547 = fsub <4 x double> %455, %544 %548 = fsub <4 x double> %456, %546 %549 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index67 %interleaved.vec143 = shufflevector <4 x double> %547, <4 x double> %548, <8 x i32> store <8 x double> %interleaved.vec143, ptr %549, align 8, !noalias !5151 %550 = fadd <4 x double> %455, %544 %551 = fadd <4 x double> %456, %546 %552 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index67 %interleaved.vec144 = shufflevector <4 x double> %550, <4 x double> %551, <8 x i32> store <8 x double> %interleaved.vec144, ptr %552, align 8, !noalias !5151 %index.next145 = add nuw i64 %index67, 4 %vec.ind.next = add <4 x i64> %vec.ind, %553 = icmp eq i64 %index.next145, 16 br i1 %553, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd7fe55eafbf320ddE.exit", label %vector.body66, !llvm.loop !5155 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd7fe55eafbf320ddE.exit": ; preds = %vector.body66 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5151 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcc8fa6a9cbaaab03E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5156 store i64 4, ptr %n.i, align 8, !noalias !5156 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5156 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5156 %_12.i = icmp eq i64 %buf.1, 4 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5156 store ptr null, ptr %_16.i, align 8, !noalias !5156 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5156 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5156 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5156 %_20.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5156 store ptr null, ptr %_24.i, align 8, !noalias !5156 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5156 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5156 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5156 %_28.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5156 store ptr null, ptr %_32.i, align 8, !noalias !5156 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5156 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5156 store i64 %w.1, ptr %_34.i, align 8, !noalias !5156 %_36.i = icmp eq i64 %w.1, 4 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5156 store ptr null, ptr %_40.i, align 8, !noalias !5156 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5156 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %1 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i = load double, ptr %1, align 8, !noalias !5156, !noundef !3 %2 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i = load double, ptr %2, align 8, !noalias !5156, !noundef !3 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %_6.i.i.i = fneg double %w1.1.i.i %4 = load <2 x double>, ptr %buf.0, align 8, !noalias !5156 %5 = load <2 x double>, ptr %0, align 8, !noalias !5156 %6 = fadd <2 x double> %4, %5 store <2 x double> %6, ptr %scratch.0, align 8, !noalias !5156 %7 = fsub <2 x double> %4, %5 %8 = shufflevector <2 x double> %7, <2 x double> poison, <2 x i32> %9 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %10 = insertelement <2 x double> %9, double %w1.1.i.i, i64 1 %11 = fmul <2 x double> %8, %10 %12 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %13 = shufflevector <2 x double> %12, <2 x double> poison, <2 x i32> zeroinitializer %14 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %13, <2 x double> %7, <2 x double> %11) store <2 x double> %14, ptr %3, align 8, !noalias !5156 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %15 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.1 = load double, ptr %15, align 8, !noalias !5156, !noundef !3 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %16, align 8, !noalias !5156, !noundef !3 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %18 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5156 %19 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !5156 %20 = fadd <2 x double> %18, %19 store <2 x double> %20, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5156 %21 = fsub <2 x double> %18, %19 %22 = shufflevector <2 x double> %21, <2 x double> poison, <2 x i32> %23 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %24 = insertelement <2 x double> %23, double %w1.1.i.i.1, i64 1 %25 = fmul <2 x double> %22, %24 %26 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %27 = shufflevector <2 x double> %26, <2 x double> poison, <2 x i32> zeroinitializer %28 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %27, <2 x double> %21, <2 x double> %25) store <2 x double> %28, ptr %17, align 8, !noalias !5156 %wide.vec = load <4 x double>, ptr %scratch.0, align 8, !noalias !5156 %strided.vec = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> %strided.vec1 = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> %wide.vec2 = load <4 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5156 %strided.vec3 = shufflevector <4 x double> %wide.vec2, <4 x double> poison, <2 x i32> %strided.vec4 = shufflevector <4 x double> %wide.vec2, <4 x double> poison, <2 x i32> %29 = fadd <2 x double> %strided.vec, %strided.vec3 %30 = fadd <2 x double> %strided.vec1, %strided.vec4 %31 = fsub <2 x double> %strided.vec, %strided.vec3 %32 = fsub <2 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <2 x double> %29, <2 x double> %30, <4 x i32> store <4 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !5156 %33 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec5 = shufflevector <2 x double> %31, <2 x double> %32, <4 x i32> store <4 x double> %interleaved.vec5, ptr %33, align 8, !noalias !5156 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5156 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcdad6921393139a0E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5159 store i64 512, ptr %n.i, align 8, !noalias !5159 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5159 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5159 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5159 store ptr null, ptr %_16.i, align 8, !noalias !5159 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5159 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5159 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5159 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5159 store ptr null, ptr %_24.i, align 8, !noalias !5159 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5159 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5159 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5159 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5159 store ptr null, ptr %_32.i, align 8, !noalias !5159 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5159 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5159 store i64 %w.1, ptr %_34.i, align 8, !noalias !5159 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %bb9.i.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5159 store ptr null, ptr %_40.i, align 8, !noalias !5159 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5159 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !5159 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !5159 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !5159 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !5159 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !5159 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !5159 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !5159 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !5159 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 256 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit, label %vector.body, !llvm.loop !5162 _ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %20 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i91.i.i = load double, ptr %20, align 8, !noalias !5159, !noundef !3 %_6.i.i.i.i138.i.i = fneg double %w3.1.i.i.i91.i.i %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i89.i.i = load double, ptr %21, align 8, !noalias !5159, !noundef !3 %_6.i36.i.i.i133.i.i = fneg double %w2.1.i.i.i89.i.i %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i87.i.i = load double, ptr %22, align 8, !noalias !5159, !noundef !3 %_6.i39.i.i.i128.i.i = fneg double %w1.1.i.i.i87.i.i %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i90.i.i = load double, ptr %23, align 8, !noalias !5159, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i88.i.i = load double, ptr %24, align 8, !noalias !5159, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i86.i.i = load double, ptr %25, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit %index11 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17haf9b14da4017cdb9E.exit ], [ %index.next44, %vector.body10 ] %26 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index11 %27 = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %index11 %28 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index11 %29 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index11 %wide.vec12 = load <8 x double>, ptr %26, align 8, !noalias !5159 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %27, align 8, !noalias !5159 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %30 = fmul <4 x double> %strided.vec17, %broadcast.splat %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %30) %32 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %32) %wide.vec22 = load <8 x double>, ptr %28, align 8, !noalias !5159 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %34 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %35 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %34) %36 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %36) %wide.vec31 = load <8 x double>, ptr %29, align 8, !noalias !5159 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %38 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %38) %40 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %41 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %40) %42 = fadd <4 x double> %strided.vec13, %35 %43 = fadd <4 x double> %strided.vec14, %37 %44 = fsub <4 x double> %strided.vec13, %35 %45 = fsub <4 x double> %strided.vec14, %37 %46 = fadd <4 x double> %31, %39 %47 = fadd <4 x double> %33, %41 %48 = fsub <4 x double> %31, %39 %49 = fsub <4 x double> %33, %41 %50 = fadd <4 x double> %42, %46 %51 = fadd <4 x double> %43, %47 %52 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index11 %interleaved.vec40 = shufflevector <4 x double> %50, <4 x double> %51, <8 x i32> store <8 x double> %interleaved.vec40, ptr %52, align 8, !noalias !5159 %53 = fsub <4 x double> %44, %49 %54 = fadd <4 x double> %45, %48 %55 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %index11 %interleaved.vec41 = shufflevector <4 x double> %53, <4 x double> %54, <8 x i32> store <8 x double> %interleaved.vec41, ptr %55, align 8, !noalias !5159 %56 = fsub <4 x double> %42, %46 %57 = fsub <4 x double> %43, %47 %58 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %index11 %interleaved.vec42 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec42, ptr %58, align 8, !noalias !5159 %59 = fadd <4 x double> %44, %49 %60 = fsub <4 x double> %45, %48 %61 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %index11 %interleaved.vec43 = shufflevector <4 x double> %59, <4 x double> %60, <8 x i32> store <8 x double> %interleaved.vec43, ptr %61, align 8, !noalias !5159 %index.next44 = add nuw i64 %index11, 4 %62 = icmp eq i64 %index.next44, 64 br i1 %62, label %bb20.i.i.i71.i.i.loopexit, label %vector.body10, !llvm.loop !5163 bb20.i.i.i71.i.i.loopexit: ; preds = %vector.body10 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %63 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %64 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %65 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.i.i.i91.i.i.1 = load double, ptr %66, align 8, !noalias !5159, !noundef !3 %_6.i.i.i.i138.i.i.1 = fneg double %w3.1.i.i.i91.i.i.1 %67 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.i.i.i89.i.i.1 = load double, ptr %67, align 8, !noalias !5159, !noundef !3 %_6.i36.i.i.i133.i.i.1 = fneg double %w2.1.i.i.i89.i.i.1 %68 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.i.i.i87.i.i.1 = load double, ptr %68, align 8, !noalias !5159, !noundef !3 %_6.i39.i.i.i128.i.i.1 = fneg double %w1.1.i.i.i87.i.i.1 %69 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.i.i.i90.i.i.1 = load double, ptr %69, align 8, !noalias !5159, !noundef !3 %70 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.i.i.i88.i.i.1 = load double, ptr %70, align 8, !noalias !5159, !noundef !3 %71 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.i.i.i86.i.i.1 = load double, ptr %71, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert57 = insertelement <4 x double> poison, double %_6.i39.i.i.i128.i.i.1, i64 0 %broadcast.splat58 = shufflevector <4 x double> %broadcast.splatinsert57, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert59 = insertelement <4 x double> poison, double %w1.0.i.i.i86.i.i.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.1.i.i.i87.i.i.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert66 = insertelement <4 x double> poison, double %_6.i36.i.i.i133.i.i.1, i64 0 %broadcast.splat67 = shufflevector <4 x double> %broadcast.splatinsert66, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert68 = insertelement <4 x double> poison, double %w2.0.i.i.i88.i.i.1, i64 0 %broadcast.splat69 = shufflevector <4 x double> %broadcast.splatinsert68, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %w2.1.i.i.i89.i.i.1, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert75 = insertelement <4 x double> poison, double %_6.i.i.i.i138.i.i.1, i64 0 %broadcast.splat76 = shufflevector <4 x double> %broadcast.splatinsert75, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert77 = insertelement <4 x double> poison, double %w3.0.i.i.i90.i.i.1, i64 0 %broadcast.splat78 = shufflevector <4 x double> %broadcast.splatinsert77, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert79 = insertelement <4 x double> poison, double %w3.1.i.i.i91.i.i.1, i64 0 %broadcast.splat80 = shufflevector <4 x double> %broadcast.splatinsert79, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body49 vector.body49: ; preds = %vector.body49, %bb20.i.i.i71.i.i.loopexit %index50 = phi i64 [ 0, %bb20.i.i.i71.i.i.loopexit ], [ %index.next85, %vector.body49 ] %72 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index50 %73 = getelementptr inbounds %"num_complex::Complex", ptr %64, i64 %index50 %74 = getelementptr inbounds %"num_complex::Complex", ptr %63, i64 %index50 %75 = getelementptr inbounds %"num_complex::Complex", ptr %65, i64 %index50 %wide.vec51 = load <8 x double>, ptr %72, align 8, !noalias !5159 %strided.vec52 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %strided.vec53 = shufflevector <8 x double> %wide.vec51, <8 x double> poison, <4 x i32> %wide.vec54 = load <8 x double>, ptr %73, align 8, !noalias !5159 %strided.vec55 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %strided.vec56 = shufflevector <8 x double> %wide.vec54, <8 x double> poison, <4 x i32> %76 = fmul <4 x double> %strided.vec56, %broadcast.splat58 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec55, <4 x double> %76) %78 = fmul <4 x double> %broadcast.splat62, %strided.vec55 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat60, <4 x double> %strided.vec56, <4 x double> %78) %wide.vec63 = load <8 x double>, ptr %74, align 8, !noalias !5159 %strided.vec64 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %strided.vec65 = shufflevector <8 x double> %wide.vec63, <8 x double> poison, <4 x i32> %80 = fmul <4 x double> %strided.vec65, %broadcast.splat67 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec64, <4 x double> %80) %82 = fmul <4 x double> %broadcast.splat71, %strided.vec64 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat69, <4 x double> %strided.vec65, <4 x double> %82) %wide.vec72 = load <8 x double>, ptr %75, align 8, !noalias !5159 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %84 = fmul <4 x double> %strided.vec74, %broadcast.splat76 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec73, <4 x double> %84) %86 = fmul <4 x double> %broadcast.splat80, %strided.vec73 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat78, <4 x double> %strided.vec74, <4 x double> %86) %88 = fadd <4 x double> %strided.vec52, %81 %89 = fadd <4 x double> %strided.vec53, %83 %90 = fsub <4 x double> %strided.vec52, %81 %91 = fsub <4 x double> %strided.vec53, %83 %92 = fadd <4 x double> %77, %85 %93 = fadd <4 x double> %79, %87 %94 = fsub <4 x double> %77, %85 %95 = fsub <4 x double> %79, %87 %96 = fadd <4 x double> %88, %92 %97 = fadd <4 x double> %89, %93 %98 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec81 = shufflevector <4 x double> %96, <4 x double> %97, <8 x i32> store <8 x double> %interleaved.vec81, ptr %98, align 8, !noalias !5159 %99 = fsub <4 x double> %90, %95 %100 = fadd <4 x double> %91, %94 %101 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec82 = shufflevector <4 x double> %99, <4 x double> %100, <8 x i32> store <8 x double> %interleaved.vec82, ptr %101, align 8, !noalias !5159 %102 = fsub <4 x double> %88, %92 %103 = fsub <4 x double> %89, %93 %104 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec83 = shufflevector <4 x double> %102, <4 x double> %103, <8 x i32> store <8 x double> %interleaved.vec83, ptr %104, align 8, !noalias !5159 %105 = fadd <4 x double> %90, %95 %106 = fsub <4 x double> %91, %94 %107 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.1, i64 %index50 %interleaved.vec84 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec84, ptr %107, align 8, !noalias !5159 %index.next85 = add nuw i64 %index50, 4 %108 = icmp eq i64 %index.next85, 64 br i1 %108, label %bb20.i.i.i71.i.i.loopexit.1, label %vector.body49, !llvm.loop !5164 bb20.i.i.i71.i.i.loopexit.1: ; preds = %vector.body49 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 br label %bb24.i.i.i.i.i vector.body131: ; preds = %bb24.i.i.i.i.i, %vector.body131 %index132 = phi i64 [ %index.next174, %vector.body131 ], [ 0, %bb24.i.i.i.i.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body131 ], [ , %bb24.i.i.i.i.i ] %110 = shl nuw nsw <4 x i64> %vec.ind, %111 = extractelement <4 x i64> %110, i64 0 %112 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %111 %113 = shl nuw nsw <4 x i64> %vec.ind, %114 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %113 %115 = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %111 %116 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %111 %117 = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %111 %118 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %118, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %119 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 1, i32 1 %wide.masked.gather133 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %120 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 2 %wide.masked.gather134 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %121 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 2, i32 1 %wide.masked.gather135 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %122 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 3 %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %123 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %110, i64 3, i32 1 %wide.masked.gather137 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %124 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 8 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 4 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 12 %127 = fneg <4 x double> %wide.masked.gather133 %128 = fneg <4 x double> %wide.masked.gather135 %129 = fneg <4 x double> %wide.masked.gather137 %wide.masked.gather138 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %114, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %130 = getelementptr inbounds i8, <4 x ptr> %114, i64 8 %wide.masked.gather139 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %wide.masked.gather140 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 4, i32 1 %wide.masked.gather141 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %132 = fmul <4 x double> %wide.masked.gather141, %127 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather140, <4 x double> %132) %134 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather140 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather141, <4 x double> %134) %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 8, i32 1 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %137 = fmul <4 x double> %wide.masked.gather143, %128 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather142, <4 x double> %137) %139 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather142 %140 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather143, <4 x double> %139) %wide.masked.gather144 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %141 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 12, i32 1 %wide.masked.gather145 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %142 = fmul <4 x double> %wide.masked.gather145, %129 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather144, <4 x double> %142) %144 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather144 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather145, <4 x double> %144) %146 = fadd <4 x double> %wide.masked.gather138, %138 %147 = fadd <4 x double> %wide.masked.gather139, %140 %148 = fsub <4 x double> %wide.masked.gather138, %138 %149 = fsub <4 x double> %wide.masked.gather139, %140 %150 = fadd <4 x double> %133, %143 %151 = fadd <4 x double> %135, %145 %152 = fsub <4 x double> %133, %143 %153 = fsub <4 x double> %135, %145 %154 = fadd <4 x double> %146, %150 %155 = fadd <4 x double> %147, %151 %156 = fsub <4 x double> %148, %153 %157 = fadd <4 x double> %149, %152 %158 = fsub <4 x double> %146, %150 %159 = fsub <4 x double> %147, %151 %160 = fadd <4 x double> %148, %153 %161 = fsub <4 x double> %149, %152 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 1 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 5 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 9 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 13 %wide.masked.gather146 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 1, i32 1 %wide.masked.gather147 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %wide.masked.gather148 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %167 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 5, i32 1 %wide.masked.gather149 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %168 = fmul <4 x double> %wide.masked.gather149, %127 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather148, <4 x double> %168) %170 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather148 %171 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather149, <4 x double> %170) %wide.masked.gather150 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %172 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 9, i32 1 %wide.masked.gather151 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %173 = fmul <4 x double> %wide.masked.gather151, %128 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather150, <4 x double> %173) %175 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather150 %176 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather151, <4 x double> %175) %wide.masked.gather152 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %177 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 13, i32 1 %wide.masked.gather153 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %177, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %178 = fmul <4 x double> %wide.masked.gather153, %129 %179 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather152, <4 x double> %178) %180 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather152 %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather153, <4 x double> %180) %182 = fadd <4 x double> %wide.masked.gather146, %174 %183 = fadd <4 x double> %wide.masked.gather147, %176 %184 = fsub <4 x double> %wide.masked.gather146, %174 %185 = fsub <4 x double> %wide.masked.gather147, %176 %186 = fadd <4 x double> %169, %179 %187 = fadd <4 x double> %171, %181 %188 = fsub <4 x double> %169, %179 %189 = fsub <4 x double> %171, %181 %190 = fadd <4 x double> %182, %186 %191 = fadd <4 x double> %183, %187 %192 = fsub <4 x double> %184, %189 %193 = fadd <4 x double> %185, %188 %194 = fsub <4 x double> %182, %186 %195 = fsub <4 x double> %183, %187 %196 = fadd <4 x double> %184, %189 %197 = fsub <4 x double> %185, %188 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 2 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 6 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 10 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 14 %wide.masked.gather154 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %202 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 2, i32 1 %wide.masked.gather155 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %202, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %wide.masked.gather156 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 6, i32 1 %wide.masked.gather157 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %204 = fmul <4 x double> %wide.masked.gather157, %127 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather156, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather156 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather157, <4 x double> %206) %wide.masked.gather158 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %208 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 10, i32 1 %wide.masked.gather159 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %208, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %209 = fmul <4 x double> %wide.masked.gather159, %128 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather158, <4 x double> %209) %211 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather158 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather159, <4 x double> %211) %wide.masked.gather160 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 14, i32 1 %wide.masked.gather161 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %214 = fmul <4 x double> %wide.masked.gather161, %129 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather160, <4 x double> %214) %216 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather160 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather161, <4 x double> %216) %218 = fadd <4 x double> %wide.masked.gather154, %210 %219 = fadd <4 x double> %wide.masked.gather155, %212 %220 = fsub <4 x double> %wide.masked.gather154, %210 %221 = fsub <4 x double> %wide.masked.gather155, %212 %222 = fadd <4 x double> %205, %215 %223 = fadd <4 x double> %207, %217 %224 = fsub <4 x double> %205, %215 %225 = fsub <4 x double> %207, %217 %226 = fadd <4 x double> %218, %222 %227 = fadd <4 x double> %219, %223 %228 = fsub <4 x double> %220, %225 %229 = fadd <4 x double> %221, %224 %230 = fsub <4 x double> %218, %222 %231 = fsub <4 x double> %219, %223 %232 = fadd <4 x double> %220, %225 %233 = fsub <4 x double> %221, %224 %234 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 3 %235 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 7 %236 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 11 %237 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 15 %wide.masked.gather162 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %234, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %238 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 3, i32 1 %wide.masked.gather163 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %wide.masked.gather164 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %235, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %239 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 7, i32 1 %wide.masked.gather165 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %240 = fmul <4 x double> %wide.masked.gather165, %127 %241 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather164, <4 x double> %240) %242 = fmul <4 x double> %wide.masked.gather133, %wide.masked.gather164 %243 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather165, <4 x double> %242) %wide.masked.gather166 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %236, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %244 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 11, i32 1 %wide.masked.gather167 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %244, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %245 = fmul <4 x double> %wide.masked.gather167, %128 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather166, <4 x double> %245) %247 = fmul <4 x double> %wide.masked.gather135, %wide.masked.gather166 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather134, <4 x double> %wide.masked.gather167, <4 x double> %247) %wide.masked.gather168 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %249 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %114, i64 15, i32 1 %wide.masked.gather169 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %249, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %250 = fmul <4 x double> %wide.masked.gather169, %129 %251 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather168, <4 x double> %250) %252 = fmul <4 x double> %wide.masked.gather137, %wide.masked.gather168 %253 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather136, <4 x double> %wide.masked.gather169, <4 x double> %252) %254 = fadd <4 x double> %wide.masked.gather162, %246 %255 = fadd <4 x double> %wide.masked.gather163, %248 %256 = fsub <4 x double> %wide.masked.gather162, %246 %257 = fsub <4 x double> %wide.masked.gather163, %248 %258 = fadd <4 x double> %241, %251 %259 = fadd <4 x double> %243, %253 %260 = fsub <4 x double> %241, %251 %261 = fsub <4 x double> %243, %253 %262 = fadd <4 x double> %254, %258 %263 = fadd <4 x double> %255, %259 %264 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> %265 = shufflevector <4 x double> %190, <4 x double> %191, <8 x i32> %266 = shufflevector <4 x double> %226, <4 x double> %227, <8 x i32> %267 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> %268 = shufflevector <8 x double> %264, <8 x double> %265, <16 x i32> %269 = shufflevector <8 x double> %266, <8 x double> %267, <16 x i32> %interleaved.vec170 = shufflevector <16 x double> %268, <16 x double> %269, <32 x i32> store <32 x double> %interleaved.vec170, ptr %112, align 8, !noalias !5159 %270 = fsub <4 x double> %256, %261 %271 = fadd <4 x double> %257, %260 %272 = shufflevector <4 x double> %156, <4 x double> %157, <8 x i32> %273 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> %274 = shufflevector <4 x double> %228, <4 x double> %229, <8 x i32> %275 = shufflevector <4 x double> %270, <4 x double> %271, <8 x i32> %276 = shufflevector <8 x double> %272, <8 x double> %273, <16 x i32> %277 = shufflevector <8 x double> %274, <8 x double> %275, <16 x i32> %interleaved.vec171 = shufflevector <16 x double> %276, <16 x double> %277, <32 x i32> store <32 x double> %interleaved.vec171, ptr %117, align 8, !noalias !5159 %278 = fsub <4 x double> %254, %258 %279 = fsub <4 x double> %255, %259 %280 = shufflevector <4 x double> %158, <4 x double> %159, <8 x i32> %281 = shufflevector <4 x double> %194, <4 x double> %195, <8 x i32> %282 = shufflevector <4 x double> %230, <4 x double> %231, <8 x i32> %283 = shufflevector <4 x double> %278, <4 x double> %279, <8 x i32> %284 = shufflevector <8 x double> %280, <8 x double> %281, <16 x i32> %285 = shufflevector <8 x double> %282, <8 x double> %283, <16 x i32> %interleaved.vec172 = shufflevector <16 x double> %284, <16 x double> %285, <32 x i32> store <32 x double> %interleaved.vec172, ptr %116, align 8, !noalias !5159 %286 = fadd <4 x double> %256, %261 %287 = fsub <4 x double> %257, %260 %288 = shufflevector <4 x double> %160, <4 x double> %161, <8 x i32> %289 = shufflevector <4 x double> %196, <4 x double> %197, <8 x i32> %290 = shufflevector <4 x double> %232, <4 x double> %233, <8 x i32> %291 = shufflevector <4 x double> %286, <4 x double> %287, <8 x i32> %292 = shufflevector <8 x double> %288, <8 x double> %289, <16 x i32> %293 = shufflevector <8 x double> %290, <8 x double> %291, <16 x i32> %interleaved.vec173 = shufflevector <16 x double> %292, <16 x double> %293, <32 x i32> store <32 x double> %interleaved.vec173, ptr %115, align 8, !noalias !5159 %index.next174 = add nuw i64 %index132, 4 %vec.ind.next = add <4 x i64> %vec.ind, %294 = icmp eq i64 %index.next174, 32 br i1 %294, label %vector.body179, label %vector.body131, !llvm.loop !5165 bb24.i.i.i.i.i: ; preds = %bb20.i.i.i71.i.i.loopexit.1, %bb24.i.i.i.i.i %iter.i.i.i.i.i.sroa.60.0134 = phi i64 [ 0, %bb20.i.i.i71.i.i.loopexit.1 ], [ %440, %bb24.i.i.i.i.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i372 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.60.0134, 4 %295 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 3, i32 1 %w3.1.i.i.i.i.i = load double, ptr %295, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert120 = insertelement <4 x double> poison, double %w3.1.i.i.i.i.i, i64 0 %broadcast.splat121 = shufflevector <4 x double> %broadcast.splatinsert120, <4 x double> poison, <4 x i32> zeroinitializer %296 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 3 %w3.0.i.i.i.i.i = load double, ptr %296, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert118 = insertelement <4 x double> poison, double %w3.0.i.i.i.i.i, i64 0 %broadcast.splat119 = shufflevector <4 x double> %broadcast.splatinsert118, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i.i = fneg double %w3.1.i.i.i.i.i %broadcast.splatinsert116 = insertelement <4 x double> poison, double %_6.i.i.i.i.i.i, i64 0 %broadcast.splat117 = shufflevector <4 x double> %broadcast.splatinsert116, <4 x double> poison, <4 x i32> zeroinitializer %297 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 2, i32 1 %w2.1.i.i.i.i.i = load double, ptr %297, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert111 = insertelement <4 x double> poison, double %w2.1.i.i.i.i.i, i64 0 %broadcast.splat112 = shufflevector <4 x double> %broadcast.splatinsert111, <4 x double> poison, <4 x i32> zeroinitializer %298 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 2 %w2.0.i.i.i.i.i = load double, ptr %298, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert109 = insertelement <4 x double> poison, double %w2.0.i.i.i.i.i, i64 0 %broadcast.splat110 = shufflevector <4 x double> %broadcast.splatinsert109, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i.i = fneg double %w2.1.i.i.i.i.i %broadcast.splatinsert107 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i.i, i64 0 %broadcast.splat108 = shufflevector <4 x double> %broadcast.splatinsert107, <4 x double> poison, <4 x i32> zeroinitializer %299 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 1, i32 1 %w1.1.i.i.i.i.i = load double, ptr %299, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert102 = insertelement <4 x double> poison, double %w1.1.i.i.i.i.i, i64 0 %broadcast.splat103 = shufflevector <4 x double> %broadcast.splatinsert102, <4 x double> poison, <4 x i32> zeroinitializer %300 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372, i64 1 %w1.0.i.i.i.i.i = load double, ptr %300, align 8, !noalias !5159, !noundef !3 %broadcast.splatinsert100 = insertelement <4 x double> poison, double %w1.0.i.i.i.i.i, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i.i = fneg double %w1.1.i.i.i.i.i %broadcast.splatinsert98 = insertelement <4 x double> poison, double %_6.i39.i.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i382 = shl nuw nsw i64 %iter.i.i.i.i.i.sroa.60.0134, 6 %data.i.i.i.i.i.i383 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i382 %301 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 48 %302 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 16 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i395 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %data.i.i.i.i.i.i.i.i.i.i391 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %data.i.i.i.i.i.i.i.i387 = getelementptr inbounds %"num_complex::Complex", ptr %109, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %data.i.i.i.i.i.i.i.i.i.i.i.i373 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i372 %wide.vec92 = load <8 x double>, ptr %data.i.i.i.i.i.i383, align 8, !noalias !5159 %strided.vec93 = shufflevector <8 x double> %wide.vec92, <8 x double> poison, <4 x i32> %strided.vec94 = shufflevector <8 x double> %wide.vec92, <8 x double> poison, <4 x i32> %wide.vec95 = load <8 x double>, ptr %302, align 8, !noalias !5159 %strided.vec96 = shufflevector <8 x double> %wide.vec95, <8 x double> poison, <4 x i32> %strided.vec97 = shufflevector <8 x double> %wide.vec95, <8 x double> poison, <4 x i32> %304 = fmul <4 x double> %strided.vec97, %broadcast.splat99 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96, <4 x double> %304) %306 = fmul <4 x double> %broadcast.splat103, %strided.vec96 %307 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97, <4 x double> %306) %wide.vec104 = load <8 x double>, ptr %303, align 8, !noalias !5159 %strided.vec105 = shufflevector <8 x double> %wide.vec104, <8 x double> poison, <4 x i32> %strided.vec106 = shufflevector <8 x double> %wide.vec104, <8 x double> poison, <4 x i32> %308 = fmul <4 x double> %strided.vec106, %broadcast.splat108 %309 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105, <4 x double> %308) %310 = fmul <4 x double> %broadcast.splat112, %strided.vec105 %311 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106, <4 x double> %310) %wide.vec113 = load <8 x double>, ptr %301, align 8, !noalias !5159 %strided.vec114 = shufflevector <8 x double> %wide.vec113, <8 x double> poison, <4 x i32> %strided.vec115 = shufflevector <8 x double> %wide.vec113, <8 x double> poison, <4 x i32> %312 = fmul <4 x double> %strided.vec115, %broadcast.splat117 %313 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114, <4 x double> %312) %314 = fmul <4 x double> %broadcast.splat121, %strided.vec114 %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115, <4 x double> %314) %316 = fadd <4 x double> %strided.vec93, %309 %317 = fadd <4 x double> %strided.vec94, %311 %318 = fsub <4 x double> %strided.vec93, %309 %319 = fsub <4 x double> %strided.vec94, %311 %320 = fadd <4 x double> %305, %313 %321 = fadd <4 x double> %307, %315 %322 = fsub <4 x double> %305, %313 %323 = fsub <4 x double> %307, %315 %324 = fadd <4 x double> %316, %320 %325 = fadd <4 x double> %317, %321 %interleaved.vec122 = shufflevector <4 x double> %324, <4 x double> %325, <8 x i32> store <8 x double> %interleaved.vec122, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, align 8, !noalias !5159 %326 = fsub <4 x double> %318, %323 %327 = fadd <4 x double> %319, %322 %interleaved.vec123 = shufflevector <4 x double> %326, <4 x double> %327, <8 x i32> store <8 x double> %interleaved.vec123, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, align 8, !noalias !5159 %328 = fsub <4 x double> %316, %320 %329 = fsub <4 x double> %317, %321 %interleaved.vec124 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec124, ptr %data.i.i.i.i.i.i.i.i.i.i391, align 8, !noalias !5159 %330 = fadd <4 x double> %318, %323 %331 = fsub <4 x double> %319, %322 %interleaved.vec125 = shufflevector <4 x double> %330, <4 x double> %331, <8 x i32> store <8 x double> %interleaved.vec125, ptr %data.i.i.i.i.i.i.i.i387, align 8, !noalias !5159 %332 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 4 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 20 %334 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 36 %335 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 52 %wide.vec92.1 = load <8 x double>, ptr %332, align 8, !noalias !5159 %strided.vec93.1 = shufflevector <8 x double> %wide.vec92.1, <8 x double> poison, <4 x i32> %strided.vec94.1 = shufflevector <8 x double> %wide.vec92.1, <8 x double> poison, <4 x i32> %wide.vec95.1 = load <8 x double>, ptr %333, align 8, !noalias !5159 %strided.vec96.1 = shufflevector <8 x double> %wide.vec95.1, <8 x double> poison, <4 x i32> %strided.vec97.1 = shufflevector <8 x double> %wide.vec95.1, <8 x double> poison, <4 x i32> %336 = fmul <4 x double> %strided.vec97.1, %broadcast.splat99 %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96.1, <4 x double> %336) %338 = fmul <4 x double> %broadcast.splat103, %strided.vec96.1 %339 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97.1, <4 x double> %338) %wide.vec104.1 = load <8 x double>, ptr %334, align 8, !noalias !5159 %strided.vec105.1 = shufflevector <8 x double> %wide.vec104.1, <8 x double> poison, <4 x i32> %strided.vec106.1 = shufflevector <8 x double> %wide.vec104.1, <8 x double> poison, <4 x i32> %340 = fmul <4 x double> %strided.vec106.1, %broadcast.splat108 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105.1, <4 x double> %340) %342 = fmul <4 x double> %broadcast.splat112, %strided.vec105.1 %343 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106.1, <4 x double> %342) %wide.vec113.1 = load <8 x double>, ptr %335, align 8, !noalias !5159 %strided.vec114.1 = shufflevector <8 x double> %wide.vec113.1, <8 x double> poison, <4 x i32> %strided.vec115.1 = shufflevector <8 x double> %wide.vec113.1, <8 x double> poison, <4 x i32> %344 = fmul <4 x double> %strided.vec115.1, %broadcast.splat117 %345 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114.1, <4 x double> %344) %346 = fmul <4 x double> %broadcast.splat121, %strided.vec114.1 %347 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115.1, <4 x double> %346) %348 = fadd <4 x double> %strided.vec93.1, %341 %349 = fadd <4 x double> %strided.vec94.1, %343 %350 = fsub <4 x double> %strided.vec93.1, %341 %351 = fsub <4 x double> %strided.vec94.1, %343 %352 = fadd <4 x double> %337, %345 %353 = fadd <4 x double> %339, %347 %354 = fsub <4 x double> %337, %345 %355 = fsub <4 x double> %339, %347 %356 = fadd <4 x double> %348, %352 %357 = fadd <4 x double> %349, %353 %358 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, i64 4 %interleaved.vec122.1 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec122.1, ptr %358, align 8, !noalias !5159 %359 = fsub <4 x double> %350, %355 %360 = fadd <4 x double> %351, %354 %361 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, i64 4 %interleaved.vec123.1 = shufflevector <4 x double> %359, <4 x double> %360, <8 x i32> store <8 x double> %interleaved.vec123.1, ptr %361, align 8, !noalias !5159 %362 = fsub <4 x double> %348, %352 %363 = fsub <4 x double> %349, %353 %364 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i391, i64 4 %interleaved.vec124.1 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec124.1, ptr %364, align 8, !noalias !5159 %365 = fadd <4 x double> %350, %355 %366 = fsub <4 x double> %351, %354 %367 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i387, i64 4 %interleaved.vec125.1 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec125.1, ptr %367, align 8, !noalias !5159 %368 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 8 %369 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 24 %370 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 40 %371 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 56 %wide.vec92.2 = load <8 x double>, ptr %368, align 8, !noalias !5159 %strided.vec93.2 = shufflevector <8 x double> %wide.vec92.2, <8 x double> poison, <4 x i32> %strided.vec94.2 = shufflevector <8 x double> %wide.vec92.2, <8 x double> poison, <4 x i32> %wide.vec95.2 = load <8 x double>, ptr %369, align 8, !noalias !5159 %strided.vec96.2 = shufflevector <8 x double> %wide.vec95.2, <8 x double> poison, <4 x i32> %strided.vec97.2 = shufflevector <8 x double> %wide.vec95.2, <8 x double> poison, <4 x i32> %372 = fmul <4 x double> %strided.vec97.2, %broadcast.splat99 %373 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96.2, <4 x double> %372) %374 = fmul <4 x double> %broadcast.splat103, %strided.vec96.2 %375 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97.2, <4 x double> %374) %wide.vec104.2 = load <8 x double>, ptr %370, align 8, !noalias !5159 %strided.vec105.2 = shufflevector <8 x double> %wide.vec104.2, <8 x double> poison, <4 x i32> %strided.vec106.2 = shufflevector <8 x double> %wide.vec104.2, <8 x double> poison, <4 x i32> %376 = fmul <4 x double> %strided.vec106.2, %broadcast.splat108 %377 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105.2, <4 x double> %376) %378 = fmul <4 x double> %broadcast.splat112, %strided.vec105.2 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106.2, <4 x double> %378) %wide.vec113.2 = load <8 x double>, ptr %371, align 8, !noalias !5159 %strided.vec114.2 = shufflevector <8 x double> %wide.vec113.2, <8 x double> poison, <4 x i32> %strided.vec115.2 = shufflevector <8 x double> %wide.vec113.2, <8 x double> poison, <4 x i32> %380 = fmul <4 x double> %strided.vec115.2, %broadcast.splat117 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114.2, <4 x double> %380) %382 = fmul <4 x double> %broadcast.splat121, %strided.vec114.2 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115.2, <4 x double> %382) %384 = fadd <4 x double> %strided.vec93.2, %377 %385 = fadd <4 x double> %strided.vec94.2, %379 %386 = fsub <4 x double> %strided.vec93.2, %377 %387 = fsub <4 x double> %strided.vec94.2, %379 %388 = fadd <4 x double> %373, %381 %389 = fadd <4 x double> %375, %383 %390 = fsub <4 x double> %373, %381 %391 = fsub <4 x double> %375, %383 %392 = fadd <4 x double> %384, %388 %393 = fadd <4 x double> %385, %389 %394 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, i64 8 %interleaved.vec122.2 = shufflevector <4 x double> %392, <4 x double> %393, <8 x i32> store <8 x double> %interleaved.vec122.2, ptr %394, align 8, !noalias !5159 %395 = fsub <4 x double> %386, %391 %396 = fadd <4 x double> %387, %390 %397 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, i64 8 %interleaved.vec123.2 = shufflevector <4 x double> %395, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec123.2, ptr %397, align 8, !noalias !5159 %398 = fsub <4 x double> %384, %388 %399 = fsub <4 x double> %385, %389 %400 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i391, i64 8 %interleaved.vec124.2 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec124.2, ptr %400, align 8, !noalias !5159 %401 = fadd <4 x double> %386, %391 %402 = fsub <4 x double> %387, %390 %403 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i387, i64 8 %interleaved.vec125.2 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec125.2, ptr %403, align 8, !noalias !5159 %404 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 12 %405 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 28 %406 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 44 %407 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i383, i64 60 %wide.vec92.3 = load <8 x double>, ptr %404, align 8, !noalias !5159 %strided.vec93.3 = shufflevector <8 x double> %wide.vec92.3, <8 x double> poison, <4 x i32> %strided.vec94.3 = shufflevector <8 x double> %wide.vec92.3, <8 x double> poison, <4 x i32> %wide.vec95.3 = load <8 x double>, ptr %405, align 8, !noalias !5159 %strided.vec96.3 = shufflevector <8 x double> %wide.vec95.3, <8 x double> poison, <4 x i32> %strided.vec97.3 = shufflevector <8 x double> %wide.vec95.3, <8 x double> poison, <4 x i32> %408 = fmul <4 x double> %strided.vec97.3, %broadcast.splat99 %409 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec96.3, <4 x double> %408) %410 = fmul <4 x double> %broadcast.splat103, %strided.vec96.3 %411 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat101, <4 x double> %strided.vec97.3, <4 x double> %410) %wide.vec104.3 = load <8 x double>, ptr %406, align 8, !noalias !5159 %strided.vec105.3 = shufflevector <8 x double> %wide.vec104.3, <8 x double> poison, <4 x i32> %strided.vec106.3 = shufflevector <8 x double> %wide.vec104.3, <8 x double> poison, <4 x i32> %412 = fmul <4 x double> %strided.vec106.3, %broadcast.splat108 %413 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec105.3, <4 x double> %412) %414 = fmul <4 x double> %broadcast.splat112, %strided.vec105.3 %415 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat110, <4 x double> %strided.vec106.3, <4 x double> %414) %wide.vec113.3 = load <8 x double>, ptr %407, align 8, !noalias !5159 %strided.vec114.3 = shufflevector <8 x double> %wide.vec113.3, <8 x double> poison, <4 x i32> %strided.vec115.3 = shufflevector <8 x double> %wide.vec113.3, <8 x double> poison, <4 x i32> %416 = fmul <4 x double> %strided.vec115.3, %broadcast.splat117 %417 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec114.3, <4 x double> %416) %418 = fmul <4 x double> %broadcast.splat121, %strided.vec114.3 %419 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat119, <4 x double> %strided.vec115.3, <4 x double> %418) %420 = fadd <4 x double> %strided.vec93.3, %413 %421 = fadd <4 x double> %strided.vec94.3, %415 %422 = fsub <4 x double> %strided.vec93.3, %413 %423 = fsub <4 x double> %strided.vec94.3, %415 %424 = fadd <4 x double> %409, %417 %425 = fadd <4 x double> %411, %419 %426 = fsub <4 x double> %409, %417 %427 = fsub <4 x double> %411, %419 %428 = fadd <4 x double> %420, %424 %429 = fadd <4 x double> %421, %425 %430 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i373, i64 12 %interleaved.vec122.3 = shufflevector <4 x double> %428, <4 x double> %429, <8 x i32> store <8 x double> %interleaved.vec122.3, ptr %430, align 8, !noalias !5159 %431 = fsub <4 x double> %422, %427 %432 = fadd <4 x double> %423, %426 %433 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i395, i64 12 %interleaved.vec123.3 = shufflevector <4 x double> %431, <4 x double> %432, <8 x i32> store <8 x double> %interleaved.vec123.3, ptr %433, align 8, !noalias !5159 %434 = fsub <4 x double> %420, %424 %435 = fsub <4 x double> %421, %425 %436 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i391, i64 12 %interleaved.vec124.3 = shufflevector <4 x double> %434, <4 x double> %435, <8 x i32> store <8 x double> %interleaved.vec124.3, ptr %436, align 8, !noalias !5159 %437 = fadd <4 x double> %422, %427 %438 = fsub <4 x double> %423, %426 %439 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i387, i64 12 %interleaved.vec125.3 = shufflevector <4 x double> %437, <4 x double> %438, <8 x i32> store <8 x double> %interleaved.vec125.3, ptr %439, align 8, !noalias !5159 %440 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.60.0134, 1 %exitcond142.not = icmp eq i64 %440, 8 br i1 %exitcond142.not, label %vector.body131, label %bb24.i.i.i.i.i vector.body179: ; preds = %vector.body131, %vector.body179 %index180 = phi i64 [ %index.next201, %vector.body179 ], [ 0, %vector.body131 ] %vec.ind181 = phi <4 x i64> [ %vec.ind.next182, %vector.body179 ], [ , %vector.body131 ] %441 = shl <4 x i64> %vec.ind181, %442 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %441 %443 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 1 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %443, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %444 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 1, i32 1 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %444, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %445 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 2 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %445, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %446 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 2, i32 1 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %447 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 3 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %448 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind181, i64 3, i32 1 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %448, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %449 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 2 %450 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 1 %451 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 3 %452 = fneg <4 x double> %wide.masked.gather184 %453 = fneg <4 x double> %wide.masked.gather186 %454 = fneg <4 x double> %wide.masked.gather188 %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %442, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %455 = getelementptr inbounds i8, <4 x ptr> %442, i64 8 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %450, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 1, i32 1 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %457 = fmul <4 x double> %wide.masked.gather192, %452 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather191, <4 x double> %457) %459 = fmul <4 x double> %wide.masked.gather184, %wide.masked.gather191 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather192, <4 x double> %459) %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %449, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %461 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 2, i32 1 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %461, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %462 = fmul <4 x double> %wide.masked.gather194, %453 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather185, <4 x double> %wide.masked.gather193, <4 x double> %462) %464 = fmul <4 x double> %wide.masked.gather186, %wide.masked.gather193 %465 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather185, <4 x double> %wide.masked.gather194, <4 x double> %464) %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %451, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %466 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %442, i64 3, i32 1 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %466, i32 8, <4 x i1> , <4 x double> poison), !noalias !5159 %467 = fmul <4 x double> %wide.masked.gather196, %454 %468 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather187, <4 x double> %wide.masked.gather195, <4 x double> %467) %469 = fmul <4 x double> %wide.masked.gather188, %wide.masked.gather195 %470 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather187, <4 x double> %wide.masked.gather196, <4 x double> %469) %471 = fadd <4 x double> %wide.masked.gather189, %463 %472 = fadd <4 x double> %wide.masked.gather190, %465 %473 = fsub <4 x double> %wide.masked.gather189, %463 %474 = fsub <4 x double> %wide.masked.gather190, %465 %475 = fadd <4 x double> %458, %468 %476 = fadd <4 x double> %460, %470 %477 = fsub <4 x double> %458, %468 %478 = fsub <4 x double> %460, %470 %479 = fadd <4 x double> %471, %475 %480 = fadd <4 x double> %472, %476 %481 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index180 %interleaved.vec197 = shufflevector <4 x double> %479, <4 x double> %480, <8 x i32> store <8 x double> %interleaved.vec197, ptr %481, align 8, !noalias !5159 %482 = fsub <4 x double> %473, %478 %483 = fadd <4 x double> %474, %477 %484 = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %index180 %interleaved.vec198 = shufflevector <4 x double> %482, <4 x double> %483, <8 x i32> store <8 x double> %interleaved.vec198, ptr %484, align 8, !noalias !5159 %485 = fsub <4 x double> %471, %475 %486 = fsub <4 x double> %472, %476 %487 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index180 %interleaved.vec199 = shufflevector <4 x double> %485, <4 x double> %486, <8 x i32> store <8 x double> %interleaved.vec199, ptr %487, align 8, !noalias !5159 %488 = fadd <4 x double> %473, %478 %489 = fsub <4 x double> %474, %477 %490 = getelementptr inbounds %"num_complex::Complex", ptr %109, i64 %index180 %interleaved.vec200 = shufflevector <4 x double> %488, <4 x double> %489, <8 x i32> store <8 x double> %interleaved.vec200, ptr %490, align 8, !noalias !5159 %index.next201 = add nuw i64 %index180, 4 %vec.ind.next182 = add <4 x i64> %vec.ind181, %491 = icmp eq i64 %index.next201, 124 br i1 %491, label %bb24.i.i.i, label %vector.body179, !llvm.loop !5166 bb24.i.i.i: ; preds = %vector.body179 %data.i.i.i.i.i.i.i.i.i.i.i.i999 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i1009 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496 %data.i.i.i.i.i.i.i.i1013 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i.i.i.i.i1017 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %492 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1 %w1.0.i.i.i = load double, ptr %492, align 8, !noalias !5159, !noundef !3 %493 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %493, align 8, !noalias !5159, !noundef !3 %494 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2 %w2.0.i.i.i = load double, ptr %494, align 8, !noalias !5159, !noundef !3 %495 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %495, align 8, !noalias !5159, !noundef !3 %496 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3 %w3.0.i.i.i = load double, ptr %496, align 8, !noalias !5159, !noundef !3 %497 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 124, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %497, align 8, !noalias !5159, !noundef !3 %498 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 498 %499 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 497 %500 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 499 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i1009, align 8, !noalias !5159, !noundef !3 %501 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 496, i32 1 %a.1.i.i.i = load double, ptr %501, align 8, !noalias !5159, !noundef !3 %_84.0.i.i.i = load double, ptr %499, align 8, !noalias !5159, !noundef !3 %502 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 497, i32 1 %_84.1.i.i.i = load double, ptr %502, align 8, !noalias !5159, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %503 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %504 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %498, align 8, !noalias !5159, !noundef !3 %505 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 498, i32 1 %_86.1.i.i.i = load double, ptr %505, align 8, !noalias !5159, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %506 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %507 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %500, align 8, !noalias !5159, !noundef !3 %508 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 499, i32 1 %_88.1.i.i.i = load double, ptr %508, align 8, !noalias !5159, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %509 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %510 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i1154 = fadd double %a.0.i.i.i, %506 %_0.i3.i1155 = fadd double %a.1.i.i.i, %507 %_0.i.i1156 = fsub double %a.0.i.i.i, %506 %_0.i3.i1157 = fsub double %a.1.i.i.i, %507 %_0.i.i1158 = fadd double %503, %509 %_0.i3.i1159 = fadd double %504, %510 %_0.i.i1160 = fsub double %503, %509 %_0.i3.i1161 = fsub double %504, %510 %_0.i.i1162 = fadd double %_0.i.i1154, %_0.i.i1158 %_0.i3.i1163 = fadd double %_0.i3.i1155, %_0.i3.i1159 store double %_0.i.i1162, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999, align 8, !noalias !5159 %511 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124, i32 1 store double %_0.i3.i1163, ptr %511, align 8, !noalias !5159 %_0.i.i1164 = fsub double %_0.i.i1156, %_0.i3.i1161 %_0.i3.i1165 = fadd double %_0.i3.i1157, %_0.i.i1160 store double %_0.i.i1164, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021, align 8, !noalias !5159 %512 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252, i32 1 store double %_0.i3.i1165, ptr %512, align 8, !noalias !5159 %_0.i.i1166 = fsub double %_0.i.i1154, %_0.i.i1158 %_0.i3.i1167 = fsub double %_0.i3.i1155, %_0.i3.i1159 store double %_0.i.i1166, ptr %data.i.i.i.i.i.i.i.i.i.i1017, align 8, !noalias !5159 %513 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 380, i32 1 store double %_0.i3.i1167, ptr %513, align 8, !noalias !5159 %_0.i.i1168 = fadd double %_0.i.i1156, %_0.i3.i1161 %_0.i3.i1169 = fsub double %_0.i3.i1157, %_0.i.i1160 store double %_0.i.i1168, ptr %data.i.i.i.i.i.i.i.i1013, align 8, !noalias !5159 %514 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508, i32 1 store double %_0.i3.i1169, ptr %514, align 8, !noalias !5159 %data.i.i.i.i.i.i.i.i.i.i.i.i999.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i1009.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500 %data.i.i.i.i.i.i.i.i1013.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.i.i.i.i1017.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 381 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %515 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1 %w1.0.i.i.i.1 = load double, ptr %515, align 8, !noalias !5159, !noundef !3 %516 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %516, align 8, !noalias !5159, !noundef !3 %517 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2 %w2.0.i.i.i.1 = load double, ptr %517, align 8, !noalias !5159, !noundef !3 %518 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %518, align 8, !noalias !5159, !noundef !3 %519 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3 %w3.0.i.i.i.1 = load double, ptr %519, align 8, !noalias !5159, !noundef !3 %520 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 125, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %520, align 8, !noalias !5159, !noundef !3 %521 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 502 %522 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 501 %523 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 503 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i1009.1, align 8, !noalias !5159, !noundef !3 %524 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 500, i32 1 %a.1.i.i.i.1 = load double, ptr %524, align 8, !noalias !5159, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %522, align 8, !noalias !5159, !noundef !3 %525 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 501, i32 1 %_84.1.i.i.i.1 = load double, ptr %525, align 8, !noalias !5159, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %526 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %527 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %521, align 8, !noalias !5159, !noundef !3 %528 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 502, i32 1 %_86.1.i.i.i.1 = load double, ptr %528, align 8, !noalias !5159, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %529 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %530 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %523, align 8, !noalias !5159, !noundef !3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 503, i32 1 %_88.1.i.i.i.1 = load double, ptr %531, align 8, !noalias !5159, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %532 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %533 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i1154.1 = fadd double %a.0.i.i.i.1, %529 %_0.i3.i1155.1 = fadd double %a.1.i.i.i.1, %530 %_0.i.i1156.1 = fsub double %a.0.i.i.i.1, %529 %_0.i3.i1157.1 = fsub double %a.1.i.i.i.1, %530 %_0.i.i1158.1 = fadd double %526, %532 %_0.i3.i1159.1 = fadd double %527, %533 %_0.i.i1160.1 = fsub double %526, %532 %_0.i3.i1161.1 = fsub double %527, %533 %_0.i.i1162.1 = fadd double %_0.i.i1154.1, %_0.i.i1158.1 %_0.i3.i1163.1 = fadd double %_0.i3.i1155.1, %_0.i3.i1159.1 store double %_0.i.i1162.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999.1, align 8, !noalias !5159 %534 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125, i32 1 store double %_0.i3.i1163.1, ptr %534, align 8, !noalias !5159 %_0.i.i1164.1 = fsub double %_0.i.i1156.1, %_0.i3.i1161.1 %_0.i3.i1165.1 = fadd double %_0.i3.i1157.1, %_0.i.i1160.1 store double %_0.i.i1164.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.1, align 8, !noalias !5159 %535 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253, i32 1 store double %_0.i3.i1165.1, ptr %535, align 8, !noalias !5159 %_0.i.i1166.1 = fsub double %_0.i.i1154.1, %_0.i.i1158.1 %_0.i3.i1167.1 = fsub double %_0.i3.i1155.1, %_0.i3.i1159.1 store double %_0.i.i1166.1, ptr %data.i.i.i.i.i.i.i.i.i.i1017.1, align 8, !noalias !5159 %536 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 381, i32 1 store double %_0.i3.i1167.1, ptr %536, align 8, !noalias !5159 %_0.i.i1168.1 = fadd double %_0.i.i1156.1, %_0.i3.i1161.1 %_0.i3.i1169.1 = fsub double %_0.i3.i1157.1, %_0.i.i1160.1 store double %_0.i.i1168.1, ptr %data.i.i.i.i.i.i.i.i1013.1, align 8, !noalias !5159 %537 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509, i32 1 store double %_0.i3.i1169.1, ptr %537, align 8, !noalias !5159 %data.i.i.i.i.i.i.i.i.i.i.i.i999.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i1009.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504 %data.i.i.i.i.i.i.i.i1013.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.i.i.i.i1017.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 382 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %538 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1 %w1.0.i.i.i.2 = load double, ptr %538, align 8, !noalias !5159, !noundef !3 %539 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %539, align 8, !noalias !5159, !noundef !3 %540 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2 %w2.0.i.i.i.2 = load double, ptr %540, align 8, !noalias !5159, !noundef !3 %541 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %541, align 8, !noalias !5159, !noundef !3 %542 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3 %w3.0.i.i.i.2 = load double, ptr %542, align 8, !noalias !5159, !noundef !3 %543 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 126, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %543, align 8, !noalias !5159, !noundef !3 %544 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506 %545 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505 %546 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i1009.2, align 8, !noalias !5159, !noundef !3 %547 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 504, i32 1 %a.1.i.i.i.2 = load double, ptr %547, align 8, !noalias !5159, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %545, align 8, !noalias !5159, !noundef !3 %548 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 505, i32 1 %_84.1.i.i.i.2 = load double, ptr %548, align 8, !noalias !5159, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %549 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %550 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %544, align 8, !noalias !5159, !noundef !3 %551 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 506, i32 1 %_86.1.i.i.i.2 = load double, ptr %551, align 8, !noalias !5159, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %552 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %553 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %546, align 8, !noalias !5159, !noundef !3 %554 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 507, i32 1 %_88.1.i.i.i.2 = load double, ptr %554, align 8, !noalias !5159, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %555 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %556 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i1154.2 = fadd double %a.0.i.i.i.2, %552 %_0.i3.i1155.2 = fadd double %a.1.i.i.i.2, %553 %_0.i.i1156.2 = fsub double %a.0.i.i.i.2, %552 %_0.i3.i1157.2 = fsub double %a.1.i.i.i.2, %553 %_0.i.i1158.2 = fadd double %549, %555 %_0.i3.i1159.2 = fadd double %550, %556 %_0.i.i1160.2 = fsub double %549, %555 %_0.i3.i1161.2 = fsub double %550, %556 %_0.i.i1162.2 = fadd double %_0.i.i1154.2, %_0.i.i1158.2 %_0.i3.i1163.2 = fadd double %_0.i3.i1155.2, %_0.i3.i1159.2 store double %_0.i.i1162.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999.2, align 8, !noalias !5159 %557 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126, i32 1 store double %_0.i3.i1163.2, ptr %557, align 8, !noalias !5159 %_0.i.i1164.2 = fsub double %_0.i.i1156.2, %_0.i3.i1161.2 %_0.i3.i1165.2 = fadd double %_0.i3.i1157.2, %_0.i.i1160.2 store double %_0.i.i1164.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.2, align 8, !noalias !5159 %558 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254, i32 1 store double %_0.i3.i1165.2, ptr %558, align 8, !noalias !5159 %_0.i.i1166.2 = fsub double %_0.i.i1154.2, %_0.i.i1158.2 %_0.i3.i1167.2 = fsub double %_0.i3.i1155.2, %_0.i3.i1159.2 store double %_0.i.i1166.2, ptr %data.i.i.i.i.i.i.i.i.i.i1017.2, align 8, !noalias !5159 %559 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 382, i32 1 store double %_0.i3.i1167.2, ptr %559, align 8, !noalias !5159 %_0.i.i1168.2 = fadd double %_0.i.i1156.2, %_0.i3.i1161.2 %_0.i3.i1169.2 = fsub double %_0.i3.i1157.2, %_0.i.i1160.2 store double %_0.i.i1168.2, ptr %data.i.i.i.i.i.i.i.i1013.2, align 8, !noalias !5159 %560 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510, i32 1 store double %_0.i3.i1169.2, ptr %560, align 8, !noalias !5159 %data.i.i.i.i.i.i.i.i.i.i.i.i999.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i1009.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508 %data.i.i.i.i.i.i.i.i1013.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.i.i.i.i1017.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 383 %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %561 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1 %w1.0.i.i.i.3 = load double, ptr %561, align 8, !noalias !5159, !noundef !3 %562 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %562, align 8, !noalias !5159, !noundef !3 %563 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2 %w2.0.i.i.i.3 = load double, ptr %563, align 8, !noalias !5159, !noundef !3 %564 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %564, align 8, !noalias !5159, !noundef !3 %565 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3 %w3.0.i.i.i.3 = load double, ptr %565, align 8, !noalias !5159, !noundef !3 %566 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 127, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %566, align 8, !noalias !5159, !noundef !3 %567 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510 %568 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509 %569 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i1009.3, align 8, !noalias !5159, !noundef !3 %570 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 508, i32 1 %a.1.i.i.i.3 = load double, ptr %570, align 8, !noalias !5159, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %568, align 8, !noalias !5159, !noundef !3 %571 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 509, i32 1 %_84.1.i.i.i.3 = load double, ptr %571, align 8, !noalias !5159, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %572 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %573 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %567, align 8, !noalias !5159, !noundef !3 %574 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 510, i32 1 %_86.1.i.i.i.3 = load double, ptr %574, align 8, !noalias !5159, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %575 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %576 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %569, align 8, !noalias !5159, !noundef !3 %577 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 511, i32 1 %_88.1.i.i.i.3 = load double, ptr %577, align 8, !noalias !5159, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %578 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %579 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i1154.3 = fadd double %a.0.i.i.i.3, %575 %_0.i3.i1155.3 = fadd double %a.1.i.i.i.3, %576 %_0.i.i1156.3 = fsub double %a.0.i.i.i.3, %575 %_0.i3.i1157.3 = fsub double %a.1.i.i.i.3, %576 %_0.i.i1158.3 = fadd double %572, %578 %_0.i3.i1159.3 = fadd double %573, %579 %_0.i.i1160.3 = fsub double %572, %578 %_0.i3.i1161.3 = fsub double %573, %579 %_0.i.i1162.3 = fadd double %_0.i.i1154.3, %_0.i.i1158.3 %_0.i3.i1163.3 = fadd double %_0.i3.i1155.3, %_0.i3.i1159.3 store double %_0.i.i1162.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i999.3, align 8, !noalias !5159 %580 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127, i32 1 store double %_0.i3.i1163.3, ptr %580, align 8, !noalias !5159 %_0.i.i1164.3 = fsub double %_0.i.i1156.3, %_0.i3.i1161.3 %_0.i3.i1165.3 = fadd double %_0.i3.i1157.3, %_0.i.i1160.3 store double %_0.i.i1164.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1021.3, align 8, !noalias !5159 %581 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255, i32 1 store double %_0.i3.i1165.3, ptr %581, align 8, !noalias !5159 %_0.i.i1166.3 = fsub double %_0.i.i1154.3, %_0.i.i1158.3 %_0.i3.i1167.3 = fsub double %_0.i3.i1155.3, %_0.i3.i1159.3 store double %_0.i.i1166.3, ptr %data.i.i.i.i.i.i.i.i.i.i1017.3, align 8, !noalias !5159 %582 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 383, i32 1 store double %_0.i3.i1167.3, ptr %582, align 8, !noalias !5159 %_0.i.i1168.3 = fadd double %_0.i.i1156.3, %_0.i3.i1161.3 %_0.i3.i1169.3 = fsub double %_0.i3.i1157.3, %_0.i.i1160.3 store double %_0.i.i1168.3, ptr %data.i.i.i.i.i.i.i.i1013.3, align 8, !noalias !5159 %583 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511, i32 1 store double %_0.i3.i1169.3, ptr %583, align 8, !noalias !5159 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5159 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcdc9d40c4ad4dcfaE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5167 store i64 64, ptr %n.i, align 8, !noalias !5167 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5167 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5167 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5167 store ptr null, ptr %_16.i, align 8, !noalias !5167 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5167 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5167 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5167 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5167 store ptr null, ptr %_24.i, align 8, !noalias !5167 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5167 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5167 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5167 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5167 store ptr null, ptr %_32.i, align 8, !noalias !5167 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5167 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5167 store i64 %w.1, ptr %_34.i, align 8, !noalias !5167 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5167 store ptr null, ptr %_40.i, align 8, !noalias !5167 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5167 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %3, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %4, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %5, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %6, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %7, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %8, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %9 = fneg <4 x double> %wide.masked.gather1 %10 = fneg <4 x double> %wide.masked.gather3 %11 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5170 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %1, align 8, !noalias !5170 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %0, align 8, !noalias !5170 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %2, align 8, !noalias !5170 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec, %strided.vec11 %13 = fadd <4 x double> %strided.vec6, %strided.vec12 %14 = fsub <4 x double> %strided.vec, %strided.vec11 %15 = fsub <4 x double> %strided.vec6, %strided.vec12 %16 = fadd <4 x double> %strided.vec8, %strided.vec14 %17 = fadd <4 x double> %strided.vec9, %strided.vec15 %18 = fsub <4 x double> %strided.vec8, %strided.vec14 %19 = fsub <4 x double> %strided.vec9, %strided.vec15 %20 = fadd <4 x double> %12, %16 %21 = fadd <4 x double> %13, %17 %22 = fadd <4 x double> %14, %19 %23 = fsub <4 x double> %15, %18 %24 = fmul <4 x double> %23, %9 %25 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %22, <4 x double> %24) %26 = fmul <4 x double> %wide.masked.gather1, %22 %27 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %23, <4 x double> %26) %28 = fsub <4 x double> %12, %16 %29 = fsub <4 x double> %13, %17 %30 = fmul <4 x double> %29, %10 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather3, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %14, %19 %35 = fadd <4 x double> %15, %18 %36 = fmul <4 x double> %35, %11 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather5, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %35, <4 x double> %38) %40 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> %41 = shufflevector <4 x double> %25, <4 x double> %27, <8 x i32> %42 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %43 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %44 = shufflevector <8 x double> %40, <8 x double> %41, <16 x i32> %45 = shufflevector <8 x double> %42, <8 x double> %43, <16 x i32> %interleaved.vec = shufflevector <16 x double> %44, <16 x double> %45, <32 x i32> store <32 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5170 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %49 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %50 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5.1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %57 = fneg <4 x double> %wide.masked.gather1.1 %58 = fneg <4 x double> %wide.masked.gather3.1 %59 = fneg <4 x double> %wide.masked.gather5.1 %wide.vec.1 = load <8 x double>, ptr %46, align 8, !noalias !5170 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec6.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec7.1 = load <8 x double>, ptr %47, align 8, !noalias !5170 %strided.vec8.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %strided.vec9.1 = shufflevector <8 x double> %wide.vec7.1, <8 x double> poison, <4 x i32> %wide.vec10.1 = load <8 x double>, ptr %48, align 8, !noalias !5170 %strided.vec11.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %strided.vec12.1 = shufflevector <8 x double> %wide.vec10.1, <8 x double> poison, <4 x i32> %wide.vec13.1 = load <8 x double>, ptr %49, align 8, !noalias !5170 %strided.vec14.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %strided.vec15.1 = shufflevector <8 x double> %wide.vec13.1, <8 x double> poison, <4 x i32> %60 = fadd <4 x double> %strided.vec.1, %strided.vec11.1 %61 = fadd <4 x double> %strided.vec6.1, %strided.vec12.1 %62 = fsub <4 x double> %strided.vec.1, %strided.vec11.1 %63 = fsub <4 x double> %strided.vec6.1, %strided.vec12.1 %64 = fadd <4 x double> %strided.vec8.1, %strided.vec14.1 %65 = fadd <4 x double> %strided.vec9.1, %strided.vec15.1 %66 = fsub <4 x double> %strided.vec8.1, %strided.vec14.1 %67 = fsub <4 x double> %strided.vec9.1, %strided.vec15.1 %68 = fadd <4 x double> %60, %64 %69 = fadd <4 x double> %61, %65 %70 = fadd <4 x double> %62, %67 %71 = fsub <4 x double> %63, %66 %72 = fmul <4 x double> %71, %57 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %70, <4 x double> %72) %74 = fmul <4 x double> %wide.masked.gather1.1, %70 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.1, <4 x double> %71, <4 x double> %74) %76 = fsub <4 x double> %60, %64 %77 = fsub <4 x double> %61, %65 %78 = fmul <4 x double> %77, %58 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %76, <4 x double> %78) %80 = fmul <4 x double> %wide.masked.gather3.1, %76 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.1, <4 x double> %77, <4 x double> %80) %82 = fsub <4 x double> %62, %67 %83 = fadd <4 x double> %63, %66 %84 = fmul <4 x double> %83, %59 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %82, <4 x double> %84) %86 = fmul <4 x double> %wide.masked.gather5.1, %82 %87 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.1, <4 x double> %83, <4 x double> %86) %88 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> %89 = shufflevector <4 x double> %73, <4 x double> %75, <8 x i32> %90 = shufflevector <4 x double> %79, <4 x double> %81, <8 x i32> %91 = shufflevector <4 x double> %85, <4 x double> %87, <8 x i32> %92 = shufflevector <8 x double> %88, <8 x double> %89, <16 x i32> %93 = shufflevector <8 x double> %90, <8 x double> %91, <16 x i32> %interleaved.vec.1 = shufflevector <16 x double> %92, <16 x double> %93, <32 x i32> store <32 x double> %interleaved.vec.1, ptr %50, align 8, !noalias !5170 %94 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %95 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %96 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %97 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %98 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather1.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather2.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather3.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather4.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather5.2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %104, i32 8, <4 x i1> , <4 x double> poison), !noalias !5170 %105 = fneg <4 x double> %wide.masked.gather1.2 %106 = fneg <4 x double> %wide.masked.gather3.2 %107 = fneg <4 x double> %wide.masked.gather5.2 %wide.vec.2 = load <8 x double>, ptr %94, align 8, !noalias !5170 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec6.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec7.2 = load <8 x double>, ptr %95, align 8, !noalias !5170 %strided.vec8.2 = shufflevector <8 x double> %wide.vec7.2, <8 x double> poison, <4 x i32> %strided.vec9.2 = shufflevector <8 x double> %wide.vec7.2, <8 x double> poison, <4 x i32> %wide.vec10.2 = load <8 x double>, ptr %96, align 8, !noalias !5170 %strided.vec11.2 = shufflevector <8 x double> %wide.vec10.2, <8 x double> poison, <4 x i32> %strided.vec12.2 = shufflevector <8 x double> %wide.vec10.2, <8 x double> poison, <4 x i32> %wide.vec13.2 = load <8 x double>, ptr %97, align 8, !noalias !5170 %strided.vec14.2 = shufflevector <8 x double> %wide.vec13.2, <8 x double> poison, <4 x i32> %strided.vec15.2 = shufflevector <8 x double> %wide.vec13.2, <8 x double> poison, <4 x i32> %108 = fadd <4 x double> %strided.vec.2, %strided.vec11.2 %109 = fadd <4 x double> %strided.vec6.2, %strided.vec12.2 %110 = fsub <4 x double> %strided.vec.2, %strided.vec11.2 %111 = fsub <4 x double> %strided.vec6.2, %strided.vec12.2 %112 = fadd <4 x double> %strided.vec8.2, %strided.vec14.2 %113 = fadd <4 x double> %strided.vec9.2, %strided.vec15.2 %114 = fsub <4 x double> %strided.vec8.2, %strided.vec14.2 %115 = fsub <4 x double> %strided.vec9.2, %strided.vec15.2 %116 = fadd <4 x double> %108, %112 %117 = fadd <4 x double> %109, %113 %118 = fadd <4 x double> %110, %115 %119 = fsub <4 x double> %111, %114 %120 = fmul <4 x double> %119, %105 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %118, <4 x double> %120) %122 = fmul <4 x double> %wide.masked.gather1.2, %118 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather.2, <4 x double> %119, <4 x double> %122) %124 = fsub <4 x double> %108, %112 %125 = fsub <4 x double> %109, %113 %126 = fmul <4 x double> %125, %106 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.2, <4 x double> %124, <4 x double> %126) %128 = fmul <4 x double> %wide.masked.gather3.2, %124 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2.2, <4 x double> %125, <4 x double> %128) %130 = fsub <4 x double> %110, %115 %131 = fadd <4 x double> %111, %114 %132 = fmul <4 x double> %131, %107 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.2, <4 x double> %130, <4 x double> %132) %134 = fmul <4 x double> %wide.masked.gather5.2, %130 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4.2, <4 x double> %131, <4 x double> %134) %136 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> %137 = shufflevector <4 x double> %121, <4 x double> %123, <8 x i32> %138 = shufflevector <4 x double> %127, <4 x double> %129, <8 x i32> %139 = shufflevector <4 x double> %133, <4 x double> %135, <8 x i32> %140 = shufflevector <8 x double> %136, <8 x double> %137, <16 x i32> %141 = shufflevector <8 x double> %138, <8 x double> %139, <16 x i32> %interleaved.vec.2 = shufflevector <16 x double> %140, <16 x double> %141, <32 x i32> store <32 x double> %interleaved.vec.2, ptr %98, align 8, !noalias !5170 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1 %w1.0.i.i.i = load double, ptr %142, align 8, !noalias !5170, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %143, align 8, !noalias !5170, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2 %w2.0.i.i.i = load double, ptr %144, align 8, !noalias !5170, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %145, align 8, !noalias !5170, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3 %w3.0.i.i.i = load double, ptr %146, align 8, !noalias !5170, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 12, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %147, align 8, !noalias !5170, !noundef !3 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 50 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 49 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 51 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %151 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5170 %152 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5170 %153 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5170 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !5170 %155 = fadd <2 x double> %151, %153 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %155, %156 store <2 x double> %157, ptr %data.i.i.i.i.i.i, align 8, !noalias !5170 %158 = fsub <2 x double> %151, %153 %159 = fsub <2 x double> %152, %154 %160 = shufflevector <2 x double> %159, <2 x double> poison, <2 x i32> %161 = fadd <2 x double> %158, %160 %162 = fsub <2 x double> %158, %160 %163 = shufflevector <2 x double> %161, <2 x double> %162, <2 x i32> %164 = shufflevector <2 x double> %163, <2 x double> poison, <2 x i32> %165 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %166 = insertelement <2 x double> %165, double %w1.1.i.i.i, i64 1 %167 = fmul <2 x double> %164, %166 %168 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %169 = shufflevector <2 x double> %168, <2 x double> poison, <2 x i32> zeroinitializer %170 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %169, <2 x double> %163, <2 x double> %167) store <2 x double> %170, ptr %149, align 8, !noalias !5170 %171 = fsub <2 x double> %155, %156 %172 = shufflevector <2 x double> %171, <2 x double> poison, <2 x i32> %173 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %174 = insertelement <2 x double> %173, double %w2.1.i.i.i, i64 1 %175 = fmul <2 x double> %172, %174 %176 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %177 = shufflevector <2 x double> %176, <2 x double> poison, <2 x i32> zeroinitializer %178 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %177, <2 x double> %171, <2 x double> %175) store <2 x double> %178, ptr %148, align 8, !noalias !5170 %179 = shufflevector <2 x double> %162, <2 x double> %161, <2 x i32> %180 = shufflevector <2 x double> %179, <2 x double> poison, <2 x i32> %181 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %182 = insertelement <2 x double> %181, double %w3.1.i.i.i, i64 1 %183 = fmul <2 x double> %180, %182 %184 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %185 = shufflevector <2 x double> %184, <2 x double> poison, <2 x i32> zeroinitializer %186 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %185, <2 x double> %179, <2 x double> %183) store <2 x double> %186, ptr %150, align 8, !noalias !5170 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %187 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1 %w1.0.i.i.i.1 = load double, ptr %187, align 8, !noalias !5170, !noundef !3 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %188, align 8, !noalias !5170, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2 %w2.0.i.i.i.1 = load double, ptr %189, align 8, !noalias !5170, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %190, align 8, !noalias !5170, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3 %w3.0.i.i.i.1 = load double, ptr %191, align 8, !noalias !5170, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 13, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %192, align 8, !noalias !5170, !noundef !3 %193 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 54 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 53 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 55 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %196 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5170 %197 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5170 %198 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5170 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5170 %200 = fadd <2 x double> %196, %198 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %200, %201 store <2 x double> %202, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5170 %203 = fsub <2 x double> %196, %198 %204 = fsub <2 x double> %197, %199 %205 = shufflevector <2 x double> %204, <2 x double> poison, <2 x i32> %206 = fadd <2 x double> %203, %205 %207 = fsub <2 x double> %203, %205 %208 = shufflevector <2 x double> %206, <2 x double> %207, <2 x i32> %209 = shufflevector <2 x double> %208, <2 x double> poison, <2 x i32> %210 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %211 = insertelement <2 x double> %210, double %w1.1.i.i.i.1, i64 1 %212 = fmul <2 x double> %209, %211 %213 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %214 = shufflevector <2 x double> %213, <2 x double> poison, <2 x i32> zeroinitializer %215 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %214, <2 x double> %208, <2 x double> %212) store <2 x double> %215, ptr %194, align 8, !noalias !5170 %216 = fsub <2 x double> %200, %201 %217 = shufflevector <2 x double> %216, <2 x double> poison, <2 x i32> %218 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %219 = insertelement <2 x double> %218, double %w2.1.i.i.i.1, i64 1 %220 = fmul <2 x double> %217, %219 %221 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %222 = shufflevector <2 x double> %221, <2 x double> poison, <2 x i32> zeroinitializer %223 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %222, <2 x double> %216, <2 x double> %220) store <2 x double> %223, ptr %193, align 8, !noalias !5170 %224 = shufflevector <2 x double> %207, <2 x double> %206, <2 x i32> %225 = shufflevector <2 x double> %224, <2 x double> poison, <2 x i32> %226 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %227 = insertelement <2 x double> %226, double %w3.1.i.i.i.1, i64 1 %228 = fmul <2 x double> %225, %227 %229 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> zeroinitializer %231 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %230, <2 x double> %224, <2 x double> %228) store <2 x double> %231, ptr %195, align 8, !noalias !5170 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %232 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1 %w1.0.i.i.i.2 = load double, ptr %232, align 8, !noalias !5170, !noundef !3 %233 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %233, align 8, !noalias !5170, !noundef !3 %234 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2 %w2.0.i.i.i.2 = load double, ptr %234, align 8, !noalias !5170, !noundef !3 %235 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %235, align 8, !noalias !5170, !noundef !3 %236 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3 %w3.0.i.i.i.2 = load double, ptr %236, align 8, !noalias !5170, !noundef !3 %237 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 14, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %237, align 8, !noalias !5170, !noundef !3 %238 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 57 %240 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 59 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %241 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5170 %242 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5170 %243 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5170 %244 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5170 %245 = fadd <2 x double> %241, %243 %246 = fadd <2 x double> %242, %244 %247 = fadd <2 x double> %245, %246 store <2 x double> %247, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5170 %248 = fsub <2 x double> %241, %243 %249 = fsub <2 x double> %242, %244 %250 = shufflevector <2 x double> %249, <2 x double> poison, <2 x i32> %251 = fadd <2 x double> %248, %250 %252 = fsub <2 x double> %248, %250 %253 = shufflevector <2 x double> %251, <2 x double> %252, <2 x i32> %254 = shufflevector <2 x double> %253, <2 x double> poison, <2 x i32> %255 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %256 = insertelement <2 x double> %255, double %w1.1.i.i.i.2, i64 1 %257 = fmul <2 x double> %254, %256 %258 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %259 = shufflevector <2 x double> %258, <2 x double> poison, <2 x i32> zeroinitializer %260 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %259, <2 x double> %253, <2 x double> %257) store <2 x double> %260, ptr %239, align 8, !noalias !5170 %261 = fsub <2 x double> %245, %246 %262 = shufflevector <2 x double> %261, <2 x double> poison, <2 x i32> %263 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %264 = insertelement <2 x double> %263, double %w2.1.i.i.i.2, i64 1 %265 = fmul <2 x double> %262, %264 %266 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %267 = shufflevector <2 x double> %266, <2 x double> poison, <2 x i32> zeroinitializer %268 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %267, <2 x double> %261, <2 x double> %265) store <2 x double> %268, ptr %238, align 8, !noalias !5170 %269 = shufflevector <2 x double> %252, <2 x double> %251, <2 x i32> %270 = shufflevector <2 x double> %269, <2 x double> poison, <2 x i32> %271 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %272 = insertelement <2 x double> %271, double %w3.1.i.i.i.2, i64 1 %273 = fmul <2 x double> %270, %272 %274 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %275 = shufflevector <2 x double> %274, <2 x double> poison, <2 x i32> zeroinitializer %276 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %275, <2 x double> %269, <2 x double> %273) store <2 x double> %276, ptr %240, align 8, !noalias !5170 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %277 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1 %w1.0.i.i.i.3 = load double, ptr %277, align 8, !noalias !5170, !noundef !3 %278 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %278, align 8, !noalias !5170, !noundef !3 %279 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2 %w2.0.i.i.i.3 = load double, ptr %279, align 8, !noalias !5170, !noundef !3 %280 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %280, align 8, !noalias !5170, !noundef !3 %281 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3 %w3.0.i.i.i.3 = load double, ptr %281, align 8, !noalias !5170, !noundef !3 %282 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 15, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %282, align 8, !noalias !5170, !noundef !3 %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %284 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 61 %285 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 63 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %286 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5170 %287 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5170 %288 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5170 %289 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5170 %290 = fadd <2 x double> %286, %288 %291 = fadd <2 x double> %287, %289 %292 = fadd <2 x double> %290, %291 store <2 x double> %292, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5170 %293 = fsub <2 x double> %286, %288 %294 = fsub <2 x double> %287, %289 %295 = shufflevector <2 x double> %294, <2 x double> poison, <2 x i32> %296 = fadd <2 x double> %293, %295 %297 = fsub <2 x double> %293, %295 %298 = shufflevector <2 x double> %296, <2 x double> %297, <2 x i32> %299 = shufflevector <2 x double> %298, <2 x double> poison, <2 x i32> %300 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %301 = insertelement <2 x double> %300, double %w1.1.i.i.i.3, i64 1 %302 = fmul <2 x double> %299, %301 %303 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %304 = shufflevector <2 x double> %303, <2 x double> poison, <2 x i32> zeroinitializer %305 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %304, <2 x double> %298, <2 x double> %302) store <2 x double> %305, ptr %284, align 8, !noalias !5170 %306 = fsub <2 x double> %290, %291 %307 = shufflevector <2 x double> %306, <2 x double> poison, <2 x i32> %308 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %309 = insertelement <2 x double> %308, double %w2.1.i.i.i.3, i64 1 %310 = fmul <2 x double> %307, %309 %311 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %312 = shufflevector <2 x double> %311, <2 x double> poison, <2 x i32> zeroinitializer %313 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %312, <2 x double> %306, <2 x double> %310) store <2 x double> %313, ptr %283, align 8, !noalias !5170 %314 = shufflevector <2 x double> %297, <2 x double> %296, <2 x i32> %315 = shufflevector <2 x double> %314, <2 x double> poison, <2 x i32> %316 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %317 = insertelement <2 x double> %316, double %w3.1.i.i.i.3, i64 1 %318 = fmul <2 x double> %315, %317 %319 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %320 = shufflevector <2 x double> %319, <2 x double> poison, <2 x i32> zeroinitializer %321 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %320, <2 x double> %314, <2 x double> %318) store <2 x double> %321, ptr %285, align 8, !noalias !5170 %322 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %323 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %324 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %325 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %326 = getelementptr inbounds %"num_complex::Complex", ptr %323, <4 x i64> %327 = getelementptr inbounds %"num_complex::Complex", ptr %322, <4 x i64> %328 = getelementptr inbounds %"num_complex::Complex", ptr %324, <4 x i64> %329 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %330 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %331 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %332 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %332, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %333 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %333, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %334 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %334, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %335 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %335, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %336 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %336, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %337 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %337, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %338 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %339 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %340 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %341 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %342 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %344 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %345 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %348 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %350 = fneg <4 x double> %wide.masked.gather25 %351 = fneg <4 x double> %wide.masked.gather27 %352 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %325, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %353 = getelementptr inbounds i8, <4 x ptr> %325, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %353, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %326, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %354 = getelementptr inbounds i8, <4 x ptr> %326, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %354, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %327, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %355 = getelementptr inbounds i8, <4 x ptr> %327, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %355, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %328, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %356 = getelementptr inbounds i8, <4 x ptr> %328, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %356, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %357 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %358 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %359 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %360 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %361 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %362 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %363 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %364 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %365 = fadd <4 x double> %357, %361 %366 = fadd <4 x double> %358, %362 %367 = extractelement <4 x double> %365, i64 0 store double %367, ptr %buf.0, align 8, !noalias !5167 %368 = extractelement <4 x double> %365, i64 1 store double %368, ptr %329, align 8, !noalias !5167 %369 = extractelement <4 x double> %365, i64 2 store double %369, ptr %330, align 8, !noalias !5167 %370 = getelementptr inbounds i8, ptr %buf.0, i64 8 %371 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16, i32 1 %372 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32, i32 1 %373 = extractelement <4 x double> %366, i64 0 store double %373, ptr %370, align 8, !noalias !5167 %374 = extractelement <4 x double> %366, i64 1 store double %374, ptr %371, align 8, !noalias !5167 %375 = extractelement <4 x double> %366, i64 2 store double %375, ptr %372, align 8, !noalias !5167 %376 = shufflevector <4 x double> %365, <4 x double> %366, <2 x i32> store <2 x double> %376, ptr %331, align 8, !noalias !5167 %377 = fadd <4 x double> %359, %364 %378 = fsub <4 x double> %360, %363 %379 = fmul <4 x double> %378, %350 %380 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %377, <4 x double> %379) %381 = fmul <4 x double> %wide.masked.gather25, %377 %382 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %378, <4 x double> %381) %383 = extractelement <4 x double> %380, i64 0 store double %383, ptr %342, align 8, !noalias !5167 %384 = extractelement <4 x double> %380, i64 1 store double %384, ptr %343, align 8, !noalias !5167 %385 = extractelement <4 x double> %380, i64 2 store double %385, ptr %344, align 8, !noalias !5167 %386 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4, i32 1 %387 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20, i32 1 %388 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36, i32 1 %389 = extractelement <4 x double> %382, i64 0 store double %389, ptr %386, align 8, !noalias !5167 %390 = extractelement <4 x double> %382, i64 1 store double %390, ptr %387, align 8, !noalias !5167 %391 = extractelement <4 x double> %382, i64 2 store double %391, ptr %388, align 8, !noalias !5167 %392 = shufflevector <4 x double> %380, <4 x double> %382, <2 x i32> store <2 x double> %392, ptr %345, align 8, !noalias !5167 %393 = fsub <4 x double> %357, %361 %394 = fsub <4 x double> %358, %362 %395 = fmul <4 x double> %394, %351 %396 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %393, <4 x double> %395) %397 = fmul <4 x double> %wide.masked.gather27, %393 %398 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %394, <4 x double> %397) %399 = extractelement <4 x double> %396, i64 0 store double %399, ptr %338, align 8, !noalias !5167 %400 = extractelement <4 x double> %396, i64 1 store double %400, ptr %339, align 8, !noalias !5167 %401 = extractelement <4 x double> %396, i64 2 store double %401, ptr %340, align 8, !noalias !5167 %402 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8, i32 1 %403 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24, i32 1 %404 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40, i32 1 %405 = extractelement <4 x double> %398, i64 0 store double %405, ptr %402, align 8, !noalias !5167 %406 = extractelement <4 x double> %398, i64 1 store double %406, ptr %403, align 8, !noalias !5167 %407 = extractelement <4 x double> %398, i64 2 store double %407, ptr %404, align 8, !noalias !5167 %408 = shufflevector <4 x double> %396, <4 x double> %398, <2 x i32> store <2 x double> %408, ptr %341, align 8, !noalias !5167 %409 = fsub <4 x double> %359, %364 %410 = fadd <4 x double> %360, %363 %411 = fmul <4 x double> %410, %352 %412 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %409, <4 x double> %411) %413 = fmul <4 x double> %wide.masked.gather29, %409 %414 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %410, <4 x double> %413) %415 = extractelement <4 x double> %412, i64 0 store double %415, ptr %346, align 8, !noalias !5167 %416 = extractelement <4 x double> %412, i64 1 store double %416, ptr %347, align 8, !noalias !5167 %417 = extractelement <4 x double> %412, i64 2 store double %417, ptr %348, align 8, !noalias !5167 %418 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12, i32 1 %419 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28, i32 1 %420 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44, i32 1 %421 = extractelement <4 x double> %414, i64 0 store double %421, ptr %418, align 8, !noalias !5167 %422 = extractelement <4 x double> %414, i64 1 store double %422, ptr %419, align 8, !noalias !5167 %423 = extractelement <4 x double> %414, i64 2 store double %423, ptr %420, align 8, !noalias !5167 %424 = shufflevector <4 x double> %412, <4 x double> %414, <2 x i32> store <2 x double> %424, ptr %349, align 8, !noalias !5167 %425 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 1 %426 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 1 %427 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 1 %428 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 17 %431 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 33 %432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 49 %433 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %434 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 21 %435 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 37 %436 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 53 %437 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %438 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 25 %439 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 41 %440 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 57 %441 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %442 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29 %443 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45 %444 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %425, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %445 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %445, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %426, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %427, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %447 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %447, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %428, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %448 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %448, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %449 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %450 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %451 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %452 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %453 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %454 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %455 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %456 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %457 = fadd <4 x double> %449, %453 %458 = fadd <4 x double> %450, %454 %459 = extractelement <4 x double> %457, i64 0 store double %459, ptr %429, align 8, !noalias !5167 %460 = extractelement <4 x double> %457, i64 1 store double %460, ptr %430, align 8, !noalias !5167 %461 = extractelement <4 x double> %457, i64 2 store double %461, ptr %431, align 8, !noalias !5167 %462 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1, i32 1 %463 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 17, i32 1 %464 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 33, i32 1 %465 = extractelement <4 x double> %458, i64 0 store double %465, ptr %462, align 8, !noalias !5167 %466 = extractelement <4 x double> %458, i64 1 store double %466, ptr %463, align 8, !noalias !5167 %467 = extractelement <4 x double> %458, i64 2 store double %467, ptr %464, align 8, !noalias !5167 %468 = shufflevector <4 x double> %457, <4 x double> %458, <2 x i32> store <2 x double> %468, ptr %432, align 8, !noalias !5167 %469 = fadd <4 x double> %451, %456 %470 = fsub <4 x double> %452, %455 %471 = fmul <4 x double> %470, %350 %472 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %469, <4 x double> %471) %473 = fmul <4 x double> %wide.masked.gather25, %469 %474 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %470, <4 x double> %473) %475 = extractelement <4 x double> %472, i64 0 store double %475, ptr %433, align 8, !noalias !5167 %476 = extractelement <4 x double> %472, i64 1 store double %476, ptr %434, align 8, !noalias !5167 %477 = extractelement <4 x double> %472, i64 2 store double %477, ptr %435, align 8, !noalias !5167 %478 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5, i32 1 %479 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 21, i32 1 %480 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 37, i32 1 %481 = extractelement <4 x double> %474, i64 0 store double %481, ptr %478, align 8, !noalias !5167 %482 = extractelement <4 x double> %474, i64 1 store double %482, ptr %479, align 8, !noalias !5167 %483 = extractelement <4 x double> %474, i64 2 store double %483, ptr %480, align 8, !noalias !5167 %484 = shufflevector <4 x double> %472, <4 x double> %474, <2 x i32> store <2 x double> %484, ptr %436, align 8, !noalias !5167 %485 = fsub <4 x double> %449, %453 %486 = fsub <4 x double> %450, %454 %487 = fmul <4 x double> %486, %351 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %485, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather27, %485 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %486, <4 x double> %489) %491 = extractelement <4 x double> %488, i64 0 store double %491, ptr %437, align 8, !noalias !5167 %492 = extractelement <4 x double> %488, i64 1 store double %492, ptr %438, align 8, !noalias !5167 %493 = extractelement <4 x double> %488, i64 2 store double %493, ptr %439, align 8, !noalias !5167 %494 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9, i32 1 %495 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 25, i32 1 %496 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 41, i32 1 %497 = extractelement <4 x double> %490, i64 0 store double %497, ptr %494, align 8, !noalias !5167 %498 = extractelement <4 x double> %490, i64 1 store double %498, ptr %495, align 8, !noalias !5167 %499 = extractelement <4 x double> %490, i64 2 store double %499, ptr %496, align 8, !noalias !5167 %500 = shufflevector <4 x double> %488, <4 x double> %490, <2 x i32> store <2 x double> %500, ptr %440, align 8, !noalias !5167 %501 = fsub <4 x double> %451, %456 %502 = fadd <4 x double> %452, %455 %503 = fmul <4 x double> %502, %352 %504 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %501, <4 x double> %503) %505 = fmul <4 x double> %wide.masked.gather29, %501 %506 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %502, <4 x double> %505) %507 = extractelement <4 x double> %504, i64 0 store double %507, ptr %441, align 8, !noalias !5167 %508 = extractelement <4 x double> %504, i64 1 store double %508, ptr %442, align 8, !noalias !5167 %509 = extractelement <4 x double> %504, i64 2 store double %509, ptr %443, align 8, !noalias !5167 %510 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13, i32 1 %511 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 29, i32 1 %512 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 45, i32 1 %513 = extractelement <4 x double> %506, i64 0 store double %513, ptr %510, align 8, !noalias !5167 %514 = extractelement <4 x double> %506, i64 1 store double %514, ptr %511, align 8, !noalias !5167 %515 = extractelement <4 x double> %506, i64 2 store double %515, ptr %512, align 8, !noalias !5167 %516 = shufflevector <4 x double> %504, <4 x double> %506, <2 x i32> store <2 x double> %516, ptr %444, align 8, !noalias !5167 %517 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 2 %518 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 2 %519 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 2 %520 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 2 %521 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %522 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %523 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34 %524 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 50 %525 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %526 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %527 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38 %528 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 54 %529 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %530 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %531 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42 %532 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 58 %533 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %534 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 %535 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46 %536 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %517, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %537 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %537, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %518, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %538 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %538, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %519, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %539 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %539, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %520, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %540 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %540, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %541 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %542 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %543 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %544 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %545 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %546 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %547 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %548 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %549 = fadd <4 x double> %541, %545 %550 = fadd <4 x double> %542, %546 %551 = extractelement <4 x double> %549, i64 0 store double %551, ptr %521, align 8, !noalias !5167 %552 = extractelement <4 x double> %549, i64 1 store double %552, ptr %522, align 8, !noalias !5167 %553 = extractelement <4 x double> %549, i64 2 store double %553, ptr %523, align 8, !noalias !5167 %554 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2, i32 1 %555 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18, i32 1 %556 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 34, i32 1 %557 = extractelement <4 x double> %550, i64 0 store double %557, ptr %554, align 8, !noalias !5167 %558 = extractelement <4 x double> %550, i64 1 store double %558, ptr %555, align 8, !noalias !5167 %559 = extractelement <4 x double> %550, i64 2 store double %559, ptr %556, align 8, !noalias !5167 %560 = shufflevector <4 x double> %549, <4 x double> %550, <2 x i32> store <2 x double> %560, ptr %524, align 8, !noalias !5167 %561 = fadd <4 x double> %543, %548 %562 = fsub <4 x double> %544, %547 %563 = fmul <4 x double> %562, %350 %564 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %561, <4 x double> %563) %565 = fmul <4 x double> %wide.masked.gather25, %561 %566 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %562, <4 x double> %565) %567 = extractelement <4 x double> %564, i64 0 store double %567, ptr %525, align 8, !noalias !5167 %568 = extractelement <4 x double> %564, i64 1 store double %568, ptr %526, align 8, !noalias !5167 %569 = extractelement <4 x double> %564, i64 2 store double %569, ptr %527, align 8, !noalias !5167 %570 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6, i32 1 %571 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22, i32 1 %572 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 38, i32 1 %573 = extractelement <4 x double> %566, i64 0 store double %573, ptr %570, align 8, !noalias !5167 %574 = extractelement <4 x double> %566, i64 1 store double %574, ptr %571, align 8, !noalias !5167 %575 = extractelement <4 x double> %566, i64 2 store double %575, ptr %572, align 8, !noalias !5167 %576 = shufflevector <4 x double> %564, <4 x double> %566, <2 x i32> store <2 x double> %576, ptr %528, align 8, !noalias !5167 %577 = fsub <4 x double> %541, %545 %578 = fsub <4 x double> %542, %546 %579 = fmul <4 x double> %578, %351 %580 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %577, <4 x double> %579) %581 = fmul <4 x double> %wide.masked.gather27, %577 %582 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %578, <4 x double> %581) %583 = extractelement <4 x double> %580, i64 0 store double %583, ptr %529, align 8, !noalias !5167 %584 = extractelement <4 x double> %580, i64 1 store double %584, ptr %530, align 8, !noalias !5167 %585 = extractelement <4 x double> %580, i64 2 store double %585, ptr %531, align 8, !noalias !5167 %586 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10, i32 1 %587 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26, i32 1 %588 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 42, i32 1 %589 = extractelement <4 x double> %582, i64 0 store double %589, ptr %586, align 8, !noalias !5167 %590 = extractelement <4 x double> %582, i64 1 store double %590, ptr %587, align 8, !noalias !5167 %591 = extractelement <4 x double> %582, i64 2 store double %591, ptr %588, align 8, !noalias !5167 %592 = shufflevector <4 x double> %580, <4 x double> %582, <2 x i32> store <2 x double> %592, ptr %532, align 8, !noalias !5167 %593 = fsub <4 x double> %543, %548 %594 = fadd <4 x double> %544, %547 %595 = fmul <4 x double> %594, %352 %596 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %593, <4 x double> %595) %597 = fmul <4 x double> %wide.masked.gather29, %593 %598 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %594, <4 x double> %597) %599 = extractelement <4 x double> %596, i64 0 store double %599, ptr %533, align 8, !noalias !5167 %600 = extractelement <4 x double> %596, i64 1 store double %600, ptr %534, align 8, !noalias !5167 %601 = extractelement <4 x double> %596, i64 2 store double %601, ptr %535, align 8, !noalias !5167 %602 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14, i32 1 %603 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30, i32 1 %604 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 46, i32 1 %605 = extractelement <4 x double> %598, i64 0 store double %605, ptr %602, align 8, !noalias !5167 %606 = extractelement <4 x double> %598, i64 1 store double %606, ptr %603, align 8, !noalias !5167 %607 = extractelement <4 x double> %598, i64 2 store double %607, ptr %604, align 8, !noalias !5167 %608 = shufflevector <4 x double> %596, <4 x double> %598, <2 x i32> store <2 x double> %608, ptr %536, align 8, !noalias !5167 %609 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 3 %610 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 3 %611 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 3 %612 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 3 %613 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %614 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 19 %615 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 35 %616 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 51 %617 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %618 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 23 %619 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 39 %620 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 55 %621 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %622 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 27 %623 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 43 %624 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 59 %625 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %626 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31 %627 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47 %628 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %609, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %629 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %325, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %629, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %610, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %630 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %326, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %630, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %611, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %631 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %327, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %631, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %612, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %632 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %328, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %632, i32 8, <4 x i1> , <4 x double> poison), !noalias !5167 %633 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %634 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %635 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %636 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %637 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %638 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %639 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %640 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %641 = fadd <4 x double> %633, %637 %642 = fadd <4 x double> %634, %638 %643 = extractelement <4 x double> %641, i64 0 store double %643, ptr %613, align 8, !noalias !5167 %644 = extractelement <4 x double> %641, i64 1 store double %644, ptr %614, align 8, !noalias !5167 %645 = extractelement <4 x double> %641, i64 2 store double %645, ptr %615, align 8, !noalias !5167 %646 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3, i32 1 %647 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 19, i32 1 %648 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 35, i32 1 %649 = extractelement <4 x double> %642, i64 0 store double %649, ptr %646, align 8, !noalias !5167 %650 = extractelement <4 x double> %642, i64 1 store double %650, ptr %647, align 8, !noalias !5167 %651 = extractelement <4 x double> %642, i64 2 store double %651, ptr %648, align 8, !noalias !5167 %652 = shufflevector <4 x double> %641, <4 x double> %642, <2 x i32> store <2 x double> %652, ptr %616, align 8, !noalias !5167 %653 = fadd <4 x double> %635, %640 %654 = fsub <4 x double> %636, %639 %655 = fmul <4 x double> %654, %350 %656 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %653, <4 x double> %655) %657 = fmul <4 x double> %wide.masked.gather25, %653 %658 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %654, <4 x double> %657) %659 = extractelement <4 x double> %656, i64 0 store double %659, ptr %617, align 8, !noalias !5167 %660 = extractelement <4 x double> %656, i64 1 store double %660, ptr %618, align 8, !noalias !5167 %661 = extractelement <4 x double> %656, i64 2 store double %661, ptr %619, align 8, !noalias !5167 %662 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7, i32 1 %663 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 23, i32 1 %664 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 39, i32 1 %665 = extractelement <4 x double> %658, i64 0 store double %665, ptr %662, align 8, !noalias !5167 %666 = extractelement <4 x double> %658, i64 1 store double %666, ptr %663, align 8, !noalias !5167 %667 = extractelement <4 x double> %658, i64 2 store double %667, ptr %664, align 8, !noalias !5167 %668 = shufflevector <4 x double> %656, <4 x double> %658, <2 x i32> store <2 x double> %668, ptr %620, align 8, !noalias !5167 %669 = fsub <4 x double> %633, %637 %670 = fsub <4 x double> %634, %638 %671 = fmul <4 x double> %670, %351 %672 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %669, <4 x double> %671) %673 = fmul <4 x double> %wide.masked.gather27, %669 %674 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %670, <4 x double> %673) %675 = extractelement <4 x double> %672, i64 0 store double %675, ptr %621, align 8, !noalias !5167 %676 = extractelement <4 x double> %672, i64 1 store double %676, ptr %622, align 8, !noalias !5167 %677 = extractelement <4 x double> %672, i64 2 store double %677, ptr %623, align 8, !noalias !5167 %678 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11, i32 1 %679 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 27, i32 1 %680 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 43, i32 1 %681 = extractelement <4 x double> %674, i64 0 store double %681, ptr %678, align 8, !noalias !5167 %682 = extractelement <4 x double> %674, i64 1 store double %682, ptr %679, align 8, !noalias !5167 %683 = extractelement <4 x double> %674, i64 2 store double %683, ptr %680, align 8, !noalias !5167 %684 = shufflevector <4 x double> %672, <4 x double> %674, <2 x i32> store <2 x double> %684, ptr %624, align 8, !noalias !5167 %685 = fsub <4 x double> %635, %640 %686 = fadd <4 x double> %636, %639 %687 = fmul <4 x double> %686, %352 %688 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %685, <4 x double> %687) %689 = fmul <4 x double> %wide.masked.gather29, %685 %690 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %686, <4 x double> %689) %691 = extractelement <4 x double> %688, i64 0 store double %691, ptr %625, align 8, !noalias !5167 %692 = extractelement <4 x double> %688, i64 1 store double %692, ptr %626, align 8, !noalias !5167 %693 = extractelement <4 x double> %688, i64 2 store double %693, ptr %627, align 8, !noalias !5167 %694 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15, i32 1 %695 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 31, i32 1 %696 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 47, i32 1 %697 = extractelement <4 x double> %690, i64 0 store double %697, ptr %694, align 8, !noalias !5167 %698 = extractelement <4 x double> %690, i64 1 store double %698, ptr %695, align 8, !noalias !5167 %699 = extractelement <4 x double> %690, i64 2 store double %699, ptr %696, align 8, !noalias !5167 %700 = shufflevector <4 x double> %688, <4 x double> %690, <2 x i32> store <2 x double> %700, ptr %628, align 8, !noalias !5167 %wide.vec69 = load <8 x double>, ptr %buf.0, align 8, !noalias !5167 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %1, align 8, !noalias !5167 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %0, align 8, !noalias !5167 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %2, align 8, !noalias !5167 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %701 = fadd <4 x double> %strided.vec70, %strided.vec76 %702 = fadd <4 x double> %strided.vec71, %strided.vec77 %703 = fsub <4 x double> %strided.vec70, %strided.vec76 %704 = fsub <4 x double> %strided.vec71, %strided.vec77 %705 = fadd <4 x double> %strided.vec73, %strided.vec79 %706 = fadd <4 x double> %strided.vec74, %strided.vec80 %707 = fsub <4 x double> %strided.vec73, %strided.vec79 %708 = fsub <4 x double> %strided.vec74, %strided.vec80 %709 = fadd <4 x double> %701, %705 %710 = fadd <4 x double> %702, %706 %711 = fadd <4 x double> %703, %708 %712 = fsub <4 x double> %704, %707 %713 = fsub <4 x double> %701, %705 %714 = fsub <4 x double> %702, %706 %715 = fsub <4 x double> %703, %708 %716 = fadd <4 x double> %704, %707 %interleaved.vec81 = shufflevector <4 x double> %709, <4 x double> %710, <8 x i32> store <8 x double> %interleaved.vec81, ptr %buf.0, align 8, !noalias !5167 %interleaved.vec82 = shufflevector <4 x double> %711, <4 x double> %712, <8 x i32> store <8 x double> %interleaved.vec82, ptr %1, align 8, !noalias !5167 %interleaved.vec83 = shufflevector <4 x double> %713, <4 x double> %714, <8 x i32> store <8 x double> %interleaved.vec83, ptr %0, align 8, !noalias !5167 %interleaved.vec84 = shufflevector <4 x double> %715, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec84, ptr %2, align 8, !noalias !5167 %717 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %718 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %719 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %720 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec69.1 = load <8 x double>, ptr %717, align 8, !noalias !5167 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %718, align 8, !noalias !5167 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %719, align 8, !noalias !5167 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %720, align 8, !noalias !5167 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %721 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %722 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %723 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %724 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %725 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %726 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %727 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %728 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %729 = fadd <4 x double> %721, %725 %730 = fadd <4 x double> %722, %726 %731 = fadd <4 x double> %723, %728 %732 = fsub <4 x double> %724, %727 %733 = fsub <4 x double> %721, %725 %734 = fsub <4 x double> %722, %726 %735 = fsub <4 x double> %723, %728 %736 = fadd <4 x double> %724, %727 %interleaved.vec81.1 = shufflevector <4 x double> %729, <4 x double> %730, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %717, align 8, !noalias !5167 %interleaved.vec82.1 = shufflevector <4 x double> %731, <4 x double> %732, <8 x i32> store <8 x double> %interleaved.vec82.1, ptr %718, align 8, !noalias !5167 %interleaved.vec83.1 = shufflevector <4 x double> %733, <4 x double> %734, <8 x i32> store <8 x double> %interleaved.vec83.1, ptr %719, align 8, !noalias !5167 %interleaved.vec84.1 = shufflevector <4 x double> %735, <4 x double> %736, <8 x i32> store <8 x double> %interleaved.vec84.1, ptr %720, align 8, !noalias !5167 %737 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %738 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %739 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %740 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec69.2 = load <8 x double>, ptr %737, align 8, !noalias !5167 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %738, align 8, !noalias !5167 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %739, align 8, !noalias !5167 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %740, align 8, !noalias !5167 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %741 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %742 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %743 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %744 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %745 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %746 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %747 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %748 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %749 = fadd <4 x double> %741, %745 %750 = fadd <4 x double> %742, %746 %751 = fadd <4 x double> %743, %748 %752 = fsub <4 x double> %744, %747 %753 = fsub <4 x double> %741, %745 %754 = fsub <4 x double> %742, %746 %755 = fsub <4 x double> %743, %748 %756 = fadd <4 x double> %744, %747 %interleaved.vec81.2 = shufflevector <4 x double> %749, <4 x double> %750, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %737, align 8, !noalias !5167 %interleaved.vec82.2 = shufflevector <4 x double> %751, <4 x double> %752, <8 x i32> store <8 x double> %interleaved.vec82.2, ptr %738, align 8, !noalias !5167 %interleaved.vec83.2 = shufflevector <4 x double> %753, <4 x double> %754, <8 x i32> store <8 x double> %interleaved.vec83.2, ptr %739, align 8, !noalias !5167 %interleaved.vec84.2 = shufflevector <4 x double> %755, <4 x double> %756, <8 x i32> store <8 x double> %interleaved.vec84.2, ptr %740, align 8, !noalias !5167 %757 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %758 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %759 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %760 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec69.3 = load <8 x double>, ptr %757, align 8, !noalias !5167 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %758, align 8, !noalias !5167 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %759, align 8, !noalias !5167 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %760, align 8, !noalias !5167 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %761 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %762 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %763 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %764 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %765 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %766 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %767 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %768 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %769 = fadd <4 x double> %761, %765 %770 = fadd <4 x double> %762, %766 %771 = fadd <4 x double> %763, %768 %772 = fsub <4 x double> %764, %767 %773 = fsub <4 x double> %761, %765 %774 = fsub <4 x double> %762, %766 %775 = fsub <4 x double> %763, %768 %776 = fadd <4 x double> %764, %767 %interleaved.vec81.3 = shufflevector <4 x double> %769, <4 x double> %770, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %757, align 8, !noalias !5167 %interleaved.vec82.3 = shufflevector <4 x double> %771, <4 x double> %772, <8 x i32> store <8 x double> %interleaved.vec82.3, ptr %758, align 8, !noalias !5167 %interleaved.vec83.3 = shufflevector <4 x double> %773, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec83.3, ptr %759, align 8, !noalias !5167 %interleaved.vec84.3 = shufflevector <4 x double> %775, <4 x double> %776, <8 x i32> store <8 x double> %interleaved.vec84.3, ptr %760, align 8, !noalias !5167 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5167 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hce7021865030e01bE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5173 store i64 32, ptr %n.i.i, align 8, !noalias !5173 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5173 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5173 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5173 store ptr null, ptr %_16.i.i, align 8, !noalias !5173 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5173 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5173 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5173 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5173 store ptr null, ptr %_24.i.i, align 8, !noalias !5173 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5173 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5173 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5173 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5173 store ptr null, ptr %_32.i.i, align 8, !noalias !5173 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5173 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5173 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5173 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h65a1dd76a5e5494bE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5173 store ptr null, ptr %_40.i.i, align 8, !noalias !5173 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h65a1dd76a5e5494bE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5173 tail call void @llvm.experimental.noalias.scope.decl(metadata !5178) tail call void @llvm.experimental.noalias.scope.decl(metadata !5181) tail call void @llvm.experimental.noalias.scope.decl(metadata !5183) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !5178, !noalias !5185 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !5178, !noalias !5185 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !5178, !noalias !5185 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !5178, !noalias !5185 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !5178, !noalias !5185 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !5178, !noalias !5185 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !5178, !noalias !5185 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !5178, !noalias !5185 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !5178, !noalias !5185 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !5178, !noalias !5185 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %11, align 8, !alias.scope !5178, !noalias !5185 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !5178, !noalias !5185 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !5178, !noalias !5185 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !5178, !noalias !5185 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !5178, !noalias !5185 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %16, align 8, !alias.scope !5178, !noalias !5185 %32 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %33 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %35 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %37 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %39 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %41 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %43 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %45 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %47 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = bitcast <4 x double> %35 to <4 x i64> %49 = bitcast <4 x double> %39 to <4 x i64> %50 = bitcast <4 x double> %43 to <4 x i64> %51 = bitcast <4 x double> %47 to <4 x i64> %52 = xor <4 x i64> %48, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = xor <4 x i64> %49, %56 = bitcast <4 x i64> %55 to <4 x double> %57 = shufflevector <4 x double> %56, <4 x double> poison, <4 x i32> %58 = xor <4 x i64> %50, %59 = bitcast <4 x i64> %58 to <4 x double> %60 = shufflevector <4 x double> %59, <4 x double> poison, <4 x i32> %61 = xor <4 x i64> %51, %62 = bitcast <4 x i64> %61 to <4 x double> %63 = shufflevector <4 x double> %62, <4 x double> poison, <4 x i32> %64 = fadd <4 x double> %32, %34 %65 = fsub <4 x double> %33, %54 %66 = fsub <4 x double> %32, %34 %67 = fadd <4 x double> %33, %54 %68 = fadd <4 x double> %36, %38 %69 = fsub <4 x double> %37, %57 %70 = fsub <4 x double> %36, %38 %71 = fadd <4 x double> %37, %57 %72 = fadd <4 x double> %40, %42 %73 = fsub <4 x double> %41, %60 %74 = fsub <4 x double> %40, %42 %75 = fadd <4 x double> %41, %60 %76 = fadd <4 x double> %44, %46 %77 = fsub <4 x double> %45, %63 %78 = fsub <4 x double> %44, %46 %79 = fadd <4 x double> %45, %63 %80 = bitcast <4 x double> %69 to <4 x i64> %81 = xor <4 x i64> %80, %82 = bitcast <4 x i64> %81 to <4 x double> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = fadd <4 x double> %69, %83 %85 = fmul <4 x double> %84, %86 = bitcast <4 x double> %70 to <4 x i64> %87 = xor <4 x i64> %86, %88 = bitcast <4 x i64> %87 to <4 x double> %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = bitcast <4 x double> %71 to <4 x i64> %91 = xor <4 x i64> %90, %92 = bitcast <4 x i64> %91 to <4 x double> %93 = shufflevector <4 x double> %92, <4 x double> poison, <4 x i32> %94 = fadd <4 x double> %71, %93 %95 = fmul <4 x double> %94, %96 = fadd <4 x double> %64, %68 %97 = fadd <4 x double> %65, %85 %98 = fsub <4 x double> %66, %89 %99 = fsub <4 x double> %67, %95 %100 = fsub <4 x double> %64, %68 %101 = fsub <4 x double> %65, %85 %102 = fadd <4 x double> %66, %89 %103 = fadd <4 x double> %67, %95 %104 = bitcast <4 x double> %77 to <4 x i64> %105 = xor <4 x i64> %104, %106 = bitcast <4 x i64> %105 to <4 x double> %107 = shufflevector <4 x double> %106, <4 x double> poison, <4 x i32> %108 = fadd <4 x double> %77, %107 %109 = fmul <4 x double> %108, %110 = bitcast <4 x double> %78 to <4 x i64> %111 = xor <4 x i64> %110, %112 = bitcast <4 x i64> %111 to <4 x double> %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = bitcast <4 x double> %79 to <4 x i64> %115 = xor <4 x i64> %114, %116 = bitcast <4 x i64> %115 to <4 x double> %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fadd <4 x double> %79, %117 %119 = fmul <4 x double> %118, %120 = fadd <4 x double> %72, %76 %121 = fadd <4 x double> %73, %109 %122 = fsub <4 x double> %74, %113 %123 = fsub <4 x double> %75, %119 %124 = fsub <4 x double> %72, %76 %125 = fsub <4 x double> %73, %109 %126 = fadd <4 x double> %74, %113 %127 = fadd <4 x double> %75, %119 %128 = fmul <4 x double> %121, %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %121, <4 x double> %129) #23 %131 = bitcast <4 x double> %122 to <4 x i64> %132 = xor <4 x i64> %131, %133 = bitcast <4 x i64> %132 to <4 x double> %134 = shufflevector <4 x double> %133, <4 x double> poison, <4 x i32> %135 = fmul <4 x double> %123, %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %123, <4 x double> %136) #23 %138 = bitcast <4 x double> %124 to <4 x i64> %139 = xor <4 x i64> %138, %140 = bitcast <4 x i64> %139 to <4 x double> %141 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> %142 = fmul <4 x double> %125, %143 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> %144 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %125, <4 x double> %143) #23 %145 = bitcast <4 x double> %126 to <4 x i64> %146 = xor <4 x i64> %145, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = fmul <4 x double> %127, %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %127, <4 x double> %150) #23 %.in5720.i.i = fadd <4 x double> %122, %134 %152 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %126, %148 %153 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %20, align 8, !alias.scope !5183, !noalias !5186 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %19, align 8, !alias.scope !5183, !noalias !5186 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %21, align 8, !alias.scope !5183, !noalias !5186 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %18, align 8, !alias.scope !5183, !noalias !5186 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %23, align 8, !alias.scope !5183, !noalias !5186 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %22, align 8, !alias.scope !5183, !noalias !5186 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %24, align 8, !alias.scope !5183, !noalias !5186 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %17, align 8, !alias.scope !5183, !noalias !5186 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %27, align 8, !alias.scope !5183, !noalias !5186 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %26, align 8, !alias.scope !5183, !noalias !5186 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !5183, !noalias !5186 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %25, align 8, !alias.scope !5183, !noalias !5186 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %30, align 8, !alias.scope !5183, !noalias !5186 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %29, align 8, !alias.scope !5183, !noalias !5186 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %31, align 8, !alias.scope !5183, !noalias !5186 %154 = fadd <4 x double> %96, %120 %155 = fadd <4 x double> %130, %97 %156 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %158, %156 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %155, <4 x double> %159) #23 %161 = fadd <4 x double> %98, %152 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %164, %162 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = fadd <4 x double> %137, %99 %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %170, %168 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = fsub <4 x double> %100, %141 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %174, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = fsub <4 x double> %101, %144 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %182, %180 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = fsub <4 x double> %102, %153 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %188, %186 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = fsub <4 x double> %103, %151 %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %192 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = fsub <4 x double> %96, %120 %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %198, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %199, <4 x double> %197, <4 x double> %201) #23 %203 = fsub <4 x double> %97, %130 %204 = shufflevector <4 x double> %203, <4 x double> poison, <4 x i32> %205 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %204, %206 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %203, <4 x double> %207) #23 %209 = fsub <4 x double> %98, %152 %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %210, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %211, <4 x double> %209, <4 x double> %213) #23 %215 = fsub <4 x double> %99, %137 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = fmul <4 x double> %216, %218 %220 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %217, <4 x double> %215, <4 x double> %219) #23 %221 = fadd <4 x double> %100, %141 %222 = shufflevector <4 x double> %221, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %222, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %223, <4 x double> %221, <4 x double> %225) #23 %227 = fadd <4 x double> %144, %101 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = fmul <4 x double> %228, %230 %232 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %229, <4 x double> %227, <4 x double> %231) #23 %233 = fadd <4 x double> %102, %153 %234 = shufflevector <4 x double> %233, <4 x double> poison, <4 x i32> %235 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = fmul <4 x double> %234, %236 %238 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %235, <4 x double> %233, <4 x double> %237) #23 %239 = fadd <4 x double> %151, %103 %240 = shufflevector <4 x double> %239, <4 x double> poison, <4 x i32> %241 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = fmul <4 x double> %240, %242 %244 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %241, <4 x double> %239, <4 x double> %243) #23 %245 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> %246 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %247 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 %248 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %249 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 %250 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %251 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 %252 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> %253 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 4 %254 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %255 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 5 %256 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %257 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 6 %258 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %259 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 7 store <4 x double> %245, ptr %scratch.0, align 8, !alias.scope !5181, !noalias !5187 store <4 x double> %246, ptr %247, align 8, !alias.scope !5181, !noalias !5187 store <4 x double> %248, ptr %249, align 8, !alias.scope !5181, !noalias !5187 store <4 x double> %250, ptr %251, align 8, !alias.scope !5181, !noalias !5187 %260 = shufflevector <4 x double> %202, <4 x double> %208, <4 x i32> store <4 x double> %260, ptr %253, align 8, !alias.scope !5181, !noalias !5187 %261 = shufflevector <4 x double> %214, <4 x double> %220, <4 x i32> store <4 x double> %261, ptr %255, align 8, !alias.scope !5181, !noalias !5187 %262 = shufflevector <4 x double> %226, <4 x double> %232, <4 x i32> store <4 x double> %262, ptr %257, align 8, !alias.scope !5181, !noalias !5187 %263 = shufflevector <4 x double> %238, <4 x double> %244, <4 x i32> store <4 x double> %263, ptr %259, align 8, !alias.scope !5181, !noalias !5187 %264 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 8 store <4 x double> %252, ptr %264, align 8, !alias.scope !5181, !noalias !5187 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 9 store <4 x double> %254, ptr %265, align 8, !alias.scope !5181, !noalias !5187 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 10 store <4 x double> %256, ptr %266, align 8, !alias.scope !5181, !noalias !5187 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 11 store <4 x double> %258, ptr %267, align 8, !alias.scope !5181, !noalias !5187 %268 = shufflevector <4 x double> %202, <4 x double> %208, <4 x i32> %269 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 12 store <4 x double> %268, ptr %269, align 8, !alias.scope !5181, !noalias !5187 %270 = shufflevector <4 x double> %214, <4 x double> %220, <4 x i32> %271 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 13 store <4 x double> %270, ptr %271, align 8, !alias.scope !5181, !noalias !5187 %272 = shufflevector <4 x double> %226, <4 x double> %232, <4 x i32> %273 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 14 store <4 x double> %272, ptr %273, align 8, !alias.scope !5181, !noalias !5187 %274 = shufflevector <4 x double> %238, <4 x double> %244, <4 x i32> %275 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 15 store <4 x double> %274, ptr %275, align 8, !alias.scope !5181, !noalias !5187 %276 = fadd <4 x double> %245, %252 %277 = fsub <4 x double> %245, %252 store <4 x double> %276, ptr %buf.0, align 8, !noalias !5173 store <4 x double> %277, ptr %2, align 8, !noalias !5173 %278 = fadd <4 x double> %246, %254 %279 = fsub <4 x double> %246, %254 store <4 x double> %278, ptr %5, align 8, !noalias !5173 store <4 x double> %279, ptr %12, align 8, !noalias !5173 %280 = fadd <4 x double> %248, %256 %281 = fsub <4 x double> %248, %256 store <4 x double> %280, ptr %4, align 8, !noalias !5173 store <4 x double> %281, ptr %11, align 8, !noalias !5173 %282 = fadd <4 x double> %250, %258 %283 = fsub <4 x double> %250, %258 store <4 x double> %282, ptr %6, align 8, !noalias !5173 store <4 x double> %283, ptr %13, align 8, !noalias !5173 %284 = fadd <4 x double> %260, %268 %285 = fsub <4 x double> %260, %268 store <4 x double> %284, ptr %3, align 8, !noalias !5173 store <4 x double> %285, ptr %10, align 8, !noalias !5173 %286 = fadd <4 x double> %261, %270 %287 = fsub <4 x double> %261, %270 store <4 x double> %286, ptr %8, align 8, !noalias !5173 store <4 x double> %287, ptr %15, align 8, !noalias !5173 %288 = fadd <4 x double> %262, %272 %289 = fsub <4 x double> %262, %272 store <4 x double> %288, ptr %7, align 8, !noalias !5173 store <4 x double> %289, ptr %14, align 8, !noalias !5173 %290 = fadd <4 x double> %263, %274 %291 = fsub <4 x double> %263, %274 store <4 x double> %290, ptr %9, align 8, !noalias !5173 store <4 x double> %291, ptr %16, align 8, !noalias !5173 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5173 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hcf855a224e12d9b9E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5188 store i64 1024, ptr %n.i.i, align 8, !noalias !5188 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5188 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5188 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5188 store ptr null, ptr %_16.i.i, align 8, !noalias !5188 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5188 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5188 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5188 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5188 store ptr null, ptr %_24.i.i, align 8, !noalias !5188 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5188 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5188 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5188 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5188 store ptr null, ptr %_32.i.i, align 8, !noalias !5188 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5188 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5188 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5188 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf746fcb80c8230dfE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5188 store ptr null, ptr %_40.i.i, align 8, !noalias !5188 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf746fcb80c8230dfE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5188 tail call void @llvm.experimental.noalias.scope.decl(metadata !5193) tail call void @llvm.experimental.noalias.scope.decl(metadata !5196) tail call void @llvm.experimental.noalias.scope.decl(metadata !5198) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf746fcb80c8230dfE.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf746fcb80c8230dfE.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5198, !noalias !5200 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5198, !noalias !5200 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5198, !noalias !5200 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5193, !noalias !5201 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5193, !noalias !5201 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5193, !noalias !5201 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5193, !noalias !5201 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5196, !noalias !5202 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !5196, !noalias !5202 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !5196, !noalias !5202 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !5196, !noalias !5202 %exitcond.not.i.i = icmp eq i64 %8, 128 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5203) tail call void @llvm.experimental.noalias.scope.decl(metadata !5206) tail call void @llvm.experimental.noalias.scope.decl(metadata !5208) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !5208, !noalias !5210, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !5208, !noalias !5210, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !5208, !noalias !5210, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !5208, !noalias !5210, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !5208, !noalias !5210, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !5208, !noalias !5210, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5203, !noalias !5211 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5203, !noalias !5211 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5203, !noalias !5211 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5203, !noalias !5211 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5206, !noalias !5212 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !5206, !noalias !5212 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !5206, !noalias !5212 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !5206, !noalias !5212 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5203, !noalias !5211 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5203, !noalias !5211 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5203, !noalias !5211 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5203, !noalias !5211 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5206, !noalias !5212 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5206, !noalias !5212 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5206, !noalias !5212 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !5206, !noalias !5212 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 64 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5213) tail call void @llvm.experimental.noalias.scope.decl(metadata !5216) tail call void @llvm.experimental.noalias.scope.decl(metadata !5218) br label %bb22.us.i40.i bb22.us.i40.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter.sroa.60.0710.us.i41.i = phi i64 [ %147, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i = shl i64 %iter.sroa.60.0710.us.i41.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.us.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %start1.i.i.i.i.i.i.us.i47.i = shl i64 %iter.sroa.60.0710.us.i41.i, 5 %data.i.i.i.i.i.i.us.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i47.i %start1.i.i.i.i.us.i49.i = shl i64 %iter.sroa.60.0710.us.i41.i, 4 %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !5218, !noalias !5220, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !5218, !noalias !5220, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !5218, !noalias !5220, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !5218, !noalias !5220, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !5218, !noalias !5220, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !5218, !noalias !5220, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 24 %119 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %124 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %bb22.us.i40.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %bb22.us.i40.i ], [ %125, %bb38.us.i59.i ] %125 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !5213, !noalias !5221 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !5213, !noalias !5221 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !5213, !noalias !5221 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !5213, !noalias !5221 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %128 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !5216, !noalias !5222 %135 = fsub <4 x double> %127, %133 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %120, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %135, <4 x double> %137) #23 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !5216, !noalias !5222 %139 = fsub <4 x double> %126, %128 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %122, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %139, <4 x double> %141) #23 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !5216, !noalias !5222 %143 = fadd <4 x double> %127, %133 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %124, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %123, <4 x double> %143, <4 x double> %145) #23 store <4 x double> %146, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !5216, !noalias !5222 %exitcond.not.i73.i = icmp eq i64 %125, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %147 = add nuw nsw i64 %iter.sroa.60.0710.us.i41.i, 1 %exitcond244.not.i = icmp eq i64 %147, 16 br i1 %exitcond244.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i, label %bb22.us.i40.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5223) tail call void @llvm.experimental.noalias.scope.decl(metadata !5226) tail call void @llvm.experimental.noalias.scope.decl(metadata !5228) %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i106.i = load double, ptr %148, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i107.i = load double, ptr %149, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i108.i = load double, ptr %150, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i109.i = load double, ptr %151, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %152 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i110.i = load double, ptr %152, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %153 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i111.i = load double, ptr %153, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.i = insertelement <2 x double> poison, double %w1.0.us.i106.i, i64 0 %154 = insertelement <4 x double> poison, double %w1.1.us.i107.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.i = insertelement <2 x double> poison, double %w2.0.us.i108.i, i64 0 %155 = insertelement <4 x double> poison, double %w2.1.us.i109.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.i = insertelement <2 x double> poison, double %w3.0.us.i110.i, i64 0 %156 = insertelement <4 x double> poison, double %w3.1.us.i111.i, i64 0 %157 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %158 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %159 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %160 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.i, <2 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.i, <2 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.i, <2 x double> poison, <4 x i32> zeroinitializer %165 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.i bb38.us.i115.i: ; preds = %bb38.us.i115.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i %iter5.sroa.50.0697.us.i116.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i ], [ %166, %bb38.us.i115.i ] %166 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.us.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %158, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.us.i123.i = getelementptr inbounds %"fft_simd::c64x2", ptr %157, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.us.i124.i = getelementptr inbounds %"fft_simd::c64x2", ptr %159, i64 %iter5.sroa.50.0697.us.i116.i %a.sroa.0.0.copyload.us.i125.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !5223, !noalias !5231 %b.sroa.0.0.copyload.us.i126.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, align 8, !alias.scope !5223, !noalias !5231 %c.sroa.0.0.copyload.us.i127.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i, align 8, !alias.scope !5223, !noalias !5231 %d.sroa.0.0.copyload.us.i128.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i, align 8, !alias.scope !5223, !noalias !5231 %167 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %168 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %169 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %170 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %171 = bitcast <4 x double> %170 to <4 x i64> %172 = xor <4 x i64> %171, %173 = bitcast <4 x i64> %172 to <4 x double> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = fadd <4 x double> %167, %169 store <4 x double> %175, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i, align 8, !alias.scope !5226, !noalias !5232 %176 = fsub <4 x double> %168, %174 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %161, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %160, <4 x double> %176, <4 x double> %178) #23 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.us.i122.i, align 8, !alias.scope !5226, !noalias !5232 %180 = fsub <4 x double> %167, %169 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %163, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %162, <4 x double> %180, <4 x double> %182) #23 store <4 x double> %183, ptr %_3.i.i.i.i.i.i.us.i123.i, align 8, !alias.scope !5226, !noalias !5232 %184 = fadd <4 x double> %168, %174 %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %165, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %184, <4 x double> %186) #23 store <4 x double> %187, ptr %_3.i.i.i.i.us.i124.i, align 8, !alias.scope !5226, !noalias !5232 %exitcond.not.i129.i = icmp eq i64 %166, 32 br i1 %exitcond.not.i129.i, label %bb36.bb20.loopexit_crit_edge.us.i130.i, label %bb38.us.i115.i bb36.bb20.loopexit_crit_edge.us.i130.i: ; preds = %bb38.us.i115.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %data.i.i.i.i.i.i.i.i.us.i102.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i106.1.i = load double, ptr %188, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i107.1.i = load double, ptr %189, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i108.1.i = load double, ptr %190, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i109.1.i = load double, ptr %191, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i110.1.i = load double, ptr %192, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i111.1.i = load double, ptr %193, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.1.i = insertelement <2 x double> poison, double %w1.0.us.i106.1.i, i64 0 %194 = insertelement <4 x double> poison, double %w1.1.us.i107.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.1.i = insertelement <2 x double> poison, double %w2.0.us.i108.1.i, i64 0 %195 = insertelement <4 x double> poison, double %w2.1.us.i109.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.1.i = insertelement <2 x double> poison, double %w3.0.us.i110.1.i, i64 0 %196 = insertelement <4 x double> poison, double %w3.1.us.i111.1.i, i64 0 %197 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %198 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %199 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %200 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.1.i, <2 x double> poison, <4 x i32> zeroinitializer %201 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> zeroinitializer %202 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.1.i, <2 x double> poison, <4 x i32> zeroinitializer %203 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer %204 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.1.i, <2 x double> poison, <4 x i32> zeroinitializer %205 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.1.i bb38.us.i115.1.i: ; preds = %bb38.us.i115.1.i, %bb36.bb20.loopexit_crit_edge.us.i130.i %iter5.sroa.50.0697.us.i116.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.i ], [ %206, %bb38.us.i115.1.i ] %206 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.us.i122.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %198, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.us.i123.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %197, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.us.i124.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %199, i64 %iter5.sroa.50.0697.us.i116.1.i %a.sroa.0.0.copyload.us.i125.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !5223, !noalias !5231 %b.sroa.0.0.copyload.us.i126.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !5223, !noalias !5231 %c.sroa.0.0.copyload.us.i127.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i, align 8, !alias.scope !5223, !noalias !5231 %d.sroa.0.0.copyload.us.i128.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i, align 8, !alias.scope !5223, !noalias !5231 %207 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %208 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %209 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %210 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %211 = bitcast <4 x double> %210 to <4 x i64> %212 = xor <4 x i64> %211, %213 = bitcast <4 x i64> %212 to <4 x double> %214 = shufflevector <4 x double> %213, <4 x double> poison, <4 x i32> %215 = fadd <4 x double> %207, %209 store <4 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i, align 8, !alias.scope !5226, !noalias !5232 %216 = fsub <4 x double> %208, %214 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %201, %217 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %216, <4 x double> %218) #23 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.us.i122.1.i, align 8, !alias.scope !5226, !noalias !5232 %220 = fsub <4 x double> %207, %209 %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %203, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %220, <4 x double> %222) #23 store <4 x double> %223, ptr %_3.i.i.i.i.i.i.us.i123.1.i, align 8, !alias.scope !5226, !noalias !5232 %224 = fadd <4 x double> %208, %214 %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %205, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %204, <4 x double> %224, <4 x double> %226) #23 store <4 x double> %227, ptr %_3.i.i.i.i.us.i124.1.i, align 8, !alias.scope !5226, !noalias !5232 %exitcond.not.i129.1.i = icmp eq i64 %206, 32 br i1 %exitcond.not.i129.1.i, label %bb36.bb20.loopexit_crit_edge.us.i130.1.i, label %bb38.us.i115.1.i bb36.bb20.loopexit_crit_edge.us.i130.1.i: ; preds = %bb38.us.i115.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %data.i.i.i.i.i.i.i.i.i.i.us.i101.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %data.i.i.i.i.i.i.i.i.us.i102.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %228 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i106.2.i = load double, ptr %228, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %229 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i107.2.i = load double, ptr %229, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %230 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2 %w2.0.us.i108.2.i = load double, ptr %230, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %231 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2, i32 1 %w2.1.us.i109.2.i = load double, ptr %231, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %232 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3 %w3.0.us.i110.2.i = load double, ptr %232, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %233 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3, i32 1 %w3.1.us.i111.2.i = load double, ptr %233, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.2.i = insertelement <2 x double> poison, double %w1.0.us.i106.2.i, i64 0 %234 = insertelement <4 x double> poison, double %w1.1.us.i107.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.2.i = insertelement <2 x double> poison, double %w2.0.us.i108.2.i, i64 0 %235 = insertelement <4 x double> poison, double %w2.1.us.i109.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.2.i = insertelement <2 x double> poison, double %w3.0.us.i110.2.i, i64 0 %236 = insertelement <4 x double> poison, double %w3.1.us.i111.2.i, i64 0 %237 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %238 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %239 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %240 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.2.i, <2 x double> poison, <4 x i32> zeroinitializer %241 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> zeroinitializer %242 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.2.i, <2 x double> poison, <4 x i32> zeroinitializer %243 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> zeroinitializer %244 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.2.i, <2 x double> poison, <4 x i32> zeroinitializer %245 = shufflevector <4 x double> %236, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.2.i bb38.us.i115.2.i: ; preds = %bb38.us.i115.2.i, %bb36.bb20.loopexit_crit_edge.us.i130.1.i %iter5.sroa.50.0697.us.i116.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.1.i ], [ %246, %bb38.us.i115.2.i ] %246 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.us.i122.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %238, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.us.i123.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %237, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.us.i124.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %239, i64 %iter5.sroa.50.0697.us.i116.2.i %a.sroa.0.0.copyload.us.i125.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.2.i, align 8, !alias.scope !5223, !noalias !5231 %b.sroa.0.0.copyload.us.i126.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.2.i, align 8, !alias.scope !5223, !noalias !5231 %c.sroa.0.0.copyload.us.i127.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.2.i, align 8, !alias.scope !5223, !noalias !5231 %d.sroa.0.0.copyload.us.i128.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.2.i, align 8, !alias.scope !5223, !noalias !5231 %247 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.2.i, %c.sroa.0.0.copyload.us.i127.2.i %248 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.2.i, %c.sroa.0.0.copyload.us.i127.2.i %249 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.2.i, %d.sroa.0.0.copyload.us.i128.2.i %250 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.2.i, %d.sroa.0.0.copyload.us.i128.2.i %251 = bitcast <4 x double> %250 to <4 x i64> %252 = xor <4 x i64> %251, %253 = bitcast <4 x i64> %252 to <4 x double> %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = fadd <4 x double> %247, %249 store <4 x double> %255, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.2.i, align 8, !alias.scope !5226, !noalias !5232 %256 = fsub <4 x double> %248, %254 %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = fmul <4 x double> %241, %257 %259 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %240, <4 x double> %256, <4 x double> %258) #23 store <4 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.us.i122.2.i, align 8, !alias.scope !5226, !noalias !5232 %260 = fsub <4 x double> %247, %249 %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fmul <4 x double> %243, %261 %263 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %260, <4 x double> %262) #23 store <4 x double> %263, ptr %_3.i.i.i.i.i.i.us.i123.2.i, align 8, !alias.scope !5226, !noalias !5232 %264 = fadd <4 x double> %248, %254 %265 = shufflevector <4 x double> %264, <4 x double> poison, <4 x i32> %266 = fmul <4 x double> %245, %265 %267 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %244, <4 x double> %264, <4 x double> %266) #23 store <4 x double> %267, ptr %_3.i.i.i.i.us.i124.2.i, align 8, !alias.scope !5226, !noalias !5232 %exitcond.not.i129.2.i = icmp eq i64 %246, 32 br i1 %exitcond.not.i129.2.i, label %bb36.bb20.loopexit_crit_edge.us.i130.2.i, label %bb38.us.i115.2.i bb36.bb20.loopexit_crit_edge.us.i130.2.i: ; preds = %bb38.us.i115.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %data.i.i.i.i.i.i.i.i.i.i.us.i101.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %data.i.i.i.i.i.i.i.i.us.i102.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 %268 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i106.3.i = load double, ptr %268, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %269 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i107.3.i = load double, ptr %269, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %270 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2 %w2.0.us.i108.3.i = load double, ptr %270, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %271 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2, i32 1 %w2.1.us.i109.3.i = load double, ptr %271, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %272 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3 %w3.0.us.i110.3.i = load double, ptr %272, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %273 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3, i32 1 %w3.1.us.i111.3.i = load double, ptr %273, align 8, !alias.scope !5228, !noalias !5230, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.3.i = insertelement <2 x double> poison, double %w1.0.us.i106.3.i, i64 0 %274 = insertelement <4 x double> poison, double %w1.1.us.i107.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.3.i = insertelement <2 x double> poison, double %w2.0.us.i108.3.i, i64 0 %275 = insertelement <4 x double> poison, double %w2.1.us.i109.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.3.i = insertelement <2 x double> poison, double %w3.0.us.i110.3.i, i64 0 %276 = insertelement <4 x double> poison, double %w3.1.us.i111.3.i, i64 0 %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %280 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.3.i, <2 x double> poison, <4 x i32> zeroinitializer %281 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> zeroinitializer %282 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.3.i, <2 x double> poison, <4 x i32> zeroinitializer %283 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> zeroinitializer %284 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.3.i, <2 x double> poison, <4 x i32> zeroinitializer %285 = shufflevector <4 x double> %276, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.3.i bb38.us.i115.3.i: ; preds = %bb38.us.i115.3.i, %bb36.bb20.loopexit_crit_edge.us.i130.2.i %iter5.sroa.50.0697.us.i116.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.2.i ], [ %286, %bb38.us.i115.3.i ] %286 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.us.i122.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.us.i123.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.us.i124.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %iter5.sroa.50.0697.us.i116.3.i %a.sroa.0.0.copyload.us.i125.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.3.i, align 8, !alias.scope !5223, !noalias !5231 %b.sroa.0.0.copyload.us.i126.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.3.i, align 8, !alias.scope !5223, !noalias !5231 %c.sroa.0.0.copyload.us.i127.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.3.i, align 8, !alias.scope !5223, !noalias !5231 %d.sroa.0.0.copyload.us.i128.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.3.i, align 8, !alias.scope !5223, !noalias !5231 %287 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.3.i, %c.sroa.0.0.copyload.us.i127.3.i %288 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.3.i, %c.sroa.0.0.copyload.us.i127.3.i %289 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.3.i, %d.sroa.0.0.copyload.us.i128.3.i %290 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.3.i, %d.sroa.0.0.copyload.us.i128.3.i %291 = bitcast <4 x double> %290 to <4 x i64> %292 = xor <4 x i64> %291, %293 = bitcast <4 x i64> %292 to <4 x double> %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = fadd <4 x double> %287, %289 store <4 x double> %295, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.3.i, align 8, !alias.scope !5226, !noalias !5232 %296 = fsub <4 x double> %288, %294 %297 = shufflevector <4 x double> %296, <4 x double> poison, <4 x i32> %298 = fmul <4 x double> %281, %297 %299 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %280, <4 x double> %296, <4 x double> %298) #23 store <4 x double> %299, ptr %_3.i.i.i.i.i.i.i.i.us.i122.3.i, align 8, !alias.scope !5226, !noalias !5232 %300 = fsub <4 x double> %287, %289 %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fmul <4 x double> %283, %301 %303 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %282, <4 x double> %300, <4 x double> %302) #23 store <4 x double> %303, ptr %_3.i.i.i.i.i.i.us.i123.3.i, align 8, !alias.scope !5226, !noalias !5232 %304 = fadd <4 x double> %288, %294 %305 = shufflevector <4 x double> %304, <4 x double> poison, <4 x i32> %306 = fmul <4 x double> %285, %305 %307 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %284, <4 x double> %304, <4 x double> %306) #23 store <4 x double> %307, ptr %_3.i.i.i.i.us.i124.3.i, align 8, !alias.scope !5226, !noalias !5232 %exitcond.not.i129.3.i = icmp eq i64 %286, 32 br i1 %exitcond.not.i129.3.i, label %bb13.i.i.i.i.i, label %bb38.us.i115.3.i bb13.i.i.i.i.i: ; preds = %bb38.us.i115.3.i, %bb13.i.i.i.i.i %iter.i.i.i.i.sroa.22.0243.i = phi i64 [ %308, %bb13.i.i.i.i.i ], [ 0, %bb38.us.i115.3.i ] %308 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.0243.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.sroa.22.0243.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.i.sroa.22.0243.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.sroa.22.0243.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.i.sroa.22.0243.i %_43.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5188 %_44.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !5188 %_45.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5188 %_46.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5188 %309 = fadd <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %310 = fsub <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %311 = fadd <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %312 = fsub <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %313 = bitcast <4 x double> %312 to <4 x i64> %314 = xor <4 x i64> %313, %315 = bitcast <4 x i64> %314 to <4 x double> %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fadd <4 x double> %309, %311 %318 = fsub <4 x double> %310, %316 %319 = fsub <4 x double> %309, %311 %320 = fadd <4 x double> %310, %316 store <4 x double> %317, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5188 store <4 x double> %318, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !5188 store <4 x double> %319, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5188 store <4 x double> %320, ptr %_3.i.i.i.i.i, align 8, !noalias !5188 %exitcond246.not.i = icmp eq i64 %308, 128 br i1 %exitcond246.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h2c1bdbb7ebe1d1a4E.exit, label %bb13.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h2c1bdbb7ebe1d1a4E.exit: ; preds = %bb13.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5188 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd142f0070b5cbe78E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5233 store i64 32, ptr %n.i.i, align 8, !noalias !5233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5233 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5233 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5233 store ptr null, ptr %_16.i.i, align 8, !noalias !5233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5233 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5233 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5233 store ptr null, ptr %_24.i.i, align 8, !noalias !5233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5233 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5233 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5233 store ptr null, ptr %_32.i.i, align 8, !noalias !5233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5233 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5233 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5233 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h63631257781517cfE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5233 store ptr null, ptr %_40.i.i, align 8, !noalias !5233 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h63631257781517cfE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5233 tail call void @llvm.experimental.noalias.scope.decl(metadata !5238) tail call void @llvm.experimental.noalias.scope.decl(metadata !5241) tail call void @llvm.experimental.noalias.scope.decl(metadata !5243) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !5238, !noalias !5245 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !5238, !noalias !5245 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !5238, !noalias !5245 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !5238, !noalias !5245 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !5238, !noalias !5245 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !5238, !noalias !5245 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !5238, !noalias !5245 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !5238, !noalias !5245 %16 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %17 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %19 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = bitcast <4 x double> %19 to <4 x i64> %21 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %22 = bitcast <4 x double> %21 to <4 x i64> %23 = xor <4 x i64> %20, %24 = bitcast <4 x i64> %23 to <4 x double> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = xor <4 x i64> %22, %27 = bitcast <4 x i64> %26 to <4 x double> %28 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> %29 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %30 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %16, %18 %33 = fsub <4 x double> %17, %25 %34 = fsub <4 x double> %16, %18 %35 = fadd <4 x double> %17, %25 %36 = fadd <4 x double> %29, %31 %37 = fsub <4 x double> %30, %28 %38 = bitcast <4 x double> %37 to <4 x i64> %39 = fsub <4 x double> %29, %31 %40 = bitcast <4 x double> %39 to <4 x i64> %41 = fadd <4 x double> %30, %28 %42 = xor <4 x i64> %38, %43 = bitcast <4 x i64> %42 to <4 x double> %44 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> %45 = fadd <4 x double> %37, %44 %46 = fmul <4 x double> %45, %47 = xor <4 x i64> %40, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = bitcast <4 x double> %41 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %41, %53 %55 = fmul <4 x double> %54, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %11, align 8, !alias.scope !5243, !noalias !5246 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !5243, !noalias !5246 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !5243, !noalias !5246 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !5243, !noalias !5246 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !5243, !noalias !5246 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !5243, !noalias !5246 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !5243, !noalias !5246 %56 = fadd <4 x double> %32, %36 %57 = fadd <4 x double> %33, %46 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fsub <4 x double> %34, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = fsub <4 x double> %35, %55 %70 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %71 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %72, %70 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %71, <4 x double> %69, <4 x double> %73) #23 %75 = fsub <4 x double> %32, %36 %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %76, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %75, <4 x double> %79) #23 %81 = fsub <4 x double> %33, %46 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %84, %82 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %81, <4 x double> %85) #23 %87 = fadd <4 x double> %34, %49 %88 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> %89 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %88 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %89, <4 x double> %87, <4 x double> %91) #23 %93 = fadd <4 x double> %35, %55 %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %94 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %95, <4 x double> %93, <4 x double> %97) #23 %99 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> store <4 x double> %99, ptr %scratch.0, align 8, !alias.scope !5241, !noalias !5247 %100 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %101 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %100, ptr %101, align 8, !alias.scope !5241, !noalias !5247 %102 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %103 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %102, ptr %103, align 8, !alias.scope !5241, !noalias !5247 %104 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %105 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %104, ptr %105, align 8, !alias.scope !5241, !noalias !5247 %106 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> %107 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 4 store <4 x double> %106, ptr %107, align 8, !alias.scope !5241, !noalias !5247 %108 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %109 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 5 store <4 x double> %108, ptr %109, align 8, !alias.scope !5241, !noalias !5247 %110 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %111 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 6 store <4 x double> %110, ptr %111, align 8, !alias.scope !5241, !noalias !5247 %112 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %113 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 7 store <4 x double> %112, ptr %113, align 8, !alias.scope !5241, !noalias !5247 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %x0.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x4.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x5.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x6.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %x7.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5238, !noalias !5245 %114 = fadd <4 x double> %x0.sroa.0.0.copyload.i.1.i, %x4.sroa.0.0.copyload.i.1.i %115 = fsub <4 x double> %x0.sroa.0.0.copyload.i.1.i, %x4.sroa.0.0.copyload.i.1.i %116 = fadd <4 x double> %x2.sroa.0.0.copyload.i.1.i, %x6.sroa.0.0.copyload.i.1.i %117 = fsub <4 x double> %x2.sroa.0.0.copyload.i.1.i, %x6.sroa.0.0.copyload.i.1.i %118 = bitcast <4 x double> %117 to <4 x i64> %119 = fsub <4 x double> %x3.sroa.0.0.copyload.i.1.i, %x7.sroa.0.0.copyload.i.1.i %120 = bitcast <4 x double> %119 to <4 x i64> %121 = xor <4 x i64> %118, %122 = bitcast <4 x i64> %121 to <4 x double> %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = xor <4 x i64> %120, %125 = bitcast <4 x i64> %124 to <4 x double> %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = fadd <4 x double> %x1.sroa.0.0.copyload.i.1.i, %x5.sroa.0.0.copyload.i.1.i %128 = fsub <4 x double> %x1.sroa.0.0.copyload.i.1.i, %x5.sroa.0.0.copyload.i.1.i %129 = fadd <4 x double> %x3.sroa.0.0.copyload.i.1.i, %x7.sroa.0.0.copyload.i.1.i %130 = fadd <4 x double> %114, %116 %131 = fsub <4 x double> %115, %123 %132 = fsub <4 x double> %114, %116 %133 = fadd <4 x double> %115, %123 %134 = fadd <4 x double> %127, %129 %135 = fsub <4 x double> %128, %126 %136 = bitcast <4 x double> %135 to <4 x i64> %137 = fsub <4 x double> %127, %129 %138 = bitcast <4 x double> %137 to <4 x i64> %139 = fadd <4 x double> %128, %126 %140 = xor <4 x i64> %136, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fadd <4 x double> %135, %142 %144 = fmul <4 x double> %143, %145 = xor <4 x i64> %138, %146 = bitcast <4 x i64> %145 to <4 x double> %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = bitcast <4 x double> %139 to <4 x i64> %149 = xor <4 x i64> %148, %150 = bitcast <4 x i64> %149 to <4 x double> %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = fadd <4 x double> %139, %151 %153 = fmul <4 x double> %152, %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %w4.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %w5.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %w6.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %w7.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5243, !noalias !5246 %154 = fadd <4 x double> %130, %134 %155 = fadd <4 x double> %131, %144 %156 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %158, %156 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %155, <4 x double> %159) #23 %161 = fsub <4 x double> %132, %147 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %164, %162 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = fsub <4 x double> %133, %153 %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %170, %168 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = fsub <4 x double> %130, %134 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %174, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = fsub <4 x double> %131, %144 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %182, %180 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = fadd <4 x double> %132, %147 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %188, %186 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = fadd <4 x double> %133, %153 %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %192 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> store <4 x double> %197, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5241, !noalias !5247 %198 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %199 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %198, ptr %199, align 8, !alias.scope !5241, !noalias !5247 %200 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %201 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 2 store <4 x double> %200, ptr %201, align 8, !alias.scope !5241, !noalias !5247 %202 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %203 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 3 store <4 x double> %202, ptr %203, align 8, !alias.scope !5241, !noalias !5247 %204 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> %205 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 4 store <4 x double> %204, ptr %205, align 8, !alias.scope !5241, !noalias !5247 %206 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %207 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 5 store <4 x double> %206, ptr %207, align 8, !alias.scope !5241, !noalias !5247 %208 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %209 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 6 store <4 x double> %208, ptr %209, align 8, !alias.scope !5241, !noalias !5247 %210 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %211 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 7 store <4 x double> %210, ptr %211, align 8, !alias.scope !5241, !noalias !5247 %212 = fadd <4 x double> %99, %197 %213 = fsub <4 x double> %99, %197 %214 = fadd <4 x double> %106, %204 %215 = fsub <4 x double> %106, %204 %216 = bitcast <4 x double> %215 to <4 x i64> %217 = xor <4 x i64> %216, %218 = bitcast <4 x i64> %217 to <4 x double> %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = fadd <4 x double> %212, %214 %221 = fsub <4 x double> %213, %219 %222 = fsub <4 x double> %212, %214 %223 = fadd <4 x double> %213, %219 store <4 x double> %220, ptr %buf.0, align 8, !noalias !5233 store <4 x double> %221, ptr %3, align 8, !noalias !5233 store <4 x double> %222, ptr %2, align 8, !noalias !5233 store <4 x double> %223, ptr %6, align 8, !noalias !5233 %224 = fadd <4 x double> %100, %198 %225 = fsub <4 x double> %100, %198 %226 = fadd <4 x double> %108, %206 %227 = fsub <4 x double> %108, %206 %228 = bitcast <4 x double> %227 to <4 x i64> %229 = xor <4 x i64> %228, %230 = bitcast <4 x i64> %229 to <4 x double> %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fadd <4 x double> %224, %226 %233 = fsub <4 x double> %225, %231 %234 = fsub <4 x double> %224, %226 %235 = fadd <4 x double> %225, %231 store <4 x double> %232, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 store <4 x double> %233, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 store <4 x double> %234, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 %236 = fadd <4 x double> %102, %200 %237 = fsub <4 x double> %102, %200 %238 = fadd <4 x double> %110, %208 %239 = fsub <4 x double> %110, %208 %240 = bitcast <4 x double> %239 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %236, %238 %245 = fsub <4 x double> %237, %243 %246 = fsub <4 x double> %236, %238 %247 = fadd <4 x double> %237, %243 store <4 x double> %244, ptr %4, align 8, !noalias !5233 store <4 x double> %245, ptr %5, align 8, !noalias !5233 store <4 x double> %246, ptr %7, align 8, !noalias !5233 store <4 x double> %247, ptr %8, align 8, !noalias !5233 %248 = fadd <4 x double> %104, %202 %249 = fsub <4 x double> %104, %202 %250 = fadd <4 x double> %112, %210 %251 = fsub <4 x double> %112, %210 %252 = bitcast <4 x double> %251 to <4 x i64> %253 = xor <4 x i64> %252, %254 = bitcast <4 x i64> %253 to <4 x double> %255 = shufflevector <4 x double> %254, <4 x double> poison, <4 x i32> %256 = fadd <4 x double> %248, %250 %257 = fsub <4 x double> %249, %255 %258 = fsub <4 x double> %248, %250 %259 = fadd <4 x double> %249, %255 store <4 x double> %256, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 store <4 x double> %257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 store <4 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 store <4 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5233 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5233 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd14acd249a9fcd66E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc557dca8d654a097E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd15d2272f926f09dE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5248 store i64 8, ptr %n.i, align 8, !noalias !5248 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5248 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5248 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5248 store ptr null, ptr %_16.i, align 8, !noalias !5248 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5248 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5248 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5248 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5248 store ptr null, ptr %_24.i, align 8, !noalias !5248 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5248 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5248 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5248 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5248 store ptr null, ptr %_32.i, align 8, !noalias !5248 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5248 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5248 store i64 %w.1, ptr %_34.i, align 8, !noalias !5248 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5248 store ptr null, ptr %_40.i, align 8, !noalias !5248 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5248 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5251 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !5251 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %1 = fadd <4 x double> %strided.vec, %strided.vec3 %2 = fadd <4 x double> %strided.vec1, %strided.vec4 %3 = fsub <4 x double> %strided.vec, %strided.vec3 %4 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %1, <4 x double> %2, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5251 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec5 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec5, ptr %5, align 8, !noalias !5251 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %6, i32 8, <2 x i1> , <2 x double> poison), !noalias !5248 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %7, i32 8, <2 x i1> , <2 x double> poison), !noalias !5248 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2 %wide.masked.gather13 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %8, i32 8, <2 x i1> , <2 x double> poison), !noalias !5248 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %9, i32 8, <2 x i1> , <2 x double> poison), !noalias !5248 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3 %wide.masked.gather15 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %10, i32 8, <2 x i1> , <2 x double> poison), !noalias !5248 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %11, i32 8, <2 x i1> , <2 x double> poison), !noalias !5248 %12 = fneg <2 x double> %wide.masked.gather12 %13 = fneg <2 x double> %wide.masked.gather14 %14 = fneg <2 x double> %wide.masked.gather16 %wide.vec17 = load <16 x double>, ptr %scratch.0, align 8, !noalias !5248 %strided.vec18 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec20 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec21 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec25 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %15 = fmul <2 x double> %strided.vec21, %12 %16 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %strided.vec20, <2 x double> %15) %17 = fmul <2 x double> %wide.masked.gather12, %strided.vec20 %18 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %strided.vec21, <2 x double> %17) %19 = fmul <2 x double> %strided.vec23, %13 %20 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %strided.vec22, <2 x double> %19) %21 = fmul <2 x double> %wide.masked.gather14, %strided.vec22 %22 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %strided.vec23, <2 x double> %21) %23 = fmul <2 x double> %strided.vec25, %14 %24 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %strided.vec24, <2 x double> %23) %25 = fmul <2 x double> %wide.masked.gather16, %strided.vec24 %26 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %strided.vec25, <2 x double> %25) %27 = fadd <2 x double> %strided.vec18, %20 %28 = fadd <2 x double> %strided.vec19, %22 %29 = fsub <2 x double> %strided.vec18, %20 %30 = fsub <2 x double> %strided.vec19, %22 %31 = fadd <2 x double> %16, %24 %32 = fadd <2 x double> %18, %26 %33 = fsub <2 x double> %16, %24 %34 = fsub <2 x double> %18, %26 %35 = fadd <2 x double> %27, %31 %36 = fadd <2 x double> %28, %32 %interleaved.vec26 = shufflevector <2 x double> %35, <2 x double> %36, <4 x i32> store <4 x double> %interleaved.vec26, ptr %buf.0, align 8, !noalias !5248 %37 = fadd <2 x double> %29, %34 %38 = fsub <2 x double> %30, %33 %39 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec27 = shufflevector <2 x double> %37, <2 x double> %38, <4 x i32> store <4 x double> %interleaved.vec27, ptr %39, align 8, !noalias !5248 %40 = fsub <2 x double> %27, %31 %41 = fsub <2 x double> %28, %32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec28 = shufflevector <2 x double> %40, <2 x double> %41, <4 x i32> store <4 x double> %interleaved.vec28, ptr %42, align 8, !noalias !5248 %43 = fsub <2 x double> %29, %34 %44 = fadd <2 x double> %30, %33 %45 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %interleaved.vec29 = shufflevector <2 x double> %43, <2 x double> %44, <4 x i32> store <4 x double> %interleaved.vec29, ptr %45, align 8, !noalias !5248 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5248 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd1b29de1679e92aeE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, i64 noundef %scratch.1, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5254 store i64 16, ptr %n.i, align 8, !noalias !5254 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5254 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5254 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5254 store ptr null, ptr %_16.i, align 8, !noalias !5254 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5254 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5254 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5254 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5254 store ptr null, ptr %_24.i, align 8, !noalias !5254 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5254 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5254 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5254 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5254 store ptr null, ptr %_32.i, align 8, !noalias !5254 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5254 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5254 store i64 %w.1, ptr %_34.i, align 8, !noalias !5254 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276261ebc11e24efE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5254 store ptr null, ptr %_40.i, align 8, !noalias !5254 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276261ebc11e24efE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5254 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %15 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1, i32 1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2, i32 1 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5, i32 1 %18 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9, i32 1 %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10, i32 1 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13, i32 1 %21 = load <2 x double>, ptr %buf.0, align 8, !noalias !5254 %22 = load <2 x double>, ptr %3, align 8, !noalias !5254 %23 = load <2 x double>, ptr %2, align 8, !noalias !5254 %24 = load <2 x double>, ptr %4, align 8, !noalias !5254 %25 = load <2 x double>, ptr %1, align 8, !noalias !5254 %26 = load <2 x double>, ptr %6, align 8, !noalias !5254 %27 = load <2 x double>, ptr %5, align 8, !noalias !5254 %28 = load <2 x double>, ptr %7, align 8, !noalias !5254 %29 = load <2 x double>, ptr %0, align 8, !noalias !5254 %30 = load <2 x double>, ptr %10, align 8, !noalias !5254 %31 = load <2 x double>, ptr %9, align 8, !noalias !5254 %32 = load <2 x double>, ptr %11, align 8, !noalias !5254 %33 = load <2 x double>, ptr %8, align 8, !noalias !5254 %34 = load <2 x double>, ptr %13, align 8, !noalias !5254 %35 = load <2 x double>, ptr %12, align 8, !noalias !5254 %36 = load <2 x double>, ptr %14, align 8, !noalias !5254 %37 = fadd <2 x double> %21, %29 %38 = fadd <2 x double> %25, %33 %39 = fadd <2 x double> %23, %31 %40 = fsub <2 x double> %23, %31 %_0.i.i168 = extractelement <2 x double> %40, i64 0 %41 = fsub <2 x double> %23, %31 %_0.i3.i169 = extractelement <2 x double> %41, i64 1 %42 = fadd <2 x double> %27, %35 %43 = fsub <2 x double> %27, %35 %_0.i.i172 = extractelement <2 x double> %43, i64 0 %44 = fsub <2 x double> %27, %35 %_0.i3.i173 = extractelement <2 x double> %44, i64 1 %45 = fadd <2 x double> %22, %30 %46 = fadd <2 x double> %26, %34 %47 = fadd <2 x double> %24, %32 %48 = fsub <2 x double> %24, %32 %_0.i.i184 = extractelement <2 x double> %48, i64 0 %49 = fsub <2 x double> %24, %32 %_0.i3.i185 = extractelement <2 x double> %49, i64 1 %50 = fadd <2 x double> %28, %36 %51 = fsub <2 x double> %28, %36 %_0.i.i188 = extractelement <2 x double> %51, i64 0 %52 = fsub <2 x double> %28, %36 %_0.i3.i189 = extractelement <2 x double> %52, i64 1 %53 = fadd <2 x double> %37, %38 %54 = fadd <2 x double> %39, %42 %_0.i.i200 = fadd double %_0.i.i168, %_0.i3.i173 %_0.i3.i201 = fsub double %_0.i3.i169, %_0.i.i172 %_0.i.i204 = fsub double %_0.i.i168, %_0.i3.i173 %_0.i3.i205 = fadd double %_0.i3.i169, %_0.i.i172 %55 = fadd <2 x double> %45, %46 %56 = fsub <2 x double> %45, %46 %_0.i.i210 = extractelement <2 x double> %56, i64 0 %57 = fsub <2 x double> %45, %46 %_0.i3.i211 = extractelement <2 x double> %57, i64 1 %58 = fadd <2 x double> %47, %50 %_0.i.i216 = fadd double %_0.i.i184, %_0.i3.i189 %_0.i3.i217 = fsub double %_0.i3.i185, %_0.i.i188 %59 = fsub <2 x double> %47, %50 %_0.i.i218 = extractelement <2 x double> %59, i64 0 %60 = fsub <2 x double> %47, %50 %_0.i3.i219 = extractelement <2 x double> %60, i64 1 %_0.i.i220 = fsub double %_0.i.i184, %_0.i3.i189 %_0.i3.i221 = fadd double %_0.i3.i185, %_0.i.i188 %_0.i.i222 = fadd double %_0.i3.i201, %_0.i.i200 %_0.i3.i223 = fsub double %_0.i3.i201, %_0.i.i200 %_4.i.i.i.i = fmul double %_0.i.i222, 0x3FE6A09E667F3BCD %_7.i.i.i.i = fmul double %_0.i3.i223, 0x3FE6A09E667F3BCD %61 = fadd <2 x double> %53, %54 %_0.i.i242 = fadd double %_0.i3.i217, %_0.i.i216 %_0.i3.i243 = fsub double %_0.i3.i217, %_0.i.i216 %_4.i337.i.i.i = fmul double %_0.i.i242, 0x3FE6A09E667F3BCD %_7.i338.i.i.i = fmul double %_0.i3.i243, 0x3FE6A09E667F3BCD %62 = fadd <2 x double> %55, %58 %_0.i.i250 = fadd double %_0.i.i210, %_0.i3.i219 %_0.i3.i251 = fsub double %_0.i3.i211, %_0.i.i218 %_0.i.i258 = fsub double %_0.i.i210, %_0.i3.i219 %_0.i3.i259 = fadd double %_0.i3.i211, %_0.i.i218 %_0.i.i262 = fadd double %_0.i3.i251, %_0.i.i250 %_0.i3.i263 = fsub double %_0.i3.i251, %_0.i.i250 %_4.i341.i.i.i = fmul double %_0.i.i262, 0x3FE6A09E667F3BCD %_7.i342.i.i.i = fmul double %_0.i3.i263, 0x3FE6A09E667F3BCD %63 = fadd <2 x double> %61, %62 store <2 x double> %63, ptr %buf.0, align 8, !noalias !5254 %64 = fsub <2 x double> %21, %29 %65 = fsub <2 x double> %25, %33 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> %67 = fsub <2 x double> %22, %30 %68 = fsub <2 x double> %26, %34 %69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> %70 = fadd <2 x double> %64, %66 %_0.i.i192 = extractelement <2 x double> %70, i64 0 %71 = fsub <2 x double> %64, %66 %_0.i3.i193 = extractelement <2 x double> %71, i64 1 %72 = fsub <2 x double> %64, %66 %73 = fadd <2 x double> %64, %66 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = fadd <2 x double> %67, %69 %_0.i.i208 = extractelement <2 x double> %75, i64 0 %76 = fsub <2 x double> %67, %69 %_0.i3.i209 = extractelement <2 x double> %76, i64 1 %77 = fsub <2 x double> %67, %69 %78 = fadd <2 x double> %67, %69 %79 = shufflevector <2 x double> %77, <2 x double> %78, <2 x i32> %80 = insertelement <2 x double> poison, double %_0.i.i204, i64 0 %81 = insertelement <2 x double> poison, double %_0.i.i204, i64 0 %82 = insertelement <2 x double> poison, double %_0.i3.i205, i64 0 %83 = insertelement <2 x double> poison, double %_0.i3.i205, i64 0 %84 = fsub <2 x double> %81, %83 %85 = fadd <2 x double> %80, %82 %86 = shufflevector <2 x double> %84, <2 x double> %85, <2 x i32> %87 = fmul <2 x double> %86, %_0.i.i228 = fadd double %_0.i.i192, %_4.i.i.i.i %_0.i3.i229 = fadd double %_0.i3.i193, %_7.i.i.i.i %88 = fsub <2 x double> %74, %87 %_0.i.i236 = fsub double %_0.i.i192, %_4.i.i.i.i %_0.i3.i237 = fsub double %_0.i3.i193, %_7.i.i.i.i %89 = insertelement <2 x double> poison, double %_0.i.i220, i64 0 %90 = insertelement <2 x double> poison, double %_0.i.i220, i64 0 %91 = insertelement <2 x double> poison, double %_0.i3.i221, i64 0 %92 = insertelement <2 x double> poison, double %_0.i3.i221, i64 0 %93 = fsub <2 x double> %90, %92 %94 = fadd <2 x double> %89, %91 %95 = shufflevector <2 x double> %93, <2 x double> %94, <2 x i32> %96 = fmul <2 x double> %95, %_0.i.i248 = fadd double %_0.i.i208, %_4.i337.i.i.i %_0.i3.i249 = fadd double %_0.i3.i209, %_7.i338.i.i.i %97 = fsub <2 x double> %79, %96 %_0.i.i256 = fsub double %_0.i.i208, %_4.i337.i.i.i %_0.i3.i257 = fsub double %_0.i3.i209, %_7.i338.i.i.i %b.i356.i.i.i = fmul double %_0.i3.i249, 0x3FD87DE2A6AEA964 %98 = tail call double @llvm.fma.f64(double %_0.i.i248, double 0x3FED906BCF328D46, double %b.i356.i.i.i) %b1.i357.i.i.i = fmul double %_0.i.i248, 0xBFD87DE2A6AEA964 %99 = tail call double @llvm.fma.f64(double %_0.i3.i249, double 0x3FED906BCF328D46, double %b1.i357.i.i.i) %100 = fmul <2 x double> %97, %101 = shufflevector <2 x double> %100, <2 x double> poison, <2 x i32> %102 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %97, <2 x double> , <2 x double> %101) %b.i353.i.i.i = fmul double %_0.i3.i257, 0xBFED906BCF328D46 %103 = tail call double @llvm.fma.f64(double %_0.i.i256, double 0x3FD87DE2A6AEA964, double %b.i353.i.i.i) %b1.i354.i.i.i = fmul double %_0.i.i256, 0x3FED906BCF328D46 %104 = tail call double @llvm.fma.f64(double %_0.i3.i257, double 0x3FD87DE2A6AEA964, double %b1.i354.i.i.i) %_0.i.i268 = fadd double %_0.i.i228, %98 %_0.i3.i269 = fadd double %_0.i3.i229, %99 %105 = fadd <2 x double> %88, %102 %_0.i.i276 = fsub double %_0.i.i236, %103 %_0.i3.i277 = fsub double %_0.i3.i237, %104 %_0.i.i284 = fsub double %_0.i.i228, %98 %_0.i3.i285 = fsub double %_0.i3.i229, %99 %_0.i.i292 = fadd double %_0.i.i236, %103 %_0.i3.i293 = fadd double %_0.i3.i237, %104 store double %_0.i.i268, ptr %3, align 8, !noalias !5254 store double %_0.i3.i269, ptr %15, align 8, !noalias !5254 store <2 x double> %105, ptr %4, align 8, !noalias !5254 %106 = fsub <2 x double> %53, %54 %107 = fsub <2 x double> %55, %58 %108 = shufflevector <2 x double> %107, <2 x double> poison, <2 x i32> %109 = fadd <2 x double> %106, %108 %110 = fsub <2 x double> %106, %108 %111 = shufflevector <2 x double> %109, <2 x double> %110, <2 x i32> store <2 x double> %111, ptr %1, align 8, !noalias !5254 store double %_0.i.i276, ptr %6, align 8, !noalias !5254 store double %_0.i3.i277, ptr %17, align 8, !noalias !5254 %112 = fsub <2 x double> %37, %38 %113 = fsub <2 x double> %39, %42 %114 = shufflevector <2 x double> %113, <2 x double> poison, <2 x i32> %115 = fadd <2 x double> %112, %114 %_0.i.i230 = extractelement <2 x double> %115, i64 0 %116 = fsub <2 x double> %112, %114 %_0.i3.i231 = extractelement <2 x double> %116, i64 1 %117 = fsub <2 x double> %112, %114 %118 = fadd <2 x double> %112, %114 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = insertelement <2 x double> poison, double %_0.i.i258, i64 0 %121 = insertelement <2 x double> poison, double %_0.i.i258, i64 0 %122 = insertelement <2 x double> poison, double %_0.i3.i259, i64 0 %123 = insertelement <2 x double> poison, double %_0.i3.i259, i64 0 %124 = fsub <2 x double> %121, %123 %125 = fadd <2 x double> %120, %122 %126 = shufflevector <2 x double> %124, <2 x double> %125, <2 x i32> %127 = fmul <2 x double> %126, %_0.i.i270 = fadd double %_0.i.i230, %_4.i341.i.i.i %_0.i3.i271 = fadd double %_0.i3.i231, %_7.i342.i.i.i %128 = fsub <2 x double> %119, %127 %_0.i.i286 = fsub double %_0.i.i230, %_4.i341.i.i.i %_0.i3.i287 = fsub double %_0.i3.i231, %_7.i342.i.i.i store double %_0.i.i270, ptr %2, align 8, !noalias !5254 store double %_0.i3.i271, ptr %16, align 8, !noalias !5254 store <2 x double> %128, ptr %5, align 8, !noalias !5254 %129 = fadd <2 x double> %74, %87 %130 = fadd <2 x double> %79, %96 %131 = fmul <2 x double> %130, %132 = shufflevector <2 x double> %131, <2 x double> poison, <2 x i32> %133 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %130, <2 x double> , <2 x double> %132) %134 = fsub <2 x double> %129, %133 store <2 x double> %134, ptr %7, align 8, !noalias !5254 %135 = fsub <2 x double> %61, %62 store <2 x double> %135, ptr %0, align 8, !noalias !5254 store double %_0.i.i284, ptr %10, align 8, !noalias !5254 store double %_0.i3.i285, ptr %18, align 8, !noalias !5254 store double %_0.i.i286, ptr %9, align 8, !noalias !5254 store double %_0.i3.i287, ptr %19, align 8, !noalias !5254 %136 = fsub <2 x double> %88, %102 store <2 x double> %136, ptr %11, align 8, !noalias !5254 %137 = shufflevector <2 x double> %110, <2 x double> %109, <2 x i32> store <2 x double> %137, ptr %8, align 8, !noalias !5254 store double %_0.i.i292, ptr %13, align 8, !noalias !5254 store double %_0.i3.i293, ptr %20, align 8, !noalias !5254 %138 = fadd <2 x double> %119, %127 store <2 x double> %138, ptr %12, align 8, !noalias !5254 %139 = fadd <2 x double> %129, %133 store <2 x double> %139, ptr %14, align 8, !noalias !5254 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5254 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd1fe2728027240b7E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5257 store i64 16, ptr %n.i.i, align 8, !noalias !5257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5257 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5257 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5257 store ptr null, ptr %_16.i.i, align 8, !noalias !5257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5257 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5257 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5257 store ptr null, ptr %_24.i.i, align 8, !noalias !5257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5257 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5257 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5257 store ptr null, ptr %_32.i.i, align 8, !noalias !5257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5257 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5257 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5257 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h6d5810ef1ea96493E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5257 store ptr null, ptr %_40.i.i, align 8, !noalias !5257 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h6d5810ef1ea96493E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5257 tail call void @llvm.experimental.noalias.scope.decl(metadata !5262) tail call void @llvm.experimental.noalias.scope.decl(metadata !5265) tail call void @llvm.experimental.noalias.scope.decl(metadata !5267) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !5267, !noalias !5269 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !5267, !noalias !5269 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !5267, !noalias !5269 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !5262, !noalias !5270 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !5262, !noalias !5270 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !5262, !noalias !5270 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !5262, !noalias !5270 %8 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %9 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %11 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = fsub <4 x double> %8, %10 %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = fmul <4 x double> %26, %24 %28 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %25, <4 x double> %23, <4 x double> %27) #23 %29 = fadd <4 x double> %9, %15 %30 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> %31 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %32, %30 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %29, <4 x double> %33) #23 %35 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %36 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> store <4 x double> %35, ptr %scratch.0, align 8, !alias.scope !5265, !noalias !5271 %37 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %36, ptr %37, align 8, !alias.scope !5265, !noalias !5271 %38 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %39 = shufflevector <4 x double> %28, <4 x double> %34, <4 x i32> %40 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %38, ptr %40, align 8, !alias.scope !5265, !noalias !5271 %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %39, ptr %41, align 8, !alias.scope !5265, !noalias !5271 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5267, !noalias !5269 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5267, !noalias !5269 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !5267, !noalias !5269 %a.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5262, !noalias !5270 %b.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5262, !noalias !5270 %c.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5262, !noalias !5270 %d.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5262, !noalias !5270 %42 = fadd <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %43 = fsub <4 x double> %a.sroa.0.0.copyload.i.1.i, %c.sroa.0.0.copyload.i.1.i %44 = fadd <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %45 = fsub <4 x double> %b.sroa.0.0.copyload.i.1.i, %d.sroa.0.0.copyload.i.1.i %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %42, %44 %51 = fsub <4 x double> %43, %49 %52 = shufflevector <4 x double> %51, <4 x double> poison, <4 x i32> %53 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %54 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %54, %52 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %53, <4 x double> %51, <4 x double> %55) #23 %57 = fsub <4 x double> %42, %44 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fadd <4 x double> %43, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %70 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> store <4 x double> %69, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5265, !noalias !5271 %71 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %70, ptr %71, align 8, !alias.scope !5265, !noalias !5271 %72 = shufflevector <4 x double> %50, <4 x double> %56, <4 x i32> %73 = shufflevector <4 x double> %62, <4 x double> %68, <4 x i32> %74 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 2 store <4 x double> %72, ptr %74, align 8, !alias.scope !5265, !noalias !5271 %75 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 3 store <4 x double> %73, ptr %75, align 8, !alias.scope !5265, !noalias !5271 %76 = fadd <4 x double> %35, %69 %77 = fsub <4 x double> %35, %69 %78 = fadd <4 x double> %38, %72 %79 = fsub <4 x double> %38, %72 %80 = bitcast <4 x double> %79 to <4 x i64> %81 = xor <4 x i64> %80, %82 = bitcast <4 x i64> %81 to <4 x double> %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = fadd <4 x double> %76, %78 %85 = fsub <4 x double> %77, %83 %86 = fsub <4 x double> %76, %78 %87 = fadd <4 x double> %77, %83 store <4 x double> %84, ptr %buf.0, align 8, !noalias !5257 store <4 x double> %85, ptr %3, align 8, !noalias !5257 store <4 x double> %86, ptr %2, align 8, !noalias !5257 store <4 x double> %87, ptr %4, align 8, !noalias !5257 %88 = fadd <4 x double> %36, %70 %89 = fsub <4 x double> %36, %70 %90 = fadd <4 x double> %39, %73 %91 = fsub <4 x double> %39, %73 %92 = bitcast <4 x double> %91 to <4 x i64> %93 = xor <4 x i64> %92, %94 = bitcast <4 x i64> %93 to <4 x double> %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fadd <4 x double> %88, %90 %97 = fsub <4 x double> %89, %95 %98 = fsub <4 x double> %88, %90 %99 = fadd <4 x double> %89, %95 store <4 x double> %96, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5257 store <4 x double> %97, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5257 store <4 x double> %98, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5257 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5257 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5257 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd32ba6122274b6cfE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5272 store i64 128, ptr %n.i, align 8, !noalias !5272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5272 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5272 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5272 store ptr null, ptr %_16.i, align 8, !noalias !5272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5272 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5272 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5272 store ptr null, ptr %_24.i, align 8, !noalias !5272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5272 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5272 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5272 store ptr null, ptr %_32.i, align 8, !noalias !5272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5272 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5272 store i64 %w.1, ptr %_34.i, align 8, !noalias !5272 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %bb9.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5272 store ptr null, ptr %_40.i, align 8, !noalias !5272 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5272 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !5272 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !5272 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !5272 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !5272 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !5272 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !5272 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !5272 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !5272 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 64 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !5275 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %18 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 br label %bb32.i.i.i.i bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block6 %_2.i.i.i204 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ false, %middle.block6 ] %iter.i.i.i.i.sroa.104.0120 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ 1, %middle.block6 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0120, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0120, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %21 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %22 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %23 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %24 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %25 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %26 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %27 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %28, align 8, !noalias !5272, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %29, align 8, !noalias !5272, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %30, align 8, !noalias !5272, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %31, align 8, !noalias !5272, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %32, align 8, !noalias !5272, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %33, align 8, !noalias !5272, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %34, align 8, !noalias !5272, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %35, align 8, !noalias !5272, !noundef !3 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %36, align 8, !noalias !5272, !noundef !3 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %37, align 8, !noalias !5272, !noundef !3 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %38, align 8, !noalias !5272, !noundef !3 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %39, align 8, !noalias !5272, !noundef !3 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %40, align 8, !noalias !5272, !noundef !3 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %41, align 8, !noalias !5272, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert43 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat44 = shufflevector <4 x double> %broadcast.splatinsert43, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert45 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat46 = shufflevector <4 x double> %broadcast.splatinsert45, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert47 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat48 = shufflevector <4 x double> %broadcast.splatinsert47, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert52 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat53 = shufflevector <4 x double> %broadcast.splatinsert52, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert54 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat55 = shufflevector <4 x double> %broadcast.splatinsert54, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert56 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat57 = shufflevector <4 x double> %broadcast.splatinsert56, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert65 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert72 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat73 = shufflevector <4 x double> %broadcast.splatinsert72, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert74 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb32.i.i.i.i %index11 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next84, %vector.body10 ] %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index11 %43 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index11 %44 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index11 %45 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index11 %46 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index11 %47 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index11 %48 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index11 %49 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index11 %wide.vec12 = load <8 x double>, ptr %42, align 8, !noalias !5272 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %43, align 8, !noalias !5272 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %50 = fmul <4 x double> %strided.vec17, %broadcast.splat %51 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %50) %52 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %53 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %52) %wide.vec22 = load <8 x double>, ptr %44, align 8, !noalias !5272 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %54 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %54) %56 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %57 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %56) %wide.vec31 = load <8 x double>, ptr %45, align 8, !noalias !5272 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %58 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %59 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %58) %60 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %60) %wide.vec40 = load <8 x double>, ptr %46, align 8, !noalias !5272 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec42, %broadcast.splat44 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec41, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat48, %strided.vec41 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec42, <4 x double> %64) %wide.vec49 = load <8 x double>, ptr %47, align 8, !noalias !5272 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec51, %broadcast.splat53 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec50, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat57, %strided.vec50 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec51, <4 x double> %68) %wide.vec58 = load <8 x double>, ptr %48, align 8, !noalias !5272 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec60, %broadcast.splat62 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec59, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat66, %strided.vec59 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec60, <4 x double> %72) %wide.vec67 = load <8 x double>, ptr %49, align 8, !noalias !5272 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %74 = fmul <4 x double> %strided.vec69, %broadcast.splat71 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec68, <4 x double> %74) %76 = fmul <4 x double> %broadcast.splat75, %strided.vec68 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec69, <4 x double> %76) %78 = fadd <4 x double> %strided.vec13, %63 %79 = fadd <4 x double> %strided.vec14, %65 %80 = fsub <4 x double> %strided.vec13, %63 %81 = fsub <4 x double> %strided.vec14, %65 %82 = fadd <4 x double> %55, %71 %83 = fadd <4 x double> %57, %73 %84 = fsub <4 x double> %55, %71 %85 = fsub <4 x double> %57, %73 %86 = fadd <4 x double> %51, %67 %87 = fadd <4 x double> %53, %69 %88 = fsub <4 x double> %51, %67 %89 = fsub <4 x double> %53, %69 %90 = fadd <4 x double> %59, %75 %91 = fadd <4 x double> %61, %77 %92 = fsub <4 x double> %59, %75 %93 = fsub <4 x double> %61, %77 %94 = fadd <4 x double> %78, %82 %95 = fadd <4 x double> %79, %83 %96 = fadd <4 x double> %86, %90 %97 = fadd <4 x double> %87, %91 %98 = fadd <4 x double> %94, %96 %99 = fadd <4 x double> %95, %97 %100 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec76 = shufflevector <4 x double> %98, <4 x double> %99, <8 x i32> store <8 x double> %interleaved.vec76, ptr %100, align 8, !noalias !5272 %101 = fsub <4 x double> %94, %96 %102 = fsub <4 x double> %95, %97 %103 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec77 = shufflevector <4 x double> %101, <4 x double> %102, <8 x i32> store <8 x double> %interleaved.vec77, ptr %103, align 8, !noalias !5272 %104 = fsub <4 x double> %80, %85 %105 = fadd <4 x double> %81, %84 %106 = fsub <4 x double> %88, %93 %107 = fadd <4 x double> %89, %92 %108 = fsub <4 x double> %106, %107 %109 = fadd <4 x double> %106, %107 %110 = fmul <4 x double> %108, %111 = fmul <4 x double> %109, %112 = fadd <4 x double> %104, %110 %113 = fadd <4 x double> %105, %111 %114 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec78 = shufflevector <4 x double> %112, <4 x double> %113, <8 x i32> store <8 x double> %interleaved.vec78, ptr %114, align 8, !noalias !5272 %115 = fsub <4 x double> %104, %110 %116 = fsub <4 x double> %105, %111 %117 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec79 = shufflevector <4 x double> %115, <4 x double> %116, <8 x i32> store <8 x double> %interleaved.vec79, ptr %117, align 8, !noalias !5272 %118 = fsub <4 x double> %78, %82 %119 = fsub <4 x double> %79, %83 %120 = fsub <4 x double> %86, %90 %121 = fsub <4 x double> %87, %91 %122 = fsub <4 x double> %118, %121 %123 = fadd <4 x double> %119, %120 %124 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec80 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec80, ptr %124, align 8, !noalias !5272 %125 = fadd <4 x double> %118, %121 %126 = fsub <4 x double> %119, %120 %127 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec81 = shufflevector <4 x double> %125, <4 x double> %126, <8 x i32> store <8 x double> %interleaved.vec81, ptr %127, align 8, !noalias !5272 %128 = fadd <4 x double> %80, %85 %129 = fsub <4 x double> %81, %84 %130 = fadd <4 x double> %88, %93 %131 = fsub <4 x double> %89, %92 %132 = fadd <4 x double> %130, %131 %133 = fsub <4 x double> %131, %130 %134 = fmul <4 x double> %132, %135 = fmul <4 x double> %133, %136 = fsub <4 x double> %128, %134 %137 = fsub <4 x double> %129, %135 %138 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec82 = shufflevector <4 x double> %136, <4 x double> %137, <8 x i32> store <8 x double> %interleaved.vec82, ptr %138, align 8, !noalias !5272 %139 = fadd <4 x double> %128, %134 %140 = fadd <4 x double> %129, %135 %141 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec83 = shufflevector <4 x double> %139, <4 x double> %140, <8 x i32> store <8 x double> %interleaved.vec83, ptr %141, align 8, !noalias !5272 %index.next84 = add nuw i64 %index11, 4 %142 = icmp eq i64 %index.next84, 8 br i1 %142, label %middle.block6, label %vector.body10, !llvm.loop !5276 middle.block6: ; preds = %vector.body10 br i1 %_2.i.i.i204, label %bb32.i.i.i.i, label %bb32.i.i.i.preheader bb32.i.i.i.preheader: ; preds = %middle.block6 %143 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %144 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %145 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %146 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %147 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %148 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 br label %vector.body89 vector.body89: ; preds = %vector.body89, %bb32.i.i.i.preheader %index90 = phi i64 [ 0, %bb32.i.i.i.preheader ], [ %index.next128, %vector.body89 ] %vec.ind = phi <4 x i64> [ , %bb32.i.i.i.preheader ], [ %vec.ind.next, %vector.body89 ] %149 = shl <4 x i64> %vec.ind, %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %149 %151 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %152 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %153 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %153, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %154 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %155 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %158 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather97 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %159 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather98 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 4 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 2 %167 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 1 %168 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 3 %169 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 6 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 5 %171 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 7 %172 = fneg <4 x double> %wide.masked.gather91 %173 = fneg <4 x double> %wide.masked.gather93 %174 = fneg <4 x double> %wide.masked.gather95 %175 = fneg <4 x double> %wide.masked.gather97 %176 = fneg <4 x double> %wide.masked.gather99 %177 = fneg <4 x double> %wide.masked.gather101 %178 = fneg <4 x double> %wide.masked.gather103 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %150, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %179 = getelementptr inbounds i8, <4 x ptr> %150, i64 8 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %179, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %180 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 1, i32 1 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %180, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %181 = fmul <4 x double> %wide.masked.gather107, %172 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather106, <4 x double> %181) %183 = fmul <4 x double> %wide.masked.gather91, %wide.masked.gather106 %184 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather107, <4 x double> %183) %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %185 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 2, i32 1 %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %185, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %186 = fmul <4 x double> %wide.masked.gather109, %173 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather92, <4 x double> %wide.masked.gather108, <4 x double> %186) %188 = fmul <4 x double> %wide.masked.gather93, %wide.masked.gather108 %189 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather92, <4 x double> %wide.masked.gather109, <4 x double> %188) %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %190 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 3, i32 1 %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %190, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %191 = fmul <4 x double> %wide.masked.gather111, %174 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather94, <4 x double> %wide.masked.gather110, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather95, %wide.masked.gather110 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather94, <4 x double> %wide.masked.gather111, <4 x double> %193) %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %195 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 4, i32 1 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %195, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %196 = fmul <4 x double> %wide.masked.gather113, %175 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather96, <4 x double> %wide.masked.gather112, <4 x double> %196) %198 = fmul <4 x double> %wide.masked.gather97, %wide.masked.gather112 %199 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather96, <4 x double> %wide.masked.gather113, <4 x double> %198) %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 5, i32 1 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %201 = fmul <4 x double> %wide.masked.gather115, %176 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather98, <4 x double> %wide.masked.gather114, <4 x double> %201) %203 = fmul <4 x double> %wide.masked.gather99, %wide.masked.gather114 %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather98, <4 x double> %wide.masked.gather115, <4 x double> %203) %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %169, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %205 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 6, i32 1 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %205, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %206 = fmul <4 x double> %wide.masked.gather117, %177 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather116, <4 x double> %206) %208 = fmul <4 x double> %wide.masked.gather101, %wide.masked.gather116 %209 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather117, <4 x double> %208) %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %210 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 7, i32 1 %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %210, i32 8, <4 x i1> , <4 x double> poison), !noalias !5272 %211 = fmul <4 x double> %wide.masked.gather119, %178 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather118, <4 x double> %211) %213 = fmul <4 x double> %wide.masked.gather103, %wide.masked.gather118 %214 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather119, <4 x double> %213) %215 = fadd <4 x double> %wide.masked.gather104, %197 %216 = fadd <4 x double> %wide.masked.gather105, %199 %217 = fsub <4 x double> %wide.masked.gather104, %197 %218 = fsub <4 x double> %wide.masked.gather105, %199 %219 = fadd <4 x double> %187, %207 %220 = fadd <4 x double> %189, %209 %221 = fsub <4 x double> %187, %207 %222 = fsub <4 x double> %189, %209 %223 = fadd <4 x double> %182, %202 %224 = fadd <4 x double> %184, %204 %225 = fsub <4 x double> %182, %202 %226 = fsub <4 x double> %184, %204 %227 = fadd <4 x double> %192, %212 %228 = fadd <4 x double> %194, %214 %229 = fsub <4 x double> %192, %212 %230 = fsub <4 x double> %194, %214 %231 = fadd <4 x double> %215, %219 %232 = fadd <4 x double> %216, %220 %233 = fadd <4 x double> %223, %227 %234 = fadd <4 x double> %224, %228 %235 = fadd <4 x double> %231, %233 %236 = fadd <4 x double> %232, %234 %237 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index90 %interleaved.vec120 = shufflevector <4 x double> %235, <4 x double> %236, <8 x i32> store <8 x double> %interleaved.vec120, ptr %237, align 8, !noalias !5272 %238 = fsub <4 x double> %231, %233 %239 = fsub <4 x double> %232, %234 %240 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index90 %interleaved.vec121 = shufflevector <4 x double> %238, <4 x double> %239, <8 x i32> store <8 x double> %interleaved.vec121, ptr %240, align 8, !noalias !5272 %241 = fsub <4 x double> %217, %222 %242 = fadd <4 x double> %218, %221 %243 = fsub <4 x double> %225, %230 %244 = fadd <4 x double> %226, %229 %245 = fsub <4 x double> %243, %244 %246 = fadd <4 x double> %243, %244 %247 = fmul <4 x double> %245, %248 = fmul <4 x double> %246, %249 = fadd <4 x double> %241, %247 %250 = fadd <4 x double> %242, %248 %251 = getelementptr inbounds %"num_complex::Complex", ptr %144, i64 %index90 %interleaved.vec122 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec122, ptr %251, align 8, !noalias !5272 %252 = fsub <4 x double> %241, %247 %253 = fsub <4 x double> %242, %248 %254 = getelementptr inbounds %"num_complex::Complex", ptr %147, i64 %index90 %interleaved.vec123 = shufflevector <4 x double> %252, <4 x double> %253, <8 x i32> store <8 x double> %interleaved.vec123, ptr %254, align 8, !noalias !5272 %255 = fsub <4 x double> %215, %219 %256 = fsub <4 x double> %216, %220 %257 = fsub <4 x double> %223, %227 %258 = fsub <4 x double> %224, %228 %259 = fsub <4 x double> %255, %258 %260 = fadd <4 x double> %256, %257 %261 = getelementptr inbounds %"num_complex::Complex", ptr %143, i64 %index90 %interleaved.vec124 = shufflevector <4 x double> %259, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec124, ptr %261, align 8, !noalias !5272 %262 = fadd <4 x double> %255, %258 %263 = fsub <4 x double> %256, %257 %264 = getelementptr inbounds %"num_complex::Complex", ptr %146, i64 %index90 %interleaved.vec125 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> store <8 x double> %interleaved.vec125, ptr %264, align 8, !noalias !5272 %265 = fadd <4 x double> %217, %222 %266 = fsub <4 x double> %218, %221 %267 = fadd <4 x double> %225, %230 %268 = fsub <4 x double> %226, %229 %269 = fadd <4 x double> %267, %268 %270 = fsub <4 x double> %268, %267 %271 = fmul <4 x double> %269, %272 = fmul <4 x double> %270, %273 = fsub <4 x double> %265, %271 %274 = fsub <4 x double> %266, %272 %275 = getelementptr inbounds %"num_complex::Complex", ptr %145, i64 %index90 %interleaved.vec126 = shufflevector <4 x double> %273, <4 x double> %274, <8 x i32> store <8 x double> %interleaved.vec126, ptr %275, align 8, !noalias !5272 %276 = fadd <4 x double> %265, %271 %277 = fadd <4 x double> %266, %272 %278 = getelementptr inbounds %"num_complex::Complex", ptr %148, i64 %index90 %interleaved.vec127 = shufflevector <4 x double> %276, <4 x double> %277, <8 x i32> store <8 x double> %interleaved.vec127, ptr %278, align 8, !noalias !5272 %index.next128 = add nuw i64 %index90, 4 %vec.ind.next = add <4 x i64> %vec.ind, %279 = icmp eq i64 %index.next128, 16 br i1 %279, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3625d83b0ef46d0E.exit", label %vector.body89, !llvm.loop !5277 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3625d83b0ef46d0E.exit": ; preds = %vector.body89 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5272 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd4a737322983f846E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5278 store i64 8, ptr %n.i, align 8, !noalias !5278 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5278 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5278 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5278 store ptr null, ptr %_16.i, align 8, !noalias !5278 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5278 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5278 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5278 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5278 store ptr null, ptr %_24.i, align 8, !noalias !5278 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5278 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5278 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5278 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5278 store ptr null, ptr %_32.i, align 8, !noalias !5278 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5278 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5278 store i64 %w.1, ptr %_34.i, align 8, !noalias !5278 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5278 store ptr null, ptr %_40.i, align 8, !noalias !5278 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5278 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %3, align 8, !noalias !5278, !noundef !3 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %4, align 8, !noalias !5278, !noundef !3 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i = load double, ptr %5, align 8, !noalias !5278, !noundef !3 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %6, align 8, !noalias !5278, !noundef !3 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i = load double, ptr %7, align 8, !noalias !5278, !noundef !3 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %8, align 8, !noalias !5278, !noundef !3 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %12 = load <2 x double>, ptr %buf.0, align 8, !noalias !5278 %13 = load <2 x double>, ptr %1, align 8, !noalias !5278 %14 = load <2 x double>, ptr %0, align 8, !noalias !5278 %15 = load <2 x double>, ptr %2, align 8, !noalias !5278 %16 = fadd <2 x double> %12, %14 %17 = fadd <2 x double> %13, %15 %18 = fadd <2 x double> %16, %17 store <2 x double> %18, ptr %scratch.0, align 8, !noalias !5278 %19 = fsub <2 x double> %12, %14 %20 = fsub <2 x double> %13, %15 %21 = shufflevector <2 x double> %20, <2 x double> poison, <2 x i32> %22 = fsub <2 x double> %19, %21 %23 = fadd <2 x double> %19, %21 %24 = shufflevector <2 x double> %22, <2 x double> %23, <2 x i32> %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %10, align 8, !noalias !5278 %32 = fsub <2 x double> %16, %17 %33 = shufflevector <2 x double> %32, <2 x double> poison, <2 x i32> %34 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %35 = insertelement <2 x double> %34, double %w2.1.i.i.i, i64 1 %36 = fmul <2 x double> %33, %35 %37 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %38 = shufflevector <2 x double> %37, <2 x double> poison, <2 x i32> zeroinitializer %39 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %38, <2 x double> %32, <2 x double> %36) store <2 x double> %39, ptr %9, align 8, !noalias !5278 %40 = shufflevector <2 x double> %23, <2 x double> %22, <2 x i32> %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> %42 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %43 = insertelement <2 x double> %42, double %w3.1.i.i.i, i64 1 %44 = fmul <2 x double> %41, %43 %45 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %46 = shufflevector <2 x double> %45, <2 x double> poison, <2 x i32> zeroinitializer %47 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %46, <2 x double> %40, <2 x double> %44) store <2 x double> %47, ptr %11, align 8, !noalias !5278 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.i.1 = load double, ptr %48, align 8, !noalias !5278, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %49, align 8, !noalias !5278, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2 %w2.0.i.i.i.1 = load double, ptr %50, align 8, !noalias !5278, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %51, align 8, !noalias !5278, !noundef !3 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3 %w3.0.i.i.i.1 = load double, ptr %52, align 8, !noalias !5278, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %53, align 8, !noalias !5278, !noundef !3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %56 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %57 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5278 %58 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5278 %59 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5278 %60 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5278 %61 = fadd <2 x double> %57, %59 %62 = fadd <2 x double> %58, %60 %63 = fadd <2 x double> %61, %62 store <2 x double> %63, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5278 %64 = fsub <2 x double> %57, %59 %65 = fsub <2 x double> %58, %60 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> %67 = fsub <2 x double> %64, %66 %68 = fadd <2 x double> %64, %66 %69 = shufflevector <2 x double> %67, <2 x double> %68, <2 x i32> %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> %71 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %72 = insertelement <2 x double> %71, double %w1.1.i.i.i.1, i64 1 %73 = fmul <2 x double> %70, %72 %74 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> zeroinitializer %76 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %75, <2 x double> %69, <2 x double> %73) store <2 x double> %76, ptr %55, align 8, !noalias !5278 %77 = fsub <2 x double> %61, %62 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %80 = insertelement <2 x double> %79, double %w2.1.i.i.i.1, i64 1 %81 = fmul <2 x double> %78, %80 %82 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> zeroinitializer %84 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %83, <2 x double> %77, <2 x double> %81) store <2 x double> %84, ptr %54, align 8, !noalias !5278 %85 = shufflevector <2 x double> %68, <2 x double> %67, <2 x i32> %86 = shufflevector <2 x double> %85, <2 x double> poison, <2 x i32> %87 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %88 = insertelement <2 x double> %87, double %w3.1.i.i.i.1, i64 1 %89 = fmul <2 x double> %86, %88 %90 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> zeroinitializer %92 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %91, <2 x double> %85, <2 x double> %89) store <2 x double> %92, ptr %56, align 8, !noalias !5278 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !5278 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5278 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %93 = fadd <4 x double> %strided.vec, %strided.vec3 %94 = fadd <4 x double> %strided.vec1, %strided.vec4 %95 = fsub <4 x double> %strided.vec, %strided.vec3 %96 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %93, <4 x double> %94, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !5278 %97 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec5 = shufflevector <4 x double> %95, <4 x double> %96, <8 x i32> store <8 x double> %interleaved.vec5, ptr %97, align 8, !noalias !5278 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5278 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd55ced5b5a8391a2E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5281 store i64 1024, ptr %n.i, align 8, !noalias !5281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5281 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5281 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5281 store ptr null, ptr %_16.i, align 8, !noalias !5281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5281 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5281 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5281 store ptr null, ptr %_24.i, align 8, !noalias !5281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5281 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5281 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5281 store ptr null, ptr %_32.i, align 8, !noalias !5281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5281 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5281 store i64 %w.1, ptr %_34.i, align 8, !noalias !5281 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %bb18.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5281 store ptr null, ptr %_40.i, align 8, !noalias !5281 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5281 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 br label %vector.body vector.body: ; preds = %vector.body, %bb18.i.i.i.i.preheader %index = phi i64 [ 0, %bb18.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %3 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %wide.vec = load <8 x double>, ptr %2, align 8, !noalias !5284 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %3, align 8, !noalias !5284 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %4 = fadd <4 x double> %strided.vec, %strided.vec3 %5 = fadd <4 x double> %strided.vec1, %strided.vec4 %6 = fsub <4 x double> %strided.vec, %strided.vec3 %7 = fsub <4 x double> %strided.vec1, %strided.vec4 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %4, <4 x double> %5, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !5284 %9 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec5 = shufflevector <4 x double> %6, <4 x double> %7, <8 x i32> store <8 x double> %interleaved.vec5, ptr %9, align 8, !noalias !5284 %index.next = or disjoint i64 %index, 4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %11 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %10, align 8, !noalias !5284 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %11, align 8, !noalias !5284 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %12 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %13 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %14 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %15 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index.next %interleaved.vec.1 = shufflevector <4 x double> %12, <4 x double> %13, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %16, align 8, !noalias !5284 %17 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %interleaved.vec5.1 = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %17, align 8, !noalias !5284 %index.next.1 = add nuw nsw i64 %index, 8 %18 = icmp eq i64 %index.next.1, 512 br i1 %18, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !5287 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %19 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %20 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %21 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 br label %bb32.i.i.i.i bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block6 %_2.i.i.i623 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ false, %middle.block6 ] %iter.i.i.i.i.sroa.104.0178 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ 1, %middle.block6 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0178, 9 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %25 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 256 %26 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %27 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %28 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %29 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 384 %30 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 320 %31 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 448 %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %32, align 8, !noalias !5281, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %33, align 8, !noalias !5281, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %34, align 8, !noalias !5281, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %35, align 8, !noalias !5281, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %36, align 8, !noalias !5281, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %37, align 8, !noalias !5281, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %38, align 8, !noalias !5281, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %39, align 8, !noalias !5281, !noundef !3 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %40, align 8, !noalias !5281, !noundef !3 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %41, align 8, !noalias !5281, !noundef !3 %42 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %42, align 8, !noalias !5281, !noundef !3 %43 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %43, align 8, !noalias !5281, !noundef !3 %44 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %44, align 8, !noalias !5281, !noundef !3 %45 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %45, align 8, !noalias !5281, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert43 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat44 = shufflevector <4 x double> %broadcast.splatinsert43, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert45 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat46 = shufflevector <4 x double> %broadcast.splatinsert45, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert47 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat48 = shufflevector <4 x double> %broadcast.splatinsert47, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert52 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat53 = shufflevector <4 x double> %broadcast.splatinsert52, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert54 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat55 = shufflevector <4 x double> %broadcast.splatinsert54, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert56 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat57 = shufflevector <4 x double> %broadcast.splatinsert56, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert65 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert72 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat73 = shufflevector <4 x double> %broadcast.splatinsert72, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert74 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb32.i.i.i.i %index11 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next84, %vector.body10 ] %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index11 %47 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index11 %48 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index11 %49 = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %index11 %50 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index11 %51 = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %index11 %52 = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %index11 %53 = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %index11 %wide.vec12 = load <8 x double>, ptr %46, align 8, !noalias !5281 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %47, align 8, !noalias !5281 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %54 = fmul <4 x double> %strided.vec17, %broadcast.splat %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %54) %56 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %57 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %56) %wide.vec22 = load <8 x double>, ptr %48, align 8, !noalias !5281 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %58 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %59 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %58) %60 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %60) %wide.vec31 = load <8 x double>, ptr %49, align 8, !noalias !5281 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %64) %wide.vec40 = load <8 x double>, ptr %50, align 8, !noalias !5281 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec42, %broadcast.splat44 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec41, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat48, %strided.vec41 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec42, <4 x double> %68) %wide.vec49 = load <8 x double>, ptr %51, align 8, !noalias !5281 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec51, %broadcast.splat53 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec50, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat57, %strided.vec50 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec51, <4 x double> %72) %wide.vec58 = load <8 x double>, ptr %52, align 8, !noalias !5281 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %74 = fmul <4 x double> %strided.vec60, %broadcast.splat62 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec59, <4 x double> %74) %76 = fmul <4 x double> %broadcast.splat66, %strided.vec59 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec60, <4 x double> %76) %wide.vec67 = load <8 x double>, ptr %53, align 8, !noalias !5281 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %78 = fmul <4 x double> %strided.vec69, %broadcast.splat71 %79 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec68, <4 x double> %78) %80 = fmul <4 x double> %broadcast.splat75, %strided.vec68 %81 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec69, <4 x double> %80) %82 = fadd <4 x double> %strided.vec13, %67 %83 = fadd <4 x double> %strided.vec14, %69 %84 = fsub <4 x double> %strided.vec13, %67 %85 = fsub <4 x double> %strided.vec14, %69 %86 = fadd <4 x double> %59, %75 %87 = fadd <4 x double> %61, %77 %88 = fsub <4 x double> %59, %75 %89 = fsub <4 x double> %61, %77 %90 = fadd <4 x double> %55, %71 %91 = fadd <4 x double> %57, %73 %92 = fsub <4 x double> %55, %71 %93 = fsub <4 x double> %57, %73 %94 = fadd <4 x double> %63, %79 %95 = fadd <4 x double> %65, %81 %96 = fsub <4 x double> %63, %79 %97 = fsub <4 x double> %65, %81 %98 = fadd <4 x double> %82, %86 %99 = fadd <4 x double> %83, %87 %100 = fadd <4 x double> %90, %94 %101 = fadd <4 x double> %91, %95 %102 = fadd <4 x double> %98, %100 %103 = fadd <4 x double> %99, %101 %104 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec76 = shufflevector <4 x double> %102, <4 x double> %103, <8 x i32> store <8 x double> %interleaved.vec76, ptr %104, align 8, !noalias !5281 %105 = fsub <4 x double> %98, %100 %106 = fsub <4 x double> %99, %101 %107 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec77 = shufflevector <4 x double> %105, <4 x double> %106, <8 x i32> store <8 x double> %interleaved.vec77, ptr %107, align 8, !noalias !5281 %108 = fsub <4 x double> %84, %89 %109 = fadd <4 x double> %85, %88 %110 = fsub <4 x double> %92, %97 %111 = fadd <4 x double> %93, %96 %112 = fsub <4 x double> %110, %111 %113 = fadd <4 x double> %110, %111 %114 = fmul <4 x double> %112, %115 = fmul <4 x double> %113, %116 = fadd <4 x double> %108, %114 %117 = fadd <4 x double> %109, %115 %118 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec78 = shufflevector <4 x double> %116, <4 x double> %117, <8 x i32> store <8 x double> %interleaved.vec78, ptr %118, align 8, !noalias !5281 %119 = fsub <4 x double> %108, %114 %120 = fsub <4 x double> %109, %115 %121 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec79 = shufflevector <4 x double> %119, <4 x double> %120, <8 x i32> store <8 x double> %interleaved.vec79, ptr %121, align 8, !noalias !5281 %122 = fsub <4 x double> %82, %86 %123 = fsub <4 x double> %83, %87 %124 = fsub <4 x double> %90, %94 %125 = fsub <4 x double> %91, %95 %126 = fsub <4 x double> %122, %125 %127 = fadd <4 x double> %123, %124 %128 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec80 = shufflevector <4 x double> %126, <4 x double> %127, <8 x i32> store <8 x double> %interleaved.vec80, ptr %128, align 8, !noalias !5281 %129 = fadd <4 x double> %122, %125 %130 = fsub <4 x double> %123, %124 %131 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec81 = shufflevector <4 x double> %129, <4 x double> %130, <8 x i32> store <8 x double> %interleaved.vec81, ptr %131, align 8, !noalias !5281 %132 = fadd <4 x double> %84, %89 %133 = fsub <4 x double> %85, %88 %134 = fadd <4 x double> %92, %97 %135 = fsub <4 x double> %93, %96 %136 = fadd <4 x double> %134, %135 %137 = fsub <4 x double> %135, %134 %138 = fmul <4 x double> %136, %139 = fmul <4 x double> %137, %140 = fsub <4 x double> %132, %138 %141 = fsub <4 x double> %133, %139 %142 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec82 = shufflevector <4 x double> %140, <4 x double> %141, <8 x i32> store <8 x double> %interleaved.vec82, ptr %142, align 8, !noalias !5281 %143 = fadd <4 x double> %132, %138 %144 = fadd <4 x double> %133, %139 %145 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec83 = shufflevector <4 x double> %143, <4 x double> %144, <8 x i32> store <8 x double> %interleaved.vec83, ptr %145, align 8, !noalias !5281 %index.next84 = add nuw i64 %index11, 4 %146 = icmp eq i64 %index.next84, 64 br i1 %146, label %middle.block6, label %vector.body10, !llvm.loop !5288 middle.block6: ; preds = %vector.body10 br i1 %_2.i.i.i623, label %bb32.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117: ; preds = %middle.block6 %147 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %148 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %152 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 br label %bb32.i.i.i154 vector.body170: ; preds = %middle.block85, %vector.body170 %index171 = phi i64 [ %index.next209, %vector.body170 ], [ 0, %middle.block85 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body170 ], [ , %middle.block85 ] %153 = shl <4 x i64> %vec.ind, %154 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %153 %155 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather172 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather173 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %158 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather174 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %159 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather175 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather176 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather177 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather178 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather179 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather180 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %165 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather181 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %166 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather182 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %167 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %168 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %169 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 4 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 2 %171 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 1 %172 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 3 %173 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 6 %174 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 5 %175 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 7 %176 = fneg <4 x double> %wide.masked.gather172 %177 = fneg <4 x double> %wide.masked.gather174 %178 = fneg <4 x double> %wide.masked.gather176 %179 = fneg <4 x double> %wide.masked.gather178 %180 = fneg <4 x double> %wide.masked.gather180 %181 = fneg <4 x double> %wide.masked.gather182 %182 = fneg <4 x double> %wide.masked.gather184 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %183 = getelementptr inbounds i8, <4 x ptr> %154, i64 8 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %184 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 1, i32 1 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %184, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %185 = fmul <4 x double> %wide.masked.gather188, %176 %186 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather187, <4 x double> %185) %187 = fmul <4 x double> %wide.masked.gather172, %wide.masked.gather187 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather188, <4 x double> %187) %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %189 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 2, i32 1 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %189, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %190 = fmul <4 x double> %wide.masked.gather190, %177 %191 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather173, <4 x double> %wide.masked.gather189, <4 x double> %190) %192 = fmul <4 x double> %wide.masked.gather174, %wide.masked.gather189 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather173, <4 x double> %wide.masked.gather190, <4 x double> %192) %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %194 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 3, i32 1 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %194, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %195 = fmul <4 x double> %wide.masked.gather192, %178 %196 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather175, <4 x double> %wide.masked.gather191, <4 x double> %195) %197 = fmul <4 x double> %wide.masked.gather176, %wide.masked.gather191 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather175, <4 x double> %wide.masked.gather192, <4 x double> %197) %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %169, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %199 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 4, i32 1 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %199, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %200 = fmul <4 x double> %wide.masked.gather194, %179 %201 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather177, <4 x double> %wide.masked.gather193, <4 x double> %200) %202 = fmul <4 x double> %wide.masked.gather178, %wide.masked.gather193 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather177, <4 x double> %wide.masked.gather194, <4 x double> %202) %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %174, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %204 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 5, i32 1 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %204, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %205 = fmul <4 x double> %wide.masked.gather196, %180 %206 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather179, <4 x double> %wide.masked.gather195, <4 x double> %205) %207 = fmul <4 x double> %wide.masked.gather180, %wide.masked.gather195 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather179, <4 x double> %wide.masked.gather196, <4 x double> %207) %wide.masked.gather197 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %209 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 6, i32 1 %wide.masked.gather198 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %209, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %210 = fmul <4 x double> %wide.masked.gather198, %181 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather181, <4 x double> %wide.masked.gather197, <4 x double> %210) %212 = fmul <4 x double> %wide.masked.gather182, %wide.masked.gather197 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather181, <4 x double> %wide.masked.gather198, <4 x double> %212) %wide.masked.gather199 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %175, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %214 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %154, i64 7, i32 1 %wide.masked.gather200 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %214, i32 8, <4 x i1> , <4 x double> poison), !noalias !5281 %215 = fmul <4 x double> %wide.masked.gather200, %182 %216 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather199, <4 x double> %215) %217 = fmul <4 x double> %wide.masked.gather184, %wide.masked.gather199 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather183, <4 x double> %wide.masked.gather200, <4 x double> %217) %219 = fadd <4 x double> %wide.masked.gather185, %201 %220 = fadd <4 x double> %wide.masked.gather186, %203 %221 = fsub <4 x double> %wide.masked.gather185, %201 %222 = fsub <4 x double> %wide.masked.gather186, %203 %223 = fadd <4 x double> %191, %211 %224 = fadd <4 x double> %193, %213 %225 = fsub <4 x double> %191, %211 %226 = fsub <4 x double> %193, %213 %227 = fadd <4 x double> %186, %206 %228 = fadd <4 x double> %188, %208 %229 = fsub <4 x double> %186, %206 %230 = fsub <4 x double> %188, %208 %231 = fadd <4 x double> %196, %216 %232 = fadd <4 x double> %198, %218 %233 = fsub <4 x double> %196, %216 %234 = fsub <4 x double> %198, %218 %235 = fadd <4 x double> %219, %223 %236 = fadd <4 x double> %220, %224 %237 = fadd <4 x double> %227, %231 %238 = fadd <4 x double> %228, %232 %239 = fadd <4 x double> %235, %237 %240 = fadd <4 x double> %236, %238 %241 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index171 %interleaved.vec201 = shufflevector <4 x double> %239, <4 x double> %240, <8 x i32> store <8 x double> %interleaved.vec201, ptr %241, align 8, !noalias !5281 %242 = fsub <4 x double> %235, %237 %243 = fsub <4 x double> %236, %238 %244 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index171 %interleaved.vec202 = shufflevector <4 x double> %242, <4 x double> %243, <8 x i32> store <8 x double> %interleaved.vec202, ptr %244, align 8, !noalias !5281 %245 = fsub <4 x double> %221, %226 %246 = fadd <4 x double> %222, %225 %247 = fsub <4 x double> %229, %234 %248 = fadd <4 x double> %230, %233 %249 = fsub <4 x double> %247, %248 %250 = fadd <4 x double> %247, %248 %251 = fmul <4 x double> %249, %252 = fmul <4 x double> %250, %253 = fadd <4 x double> %245, %251 %254 = fadd <4 x double> %246, %252 %255 = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %index171 %interleaved.vec203 = shufflevector <4 x double> %253, <4 x double> %254, <8 x i32> store <8 x double> %interleaved.vec203, ptr %255, align 8, !noalias !5281 %256 = fsub <4 x double> %245, %251 %257 = fsub <4 x double> %246, %252 %258 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index171 %interleaved.vec204 = shufflevector <4 x double> %256, <4 x double> %257, <8 x i32> store <8 x double> %interleaved.vec204, ptr %258, align 8, !noalias !5281 %259 = fsub <4 x double> %219, %223 %260 = fsub <4 x double> %220, %224 %261 = fsub <4 x double> %227, %231 %262 = fsub <4 x double> %228, %232 %263 = fsub <4 x double> %259, %262 %264 = fadd <4 x double> %260, %261 %265 = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %index171 %interleaved.vec205 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec205, ptr %265, align 8, !noalias !5281 %266 = fadd <4 x double> %259, %262 %267 = fsub <4 x double> %260, %261 %268 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index171 %interleaved.vec206 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec206, ptr %268, align 8, !noalias !5281 %269 = fadd <4 x double> %221, %226 %270 = fsub <4 x double> %222, %225 %271 = fadd <4 x double> %229, %234 %272 = fsub <4 x double> %230, %233 %273 = fadd <4 x double> %271, %272 %274 = fsub <4 x double> %272, %271 %275 = fmul <4 x double> %273, %276 = fmul <4 x double> %274, %277 = fsub <4 x double> %269, %275 %278 = fsub <4 x double> %270, %276 %279 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index171 %interleaved.vec207 = shufflevector <4 x double> %277, <4 x double> %278, <8 x i32> store <8 x double> %interleaved.vec207, ptr %279, align 8, !noalias !5281 %280 = fadd <4 x double> %269, %275 %281 = fadd <4 x double> %270, %276 %282 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index171 %interleaved.vec208 = shufflevector <4 x double> %280, <4 x double> %281, <8 x i32> store <8 x double> %interleaved.vec208, ptr %282, align 8, !noalias !5281 %index.next209 = add nuw i64 %index171, 4 %vec.ind.next = add <4 x i64> %vec.ind, %283 = icmp eq i64 %index.next209, 128 br i1 %283, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7b51d942c94a82e4E.exit", label %vector.body170, !llvm.loop !5289 bb32.i.i.i154: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117, %middle.block85 %iter.i.i.i56.sroa.104.0180 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit1117 ], [ %406, %middle.block85 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0180, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %start1.i.i.i.i.i.i1153 = shl nuw nsw i64 %iter.i.i.i56.sroa.104.0180, 6 %data.i.i.i.i.i.i1154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1153 %data.i.i.i.i.i.i.i.i1158 = getelementptr inbounds %"num_complex::Complex", ptr %152, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i1162 = getelementptr inbounds %"num_complex::Complex", ptr %150, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i1166 = getelementptr inbounds %"num_complex::Complex", ptr %151, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1170 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1174 = getelementptr inbounds %"num_complex::Complex", ptr %149, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1178 = getelementptr inbounds %"num_complex::Complex", ptr %147, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1182 = getelementptr inbounds %"num_complex::Complex", ptr %148, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 32 %285 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 16 %286 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 8 %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 24 %288 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 48 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 40 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 56 %291 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 7, i32 1 %w7.1.i.i.i186 = load double, ptr %291, align 8, !noalias !5281, !noundef !3 %_6.i.i.i.i306 = fneg double %w7.1.i.i.i186 %292 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 6, i32 1 %w6.1.i.i.i184 = load double, ptr %292, align 8, !noalias !5281, !noundef !3 %_6.i166.i.i.i301 = fneg double %w6.1.i.i.i184 %293 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 5, i32 1 %w5.1.i.i.i182 = load double, ptr %293, align 8, !noalias !5281, !noundef !3 %_6.i169.i.i.i296 = fneg double %w5.1.i.i.i182 %294 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 4, i32 1 %w4.1.i.i.i180 = load double, ptr %294, align 8, !noalias !5281, !noundef !3 %_6.i172.i.i.i291 = fneg double %w4.1.i.i.i180 %295 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 3, i32 1 %w3.1.i.i.i178 = load double, ptr %295, align 8, !noalias !5281, !noundef !3 %_6.i175.i.i.i286 = fneg double %w3.1.i.i.i178 %296 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 2, i32 1 %w2.1.i.i.i176 = load double, ptr %296, align 8, !noalias !5281, !noundef !3 %_6.i178.i.i.i281 = fneg double %w2.1.i.i.i176 %297 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 1, i32 1 %w1.1.i.i.i174 = load double, ptr %297, align 8, !noalias !5281, !noundef !3 %_6.i181.i.i.i276 = fneg double %w1.1.i.i.i174 %298 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 7 %w7.0.i.i.i185 = load double, ptr %298, align 8, !noalias !5281, !noundef !3 %299 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 6 %w6.0.i.i.i183 = load double, ptr %299, align 8, !noalias !5281, !noundef !3 %300 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 5 %w5.0.i.i.i181 = load double, ptr %300, align 8, !noalias !5281, !noundef !3 %301 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 4 %w4.0.i.i.i179 = load double, ptr %301, align 8, !noalias !5281, !noundef !3 %302 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 3 %w3.0.i.i.i177 = load double, ptr %302, align 8, !noalias !5281, !noundef !3 %303 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 2 %w2.0.i.i.i175 = load double, ptr %303, align 8, !noalias !5281, !noundef !3 %304 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1143, i64 1 %w1.0.i.i.i173 = load double, ptr %304, align 8, !noalias !5281, !noundef !3 %broadcast.splatinsert97 = insertelement <4 x double> poison, double %_6.i181.i.i.i276, i64 0 %broadcast.splat98 = shufflevector <4 x double> %broadcast.splatinsert97, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert99 = insertelement <4 x double> poison, double %w1.0.i.i.i173, i64 0 %broadcast.splat100 = shufflevector <4 x double> %broadcast.splatinsert99, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert101 = insertelement <4 x double> poison, double %w1.1.i.i.i174, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert106 = insertelement <4 x double> poison, double %_6.i178.i.i.i281, i64 0 %broadcast.splat107 = shufflevector <4 x double> %broadcast.splatinsert106, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert108 = insertelement <4 x double> poison, double %w2.0.i.i.i175, i64 0 %broadcast.splat109 = shufflevector <4 x double> %broadcast.splatinsert108, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert110 = insertelement <4 x double> poison, double %w2.1.i.i.i176, i64 0 %broadcast.splat111 = shufflevector <4 x double> %broadcast.splatinsert110, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert115 = insertelement <4 x double> poison, double %_6.i175.i.i.i286, i64 0 %broadcast.splat116 = shufflevector <4 x double> %broadcast.splatinsert115, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert117 = insertelement <4 x double> poison, double %w3.0.i.i.i177, i64 0 %broadcast.splat118 = shufflevector <4 x double> %broadcast.splatinsert117, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert119 = insertelement <4 x double> poison, double %w3.1.i.i.i178, i64 0 %broadcast.splat120 = shufflevector <4 x double> %broadcast.splatinsert119, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %_6.i172.i.i.i291, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert126 = insertelement <4 x double> poison, double %w4.0.i.i.i179, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %w4.1.i.i.i180, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert133 = insertelement <4 x double> poison, double %_6.i169.i.i.i296, i64 0 %broadcast.splat134 = shufflevector <4 x double> %broadcast.splatinsert133, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %w5.0.i.i.i181, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w5.1.i.i.i182, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert142 = insertelement <4 x double> poison, double %_6.i166.i.i.i301, i64 0 %broadcast.splat143 = shufflevector <4 x double> %broadcast.splatinsert142, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert144 = insertelement <4 x double> poison, double %w6.0.i.i.i183, i64 0 %broadcast.splat145 = shufflevector <4 x double> %broadcast.splatinsert144, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert146 = insertelement <4 x double> poison, double %w6.1.i.i.i184, i64 0 %broadcast.splat147 = shufflevector <4 x double> %broadcast.splatinsert146, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert151 = insertelement <4 x double> poison, double %_6.i.i.i.i306, i64 0 %broadcast.splat152 = shufflevector <4 x double> %broadcast.splatinsert151, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert153 = insertelement <4 x double> poison, double %w7.0.i.i.i185, i64 0 %broadcast.splat154 = shufflevector <4 x double> %broadcast.splatinsert153, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert155 = insertelement <4 x double> poison, double %w7.1.i.i.i186, i64 0 %broadcast.splat156 = shufflevector <4 x double> %broadcast.splatinsert155, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body89 vector.body89: ; preds = %vector.body89, %bb32.i.i.i154 %index90 = phi i64 [ 0, %bb32.i.i.i154 ], [ %index.next165, %vector.body89 ] %305 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1154, i64 %index90 %306 = getelementptr inbounds %"num_complex::Complex", ptr %286, i64 %index90 %307 = getelementptr inbounds %"num_complex::Complex", ptr %285, i64 %index90 %308 = getelementptr inbounds %"num_complex::Complex", ptr %287, i64 %index90 %309 = getelementptr inbounds %"num_complex::Complex", ptr %284, i64 %index90 %310 = getelementptr inbounds %"num_complex::Complex", ptr %289, i64 %index90 %311 = getelementptr inbounds %"num_complex::Complex", ptr %288, i64 %index90 %312 = getelementptr inbounds %"num_complex::Complex", ptr %290, i64 %index90 %wide.vec91 = load <8 x double>, ptr %305, align 8, !noalias !5281 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %wide.vec94 = load <8 x double>, ptr %306, align 8, !noalias !5281 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %313 = fmul <4 x double> %strided.vec96, %broadcast.splat98 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec95, <4 x double> %313) %315 = fmul <4 x double> %broadcast.splat102, %strided.vec95 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat100, <4 x double> %strided.vec96, <4 x double> %315) %wide.vec103 = load <8 x double>, ptr %307, align 8, !noalias !5281 %strided.vec104 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %strided.vec105 = shufflevector <8 x double> %wide.vec103, <8 x double> poison, <4 x i32> %317 = fmul <4 x double> %strided.vec105, %broadcast.splat107 %318 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec104, <4 x double> %317) %319 = fmul <4 x double> %broadcast.splat111, %strided.vec104 %320 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat109, <4 x double> %strided.vec105, <4 x double> %319) %wide.vec112 = load <8 x double>, ptr %308, align 8, !noalias !5281 %strided.vec113 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %strided.vec114 = shufflevector <8 x double> %wide.vec112, <8 x double> poison, <4 x i32> %321 = fmul <4 x double> %strided.vec114, %broadcast.splat116 %322 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec113, <4 x double> %321) %323 = fmul <4 x double> %broadcast.splat120, %strided.vec113 %324 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat118, <4 x double> %strided.vec114, <4 x double> %323) %wide.vec121 = load <8 x double>, ptr %309, align 8, !noalias !5281 %strided.vec122 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %strided.vec123 = shufflevector <8 x double> %wide.vec121, <8 x double> poison, <4 x i32> %325 = fmul <4 x double> %strided.vec123, %broadcast.splat125 %326 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec122, <4 x double> %325) %327 = fmul <4 x double> %broadcast.splat129, %strided.vec122 %328 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat127, <4 x double> %strided.vec123, <4 x double> %327) %wide.vec130 = load <8 x double>, ptr %310, align 8, !noalias !5281 %strided.vec131 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %strided.vec132 = shufflevector <8 x double> %wide.vec130, <8 x double> poison, <4 x i32> %329 = fmul <4 x double> %strided.vec132, %broadcast.splat134 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec131, <4 x double> %329) %331 = fmul <4 x double> %broadcast.splat138, %strided.vec131 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat136, <4 x double> %strided.vec132, <4 x double> %331) %wide.vec139 = load <8 x double>, ptr %311, align 8, !noalias !5281 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %333 = fmul <4 x double> %strided.vec141, %broadcast.splat143 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec140, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat147, %strided.vec140 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat145, <4 x double> %strided.vec141, <4 x double> %335) %wide.vec148 = load <8 x double>, ptr %312, align 8, !noalias !5281 %strided.vec149 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %strided.vec150 = shufflevector <8 x double> %wide.vec148, <8 x double> poison, <4 x i32> %337 = fmul <4 x double> %strided.vec150, %broadcast.splat152 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat154, <4 x double> %strided.vec149, <4 x double> %337) %339 = fmul <4 x double> %broadcast.splat156, %strided.vec149 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat154, <4 x double> %strided.vec150, <4 x double> %339) %341 = fadd <4 x double> %strided.vec92, %326 %342 = fadd <4 x double> %strided.vec93, %328 %343 = fsub <4 x double> %strided.vec92, %326 %344 = fsub <4 x double> %strided.vec93, %328 %345 = fadd <4 x double> %318, %334 %346 = fadd <4 x double> %320, %336 %347 = fsub <4 x double> %318, %334 %348 = fsub <4 x double> %320, %336 %349 = fadd <4 x double> %314, %330 %350 = fadd <4 x double> %316, %332 %351 = fsub <4 x double> %314, %330 %352 = fsub <4 x double> %316, %332 %353 = fadd <4 x double> %322, %338 %354 = fadd <4 x double> %324, %340 %355 = fsub <4 x double> %322, %338 %356 = fsub <4 x double> %324, %340 %357 = fadd <4 x double> %341, %345 %358 = fadd <4 x double> %342, %346 %359 = fadd <4 x double> %349, %353 %360 = fadd <4 x double> %350, %354 %361 = fadd <4 x double> %357, %359 %362 = fadd <4 x double> %358, %360 %363 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1144, i64 %index90 %interleaved.vec157 = shufflevector <4 x double> %361, <4 x double> %362, <8 x i32> store <8 x double> %interleaved.vec157, ptr %363, align 8, !noalias !5281 %364 = fsub <4 x double> %357, %359 %365 = fsub <4 x double> %358, %360 %366 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i1170, i64 %index90 %interleaved.vec158 = shufflevector <4 x double> %364, <4 x double> %365, <8 x i32> store <8 x double> %interleaved.vec158, ptr %366, align 8, !noalias !5281 %367 = fsub <4 x double> %343, %348 %368 = fadd <4 x double> %344, %347 %369 = fsub <4 x double> %351, %356 %370 = fadd <4 x double> %352, %355 %371 = fsub <4 x double> %369, %370 %372 = fadd <4 x double> %369, %370 %373 = fmul <4 x double> %371, %374 = fmul <4 x double> %372, %375 = fadd <4 x double> %367, %373 %376 = fadd <4 x double> %368, %374 %377 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1182, i64 %index90 %interleaved.vec159 = shufflevector <4 x double> %375, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec159, ptr %377, align 8, !noalias !5281 %378 = fsub <4 x double> %367, %373 %379 = fsub <4 x double> %368, %374 %380 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1166, i64 %index90 %interleaved.vec160 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec160, ptr %380, align 8, !noalias !5281 %381 = fsub <4 x double> %341, %345 %382 = fsub <4 x double> %342, %346 %383 = fsub <4 x double> %349, %353 %384 = fsub <4 x double> %350, %354 %385 = fsub <4 x double> %381, %384 %386 = fadd <4 x double> %382, %383 %387 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1178, i64 %index90 %interleaved.vec161 = shufflevector <4 x double> %385, <4 x double> %386, <8 x i32> store <8 x double> %interleaved.vec161, ptr %387, align 8, !noalias !5281 %388 = fadd <4 x double> %381, %384 %389 = fsub <4 x double> %382, %383 %390 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1162, i64 %index90 %interleaved.vec162 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> store <8 x double> %interleaved.vec162, ptr %390, align 8, !noalias !5281 %391 = fadd <4 x double> %343, %348 %392 = fsub <4 x double> %344, %347 %393 = fadd <4 x double> %351, %356 %394 = fsub <4 x double> %352, %355 %395 = fadd <4 x double> %393, %394 %396 = fsub <4 x double> %394, %393 %397 = fmul <4 x double> %395, %398 = fmul <4 x double> %396, %399 = fsub <4 x double> %391, %397 %400 = fsub <4 x double> %392, %398 %401 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i1174, i64 %index90 %interleaved.vec163 = shufflevector <4 x double> %399, <4 x double> %400, <8 x i32> store <8 x double> %interleaved.vec163, ptr %401, align 8, !noalias !5281 %402 = fadd <4 x double> %391, %397 %403 = fadd <4 x double> %392, %398 %404 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1158, i64 %index90 %interleaved.vec164 = shufflevector <4 x double> %402, <4 x double> %403, <8 x i32> store <8 x double> %interleaved.vec164, ptr %404, align 8, !noalias !5281 %index.next165 = add nuw i64 %index90, 4 %405 = icmp eq i64 %index.next165, 8 br i1 %405, label %middle.block85, label %vector.body89, !llvm.loop !5290 middle.block85: ; preds = %vector.body89 %406 = add nuw nsw i64 %iter.i.i.i56.sroa.104.0180, 1 %exitcond186.not = icmp eq i64 %406, 16 br i1 %exitcond186.not, label %vector.body170, label %bb32.i.i.i154 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7b51d942c94a82e4E.exit": ; preds = %vector.body170 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5281 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd576600ee71262a0E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5291 store i64 1024, ptr %n.i, align 8, !noalias !5291 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5291 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5291 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5291 store ptr null, ptr %_16.i, align 8, !noalias !5291 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5291 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5291 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5291 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5291 store ptr null, ptr %_24.i, align 8, !noalias !5291 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5291 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5291 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5291 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5291 store ptr null, ptr %_32.i, align 8, !noalias !5291 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5291 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5291 store i64 %w.1, ptr %_34.i, align 8, !noalias !5291 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5291 store ptr null, ptr %_40.i, align 8, !noalias !5291 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5291 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !5294 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !5294 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !5294 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !5294 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !5294 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !5294 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !5294 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !5294 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !5294 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !5294 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fsub <4 x double> %20, %25 %29 = fadd <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fadd <4 x double> %20, %25 %41 = fsub <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !5294 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 252 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !5297 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 508 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 764 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1020 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1008 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !5294, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !5294, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !5294, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !5294, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !5294, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 252, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !5294, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1010 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1009 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1011 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5294 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5294 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5294 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !5294 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !5294 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fsub <2 x double> %69, %71 %73 = fadd <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !5294 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !5294 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !5294 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 509 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 765 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1021 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1012 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !5294, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !5294, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !5294, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !5294, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !5294, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 253, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !5294, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1014 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1013 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1015 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5294 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5294 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5294 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5294 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5294 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fsub <2 x double> %114, %116 %118 = fadd <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !5294 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !5294 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !5294 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 510 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 766 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1022 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1016 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !5294, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !5294, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !5294, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !5294, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !5294, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 254, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !5294, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1018 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1017 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1019 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5294 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5294 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5294 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5294 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5294 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fsub <2 x double> %159, %161 %163 = fadd <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !5294 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !5294 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !5294 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 511 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 767 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1023 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1020 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !5294, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !5294, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !5294, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !5294, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !5294, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 255, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !5294, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1022 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1021 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1023 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5294 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5294 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5294 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5294 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5294 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fsub <2 x double> %204, %206 %208 = fadd <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !5294 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !5294 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !5294 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !5291 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !5291 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !5291 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !5291 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !5291 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !5291 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !5291 %295 = fsub <4 x double> %277, %282 %296 = fadd <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !5291 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !5291 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !5291 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !5291 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !5291 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !5291 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !5291 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !5291 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !5291 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !5291 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !5291 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !5291 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !5291 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !5291 %327 = fadd <4 x double> %277, %282 %328 = fsub <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !5291 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !5291 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !5291 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !5291 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !5291 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !5291 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !5291 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !5291 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !5291 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !5291 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !5291 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !5291 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !5291 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !5291 %387 = fsub <4 x double> %369, %374 %388 = fadd <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !5291 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !5291 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !5291 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !5291 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !5291 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !5291 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !5291 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !5291 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !5291 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !5291 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !5291 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !5291 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !5291 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !5291 %419 = fadd <4 x double> %369, %374 %420 = fsub <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !5291 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !5291 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !5291 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !5291 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !5291 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !5291 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !5291 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !5291 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !5291 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !5291 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !5291 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !5291 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !5291 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !5291 %479 = fsub <4 x double> %461, %466 %480 = fadd <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !5291 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !5291 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !5291 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !5291 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !5291 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !5291 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !5291 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !5291 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !5291 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !5291 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !5291 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !5291 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !5291 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !5291 %511 = fadd <4 x double> %461, %466 %512 = fsub <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !5291 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !5291 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !5291 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !5291 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !5291 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !5291 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !5291 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !5291 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !5291 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !5291 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !5291 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !5291 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !5291 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !5291 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !5291 %571 = fsub <4 x double> %553, %558 %572 = fadd <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !5291 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !5291 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !5291 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !5291 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !5291 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !5291 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !5291 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !5291 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !5291 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !5291 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !5291 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !5291 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !5291 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !5291 %603 = fadd <4 x double> %553, %558 %604 = fsub <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !5291 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !5291 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !5291 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !5291 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !5291 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !5291 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !5291 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 64 br i1 %619, label %bb24.i.i.i.i, label %vector.body20, !llvm.loop !5298 bb24.i.i.i.i: ; preds = %vector.body20, %bb24.i.i.i.i %iter.i.i.i.i.sroa.60.0137 = phi i64 [ %765, %bb24.i.i.i.i ], [ 0, %vector.body20 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i845 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0137, 4 %620 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %620, align 8, !noalias !5299, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %621 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 3 %w3.0.i.i.i.i = load double, ptr %621, align 8, !noalias !5299, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w3.1.i.i.i.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %622 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %622, align 8, !noalias !5299, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %623 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 2 %w2.0.i.i.i.i = load double, ptr %623, align 8, !noalias !5299, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i = fneg double %w2.1.i.i.i.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %624 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %624, align 8, !noalias !5299, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %625 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845, i64 1 %w1.0.i.i.i.i = load double, ptr %625, align 8, !noalias !5299, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i864 = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0137, 6 %data.i.i.i.i.i.i865 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i864 %626 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 48 %627 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 16 %628 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 32 %data.i.i.i.i.i.i.i.i861 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %data.i.i.i.i.i.i.i.i.i.i856 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %data.i5.i.i.i.i.i.i.i.i.i.i.i851 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %data.i.i.i.i.i.i.i.i.i.i.i.i846 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i845 %wide.vec69 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, align 8, !noalias !5299 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, align 8, !noalias !5299 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i856, align 8, !noalias !5299 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i861, align 8, !noalias !5299 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %629 = fadd <4 x double> %strided.vec70, %strided.vec76 %630 = fadd <4 x double> %strided.vec71, %strided.vec77 %631 = fsub <4 x double> %strided.vec70, %strided.vec76 %632 = fsub <4 x double> %strided.vec71, %strided.vec77 %633 = fadd <4 x double> %strided.vec73, %strided.vec79 %634 = fadd <4 x double> %strided.vec74, %strided.vec80 %635 = fsub <4 x double> %strided.vec73, %strided.vec79 %636 = fsub <4 x double> %strided.vec74, %strided.vec80 %637 = fadd <4 x double> %629, %633 %638 = fadd <4 x double> %630, %634 %interleaved.vec81 = shufflevector <4 x double> %637, <4 x double> %638, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i865, align 8, !noalias !5299 %639 = fsub <4 x double> %631, %636 %640 = fadd <4 x double> %632, %635 %641 = fmul <4 x double> %640, %broadcast.splat %642 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %639, <4 x double> %641) %643 = fmul <4 x double> %broadcast.splat85, %639 %644 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %640, <4 x double> %643) %interleaved.vec86 = shufflevector <4 x double> %642, <4 x double> %644, <8 x i32> store <8 x double> %interleaved.vec86, ptr %627, align 8, !noalias !5299 %645 = fsub <4 x double> %629, %633 %646 = fsub <4 x double> %630, %634 %647 = fmul <4 x double> %646, %broadcast.splat88 %648 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %645, <4 x double> %647) %649 = fmul <4 x double> %broadcast.splat92, %645 %650 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %646, <4 x double> %649) %interleaved.vec93 = shufflevector <4 x double> %648, <4 x double> %650, <8 x i32> store <8 x double> %interleaved.vec93, ptr %628, align 8, !noalias !5299 %651 = fadd <4 x double> %631, %636 %652 = fsub <4 x double> %632, %635 %653 = fmul <4 x double> %652, %broadcast.splat95 %654 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %651, <4 x double> %653) %655 = fmul <4 x double> %broadcast.splat99, %651 %656 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %652, <4 x double> %655) %interleaved.vec100 = shufflevector <4 x double> %654, <4 x double> %656, <8 x i32> store <8 x double> %interleaved.vec100, ptr %626, align 8, !noalias !5299 %657 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, i64 4 %658 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, i64 4 %659 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i856, i64 4 %660 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i861, i64 4 %wide.vec69.1 = load <8 x double>, ptr %657, align 8, !noalias !5299 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %658, align 8, !noalias !5299 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %659, align 8, !noalias !5299 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %660, align 8, !noalias !5299 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %661 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %662 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %663 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %664 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %665 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %666 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %667 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %668 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %669 = fadd <4 x double> %661, %665 %670 = fadd <4 x double> %662, %666 %671 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %669, <4 x double> %670, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %671, align 8, !noalias !5299 %672 = fsub <4 x double> %663, %668 %673 = fadd <4 x double> %664, %667 %674 = fmul <4 x double> %673, %broadcast.splat %675 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %672, <4 x double> %674) %676 = fmul <4 x double> %broadcast.splat85, %672 %677 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %673, <4 x double> %676) %678 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %675, <4 x double> %677, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %678, align 8, !noalias !5299 %679 = fsub <4 x double> %661, %665 %680 = fsub <4 x double> %662, %666 %681 = fmul <4 x double> %680, %broadcast.splat88 %682 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %679, <4 x double> %681) %683 = fmul <4 x double> %broadcast.splat92, %679 %684 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %680, <4 x double> %683) %685 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %682, <4 x double> %684, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %685, align 8, !noalias !5299 %686 = fadd <4 x double> %663, %668 %687 = fsub <4 x double> %664, %667 %688 = fmul <4 x double> %687, %broadcast.splat95 %689 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %686, <4 x double> %688) %690 = fmul <4 x double> %broadcast.splat99, %686 %691 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %687, <4 x double> %690) %692 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %689, <4 x double> %691, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %692, align 8, !noalias !5299 %693 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, i64 8 %694 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, i64 8 %695 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i856, i64 8 %696 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i861, i64 8 %wide.vec69.2 = load <8 x double>, ptr %693, align 8, !noalias !5299 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %694, align 8, !noalias !5299 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %695, align 8, !noalias !5299 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %696, align 8, !noalias !5299 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %697 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %698 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %699 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %700 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %701 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %702 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %703 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %704 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %705 = fadd <4 x double> %697, %701 %706 = fadd <4 x double> %698, %702 %707 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %705, <4 x double> %706, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %707, align 8, !noalias !5299 %708 = fsub <4 x double> %699, %704 %709 = fadd <4 x double> %700, %703 %710 = fmul <4 x double> %709, %broadcast.splat %711 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %708, <4 x double> %710) %712 = fmul <4 x double> %broadcast.splat85, %708 %713 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %709, <4 x double> %712) %714 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %711, <4 x double> %713, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %714, align 8, !noalias !5299 %715 = fsub <4 x double> %697, %701 %716 = fsub <4 x double> %698, %702 %717 = fmul <4 x double> %716, %broadcast.splat88 %718 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %715, <4 x double> %717) %719 = fmul <4 x double> %broadcast.splat92, %715 %720 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %716, <4 x double> %719) %721 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %718, <4 x double> %720, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %721, align 8, !noalias !5299 %722 = fadd <4 x double> %699, %704 %723 = fsub <4 x double> %700, %703 %724 = fmul <4 x double> %723, %broadcast.splat95 %725 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %722, <4 x double> %724) %726 = fmul <4 x double> %broadcast.splat99, %722 %727 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %723, <4 x double> %726) %728 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %725, <4 x double> %727, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %728, align 8, !noalias !5299 %729 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i846, i64 12 %730 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i851, i64 12 %731 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i856, i64 12 %732 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i861, i64 12 %wide.vec69.3 = load <8 x double>, ptr %729, align 8, !noalias !5299 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %730, align 8, !noalias !5299 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %731, align 8, !noalias !5299 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %732, align 8, !noalias !5299 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %733 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %734 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %735 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %736 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %737 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %738 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %739 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %740 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %741 = fadd <4 x double> %733, %737 %742 = fadd <4 x double> %734, %738 %743 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %741, <4 x double> %742, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %743, align 8, !noalias !5299 %744 = fsub <4 x double> %735, %740 %745 = fadd <4 x double> %736, %739 %746 = fmul <4 x double> %745, %broadcast.splat %747 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %744, <4 x double> %746) %748 = fmul <4 x double> %broadcast.splat85, %744 %749 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %745, <4 x double> %748) %750 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %747, <4 x double> %749, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %750, align 8, !noalias !5299 %751 = fsub <4 x double> %733, %737 %752 = fsub <4 x double> %734, %738 %753 = fmul <4 x double> %752, %broadcast.splat88 %754 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %751, <4 x double> %753) %755 = fmul <4 x double> %broadcast.splat92, %751 %756 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %752, <4 x double> %755) %757 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %754, <4 x double> %756, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %757, align 8, !noalias !5299 %758 = fadd <4 x double> %735, %740 %759 = fsub <4 x double> %736, %739 %760 = fmul <4 x double> %759, %broadcast.splat95 %761 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %758, <4 x double> %760) %762 = fmul <4 x double> %broadcast.splat99, %758 %763 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %759, <4 x double> %762) %764 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i865, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %761, <4 x double> %763, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %764, align 8, !noalias !5299 %765 = add nuw nsw i64 %iter.i.i.i.i.sroa.60.0137, 1 %exitcond145.not = icmp eq i64 %765, 16 br i1 %exitcond145.not, label %bb24.i.i.i72.i, label %bb24.i.i.i.i vector.body147: ; preds = %middle.block102, %vector.body147 %index148 = phi i64 [ %index.next165, %vector.body147 ], [ 0, %middle.block102 ] %766 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index148 %767 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index148 %768 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index148 %769 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index148 %wide.vec149 = load <8 x double>, ptr %766, align 8, !noalias !5291 %strided.vec150 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %strided.vec151 = shufflevector <8 x double> %wide.vec149, <8 x double> poison, <4 x i32> %wide.vec152 = load <8 x double>, ptr %767, align 8, !noalias !5291 %strided.vec153 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %strided.vec154 = shufflevector <8 x double> %wide.vec152, <8 x double> poison, <4 x i32> %wide.vec155 = load <8 x double>, ptr %768, align 8, !noalias !5291 %strided.vec156 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %strided.vec157 = shufflevector <8 x double> %wide.vec155, <8 x double> poison, <4 x i32> %wide.vec158 = load <8 x double>, ptr %769, align 8, !noalias !5291 %strided.vec159 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %strided.vec160 = shufflevector <8 x double> %wide.vec158, <8 x double> poison, <4 x i32> %770 = fadd <4 x double> %strided.vec150, %strided.vec156 %771 = fadd <4 x double> %strided.vec151, %strided.vec157 %772 = fsub <4 x double> %strided.vec150, %strided.vec156 %773 = fsub <4 x double> %strided.vec151, %strided.vec157 %774 = fadd <4 x double> %strided.vec153, %strided.vec159 %775 = fadd <4 x double> %strided.vec154, %strided.vec160 %776 = fsub <4 x double> %strided.vec153, %strided.vec159 %777 = fsub <4 x double> %strided.vec154, %strided.vec160 %778 = fadd <4 x double> %770, %774 %779 = fadd <4 x double> %771, %775 %780 = fsub <4 x double> %772, %777 %781 = fadd <4 x double> %773, %776 %782 = fsub <4 x double> %770, %774 %783 = fsub <4 x double> %771, %775 %784 = fadd <4 x double> %772, %777 %785 = fsub <4 x double> %773, %776 %interleaved.vec161 = shufflevector <4 x double> %778, <4 x double> %779, <8 x i32> store <8 x double> %interleaved.vec161, ptr %766, align 8, !noalias !5291 %interleaved.vec162 = shufflevector <4 x double> %780, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec162, ptr %767, align 8, !noalias !5291 %interleaved.vec163 = shufflevector <4 x double> %782, <4 x double> %783, <8 x i32> store <8 x double> %interleaved.vec163, ptr %768, align 8, !noalias !5291 %interleaved.vec164 = shufflevector <4 x double> %784, <4 x double> %785, <8 x i32> store <8 x double> %interleaved.vec164, ptr %769, align 8, !noalias !5291 %index.next165 = add nuw i64 %index148, 4 %786 = icmp eq i64 %index.next165, 256 br i1 %786, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit", label %vector.body147, !llvm.loop !5302 bb24.i.i.i72.i: ; preds = %bb24.i.i.i.i, %middle.block102 %iter.i.i.i25.i.sroa.60.0139 = phi i64 [ %833, %middle.block102 ], [ 0, %bb24.i.i.i.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0139, 6 %data.i.i.i.i.i.i.i.i.i.i.i.i1173 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %data.i5.i.i.i.i.i.i.i.i.i.i.i1178 = getelementptr inbounds %"num_complex::Complex", ptr %234, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %data.i.i.i.i.i.i.i.i.i.i1183 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %data.i.i.i.i.i.i.i.i1188 = getelementptr inbounds %"num_complex::Complex", ptr %235, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172 %start1.i.i.i.i.i.i1191 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0139, 8 %data.i.i.i.i.i.i1192 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i1191 %787 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 128 %788 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 64 %789 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 192 %790 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 3, i32 1 %w3.1.i.i.i88.i = load double, ptr %790, align 8, !noalias !5291, !noundef !3 %_6.i.i.i.i160.i = fneg double %w3.1.i.i.i88.i %791 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 2, i32 1 %w2.1.i.i.i86.i = load double, ptr %791, align 8, !noalias !5291, !noundef !3 %_6.i36.i.i.i155.i = fneg double %w2.1.i.i.i86.i %792 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 1, i32 1 %w1.1.i.i.i84.i = load double, ptr %792, align 8, !noalias !5291, !noundef !3 %_6.i39.i.i.i150.i = fneg double %w1.1.i.i.i84.i %793 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 3 %w3.0.i.i.i87.i = load double, ptr %793, align 8, !noalias !5291, !noundef !3 %794 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 2 %w2.0.i.i.i85.i = load double, ptr %794, align 8, !noalias !5291, !noundef !3 %795 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i1172, i64 1 %w1.0.i.i.i83.i = load double, ptr %795, align 8, !noalias !5291, !noundef !3 %broadcast.splatinsert121 = insertelement <4 x double> poison, double %_6.i39.i.i.i150.i, i64 0 %broadcast.splat122 = shufflevector <4 x double> %broadcast.splatinsert121, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %w1.0.i.i.i83.i, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %w1.1.i.i.i84.i, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert128 = insertelement <4 x double> poison, double %_6.i36.i.i.i155.i, i64 0 %broadcast.splat129 = shufflevector <4 x double> %broadcast.splatinsert128, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert130 = insertelement <4 x double> poison, double %w2.0.i.i.i85.i, i64 0 %broadcast.splat131 = shufflevector <4 x double> %broadcast.splatinsert130, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %w2.1.i.i.i86.i, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert135 = insertelement <4 x double> poison, double %_6.i.i.i.i160.i, i64 0 %broadcast.splat136 = shufflevector <4 x double> %broadcast.splatinsert135, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert137 = insertelement <4 x double> poison, double %w3.0.i.i.i87.i, i64 0 %broadcast.splat138 = shufflevector <4 x double> %broadcast.splatinsert137, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert139 = insertelement <4 x double> poison, double %w3.1.i.i.i88.i, i64 0 %broadcast.splat140 = shufflevector <4 x double> %broadcast.splatinsert139, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body106 vector.body106: ; preds = %vector.body106, %bb24.i.i.i72.i %index107 = phi i64 [ 0, %bb24.i.i.i72.i ], [ %index.next142, %vector.body106 ] %796 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i1173, i64 %index107 %797 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i1178, i64 %index107 %798 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i1183, i64 %index107 %799 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i1188, i64 %index107 %wide.vec108 = load <8 x double>, ptr %796, align 8, !noalias !5291 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %797, align 8, !noalias !5291 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %798, align 8, !noalias !5291 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %799, align 8, !noalias !5291 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %800 = fadd <4 x double> %strided.vec109, %strided.vec115 %801 = fadd <4 x double> %strided.vec110, %strided.vec116 %802 = fsub <4 x double> %strided.vec109, %strided.vec115 %803 = fsub <4 x double> %strided.vec110, %strided.vec116 %804 = fadd <4 x double> %strided.vec112, %strided.vec118 %805 = fadd <4 x double> %strided.vec113, %strided.vec119 %806 = fsub <4 x double> %strided.vec112, %strided.vec118 %807 = fsub <4 x double> %strided.vec113, %strided.vec119 %808 = fadd <4 x double> %800, %804 %809 = fadd <4 x double> %801, %805 %810 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i1192, i64 %index107 %interleaved.vec120 = shufflevector <4 x double> %808, <4 x double> %809, <8 x i32> store <8 x double> %interleaved.vec120, ptr %810, align 8, !noalias !5291 %811 = fsub <4 x double> %802, %807 %812 = fadd <4 x double> %803, %806 %813 = fmul <4 x double> %812, %broadcast.splat122 %814 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %811, <4 x double> %813) %815 = fmul <4 x double> %broadcast.splat126, %811 %816 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat124, <4 x double> %812, <4 x double> %815) %817 = getelementptr inbounds %"num_complex::Complex", ptr %788, i64 %index107 %interleaved.vec127 = shufflevector <4 x double> %814, <4 x double> %816, <8 x i32> store <8 x double> %interleaved.vec127, ptr %817, align 8, !noalias !5291 %818 = fsub <4 x double> %800, %804 %819 = fsub <4 x double> %801, %805 %820 = fmul <4 x double> %819, %broadcast.splat129 %821 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %818, <4 x double> %820) %822 = fmul <4 x double> %broadcast.splat133, %818 %823 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat131, <4 x double> %819, <4 x double> %822) %824 = getelementptr inbounds %"num_complex::Complex", ptr %787, i64 %index107 %interleaved.vec134 = shufflevector <4 x double> %821, <4 x double> %823, <8 x i32> store <8 x double> %interleaved.vec134, ptr %824, align 8, !noalias !5291 %825 = fadd <4 x double> %802, %807 %826 = fsub <4 x double> %803, %806 %827 = fmul <4 x double> %826, %broadcast.splat136 %828 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %825, <4 x double> %827) %829 = fmul <4 x double> %broadcast.splat140, %825 %830 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat138, <4 x double> %826, <4 x double> %829) %831 = getelementptr inbounds %"num_complex::Complex", ptr %789, i64 %index107 %interleaved.vec141 = shufflevector <4 x double> %828, <4 x double> %830, <8 x i32> store <8 x double> %interleaved.vec141, ptr %831, align 8, !noalias !5291 %index.next142 = add nuw i64 %index107, 4 %832 = icmp eq i64 %index.next142, 64 br i1 %832, label %middle.block102, label %vector.body106, !llvm.loop !5303 middle.block102: ; preds = %vector.body106 %833 = add nuw nsw i64 %iter.i.i.i25.i.sroa.60.0139, 1 %exitcond147.not = icmp eq i64 %833, 4 br i1 %exitcond147.not, label %vector.body147, label %bb24.i.i.i72.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit": ; preds = %vector.body147 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5291 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd64174afd5af4fe8E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit8::Dit8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h43bcc46b79f7f1e2E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd782de32f063c955E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5304 store i64 16, ptr %n.i.i, align 8, !noalias !5304 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5304 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5304 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5304 store ptr null, ptr %_16.i.i, align 8, !noalias !5304 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5304 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5304 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5304 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5304 store ptr null, ptr %_24.i.i, align 8, !noalias !5304 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5304 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5304 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5304 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5304 store ptr null, ptr %_32.i.i, align 8, !noalias !5304 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5304 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5304 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5304 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h8a056132390bbdbdE.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5304 store ptr null, ptr %_40.i.i, align 8, !noalias !5304 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h8a056132390bbdbdE.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5304 tail call void @llvm.experimental.noalias.scope.decl(metadata !5309) tail call void @llvm.experimental.noalias.scope.decl(metadata !5312) tail call void @llvm.experimental.noalias.scope.decl(metadata !5314) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !5309, !noalias !5316 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !5309, !noalias !5316 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !5309, !noalias !5316 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !5309, !noalias !5316 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !5309, !noalias !5316 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !5309, !noalias !5316 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !5309, !noalias !5316 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !5309, !noalias !5316 %16 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %17 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %19 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = bitcast <4 x double> %19 to <4 x i64> %21 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %22 = bitcast <4 x double> %21 to <4 x i64> %23 = xor <4 x i64> %20, %24 = bitcast <4 x i64> %23 to <4 x double> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = xor <4 x i64> %22, %27 = bitcast <4 x i64> %26 to <4 x double> %28 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> %29 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %30 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %16, %18 %33 = fsub <4 x double> %17, %25 %34 = fsub <4 x double> %16, %18 %35 = fadd <4 x double> %17, %25 %36 = fadd <4 x double> %29, %31 %37 = fsub <4 x double> %30, %28 %38 = bitcast <4 x double> %37 to <4 x i64> %39 = fsub <4 x double> %29, %31 %40 = bitcast <4 x double> %39 to <4 x i64> %41 = fadd <4 x double> %30, %28 %42 = xor <4 x i64> %38, %43 = bitcast <4 x i64> %42 to <4 x double> %44 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> %45 = fadd <4 x double> %37, %44 %46 = fmul <4 x double> %45, %47 = xor <4 x i64> %40, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = bitcast <4 x double> %41 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %41, %53 %55 = fmul <4 x double> %54, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %11, align 8, !alias.scope !5314, !noalias !5317 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !5314, !noalias !5317 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !5314, !noalias !5317 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !5314, !noalias !5317 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !5314, !noalias !5317 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !5314, !noalias !5317 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !5314, !noalias !5317 %56 = fadd <4 x double> %32, %36 %57 = fadd <4 x double> %33, %46 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fsub <4 x double> %34, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = fsub <4 x double> %35, %55 %70 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %71 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %72, %70 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %71, <4 x double> %69, <4 x double> %73) #23 %75 = fsub <4 x double> %32, %36 %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %76, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %75, <4 x double> %79) #23 %81 = fsub <4 x double> %33, %46 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %84, %82 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %81, <4 x double> %85) #23 %87 = fadd <4 x double> %34, %49 %88 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> %89 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %88 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %89, <4 x double> %87, <4 x double> %91) #23 %93 = fadd <4 x double> %35, %55 %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %94 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %95, <4 x double> %93, <4 x double> %97) #23 %99 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> store <4 x double> %99, ptr %scratch.0, align 8, !alias.scope !5312, !noalias !5318 %100 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %101 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %100, ptr %101, align 8, !alias.scope !5312, !noalias !5318 %102 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %103 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %102, ptr %103, align 8, !alias.scope !5312, !noalias !5318 %104 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %105 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %104, ptr %105, align 8, !alias.scope !5312, !noalias !5318 %106 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> %107 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 4 store <4 x double> %106, ptr %107, align 8, !alias.scope !5312, !noalias !5318 %108 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %109 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 5 store <4 x double> %108, ptr %109, align 8, !alias.scope !5312, !noalias !5318 %110 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %111 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 6 store <4 x double> %110, ptr %111, align 8, !alias.scope !5312, !noalias !5318 %112 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %113 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 7 store <4 x double> %112, ptr %113, align 8, !alias.scope !5312, !noalias !5318 %114 = fadd <4 x double> %99, %106 %115 = fsub <4 x double> %99, %106 store <4 x double> %114, ptr %buf.0, align 8, !noalias !5304 store <4 x double> %115, ptr %2, align 8, !noalias !5304 %116 = fadd <4 x double> %100, %108 %117 = fsub <4 x double> %100, %108 store <4 x double> %116, ptr %4, align 8, !noalias !5304 store <4 x double> %117, ptr %7, align 8, !noalias !5304 %118 = fadd <4 x double> %102, %110 %119 = fsub <4 x double> %102, %110 store <4 x double> %118, ptr %3, align 8, !noalias !5304 store <4 x double> %119, ptr %6, align 8, !noalias !5304 %120 = fadd <4 x double> %104, %112 %121 = fsub <4 x double> %104, %112 store <4 x double> %120, ptr %5, align 8, !noalias !5304 store <4 x double> %121, ptr %8, align 8, !noalias !5304 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5304 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd7b4af2deeafe959E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5319 store i64 64, ptr %n.i, align 8, !noalias !5319 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5319 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5319 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5319 store ptr null, ptr %_16.i, align 8, !noalias !5319 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5319 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5319 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5319 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5319 store ptr null, ptr %_24.i, align 8, !noalias !5319 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5319 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5319 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5319 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5319 store ptr null, ptr %_32.i, align 8, !noalias !5319 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5319 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5319 store i64 %w.1, ptr %_34.i, align 8, !noalias !5319 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h697ff29f6e66df68E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5319 store ptr null, ptr %_40.i, align 8, !noalias !5319 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h697ff29f6e66df68E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5319 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5319 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !5319 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !5319 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %0, align 8, !noalias !5319 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %6 = fadd <4 x double> %strided.vec, %strided.vec6 %7 = fadd <4 x double> %strided.vec1, %strided.vec7 %8 = fsub <4 x double> %strided.vec, %strided.vec6 %9 = fsub <4 x double> %strided.vec1, %strided.vec7 %10 = fadd <4 x double> %strided.vec3, %strided.vec9 %11 = fadd <4 x double> %strided.vec4, %strided.vec10 %12 = fsub <4 x double> %strided.vec3, %strided.vec9 %13 = fsub <4 x double> %strided.vec4, %strided.vec10 %14 = fadd <4 x double> %6, %10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %13 %17 = fsub <4 x double> %9, %12 %18 = fsub <4 x double> %6, %10 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %13 %21 = fadd <4 x double> %9, %12 %interleaved.vec = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5319 %interleaved.vec11 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !5319 %interleaved.vec12 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !5319 %interleaved.vec13 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> store <8 x double> %interleaved.vec13, ptr %3, align 8, !noalias !5319 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %25 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec.1 = load <8 x double>, ptr %22, align 8, !noalias !5319 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %23, align 8, !noalias !5319 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %24, align 8, !noalias !5319 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %25, align 8, !noalias !5319 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %26 = fadd <4 x double> %strided.vec.1, %strided.vec6.1 %27 = fadd <4 x double> %strided.vec1.1, %strided.vec7.1 %28 = fsub <4 x double> %strided.vec.1, %strided.vec6.1 %29 = fsub <4 x double> %strided.vec1.1, %strided.vec7.1 %30 = fadd <4 x double> %strided.vec3.1, %strided.vec9.1 %31 = fadd <4 x double> %strided.vec4.1, %strided.vec10.1 %32 = fsub <4 x double> %strided.vec3.1, %strided.vec9.1 %33 = fsub <4 x double> %strided.vec4.1, %strided.vec10.1 %34 = fadd <4 x double> %26, %30 %35 = fadd <4 x double> %27, %31 %36 = fadd <4 x double> %28, %33 %37 = fsub <4 x double> %29, %32 %38 = fsub <4 x double> %26, %30 %39 = fsub <4 x double> %27, %31 %40 = fsub <4 x double> %28, %33 %41 = fadd <4 x double> %29, %32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %34, <4 x double> %35, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %42, align 8, !noalias !5319 %43 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec11.1 = shufflevector <4 x double> %36, <4 x double> %37, <8 x i32> store <8 x double> %interleaved.vec11.1, ptr %43, align 8, !noalias !5319 %44 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec12.1 = shufflevector <4 x double> %38, <4 x double> %39, <8 x i32> store <8 x double> %interleaved.vec12.1, ptr %44, align 8, !noalias !5319 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec13.1 = shufflevector <4 x double> %40, <4 x double> %41, <8 x i32> store <8 x double> %interleaved.vec13.1, ptr %45, align 8, !noalias !5319 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %49 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec.2 = load <8 x double>, ptr %46, align 8, !noalias !5319 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %47, align 8, !noalias !5319 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %wide.vec5.2 = load <8 x double>, ptr %48, align 8, !noalias !5319 %strided.vec6.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %strided.vec7.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %wide.vec8.2 = load <8 x double>, ptr %49, align 8, !noalias !5319 %strided.vec9.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %strided.vec10.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %50 = fadd <4 x double> %strided.vec.2, %strided.vec6.2 %51 = fadd <4 x double> %strided.vec1.2, %strided.vec7.2 %52 = fsub <4 x double> %strided.vec.2, %strided.vec6.2 %53 = fsub <4 x double> %strided.vec1.2, %strided.vec7.2 %54 = fadd <4 x double> %strided.vec3.2, %strided.vec9.2 %55 = fadd <4 x double> %strided.vec4.2, %strided.vec10.2 %56 = fsub <4 x double> %strided.vec3.2, %strided.vec9.2 %57 = fsub <4 x double> %strided.vec4.2, %strided.vec10.2 %58 = fadd <4 x double> %50, %54 %59 = fadd <4 x double> %51, %55 %60 = fadd <4 x double> %52, %57 %61 = fsub <4 x double> %53, %56 %62 = fsub <4 x double> %50, %54 %63 = fsub <4 x double> %51, %55 %64 = fsub <4 x double> %52, %57 %65 = fadd <4 x double> %53, %56 %66 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %66, align 8, !noalias !5319 %67 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec11.2 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec11.2, ptr %67, align 8, !noalias !5319 %68 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec12.2 = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec12.2, ptr %68, align 8, !noalias !5319 %69 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec13.2 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec13.2, ptr %69, align 8, !noalias !5319 %70 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %71 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %72 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %73 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.3 = load <8 x double>, ptr %70, align 8, !noalias !5319 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %71, align 8, !noalias !5319 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %wide.vec5.3 = load <8 x double>, ptr %72, align 8, !noalias !5319 %strided.vec6.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %strided.vec7.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %wide.vec8.3 = load <8 x double>, ptr %73, align 8, !noalias !5319 %strided.vec9.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %strided.vec10.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %74 = fadd <4 x double> %strided.vec.3, %strided.vec6.3 %75 = fadd <4 x double> %strided.vec1.3, %strided.vec7.3 %76 = fsub <4 x double> %strided.vec.3, %strided.vec6.3 %77 = fsub <4 x double> %strided.vec1.3, %strided.vec7.3 %78 = fadd <4 x double> %strided.vec3.3, %strided.vec9.3 %79 = fadd <4 x double> %strided.vec4.3, %strided.vec10.3 %80 = fsub <4 x double> %strided.vec3.3, %strided.vec9.3 %81 = fsub <4 x double> %strided.vec4.3, %strided.vec10.3 %82 = fadd <4 x double> %74, %78 %83 = fadd <4 x double> %75, %79 %84 = fadd <4 x double> %76, %81 %85 = fsub <4 x double> %77, %80 %86 = fsub <4 x double> %74, %78 %87 = fsub <4 x double> %75, %79 %88 = fsub <4 x double> %76, %81 %89 = fadd <4 x double> %77, %80 %90 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %82, <4 x double> %83, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %90, align 8, !noalias !5319 %91 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec11.3 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> store <8 x double> %interleaved.vec11.3, ptr %91, align 8, !noalias !5319 %92 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec12.3 = shufflevector <4 x double> %86, <4 x double> %87, <8 x i32> store <8 x double> %interleaved.vec12.3, ptr %92, align 8, !noalias !5319 %93 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec13.3 = shufflevector <4 x double> %88, <4 x double> %89, <8 x i32> store <8 x double> %interleaved.vec13.3, ptr %93, align 8, !noalias !5319 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %95 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %96 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %97 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %98 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %99 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %100 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %101 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %102 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %103 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %104 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %104, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %105 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %105, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %106 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %107 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %107, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %108 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %108, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %109 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %109, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %110 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8, i32 1 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %110, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %111 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %111, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %112 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %112, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %113 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %113, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %114 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %114, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %115 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %115, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %116 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %116, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %117 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %117, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %118 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %118, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %119 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %120 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %121 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %122 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %123 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %124 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 8 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 4 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 2 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 1 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 3 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 6 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 5 %132 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 7 %133 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 12 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 10 %135 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 9 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 11 %137 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 14 %138 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 13 %139 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 15 %140 = fneg <4 x double> %wide.masked.gather20 %141 = fneg <4 x double> %wide.masked.gather22 %142 = fneg <4 x double> %wide.masked.gather24 %143 = fneg <4 x double> %wide.masked.gather26 %144 = fneg <4 x double> %wide.masked.gather28 %145 = fneg <4 x double> %wide.masked.gather30 %146 = fneg <4 x double> %wide.masked.gather32 %147 = fneg <4 x double> %wide.masked.gather34 %148 = fneg <4 x double> %wide.masked.gather36 %149 = fneg <4 x double> %wide.masked.gather38 %150 = fneg <4 x double> %wide.masked.gather40 %151 = fneg <4 x double> %wide.masked.gather42 %152 = fneg <4 x double> %wide.masked.gather44 %153 = fneg <4 x double> %wide.masked.gather46 %154 = fneg <4 x double> %wide.masked.gather48 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %155 = getelementptr inbounds i8, <4 x ptr> %94, i64 8 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %156 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 1, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %157 = fmul <4 x double> %wide.masked.gather52, %140 %158 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather51, <4 x double> %157) %159 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather51 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather52, <4 x double> %159) %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %161 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 2, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %162 = fmul <4 x double> %wide.masked.gather54, %141 %163 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather53, <4 x double> %162) %164 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather53 %165 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather54, <4 x double> %164) %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 3, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %167 = fmul <4 x double> %wide.masked.gather56, %142 %168 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather55, <4 x double> %167) %169 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather55 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather56, <4 x double> %169) %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %171 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 4, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %172 = fmul <4 x double> %wide.masked.gather58, %143 %173 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather57, <4 x double> %172) %174 = fmul <4 x double> %wide.masked.gather26, %wide.masked.gather57 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather58, <4 x double> %174) %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %176 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 5, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %176, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %177 = fmul <4 x double> %wide.masked.gather60, %144 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather59, <4 x double> %177) %179 = fmul <4 x double> %wide.masked.gather28, %wide.masked.gather59 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather60, <4 x double> %179) %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %181 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 6, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %181, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %182 = fmul <4 x double> %wide.masked.gather62, %145 %183 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather61, <4 x double> %182) %184 = fmul <4 x double> %wide.masked.gather30, %wide.masked.gather61 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather62, <4 x double> %184) %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %132, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %186 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 7, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %186, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %187 = fmul <4 x double> %wide.masked.gather64, %146 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather63, <4 x double> %187) %189 = fmul <4 x double> %wide.masked.gather32, %wide.masked.gather63 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather64, <4 x double> %189) %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %191 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 8, i32 1 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %191, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %192 = fmul <4 x double> %wide.masked.gather66, %147 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather33, <4 x double> %wide.masked.gather65, <4 x double> %192) %194 = fmul <4 x double> %wide.masked.gather34, %wide.masked.gather65 %195 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather33, <4 x double> %wide.masked.gather66, <4 x double> %194) %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %135, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %196 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 9, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %196, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %197 = fmul <4 x double> %wide.masked.gather68, %148 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather35, <4 x double> %wide.masked.gather67, <4 x double> %197) %199 = fmul <4 x double> %wide.masked.gather36, %wide.masked.gather67 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather35, <4 x double> %wide.masked.gather68, <4 x double> %199) %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 10, i32 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %202 = fmul <4 x double> %wide.masked.gather70, %149 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather69, <4 x double> %202) %204 = fmul <4 x double> %wide.masked.gather38, %wide.masked.gather69 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather70, <4 x double> %204) %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %206 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 11, i32 1 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %206, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %207 = fmul <4 x double> %wide.masked.gather72, %150 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather71, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather40, %wide.masked.gather71 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather72, <4 x double> %209) %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %133, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %211 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 12, i32 1 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %211, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %212 = fmul <4 x double> %wide.masked.gather74, %151 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather73, <4 x double> %212) %214 = fmul <4 x double> %wide.masked.gather42, %wide.masked.gather73 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather74, <4 x double> %214) %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %138, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %216 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 13, i32 1 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %216, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %217 = fmul <4 x double> %wide.masked.gather76, %152 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather75, <4 x double> %217) %219 = fmul <4 x double> %wide.masked.gather44, %wide.masked.gather75 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather76, <4 x double> %219) %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %137, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %221 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 14, i32 1 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %221, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %222 = fmul <4 x double> %wide.masked.gather78, %153 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather77, <4 x double> %222) %224 = fmul <4 x double> %wide.masked.gather46, %wide.masked.gather77 %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather78, <4 x double> %224) %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %226 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 15, i32 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %226, i32 8, <4 x i1> , <4 x double> poison), !noalias !5319 %227 = fmul <4 x double> %wide.masked.gather80, %154 %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather79, <4 x double> %227) %229 = fmul <4 x double> %wide.masked.gather48, %wide.masked.gather79 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather80, <4 x double> %229) %231 = fadd <4 x double> %wide.masked.gather49, %193 %232 = fadd <4 x double> %wide.masked.gather50, %195 %233 = fsub <4 x double> %wide.masked.gather49, %193 %234 = fsub <4 x double> %wide.masked.gather50, %195 %235 = fadd <4 x double> %173, %213 %236 = fadd <4 x double> %175, %215 %237 = fsub <4 x double> %173, %213 %238 = fsub <4 x double> %175, %215 %239 = fadd <4 x double> %163, %203 %240 = fadd <4 x double> %165, %205 %241 = fsub <4 x double> %163, %203 %242 = fsub <4 x double> %165, %205 %243 = fadd <4 x double> %183, %223 %244 = fadd <4 x double> %185, %225 %245 = fsub <4 x double> %183, %223 %246 = fsub <4 x double> %185, %225 %247 = fadd <4 x double> %158, %198 %248 = fadd <4 x double> %160, %200 %249 = fsub <4 x double> %158, %198 %250 = fsub <4 x double> %160, %200 %251 = fadd <4 x double> %178, %218 %252 = fadd <4 x double> %180, %220 %253 = fsub <4 x double> %178, %218 %254 = fsub <4 x double> %180, %220 %255 = fadd <4 x double> %168, %208 %256 = fadd <4 x double> %170, %210 %257 = fsub <4 x double> %168, %208 %258 = fsub <4 x double> %170, %210 %259 = fadd <4 x double> %188, %228 %260 = fadd <4 x double> %190, %230 %261 = fsub <4 x double> %188, %228 %262 = fsub <4 x double> %190, %230 %263 = fadd <4 x double> %231, %235 %264 = fadd <4 x double> %232, %236 %265 = fadd <4 x double> %233, %238 %266 = fsub <4 x double> %234, %237 %267 = fsub <4 x double> %231, %235 %268 = fsub <4 x double> %232, %236 %269 = fsub <4 x double> %233, %238 %270 = fadd <4 x double> %234, %237 %271 = fadd <4 x double> %239, %243 %272 = fadd <4 x double> %240, %244 %273 = fadd <4 x double> %241, %246 %274 = fsub <4 x double> %242, %245 %275 = fsub <4 x double> %239, %243 %276 = fsub <4 x double> %240, %244 %277 = fsub <4 x double> %241, %246 %278 = fadd <4 x double> %242, %245 %279 = fadd <4 x double> %247, %251 %280 = fadd <4 x double> %248, %252 %281 = fadd <4 x double> %249, %254 %282 = fsub <4 x double> %250, %253 %283 = fsub <4 x double> %247, %251 %284 = fsub <4 x double> %248, %252 %285 = fsub <4 x double> %249, %254 %286 = fadd <4 x double> %250, %253 %287 = fadd <4 x double> %255, %259 %288 = fadd <4 x double> %256, %260 %289 = fadd <4 x double> %257, %262 %290 = fsub <4 x double> %258, %261 %291 = fsub <4 x double> %255, %259 %292 = fsub <4 x double> %256, %260 %293 = fsub <4 x double> %257, %262 %294 = fadd <4 x double> %258, %261 %295 = fadd <4 x double> %273, %274 %296 = fsub <4 x double> %274, %273 %297 = fmul <4 x double> %295, %298 = fmul <4 x double> %296, %299 = fsub <4 x double> %277, %278 %300 = fadd <4 x double> %277, %278 %301 = fmul <4 x double> %299, %302 = fmul <4 x double> %300, %303 = fadd <4 x double> %263, %271 %304 = fadd <4 x double> %264, %272 %305 = fadd <4 x double> %265, %297 %306 = fadd <4 x double> %266, %298 %307 = fadd <4 x double> %267, %276 %308 = fsub <4 x double> %268, %275 %309 = fsub <4 x double> %269, %301 %310 = fsub <4 x double> %270, %302 %311 = fsub <4 x double> %263, %271 %312 = fsub <4 x double> %264, %272 %313 = fsub <4 x double> %265, %297 %314 = fsub <4 x double> %266, %298 %315 = fsub <4 x double> %267, %276 %316 = fadd <4 x double> %268, %275 %317 = fadd <4 x double> %269, %301 %318 = fadd <4 x double> %270, %302 %319 = fadd <4 x double> %289, %290 %320 = fsub <4 x double> %290, %289 %321 = fmul <4 x double> %319, %322 = fmul <4 x double> %320, %323 = fsub <4 x double> %293, %294 %324 = fadd <4 x double> %293, %294 %325 = fmul <4 x double> %323, %326 = fmul <4 x double> %324, %327 = fadd <4 x double> %279, %287 %328 = fadd <4 x double> %280, %288 %329 = fadd <4 x double> %281, %321 %330 = fadd <4 x double> %282, %322 %331 = fadd <4 x double> %283, %292 %332 = fsub <4 x double> %284, %291 %333 = fsub <4 x double> %285, %325 %334 = fsub <4 x double> %286, %326 %335 = fsub <4 x double> %279, %287 %336 = fsub <4 x double> %280, %288 %337 = fsub <4 x double> %281, %321 %338 = fsub <4 x double> %282, %322 %339 = fsub <4 x double> %283, %292 %340 = fadd <4 x double> %284, %291 %341 = fadd <4 x double> %285, %325 %342 = fadd <4 x double> %286, %326 %343 = fadd <4 x double> %303, %327 %344 = fadd <4 x double> %304, %328 %interleaved.vec81 = shufflevector <4 x double> %343, <4 x double> %344, <8 x i32> store <8 x double> %interleaved.vec81, ptr %buf.0, align 8, !noalias !5319 %345 = fsub <4 x double> %303, %327 %346 = fsub <4 x double> %304, %328 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %interleaved.vec82 = shufflevector <4 x double> %345, <4 x double> %346, <8 x i32> store <8 x double> %interleaved.vec82, ptr %347, align 8, !noalias !5319 %348 = fmul <4 x double> %330, %349 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %329, <4 x double> , <4 x double> %348) %350 = fmul <4 x double> %329, %351 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %330, <4 x double> , <4 x double> %350) %352 = fadd <4 x double> %305, %349 %353 = fadd <4 x double> %306, %351 %354 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec83 = shufflevector <4 x double> %352, <4 x double> %353, <8 x i32> store <8 x double> %interleaved.vec83, ptr %354, align 8, !noalias !5319 %355 = fsub <4 x double> %305, %349 %356 = fsub <4 x double> %306, %351 %357 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec84 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec84, ptr %357, align 8, !noalias !5319 %358 = fadd <4 x double> %331, %332 %359 = fsub <4 x double> %332, %331 %360 = fmul <4 x double> %358, %361 = fmul <4 x double> %359, %362 = fadd <4 x double> %307, %360 %363 = fadd <4 x double> %308, %361 %364 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec85 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec85, ptr %364, align 8, !noalias !5319 %365 = fsub <4 x double> %307, %360 %366 = fsub <4 x double> %308, %361 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec86 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec86, ptr %367, align 8, !noalias !5319 %368 = fmul <4 x double> %334, %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %333, <4 x double> , <4 x double> %368) %370 = fmul <4 x double> %333, %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %334, <4 x double> , <4 x double> %370) %372 = fadd <4 x double> %309, %369 %373 = fadd <4 x double> %310, %371 %374 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec87 = shufflevector <4 x double> %372, <4 x double> %373, <8 x i32> store <8 x double> %interleaved.vec87, ptr %374, align 8, !noalias !5319 %375 = fsub <4 x double> %309, %369 %376 = fsub <4 x double> %310, %371 %377 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec88 = shufflevector <4 x double> %375, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec88, ptr %377, align 8, !noalias !5319 %378 = fadd <4 x double> %311, %336 %379 = fsub <4 x double> %312, %335 %380 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec89 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec89, ptr %380, align 8, !noalias !5319 %381 = fsub <4 x double> %311, %336 %382 = fadd <4 x double> %312, %335 %383 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec90 = shufflevector <4 x double> %381, <4 x double> %382, <8 x i32> store <8 x double> %interleaved.vec90, ptr %383, align 8, !noalias !5319 %384 = fmul <4 x double> %338, %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %337, <4 x double> , <4 x double> %384) %386 = fmul <4 x double> %337, %387 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %338, <4 x double> , <4 x double> %386) %388 = fsub <4 x double> %313, %385 %389 = fsub <4 x double> %314, %387 %390 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec91 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> store <8 x double> %interleaved.vec91, ptr %390, align 8, !noalias !5319 %391 = fadd <4 x double> %313, %385 %392 = fadd <4 x double> %314, %387 %393 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec92 = shufflevector <4 x double> %391, <4 x double> %392, <8 x i32> store <8 x double> %interleaved.vec92, ptr %393, align 8, !noalias !5319 %394 = fsub <4 x double> %339, %340 %395 = fadd <4 x double> %339, %340 %396 = fmul <4 x double> %394, %397 = fmul <4 x double> %395, %398 = fsub <4 x double> %315, %396 %399 = fsub <4 x double> %316, %397 %400 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec93 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec93, ptr %400, align 8, !noalias !5319 %401 = fadd <4 x double> %315, %396 %402 = fadd <4 x double> %316, %397 %403 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec94 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec94, ptr %403, align 8, !noalias !5319 %404 = fmul <4 x double> %342, %405 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %341, <4 x double> , <4 x double> %404) %406 = fmul <4 x double> %341, %407 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %342, <4 x double> , <4 x double> %406) %408 = fsub <4 x double> %317, %405 %409 = fsub <4 x double> %318, %407 %410 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec95 = shufflevector <4 x double> %408, <4 x double> %409, <8 x i32> store <8 x double> %interleaved.vec95, ptr %410, align 8, !noalias !5319 %411 = fadd <4 x double> %317, %405 %412 = fadd <4 x double> %318, %407 %413 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec96 = shufflevector <4 x double> %411, <4 x double> %412, <8 x i32> store <8 x double> %interleaved.vec96, ptr %413, align 8, !noalias !5319 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5319 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd7c3f32fba438266E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5322 store i64 64, ptr %n.i, align 8, !noalias !5322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5322 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5322 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5322 store ptr null, ptr %_16.i, align 8, !noalias !5322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5322 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5322 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5322 store ptr null, ptr %_24.i, align 8, !noalias !5322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5322 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5322 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5322 store ptr null, ptr %_32.i, align 8, !noalias !5322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5322 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5322 store i64 %w.1, ptr %_34.i, align 8, !noalias !5322 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8db98e7fdac22727E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5322 store ptr null, ptr %_40.i, align 8, !noalias !5322 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8db98e7fdac22727E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5322 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5322 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !5322 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !5322 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %0, align 8, !noalias !5322 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %6 = fadd <4 x double> %strided.vec, %strided.vec6 %7 = fadd <4 x double> %strided.vec1, %strided.vec7 %8 = fsub <4 x double> %strided.vec, %strided.vec6 %9 = fsub <4 x double> %strided.vec1, %strided.vec7 %10 = fadd <4 x double> %strided.vec3, %strided.vec9 %11 = fadd <4 x double> %strided.vec4, %strided.vec10 %12 = fsub <4 x double> %strided.vec3, %strided.vec9 %13 = fsub <4 x double> %strided.vec4, %strided.vec10 %14 = fadd <4 x double> %6, %10 %15 = fadd <4 x double> %7, %11 %16 = fsub <4 x double> %8, %13 %17 = fadd <4 x double> %9, %12 %18 = fsub <4 x double> %6, %10 %19 = fsub <4 x double> %7, %11 %20 = fadd <4 x double> %8, %13 %21 = fsub <4 x double> %9, %12 %interleaved.vec = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5322 %interleaved.vec11 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !5322 %interleaved.vec12 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !5322 %interleaved.vec13 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> store <8 x double> %interleaved.vec13, ptr %3, align 8, !noalias !5322 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %25 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %wide.vec.1 = load <8 x double>, ptr %22, align 8, !noalias !5322 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %23, align 8, !noalias !5322 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %24, align 8, !noalias !5322 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %25, align 8, !noalias !5322 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %26 = fadd <4 x double> %strided.vec.1, %strided.vec6.1 %27 = fadd <4 x double> %strided.vec1.1, %strided.vec7.1 %28 = fsub <4 x double> %strided.vec.1, %strided.vec6.1 %29 = fsub <4 x double> %strided.vec1.1, %strided.vec7.1 %30 = fadd <4 x double> %strided.vec3.1, %strided.vec9.1 %31 = fadd <4 x double> %strided.vec4.1, %strided.vec10.1 %32 = fsub <4 x double> %strided.vec3.1, %strided.vec9.1 %33 = fsub <4 x double> %strided.vec4.1, %strided.vec10.1 %34 = fadd <4 x double> %26, %30 %35 = fadd <4 x double> %27, %31 %36 = fsub <4 x double> %28, %33 %37 = fadd <4 x double> %29, %32 %38 = fsub <4 x double> %26, %30 %39 = fsub <4 x double> %27, %31 %40 = fadd <4 x double> %28, %33 %41 = fsub <4 x double> %29, %32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %34, <4 x double> %35, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %42, align 8, !noalias !5322 %43 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec11.1 = shufflevector <4 x double> %36, <4 x double> %37, <8 x i32> store <8 x double> %interleaved.vec11.1, ptr %43, align 8, !noalias !5322 %44 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec12.1 = shufflevector <4 x double> %38, <4 x double> %39, <8 x i32> store <8 x double> %interleaved.vec12.1, ptr %44, align 8, !noalias !5322 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec13.1 = shufflevector <4 x double> %40, <4 x double> %41, <8 x i32> store <8 x double> %interleaved.vec13.1, ptr %45, align 8, !noalias !5322 %46 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %47 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %48 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %49 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %wide.vec.2 = load <8 x double>, ptr %46, align 8, !noalias !5322 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %47, align 8, !noalias !5322 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %wide.vec5.2 = load <8 x double>, ptr %48, align 8, !noalias !5322 %strided.vec6.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %strided.vec7.2 = shufflevector <8 x double> %wide.vec5.2, <8 x double> poison, <4 x i32> %wide.vec8.2 = load <8 x double>, ptr %49, align 8, !noalias !5322 %strided.vec9.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %strided.vec10.2 = shufflevector <8 x double> %wide.vec8.2, <8 x double> poison, <4 x i32> %50 = fadd <4 x double> %strided.vec.2, %strided.vec6.2 %51 = fadd <4 x double> %strided.vec1.2, %strided.vec7.2 %52 = fsub <4 x double> %strided.vec.2, %strided.vec6.2 %53 = fsub <4 x double> %strided.vec1.2, %strided.vec7.2 %54 = fadd <4 x double> %strided.vec3.2, %strided.vec9.2 %55 = fadd <4 x double> %strided.vec4.2, %strided.vec10.2 %56 = fsub <4 x double> %strided.vec3.2, %strided.vec9.2 %57 = fsub <4 x double> %strided.vec4.2, %strided.vec10.2 %58 = fadd <4 x double> %50, %54 %59 = fadd <4 x double> %51, %55 %60 = fsub <4 x double> %52, %57 %61 = fadd <4 x double> %53, %56 %62 = fsub <4 x double> %50, %54 %63 = fsub <4 x double> %51, %55 %64 = fadd <4 x double> %52, %57 %65 = fsub <4 x double> %53, %56 %66 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %66, align 8, !noalias !5322 %67 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec11.2 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec11.2, ptr %67, align 8, !noalias !5322 %68 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec12.2 = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec12.2, ptr %68, align 8, !noalias !5322 %69 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec13.2 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec13.2, ptr %69, align 8, !noalias !5322 %70 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %71 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %72 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %73 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.3 = load <8 x double>, ptr %70, align 8, !noalias !5322 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %71, align 8, !noalias !5322 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %wide.vec5.3 = load <8 x double>, ptr %72, align 8, !noalias !5322 %strided.vec6.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %strided.vec7.3 = shufflevector <8 x double> %wide.vec5.3, <8 x double> poison, <4 x i32> %wide.vec8.3 = load <8 x double>, ptr %73, align 8, !noalias !5322 %strided.vec9.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %strided.vec10.3 = shufflevector <8 x double> %wide.vec8.3, <8 x double> poison, <4 x i32> %74 = fadd <4 x double> %strided.vec.3, %strided.vec6.3 %75 = fadd <4 x double> %strided.vec1.3, %strided.vec7.3 %76 = fsub <4 x double> %strided.vec.3, %strided.vec6.3 %77 = fsub <4 x double> %strided.vec1.3, %strided.vec7.3 %78 = fadd <4 x double> %strided.vec3.3, %strided.vec9.3 %79 = fadd <4 x double> %strided.vec4.3, %strided.vec10.3 %80 = fsub <4 x double> %strided.vec3.3, %strided.vec9.3 %81 = fsub <4 x double> %strided.vec4.3, %strided.vec10.3 %82 = fadd <4 x double> %74, %78 %83 = fadd <4 x double> %75, %79 %84 = fsub <4 x double> %76, %81 %85 = fadd <4 x double> %77, %80 %86 = fsub <4 x double> %74, %78 %87 = fsub <4 x double> %75, %79 %88 = fadd <4 x double> %76, %81 %89 = fsub <4 x double> %77, %80 %90 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %82, <4 x double> %83, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %90, align 8, !noalias !5322 %91 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec11.3 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> store <8 x double> %interleaved.vec11.3, ptr %91, align 8, !noalias !5322 %92 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec12.3 = shufflevector <4 x double> %86, <4 x double> %87, <8 x i32> store <8 x double> %interleaved.vec12.3, ptr %92, align 8, !noalias !5322 %93 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec13.3 = shufflevector <4 x double> %88, <4 x double> %89, <8 x i32> store <8 x double> %interleaved.vec13.3, ptr %93, align 8, !noalias !5322 %94 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %95 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %96 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %97 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %98 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %99 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %100 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %101 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %102 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %103 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %104 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %104, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %105 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %105, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %106 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %107 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %107, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %108 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %108, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %109 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %109, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %110 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 8, i32 1 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %110, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %111 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %111, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %112 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 9, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %112, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %113 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %113, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %114 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 10, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %114, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %115 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %115, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %116 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 11, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %116, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %117 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %117, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %118 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 12, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %118, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %119 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %120 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 13, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %121 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %122 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 14, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %123 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %124 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 15, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 8 %126 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 4 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 2 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 1 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 3 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 6 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 5 %132 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 7 %133 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 12 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 10 %135 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 9 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 11 %137 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 14 %138 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 13 %139 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 15 %140 = fneg <4 x double> %wide.masked.gather20 %141 = fneg <4 x double> %wide.masked.gather22 %142 = fneg <4 x double> %wide.masked.gather24 %143 = fneg <4 x double> %wide.masked.gather26 %144 = fneg <4 x double> %wide.masked.gather28 %145 = fneg <4 x double> %wide.masked.gather30 %146 = fneg <4 x double> %wide.masked.gather32 %147 = fneg <4 x double> %wide.masked.gather34 %148 = fneg <4 x double> %wide.masked.gather36 %149 = fneg <4 x double> %wide.masked.gather38 %150 = fneg <4 x double> %wide.masked.gather40 %151 = fneg <4 x double> %wide.masked.gather42 %152 = fneg <4 x double> %wide.masked.gather44 %153 = fneg <4 x double> %wide.masked.gather46 %154 = fneg <4 x double> %wide.masked.gather48 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %155 = getelementptr inbounds i8, <4 x ptr> %94, i64 8 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %156 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 1, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %157 = fmul <4 x double> %wide.masked.gather52, %140 %158 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather51, <4 x double> %157) %159 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather51 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather52, <4 x double> %159) %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %161 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 2, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %162 = fmul <4 x double> %wide.masked.gather54, %141 %163 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather53, <4 x double> %162) %164 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather53 %165 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather54, <4 x double> %164) %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 3, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %167 = fmul <4 x double> %wide.masked.gather56, %142 %168 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather55, <4 x double> %167) %169 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather55 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather56, <4 x double> %169) %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %171 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 4, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %172 = fmul <4 x double> %wide.masked.gather58, %143 %173 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather57, <4 x double> %172) %174 = fmul <4 x double> %wide.masked.gather26, %wide.masked.gather57 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather58, <4 x double> %174) %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %176 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 5, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %176, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %177 = fmul <4 x double> %wide.masked.gather60, %144 %178 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather59, <4 x double> %177) %179 = fmul <4 x double> %wide.masked.gather28, %wide.masked.gather59 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather60, <4 x double> %179) %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %181 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 6, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %181, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %182 = fmul <4 x double> %wide.masked.gather62, %145 %183 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather61, <4 x double> %182) %184 = fmul <4 x double> %wide.masked.gather30, %wide.masked.gather61 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather62, <4 x double> %184) %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %132, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %186 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 7, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %186, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %187 = fmul <4 x double> %wide.masked.gather64, %146 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather63, <4 x double> %187) %189 = fmul <4 x double> %wide.masked.gather32, %wide.masked.gather63 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather64, <4 x double> %189) %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %191 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 8, i32 1 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %191, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %192 = fmul <4 x double> %wide.masked.gather66, %147 %193 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather33, <4 x double> %wide.masked.gather65, <4 x double> %192) %194 = fmul <4 x double> %wide.masked.gather34, %wide.masked.gather65 %195 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather33, <4 x double> %wide.masked.gather66, <4 x double> %194) %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %135, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %196 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 9, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %196, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %197 = fmul <4 x double> %wide.masked.gather68, %148 %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather35, <4 x double> %wide.masked.gather67, <4 x double> %197) %199 = fmul <4 x double> %wide.masked.gather36, %wide.masked.gather67 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather35, <4 x double> %wide.masked.gather68, <4 x double> %199) %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %201 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 10, i32 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %201, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %202 = fmul <4 x double> %wide.masked.gather70, %149 %203 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather69, <4 x double> %202) %204 = fmul <4 x double> %wide.masked.gather38, %wide.masked.gather69 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather70, <4 x double> %204) %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %206 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 11, i32 1 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %206, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %207 = fmul <4 x double> %wide.masked.gather72, %150 %208 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather71, <4 x double> %207) %209 = fmul <4 x double> %wide.masked.gather40, %wide.masked.gather71 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather72, <4 x double> %209) %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %133, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %211 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 12, i32 1 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %211, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %212 = fmul <4 x double> %wide.masked.gather74, %151 %213 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather73, <4 x double> %212) %214 = fmul <4 x double> %wide.masked.gather42, %wide.masked.gather73 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather74, <4 x double> %214) %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %138, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %216 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 13, i32 1 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %216, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %217 = fmul <4 x double> %wide.masked.gather76, %152 %218 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather75, <4 x double> %217) %219 = fmul <4 x double> %wide.masked.gather44, %wide.masked.gather75 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather76, <4 x double> %219) %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %137, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %221 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 14, i32 1 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %221, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %222 = fmul <4 x double> %wide.masked.gather78, %153 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather77, <4 x double> %222) %224 = fmul <4 x double> %wide.masked.gather46, %wide.masked.gather77 %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather78, <4 x double> %224) %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %226 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %94, i64 15, i32 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %226, i32 8, <4 x i1> , <4 x double> poison), !noalias !5322 %227 = fmul <4 x double> %wide.masked.gather80, %154 %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather79, <4 x double> %227) %229 = fmul <4 x double> %wide.masked.gather48, %wide.masked.gather79 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather80, <4 x double> %229) %231 = fadd <4 x double> %wide.masked.gather49, %193 %232 = fadd <4 x double> %wide.masked.gather50, %195 %233 = fsub <4 x double> %wide.masked.gather49, %193 %234 = fsub <4 x double> %wide.masked.gather50, %195 %235 = fadd <4 x double> %173, %213 %236 = fadd <4 x double> %175, %215 %237 = fsub <4 x double> %173, %213 %238 = fsub <4 x double> %175, %215 %239 = fadd <4 x double> %163, %203 %240 = fadd <4 x double> %165, %205 %241 = fsub <4 x double> %163, %203 %242 = fsub <4 x double> %165, %205 %243 = fadd <4 x double> %183, %223 %244 = fadd <4 x double> %185, %225 %245 = fsub <4 x double> %183, %223 %246 = fsub <4 x double> %185, %225 %247 = fadd <4 x double> %158, %198 %248 = fadd <4 x double> %160, %200 %249 = fsub <4 x double> %158, %198 %250 = fsub <4 x double> %160, %200 %251 = fadd <4 x double> %178, %218 %252 = fadd <4 x double> %180, %220 %253 = fsub <4 x double> %178, %218 %254 = fsub <4 x double> %180, %220 %255 = fadd <4 x double> %168, %208 %256 = fadd <4 x double> %170, %210 %257 = fsub <4 x double> %168, %208 %258 = fsub <4 x double> %170, %210 %259 = fadd <4 x double> %188, %228 %260 = fadd <4 x double> %190, %230 %261 = fsub <4 x double> %188, %228 %262 = fsub <4 x double> %190, %230 %263 = fadd <4 x double> %231, %235 %264 = fadd <4 x double> %232, %236 %265 = fsub <4 x double> %233, %238 %266 = fadd <4 x double> %234, %237 %267 = fsub <4 x double> %231, %235 %268 = fsub <4 x double> %232, %236 %269 = fadd <4 x double> %233, %238 %270 = fsub <4 x double> %234, %237 %271 = fadd <4 x double> %239, %243 %272 = fadd <4 x double> %240, %244 %273 = fsub <4 x double> %241, %246 %274 = fadd <4 x double> %242, %245 %275 = fsub <4 x double> %239, %243 %276 = fsub <4 x double> %240, %244 %277 = fadd <4 x double> %241, %246 %278 = fsub <4 x double> %242, %245 %279 = fadd <4 x double> %247, %251 %280 = fadd <4 x double> %248, %252 %281 = fsub <4 x double> %249, %254 %282 = fadd <4 x double> %250, %253 %283 = fsub <4 x double> %247, %251 %284 = fsub <4 x double> %248, %252 %285 = fadd <4 x double> %249, %254 %286 = fsub <4 x double> %250, %253 %287 = fadd <4 x double> %255, %259 %288 = fadd <4 x double> %256, %260 %289 = fsub <4 x double> %257, %262 %290 = fadd <4 x double> %258, %261 %291 = fsub <4 x double> %255, %259 %292 = fsub <4 x double> %256, %260 %293 = fadd <4 x double> %257, %262 %294 = fsub <4 x double> %258, %261 %295 = fsub <4 x double> %273, %274 %296 = fadd <4 x double> %273, %274 %297 = fmul <4 x double> %295, %298 = fmul <4 x double> %296, %299 = fadd <4 x double> %277, %278 %300 = fsub <4 x double> %278, %277 %301 = fmul <4 x double> %299, %302 = fmul <4 x double> %300, %303 = fadd <4 x double> %263, %271 %304 = fadd <4 x double> %264, %272 %305 = fadd <4 x double> %265, %297 %306 = fadd <4 x double> %266, %298 %307 = fsub <4 x double> %267, %276 %308 = fadd <4 x double> %268, %275 %309 = fsub <4 x double> %269, %301 %310 = fsub <4 x double> %270, %302 %311 = fsub <4 x double> %263, %271 %312 = fsub <4 x double> %264, %272 %313 = fsub <4 x double> %265, %297 %314 = fsub <4 x double> %266, %298 %315 = fadd <4 x double> %267, %276 %316 = fsub <4 x double> %268, %275 %317 = fadd <4 x double> %269, %301 %318 = fadd <4 x double> %270, %302 %319 = fsub <4 x double> %289, %290 %320 = fadd <4 x double> %289, %290 %321 = fmul <4 x double> %319, %322 = fmul <4 x double> %320, %323 = fadd <4 x double> %293, %294 %324 = fsub <4 x double> %294, %293 %325 = fmul <4 x double> %323, %326 = fmul <4 x double> %324, %327 = fadd <4 x double> %279, %287 %328 = fadd <4 x double> %280, %288 %329 = fadd <4 x double> %281, %321 %330 = fadd <4 x double> %282, %322 %331 = fsub <4 x double> %283, %292 %332 = fadd <4 x double> %284, %291 %333 = fsub <4 x double> %285, %325 %334 = fsub <4 x double> %286, %326 %335 = fsub <4 x double> %279, %287 %336 = fsub <4 x double> %280, %288 %337 = fsub <4 x double> %281, %321 %338 = fsub <4 x double> %282, %322 %339 = fadd <4 x double> %283, %292 %340 = fsub <4 x double> %284, %291 %341 = fadd <4 x double> %285, %325 %342 = fadd <4 x double> %286, %326 %343 = fadd <4 x double> %303, %327 %344 = fadd <4 x double> %304, %328 %interleaved.vec81 = shufflevector <4 x double> %343, <4 x double> %344, <8 x i32> store <8 x double> %interleaved.vec81, ptr %buf.0, align 8, !noalias !5322 %345 = fsub <4 x double> %303, %327 %346 = fsub <4 x double> %304, %328 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %interleaved.vec82 = shufflevector <4 x double> %345, <4 x double> %346, <8 x i32> store <8 x double> %interleaved.vec82, ptr %347, align 8, !noalias !5322 %348 = fmul <4 x double> %330, %349 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %329, <4 x double> , <4 x double> %348) %350 = fmul <4 x double> %329, %351 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %330, <4 x double> , <4 x double> %350) %352 = fadd <4 x double> %305, %349 %353 = fadd <4 x double> %306, %351 %354 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec83 = shufflevector <4 x double> %352, <4 x double> %353, <8 x i32> store <8 x double> %interleaved.vec83, ptr %354, align 8, !noalias !5322 %355 = fsub <4 x double> %305, %349 %356 = fsub <4 x double> %306, %351 %357 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec84 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec84, ptr %357, align 8, !noalias !5322 %358 = fsub <4 x double> %331, %332 %359 = fadd <4 x double> %331, %332 %360 = fmul <4 x double> %358, %361 = fmul <4 x double> %359, %362 = fadd <4 x double> %307, %360 %363 = fadd <4 x double> %308, %361 %364 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec85 = shufflevector <4 x double> %362, <4 x double> %363, <8 x i32> store <8 x double> %interleaved.vec85, ptr %364, align 8, !noalias !5322 %365 = fsub <4 x double> %307, %360 %366 = fsub <4 x double> %308, %361 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec86 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec86, ptr %367, align 8, !noalias !5322 %368 = fmul <4 x double> %334, %369 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %333, <4 x double> , <4 x double> %368) %370 = fmul <4 x double> %333, %371 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %334, <4 x double> , <4 x double> %370) %372 = fadd <4 x double> %309, %369 %373 = fadd <4 x double> %310, %371 %374 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec87 = shufflevector <4 x double> %372, <4 x double> %373, <8 x i32> store <8 x double> %interleaved.vec87, ptr %374, align 8, !noalias !5322 %375 = fsub <4 x double> %309, %369 %376 = fsub <4 x double> %310, %371 %377 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec88 = shufflevector <4 x double> %375, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec88, ptr %377, align 8, !noalias !5322 %378 = fsub <4 x double> %311, %336 %379 = fadd <4 x double> %312, %335 %380 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec89 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec89, ptr %380, align 8, !noalias !5322 %381 = fadd <4 x double> %311, %336 %382 = fsub <4 x double> %312, %335 %383 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec90 = shufflevector <4 x double> %381, <4 x double> %382, <8 x i32> store <8 x double> %interleaved.vec90, ptr %383, align 8, !noalias !5322 %384 = fmul <4 x double> %338, %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %337, <4 x double> , <4 x double> %384) %386 = fmul <4 x double> %337, %387 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %338, <4 x double> , <4 x double> %386) %388 = fsub <4 x double> %313, %385 %389 = fsub <4 x double> %314, %387 %390 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec91 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> store <8 x double> %interleaved.vec91, ptr %390, align 8, !noalias !5322 %391 = fadd <4 x double> %313, %385 %392 = fadd <4 x double> %314, %387 %393 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec92 = shufflevector <4 x double> %391, <4 x double> %392, <8 x i32> store <8 x double> %interleaved.vec92, ptr %393, align 8, !noalias !5322 %394 = fadd <4 x double> %339, %340 %395 = fsub <4 x double> %340, %339 %396 = fmul <4 x double> %394, %397 = fmul <4 x double> %395, %398 = fsub <4 x double> %315, %396 %399 = fsub <4 x double> %316, %397 %400 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec93 = shufflevector <4 x double> %398, <4 x double> %399, <8 x i32> store <8 x double> %interleaved.vec93, ptr %400, align 8, !noalias !5322 %401 = fadd <4 x double> %315, %396 %402 = fadd <4 x double> %316, %397 %403 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec94 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec94, ptr %403, align 8, !noalias !5322 %404 = fmul <4 x double> %342, %405 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %341, <4 x double> , <4 x double> %404) %406 = fmul <4 x double> %341, %407 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %342, <4 x double> , <4 x double> %406) %408 = fsub <4 x double> %317, %405 %409 = fsub <4 x double> %318, %407 %410 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec95 = shufflevector <4 x double> %408, <4 x double> %409, <8 x i32> store <8 x double> %interleaved.vec95, ptr %410, align 8, !noalias !5322 %411 = fadd <4 x double> %317, %405 %412 = fadd <4 x double> %318, %407 %413 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec96 = shufflevector <4 x double> %411, <4 x double> %412, <8 x i32> store <8 x double> %interleaved.vec96, ptr %413, align 8, !noalias !5322 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5322 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd808e1dbfd861110E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5325 store i64 8, ptr %n.i, align 8, !noalias !5325 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5325 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5325 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5325 store ptr null, ptr %_16.i, align 8, !noalias !5325 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5325 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5325 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5325 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5325 store ptr null, ptr %_24.i, align 8, !noalias !5325 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5325 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5325 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5325 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5325 store ptr null, ptr %_32.i, align 8, !noalias !5325 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5325 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5325 store i64 %w.1, ptr %_34.i, align 8, !noalias !5325 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5325 store ptr null, ptr %_40.i, align 8, !noalias !5325 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5325 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5328 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %0, align 8, !noalias !5328 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %1 = fadd <4 x double> %strided.vec, %strided.vec3 %2 = fadd <4 x double> %strided.vec1, %strided.vec4 %3 = fsub <4 x double> %strided.vec, %strided.vec3 %4 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %1, <4 x double> %2, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5328 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec5 = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec5, ptr %5, align 8, !noalias !5328 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %6, i32 8, <2 x i1> , <2 x double> poison), !noalias !5325 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %7, i32 8, <2 x i1> , <2 x double> poison), !noalias !5325 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2 %wide.masked.gather13 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %8, i32 8, <2 x i1> , <2 x double> poison), !noalias !5325 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 2, i32 1 %wide.masked.gather14 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %9, i32 8, <2 x i1> , <2 x double> poison), !noalias !5325 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3 %wide.masked.gather15 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %10, i32 8, <2 x i1> , <2 x double> poison), !noalias !5325 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 3, i32 1 %wide.masked.gather16 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %11, i32 8, <2 x i1> , <2 x double> poison), !noalias !5325 %12 = fneg <2 x double> %wide.masked.gather12 %13 = fneg <2 x double> %wide.masked.gather14 %14 = fneg <2 x double> %wide.masked.gather16 %wide.vec17 = load <16 x double>, ptr %scratch.0, align 8, !noalias !5325 %strided.vec18 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec20 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec21 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %strided.vec25 = shufflevector <16 x double> %wide.vec17, <16 x double> poison, <2 x i32> %15 = fmul <2 x double> %strided.vec21, %12 %16 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %strided.vec20, <2 x double> %15) %17 = fmul <2 x double> %wide.masked.gather12, %strided.vec20 %18 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %strided.vec21, <2 x double> %17) %19 = fmul <2 x double> %strided.vec23, %13 %20 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %strided.vec22, <2 x double> %19) %21 = fmul <2 x double> %wide.masked.gather14, %strided.vec22 %22 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather13, <2 x double> %strided.vec23, <2 x double> %21) %23 = fmul <2 x double> %strided.vec25, %14 %24 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %strided.vec24, <2 x double> %23) %25 = fmul <2 x double> %wide.masked.gather16, %strided.vec24 %26 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather15, <2 x double> %strided.vec25, <2 x double> %25) %27 = fadd <2 x double> %strided.vec18, %20 %28 = fadd <2 x double> %strided.vec19, %22 %29 = fsub <2 x double> %strided.vec18, %20 %30 = fsub <2 x double> %strided.vec19, %22 %31 = fadd <2 x double> %16, %24 %32 = fadd <2 x double> %18, %26 %33 = fsub <2 x double> %16, %24 %34 = fsub <2 x double> %18, %26 %35 = fadd <2 x double> %27, %31 %36 = fadd <2 x double> %28, %32 %interleaved.vec26 = shufflevector <2 x double> %35, <2 x double> %36, <4 x i32> store <4 x double> %interleaved.vec26, ptr %buf.0, align 8, !noalias !5325 %37 = fsub <2 x double> %29, %34 %38 = fadd <2 x double> %30, %33 %39 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec27 = shufflevector <2 x double> %37, <2 x double> %38, <4 x i32> store <4 x double> %interleaved.vec27, ptr %39, align 8, !noalias !5325 %40 = fsub <2 x double> %27, %31 %41 = fsub <2 x double> %28, %32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec28 = shufflevector <2 x double> %40, <2 x double> %41, <4 x i32> store <4 x double> %interleaved.vec28, ptr %42, align 8, !noalias !5325 %43 = fadd <2 x double> %29, %34 %44 = fsub <2 x double> %30, %33 %45 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %interleaved.vec29 = shufflevector <2 x double> %43, <2 x double> %44, <4 x i32> store <4 x double> %interleaved.vec29, ptr %45, align 8, !noalias !5325 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5325 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd8853f1125fa01d7E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h94077bb52a1d8e91E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd8d8a8ee03f56353E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5331 store i64 8, ptr %n.i.i, align 8, !noalias !5331 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5331 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5331 %_12.i.i = icmp eq i64 %buf.1, 8 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5331 store ptr null, ptr %_16.i.i, align 8, !noalias !5331 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5331 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5331 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5331 %_20.i.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5331 store ptr null, ptr %_24.i.i, align 8, !noalias !5331 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5331 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5331 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5331 %_28.i.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5331 store ptr null, ptr %_32.i.i, align 8, !noalias !5331 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5331 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5331 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5331 %_36.i.i = icmp eq i64 %w.1, 8 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h79884735fd752401E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5331 store ptr null, ptr %_40.i.i, align 8, !noalias !5331 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h79884735fd752401E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5331 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !5331 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !5331 %3 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %4 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_33.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !5331 %_34.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.1.i, align 8, !noalias !5331 %5 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.sroa.0.0.copyload.1.i %6 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.1.i, %_34.i.i.i.sroa.0.0.copyload.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5336) tail call void @llvm.experimental.noalias.scope.decl(metadata !5339) %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %8 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %8, align 8, !alias.scope !5339, !noalias !5341, !noundef !3 %9 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %9, align 8, !alias.scope !5339, !noalias !5341, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %10 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %11 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %12 = shufflevector <4 x double> %10, <4 x double> poison, <4 x i32> zeroinitializer %13 = shufflevector <4 x double> %5, <4 x double> poison, <4 x i32> %14 = fmul <4 x double> %13, %12 %15 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %11, <4 x double> %5, <4 x double> %14) #23 %16 = fadd <4 x double> %3, %15 store <4 x double> %16, ptr %scratch.0, align 8, !alias.scope !5336, !noalias !5343 %17 = fsub <4 x double> %3, %15 store <4 x double> %17, ptr %7, align 8, !alias.scope !5336, !noalias !5343 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %data.i5.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %18 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.us.i.1.i = load double, ptr %18, align 8, !alias.scope !5339, !noalias !5341, !noundef !3 %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %19, align 8, !alias.scope !5339, !noalias !5341, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %20 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %21 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %22 = shufflevector <4 x double> %20, <4 x double> poison, <4 x i32> zeroinitializer %23 = shufflevector <4 x double> %6, <4 x double> poison, <4 x i32> %24 = fmul <4 x double> %23, %22 %25 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %21, <4 x double> %6, <4 x double> %24) #23 %26 = fadd <4 x double> %4, %25 store <4 x double> %26, ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5336, !noalias !5343 %27 = fsub <4 x double> %4, %25 store <4 x double> %27, ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5336, !noalias !5343 tail call void @llvm.experimental.noalias.scope.decl(metadata !5344) tail call void @llvm.experimental.noalias.scope.decl(metadata !5347) %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %28, align 8, !alias.scope !5347, !noalias !5349 %29 = shufflevector <4 x double> %16, <4 x double> %26, <4 x i32> %30 = shufflevector <4 x double> %16, <4 x double> %26, <4 x i32> %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %31, %33 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = fadd <4 x double> %29, %35 store <4 x double> %36, ptr %buf.0, align 8, !alias.scope !5344, !noalias !5351 %37 = fsub <4 x double> %29, %35 store <4 x double> %37, ptr %2, align 8, !alias.scope !5344, !noalias !5351 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !5347, !noalias !5349 %38 = shufflevector <4 x double> %17, <4 x double> %27, <4 x i32> %39 = shufflevector <4 x double> %17, <4 x double> %27, <4 x i32> %40 = shufflevector <4 x double> %39, <4 x double> poison, <4 x i32> %41 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %42 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %43 = fmul <4 x double> %40, %42 %44 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %41, <4 x double> %39, <4 x double> %43) #23 %45 = fadd <4 x double> %38, %44 store <4 x double> %45, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !5344, !noalias !5351 %46 = fsub <4 x double> %38, %44 store <4 x double> %46, ptr %_3.i2.i.i.i.1.i, align 8, !alias.scope !5344, !noalias !5351 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5331 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hd945ad037cd1bf81E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5352 store i64 128, ptr %n.i, align 8, !noalias !5352 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5352 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5352 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5352 store ptr null, ptr %_16.i, align 8, !noalias !5352 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5352 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5352 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5352 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5352 store ptr null, ptr %_24.i, align 8, !noalias !5352 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5352 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5352 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5352 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5352 store ptr null, ptr %_32.i, align 8, !noalias !5352 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5352 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5352 store i64 %w.1, ptr %_34.i, align 8, !noalias !5352 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h083e981ab7047bdaE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5352 store ptr null, ptr %_40.i, align 8, !noalias !5352 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h083e981ab7047bdaE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5352 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h083e981ab7047bdaE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h083e981ab7047bdaE.exit" ], [ %index.next, %vector.body ] %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %15 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %wide.vec = load <8 x double>, ptr %14, align 8, !noalias !5352 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %15, align 8, !noalias !5352 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %16, align 8, !noalias !5352 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %17, align 8, !noalias !5352 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %18, align 8, !noalias !5352 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %19, align 8, !noalias !5352 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %20, align 8, !noalias !5352 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %21, align 8, !noalias !5352 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %22 = fadd <4 x double> %strided.vec, %strided.vec12 %23 = fadd <4 x double> %strided.vec1, %strided.vec13 %24 = fsub <4 x double> %strided.vec, %strided.vec12 %25 = fsub <4 x double> %strided.vec1, %strided.vec13 %26 = fadd <4 x double> %strided.vec6, %strided.vec18 %27 = fadd <4 x double> %strided.vec7, %strided.vec19 %28 = fsub <4 x double> %strided.vec6, %strided.vec18 %29 = fsub <4 x double> %strided.vec7, %strided.vec19 %30 = fadd <4 x double> %strided.vec3, %strided.vec15 %31 = fadd <4 x double> %strided.vec4, %strided.vec16 %32 = fsub <4 x double> %strided.vec3, %strided.vec15 %33 = fsub <4 x double> %strided.vec4, %strided.vec16 %34 = fadd <4 x double> %strided.vec9, %strided.vec21 %35 = fadd <4 x double> %strided.vec10, %strided.vec22 %36 = fsub <4 x double> %strided.vec9, %strided.vec21 %37 = fsub <4 x double> %strided.vec10, %strided.vec22 %38 = fadd <4 x double> %22, %26 %39 = fadd <4 x double> %23, %27 %40 = fadd <4 x double> %24, %29 %41 = fsub <4 x double> %25, %28 %42 = fsub <4 x double> %22, %26 %43 = fsub <4 x double> %23, %27 %44 = fsub <4 x double> %24, %29 %45 = fadd <4 x double> %25, %28 %46 = fadd <4 x double> %30, %34 %47 = fadd <4 x double> %31, %35 %48 = fadd <4 x double> %32, %37 %49 = fsub <4 x double> %33, %36 %50 = fadd <4 x double> %49, %48 %51 = fsub <4 x double> %49, %48 %52 = fmul <4 x double> %50, %53 = fmul <4 x double> %51, %54 = fsub <4 x double> %30, %34 %55 = fsub <4 x double> %31, %35 %56 = fsub <4 x double> %32, %37 %57 = fadd <4 x double> %33, %36 %58 = fsub <4 x double> %56, %57 %59 = fadd <4 x double> %57, %56 %60 = fmul <4 x double> %58, %61 = fmul <4 x double> %59, %62 = fadd <4 x double> %38, %46 %63 = fadd <4 x double> %39, %47 %64 = fadd <4 x double> %40, %52 %65 = fadd <4 x double> %41, %53 %66 = fadd <4 x double> %42, %55 %67 = fsub <4 x double> %43, %54 %68 = fsub <4 x double> %44, %60 %69 = fsub <4 x double> %45, %61 %70 = fsub <4 x double> %38, %46 %71 = fsub <4 x double> %39, %47 %72 = fsub <4 x double> %40, %52 %73 = fsub <4 x double> %41, %53 %74 = fsub <4 x double> %42, %55 %75 = fadd <4 x double> %43, %54 %76 = fadd <4 x double> %44, %60 %77 = fadd <4 x double> %45, %61 %78 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec, ptr %78, align 8, !noalias !5352 %79 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %interleaved.vec23 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec23, ptr %79, align 8, !noalias !5352 %80 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %interleaved.vec24 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec24, ptr %80, align 8, !noalias !5352 %81 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %interleaved.vec25 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec25, ptr %81, align 8, !noalias !5352 %82 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec26 = shufflevector <4 x double> %70, <4 x double> %71, <8 x i32> store <8 x double> %interleaved.vec26, ptr %82, align 8, !noalias !5352 %83 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %interleaved.vec27 = shufflevector <4 x double> %72, <4 x double> %73, <8 x i32> store <8 x double> %interleaved.vec27, ptr %83, align 8, !noalias !5352 %84 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %interleaved.vec28 = shufflevector <4 x double> %74, <4 x double> %75, <8 x i32> store <8 x double> %interleaved.vec28, ptr %84, align 8, !noalias !5352 %85 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %interleaved.vec29 = shufflevector <4 x double> %76, <4 x double> %77, <8 x i32> store <8 x double> %interleaved.vec29, ptr %85, align 8, !noalias !5352 %index.next = add nuw i64 %index, 4 %86 = icmp eq i64 %index.next, 16 br i1 %86, label %bb48.i.i.i.preheader, label %vector.body, !llvm.loop !5355 bb48.i.i.i.preheader: ; preds = %vector.body %87 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %88 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %89 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %90 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %91 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %92 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %93 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %94 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 br label %vector.body34 vector.body34: ; preds = %vector.body34, %bb48.i.i.i.preheader %index35 = phi i64 [ 0, %bb48.i.i.i.preheader ], [ %index.next113, %vector.body34 ] %vec.ind = phi <4 x i64> [ , %bb48.i.i.i.preheader ], [ %vec.ind.next, %vector.body34 ] %95 = shl <4 x i64> %vec.ind, %96 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %95 %97 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %98 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %99 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %100 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %101 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %102 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %103 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %104 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %104, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %105 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %105, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %106 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %107 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %107, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %108 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %108, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %109 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %109, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %110 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %110, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %111 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %111, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %112 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %112, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %113 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %113, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %114 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %114, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %115 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %115, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %116 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %116, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %117 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %117, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %118 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %118, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %119 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %120 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %121 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %122 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %123 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %124 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %125 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %126 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 8 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 4 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 2 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 1 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 3 %132 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 6 %133 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 5 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 7 %135 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 12 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 10 %137 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 9 %138 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 11 %139 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 14 %140 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 13 %141 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 15 %142 = fneg <4 x double> %wide.masked.gather36 %143 = fneg <4 x double> %wide.masked.gather38 %144 = fneg <4 x double> %wide.masked.gather40 %145 = fneg <4 x double> %wide.masked.gather42 %146 = fneg <4 x double> %wide.masked.gather44 %147 = fneg <4 x double> %wide.masked.gather46 %148 = fneg <4 x double> %wide.masked.gather48 %149 = fneg <4 x double> %wide.masked.gather50 %150 = fneg <4 x double> %wide.masked.gather52 %151 = fneg <4 x double> %wide.masked.gather54 %152 = fneg <4 x double> %wide.masked.gather56 %153 = fneg <4 x double> %wide.masked.gather58 %154 = fneg <4 x double> %wide.masked.gather60 %155 = fneg <4 x double> %wide.masked.gather62 %156 = fneg <4 x double> %wide.masked.gather64 %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %157 = getelementptr inbounds i8, <4 x ptr> %96, i64 8 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %158 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 1, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %159 = fmul <4 x double> %wide.masked.gather68, %142 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather67, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather36, %wide.masked.gather67 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather68, <4 x double> %161) %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 2, i32 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %164 = fmul <4 x double> %wide.masked.gather70, %143 %165 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather69, <4 x double> %164) %166 = fmul <4 x double> %wide.masked.gather38, %wide.masked.gather69 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather70, <4 x double> %166) %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %168 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 3, i32 1 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %169 = fmul <4 x double> %wide.masked.gather72, %144 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather71, <4 x double> %169) %171 = fmul <4 x double> %wide.masked.gather40, %wide.masked.gather71 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather72, <4 x double> %171) %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %173 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 4, i32 1 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %174 = fmul <4 x double> %wide.masked.gather74, %145 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather73, <4 x double> %174) %176 = fmul <4 x double> %wide.masked.gather42, %wide.masked.gather73 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather74, <4 x double> %176) %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %133, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %178 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 5, i32 1 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %179 = fmul <4 x double> %wide.masked.gather76, %146 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather75, <4 x double> %179) %181 = fmul <4 x double> %wide.masked.gather44, %wide.masked.gather75 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather76, <4 x double> %181) %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %132, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %183 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 6, i32 1 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %184 = fmul <4 x double> %wide.masked.gather78, %147 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather77, <4 x double> %184) %186 = fmul <4 x double> %wide.masked.gather46, %wide.masked.gather77 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather78, <4 x double> %186) %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %188 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 7, i32 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %189 = fmul <4 x double> %wide.masked.gather80, %148 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather79, <4 x double> %189) %191 = fmul <4 x double> %wide.masked.gather48, %wide.masked.gather79 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather80, <4 x double> %191) %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %193 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 8, i32 1 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %193, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %194 = fmul <4 x double> %wide.masked.gather82, %149 %195 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather49, <4 x double> %wide.masked.gather81, <4 x double> %194) %196 = fmul <4 x double> %wide.masked.gather50, %wide.masked.gather81 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather49, <4 x double> %wide.masked.gather82, <4 x double> %196) %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %137, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 9, i32 1 %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %199 = fmul <4 x double> %wide.masked.gather84, %150 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather51, <4 x double> %wide.masked.gather83, <4 x double> %199) %201 = fmul <4 x double> %wide.masked.gather52, %wide.masked.gather83 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather51, <4 x double> %wide.masked.gather84, <4 x double> %201) %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 10, i32 1 %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %204 = fmul <4 x double> %wide.masked.gather86, %151 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather53, <4 x double> %wide.masked.gather85, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather54, %wide.masked.gather85 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather53, <4 x double> %wide.masked.gather86, <4 x double> %206) %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %138, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %208 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 11, i32 1 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %208, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %209 = fmul <4 x double> %wide.masked.gather88, %152 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather55, <4 x double> %wide.masked.gather87, <4 x double> %209) %211 = fmul <4 x double> %wide.masked.gather56, %wide.masked.gather87 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather55, <4 x double> %wide.masked.gather88, <4 x double> %211) %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %135, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 12, i32 1 %wide.masked.gather90 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %214 = fmul <4 x double> %wide.masked.gather90, %153 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather57, <4 x double> %wide.masked.gather89, <4 x double> %214) %216 = fmul <4 x double> %wide.masked.gather58, %wide.masked.gather89 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather57, <4 x double> %wide.masked.gather90, <4 x double> %216) %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %140, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %218 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 13, i32 1 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %218, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %219 = fmul <4 x double> %wide.masked.gather92, %154 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather59, <4 x double> %wide.masked.gather91, <4 x double> %219) %221 = fmul <4 x double> %wide.masked.gather60, %wide.masked.gather91 %222 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather59, <4 x double> %wide.masked.gather92, <4 x double> %221) %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %223 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 14, i32 1 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %223, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %224 = fmul <4 x double> %wide.masked.gather94, %155 %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather61, <4 x double> %wide.masked.gather93, <4 x double> %224) %226 = fmul <4 x double> %wide.masked.gather62, %wide.masked.gather93 %227 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather61, <4 x double> %wide.masked.gather94, <4 x double> %226) %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %228 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 15, i32 1 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %228, i32 8, <4 x i1> , <4 x double> poison), !noalias !5352 %229 = fmul <4 x double> %wide.masked.gather96, %156 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather63, <4 x double> %wide.masked.gather95, <4 x double> %229) %231 = fmul <4 x double> %wide.masked.gather64, %wide.masked.gather95 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather63, <4 x double> %wide.masked.gather96, <4 x double> %231) %233 = fadd <4 x double> %wide.masked.gather65, %195 %234 = fadd <4 x double> %wide.masked.gather66, %197 %235 = fsub <4 x double> %wide.masked.gather65, %195 %236 = fsub <4 x double> %wide.masked.gather66, %197 %237 = fadd <4 x double> %175, %215 %238 = fadd <4 x double> %177, %217 %239 = fsub <4 x double> %175, %215 %240 = fsub <4 x double> %177, %217 %241 = fadd <4 x double> %165, %205 %242 = fadd <4 x double> %167, %207 %243 = fsub <4 x double> %165, %205 %244 = fsub <4 x double> %167, %207 %245 = fadd <4 x double> %185, %225 %246 = fadd <4 x double> %187, %227 %247 = fsub <4 x double> %185, %225 %248 = fsub <4 x double> %187, %227 %249 = fadd <4 x double> %160, %200 %250 = fadd <4 x double> %162, %202 %251 = fsub <4 x double> %160, %200 %252 = fsub <4 x double> %162, %202 %253 = fadd <4 x double> %180, %220 %254 = fadd <4 x double> %182, %222 %255 = fsub <4 x double> %180, %220 %256 = fsub <4 x double> %182, %222 %257 = fadd <4 x double> %170, %210 %258 = fadd <4 x double> %172, %212 %259 = fsub <4 x double> %170, %210 %260 = fsub <4 x double> %172, %212 %261 = fadd <4 x double> %190, %230 %262 = fadd <4 x double> %192, %232 %263 = fsub <4 x double> %190, %230 %264 = fsub <4 x double> %192, %232 %265 = fadd <4 x double> %233, %237 %266 = fadd <4 x double> %234, %238 %267 = fadd <4 x double> %235, %240 %268 = fsub <4 x double> %236, %239 %269 = fsub <4 x double> %233, %237 %270 = fsub <4 x double> %234, %238 %271 = fsub <4 x double> %235, %240 %272 = fadd <4 x double> %236, %239 %273 = fadd <4 x double> %241, %245 %274 = fadd <4 x double> %242, %246 %275 = fadd <4 x double> %243, %248 %276 = fsub <4 x double> %244, %247 %277 = fsub <4 x double> %241, %245 %278 = fsub <4 x double> %242, %246 %279 = fsub <4 x double> %243, %248 %280 = fadd <4 x double> %244, %247 %281 = fadd <4 x double> %249, %253 %282 = fadd <4 x double> %250, %254 %283 = fadd <4 x double> %251, %256 %284 = fsub <4 x double> %252, %255 %285 = fsub <4 x double> %249, %253 %286 = fsub <4 x double> %250, %254 %287 = fsub <4 x double> %251, %256 %288 = fadd <4 x double> %252, %255 %289 = fadd <4 x double> %257, %261 %290 = fadd <4 x double> %258, %262 %291 = fadd <4 x double> %259, %264 %292 = fsub <4 x double> %260, %263 %293 = fsub <4 x double> %257, %261 %294 = fsub <4 x double> %258, %262 %295 = fsub <4 x double> %259, %264 %296 = fadd <4 x double> %260, %263 %297 = fadd <4 x double> %275, %276 %298 = fsub <4 x double> %276, %275 %299 = fmul <4 x double> %297, %300 = fmul <4 x double> %298, %301 = fsub <4 x double> %279, %280 %302 = fadd <4 x double> %279, %280 %303 = fmul <4 x double> %301, %304 = fmul <4 x double> %302, %305 = fadd <4 x double> %265, %273 %306 = fadd <4 x double> %266, %274 %307 = fadd <4 x double> %267, %299 %308 = fadd <4 x double> %268, %300 %309 = fadd <4 x double> %269, %278 %310 = fsub <4 x double> %270, %277 %311 = fsub <4 x double> %271, %303 %312 = fsub <4 x double> %272, %304 %313 = fsub <4 x double> %265, %273 %314 = fsub <4 x double> %266, %274 %315 = fsub <4 x double> %267, %299 %316 = fsub <4 x double> %268, %300 %317 = fsub <4 x double> %269, %278 %318 = fadd <4 x double> %270, %277 %319 = fadd <4 x double> %271, %303 %320 = fadd <4 x double> %272, %304 %321 = fadd <4 x double> %291, %292 %322 = fsub <4 x double> %292, %291 %323 = fmul <4 x double> %321, %324 = fmul <4 x double> %322, %325 = fsub <4 x double> %295, %296 %326 = fadd <4 x double> %295, %296 %327 = fmul <4 x double> %325, %328 = fmul <4 x double> %326, %329 = fadd <4 x double> %281, %289 %330 = fadd <4 x double> %282, %290 %331 = fadd <4 x double> %283, %323 %332 = fadd <4 x double> %284, %324 %333 = fadd <4 x double> %285, %294 %334 = fsub <4 x double> %286, %293 %335 = fsub <4 x double> %287, %327 %336 = fsub <4 x double> %288, %328 %337 = fsub <4 x double> %281, %289 %338 = fsub <4 x double> %282, %290 %339 = fsub <4 x double> %283, %323 %340 = fsub <4 x double> %284, %324 %341 = fsub <4 x double> %285, %294 %342 = fadd <4 x double> %286, %293 %343 = fadd <4 x double> %287, %327 %344 = fadd <4 x double> %288, %328 %345 = fadd <4 x double> %305, %329 %346 = fadd <4 x double> %306, %330 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index35 %interleaved.vec97 = shufflevector <4 x double> %345, <4 x double> %346, <8 x i32> store <8 x double> %interleaved.vec97, ptr %347, align 8, !noalias !5352 %348 = fsub <4 x double> %305, %329 %349 = fsub <4 x double> %306, %330 %350 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index35 %interleaved.vec98 = shufflevector <4 x double> %348, <4 x double> %349, <8 x i32> store <8 x double> %interleaved.vec98, ptr %350, align 8, !noalias !5352 %351 = fmul <4 x double> %332, %352 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %331, <4 x double> , <4 x double> %351) %353 = fmul <4 x double> %331, %354 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %332, <4 x double> , <4 x double> %353) %355 = fadd <4 x double> %307, %352 %356 = fadd <4 x double> %308, %354 %357 = getelementptr inbounds %"num_complex::Complex", ptr %87, i64 %index35 %interleaved.vec99 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec99, ptr %357, align 8, !noalias !5352 %358 = fsub <4 x double> %307, %352 %359 = fsub <4 x double> %308, %354 %360 = getelementptr inbounds %"num_complex::Complex", ptr %91, i64 %index35 %interleaved.vec100 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> store <8 x double> %interleaved.vec100, ptr %360, align 8, !noalias !5352 %361 = fadd <4 x double> %333, %334 %362 = fsub <4 x double> %334, %333 %363 = fmul <4 x double> %361, %364 = fmul <4 x double> %362, %365 = fadd <4 x double> %309, %363 %366 = fadd <4 x double> %310, %364 %367 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index35 %interleaved.vec101 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec101, ptr %367, align 8, !noalias !5352 %368 = fsub <4 x double> %309, %363 %369 = fsub <4 x double> %310, %364 %370 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index35 %interleaved.vec102 = shufflevector <4 x double> %368, <4 x double> %369, <8 x i32> store <8 x double> %interleaved.vec102, ptr %370, align 8, !noalias !5352 %371 = fmul <4 x double> %336, %372 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %335, <4 x double> , <4 x double> %371) %373 = fmul <4 x double> %335, %374 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %336, <4 x double> , <4 x double> %373) %375 = fadd <4 x double> %311, %372 %376 = fadd <4 x double> %312, %374 %377 = getelementptr inbounds %"num_complex::Complex", ptr %88, i64 %index35 %interleaved.vec103 = shufflevector <4 x double> %375, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec103, ptr %377, align 8, !noalias !5352 %378 = fsub <4 x double> %311, %372 %379 = fsub <4 x double> %312, %374 %380 = getelementptr inbounds %"num_complex::Complex", ptr %92, i64 %index35 %interleaved.vec104 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec104, ptr %380, align 8, !noalias !5352 %381 = fadd <4 x double> %313, %338 %382 = fsub <4 x double> %314, %337 %383 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index35 %interleaved.vec105 = shufflevector <4 x double> %381, <4 x double> %382, <8 x i32> store <8 x double> %interleaved.vec105, ptr %383, align 8, !noalias !5352 %384 = fsub <4 x double> %313, %338 %385 = fadd <4 x double> %314, %337 %386 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index35 %interleaved.vec106 = shufflevector <4 x double> %384, <4 x double> %385, <8 x i32> store <8 x double> %interleaved.vec106, ptr %386, align 8, !noalias !5352 %387 = fmul <4 x double> %340, %388 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %339, <4 x double> , <4 x double> %387) %389 = fmul <4 x double> %339, %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %340, <4 x double> , <4 x double> %389) %391 = fsub <4 x double> %315, %388 %392 = fsub <4 x double> %316, %390 %393 = getelementptr inbounds %"num_complex::Complex", ptr %89, i64 %index35 %interleaved.vec107 = shufflevector <4 x double> %391, <4 x double> %392, <8 x i32> store <8 x double> %interleaved.vec107, ptr %393, align 8, !noalias !5352 %394 = fadd <4 x double> %315, %388 %395 = fadd <4 x double> %316, %390 %396 = getelementptr inbounds %"num_complex::Complex", ptr %93, i64 %index35 %interleaved.vec108 = shufflevector <4 x double> %394, <4 x double> %395, <8 x i32> store <8 x double> %interleaved.vec108, ptr %396, align 8, !noalias !5352 %397 = fsub <4 x double> %341, %342 %398 = fadd <4 x double> %341, %342 %399 = fmul <4 x double> %397, %400 = fmul <4 x double> %398, %401 = fsub <4 x double> %317, %399 %402 = fsub <4 x double> %318, %400 %403 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index35 %interleaved.vec109 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec109, ptr %403, align 8, !noalias !5352 %404 = fadd <4 x double> %317, %399 %405 = fadd <4 x double> %318, %400 %406 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index35 %interleaved.vec110 = shufflevector <4 x double> %404, <4 x double> %405, <8 x i32> store <8 x double> %interleaved.vec110, ptr %406, align 8, !noalias !5352 %407 = fmul <4 x double> %344, %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %343, <4 x double> , <4 x double> %407) %409 = fmul <4 x double> %343, %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %344, <4 x double> , <4 x double> %409) %411 = fsub <4 x double> %319, %408 %412 = fsub <4 x double> %320, %410 %413 = getelementptr inbounds %"num_complex::Complex", ptr %90, i64 %index35 %interleaved.vec111 = shufflevector <4 x double> %411, <4 x double> %412, <8 x i32> store <8 x double> %interleaved.vec111, ptr %413, align 8, !noalias !5352 %414 = fadd <4 x double> %319, %408 %415 = fadd <4 x double> %320, %410 %416 = getelementptr inbounds %"num_complex::Complex", ptr %94, i64 %index35 %interleaved.vec112 = shufflevector <4 x double> %414, <4 x double> %415, <8 x i32> store <8 x double> %interleaved.vec112, ptr %416, align 8, !noalias !5352 %index.next113 = add nuw i64 %index35, 4 %vec.ind.next = add <4 x i64> %vec.ind, %417 = icmp eq i64 %index.next113, 8 br i1 %417, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d46d016bd3c6604E.exit", label %vector.body34, !llvm.loop !5356 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d46d016bd3c6604E.exit": ; preds = %vector.body34 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5352 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdac7be82873824bdE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h590f351f909981edE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdad8e230b683d0cbE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5357 store i64 512, ptr %n.i, align 8, !noalias !5357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5357 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5357 %_12.i = icmp eq i64 %buf.1, 512 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5357 store ptr null, ptr %_16.i, align 8, !noalias !5357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5357 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5357 %_20.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5357 store ptr null, ptr %_24.i, align 8, !noalias !5357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5357 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5357 %_28.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5357 store ptr null, ptr %_32.i, align 8, !noalias !5357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5357 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5357 store i64 %w.1, ptr %_34.i, align 8, !noalias !5357 %_36.i = icmp eq i64 %w.1, 512 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d2cf2d9cd09788eE.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5357 store ptr null, ptr %_40.i, align 8, !noalias !5357 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d2cf2d9cd09788eE.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5357 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d2cf2d9cd09788eE.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d2cf2d9cd09788eE.exit" ], [ %index.next, %vector.body ] %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %10 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %11 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %12 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %13 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %14 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %15 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %wide.vec = load <8 x double>, ptr %8, align 8, !noalias !5360 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %9, align 8, !noalias !5360 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %10, align 8, !noalias !5360 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %11, align 8, !noalias !5360 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %12, align 8, !noalias !5360 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %13, align 8, !noalias !5360 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %14, align 8, !noalias !5360 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %15, align 8, !noalias !5360 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %16 = fadd <4 x double> %strided.vec, %strided.vec12 %17 = fadd <4 x double> %strided.vec1, %strided.vec13 %18 = fsub <4 x double> %strided.vec, %strided.vec12 %19 = fsub <4 x double> %strided.vec1, %strided.vec13 %20 = fadd <4 x double> %strided.vec6, %strided.vec18 %21 = fadd <4 x double> %strided.vec7, %strided.vec19 %22 = fsub <4 x double> %strided.vec6, %strided.vec18 %23 = fsub <4 x double> %strided.vec7, %strided.vec19 %24 = fadd <4 x double> %strided.vec3, %strided.vec15 %25 = fadd <4 x double> %strided.vec4, %strided.vec16 %26 = fsub <4 x double> %strided.vec3, %strided.vec15 %27 = fsub <4 x double> %strided.vec4, %strided.vec16 %28 = fadd <4 x double> %strided.vec9, %strided.vec21 %29 = fadd <4 x double> %strided.vec10, %strided.vec22 %30 = fsub <4 x double> %strided.vec9, %strided.vec21 %31 = fsub <4 x double> %strided.vec10, %strided.vec22 %32 = fadd <4 x double> %16, %20 %33 = fadd <4 x double> %17, %21 %34 = fadd <4 x double> %18, %23 %35 = fsub <4 x double> %19, %22 %36 = fsub <4 x double> %16, %20 %37 = fsub <4 x double> %17, %21 %38 = fsub <4 x double> %18, %23 %39 = fadd <4 x double> %19, %22 %40 = fadd <4 x double> %24, %28 %41 = fadd <4 x double> %25, %29 %42 = fadd <4 x double> %26, %31 %43 = fsub <4 x double> %27, %30 %44 = fadd <4 x double> %43, %42 %45 = fsub <4 x double> %43, %42 %46 = fmul <4 x double> %44, %47 = fmul <4 x double> %45, %48 = fsub <4 x double> %24, %28 %49 = fsub <4 x double> %25, %29 %50 = fsub <4 x double> %26, %31 %51 = fadd <4 x double> %27, %30 %52 = fsub <4 x double> %50, %51 %53 = fadd <4 x double> %51, %50 %54 = fmul <4 x double> %52, %55 = fmul <4 x double> %53, %56 = fadd <4 x double> %32, %40 %57 = fadd <4 x double> %33, %41 %58 = fadd <4 x double> %34, %46 %59 = fadd <4 x double> %35, %47 %60 = fadd <4 x double> %36, %49 %61 = fsub <4 x double> %37, %48 %62 = fsub <4 x double> %38, %54 %63 = fsub <4 x double> %39, %55 %64 = fsub <4 x double> %32, %40 %65 = fsub <4 x double> %33, %41 %66 = fsub <4 x double> %34, %46 %67 = fsub <4 x double> %35, %47 %68 = fsub <4 x double> %36, %49 %69 = fadd <4 x double> %37, %48 %70 = fadd <4 x double> %38, %54 %71 = fadd <4 x double> %39, %55 %interleaved.vec = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec, ptr %8, align 8, !noalias !5360 %interleaved.vec23 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec23, ptr %9, align 8, !noalias !5360 %interleaved.vec24 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec24, ptr %10, align 8, !noalias !5360 %interleaved.vec25 = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec25, ptr %11, align 8, !noalias !5360 %interleaved.vec26 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec26, ptr %12, align 8, !noalias !5360 %interleaved.vec27 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec27, ptr %13, align 8, !noalias !5360 %interleaved.vec28 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec28, ptr %14, align 8, !noalias !5360 %interleaved.vec29 = shufflevector <4 x double> %70, <4 x double> %71, <8 x i32> store <8 x double> %interleaved.vec29, ptr %15, align 8, !noalias !5360 %index.next = add nuw i64 %index, 4 %72 = icmp eq i64 %index.next, 64 br i1 %72, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !5363 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %73 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %75 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %76 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %78 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 br label %bb32.i.i.i.i vector.body113: ; preds = %middle.block30, %vector.body113 %index114 = phi i64 [ %index.next152, %vector.body113 ], [ 0, %middle.block30 ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body113 ], [ , %middle.block30 ] %79 = shl <4 x i64> %vec.ind, %80 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %79 %81 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %82 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %83 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %84 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %85 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %86 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %87 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %88 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %89 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %89, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %90 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather123 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %90, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %91 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather124 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %91, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %92 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather125 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %92, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %93 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather126 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %94 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather127 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %94, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %95 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 4 %96 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 2 %97 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 1 %98 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 3 %99 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 6 %100 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 5 %101 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 7 %102 = fneg <4 x double> %wide.masked.gather115 %103 = fneg <4 x double> %wide.masked.gather117 %104 = fneg <4 x double> %wide.masked.gather119 %105 = fneg <4 x double> %wide.masked.gather121 %106 = fneg <4 x double> %wide.masked.gather123 %107 = fneg <4 x double> %wide.masked.gather125 %108 = fneg <4 x double> %wide.masked.gather127 %wide.masked.gather128 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %80, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %109 = getelementptr inbounds i8, <4 x ptr> %80, i64 8 %wide.masked.gather129 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %109, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %wide.masked.gather130 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %110 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 1, i32 1 %wide.masked.gather131 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %110, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %111 = fmul <4 x double> %wide.masked.gather131, %102 %112 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather130, <4 x double> %111) %113 = fmul <4 x double> %wide.masked.gather115, %wide.masked.gather130 %114 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather131, <4 x double> %113) %wide.masked.gather132 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %115 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 2, i32 1 %wide.masked.gather133 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %115, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %116 = fmul <4 x double> %wide.masked.gather133, %103 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather116, <4 x double> %wide.masked.gather132, <4 x double> %116) %118 = fmul <4 x double> %wide.masked.gather117, %wide.masked.gather132 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather116, <4 x double> %wide.masked.gather133, <4 x double> %118) %wide.masked.gather134 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %120 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 3, i32 1 %wide.masked.gather135 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %121 = fmul <4 x double> %wide.masked.gather135, %104 %122 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather118, <4 x double> %wide.masked.gather134, <4 x double> %121) %123 = fmul <4 x double> %wide.masked.gather119, %wide.masked.gather134 %124 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather118, <4 x double> %wide.masked.gather135, <4 x double> %123) %wide.masked.gather136 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %95, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %125 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 4, i32 1 %wide.masked.gather137 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %126 = fmul <4 x double> %wide.masked.gather137, %105 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather120, <4 x double> %wide.masked.gather136, <4 x double> %126) %128 = fmul <4 x double> %wide.masked.gather121, %wide.masked.gather136 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather120, <4 x double> %wide.masked.gather137, <4 x double> %128) %wide.masked.gather138 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 5, i32 1 %wide.masked.gather139 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %131 = fmul <4 x double> %wide.masked.gather139, %106 %132 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather122, <4 x double> %wide.masked.gather138, <4 x double> %131) %133 = fmul <4 x double> %wide.masked.gather123, %wide.masked.gather138 %134 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather122, <4 x double> %wide.masked.gather139, <4 x double> %133) %wide.masked.gather140 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %135 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 6, i32 1 %wide.masked.gather141 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %135, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %136 = fmul <4 x double> %wide.masked.gather141, %107 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather124, <4 x double> %wide.masked.gather140, <4 x double> %136) %138 = fmul <4 x double> %wide.masked.gather125, %wide.masked.gather140 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather124, <4 x double> %wide.masked.gather141, <4 x double> %138) %wide.masked.gather142 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %140 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %80, i64 7, i32 1 %wide.masked.gather143 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %140, i32 8, <4 x i1> , <4 x double> poison), !noalias !5357 %141 = fmul <4 x double> %wide.masked.gather143, %108 %142 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather126, <4 x double> %wide.masked.gather142, <4 x double> %141) %143 = fmul <4 x double> %wide.masked.gather127, %wide.masked.gather142 %144 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather126, <4 x double> %wide.masked.gather143, <4 x double> %143) %145 = fadd <4 x double> %wide.masked.gather128, %127 %146 = fadd <4 x double> %wide.masked.gather129, %129 %147 = fsub <4 x double> %wide.masked.gather128, %127 %148 = fsub <4 x double> %wide.masked.gather129, %129 %149 = fadd <4 x double> %117, %137 %150 = fadd <4 x double> %119, %139 %151 = fsub <4 x double> %117, %137 %152 = fsub <4 x double> %119, %139 %153 = fadd <4 x double> %112, %132 %154 = fadd <4 x double> %114, %134 %155 = fsub <4 x double> %112, %132 %156 = fsub <4 x double> %114, %134 %157 = fadd <4 x double> %122, %142 %158 = fadd <4 x double> %124, %144 %159 = fsub <4 x double> %122, %142 %160 = fsub <4 x double> %124, %144 %161 = fadd <4 x double> %145, %149 %162 = fadd <4 x double> %146, %150 %163 = fadd <4 x double> %153, %157 %164 = fadd <4 x double> %154, %158 %165 = fadd <4 x double> %161, %163 %166 = fadd <4 x double> %162, %164 %167 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index114 %interleaved.vec144 = shufflevector <4 x double> %165, <4 x double> %166, <8 x i32> store <8 x double> %interleaved.vec144, ptr %167, align 8, !noalias !5357 %168 = fsub <4 x double> %161, %163 %169 = fsub <4 x double> %162, %164 %170 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index114 %interleaved.vec145 = shufflevector <4 x double> %168, <4 x double> %169, <8 x i32> store <8 x double> %interleaved.vec145, ptr %170, align 8, !noalias !5357 %171 = fadd <4 x double> %147, %152 %172 = fsub <4 x double> %148, %151 %173 = fadd <4 x double> %155, %160 %174 = fsub <4 x double> %156, %159 %175 = fadd <4 x double> %173, %174 %176 = fsub <4 x double> %174, %173 %177 = fmul <4 x double> %175, %178 = fmul <4 x double> %176, %179 = fadd <4 x double> %171, %177 %180 = fadd <4 x double> %172, %178 %181 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index114 %interleaved.vec146 = shufflevector <4 x double> %179, <4 x double> %180, <8 x i32> store <8 x double> %interleaved.vec146, ptr %181, align 8, !noalias !5357 %182 = fsub <4 x double> %171, %177 %183 = fsub <4 x double> %172, %178 %184 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index114 %interleaved.vec147 = shufflevector <4 x double> %182, <4 x double> %183, <8 x i32> store <8 x double> %interleaved.vec147, ptr %184, align 8, !noalias !5357 %185 = fsub <4 x double> %145, %149 %186 = fsub <4 x double> %146, %150 %187 = fsub <4 x double> %153, %157 %188 = fsub <4 x double> %154, %158 %189 = fadd <4 x double> %185, %188 %190 = fsub <4 x double> %186, %187 %191 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index114 %interleaved.vec148 = shufflevector <4 x double> %189, <4 x double> %190, <8 x i32> store <8 x double> %interleaved.vec148, ptr %191, align 8, !noalias !5357 %192 = fsub <4 x double> %185, %188 %193 = fadd <4 x double> %186, %187 %194 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index114 %interleaved.vec149 = shufflevector <4 x double> %192, <4 x double> %193, <8 x i32> store <8 x double> %interleaved.vec149, ptr %194, align 8, !noalias !5357 %195 = fsub <4 x double> %147, %152 %196 = fadd <4 x double> %148, %151 %197 = fsub <4 x double> %155, %160 %198 = fadd <4 x double> %156, %159 %199 = fsub <4 x double> %197, %198 %200 = fadd <4 x double> %197, %198 %201 = fmul <4 x double> %199, %202 = fmul <4 x double> %200, %203 = fsub <4 x double> %195, %201 %204 = fsub <4 x double> %196, %202 %205 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index114 %interleaved.vec150 = shufflevector <4 x double> %203, <4 x double> %204, <8 x i32> store <8 x double> %interleaved.vec150, ptr %205, align 8, !noalias !5357 %206 = fadd <4 x double> %195, %201 %207 = fadd <4 x double> %196, %202 %208 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index114 %interleaved.vec151 = shufflevector <4 x double> %206, <4 x double> %207, <8 x i32> store <8 x double> %interleaved.vec151, ptr %208, align 8, !noalias !5357 %index.next152 = add nuw i64 %index114, 4 %vec.ind.next = add <4 x i64> %vec.ind, %209 = icmp eq i64 %index.next152, 64 br i1 %209, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc188b4f03b35339aE.exit", label %vector.body113, !llvm.loop !5364 bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block30 %iter.i.i.i.i.sroa.104.0125 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ %332, %middle.block30 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0125, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0125, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %78, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %77, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %73, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %76, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %75, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %210 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %211 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %212 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %213 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %214 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %215 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %216 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %217 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %217, align 8, !noalias !5357, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %218 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %218, align 8, !noalias !5357, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %219 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %219, align 8, !noalias !5357, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %220 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %220, align 8, !noalias !5357, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %221 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %221, align 8, !noalias !5357, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %222 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %222, align 8, !noalias !5357, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %223 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %223, align 8, !noalias !5357, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %224 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %224, align 8, !noalias !5357, !noundef !3 %225 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %225, align 8, !noalias !5357, !noundef !3 %226 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %226, align 8, !noalias !5357, !noundef !3 %227 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %227, align 8, !noalias !5357, !noundef !3 %228 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %228, align 8, !noalias !5357, !noundef !3 %229 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %229, align 8, !noalias !5357, !noundef !3 %230 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %230, align 8, !noalias !5357, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert49 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat50 = shufflevector <4 x double> %broadcast.splatinsert49, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert51 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat52 = shufflevector <4 x double> %broadcast.splatinsert51, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert53 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat54 = shufflevector <4 x double> %broadcast.splatinsert53, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert58 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat59 = shufflevector <4 x double> %broadcast.splatinsert58, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert67 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat68 = shufflevector <4 x double> %broadcast.splatinsert67, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert69 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert76 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat77 = shufflevector <4 x double> %broadcast.splatinsert76, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert85 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat86 = shufflevector <4 x double> %broadcast.splatinsert85, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body34 vector.body34: ; preds = %vector.body34, %bb32.i.i.i.i %index35 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next108, %vector.body34 ] %231 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index35 %232 = getelementptr inbounds %"num_complex::Complex", ptr %212, i64 %index35 %233 = getelementptr inbounds %"num_complex::Complex", ptr %211, i64 %index35 %234 = getelementptr inbounds %"num_complex::Complex", ptr %213, i64 %index35 %235 = getelementptr inbounds %"num_complex::Complex", ptr %210, i64 %index35 %236 = getelementptr inbounds %"num_complex::Complex", ptr %215, i64 %index35 %237 = getelementptr inbounds %"num_complex::Complex", ptr %214, i64 %index35 %238 = getelementptr inbounds %"num_complex::Complex", ptr %216, i64 %index35 %wide.vec36 = load <8 x double>, ptr %231, align 8, !noalias !5357 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %wide.vec39 = load <8 x double>, ptr %232, align 8, !noalias !5357 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %239 = fmul <4 x double> %strided.vec41, %broadcast.splat %240 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat43, <4 x double> %strided.vec40, <4 x double> %239) %241 = fmul <4 x double> %broadcast.splat45, %strided.vec40 %242 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat43, <4 x double> %strided.vec41, <4 x double> %241) %wide.vec46 = load <8 x double>, ptr %233, align 8, !noalias !5357 %strided.vec47 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %strided.vec48 = shufflevector <8 x double> %wide.vec46, <8 x double> poison, <4 x i32> %243 = fmul <4 x double> %strided.vec48, %broadcast.splat50 %244 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat52, <4 x double> %strided.vec47, <4 x double> %243) %245 = fmul <4 x double> %broadcast.splat54, %strided.vec47 %246 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat52, <4 x double> %strided.vec48, <4 x double> %245) %wide.vec55 = load <8 x double>, ptr %234, align 8, !noalias !5357 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %247 = fmul <4 x double> %strided.vec57, %broadcast.splat59 %248 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec56, <4 x double> %247) %249 = fmul <4 x double> %broadcast.splat63, %strided.vec56 %250 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat61, <4 x double> %strided.vec57, <4 x double> %249) %wide.vec64 = load <8 x double>, ptr %235, align 8, !noalias !5357 %strided.vec65 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %strided.vec66 = shufflevector <8 x double> %wide.vec64, <8 x double> poison, <4 x i32> %251 = fmul <4 x double> %strided.vec66, %broadcast.splat68 %252 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat70, <4 x double> %strided.vec65, <4 x double> %251) %253 = fmul <4 x double> %broadcast.splat72, %strided.vec65 %254 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat70, <4 x double> %strided.vec66, <4 x double> %253) %wide.vec73 = load <8 x double>, ptr %236, align 8, !noalias !5357 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %255 = fmul <4 x double> %strided.vec75, %broadcast.splat77 %256 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat79, <4 x double> %strided.vec74, <4 x double> %255) %257 = fmul <4 x double> %broadcast.splat81, %strided.vec74 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat79, <4 x double> %strided.vec75, <4 x double> %257) %wide.vec82 = load <8 x double>, ptr %237, align 8, !noalias !5357 %strided.vec83 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %strided.vec84 = shufflevector <8 x double> %wide.vec82, <8 x double> poison, <4 x i32> %259 = fmul <4 x double> %strided.vec84, %broadcast.splat86 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %strided.vec83, <4 x double> %259) %261 = fmul <4 x double> %broadcast.splat90, %strided.vec83 %262 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat88, <4 x double> %strided.vec84, <4 x double> %261) %wide.vec91 = load <8 x double>, ptr %238, align 8, !noalias !5357 %strided.vec92 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %strided.vec93 = shufflevector <8 x double> %wide.vec91, <8 x double> poison, <4 x i32> %263 = fmul <4 x double> %strided.vec93, %broadcast.splat95 %264 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %strided.vec92, <4 x double> %263) %265 = fmul <4 x double> %broadcast.splat99, %strided.vec92 %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %strided.vec93, <4 x double> %265) %267 = fadd <4 x double> %strided.vec37, %252 %268 = fadd <4 x double> %strided.vec38, %254 %269 = fsub <4 x double> %strided.vec37, %252 %270 = fsub <4 x double> %strided.vec38, %254 %271 = fadd <4 x double> %244, %260 %272 = fadd <4 x double> %246, %262 %273 = fsub <4 x double> %244, %260 %274 = fsub <4 x double> %246, %262 %275 = fadd <4 x double> %240, %256 %276 = fadd <4 x double> %242, %258 %277 = fsub <4 x double> %240, %256 %278 = fsub <4 x double> %242, %258 %279 = fadd <4 x double> %248, %264 %280 = fadd <4 x double> %250, %266 %281 = fsub <4 x double> %248, %264 %282 = fsub <4 x double> %250, %266 %283 = fadd <4 x double> %267, %271 %284 = fadd <4 x double> %268, %272 %285 = fadd <4 x double> %275, %279 %286 = fadd <4 x double> %276, %280 %287 = fadd <4 x double> %283, %285 %288 = fadd <4 x double> %284, %286 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec100 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec100, ptr %289, align 8, !noalias !5357 %290 = fsub <4 x double> %283, %285 %291 = fsub <4 x double> %284, %286 %292 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec101 = shufflevector <4 x double> %290, <4 x double> %291, <8 x i32> store <8 x double> %interleaved.vec101, ptr %292, align 8, !noalias !5357 %293 = fadd <4 x double> %269, %274 %294 = fsub <4 x double> %270, %273 %295 = fadd <4 x double> %277, %282 %296 = fsub <4 x double> %278, %281 %297 = fadd <4 x double> %295, %296 %298 = fsub <4 x double> %296, %295 %299 = fmul <4 x double> %297, %300 = fmul <4 x double> %298, %301 = fadd <4 x double> %293, %299 %302 = fadd <4 x double> %294, %300 %303 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec102 = shufflevector <4 x double> %301, <4 x double> %302, <8 x i32> store <8 x double> %interleaved.vec102, ptr %303, align 8, !noalias !5357 %304 = fsub <4 x double> %293, %299 %305 = fsub <4 x double> %294, %300 %306 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec103 = shufflevector <4 x double> %304, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec103, ptr %306, align 8, !noalias !5357 %307 = fsub <4 x double> %267, %271 %308 = fsub <4 x double> %268, %272 %309 = fsub <4 x double> %275, %279 %310 = fsub <4 x double> %276, %280 %311 = fadd <4 x double> %307, %310 %312 = fsub <4 x double> %308, %309 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec104 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec104, ptr %313, align 8, !noalias !5357 %314 = fsub <4 x double> %307, %310 %315 = fadd <4 x double> %308, %309 %316 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec105 = shufflevector <4 x double> %314, <4 x double> %315, <8 x i32> store <8 x double> %interleaved.vec105, ptr %316, align 8, !noalias !5357 %317 = fsub <4 x double> %269, %274 %318 = fadd <4 x double> %270, %273 %319 = fsub <4 x double> %277, %282 %320 = fadd <4 x double> %278, %281 %321 = fsub <4 x double> %319, %320 %322 = fadd <4 x double> %319, %320 %323 = fmul <4 x double> %321, %324 = fmul <4 x double> %322, %325 = fsub <4 x double> %317, %323 %326 = fsub <4 x double> %318, %324 %327 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec106 = shufflevector <4 x double> %325, <4 x double> %326, <8 x i32> store <8 x double> %interleaved.vec106, ptr %327, align 8, !noalias !5357 %328 = fadd <4 x double> %317, %323 %329 = fadd <4 x double> %318, %324 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index35 %interleaved.vec107 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec107, ptr %330, align 8, !noalias !5357 %index.next108 = add nuw i64 %index35, 4 %331 = icmp eq i64 %index.next108, 8 br i1 %331, label %middle.block30, label %vector.body34, !llvm.loop !5365 middle.block30: ; preds = %vector.body34 %332 = add nuw nsw i64 %iter.i.i.i.i.sroa.104.0125, 1 %exitcond130.not = icmp eq i64 %332, 8 br i1 %exitcond130.not, label %vector.body113, label %bb32.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc188b4f03b35339aE.exit": ; preds = %vector.body113 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5357 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hde76f88ac7deff8dE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5366 store i64 32, ptr %n.i.i, align 8, !noalias !5366 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5366 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5366 %_12.i.i = icmp eq i64 %buf.1, 32 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5366 store ptr null, ptr %_16.i.i, align 8, !noalias !5366 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5366 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5366 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5366 %_20.i.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5366 store ptr null, ptr %_24.i.i, align 8, !noalias !5366 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5366 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5366 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5366 %_28.i.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5366 store ptr null, ptr %_32.i.i, align 8, !noalias !5366 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5366 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5366 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5366 %_36.i.i = icmp eq i64 %w.1, 32 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17he0455c40f7cf3a64E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5366 store ptr null, ptr %_40.i.i, align 8, !noalias !5366 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17he0455c40f7cf3a64E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5366 tail call void @llvm.experimental.noalias.scope.decl(metadata !5371) tail call void @llvm.experimental.noalias.scope.decl(metadata !5374) tail call void @llvm.experimental.noalias.scope.decl(metadata !5376) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %buf.0, align 8, !alias.scope !5371, !noalias !5378 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %4, align 8, !alias.scope !5371, !noalias !5378 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %3, align 8, !alias.scope !5371, !noalias !5378 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %5, align 8, !alias.scope !5371, !noalias !5378 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %2, align 8, !alias.scope !5371, !noalias !5378 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %7, align 8, !alias.scope !5371, !noalias !5378 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !5371, !noalias !5378 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %8, align 8, !alias.scope !5371, !noalias !5378 %16 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %17 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %19 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = bitcast <4 x double> %19 to <4 x i64> %21 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %22 = bitcast <4 x double> %21 to <4 x i64> %23 = xor <4 x i64> %20, %24 = bitcast <4 x i64> %23 to <4 x double> %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = xor <4 x i64> %22, %27 = bitcast <4 x i64> %26 to <4 x double> %28 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> %29 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %30 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %16, %18 %33 = fsub <4 x double> %17, %25 %34 = fsub <4 x double> %16, %18 %35 = fadd <4 x double> %17, %25 %36 = fadd <4 x double> %29, %31 %37 = fsub <4 x double> %30, %28 %38 = bitcast <4 x double> %37 to <4 x i64> %39 = fsub <4 x double> %29, %31 %40 = bitcast <4 x double> %39 to <4 x i64> %41 = fadd <4 x double> %30, %28 %42 = xor <4 x i64> %38, %43 = bitcast <4 x i64> %42 to <4 x double> %44 = shufflevector <4 x double> %43, <4 x double> poison, <4 x i32> %45 = fadd <4 x double> %37, %44 %46 = fmul <4 x double> %45, %47 = xor <4 x i64> %40, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = bitcast <4 x double> %41 to <4 x i64> %51 = xor <4 x i64> %50, %52 = bitcast <4 x i64> %51 to <4 x double> %53 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> %54 = fadd <4 x double> %41, %53 %55 = fmul <4 x double> %54, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %11, align 8, !alias.scope !5376, !noalias !5379 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %10, align 8, !alias.scope !5376, !noalias !5379 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %12, align 8, !alias.scope !5376, !noalias !5379 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %9, align 8, !alias.scope !5376, !noalias !5379 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %14, align 8, !alias.scope !5376, !noalias !5379 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %13, align 8, !alias.scope !5376, !noalias !5379 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %15, align 8, !alias.scope !5376, !noalias !5379 %56 = fadd <4 x double> %32, %36 %57 = fadd <4 x double> %33, %46 %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %60, %58 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %59, <4 x double> %57, <4 x double> %61) #23 %63 = fsub <4 x double> %34, %49 %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = fmul <4 x double> %66, %64 %68 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %65, <4 x double> %63, <4 x double> %67) #23 %69 = fsub <4 x double> %35, %55 %70 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> %71 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %72, %70 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %71, <4 x double> %69, <4 x double> %73) #23 %75 = fsub <4 x double> %32, %36 %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %76, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %75, <4 x double> %79) #23 %81 = fsub <4 x double> %33, %46 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %84, %82 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %81, <4 x double> %85) #23 %87 = fadd <4 x double> %34, %49 %88 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> %89 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %88 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %89, <4 x double> %87, <4 x double> %91) #23 %93 = fadd <4 x double> %35, %55 %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %94 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %95, <4 x double> %93, <4 x double> %97) #23 %99 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> store <4 x double> %99, ptr %scratch.0, align 8, !alias.scope !5374, !noalias !5380 %100 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %101 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 1 store <4 x double> %100, ptr %101, align 8, !alias.scope !5374, !noalias !5380 %102 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %103 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 2 store <4 x double> %102, ptr %103, align 8, !alias.scope !5374, !noalias !5380 %104 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %105 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 3 store <4 x double> %104, ptr %105, align 8, !alias.scope !5374, !noalias !5380 %106 = shufflevector <4 x double> %56, <4 x double> %62, <4 x i32> %107 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 4 store <4 x double> %106, ptr %107, align 8, !alias.scope !5374, !noalias !5380 %108 = shufflevector <4 x double> %68, <4 x double> %74, <4 x i32> %109 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 5 store <4 x double> %108, ptr %109, align 8, !alias.scope !5374, !noalias !5380 %110 = shufflevector <4 x double> %80, <4 x double> %86, <4 x i32> %111 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 6 store <4 x double> %110, ptr %111, align 8, !alias.scope !5374, !noalias !5380 %112 = shufflevector <4 x double> %92, <4 x double> %98, <4 x i32> %113 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 0, i64 7 store <4 x double> %112, ptr %113, align 8, !alias.scope !5374, !noalias !5380 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 9 %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 11 %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 15 %x0.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x4.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x5.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x6.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %x7.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5371, !noalias !5378 %114 = fadd <4 x double> %x0.sroa.0.0.copyload.i.1.i, %x4.sroa.0.0.copyload.i.1.i %115 = fsub <4 x double> %x0.sroa.0.0.copyload.i.1.i, %x4.sroa.0.0.copyload.i.1.i %116 = fadd <4 x double> %x2.sroa.0.0.copyload.i.1.i, %x6.sroa.0.0.copyload.i.1.i %117 = fsub <4 x double> %x2.sroa.0.0.copyload.i.1.i, %x6.sroa.0.0.copyload.i.1.i %118 = bitcast <4 x double> %117 to <4 x i64> %119 = fsub <4 x double> %x3.sroa.0.0.copyload.i.1.i, %x7.sroa.0.0.copyload.i.1.i %120 = bitcast <4 x double> %119 to <4 x i64> %121 = xor <4 x i64> %118, %122 = bitcast <4 x i64> %121 to <4 x double> %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = xor <4 x i64> %120, %125 = bitcast <4 x i64> %124 to <4 x double> %126 = shufflevector <4 x double> %125, <4 x double> poison, <4 x i32> %127 = fadd <4 x double> %x1.sroa.0.0.copyload.i.1.i, %x5.sroa.0.0.copyload.i.1.i %128 = fsub <4 x double> %x1.sroa.0.0.copyload.i.1.i, %x5.sroa.0.0.copyload.i.1.i %129 = fadd <4 x double> %x3.sroa.0.0.copyload.i.1.i, %x7.sroa.0.0.copyload.i.1.i %130 = fadd <4 x double> %114, %116 %131 = fsub <4 x double> %115, %123 %132 = fsub <4 x double> %114, %116 %133 = fadd <4 x double> %115, %123 %134 = fadd <4 x double> %127, %129 %135 = fsub <4 x double> %128, %126 %136 = bitcast <4 x double> %135 to <4 x i64> %137 = fsub <4 x double> %127, %129 %138 = bitcast <4 x double> %137 to <4 x i64> %139 = fadd <4 x double> %128, %126 %140 = xor <4 x i64> %136, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fadd <4 x double> %135, %142 %144 = fmul <4 x double> %143, %145 = xor <4 x i64> %138, %146 = bitcast <4 x i64> %145 to <4 x double> %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = bitcast <4 x double> %139 to <4 x i64> %149 = xor <4 x i64> %148, %150 = bitcast <4 x i64> %149 to <4 x double> %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = fadd <4 x double> %139, %151 %153 = fmul <4 x double> %152, %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %w4.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %w5.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %w6.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %w7.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5376, !noalias !5379 %154 = fadd <4 x double> %130, %134 %155 = fadd <4 x double> %131, %144 %156 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> %157 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %159 = fmul <4 x double> %158, %156 %160 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %155, <4 x double> %159) #23 %161 = fsub <4 x double> %132, %147 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %164, %162 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %161, <4 x double> %165) #23 %167 = fsub <4 x double> %133, %153 %168 = shufflevector <4 x double> %167, <4 x double> poison, <4 x i32> %169 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %170, %168 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %169, <4 x double> %167, <4 x double> %171) #23 %173 = fsub <4 x double> %130, %134 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %177 = fmul <4 x double> %174, %176 %178 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %175, <4 x double> %173, <4 x double> %177) #23 %179 = fsub <4 x double> %131, %144 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %182, %180 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %181, <4 x double> %179, <4 x double> %183) #23 %185 = fadd <4 x double> %132, %147 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %189 = fmul <4 x double> %188, %186 %190 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %187, <4 x double> %185, <4 x double> %189) #23 %191 = fadd <4 x double> %133, %153 %192 = shufflevector <4 x double> %191, <4 x double> poison, <4 x i32> %193 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %195 = fmul <4 x double> %194, %192 %196 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %191, <4 x double> %195) #23 %197 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> store <4 x double> %197, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5374, !noalias !5380 %198 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %199 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 1 store <4 x double> %198, ptr %199, align 8, !alias.scope !5374, !noalias !5380 %200 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %201 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 2 store <4 x double> %200, ptr %201, align 8, !alias.scope !5374, !noalias !5380 %202 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %203 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 3 store <4 x double> %202, ptr %203, align 8, !alias.scope !5374, !noalias !5380 %204 = shufflevector <4 x double> %154, <4 x double> %160, <4 x i32> %205 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 4 store <4 x double> %204, ptr %205, align 8, !alias.scope !5374, !noalias !5380 %206 = shufflevector <4 x double> %166, <4 x double> %172, <4 x i32> %207 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 5 store <4 x double> %206, ptr %207, align 8, !alias.scope !5374, !noalias !5380 %208 = shufflevector <4 x double> %178, <4 x double> %184, <4 x i32> %209 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 6 store <4 x double> %208, ptr %209, align 8, !alias.scope !5374, !noalias !5380 %210 = shufflevector <4 x double> %190, <4 x double> %196, <4 x i32> %211 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 1, i64 7 store <4 x double> %210, ptr %211, align 8, !alias.scope !5374, !noalias !5380 %212 = fadd <4 x double> %99, %197 %213 = fsub <4 x double> %99, %197 %214 = fadd <4 x double> %106, %204 %215 = fsub <4 x double> %106, %204 %216 = bitcast <4 x double> %215 to <4 x i64> %217 = xor <4 x i64> %216, %218 = bitcast <4 x i64> %217 to <4 x double> %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = fadd <4 x double> %212, %214 %221 = fsub <4 x double> %213, %219 %222 = fsub <4 x double> %212, %214 %223 = fadd <4 x double> %213, %219 store <4 x double> %220, ptr %buf.0, align 8, !noalias !5366 store <4 x double> %221, ptr %3, align 8, !noalias !5366 store <4 x double> %222, ptr %2, align 8, !noalias !5366 store <4 x double> %223, ptr %6, align 8, !noalias !5366 %224 = fadd <4 x double> %100, %198 %225 = fsub <4 x double> %100, %198 %226 = fadd <4 x double> %108, %206 %227 = fsub <4 x double> %108, %206 %228 = bitcast <4 x double> %227 to <4 x i64> %229 = xor <4 x i64> %228, %230 = bitcast <4 x i64> %229 to <4 x double> %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fadd <4 x double> %224, %226 %233 = fsub <4 x double> %225, %231 %234 = fsub <4 x double> %224, %226 %235 = fadd <4 x double> %225, %231 store <4 x double> %232, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 store <4 x double> %233, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 store <4 x double> %234, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 %236 = fadd <4 x double> %102, %200 %237 = fsub <4 x double> %102, %200 %238 = fadd <4 x double> %110, %208 %239 = fsub <4 x double> %110, %208 %240 = bitcast <4 x double> %239 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %236, %238 %245 = fsub <4 x double> %237, %243 %246 = fsub <4 x double> %236, %238 %247 = fadd <4 x double> %237, %243 store <4 x double> %244, ptr %4, align 8, !noalias !5366 store <4 x double> %245, ptr %5, align 8, !noalias !5366 store <4 x double> %246, ptr %7, align 8, !noalias !5366 store <4 x double> %247, ptr %8, align 8, !noalias !5366 %248 = fadd <4 x double> %104, %202 %249 = fsub <4 x double> %104, %202 %250 = fadd <4 x double> %112, %210 %251 = fsub <4 x double> %112, %210 %252 = bitcast <4 x double> %251 to <4 x i64> %253 = xor <4 x i64> %252, %254 = bitcast <4 x i64> %253 to <4 x double> %255 = shufflevector <4 x double> %254, <4 x double> poison, <4 x i32> %256 = fadd <4 x double> %248, %250 %257 = fsub <4 x double> %249, %255 %258 = fsub <4 x double> %248, %250 %259 = fadd <4 x double> %249, %255 store <4 x double> %256, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 store <4 x double> %257, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 store <4 x double> %258, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 store <4 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5366 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5366 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdfc8ec7065a99e26E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5381 store i64 128, ptr %n.i.i, align 8, !noalias !5381 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5381 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5381 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5381 store ptr null, ptr %_16.i.i, align 8, !noalias !5381 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5381 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5381 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5381 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5381 store ptr null, ptr %_24.i.i, align 8, !noalias !5381 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5381 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5381 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5381 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5381 store ptr null, ptr %_32.i.i, align 8, !noalias !5381 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5381 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5381 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5381 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb84daf5b3938a87cE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5381 store ptr null, ptr %_40.i.i, align 8, !noalias !5381 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb84daf5b3938a87cE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5381 tail call void @llvm.experimental.noalias.scope.decl(metadata !5386) tail call void @llvm.experimental.noalias.scope.decl(metadata !5389) tail call void @llvm.experimental.noalias.scope.decl(metadata !5391) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb84daf5b3938a87cE.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb84daf5b3938a87cE.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5386, !noalias !5393 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5391, !noalias !5394 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5389, !noalias !5395 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !5389, !noalias !5395 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !5389, !noalias !5395 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !5389, !noalias !5395 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !5389, !noalias !5395 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !5389, !noalias !5395 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !5389, !noalias !5395 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !5389, !noalias !5395 %exitcond.not.i.i = icmp eq i64 %16, 8 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5396) tail call void @llvm.experimental.noalias.scope.decl(metadata !5399) tail call void @llvm.experimental.noalias.scope.decl(metadata !5401) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i br i1 %_2.i.i.i.i.i, label %bb30.i.i, label %bb9.i.i.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %_2.i.i.i.i.i = phi i1 [ false, %bb28.loopexit.i.i ], [ true, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %iter.sroa.104.02174.i.i = phi i64 [ 1, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %122 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02174.i.i, 3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %129, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %130 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %131, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %132, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %133 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %134, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %135, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %136 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %137, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %138, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %139 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %140, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %141, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %142 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %143 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %143, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %144, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %145 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %146 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %146, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %147, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %148 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %149 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %149, align 8, !alias.scope !5401, !noalias !5403, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %150 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %151 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <4 x double> %133, <4 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %164, %bb58.i.i ] %164 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %122, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !5396, !noalias !5404 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5396, !noalias !5404 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !5396, !noalias !5404 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !5396, !noalias !5404 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !5396, !noalias !5404 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !5396, !noalias !5404 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !5396, !noalias !5404 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !5396, !noalias !5404 %165 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %166 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %168 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = bitcast <4 x double> %168 to <4 x i64> %170 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %171 = bitcast <4 x double> %170 to <4 x i64> %172 = xor <4 x i64> %169, %173 = bitcast <4 x i64> %172 to <4 x double> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = xor <4 x i64> %171, %176 = bitcast <4 x i64> %175 to <4 x double> %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %179 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %181 = fadd <4 x double> %165, %167 %182 = fsub <4 x double> %166, %174 %183 = fsub <4 x double> %165, %167 %184 = fadd <4 x double> %166, %174 %185 = fadd <4 x double> %178, %180 %186 = fsub <4 x double> %179, %177 %187 = bitcast <4 x double> %186 to <4 x i64> %188 = fsub <4 x double> %178, %180 %189 = bitcast <4 x double> %188 to <4 x i64> %190 = fadd <4 x double> %179, %177 %191 = xor <4 x i64> %187, %192 = bitcast <4 x i64> %191 to <4 x double> %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = fadd <4 x double> %186, %193 %195 = fmul <4 x double> %194, %196 = xor <4 x i64> %189, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = bitcast <4 x double> %190 to <4 x i64> %200 = xor <4 x i64> %199, %201 = bitcast <4 x i64> %200 to <4 x double> %202 = shufflevector <4 x double> %201, <4 x double> poison, <4 x i32> %203 = fadd <4 x double> %190, %202 %204 = fmul <4 x double> %203, %205 = fadd <4 x double> %181, %185 store <4 x double> %205, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %206 = fadd <4 x double> %182, %195 %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %151, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %150, <4 x double> %206, <4 x double> %208) #23 store <4 x double> %209, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %210 = fsub <4 x double> %183, %198 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %153, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %152, <4 x double> %210, <4 x double> %212) #23 store <4 x double> %213, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %214 = fsub <4 x double> %184, %204 %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %155, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %154, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %218 = fsub <4 x double> %181, %185 %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %157, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %156, <4 x double> %218, <4 x double> %220) #23 store <4 x double> %221, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %222 = fsub <4 x double> %182, %195 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %159, %223 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %222, <4 x double> %224) #23 store <4 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %226 = fadd <4 x double> %183, %198 %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = fmul <4 x double> %161, %227 %229 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %160, <4 x double> %226, <4 x double> %228) #23 store <4 x double> %229, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %230 = fadd <4 x double> %184, %204 %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %163, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %162, <4 x double> %230, <4 x double> %232) #23 store <4 x double> %233, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !5399, !noalias !5405 %exitcond.not.i38.i = icmp eq i64 %164, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i bb9.i.i.i.i: ; preds = %bb28.loopexit.i.i, %bb9.i.i.i.i %iter.i.i.i.sroa.8.062.i = phi i64 [ %243, %bb9.i.i.i.i ], [ 0, %bb28.loopexit.i.i ] %234 = or disjoint i64 %iter.i.i.i.sroa.8.062.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.062.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.062.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5381 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !5381 %235 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %236 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %235, ptr %_3.i.i.i.i.i, align 8, !noalias !5381 store <4 x double> %236, ptr %_3.i2.i.i.i.i, align 8, !noalias !5381 %237 = or disjoint i64 %iter.i.i.i.sroa.8.062.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %234 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %234 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5381 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5381 %238 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %239 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %238, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5381 store <4 x double> %239, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5381 %240 = or disjoint i64 %iter.i.i.i.sroa.8.062.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %237 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %237 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5381 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5381 %241 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %242 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %241, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5381 store <4 x double> %242, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5381 %243 = add nuw nsw i64 %iter.i.i.i.sroa.8.062.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %240 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %240 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5381 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5381 %244 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %245 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %244, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5381 store <4 x double> %245, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5381 %exitcond.not.i.3 = icmp eq i64 %243, 32 br i1 %exitcond.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17h63513bac15f671b2E.exit, label %bb9.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h63513bac15f671b2E.exit: ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5381 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdfdfb9ffc2666b11E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h7ebfa1c6070245f9E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hdfff3127cc4d222aE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5406 store i64 256, ptr %n.i, align 8, !noalias !5406 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5406 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5406 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5406 store ptr null, ptr %_16.i, align 8, !noalias !5406 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5406 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5406 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5406 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5406 store ptr null, ptr %_24.i, align 8, !noalias !5406 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5406 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5406 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5406 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5406 store ptr null, ptr %_32.i, align 8, !noalias !5406 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5406 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5406 store i64 %w.1, ptr %_34.i, align 8, !noalias !5406 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5406 store ptr null, ptr %_40.i, align 8, !noalias !5406 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5406 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %index.next, %vector.body ] %vec.ind = phi <4 x i64> [ , %_ZN4core4iter6traits8iterator8Iterator3zip17h48b8e6eec49cfd93E.exit ], [ %vec.ind.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %7 = shl nuw nsw i64 %index, 2 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %7 %9 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %9, i32 8, <4 x i1> , <4 x double> poison), !noalias !5406 %10 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather1 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %10, i32 8, <4 x i1> , <4 x double> poison), !noalias !5406 %11 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather2 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %11, i32 8, <4 x i1> , <4 x double> poison), !noalias !5406 %12 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather3 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %12, i32 8, <4 x i1> , <4 x double> poison), !noalias !5406 %13 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather4 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %13, i32 8, <4 x i1> , <4 x double> poison), !noalias !5406 %14 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather5 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %14, i32 8, <4 x i1> , <4 x double> poison), !noalias !5406 %15 = fneg <4 x double> %wide.masked.gather1 %16 = fneg <4 x double> %wide.masked.gather3 %17 = fneg <4 x double> %wide.masked.gather5 %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !5406 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec6 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec7 = load <8 x double>, ptr %4, align 8, !noalias !5406 %strided.vec8 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %strided.vec9 = shufflevector <8 x double> %wide.vec7, <8 x double> poison, <4 x i32> %wide.vec10 = load <8 x double>, ptr %5, align 8, !noalias !5406 %strided.vec11 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %strided.vec12 = shufflevector <8 x double> %wide.vec10, <8 x double> poison, <4 x i32> %wide.vec13 = load <8 x double>, ptr %6, align 8, !noalias !5406 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <4 x i32> %18 = fadd <4 x double> %strided.vec, %strided.vec11 %19 = fadd <4 x double> %strided.vec6, %strided.vec12 %20 = fsub <4 x double> %strided.vec, %strided.vec11 %21 = fsub <4 x double> %strided.vec6, %strided.vec12 %22 = fadd <4 x double> %strided.vec8, %strided.vec14 %23 = fadd <4 x double> %strided.vec9, %strided.vec15 %24 = fsub <4 x double> %strided.vec8, %strided.vec14 %25 = fsub <4 x double> %strided.vec9, %strided.vec15 %26 = fadd <4 x double> %18, %22 %27 = fadd <4 x double> %19, %23 %28 = fadd <4 x double> %20, %25 %29 = fsub <4 x double> %21, %24 %30 = fmul <4 x double> %29, %15 %31 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %28, <4 x double> %30) %32 = fmul <4 x double> %wide.masked.gather1, %28 %33 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %29, <4 x double> %32) %34 = fsub <4 x double> %18, %22 %35 = fsub <4 x double> %19, %23 %36 = fmul <4 x double> %35, %16 %37 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %34, <4 x double> %36) %38 = fmul <4 x double> %wide.masked.gather3, %34 %39 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather2, <4 x double> %35, <4 x double> %38) %40 = fsub <4 x double> %20, %25 %41 = fadd <4 x double> %21, %24 %42 = fmul <4 x double> %41, %17 %43 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %40, <4 x double> %42) %44 = fmul <4 x double> %wide.masked.gather5, %40 %45 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather4, <4 x double> %41, <4 x double> %44) %46 = shufflevector <4 x double> %26, <4 x double> %27, <8 x i32> %47 = shufflevector <4 x double> %31, <4 x double> %33, <8 x i32> %48 = shufflevector <4 x double> %37, <4 x double> %39, <8 x i32> %49 = shufflevector <4 x double> %43, <4 x double> %45, <8 x i32> %50 = shufflevector <8 x double> %46, <8 x double> %47, <16 x i32> %51 = shufflevector <8 x double> %48, <8 x double> %49, <16 x i32> %interleaved.vec = shufflevector <16 x double> %50, <16 x double> %51, <32 x i32> store <32 x double> %interleaved.vec, ptr %8, align 8, !noalias !5406 %index.next = add nuw i64 %index, 4 %vec.ind.next = add <4 x i64> %vec.ind, %52 = icmp eq i64 %index.next, 60 br i1 %52, label %bb24.i.i.i, label %vector.body, !llvm.loop !5409 bb24.i.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i.i = load double, ptr %53, align 8, !noalias !5406, !noundef !3 %54 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %54, align 8, !noalias !5406, !noundef !3 %55 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2 %w2.0.i.i.i = load double, ptr %55, align 8, !noalias !5406, !noundef !3 %56 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %56, align 8, !noalias !5406, !noundef !3 %57 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3 %w3.0.i.i.i = load double, ptr %57, align 8, !noalias !5406, !noundef !3 %58 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %58, align 8, !noalias !5406, !noundef !3 %59 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 242 %60 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 241 %61 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 243 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5406 %63 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5406 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5406 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !5406 %66 = fadd <2 x double> %62, %64 %67 = fadd <2 x double> %63, %65 %68 = fadd <2 x double> %66, %67 store <2 x double> %68, ptr %data.i.i.i.i.i.i, align 8, !noalias !5406 %69 = fsub <2 x double> %62, %64 %70 = fsub <2 x double> %63, %65 %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> %72 = fadd <2 x double> %69, %71 %73 = fsub <2 x double> %69, %71 %74 = shufflevector <2 x double> %72, <2 x double> %73, <2 x i32> %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> %76 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %77 = insertelement <2 x double> %76, double %w1.1.i.i.i, i64 1 %78 = fmul <2 x double> %75, %77 %79 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %80 = shufflevector <2 x double> %79, <2 x double> poison, <2 x i32> zeroinitializer %81 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %80, <2 x double> %74, <2 x double> %78) store <2 x double> %81, ptr %60, align 8, !noalias !5406 %82 = fsub <2 x double> %66, %67 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> %84 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %85 = insertelement <2 x double> %84, double %w2.1.i.i.i, i64 1 %86 = fmul <2 x double> %83, %85 %87 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer %89 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %88, <2 x double> %82, <2 x double> %86) store <2 x double> %89, ptr %59, align 8, !noalias !5406 %90 = shufflevector <2 x double> %73, <2 x double> %72, <2 x i32> %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> %92 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %93 = insertelement <2 x double> %92, double %w3.1.i.i.i, i64 1 %94 = fmul <2 x double> %91, %93 %95 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer %97 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %96, <2 x double> %90, <2 x double> %94) store <2 x double> %97, ptr %61, align 8, !noalias !5406 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 189 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1 %w1.0.i.i.i.1 = load double, ptr %98, align 8, !noalias !5406, !noundef !3 %99 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %99, align 8, !noalias !5406, !noundef !3 %100 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2 %w2.0.i.i.i.1 = load double, ptr %100, align 8, !noalias !5406, !noundef !3 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %101, align 8, !noalias !5406, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3 %w3.0.i.i.i.1 = load double, ptr %102, align 8, !noalias !5406, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %103, align 8, !noalias !5406, !noundef !3 %104 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 246 %105 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 245 %106 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 247 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %107 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5406 %108 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5406 %109 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5406 %110 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5406 %111 = fadd <2 x double> %107, %109 %112 = fadd <2 x double> %108, %110 %113 = fadd <2 x double> %111, %112 store <2 x double> %113, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5406 %114 = fsub <2 x double> %107, %109 %115 = fsub <2 x double> %108, %110 %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> %117 = fadd <2 x double> %114, %116 %118 = fsub <2 x double> %114, %116 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> %121 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %122 = insertelement <2 x double> %121, double %w1.1.i.i.i.1, i64 1 %123 = fmul <2 x double> %120, %122 %124 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %125 = shufflevector <2 x double> %124, <2 x double> poison, <2 x i32> zeroinitializer %126 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %125, <2 x double> %119, <2 x double> %123) store <2 x double> %126, ptr %105, align 8, !noalias !5406 %127 = fsub <2 x double> %111, %112 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> %129 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %130 = insertelement <2 x double> %129, double %w2.1.i.i.i.1, i64 1 %131 = fmul <2 x double> %128, %130 %132 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> zeroinitializer %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %133, <2 x double> %127, <2 x double> %131) store <2 x double> %134, ptr %104, align 8, !noalias !5406 %135 = shufflevector <2 x double> %118, <2 x double> %117, <2 x i32> %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %138 = insertelement <2 x double> %137, double %w3.1.i.i.i.1, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %106, align 8, !noalias !5406 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 190 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.i.2 = load double, ptr %143, align 8, !noalias !5406, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %144, align 8, !noalias !5406, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2 %w2.0.i.i.i.2 = load double, ptr %145, align 8, !noalias !5406, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %146, align 8, !noalias !5406, !noundef !3 %147 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3 %w3.0.i.i.i.2 = load double, ptr %147, align 8, !noalias !5406, !noundef !3 %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %148, align 8, !noalias !5406, !noundef !3 %149 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249 %151 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %152 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5406 %153 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5406 %154 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5406 %155 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5406 %156 = fadd <2 x double> %152, %154 %157 = fadd <2 x double> %153, %155 %158 = fadd <2 x double> %156, %157 store <2 x double> %158, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5406 %159 = fsub <2 x double> %152, %154 %160 = fsub <2 x double> %153, %155 %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = fadd <2 x double> %159, %161 %163 = fsub <2 x double> %159, %161 %164 = shufflevector <2 x double> %162, <2 x double> %163, <2 x i32> %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> %166 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %167 = insertelement <2 x double> %166, double %w1.1.i.i.i.2, i64 1 %168 = fmul <2 x double> %165, %167 %169 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> zeroinitializer %171 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %170, <2 x double> %164, <2 x double> %168) store <2 x double> %171, ptr %150, align 8, !noalias !5406 %172 = fsub <2 x double> %156, %157 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %175 = insertelement <2 x double> %174, double %w2.1.i.i.i.2, i64 1 %176 = fmul <2 x double> %173, %175 %177 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer %179 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %178, <2 x double> %172, <2 x double> %176) store <2 x double> %179, ptr %149, align 8, !noalias !5406 %180 = shufflevector <2 x double> %163, <2 x double> %162, <2 x i32> %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> %182 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %183 = insertelement <2 x double> %182, double %w3.1.i.i.i.2, i64 1 %184 = fmul <2 x double> %181, %183 %185 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %186 = shufflevector <2 x double> %185, <2 x double> poison, <2 x i32> zeroinitializer %187 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %186, <2 x double> %180, <2 x double> %184) store <2 x double> %187, ptr %151, align 8, !noalias !5406 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 191 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1 %w1.0.i.i.i.3 = load double, ptr %188, align 8, !noalias !5406, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %189, align 8, !noalias !5406, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2 %w2.0.i.i.i.3 = load double, ptr %190, align 8, !noalias !5406, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %191, align 8, !noalias !5406, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3 %w3.0.i.i.i.3 = load double, ptr %192, align 8, !noalias !5406, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %193, align 8, !noalias !5406, !noundef !3 %194 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %195 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253 %196 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %197 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5406 %198 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5406 %199 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5406 %200 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5406 %201 = fadd <2 x double> %197, %199 %202 = fadd <2 x double> %198, %200 %203 = fadd <2 x double> %201, %202 store <2 x double> %203, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5406 %204 = fsub <2 x double> %197, %199 %205 = fsub <2 x double> %198, %200 %206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> %207 = fadd <2 x double> %204, %206 %208 = fsub <2 x double> %204, %206 %209 = shufflevector <2 x double> %207, <2 x double> %208, <2 x i32> %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> %211 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %212 = insertelement <2 x double> %211, double %w1.1.i.i.i.3, i64 1 %213 = fmul <2 x double> %210, %212 %214 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer %216 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %215, <2 x double> %209, <2 x double> %213) store <2 x double> %216, ptr %195, align 8, !noalias !5406 %217 = fsub <2 x double> %201, %202 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> %219 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %220 = insertelement <2 x double> %219, double %w2.1.i.i.i.3, i64 1 %221 = fmul <2 x double> %218, %220 %222 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer %224 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %223, <2 x double> %217, <2 x double> %221) store <2 x double> %224, ptr %194, align 8, !noalias !5406 %225 = shufflevector <2 x double> %208, <2 x double> %207, <2 x i32> %226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> %227 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %228 = insertelement <2 x double> %227, double %w3.1.i.i.i.3, i64 1 %229 = fmul <2 x double> %226, %228 %230 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %231 = shufflevector <2 x double> %230, <2 x double> poison, <2 x i32> zeroinitializer %232 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %231, <2 x double> %225, <2 x double> %229) store <2 x double> %232, ptr %196, align 8, !noalias !5406 %233 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %234 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %235 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 br label %vector.body20 vector.body20: ; preds = %vector.body20, %bb24.i.i.i %index21 = phi i64 [ 0, %bb24.i.i.i ], [ %index.next62, %vector.body20 ] %vec.ind22 = phi <4 x i64> [ , %bb24.i.i.i ], [ %vec.ind.next23, %vector.body20 ] %236 = shl nuw nsw <4 x i64> %vec.ind22, %237 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %236 %238 = getelementptr inbounds %"num_complex::Complex", ptr %234, <4 x i64> %236 %239 = getelementptr inbounds %"num_complex::Complex", ptr %233, <4 x i64> %236 %240 = getelementptr inbounds %"num_complex::Complex", ptr %235, <4 x i64> %236 %241 = shl nuw nsw <4 x i64> %vec.ind22, %242 = extractelement <4 x i64> %241, i64 0 %243 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %242 %244 = extractelement <4 x i64> %241, i64 1 %245 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %244 %246 = extractelement <4 x i64> %241, i64 2 %247 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %246 %248 = extractelement <4 x i64> %241, i64 3 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %248 %250 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %250, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %251 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 1, i32 1 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %251, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %252 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %252, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %253 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 2, i32 1 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %253, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %254 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %254, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %255 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %236, i64 3, i32 1 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %255, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %256 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8 %257 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8 %258 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8 %259 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 8 %260 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4 %261 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4 %263 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 4 %264 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12 %265 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12 %266 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12 %267 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 12 %268 = fneg <4 x double> %wide.masked.gather25 %269 = fneg <4 x double> %wide.masked.gather27 %270 = fneg <4 x double> %wide.masked.gather29 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %237, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %271 = getelementptr inbounds i8, <4 x ptr> %237, i64 8 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %271, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %238, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %272 = getelementptr inbounds i8, <4 x ptr> %238, i64 8 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %272, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %239, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %273 = getelementptr inbounds i8, <4 x ptr> %239, i64 8 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %273, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %240, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %274 = getelementptr inbounds i8, <4 x ptr> %240, i64 8 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %274, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %275 = fadd <4 x double> %wide.masked.gather30, %wide.masked.gather34 %276 = fadd <4 x double> %wide.masked.gather31, %wide.masked.gather35 %277 = fsub <4 x double> %wide.masked.gather30, %wide.masked.gather34 %278 = fsub <4 x double> %wide.masked.gather31, %wide.masked.gather35 %279 = fadd <4 x double> %wide.masked.gather32, %wide.masked.gather36 %280 = fadd <4 x double> %wide.masked.gather33, %wide.masked.gather37 %281 = fsub <4 x double> %wide.masked.gather32, %wide.masked.gather36 %282 = fsub <4 x double> %wide.masked.gather33, %wide.masked.gather37 %283 = fadd <4 x double> %275, %279 %284 = fadd <4 x double> %276, %280 %285 = extractelement <4 x double> %283, i64 0 store double %285, ptr %243, align 8, !noalias !5410 %286 = extractelement <4 x double> %283, i64 1 store double %286, ptr %245, align 8, !noalias !5410 %287 = extractelement <4 x double> %283, i64 2 store double %287, ptr %247, align 8, !noalias !5410 %288 = getelementptr inbounds i8, ptr %243, i64 8 %289 = getelementptr inbounds i8, ptr %245, i64 8 %290 = getelementptr inbounds i8, ptr %247, i64 8 %291 = extractelement <4 x double> %284, i64 0 store double %291, ptr %288, align 8, !noalias !5410 %292 = extractelement <4 x double> %284, i64 1 store double %292, ptr %289, align 8, !noalias !5410 %293 = extractelement <4 x double> %284, i64 2 store double %293, ptr %290, align 8, !noalias !5410 %294 = shufflevector <4 x double> %283, <4 x double> %284, <2 x i32> store <2 x double> %294, ptr %249, align 8, !noalias !5410 %295 = fadd <4 x double> %277, %282 %296 = fsub <4 x double> %278, %281 %297 = fmul <4 x double> %296, %268 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %295, <4 x double> %297) %299 = fmul <4 x double> %wide.masked.gather25, %295 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %296, <4 x double> %299) %301 = extractelement <4 x double> %298, i64 0 store double %301, ptr %260, align 8, !noalias !5410 %302 = extractelement <4 x double> %298, i64 1 store double %302, ptr %261, align 8, !noalias !5410 %303 = extractelement <4 x double> %298, i64 2 store double %303, ptr %262, align 8, !noalias !5410 %304 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 4, i32 1 %305 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 4, i32 1 %306 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 4, i32 1 %307 = extractelement <4 x double> %300, i64 0 store double %307, ptr %304, align 8, !noalias !5410 %308 = extractelement <4 x double> %300, i64 1 store double %308, ptr %305, align 8, !noalias !5410 %309 = extractelement <4 x double> %300, i64 2 store double %309, ptr %306, align 8, !noalias !5410 %310 = shufflevector <4 x double> %298, <4 x double> %300, <2 x i32> store <2 x double> %310, ptr %263, align 8, !noalias !5410 %311 = fsub <4 x double> %275, %279 %312 = fsub <4 x double> %276, %280 %313 = fmul <4 x double> %312, %269 %314 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %311, <4 x double> %313) %315 = fmul <4 x double> %wide.masked.gather27, %311 %316 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %312, <4 x double> %315) %317 = extractelement <4 x double> %314, i64 0 store double %317, ptr %256, align 8, !noalias !5410 %318 = extractelement <4 x double> %314, i64 1 store double %318, ptr %257, align 8, !noalias !5410 %319 = extractelement <4 x double> %314, i64 2 store double %319, ptr %258, align 8, !noalias !5410 %320 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 8, i32 1 %321 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 8, i32 1 %322 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 8, i32 1 %323 = extractelement <4 x double> %316, i64 0 store double %323, ptr %320, align 8, !noalias !5410 %324 = extractelement <4 x double> %316, i64 1 store double %324, ptr %321, align 8, !noalias !5410 %325 = extractelement <4 x double> %316, i64 2 store double %325, ptr %322, align 8, !noalias !5410 %326 = shufflevector <4 x double> %314, <4 x double> %316, <2 x i32> store <2 x double> %326, ptr %259, align 8, !noalias !5410 %327 = fsub <4 x double> %277, %282 %328 = fadd <4 x double> %278, %281 %329 = fmul <4 x double> %328, %270 %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %327, <4 x double> %329) %331 = fmul <4 x double> %wide.masked.gather29, %327 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %328, <4 x double> %331) %333 = extractelement <4 x double> %330, i64 0 store double %333, ptr %264, align 8, !noalias !5410 %334 = extractelement <4 x double> %330, i64 1 store double %334, ptr %265, align 8, !noalias !5410 %335 = extractelement <4 x double> %330, i64 2 store double %335, ptr %266, align 8, !noalias !5410 %336 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 12, i32 1 %337 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 12, i32 1 %338 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 12, i32 1 %339 = extractelement <4 x double> %332, i64 0 store double %339, ptr %336, align 8, !noalias !5410 %340 = extractelement <4 x double> %332, i64 1 store double %340, ptr %337, align 8, !noalias !5410 %341 = extractelement <4 x double> %332, i64 2 store double %341, ptr %338, align 8, !noalias !5410 %342 = shufflevector <4 x double> %330, <4 x double> %332, <2 x i32> store <2 x double> %342, ptr %267, align 8, !noalias !5410 %343 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1 %344 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1 %345 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1 %346 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1 %347 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1 %348 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1 %349 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1 %350 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 1 %351 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5 %352 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5 %353 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5 %354 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 5 %355 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9 %356 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9 %357 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9 %358 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 9 %359 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13 %360 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13 %361 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13 %362 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 13 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %343, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %363 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 1, i32 1 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %344, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %364 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 1, i32 1 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %345, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %365 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 1, i32 1 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %346, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %366 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 1, i32 1 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %367 = fadd <4 x double> %wide.masked.gather38, %wide.masked.gather42 %368 = fadd <4 x double> %wide.masked.gather39, %wide.masked.gather43 %369 = fsub <4 x double> %wide.masked.gather38, %wide.masked.gather42 %370 = fsub <4 x double> %wide.masked.gather39, %wide.masked.gather43 %371 = fadd <4 x double> %wide.masked.gather40, %wide.masked.gather44 %372 = fadd <4 x double> %wide.masked.gather41, %wide.masked.gather45 %373 = fsub <4 x double> %wide.masked.gather40, %wide.masked.gather44 %374 = fsub <4 x double> %wide.masked.gather41, %wide.masked.gather45 %375 = fadd <4 x double> %367, %371 %376 = fadd <4 x double> %368, %372 %377 = extractelement <4 x double> %375, i64 0 store double %377, ptr %347, align 8, !noalias !5410 %378 = extractelement <4 x double> %375, i64 1 store double %378, ptr %348, align 8, !noalias !5410 %379 = extractelement <4 x double> %375, i64 2 store double %379, ptr %349, align 8, !noalias !5410 %380 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 1, i32 1 %381 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 1, i32 1 %382 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 1, i32 1 %383 = extractelement <4 x double> %376, i64 0 store double %383, ptr %380, align 8, !noalias !5410 %384 = extractelement <4 x double> %376, i64 1 store double %384, ptr %381, align 8, !noalias !5410 %385 = extractelement <4 x double> %376, i64 2 store double %385, ptr %382, align 8, !noalias !5410 %386 = shufflevector <4 x double> %375, <4 x double> %376, <2 x i32> store <2 x double> %386, ptr %350, align 8, !noalias !5410 %387 = fadd <4 x double> %369, %374 %388 = fsub <4 x double> %370, %373 %389 = fmul <4 x double> %388, %268 %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %387, <4 x double> %389) %391 = fmul <4 x double> %wide.masked.gather25, %387 %392 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %388, <4 x double> %391) %393 = extractelement <4 x double> %390, i64 0 store double %393, ptr %351, align 8, !noalias !5410 %394 = extractelement <4 x double> %390, i64 1 store double %394, ptr %352, align 8, !noalias !5410 %395 = extractelement <4 x double> %390, i64 2 store double %395, ptr %353, align 8, !noalias !5410 %396 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 5, i32 1 %397 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 5, i32 1 %398 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 5, i32 1 %399 = extractelement <4 x double> %392, i64 0 store double %399, ptr %396, align 8, !noalias !5410 %400 = extractelement <4 x double> %392, i64 1 store double %400, ptr %397, align 8, !noalias !5410 %401 = extractelement <4 x double> %392, i64 2 store double %401, ptr %398, align 8, !noalias !5410 %402 = shufflevector <4 x double> %390, <4 x double> %392, <2 x i32> store <2 x double> %402, ptr %354, align 8, !noalias !5410 %403 = fsub <4 x double> %367, %371 %404 = fsub <4 x double> %368, %372 %405 = fmul <4 x double> %404, %269 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %wide.masked.gather27, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %404, <4 x double> %407) %409 = extractelement <4 x double> %406, i64 0 store double %409, ptr %355, align 8, !noalias !5410 %410 = extractelement <4 x double> %406, i64 1 store double %410, ptr %356, align 8, !noalias !5410 %411 = extractelement <4 x double> %406, i64 2 store double %411, ptr %357, align 8, !noalias !5410 %412 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 9, i32 1 %413 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 9, i32 1 %414 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 9, i32 1 %415 = extractelement <4 x double> %408, i64 0 store double %415, ptr %412, align 8, !noalias !5410 %416 = extractelement <4 x double> %408, i64 1 store double %416, ptr %413, align 8, !noalias !5410 %417 = extractelement <4 x double> %408, i64 2 store double %417, ptr %414, align 8, !noalias !5410 %418 = shufflevector <4 x double> %406, <4 x double> %408, <2 x i32> store <2 x double> %418, ptr %358, align 8, !noalias !5410 %419 = fsub <4 x double> %369, %374 %420 = fadd <4 x double> %370, %373 %421 = fmul <4 x double> %420, %270 %422 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %419, <4 x double> %421) %423 = fmul <4 x double> %wide.masked.gather29, %419 %424 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %420, <4 x double> %423) %425 = extractelement <4 x double> %422, i64 0 store double %425, ptr %359, align 8, !noalias !5410 %426 = extractelement <4 x double> %422, i64 1 store double %426, ptr %360, align 8, !noalias !5410 %427 = extractelement <4 x double> %422, i64 2 store double %427, ptr %361, align 8, !noalias !5410 %428 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 13, i32 1 %429 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 13, i32 1 %430 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 13, i32 1 %431 = extractelement <4 x double> %424, i64 0 store double %431, ptr %428, align 8, !noalias !5410 %432 = extractelement <4 x double> %424, i64 1 store double %432, ptr %429, align 8, !noalias !5410 %433 = extractelement <4 x double> %424, i64 2 store double %433, ptr %430, align 8, !noalias !5410 %434 = shufflevector <4 x double> %422, <4 x double> %424, <2 x i32> store <2 x double> %434, ptr %362, align 8, !noalias !5410 %435 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2 %437 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2 %438 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2 %439 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2 %440 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2 %441 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2 %442 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 2 %443 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6 %444 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6 %445 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6 %446 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 6 %447 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10 %448 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10 %449 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10 %450 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 10 %451 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14 %452 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14 %453 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14 %454 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 14 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %435, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %455 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 2, i32 1 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %455, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 2, i32 1 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %437, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %457 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 2, i32 1 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %457, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %438, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %458 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 2, i32 1 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %458, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %459 = fadd <4 x double> %wide.masked.gather46, %wide.masked.gather50 %460 = fadd <4 x double> %wide.masked.gather47, %wide.masked.gather51 %461 = fsub <4 x double> %wide.masked.gather46, %wide.masked.gather50 %462 = fsub <4 x double> %wide.masked.gather47, %wide.masked.gather51 %463 = fadd <4 x double> %wide.masked.gather48, %wide.masked.gather52 %464 = fadd <4 x double> %wide.masked.gather49, %wide.masked.gather53 %465 = fsub <4 x double> %wide.masked.gather48, %wide.masked.gather52 %466 = fsub <4 x double> %wide.masked.gather49, %wide.masked.gather53 %467 = fadd <4 x double> %459, %463 %468 = fadd <4 x double> %460, %464 %469 = extractelement <4 x double> %467, i64 0 store double %469, ptr %439, align 8, !noalias !5410 %470 = extractelement <4 x double> %467, i64 1 store double %470, ptr %440, align 8, !noalias !5410 %471 = extractelement <4 x double> %467, i64 2 store double %471, ptr %441, align 8, !noalias !5410 %472 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 2, i32 1 %473 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 2, i32 1 %474 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 2, i32 1 %475 = extractelement <4 x double> %468, i64 0 store double %475, ptr %472, align 8, !noalias !5410 %476 = extractelement <4 x double> %468, i64 1 store double %476, ptr %473, align 8, !noalias !5410 %477 = extractelement <4 x double> %468, i64 2 store double %477, ptr %474, align 8, !noalias !5410 %478 = shufflevector <4 x double> %467, <4 x double> %468, <2 x i32> store <2 x double> %478, ptr %442, align 8, !noalias !5410 %479 = fadd <4 x double> %461, %466 %480 = fsub <4 x double> %462, %465 %481 = fmul <4 x double> %480, %268 %482 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %479, <4 x double> %481) %483 = fmul <4 x double> %wide.masked.gather25, %479 %484 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %480, <4 x double> %483) %485 = extractelement <4 x double> %482, i64 0 store double %485, ptr %443, align 8, !noalias !5410 %486 = extractelement <4 x double> %482, i64 1 store double %486, ptr %444, align 8, !noalias !5410 %487 = extractelement <4 x double> %482, i64 2 store double %487, ptr %445, align 8, !noalias !5410 %488 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 6, i32 1 %489 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 6, i32 1 %490 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 6, i32 1 %491 = extractelement <4 x double> %484, i64 0 store double %491, ptr %488, align 8, !noalias !5410 %492 = extractelement <4 x double> %484, i64 1 store double %492, ptr %489, align 8, !noalias !5410 %493 = extractelement <4 x double> %484, i64 2 store double %493, ptr %490, align 8, !noalias !5410 %494 = shufflevector <4 x double> %482, <4 x double> %484, <2 x i32> store <2 x double> %494, ptr %446, align 8, !noalias !5410 %495 = fsub <4 x double> %459, %463 %496 = fsub <4 x double> %460, %464 %497 = fmul <4 x double> %496, %269 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %wide.masked.gather27, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %496, <4 x double> %499) %501 = extractelement <4 x double> %498, i64 0 store double %501, ptr %447, align 8, !noalias !5410 %502 = extractelement <4 x double> %498, i64 1 store double %502, ptr %448, align 8, !noalias !5410 %503 = extractelement <4 x double> %498, i64 2 store double %503, ptr %449, align 8, !noalias !5410 %504 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 10, i32 1 %505 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 10, i32 1 %506 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 10, i32 1 %507 = extractelement <4 x double> %500, i64 0 store double %507, ptr %504, align 8, !noalias !5410 %508 = extractelement <4 x double> %500, i64 1 store double %508, ptr %505, align 8, !noalias !5410 %509 = extractelement <4 x double> %500, i64 2 store double %509, ptr %506, align 8, !noalias !5410 %510 = shufflevector <4 x double> %498, <4 x double> %500, <2 x i32> store <2 x double> %510, ptr %450, align 8, !noalias !5410 %511 = fsub <4 x double> %461, %466 %512 = fadd <4 x double> %462, %465 %513 = fmul <4 x double> %512, %270 %514 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %511, <4 x double> %513) %515 = fmul <4 x double> %wide.masked.gather29, %511 %516 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %512, <4 x double> %515) %517 = extractelement <4 x double> %514, i64 0 store double %517, ptr %451, align 8, !noalias !5410 %518 = extractelement <4 x double> %514, i64 1 store double %518, ptr %452, align 8, !noalias !5410 %519 = extractelement <4 x double> %514, i64 2 store double %519, ptr %453, align 8, !noalias !5410 %520 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 14, i32 1 %521 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 14, i32 1 %522 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 14, i32 1 %523 = extractelement <4 x double> %516, i64 0 store double %523, ptr %520, align 8, !noalias !5410 %524 = extractelement <4 x double> %516, i64 1 store double %524, ptr %521, align 8, !noalias !5410 %525 = extractelement <4 x double> %516, i64 2 store double %525, ptr %522, align 8, !noalias !5410 %526 = shufflevector <4 x double> %514, <4 x double> %516, <2 x i32> store <2 x double> %526, ptr %454, align 8, !noalias !5410 %527 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3 %528 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3 %529 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3 %530 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3 %531 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3 %532 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3 %533 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3 %534 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 3 %535 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7 %536 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7 %537 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7 %538 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 7 %539 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11 %540 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11 %541 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11 %542 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 11 %543 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15 %544 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15 %545 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15 %546 = getelementptr inbounds %"num_complex::Complex", ptr %249, i64 15 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %527, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %547 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %237, i64 3, i32 1 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %547, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %528, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %548 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %238, i64 3, i32 1 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %548, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %529, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %549 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %239, i64 3, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %549, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %530, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %550 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %240, i64 3, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %550, i32 8, <4 x i1> , <4 x double> poison), !noalias !5410 %551 = fadd <4 x double> %wide.masked.gather54, %wide.masked.gather58 %552 = fadd <4 x double> %wide.masked.gather55, %wide.masked.gather59 %553 = fsub <4 x double> %wide.masked.gather54, %wide.masked.gather58 %554 = fsub <4 x double> %wide.masked.gather55, %wide.masked.gather59 %555 = fadd <4 x double> %wide.masked.gather56, %wide.masked.gather60 %556 = fadd <4 x double> %wide.masked.gather57, %wide.masked.gather61 %557 = fsub <4 x double> %wide.masked.gather56, %wide.masked.gather60 %558 = fsub <4 x double> %wide.masked.gather57, %wide.masked.gather61 %559 = fadd <4 x double> %551, %555 %560 = fadd <4 x double> %552, %556 %561 = extractelement <4 x double> %559, i64 0 store double %561, ptr %531, align 8, !noalias !5410 %562 = extractelement <4 x double> %559, i64 1 store double %562, ptr %532, align 8, !noalias !5410 %563 = extractelement <4 x double> %559, i64 2 store double %563, ptr %533, align 8, !noalias !5410 %564 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 3, i32 1 %565 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 3, i32 1 %566 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 3, i32 1 %567 = extractelement <4 x double> %560, i64 0 store double %567, ptr %564, align 8, !noalias !5410 %568 = extractelement <4 x double> %560, i64 1 store double %568, ptr %565, align 8, !noalias !5410 %569 = extractelement <4 x double> %560, i64 2 store double %569, ptr %566, align 8, !noalias !5410 %570 = shufflevector <4 x double> %559, <4 x double> %560, <2 x i32> store <2 x double> %570, ptr %534, align 8, !noalias !5410 %571 = fadd <4 x double> %553, %558 %572 = fsub <4 x double> %554, %557 %573 = fmul <4 x double> %572, %268 %574 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %571, <4 x double> %573) %575 = fmul <4 x double> %wide.masked.gather25, %571 %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather24, <4 x double> %572, <4 x double> %575) %577 = extractelement <4 x double> %574, i64 0 store double %577, ptr %535, align 8, !noalias !5410 %578 = extractelement <4 x double> %574, i64 1 store double %578, ptr %536, align 8, !noalias !5410 %579 = extractelement <4 x double> %574, i64 2 store double %579, ptr %537, align 8, !noalias !5410 %580 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 7, i32 1 %581 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 7, i32 1 %582 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 7, i32 1 %583 = extractelement <4 x double> %576, i64 0 store double %583, ptr %580, align 8, !noalias !5410 %584 = extractelement <4 x double> %576, i64 1 store double %584, ptr %581, align 8, !noalias !5410 %585 = extractelement <4 x double> %576, i64 2 store double %585, ptr %582, align 8, !noalias !5410 %586 = shufflevector <4 x double> %574, <4 x double> %576, <2 x i32> store <2 x double> %586, ptr %538, align 8, !noalias !5410 %587 = fsub <4 x double> %551, %555 %588 = fsub <4 x double> %552, %556 %589 = fmul <4 x double> %588, %269 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %587, <4 x double> %589) %591 = fmul <4 x double> %wide.masked.gather27, %587 %592 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather26, <4 x double> %588, <4 x double> %591) %593 = extractelement <4 x double> %590, i64 0 store double %593, ptr %539, align 8, !noalias !5410 %594 = extractelement <4 x double> %590, i64 1 store double %594, ptr %540, align 8, !noalias !5410 %595 = extractelement <4 x double> %590, i64 2 store double %595, ptr %541, align 8, !noalias !5410 %596 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 11, i32 1 %597 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 11, i32 1 %598 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 11, i32 1 %599 = extractelement <4 x double> %592, i64 0 store double %599, ptr %596, align 8, !noalias !5410 %600 = extractelement <4 x double> %592, i64 1 store double %600, ptr %597, align 8, !noalias !5410 %601 = extractelement <4 x double> %592, i64 2 store double %601, ptr %598, align 8, !noalias !5410 %602 = shufflevector <4 x double> %590, <4 x double> %592, <2 x i32> store <2 x double> %602, ptr %542, align 8, !noalias !5410 %603 = fsub <4 x double> %553, %558 %604 = fadd <4 x double> %554, %557 %605 = fmul <4 x double> %604, %270 %606 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %603, <4 x double> %605) %607 = fmul <4 x double> %wide.masked.gather29, %603 %608 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather28, <4 x double> %604, <4 x double> %607) %609 = extractelement <4 x double> %606, i64 0 store double %609, ptr %543, align 8, !noalias !5410 %610 = extractelement <4 x double> %606, i64 1 store double %610, ptr %544, align 8, !noalias !5410 %611 = extractelement <4 x double> %606, i64 2 store double %611, ptr %545, align 8, !noalias !5410 %612 = getelementptr inbounds %"num_complex::Complex", ptr %243, i64 15, i32 1 %613 = getelementptr inbounds %"num_complex::Complex", ptr %245, i64 15, i32 1 %614 = getelementptr inbounds %"num_complex::Complex", ptr %247, i64 15, i32 1 %615 = extractelement <4 x double> %608, i64 0 store double %615, ptr %612, align 8, !noalias !5410 %616 = extractelement <4 x double> %608, i64 1 store double %616, ptr %613, align 8, !noalias !5410 %617 = extractelement <4 x double> %608, i64 2 store double %617, ptr %614, align 8, !noalias !5410 %618 = shufflevector <4 x double> %606, <4 x double> %608, <2 x i32> store <2 x double> %618, ptr %546, align 8, !noalias !5410 %index.next62 = add nuw i64 %index21, 4 %vec.ind.next23 = add <4 x i64> %vec.ind22, %619 = icmp eq i64 %index.next62, 16 br i1 %619, label %bb24.i.i.i72.i, label %vector.body20, !llvm.loop !5413 vector.body106: ; preds = %bb24.i.i.i72.i, %vector.body106 %index107 = phi i64 [ %index.next124, %vector.body106 ], [ 0, %bb24.i.i.i72.i ] %620 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index107 %621 = getelementptr inbounds %"num_complex::Complex", ptr %234, i64 %index107 %622 = getelementptr inbounds %"num_complex::Complex", ptr %233, i64 %index107 %623 = getelementptr inbounds %"num_complex::Complex", ptr %235, i64 %index107 %wide.vec108 = load <8 x double>, ptr %620, align 8, !noalias !5406 %strided.vec109 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %strided.vec110 = shufflevector <8 x double> %wide.vec108, <8 x double> poison, <4 x i32> %wide.vec111 = load <8 x double>, ptr %621, align 8, !noalias !5406 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %wide.vec114 = load <8 x double>, ptr %622, align 8, !noalias !5406 %strided.vec115 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %strided.vec116 = shufflevector <8 x double> %wide.vec114, <8 x double> poison, <4 x i32> %wide.vec117 = load <8 x double>, ptr %623, align 8, !noalias !5406 %strided.vec118 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %strided.vec119 = shufflevector <8 x double> %wide.vec117, <8 x double> poison, <4 x i32> %624 = fadd <4 x double> %strided.vec109, %strided.vec115 %625 = fadd <4 x double> %strided.vec110, %strided.vec116 %626 = fsub <4 x double> %strided.vec109, %strided.vec115 %627 = fsub <4 x double> %strided.vec110, %strided.vec116 %628 = fadd <4 x double> %strided.vec112, %strided.vec118 %629 = fadd <4 x double> %strided.vec113, %strided.vec119 %630 = fsub <4 x double> %strided.vec112, %strided.vec118 %631 = fsub <4 x double> %strided.vec113, %strided.vec119 %632 = fadd <4 x double> %624, %628 %633 = fadd <4 x double> %625, %629 %634 = fadd <4 x double> %626, %631 %635 = fsub <4 x double> %627, %630 %636 = fsub <4 x double> %624, %628 %637 = fsub <4 x double> %625, %629 %638 = fsub <4 x double> %626, %631 %639 = fadd <4 x double> %627, %630 %640 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index107 %interleaved.vec120 = shufflevector <4 x double> %632, <4 x double> %633, <8 x i32> store <8 x double> %interleaved.vec120, ptr %640, align 8, !noalias !5406 %641 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index107 %interleaved.vec121 = shufflevector <4 x double> %634, <4 x double> %635, <8 x i32> store <8 x double> %interleaved.vec121, ptr %641, align 8, !noalias !5406 %642 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index107 %interleaved.vec122 = shufflevector <4 x double> %636, <4 x double> %637, <8 x i32> store <8 x double> %interleaved.vec122, ptr %642, align 8, !noalias !5406 %643 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index107 %interleaved.vec123 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec123, ptr %643, align 8, !noalias !5406 %index.next124 = add nuw i64 %index107, 4 %644 = icmp eq i64 %index.next124, 64 br i1 %644, label %"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit", label %vector.body106, !llvm.loop !5414 bb24.i.i.i72.i: ; preds = %vector.body20, %bb24.i.i.i72.i %iter.i.i.i25.i.sroa.60.0111 = phi i64 [ %790, %bb24.i.i.i72.i ], [ 0, %vector.body20 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i687 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0111, 4 %645 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 3, i32 1 %w3.1.i.i.i88.i = load double, ptr %645, align 8, !noalias !5406, !noundef !3 %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w3.1.i.i.i88.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %646 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 3 %w3.0.i.i.i87.i = load double, ptr %646, align 8, !noalias !5406, !noundef !3 %broadcast.splatinsert96 = insertelement <4 x double> poison, double %w3.0.i.i.i87.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i160.i = fneg double %w3.1.i.i.i88.i %broadcast.splatinsert94 = insertelement <4 x double> poison, double %_6.i.i.i.i160.i, i64 0 %broadcast.splat95 = shufflevector <4 x double> %broadcast.splatinsert94, <4 x double> poison, <4 x i32> zeroinitializer %647 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 2, i32 1 %w2.1.i.i.i86.i = load double, ptr %647, align 8, !noalias !5406, !noundef !3 %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w2.1.i.i.i86.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %648 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 2 %w2.0.i.i.i85.i = load double, ptr %648, align 8, !noalias !5406, !noundef !3 %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w2.0.i.i.i85.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i155.i = fneg double %w2.1.i.i.i86.i %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i36.i.i.i155.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %649 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 1, i32 1 %w1.1.i.i.i84.i = load double, ptr %649, align 8, !noalias !5406, !noundef !3 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i.i84.i, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %650 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687, i64 1 %w1.0.i.i.i83.i = load double, ptr %650, align 8, !noalias !5406, !noundef !3 %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i.i83.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i150.i = fneg double %w1.1.i.i.i84.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i150.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i706 = shl nuw nsw i64 %iter.i.i.i25.i.sroa.60.0111, 6 %data.i.i.i.i.i.i707 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i706 %651 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 48 %652 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 16 %653 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 32 %data.i.i.i.i.i.i.i.i703 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %data.i.i.i.i.i.i.i.i.i.i698 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %data.i5.i.i.i.i.i.i.i.i.i.i.i693 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %data.i.i.i.i.i.i.i.i.i.i.i.i688 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i687 %wide.vec69 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, align 8, !noalias !5406 %strided.vec70 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %strided.vec71 = shufflevector <8 x double> %wide.vec69, <8 x double> poison, <4 x i32> %wide.vec72 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, align 8, !noalias !5406 %strided.vec73 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %strided.vec74 = shufflevector <8 x double> %wide.vec72, <8 x double> poison, <4 x i32> %wide.vec75 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i698, align 8, !noalias !5406 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %wide.vec78 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i703, align 8, !noalias !5406 %strided.vec79 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %strided.vec80 = shufflevector <8 x double> %wide.vec78, <8 x double> poison, <4 x i32> %654 = fadd <4 x double> %strided.vec70, %strided.vec76 %655 = fadd <4 x double> %strided.vec71, %strided.vec77 %656 = fsub <4 x double> %strided.vec70, %strided.vec76 %657 = fsub <4 x double> %strided.vec71, %strided.vec77 %658 = fadd <4 x double> %strided.vec73, %strided.vec79 %659 = fadd <4 x double> %strided.vec74, %strided.vec80 %660 = fsub <4 x double> %strided.vec73, %strided.vec79 %661 = fsub <4 x double> %strided.vec74, %strided.vec80 %662 = fadd <4 x double> %654, %658 %663 = fadd <4 x double> %655, %659 %interleaved.vec81 = shufflevector <4 x double> %662, <4 x double> %663, <8 x i32> store <8 x double> %interleaved.vec81, ptr %data.i.i.i.i.i.i707, align 8, !noalias !5406 %664 = fadd <4 x double> %656, %661 %665 = fsub <4 x double> %657, %660 %666 = fmul <4 x double> %665, %broadcast.splat %667 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %664, <4 x double> %666) %668 = fmul <4 x double> %broadcast.splat85, %664 %669 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %665, <4 x double> %668) %interleaved.vec86 = shufflevector <4 x double> %667, <4 x double> %669, <8 x i32> store <8 x double> %interleaved.vec86, ptr %652, align 8, !noalias !5406 %670 = fsub <4 x double> %654, %658 %671 = fsub <4 x double> %655, %659 %672 = fmul <4 x double> %671, %broadcast.splat88 %673 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %670, <4 x double> %672) %674 = fmul <4 x double> %broadcast.splat92, %670 %675 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %671, <4 x double> %674) %interleaved.vec93 = shufflevector <4 x double> %673, <4 x double> %675, <8 x i32> store <8 x double> %interleaved.vec93, ptr %653, align 8, !noalias !5406 %676 = fsub <4 x double> %656, %661 %677 = fadd <4 x double> %657, %660 %678 = fmul <4 x double> %677, %broadcast.splat95 %679 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %676, <4 x double> %678) %680 = fmul <4 x double> %broadcast.splat99, %676 %681 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %677, <4 x double> %680) %interleaved.vec100 = shufflevector <4 x double> %679, <4 x double> %681, <8 x i32> store <8 x double> %interleaved.vec100, ptr %651, align 8, !noalias !5406 %682 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, i64 4 %683 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, i64 4 %684 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i698, i64 4 %685 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i703, i64 4 %wide.vec69.1 = load <8 x double>, ptr %682, align 8, !noalias !5406 %strided.vec70.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %strided.vec71.1 = shufflevector <8 x double> %wide.vec69.1, <8 x double> poison, <4 x i32> %wide.vec72.1 = load <8 x double>, ptr %683, align 8, !noalias !5406 %strided.vec73.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %strided.vec74.1 = shufflevector <8 x double> %wide.vec72.1, <8 x double> poison, <4 x i32> %wide.vec75.1 = load <8 x double>, ptr %684, align 8, !noalias !5406 %strided.vec76.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %strided.vec77.1 = shufflevector <8 x double> %wide.vec75.1, <8 x double> poison, <4 x i32> %wide.vec78.1 = load <8 x double>, ptr %685, align 8, !noalias !5406 %strided.vec79.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %strided.vec80.1 = shufflevector <8 x double> %wide.vec78.1, <8 x double> poison, <4 x i32> %686 = fadd <4 x double> %strided.vec70.1, %strided.vec76.1 %687 = fadd <4 x double> %strided.vec71.1, %strided.vec77.1 %688 = fsub <4 x double> %strided.vec70.1, %strided.vec76.1 %689 = fsub <4 x double> %strided.vec71.1, %strided.vec77.1 %690 = fadd <4 x double> %strided.vec73.1, %strided.vec79.1 %691 = fadd <4 x double> %strided.vec74.1, %strided.vec80.1 %692 = fsub <4 x double> %strided.vec73.1, %strided.vec79.1 %693 = fsub <4 x double> %strided.vec74.1, %strided.vec80.1 %694 = fadd <4 x double> %686, %690 %695 = fadd <4 x double> %687, %691 %696 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 4 %interleaved.vec81.1 = shufflevector <4 x double> %694, <4 x double> %695, <8 x i32> store <8 x double> %interleaved.vec81.1, ptr %696, align 8, !noalias !5406 %697 = fadd <4 x double> %688, %693 %698 = fsub <4 x double> %689, %692 %699 = fmul <4 x double> %698, %broadcast.splat %700 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %697, <4 x double> %699) %701 = fmul <4 x double> %broadcast.splat85, %697 %702 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %698, <4 x double> %701) %703 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 20 %interleaved.vec86.1 = shufflevector <4 x double> %700, <4 x double> %702, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %703, align 8, !noalias !5406 %704 = fsub <4 x double> %686, %690 %705 = fsub <4 x double> %687, %691 %706 = fmul <4 x double> %705, %broadcast.splat88 %707 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %704, <4 x double> %706) %708 = fmul <4 x double> %broadcast.splat92, %704 %709 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %705, <4 x double> %708) %710 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 36 %interleaved.vec93.1 = shufflevector <4 x double> %707, <4 x double> %709, <8 x i32> store <8 x double> %interleaved.vec93.1, ptr %710, align 8, !noalias !5406 %711 = fsub <4 x double> %688, %693 %712 = fadd <4 x double> %689, %692 %713 = fmul <4 x double> %712, %broadcast.splat95 %714 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %711, <4 x double> %713) %715 = fmul <4 x double> %broadcast.splat99, %711 %716 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %712, <4 x double> %715) %717 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 52 %interleaved.vec100.1 = shufflevector <4 x double> %714, <4 x double> %716, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %717, align 8, !noalias !5406 %718 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, i64 8 %719 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, i64 8 %720 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i698, i64 8 %721 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i703, i64 8 %wide.vec69.2 = load <8 x double>, ptr %718, align 8, !noalias !5406 %strided.vec70.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %strided.vec71.2 = shufflevector <8 x double> %wide.vec69.2, <8 x double> poison, <4 x i32> %wide.vec72.2 = load <8 x double>, ptr %719, align 8, !noalias !5406 %strided.vec73.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %strided.vec74.2 = shufflevector <8 x double> %wide.vec72.2, <8 x double> poison, <4 x i32> %wide.vec75.2 = load <8 x double>, ptr %720, align 8, !noalias !5406 %strided.vec76.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %strided.vec77.2 = shufflevector <8 x double> %wide.vec75.2, <8 x double> poison, <4 x i32> %wide.vec78.2 = load <8 x double>, ptr %721, align 8, !noalias !5406 %strided.vec79.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %strided.vec80.2 = shufflevector <8 x double> %wide.vec78.2, <8 x double> poison, <4 x i32> %722 = fadd <4 x double> %strided.vec70.2, %strided.vec76.2 %723 = fadd <4 x double> %strided.vec71.2, %strided.vec77.2 %724 = fsub <4 x double> %strided.vec70.2, %strided.vec76.2 %725 = fsub <4 x double> %strided.vec71.2, %strided.vec77.2 %726 = fadd <4 x double> %strided.vec73.2, %strided.vec79.2 %727 = fadd <4 x double> %strided.vec74.2, %strided.vec80.2 %728 = fsub <4 x double> %strided.vec73.2, %strided.vec79.2 %729 = fsub <4 x double> %strided.vec74.2, %strided.vec80.2 %730 = fadd <4 x double> %722, %726 %731 = fadd <4 x double> %723, %727 %732 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 8 %interleaved.vec81.2 = shufflevector <4 x double> %730, <4 x double> %731, <8 x i32> store <8 x double> %interleaved.vec81.2, ptr %732, align 8, !noalias !5406 %733 = fadd <4 x double> %724, %729 %734 = fsub <4 x double> %725, %728 %735 = fmul <4 x double> %734, %broadcast.splat %736 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %733, <4 x double> %735) %737 = fmul <4 x double> %broadcast.splat85, %733 %738 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %734, <4 x double> %737) %739 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 24 %interleaved.vec86.2 = shufflevector <4 x double> %736, <4 x double> %738, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %739, align 8, !noalias !5406 %740 = fsub <4 x double> %722, %726 %741 = fsub <4 x double> %723, %727 %742 = fmul <4 x double> %741, %broadcast.splat88 %743 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %740, <4 x double> %742) %744 = fmul <4 x double> %broadcast.splat92, %740 %745 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %741, <4 x double> %744) %746 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 40 %interleaved.vec93.2 = shufflevector <4 x double> %743, <4 x double> %745, <8 x i32> store <8 x double> %interleaved.vec93.2, ptr %746, align 8, !noalias !5406 %747 = fsub <4 x double> %724, %729 %748 = fadd <4 x double> %725, %728 %749 = fmul <4 x double> %748, %broadcast.splat95 %750 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %747, <4 x double> %749) %751 = fmul <4 x double> %broadcast.splat99, %747 %752 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %748, <4 x double> %751) %753 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 56 %interleaved.vec100.2 = shufflevector <4 x double> %750, <4 x double> %752, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %753, align 8, !noalias !5406 %754 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i688, i64 12 %755 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i693, i64 12 %756 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i698, i64 12 %757 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i703, i64 12 %wide.vec69.3 = load <8 x double>, ptr %754, align 8, !noalias !5406 %strided.vec70.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %strided.vec71.3 = shufflevector <8 x double> %wide.vec69.3, <8 x double> poison, <4 x i32> %wide.vec72.3 = load <8 x double>, ptr %755, align 8, !noalias !5406 %strided.vec73.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %strided.vec74.3 = shufflevector <8 x double> %wide.vec72.3, <8 x double> poison, <4 x i32> %wide.vec75.3 = load <8 x double>, ptr %756, align 8, !noalias !5406 %strided.vec76.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %strided.vec77.3 = shufflevector <8 x double> %wide.vec75.3, <8 x double> poison, <4 x i32> %wide.vec78.3 = load <8 x double>, ptr %757, align 8, !noalias !5406 %strided.vec79.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %strided.vec80.3 = shufflevector <8 x double> %wide.vec78.3, <8 x double> poison, <4 x i32> %758 = fadd <4 x double> %strided.vec70.3, %strided.vec76.3 %759 = fadd <4 x double> %strided.vec71.3, %strided.vec77.3 %760 = fsub <4 x double> %strided.vec70.3, %strided.vec76.3 %761 = fsub <4 x double> %strided.vec71.3, %strided.vec77.3 %762 = fadd <4 x double> %strided.vec73.3, %strided.vec79.3 %763 = fadd <4 x double> %strided.vec74.3, %strided.vec80.3 %764 = fsub <4 x double> %strided.vec73.3, %strided.vec79.3 %765 = fsub <4 x double> %strided.vec74.3, %strided.vec80.3 %766 = fadd <4 x double> %758, %762 %767 = fadd <4 x double> %759, %763 %768 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 12 %interleaved.vec81.3 = shufflevector <4 x double> %766, <4 x double> %767, <8 x i32> store <8 x double> %interleaved.vec81.3, ptr %768, align 8, !noalias !5406 %769 = fadd <4 x double> %760, %765 %770 = fsub <4 x double> %761, %764 %771 = fmul <4 x double> %770, %broadcast.splat %772 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %769, <4 x double> %771) %773 = fmul <4 x double> %broadcast.splat85, %769 %774 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %770, <4 x double> %773) %775 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 28 %interleaved.vec86.3 = shufflevector <4 x double> %772, <4 x double> %774, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %775, align 8, !noalias !5406 %776 = fsub <4 x double> %758, %762 %777 = fsub <4 x double> %759, %763 %778 = fmul <4 x double> %777, %broadcast.splat88 %779 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %776, <4 x double> %778) %780 = fmul <4 x double> %broadcast.splat92, %776 %781 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %777, <4 x double> %780) %782 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 44 %interleaved.vec93.3 = shufflevector <4 x double> %779, <4 x double> %781, <8 x i32> store <8 x double> %interleaved.vec93.3, ptr %782, align 8, !noalias !5406 %783 = fsub <4 x double> %760, %765 %784 = fadd <4 x double> %761, %764 %785 = fmul <4 x double> %784, %broadcast.splat95 %786 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %783, <4 x double> %785) %787 = fmul <4 x double> %broadcast.splat99, %783 %788 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat97, <4 x double> %784, <4 x double> %787) %789 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i707, i64 60 %interleaved.vec100.3 = shufflevector <4 x double> %786, <4 x double> %788, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %789, align 8, !noalias !5406 %790 = add nuw nsw i64 %iter.i.i.i25.i.sroa.60.0111, 1 %exitcond117.not = icmp eq i64 %790, 4 br i1 %exitcond117.not, label %vector.body106, label %bb24.i.i.i72.i "_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h815d2a0fef9b52f7E.exit": ; preds = %vector.body106 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5406 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he0c1c71936ffc58aE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif4::Dif4>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17ha2fc08c99c9c6c0eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he2be260b36d3a14aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5415 store i64 16, ptr %n.i, align 8, !noalias !5415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5415 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5415 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5415 store ptr null, ptr %_16.i, align 8, !noalias !5415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5415 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5415 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5415 store ptr null, ptr %_24.i, align 8, !noalias !5415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5415 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5415 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5415 store ptr null, ptr %_32.i, align 8, !noalias !5415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5415 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5415 store i64 %w.1, ptr %_34.i, align 8, !noalias !5415 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb26.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5415 store ptr null, ptr %_40.i, align 8, !noalias !5415 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb26.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5415 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %3, align 8, !noalias !5415, !noundef !3 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %4, align 8, !noalias !5415, !noundef !3 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i = load double, ptr %5, align 8, !noalias !5415, !noundef !3 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %6, align 8, !noalias !5415, !noundef !3 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i = load double, ptr %7, align 8, !noalias !5415, !noundef !3 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %8, align 8, !noalias !5415, !noundef !3 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %12 = load <2 x double>, ptr %buf.0, align 8, !noalias !5415 %13 = load <2 x double>, ptr %1, align 8, !noalias !5415 %14 = load <2 x double>, ptr %0, align 8, !noalias !5415 %15 = load <2 x double>, ptr %2, align 8, !noalias !5415 %16 = fadd <2 x double> %12, %14 %17 = fadd <2 x double> %13, %15 %18 = fadd <2 x double> %16, %17 store <2 x double> %18, ptr %scratch.0, align 8, !noalias !5415 %19 = fsub <2 x double> %12, %14 %20 = fsub <2 x double> %13, %15 %21 = shufflevector <2 x double> %20, <2 x double> poison, <2 x i32> %22 = fsub <2 x double> %19, %21 %23 = fadd <2 x double> %19, %21 %24 = shufflevector <2 x double> %22, <2 x double> %23, <2 x i32> %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %10, align 8, !noalias !5415 %32 = fsub <2 x double> %16, %17 %33 = shufflevector <2 x double> %32, <2 x double> poison, <2 x i32> %34 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %35 = insertelement <2 x double> %34, double %w2.1.i.i.i, i64 1 %36 = fmul <2 x double> %33, %35 %37 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %38 = shufflevector <2 x double> %37, <2 x double> poison, <2 x i32> zeroinitializer %39 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %38, <2 x double> %32, <2 x double> %36) store <2 x double> %39, ptr %9, align 8, !noalias !5415 %40 = shufflevector <2 x double> %23, <2 x double> %22, <2 x i32> %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> %42 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %43 = insertelement <2 x double> %42, double %w3.1.i.i.i, i64 1 %44 = fmul <2 x double> %41, %43 %45 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %46 = shufflevector <2 x double> %45, <2 x double> poison, <2 x i32> zeroinitializer %47 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %46, <2 x double> %40, <2 x double> %44) store <2 x double> %47, ptr %11, align 8, !noalias !5415 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.i.1 = load double, ptr %48, align 8, !noalias !5415, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %49, align 8, !noalias !5415, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2 %w2.0.i.i.i.1 = load double, ptr %50, align 8, !noalias !5415, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %51, align 8, !noalias !5415, !noundef !3 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3 %w3.0.i.i.i.1 = load double, ptr %52, align 8, !noalias !5415, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %53, align 8, !noalias !5415, !noundef !3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %56 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %57 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5415 %58 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5415 %59 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5415 %60 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5415 %61 = fadd <2 x double> %57, %59 %62 = fadd <2 x double> %58, %60 %63 = fadd <2 x double> %61, %62 store <2 x double> %63, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5415 %64 = fsub <2 x double> %57, %59 %65 = fsub <2 x double> %58, %60 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> %67 = fsub <2 x double> %64, %66 %68 = fadd <2 x double> %64, %66 %69 = shufflevector <2 x double> %67, <2 x double> %68, <2 x i32> %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> %71 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %72 = insertelement <2 x double> %71, double %w1.1.i.i.i.1, i64 1 %73 = fmul <2 x double> %70, %72 %74 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> zeroinitializer %76 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %75, <2 x double> %69, <2 x double> %73) store <2 x double> %76, ptr %55, align 8, !noalias !5415 %77 = fsub <2 x double> %61, %62 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %80 = insertelement <2 x double> %79, double %w2.1.i.i.i.1, i64 1 %81 = fmul <2 x double> %78, %80 %82 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> zeroinitializer %84 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %83, <2 x double> %77, <2 x double> %81) store <2 x double> %84, ptr %54, align 8, !noalias !5415 %85 = shufflevector <2 x double> %68, <2 x double> %67, <2 x i32> %86 = shufflevector <2 x double> %85, <2 x double> poison, <2 x i32> %87 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %88 = insertelement <2 x double> %87, double %w3.1.i.i.i.1, i64 1 %89 = fmul <2 x double> %86, %88 %90 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> zeroinitializer %92 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %91, <2 x double> %85, <2 x double> %89) store <2 x double> %92, ptr %56, align 8, !noalias !5415 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.i.i.i.2 = load double, ptr %93, align 8, !noalias !5415, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %94, align 8, !noalias !5415, !noundef !3 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 2 %w2.0.i.i.i.2 = load double, ptr %95, align 8, !noalias !5415, !noundef !3 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %96, align 8, !noalias !5415, !noundef !3 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 3 %w3.0.i.i.i.2 = load double, ptr %97, align 8, !noalias !5415, !noundef !3 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %98, align 8, !noalias !5415, !noundef !3 %99 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %100 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %101 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %102 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5415 %103 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5415 %104 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5415 %105 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5415 %106 = fadd <2 x double> %102, %104 %107 = fadd <2 x double> %103, %105 %108 = fadd <2 x double> %106, %107 store <2 x double> %108, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5415 %109 = fsub <2 x double> %102, %104 %110 = fsub <2 x double> %103, %105 %111 = shufflevector <2 x double> %110, <2 x double> poison, <2 x i32> %112 = fsub <2 x double> %109, %111 %113 = fadd <2 x double> %109, %111 %114 = shufflevector <2 x double> %112, <2 x double> %113, <2 x i32> %115 = shufflevector <2 x double> %114, <2 x double> poison, <2 x i32> %116 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %117 = insertelement <2 x double> %116, double %w1.1.i.i.i.2, i64 1 %118 = fmul <2 x double> %115, %117 %119 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> zeroinitializer %121 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %120, <2 x double> %114, <2 x double> %118) store <2 x double> %121, ptr %100, align 8, !noalias !5415 %122 = fsub <2 x double> %106, %107 %123 = shufflevector <2 x double> %122, <2 x double> poison, <2 x i32> %124 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %125 = insertelement <2 x double> %124, double %w2.1.i.i.i.2, i64 1 %126 = fmul <2 x double> %123, %125 %127 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> zeroinitializer %129 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %128, <2 x double> %122, <2 x double> %126) store <2 x double> %129, ptr %99, align 8, !noalias !5415 %130 = shufflevector <2 x double> %113, <2 x double> %112, <2 x i32> %131 = shufflevector <2 x double> %130, <2 x double> poison, <2 x i32> %132 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %133 = insertelement <2 x double> %132, double %w3.1.i.i.i.2, i64 1 %134 = fmul <2 x double> %131, %133 %135 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> zeroinitializer %137 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %136, <2 x double> %130, <2 x double> %134) store <2 x double> %137, ptr %101, align 8, !noalias !5415 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %138 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1 %w1.0.i.i.i.3 = load double, ptr %138, align 8, !noalias !5415, !noundef !3 %139 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %139, align 8, !noalias !5415, !noundef !3 %140 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 2 %w2.0.i.i.i.3 = load double, ptr %140, align 8, !noalias !5415, !noundef !3 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %141, align 8, !noalias !5415, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 3 %w3.0.i.i.i.3 = load double, ptr %142, align 8, !noalias !5415, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %143, align 8, !noalias !5415, !noundef !3 %144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %145 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %146 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %147 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5415 %148 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5415 %149 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5415 %150 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5415 %151 = fadd <2 x double> %147, %149 %152 = fadd <2 x double> %148, %150 %153 = fadd <2 x double> %151, %152 store <2 x double> %153, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5415 %154 = fsub <2 x double> %147, %149 %155 = fsub <2 x double> %148, %150 %156 = shufflevector <2 x double> %155, <2 x double> poison, <2 x i32> %157 = fsub <2 x double> %154, %156 %158 = fadd <2 x double> %154, %156 %159 = shufflevector <2 x double> %157, <2 x double> %158, <2 x i32> %160 = shufflevector <2 x double> %159, <2 x double> poison, <2 x i32> %161 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %162 = insertelement <2 x double> %161, double %w1.1.i.i.i.3, i64 1 %163 = fmul <2 x double> %160, %162 %164 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> zeroinitializer %166 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %165, <2 x double> %159, <2 x double> %163) store <2 x double> %166, ptr %145, align 8, !noalias !5415 %167 = fsub <2 x double> %151, %152 %168 = shufflevector <2 x double> %167, <2 x double> poison, <2 x i32> %169 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %170 = insertelement <2 x double> %169, double %w2.1.i.i.i.3, i64 1 %171 = fmul <2 x double> %168, %170 %172 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> zeroinitializer %174 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %173, <2 x double> %167, <2 x double> %171) store <2 x double> %174, ptr %144, align 8, !noalias !5415 %175 = shufflevector <2 x double> %158, <2 x double> %157, <2 x i32> %176 = shufflevector <2 x double> %175, <2 x double> poison, <2 x i32> %177 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %178 = insertelement <2 x double> %177, double %w3.1.i.i.i.3, i64 1 %179 = fmul <2 x double> %176, %178 %180 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> zeroinitializer %182 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %181, <2 x double> %175, <2 x double> %179) store <2 x double> %182, ptr %146, align 8, !noalias !5415 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !5415 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5415 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5415 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5415 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %183 = fadd <4 x double> %strided.vec, %strided.vec6 %184 = fadd <4 x double> %strided.vec1, %strided.vec7 %185 = fsub <4 x double> %strided.vec, %strided.vec6 %186 = fsub <4 x double> %strided.vec1, %strided.vec7 %187 = fadd <4 x double> %strided.vec3, %strided.vec9 %188 = fadd <4 x double> %strided.vec4, %strided.vec10 %189 = fsub <4 x double> %strided.vec3, %strided.vec9 %190 = fsub <4 x double> %strided.vec4, %strided.vec10 %191 = fadd <4 x double> %183, %187 %192 = fadd <4 x double> %184, %188 %193 = fsub <4 x double> %185, %190 %194 = fadd <4 x double> %186, %189 %195 = fsub <4 x double> %183, %187 %196 = fsub <4 x double> %184, %188 %197 = fadd <4 x double> %185, %190 %198 = fsub <4 x double> %186, %189 %interleaved.vec = shufflevector <4 x double> %191, <4 x double> %192, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !5415 %199 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec11 = shufflevector <4 x double> %193, <4 x double> %194, <8 x i32> store <8 x double> %interleaved.vec11, ptr %199, align 8, !noalias !5415 %200 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec12 = shufflevector <4 x double> %195, <4 x double> %196, <8 x i32> store <8 x double> %interleaved.vec12, ptr %200, align 8, !noalias !5415 %201 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec13 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec13, ptr %201, align 8, !noalias !5415 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5415 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline noreturn nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he322d373ec6072e9E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #9 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h597ea91076a8aef1E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) unreachable } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he380288968a79360E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5418 store i64 128, ptr %n.i, align 8, !noalias !5418 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5418 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5418 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5418 store ptr null, ptr %_16.i, align 8, !noalias !5418 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5418 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5418 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5418 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5418 store ptr null, ptr %_24.i, align 8, !noalias !5418 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5418 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5418 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5418 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5418 store ptr null, ptr %_32.i, align 8, !noalias !5418 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5418 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5418 store i64 %w.1, ptr %_34.i, align 8, !noalias !5418 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5418 store ptr null, ptr %_40.i, align 8, !noalias !5418 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5418 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 br label %vector.body vector.body: ; preds = %vector.body, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit %index = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17hda9a89bc794d9a47E.exit ], [ %index.next, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %3 = shl nuw nsw i64 %index, 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %3 %5 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %index, i64 1 %wide.vec = load <16 x double>, ptr %5, align 8, !noalias !5421 %strided.vec = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %strided.vec1 = shufflevector <16 x double> %wide.vec, <16 x double> poison, <4 x i32> %6 = fneg <4 x double> %strided.vec1 %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !5421 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !5421 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec3, %strided.vec6 %8 = fadd <4 x double> %strided.vec4, %strided.vec7 %9 = fsub <4 x double> %strided.vec3, %strided.vec6 %10 = fsub <4 x double> %strided.vec4, %strided.vec7 %11 = fmul <4 x double> %10, %6 %12 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %9, <4 x double> %11) %13 = fmul <4 x double> %strided.vec1, %9 %14 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %strided.vec, <4 x double> %10, <4 x double> %13) %15 = shufflevector <4 x double> %7, <4 x double> %8, <8 x i32> %16 = shufflevector <4 x double> %12, <4 x double> %14, <8 x i32> %interleaved.vec = shufflevector <8 x double> %15, <8 x double> %16, <16 x i32> store <16 x double> %interleaved.vec, ptr %4, align 8, !noalias !5421 %index.next = add nuw i64 %index, 4 %17 = icmp eq i64 %index.next, 60 br i1 %17, label %bb19.i.i, label %vector.body, !llvm.loop !5424 bb19.i.i: ; preds = %vector.body %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i5.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %18 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i = load double, ptr %18, align 8, !noalias !5421, !noundef !3 %19 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i = load double, ptr %19, align 8, !noalias !5421, !noundef !3 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 121 %_6.i.i.i = fneg double %w1.1.i.i %21 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !5421 %22 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i, align 8, !noalias !5421 %23 = fadd <2 x double> %21, %22 store <2 x double> %23, ptr %data.i.i.i.i.i.i, align 8, !noalias !5421 %24 = fsub <2 x double> %21, %22 %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %20, align 8, !noalias !5421 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i5.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %32 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1 %w1.0.i.i.1 = load double, ptr %32, align 8, !noalias !5421, !noundef !3 %33 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1, i32 1 %w1.1.i.i.1 = load double, ptr %33, align 8, !noalias !5421, !noundef !3 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 123 %_6.i.i.i.1 = fneg double %w1.1.i.i.1 %35 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5421 %36 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.1, align 8, !noalias !5421 %37 = fadd <2 x double> %35, %36 store <2 x double> %37, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5421 %38 = fsub <2 x double> %35, %36 %39 = shufflevector <2 x double> %38, <2 x double> poison, <2 x i32> %40 = insertelement <2 x double> poison, double %_6.i.i.i.1, i64 0 %41 = insertelement <2 x double> %40, double %w1.1.i.i.1, i64 1 %42 = fmul <2 x double> %39, %41 %43 = insertelement <2 x double> poison, double %w1.0.i.i.1, i64 0 %44 = shufflevector <2 x double> %43, <2 x double> poison, <2 x i32> zeroinitializer %45 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %44, <2 x double> %38, <2 x double> %42) store <2 x double> %45, ptr %34, align 8, !noalias !5421 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i5.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.2 = load double, ptr %46, align 8, !noalias !5421, !noundef !3 %47 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.2 = load double, ptr %47, align 8, !noalias !5421, !noundef !3 %48 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 125 %_6.i.i.i.2 = fneg double %w1.1.i.i.2 %49 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5421 %50 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.2, align 8, !noalias !5421 %51 = fadd <2 x double> %49, %50 store <2 x double> %51, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5421 %52 = fsub <2 x double> %49, %50 %53 = shufflevector <2 x double> %52, <2 x double> poison, <2 x i32> %54 = insertelement <2 x double> poison, double %_6.i.i.i.2, i64 0 %55 = insertelement <2 x double> %54, double %w1.1.i.i.2, i64 1 %56 = fmul <2 x double> %53, %55 %57 = insertelement <2 x double> poison, double %w1.0.i.i.2, i64 0 %58 = shufflevector <2 x double> %57, <2 x double> poison, <2 x i32> zeroinitializer %59 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %58, <2 x double> %52, <2 x double> %56) store <2 x double> %59, ptr %48, align 8, !noalias !5421 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i5.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %60 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1 %w1.0.i.i.3 = load double, ptr %60, align 8, !noalias !5421, !noundef !3 %61 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1, i32 1 %w1.1.i.i.3 = load double, ptr %61, align 8, !noalias !5421, !noundef !3 %62 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 127 %_6.i.i.i.3 = fneg double %w1.1.i.i.3 %63 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5421 %64 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.3, align 8, !noalias !5421 %65 = fadd <2 x double> %63, %64 store <2 x double> %65, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5421 %66 = fsub <2 x double> %63, %64 %67 = shufflevector <2 x double> %66, <2 x double> poison, <2 x i32> %68 = insertelement <2 x double> poison, double %_6.i.i.i.3, i64 0 %69 = insertelement <2 x double> %68, double %w1.1.i.i.3, i64 1 %70 = fmul <2 x double> %67, %69 %71 = insertelement <2 x double> poison, double %w1.0.i.i.3, i64 0 %72 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> zeroinitializer %73 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %72, <2 x double> %66, <2 x double> %70) store <2 x double> %73, ptr %62, align 8, !noalias !5421 %74 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 br label %vector.body12 vector.body12: ; preds = %vector.body12, %bb19.i.i %index13 = phi i64 [ 0, %bb19.i.i ], [ %index.next26, %vector.body12 ] %vec.ind = phi <4 x i64> [ , %bb19.i.i ], [ %vec.ind.next, %vector.body12 ] %75 = shl nuw nsw <4 x i64> %vec.ind, %76 = extractelement <4 x i64> %75, i64 0 %77 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %76 %78 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %76 %79 = shl nuw nsw i64 %index13, 2 %80 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %79 %81 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !5425 %82 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %75, i64 1, i32 1 %wide.masked.gather14 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %82, i32 8, <4 x i1> , <4 x double> poison), !noalias !5425 %83 = fneg <4 x double> %wide.masked.gather14 %wide.vec15 = load <16 x double>, ptr %77, align 8, !noalias !5425 %strided.vec16 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec17 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec18 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %strided.vec19 = shufflevector <16 x double> %wide.vec15, <16 x double> poison, <4 x i32> %wide.vec20 = load <16 x double>, ptr %78, align 8, !noalias !5425 %strided.vec21 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec22 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec23 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %strided.vec24 = shufflevector <16 x double> %wide.vec20, <16 x double> poison, <4 x i32> %84 = fadd <4 x double> %strided.vec16, %strided.vec21 %85 = fadd <4 x double> %strided.vec17, %strided.vec22 %86 = fsub <4 x double> %strided.vec16, %strided.vec21 %87 = fsub <4 x double> %strided.vec17, %strided.vec22 %88 = fmul <4 x double> %87, %83 %89 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %86, <4 x double> %88) %90 = fmul <4 x double> %wide.masked.gather14, %86 %91 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %87, <4 x double> %90) %92 = fadd <4 x double> %strided.vec18, %strided.vec23 %93 = fadd <4 x double> %strided.vec19, %strided.vec24 %94 = fsub <4 x double> %strided.vec18, %strided.vec23 %95 = fsub <4 x double> %strided.vec19, %strided.vec24 %96 = fmul <4 x double> %95, %83 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %94, <4 x double> %96) %98 = fmul <4 x double> %wide.masked.gather14, %94 %99 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %95, <4 x double> %98) %100 = shufflevector <4 x double> %84, <4 x double> %85, <8 x i32> %101 = shufflevector <4 x double> %92, <4 x double> %93, <8 x i32> %102 = shufflevector <4 x double> %89, <4 x double> %91, <8 x i32> %103 = shufflevector <4 x double> %97, <4 x double> %99, <8 x i32> %104 = shufflevector <8 x double> %100, <8 x double> %101, <16 x i32> %105 = shufflevector <8 x double> %102, <8 x double> %103, <16 x i32> %interleaved.vec25 = shufflevector <16 x double> %104, <16 x double> %105, <32 x i32> store <32 x double> %interleaved.vec25, ptr %80, align 8, !noalias !5425 %index.next26 = add nuw i64 %index13, 4 %vec.ind.next = add <4 x i64> %vec.ind, %106 = icmp eq i64 %index.next26, 28 br i1 %106, label %bb19.i.i41, label %vector.body12, !llvm.loop !5428 bb19.i.i41: ; preds = %vector.body12 %data.i.i.i.i.i.i.i.i463 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %data.i5.i.i.i.i.i.i.i468 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %data.i.i.i.i.i.i472 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %107 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 56, i64 1 %w1.0.i.i43 = load double, ptr %107, align 8, !noalias !5425, !noundef !3 %108 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 56, i64 1, i32 1 %w1.1.i.i44 = load double, ptr %108, align 8, !noalias !5425, !noundef !3 %109 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 114 %_6.i.i.i64 = fneg double %w1.1.i.i44 %110 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i463, align 8, !noalias !5425 %111 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i468, align 8, !noalias !5425 %112 = fadd <4 x double> %110, %111 store <4 x double> %112, ptr %data.i.i.i.i.i.i472, align 8, !noalias !5425 %113 = fsub <4 x double> %110, %111 %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = insertelement <4 x double> poison, double %_6.i.i.i64, i64 0 %116 = insertelement <4 x double> %115, double %w1.1.i.i44, i64 1 %117 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %114, %117 %119 = insertelement <4 x double> poison, double %w1.0.i.i43, i64 0 %120 = shufflevector <4 x double> %119, <4 x double> poison, <4 x i32> zeroinitializer %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %120, <4 x double> %113, <4 x double> %118) store <4 x double> %121, ptr %109, align 8, !noalias !5425 %data.i.i.i.i.i.i.i.i463.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 58 %data.i5.i.i.i.i.i.i.i468.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 122 %data.i.i.i.i.i.i472.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %122 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 58, i64 1 %w1.0.i.i43.1 = load double, ptr %122, align 8, !noalias !5425, !noundef !3 %123 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 58, i64 1, i32 1 %w1.1.i.i44.1 = load double, ptr %123, align 8, !noalias !5425, !noundef !3 %124 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 118 %_6.i.i.i64.1 = fneg double %w1.1.i.i44.1 %125 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i463.1, align 8, !noalias !5425 %126 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i468.1, align 8, !noalias !5425 %127 = fadd <4 x double> %125, %126 store <4 x double> %127, ptr %data.i.i.i.i.i.i472.1, align 8, !noalias !5425 %128 = fsub <4 x double> %125, %126 %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> %130 = insertelement <4 x double> poison, double %_6.i.i.i64.1, i64 0 %131 = insertelement <4 x double> %130, double %w1.1.i.i44.1, i64 1 %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = fmul <4 x double> %129, %132 %134 = insertelement <4 x double> poison, double %w1.0.i.i43.1, i64 0 %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %135, <4 x double> %128, <4 x double> %133) store <4 x double> %136, ptr %124, align 8, !noalias !5425 %data.i.i.i.i.i.i.i.i463.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %data.i5.i.i.i.i.i.i.i468.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %data.i.i.i.i.i.i472.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %137 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i43.2 = load double, ptr %137, align 8, !noalias !5425, !noundef !3 %138 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i44.2 = load double, ptr %138, align 8, !noalias !5425, !noundef !3 %139 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 122 %_6.i.i.i64.2 = fneg double %w1.1.i.i44.2 %140 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i463.2, align 8, !noalias !5425 %141 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i468.2, align 8, !noalias !5425 %142 = fadd <4 x double> %140, %141 store <4 x double> %142, ptr %data.i.i.i.i.i.i472.2, align 8, !noalias !5425 %143 = fsub <4 x double> %140, %141 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = insertelement <4 x double> poison, double %_6.i.i.i64.2, i64 0 %146 = insertelement <4 x double> %145, double %w1.1.i.i44.2, i64 1 %147 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> %148 = fmul <4 x double> %144, %147 %149 = insertelement <4 x double> poison, double %w1.0.i.i43.2, i64 0 %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %151 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %150, <4 x double> %143, <4 x double> %148) store <4 x double> %151, ptr %139, align 8, !noalias !5425 %data.i.i.i.i.i.i.i.i463.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 62 %data.i5.i.i.i.i.i.i.i468.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 126 %data.i.i.i.i.i.i472.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %152 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i43.3 = load double, ptr %152, align 8, !noalias !5425, !noundef !3 %153 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i44.3 = load double, ptr %153, align 8, !noalias !5425, !noundef !3 %154 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %_6.i.i.i64.3 = fneg double %w1.1.i.i44.3 %155 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i463.3, align 8, !noalias !5425 %156 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i468.3, align 8, !noalias !5425 %157 = fadd <4 x double> %155, %156 store <4 x double> %157, ptr %data.i.i.i.i.i.i472.3, align 8, !noalias !5425 %158 = fsub <4 x double> %155, %156 %159 = shufflevector <4 x double> %158, <4 x double> poison, <4 x i32> %160 = insertelement <4 x double> poison, double %_6.i.i.i64.3, i64 0 %161 = insertelement <4 x double> %160, double %w1.1.i.i44.3, i64 1 %162 = shufflevector <4 x double> %161, <4 x double> poison, <4 x i32> %163 = fmul <4 x double> %159, %162 %164 = insertelement <4 x double> poison, double %w1.0.i.i43.3, i64 0 %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> zeroinitializer %166 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %165, <4 x double> %158, <4 x double> %163) store <4 x double> %166, ptr %154, align 8, !noalias !5425 br label %bb19.i.i107 bb19.i.i107: ; preds = %bb19.i.i41, %bb19.i.i107 %iter.i.i77.sroa.38.0125 = phi i64 [ %189, %bb19.i.i107 ], [ 0, %bb19.i.i41 ] %start1.i.i.i.i.i.i.i.i635 = shl nuw nsw i64 %iter.i.i77.sroa.38.0125, 2 %data.i.i.i.i.i.i.i.i636 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i635 %data.i5.i.i.i.i.i.i.i641 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %start1.i.i.i.i.i.i.i.i635 %start1.i.i.i.i.i.i644 = shl nuw nsw i64 %iter.i.i77.sroa.38.0125, 3 %data.i.i.i.i.i.i645 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i644 %167 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i635, i64 1 %w1.0.i.i109 = load double, ptr %167, align 8, !noalias !5429, !noundef !3 %168 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i635, i64 1, i32 1 %w1.1.i.i110 = load double, ptr %168, align 8, !noalias !5429, !noundef !3 %169 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i645, i64 4 %_6.i.i.i130 = fneg double %w1.1.i.i110 %170 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i636, align 8, !noalias !5429 %171 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i641, align 8, !noalias !5429 %172 = fadd <4 x double> %170, %171 store <4 x double> %172, ptr %data.i.i.i.i.i.i645, align 8, !noalias !5429 %173 = fsub <4 x double> %170, %171 %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = insertelement <4 x double> poison, double %_6.i.i.i130, i64 0 %176 = insertelement <4 x double> %175, double %w1.1.i.i110, i64 1 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %174, %177 %179 = insertelement <4 x double> poison, double %w1.0.i.i109, i64 0 %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> zeroinitializer %181 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %173, <4 x double> %178) store <4 x double> %181, ptr %169, align 8, !noalias !5429 %_3.i.i.i.i.i.i.i.i694.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i636, i64 2 %_3.i2.i.i.i.i.i.i.i697.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i641, i64 2 %_3.i.i.i.i.i.i700.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i645, i64 2 %_3.i.i.i.i703.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i645, i64 6 %182 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i694.2, align 8, !noalias !5429 %183 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i697.2, align 8, !noalias !5429 %184 = fadd <4 x double> %182, %183 store <4 x double> %184, ptr %_3.i.i.i.i.i.i700.2, align 8, !noalias !5429 %185 = fsub <4 x double> %182, %183 %186 = shufflevector <4 x double> %185, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %186, %177 %188 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %180, <4 x double> %185, <4 x double> %187) store <4 x double> %188, ptr %_3.i.i.i.i703.2, align 8, !noalias !5429 %189 = add nuw nsw i64 %iter.i.i77.sroa.38.0125, 1 %exitcond136.not = icmp eq i64 %189, 16 br i1 %exitcond136.not, label %bb19.i.i.i, label %bb19.i.i107 bb19.i.i173.preheader: ; preds = %bb19.i.i.i %190 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i175 = load double, ptr %190, align 8, !noalias !5418, !noundef !3 %191 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i176 = load double, ptr %191, align 8, !noalias !5418, !noundef !3 %_6.i.i.i196 = fneg double %w1.1.i.i176 %broadcast.splatinsert42 = insertelement <4 x double> poison, double %w1.1.i.i176, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert40 = insertelement <4 x double> poison, double %w1.0.i.i175, i64 0 %broadcast.splat41 = shufflevector <4 x double> %broadcast.splatinsert40, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i.i.i196, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %192 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec33 = load <8 x double>, ptr %buf.0, align 8, !noalias !5432 %strided.vec34 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %strided.vec35 = shufflevector <8 x double> %wide.vec33, <8 x double> poison, <4 x i32> %wide.vec36 = load <8 x double>, ptr %0, align 8, !noalias !5432 %strided.vec37 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %strided.vec38 = shufflevector <8 x double> %wide.vec36, <8 x double> poison, <4 x i32> %193 = fadd <4 x double> %strided.vec34, %strided.vec37 %194 = fadd <4 x double> %strided.vec35, %strided.vec38 %interleaved.vec39 = shufflevector <4 x double> %193, <4 x double> %194, <8 x i32> store <8 x double> %interleaved.vec39, ptr %scratch.0, align 8, !noalias !5432 %195 = fsub <4 x double> %strided.vec34, %strided.vec37 %196 = fsub <4 x double> %strided.vec35, %strided.vec38 %197 = fmul <4 x double> %196, %broadcast.splat %198 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %195, <4 x double> %197) %199 = fmul <4 x double> %broadcast.splat43, %195 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %196, <4 x double> %199) %interleaved.vec44 = shufflevector <4 x double> %198, <4 x double> %200, <8 x i32> store <8 x double> %interleaved.vec44, ptr %192, align 8, !noalias !5432 %201 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %202 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %wide.vec33.1 = load <8 x double>, ptr %201, align 8, !noalias !5432 %strided.vec34.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %strided.vec35.1 = shufflevector <8 x double> %wide.vec33.1, <8 x double> poison, <4 x i32> %wide.vec36.1 = load <8 x double>, ptr %202, align 8, !noalias !5432 %strided.vec37.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %strided.vec38.1 = shufflevector <8 x double> %wide.vec36.1, <8 x double> poison, <4 x i32> %203 = fadd <4 x double> %strided.vec34.1, %strided.vec37.1 %204 = fadd <4 x double> %strided.vec35.1, %strided.vec38.1 %205 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec39.1 = shufflevector <4 x double> %203, <4 x double> %204, <8 x i32> store <8 x double> %interleaved.vec39.1, ptr %205, align 8, !noalias !5432 %206 = fsub <4 x double> %strided.vec34.1, %strided.vec37.1 %207 = fsub <4 x double> %strided.vec35.1, %strided.vec38.1 %208 = fmul <4 x double> %207, %broadcast.splat %209 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %206, <4 x double> %208) %210 = fmul <4 x double> %broadcast.splat43, %206 %211 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %207, <4 x double> %210) %212 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec44.1 = shufflevector <4 x double> %209, <4 x double> %211, <8 x i32> store <8 x double> %interleaved.vec44.1, ptr %212, align 8, !noalias !5432 %213 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %214 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %wide.vec33.2 = load <8 x double>, ptr %213, align 8, !noalias !5432 %strided.vec34.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %strided.vec35.2 = shufflevector <8 x double> %wide.vec33.2, <8 x double> poison, <4 x i32> %wide.vec36.2 = load <8 x double>, ptr %214, align 8, !noalias !5432 %strided.vec37.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %strided.vec38.2 = shufflevector <8 x double> %wide.vec36.2, <8 x double> poison, <4 x i32> %215 = fadd <4 x double> %strided.vec34.2, %strided.vec37.2 %216 = fadd <4 x double> %strided.vec35.2, %strided.vec38.2 %217 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %interleaved.vec39.2 = shufflevector <4 x double> %215, <4 x double> %216, <8 x i32> store <8 x double> %interleaved.vec39.2, ptr %217, align 8, !noalias !5432 %218 = fsub <4 x double> %strided.vec34.2, %strided.vec37.2 %219 = fsub <4 x double> %strided.vec35.2, %strided.vec38.2 %220 = fmul <4 x double> %219, %broadcast.splat %221 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %218, <4 x double> %220) %222 = fmul <4 x double> %broadcast.splat43, %218 %223 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %219, <4 x double> %222) %224 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %interleaved.vec44.2 = shufflevector <4 x double> %221, <4 x double> %223, <8 x i32> store <8 x double> %interleaved.vec44.2, ptr %224, align 8, !noalias !5432 %225 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %226 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %wide.vec33.3 = load <8 x double>, ptr %225, align 8, !noalias !5432 %strided.vec34.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %strided.vec35.3 = shufflevector <8 x double> %wide.vec33.3, <8 x double> poison, <4 x i32> %wide.vec36.3 = load <8 x double>, ptr %226, align 8, !noalias !5432 %strided.vec37.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %strided.vec38.3 = shufflevector <8 x double> %wide.vec36.3, <8 x double> poison, <4 x i32> %227 = fadd <4 x double> %strided.vec34.3, %strided.vec37.3 %228 = fadd <4 x double> %strided.vec35.3, %strided.vec38.3 %229 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec39.3 = shufflevector <4 x double> %227, <4 x double> %228, <8 x i32> store <8 x double> %interleaved.vec39.3, ptr %229, align 8, !noalias !5432 %230 = fsub <4 x double> %strided.vec34.3, %strided.vec37.3 %231 = fsub <4 x double> %strided.vec35.3, %strided.vec38.3 %232 = fmul <4 x double> %231, %broadcast.splat %233 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %230, <4 x double> %232) %234 = fmul <4 x double> %broadcast.splat43, %230 %235 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat41, <4 x double> %231, <4 x double> %234) %236 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec44.3 = shufflevector <4 x double> %233, <4 x double> %235, <8 x i32> store <8 x double> %interleaved.vec44.3, ptr %236, align 8, !noalias !5432 %data.i.i.i.i.i.i991.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %237 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1, i32 1 %w1.1.i.i176.1 = load double, ptr %237, align 8, !noalias !5432, !noundef !3 %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w1.1.i.i176.1, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %238 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 16, i64 1 %w1.0.i.i175.1 = load double, ptr %238, align 8, !noalias !5432, !noundef !3 %broadcast.splatinsert61 = insertelement <4 x double> poison, double %w1.0.i.i175.1, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i196.1 = fneg double %w1.1.i.i176.1 %broadcast.splatinsert59 = insertelement <4 x double> poison, double %_6.i.i.i196.1, i64 0 %broadcast.splat60 = shufflevector <4 x double> %broadcast.splatinsert59, <4 x double> poison, <4 x i32> zeroinitializer %239 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %data.i5.i.i.i.i.i.i.i987.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %data.i.i.i.i.i.i.i.i982.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %wide.vec52 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i982.1, align 8, !noalias !5432 %strided.vec53 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %strided.vec54 = shufflevector <8 x double> %wide.vec52, <8 x double> poison, <4 x i32> %wide.vec55 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i987.1, align 8, !noalias !5432 %strided.vec56 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %strided.vec57 = shufflevector <8 x double> %wide.vec55, <8 x double> poison, <4 x i32> %240 = fadd <4 x double> %strided.vec53, %strided.vec56 %241 = fadd <4 x double> %strided.vec54, %strided.vec57 %interleaved.vec58 = shufflevector <4 x double> %240, <4 x double> %241, <8 x i32> store <8 x double> %interleaved.vec58, ptr %data.i.i.i.i.i.i991.1, align 8, !noalias !5432 %242 = fsub <4 x double> %strided.vec53, %strided.vec56 %243 = fsub <4 x double> %strided.vec54, %strided.vec57 %244 = fmul <4 x double> %243, %broadcast.splat60 %245 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %242, <4 x double> %244) %246 = fmul <4 x double> %broadcast.splat64, %242 %247 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %243, <4 x double> %246) %interleaved.vec65 = shufflevector <4 x double> %245, <4 x double> %247, <8 x i32> store <8 x double> %interleaved.vec65, ptr %239, align 8, !noalias !5432 %248 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %249 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %wide.vec52.1 = load <8 x double>, ptr %248, align 8, !noalias !5432 %strided.vec53.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %strided.vec54.1 = shufflevector <8 x double> %wide.vec52.1, <8 x double> poison, <4 x i32> %wide.vec55.1 = load <8 x double>, ptr %249, align 8, !noalias !5432 %strided.vec56.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %strided.vec57.1 = shufflevector <8 x double> %wide.vec55.1, <8 x double> poison, <4 x i32> %250 = fadd <4 x double> %strided.vec53.1, %strided.vec56.1 %251 = fadd <4 x double> %strided.vec54.1, %strided.vec57.1 %252 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec58.1 = shufflevector <4 x double> %250, <4 x double> %251, <8 x i32> store <8 x double> %interleaved.vec58.1, ptr %252, align 8, !noalias !5432 %253 = fsub <4 x double> %strided.vec53.1, %strided.vec56.1 %254 = fsub <4 x double> %strided.vec54.1, %strided.vec57.1 %255 = fmul <4 x double> %254, %broadcast.splat60 %256 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %253, <4 x double> %255) %257 = fmul <4 x double> %broadcast.splat64, %253 %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %254, <4 x double> %257) %259 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec65.1 = shufflevector <4 x double> %256, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec65.1, ptr %259, align 8, !noalias !5432 %260 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %261 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %wide.vec52.2 = load <8 x double>, ptr %260, align 8, !noalias !5432 %strided.vec53.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %strided.vec54.2 = shufflevector <8 x double> %wide.vec52.2, <8 x double> poison, <4 x i32> %wide.vec55.2 = load <8 x double>, ptr %261, align 8, !noalias !5432 %strided.vec56.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %strided.vec57.2 = shufflevector <8 x double> %wide.vec55.2, <8 x double> poison, <4 x i32> %262 = fadd <4 x double> %strided.vec53.2, %strided.vec56.2 %263 = fadd <4 x double> %strided.vec54.2, %strided.vec57.2 %264 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %interleaved.vec58.2 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> store <8 x double> %interleaved.vec58.2, ptr %264, align 8, !noalias !5432 %265 = fsub <4 x double> %strided.vec53.2, %strided.vec56.2 %266 = fsub <4 x double> %strided.vec54.2, %strided.vec57.2 %267 = fmul <4 x double> %266, %broadcast.splat60 %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %265, <4 x double> %267) %269 = fmul <4 x double> %broadcast.splat64, %265 %270 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %266, <4 x double> %269) %271 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %interleaved.vec65.2 = shufflevector <4 x double> %268, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec65.2, ptr %271, align 8, !noalias !5432 %272 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %273 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %wide.vec52.3 = load <8 x double>, ptr %272, align 8, !noalias !5432 %strided.vec53.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %strided.vec54.3 = shufflevector <8 x double> %wide.vec52.3, <8 x double> poison, <4 x i32> %wide.vec55.3 = load <8 x double>, ptr %273, align 8, !noalias !5432 %strided.vec56.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %strided.vec57.3 = shufflevector <8 x double> %wide.vec55.3, <8 x double> poison, <4 x i32> %274 = fadd <4 x double> %strided.vec53.3, %strided.vec56.3 %275 = fadd <4 x double> %strided.vec54.3, %strided.vec57.3 %276 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec58.3 = shufflevector <4 x double> %274, <4 x double> %275, <8 x i32> store <8 x double> %interleaved.vec58.3, ptr %276, align 8, !noalias !5432 %277 = fsub <4 x double> %strided.vec53.3, %strided.vec56.3 %278 = fsub <4 x double> %strided.vec54.3, %strided.vec57.3 %279 = fmul <4 x double> %278, %broadcast.splat60 %280 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %277, <4 x double> %279) %281 = fmul <4 x double> %broadcast.splat64, %277 %282 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat62, <4 x double> %278, <4 x double> %281) %283 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec65.3 = shufflevector <4 x double> %280, <4 x double> %282, <8 x i32> store <8 x double> %interleaved.vec65.3, ptr %283, align 8, !noalias !5432 %data.i.i.i.i.i.i.i.i982.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i987.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %284 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1 %w1.0.i.i175.2 = load double, ptr %284, align 8, !noalias !5418, !noundef !3 %285 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 32, i64 1, i32 1 %w1.1.i.i176.2 = load double, ptr %285, align 8, !noalias !5418, !noundef !3 %_6.i.i.i196.2 = fneg double %w1.1.i.i176.2 %broadcast.splatinsert84 = insertelement <4 x double> poison, double %w1.1.i.i176.2, i64 0 %broadcast.splat85 = shufflevector <4 x double> %broadcast.splatinsert84, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w1.0.i.i175.2, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %_6.i.i.i196.2, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %286 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %wide.vec73 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i982.2, align 8, !noalias !5432 %strided.vec74 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %strided.vec75 = shufflevector <8 x double> %wide.vec73, <8 x double> poison, <4 x i32> %wide.vec76 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i987.2, align 8, !noalias !5432 %strided.vec77 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %strided.vec78 = shufflevector <8 x double> %wide.vec76, <8 x double> poison, <4 x i32> %287 = fadd <4 x double> %strided.vec74, %strided.vec77 %288 = fadd <4 x double> %strided.vec75, %strided.vec78 %interleaved.vec79 = shufflevector <4 x double> %287, <4 x double> %288, <8 x i32> store <8 x double> %interleaved.vec79, ptr %74, align 8, !noalias !5432 %289 = fsub <4 x double> %strided.vec74, %strided.vec77 %290 = fsub <4 x double> %strided.vec75, %strided.vec78 %291 = fmul <4 x double> %290, %broadcast.splat81 %292 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %289, <4 x double> %291) %293 = fmul <4 x double> %broadcast.splat85, %289 %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %290, <4 x double> %293) %interleaved.vec86 = shufflevector <4 x double> %292, <4 x double> %294, <8 x i32> store <8 x double> %interleaved.vec86, ptr %286, align 8, !noalias !5432 %295 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %296 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %wide.vec73.1 = load <8 x double>, ptr %295, align 8, !noalias !5432 %strided.vec74.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %strided.vec75.1 = shufflevector <8 x double> %wide.vec73.1, <8 x double> poison, <4 x i32> %wide.vec76.1 = load <8 x double>, ptr %296, align 8, !noalias !5432 %strided.vec77.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %strided.vec78.1 = shufflevector <8 x double> %wide.vec76.1, <8 x double> poison, <4 x i32> %297 = fadd <4 x double> %strided.vec74.1, %strided.vec77.1 %298 = fadd <4 x double> %strided.vec75.1, %strided.vec78.1 %299 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %interleaved.vec79.1 = shufflevector <4 x double> %297, <4 x double> %298, <8 x i32> store <8 x double> %interleaved.vec79.1, ptr %299, align 8, !noalias !5432 %300 = fsub <4 x double> %strided.vec74.1, %strided.vec77.1 %301 = fsub <4 x double> %strided.vec75.1, %strided.vec78.1 %302 = fmul <4 x double> %301, %broadcast.splat81 %303 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %300, <4 x double> %302) %304 = fmul <4 x double> %broadcast.splat85, %300 %305 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %301, <4 x double> %304) %306 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %interleaved.vec86.1 = shufflevector <4 x double> %303, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec86.1, ptr %306, align 8, !noalias !5432 %307 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %308 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %wide.vec73.2 = load <8 x double>, ptr %307, align 8, !noalias !5432 %strided.vec74.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %strided.vec75.2 = shufflevector <8 x double> %wide.vec73.2, <8 x double> poison, <4 x i32> %wide.vec76.2 = load <8 x double>, ptr %308, align 8, !noalias !5432 %strided.vec77.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %strided.vec78.2 = shufflevector <8 x double> %wide.vec76.2, <8 x double> poison, <4 x i32> %309 = fadd <4 x double> %strided.vec74.2, %strided.vec77.2 %310 = fadd <4 x double> %strided.vec75.2, %strided.vec78.2 %311 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %interleaved.vec79.2 = shufflevector <4 x double> %309, <4 x double> %310, <8 x i32> store <8 x double> %interleaved.vec79.2, ptr %311, align 8, !noalias !5432 %312 = fsub <4 x double> %strided.vec74.2, %strided.vec77.2 %313 = fsub <4 x double> %strided.vec75.2, %strided.vec78.2 %314 = fmul <4 x double> %313, %broadcast.splat81 %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %312, <4 x double> %314) %316 = fmul <4 x double> %broadcast.splat85, %312 %317 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %313, <4 x double> %316) %318 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %interleaved.vec86.2 = shufflevector <4 x double> %315, <4 x double> %317, <8 x i32> store <8 x double> %interleaved.vec86.2, ptr %318, align 8, !noalias !5432 %319 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %320 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %wide.vec73.3 = load <8 x double>, ptr %319, align 8, !noalias !5432 %strided.vec74.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %strided.vec75.3 = shufflevector <8 x double> %wide.vec73.3, <8 x double> poison, <4 x i32> %wide.vec76.3 = load <8 x double>, ptr %320, align 8, !noalias !5432 %strided.vec77.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %strided.vec78.3 = shufflevector <8 x double> %wide.vec76.3, <8 x double> poison, <4 x i32> %321 = fadd <4 x double> %strided.vec74.3, %strided.vec77.3 %322 = fadd <4 x double> %strided.vec75.3, %strided.vec78.3 %323 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %interleaved.vec79.3 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec79.3, ptr %323, align 8, !noalias !5432 %324 = fsub <4 x double> %strided.vec74.3, %strided.vec77.3 %325 = fsub <4 x double> %strided.vec75.3, %strided.vec78.3 %326 = fmul <4 x double> %325, %broadcast.splat81 %327 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %324, <4 x double> %326) %328 = fmul <4 x double> %broadcast.splat85, %324 %329 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat83, <4 x double> %325, <4 x double> %328) %330 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %interleaved.vec86.3 = shufflevector <4 x double> %327, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec86.3, ptr %330, align 8, !noalias !5432 %331 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1, i32 1 %w1.1.i.i176.3 = load double, ptr %331, align 8, !noalias !5432, !noundef !3 %broadcast.splatinsert105 = insertelement <4 x double> poison, double %w1.1.i.i176.3, i64 0 %broadcast.splat106 = shufflevector <4 x double> %broadcast.splatinsert105, <4 x double> poison, <4 x i32> zeroinitializer %332 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 48, i64 1 %w1.0.i.i175.3 = load double, ptr %332, align 8, !noalias !5432, !noundef !3 %broadcast.splatinsert103 = insertelement <4 x double> poison, double %w1.0.i.i175.3, i64 0 %broadcast.splat104 = shufflevector <4 x double> %broadcast.splatinsert103, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i196.3 = fneg double %w1.1.i.i176.3 %broadcast.splatinsert101 = insertelement <4 x double> poison, double %_6.i.i.i196.3, i64 0 %broadcast.splat102 = shufflevector <4 x double> %broadcast.splatinsert101, <4 x double> poison, <4 x i32> zeroinitializer %333 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %data.i.i.i.i.i.i991.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %data.i5.i.i.i.i.i.i.i987.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %data.i.i.i.i.i.i.i.i982.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %wide.vec94 = load <8 x double>, ptr %data.i.i.i.i.i.i.i.i982.3, align 8, !noalias !5432 %strided.vec95 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %strided.vec96 = shufflevector <8 x double> %wide.vec94, <8 x double> poison, <4 x i32> %wide.vec97 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i987.3, align 8, !noalias !5432 %strided.vec98 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %strided.vec99 = shufflevector <8 x double> %wide.vec97, <8 x double> poison, <4 x i32> %334 = fadd <4 x double> %strided.vec95, %strided.vec98 %335 = fadd <4 x double> %strided.vec96, %strided.vec99 %interleaved.vec100 = shufflevector <4 x double> %334, <4 x double> %335, <8 x i32> store <8 x double> %interleaved.vec100, ptr %data.i.i.i.i.i.i991.3, align 8, !noalias !5432 %336 = fsub <4 x double> %strided.vec95, %strided.vec98 %337 = fsub <4 x double> %strided.vec96, %strided.vec99 %338 = fmul <4 x double> %337, %broadcast.splat102 %339 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %336, <4 x double> %338) %340 = fmul <4 x double> %broadcast.splat106, %336 %341 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %337, <4 x double> %340) %interleaved.vec107 = shufflevector <4 x double> %339, <4 x double> %341, <8 x i32> store <8 x double> %interleaved.vec107, ptr %333, align 8, !noalias !5432 %342 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %343 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %wide.vec94.1 = load <8 x double>, ptr %342, align 8, !noalias !5432 %strided.vec95.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %strided.vec96.1 = shufflevector <8 x double> %wide.vec94.1, <8 x double> poison, <4 x i32> %wide.vec97.1 = load <8 x double>, ptr %343, align 8, !noalias !5432 %strided.vec98.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %strided.vec99.1 = shufflevector <8 x double> %wide.vec97.1, <8 x double> poison, <4 x i32> %344 = fadd <4 x double> %strided.vec95.1, %strided.vec98.1 %345 = fadd <4 x double> %strided.vec96.1, %strided.vec99.1 %346 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %interleaved.vec100.1 = shufflevector <4 x double> %344, <4 x double> %345, <8 x i32> store <8 x double> %interleaved.vec100.1, ptr %346, align 8, !noalias !5432 %347 = fsub <4 x double> %strided.vec95.1, %strided.vec98.1 %348 = fsub <4 x double> %strided.vec96.1, %strided.vec99.1 %349 = fmul <4 x double> %348, %broadcast.splat102 %350 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %347, <4 x double> %349) %351 = fmul <4 x double> %broadcast.splat106, %347 %352 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %348, <4 x double> %351) %353 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %interleaved.vec107.1 = shufflevector <4 x double> %350, <4 x double> %352, <8 x i32> store <8 x double> %interleaved.vec107.1, ptr %353, align 8, !noalias !5432 %354 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %355 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %wide.vec94.2 = load <8 x double>, ptr %354, align 8, !noalias !5432 %strided.vec95.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %strided.vec96.2 = shufflevector <8 x double> %wide.vec94.2, <8 x double> poison, <4 x i32> %wide.vec97.2 = load <8 x double>, ptr %355, align 8, !noalias !5432 %strided.vec98.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %strided.vec99.2 = shufflevector <8 x double> %wide.vec97.2, <8 x double> poison, <4 x i32> %356 = fadd <4 x double> %strided.vec95.2, %strided.vec98.2 %357 = fadd <4 x double> %strided.vec96.2, %strided.vec99.2 %358 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %interleaved.vec100.2 = shufflevector <4 x double> %356, <4 x double> %357, <8 x i32> store <8 x double> %interleaved.vec100.2, ptr %358, align 8, !noalias !5432 %359 = fsub <4 x double> %strided.vec95.2, %strided.vec98.2 %360 = fsub <4 x double> %strided.vec96.2, %strided.vec99.2 %361 = fmul <4 x double> %360, %broadcast.splat102 %362 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %359, <4 x double> %361) %363 = fmul <4 x double> %broadcast.splat106, %359 %364 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %360, <4 x double> %363) %365 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %interleaved.vec107.2 = shufflevector <4 x double> %362, <4 x double> %364, <8 x i32> store <8 x double> %interleaved.vec107.2, ptr %365, align 8, !noalias !5432 %366 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %367 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %wide.vec94.3 = load <8 x double>, ptr %366, align 8, !noalias !5432 %strided.vec95.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %strided.vec96.3 = shufflevector <8 x double> %wide.vec94.3, <8 x double> poison, <4 x i32> %wide.vec97.3 = load <8 x double>, ptr %367, align 8, !noalias !5432 %strided.vec98.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %strided.vec99.3 = shufflevector <8 x double> %wide.vec97.3, <8 x double> poison, <4 x i32> %368 = fadd <4 x double> %strided.vec95.3, %strided.vec98.3 %369 = fadd <4 x double> %strided.vec96.3, %strided.vec99.3 %370 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %interleaved.vec100.3 = shufflevector <4 x double> %368, <4 x double> %369, <8 x i32> store <8 x double> %interleaved.vec100.3, ptr %370, align 8, !noalias !5432 %371 = fsub <4 x double> %strided.vec95.3, %strided.vec98.3 %372 = fsub <4 x double> %strided.vec96.3, %strided.vec99.3 %373 = fmul <4 x double> %372, %broadcast.splat102 %374 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %371, <4 x double> %373) %375 = fmul <4 x double> %broadcast.splat106, %371 %376 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat104, <4 x double> %372, <4 x double> %375) %377 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %interleaved.vec107.3 = shufflevector <4 x double> %374, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec107.3, ptr %377, align 8, !noalias !5432 %broadcast.splatinsert126 = insertelement <4 x double> poison, double %w1.1.i.i176, i64 0 %broadcast.splat127 = shufflevector <4 x double> %broadcast.splatinsert126, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert124 = insertelement <4 x double> poison, double %w1.0.i.i175, i64 0 %broadcast.splat125 = shufflevector <4 x double> %broadcast.splatinsert124, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert122 = insertelement <4 x double> poison, double %_6.i.i.i196, i64 0 %broadcast.splat123 = shufflevector <4 x double> %broadcast.splatinsert122, <4 x double> poison, <4 x i32> zeroinitializer %wide.vec115 = load <8 x double>, ptr %scratch.0, align 8, !noalias !5418 %strided.vec116 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %strided.vec117 = shufflevector <8 x double> %wide.vec115, <8 x double> poison, <4 x i32> %wide.vec118 = load <8 x double>, ptr %74, align 8, !noalias !5418 %strided.vec119 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %strided.vec120 = shufflevector <8 x double> %wide.vec118, <8 x double> poison, <4 x i32> %378 = fadd <4 x double> %strided.vec116, %strided.vec119 %379 = fadd <4 x double> %strided.vec117, %strided.vec120 %interleaved.vec121 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec121, ptr %buf.0, align 8, !noalias !5418 %380 = fsub <4 x double> %strided.vec116, %strided.vec119 %381 = fsub <4 x double> %strided.vec117, %strided.vec120 %382 = fmul <4 x double> %381, %broadcast.splat123 %383 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %380, <4 x double> %382) %384 = fmul <4 x double> %broadcast.splat127, %380 %385 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %381, <4 x double> %384) %interleaved.vec128 = shufflevector <4 x double> %383, <4 x double> %385, <8 x i32> store <8 x double> %interleaved.vec128, ptr %data.i.i.i.i.i.i.i.i982.2, align 8, !noalias !5418 %386 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %387 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 68 %wide.vec115.1 = load <8 x double>, ptr %386, align 8, !noalias !5418 %strided.vec116.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %strided.vec117.1 = shufflevector <8 x double> %wide.vec115.1, <8 x double> poison, <4 x i32> %wide.vec118.1 = load <8 x double>, ptr %387, align 8, !noalias !5418 %strided.vec119.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %strided.vec120.1 = shufflevector <8 x double> %wide.vec118.1, <8 x double> poison, <4 x i32> %388 = fadd <4 x double> %strided.vec116.1, %strided.vec119.1 %389 = fadd <4 x double> %strided.vec117.1, %strided.vec120.1 %390 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec121.1 = shufflevector <4 x double> %388, <4 x double> %389, <8 x i32> store <8 x double> %interleaved.vec121.1, ptr %390, align 8, !noalias !5418 %391 = fsub <4 x double> %strided.vec116.1, %strided.vec119.1 %392 = fsub <4 x double> %strided.vec117.1, %strided.vec120.1 %393 = fmul <4 x double> %392, %broadcast.splat123 %394 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %391, <4 x double> %393) %395 = fmul <4 x double> %broadcast.splat127, %391 %396 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %392, <4 x double> %395) %397 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %interleaved.vec128.1 = shufflevector <4 x double> %394, <4 x double> %396, <8 x i32> store <8 x double> %interleaved.vec128.1, ptr %397, align 8, !noalias !5418 %398 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %399 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 72 %wide.vec115.2 = load <8 x double>, ptr %398, align 8, !noalias !5418 %strided.vec116.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %strided.vec117.2 = shufflevector <8 x double> %wide.vec115.2, <8 x double> poison, <4 x i32> %wide.vec118.2 = load <8 x double>, ptr %399, align 8, !noalias !5418 %strided.vec119.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %strided.vec120.2 = shufflevector <8 x double> %wide.vec118.2, <8 x double> poison, <4 x i32> %400 = fadd <4 x double> %strided.vec116.2, %strided.vec119.2 %401 = fadd <4 x double> %strided.vec117.2, %strided.vec120.2 %402 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec121.2 = shufflevector <4 x double> %400, <4 x double> %401, <8 x i32> store <8 x double> %interleaved.vec121.2, ptr %402, align 8, !noalias !5418 %403 = fsub <4 x double> %strided.vec116.2, %strided.vec119.2 %404 = fsub <4 x double> %strided.vec117.2, %strided.vec120.2 %405 = fmul <4 x double> %404, %broadcast.splat123 %406 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %403, <4 x double> %405) %407 = fmul <4 x double> %broadcast.splat127, %403 %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %404, <4 x double> %407) %409 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %interleaved.vec128.2 = shufflevector <4 x double> %406, <4 x double> %408, <8 x i32> store <8 x double> %interleaved.vec128.2, ptr %409, align 8, !noalias !5418 %410 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %411 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 76 %wide.vec115.3 = load <8 x double>, ptr %410, align 8, !noalias !5418 %strided.vec116.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %strided.vec117.3 = shufflevector <8 x double> %wide.vec115.3, <8 x double> poison, <4 x i32> %wide.vec118.3 = load <8 x double>, ptr %411, align 8, !noalias !5418 %strided.vec119.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %strided.vec120.3 = shufflevector <8 x double> %wide.vec118.3, <8 x double> poison, <4 x i32> %412 = fadd <4 x double> %strided.vec116.3, %strided.vec119.3 %413 = fadd <4 x double> %strided.vec117.3, %strided.vec120.3 %414 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec121.3 = shufflevector <4 x double> %412, <4 x double> %413, <8 x i32> store <8 x double> %interleaved.vec121.3, ptr %414, align 8, !noalias !5418 %415 = fsub <4 x double> %strided.vec116.3, %strided.vec119.3 %416 = fsub <4 x double> %strided.vec117.3, %strided.vec120.3 %417 = fmul <4 x double> %416, %broadcast.splat123 %418 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %415, <4 x double> %417) %419 = fmul <4 x double> %broadcast.splat127, %415 %420 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %416, <4 x double> %419) %421 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %interleaved.vec128.3 = shufflevector <4 x double> %418, <4 x double> %420, <8 x i32> store <8 x double> %interleaved.vec128.3, ptr %421, align 8, !noalias !5418 %422 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %423 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %wide.vec115.4 = load <8 x double>, ptr %422, align 8, !noalias !5418 %strided.vec116.4 = shufflevector <8 x double> %wide.vec115.4, <8 x double> poison, <4 x i32> %strided.vec117.4 = shufflevector <8 x double> %wide.vec115.4, <8 x double> poison, <4 x i32> %wide.vec118.4 = load <8 x double>, ptr %423, align 8, !noalias !5418 %strided.vec119.4 = shufflevector <8 x double> %wide.vec118.4, <8 x double> poison, <4 x i32> %strided.vec120.4 = shufflevector <8 x double> %wide.vec118.4, <8 x double> poison, <4 x i32> %424 = fadd <4 x double> %strided.vec116.4, %strided.vec119.4 %425 = fadd <4 x double> %strided.vec117.4, %strided.vec120.4 %426 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec121.4 = shufflevector <4 x double> %424, <4 x double> %425, <8 x i32> store <8 x double> %interleaved.vec121.4, ptr %426, align 8, !noalias !5418 %427 = fsub <4 x double> %strided.vec116.4, %strided.vec119.4 %428 = fsub <4 x double> %strided.vec117.4, %strided.vec120.4 %429 = fmul <4 x double> %428, %broadcast.splat123 %430 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %427, <4 x double> %429) %431 = fmul <4 x double> %broadcast.splat127, %427 %432 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %428, <4 x double> %431) %433 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %interleaved.vec128.4 = shufflevector <4 x double> %430, <4 x double> %432, <8 x i32> store <8 x double> %interleaved.vec128.4, ptr %433, align 8, !noalias !5418 %434 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %435 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 84 %wide.vec115.5 = load <8 x double>, ptr %434, align 8, !noalias !5418 %strided.vec116.5 = shufflevector <8 x double> %wide.vec115.5, <8 x double> poison, <4 x i32> %strided.vec117.5 = shufflevector <8 x double> %wide.vec115.5, <8 x double> poison, <4 x i32> %wide.vec118.5 = load <8 x double>, ptr %435, align 8, !noalias !5418 %strided.vec119.5 = shufflevector <8 x double> %wide.vec118.5, <8 x double> poison, <4 x i32> %strided.vec120.5 = shufflevector <8 x double> %wide.vec118.5, <8 x double> poison, <4 x i32> %436 = fadd <4 x double> %strided.vec116.5, %strided.vec119.5 %437 = fadd <4 x double> %strided.vec117.5, %strided.vec120.5 %438 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec121.5 = shufflevector <4 x double> %436, <4 x double> %437, <8 x i32> store <8 x double> %interleaved.vec121.5, ptr %438, align 8, !noalias !5418 %439 = fsub <4 x double> %strided.vec116.5, %strided.vec119.5 %440 = fsub <4 x double> %strided.vec117.5, %strided.vec120.5 %441 = fmul <4 x double> %440, %broadcast.splat123 %442 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %439, <4 x double> %441) %443 = fmul <4 x double> %broadcast.splat127, %439 %444 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %440, <4 x double> %443) %445 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %interleaved.vec128.5 = shufflevector <4 x double> %442, <4 x double> %444, <8 x i32> store <8 x double> %interleaved.vec128.5, ptr %445, align 8, !noalias !5418 %446 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %447 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 88 %wide.vec115.6 = load <8 x double>, ptr %446, align 8, !noalias !5418 %strided.vec116.6 = shufflevector <8 x double> %wide.vec115.6, <8 x double> poison, <4 x i32> %strided.vec117.6 = shufflevector <8 x double> %wide.vec115.6, <8 x double> poison, <4 x i32> %wide.vec118.6 = load <8 x double>, ptr %447, align 8, !noalias !5418 %strided.vec119.6 = shufflevector <8 x double> %wide.vec118.6, <8 x double> poison, <4 x i32> %strided.vec120.6 = shufflevector <8 x double> %wide.vec118.6, <8 x double> poison, <4 x i32> %448 = fadd <4 x double> %strided.vec116.6, %strided.vec119.6 %449 = fadd <4 x double> %strided.vec117.6, %strided.vec120.6 %450 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec121.6 = shufflevector <4 x double> %448, <4 x double> %449, <8 x i32> store <8 x double> %interleaved.vec121.6, ptr %450, align 8, !noalias !5418 %451 = fsub <4 x double> %strided.vec116.6, %strided.vec119.6 %452 = fsub <4 x double> %strided.vec117.6, %strided.vec120.6 %453 = fmul <4 x double> %452, %broadcast.splat123 %454 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %451, <4 x double> %453) %455 = fmul <4 x double> %broadcast.splat127, %451 %456 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %452, <4 x double> %455) %457 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %interleaved.vec128.6 = shufflevector <4 x double> %454, <4 x double> %456, <8 x i32> store <8 x double> %interleaved.vec128.6, ptr %457, align 8, !noalias !5418 %458 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %459 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 92 %wide.vec115.7 = load <8 x double>, ptr %458, align 8, !noalias !5418 %strided.vec116.7 = shufflevector <8 x double> %wide.vec115.7, <8 x double> poison, <4 x i32> %strided.vec117.7 = shufflevector <8 x double> %wide.vec115.7, <8 x double> poison, <4 x i32> %wide.vec118.7 = load <8 x double>, ptr %459, align 8, !noalias !5418 %strided.vec119.7 = shufflevector <8 x double> %wide.vec118.7, <8 x double> poison, <4 x i32> %strided.vec120.7 = shufflevector <8 x double> %wide.vec118.7, <8 x double> poison, <4 x i32> %460 = fadd <4 x double> %strided.vec116.7, %strided.vec119.7 %461 = fadd <4 x double> %strided.vec117.7, %strided.vec120.7 %462 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec121.7 = shufflevector <4 x double> %460, <4 x double> %461, <8 x i32> store <8 x double> %interleaved.vec121.7, ptr %462, align 8, !noalias !5418 %463 = fsub <4 x double> %strided.vec116.7, %strided.vec119.7 %464 = fsub <4 x double> %strided.vec117.7, %strided.vec120.7 %465 = fmul <4 x double> %464, %broadcast.splat123 %466 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %463, <4 x double> %465) %467 = fmul <4 x double> %broadcast.splat127, %463 %468 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat125, <4 x double> %464, <4 x double> %467) %469 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %interleaved.vec128.7 = shufflevector <4 x double> %466, <4 x double> %468, <8 x i32> store <8 x double> %interleaved.vec128.7, ptr %469, align 8, !noalias !5418 %broadcast.splatinsert147 = insertelement <4 x double> poison, double %w1.1.i.i176.2, i64 0 %broadcast.splat148 = shufflevector <4 x double> %broadcast.splatinsert147, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert145 = insertelement <4 x double> poison, double %w1.0.i.i175.2, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert143 = insertelement <4 x double> poison, double %_6.i.i.i196.2, i64 0 %broadcast.splat144 = shufflevector <4 x double> %broadcast.splatinsert143, <4 x double> poison, <4 x i32> zeroinitializer %data.i5.i.i.i.i.i.i.i1160.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %wide.vec136 = load <8 x double>, ptr %data.i.i.i.i.i.i991.1, align 8, !noalias !5418 %strided.vec137 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %strided.vec138 = shufflevector <8 x double> %wide.vec136, <8 x double> poison, <4 x i32> %wide.vec139 = load <8 x double>, ptr %data.i5.i.i.i.i.i.i.i1160.1, align 8, !noalias !5418 %strided.vec140 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %strided.vec141 = shufflevector <8 x double> %wide.vec139, <8 x double> poison, <4 x i32> %470 = fadd <4 x double> %strided.vec137, %strided.vec140 %471 = fadd <4 x double> %strided.vec138, %strided.vec141 %interleaved.vec142 = shufflevector <4 x double> %470, <4 x double> %471, <8 x i32> store <8 x double> %interleaved.vec142, ptr %0, align 8, !noalias !5418 %472 = fsub <4 x double> %strided.vec137, %strided.vec140 %473 = fsub <4 x double> %strided.vec138, %strided.vec141 %474 = fmul <4 x double> %473, %broadcast.splat144 %475 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %472, <4 x double> %474) %476 = fmul <4 x double> %broadcast.splat148, %472 %477 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %473, <4 x double> %476) %interleaved.vec149 = shufflevector <4 x double> %475, <4 x double> %477, <8 x i32> store <8 x double> %interleaved.vec149, ptr %data.i5.i.i.i.i.i.i.i987.2, align 8, !noalias !5418 %478 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %479 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 100 %wide.vec136.1 = load <8 x double>, ptr %478, align 8, !noalias !5418 %strided.vec137.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %strided.vec138.1 = shufflevector <8 x double> %wide.vec136.1, <8 x double> poison, <4 x i32> %wide.vec139.1 = load <8 x double>, ptr %479, align 8, !noalias !5418 %strided.vec140.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %strided.vec141.1 = shufflevector <8 x double> %wide.vec139.1, <8 x double> poison, <4 x i32> %480 = fadd <4 x double> %strided.vec137.1, %strided.vec140.1 %481 = fadd <4 x double> %strided.vec138.1, %strided.vec141.1 %482 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 68 %interleaved.vec142.1 = shufflevector <4 x double> %480, <4 x double> %481, <8 x i32> store <8 x double> %interleaved.vec142.1, ptr %482, align 8, !noalias !5418 %483 = fsub <4 x double> %strided.vec137.1, %strided.vec140.1 %484 = fsub <4 x double> %strided.vec138.1, %strided.vec141.1 %485 = fmul <4 x double> %484, %broadcast.splat144 %486 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %483, <4 x double> %485) %487 = fmul <4 x double> %broadcast.splat148, %483 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %484, <4 x double> %487) %489 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 100 %interleaved.vec149.1 = shufflevector <4 x double> %486, <4 x double> %488, <8 x i32> store <8 x double> %interleaved.vec149.1, ptr %489, align 8, !noalias !5418 %490 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %491 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 104 %wide.vec136.2 = load <8 x double>, ptr %490, align 8, !noalias !5418 %strided.vec137.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %strided.vec138.2 = shufflevector <8 x double> %wide.vec136.2, <8 x double> poison, <4 x i32> %wide.vec139.2 = load <8 x double>, ptr %491, align 8, !noalias !5418 %strided.vec140.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %strided.vec141.2 = shufflevector <8 x double> %wide.vec139.2, <8 x double> poison, <4 x i32> %492 = fadd <4 x double> %strided.vec137.2, %strided.vec140.2 %493 = fadd <4 x double> %strided.vec138.2, %strided.vec141.2 %494 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %interleaved.vec142.2 = shufflevector <4 x double> %492, <4 x double> %493, <8 x i32> store <8 x double> %interleaved.vec142.2, ptr %494, align 8, !noalias !5418 %495 = fsub <4 x double> %strided.vec137.2, %strided.vec140.2 %496 = fsub <4 x double> %strided.vec138.2, %strided.vec141.2 %497 = fmul <4 x double> %496, %broadcast.splat144 %498 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %495, <4 x double> %497) %499 = fmul <4 x double> %broadcast.splat148, %495 %500 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %496, <4 x double> %499) %501 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %interleaved.vec149.2 = shufflevector <4 x double> %498, <4 x double> %500, <8 x i32> store <8 x double> %interleaved.vec149.2, ptr %501, align 8, !noalias !5418 %502 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %503 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 108 %wide.vec136.3 = load <8 x double>, ptr %502, align 8, !noalias !5418 %strided.vec137.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %strided.vec138.3 = shufflevector <8 x double> %wide.vec136.3, <8 x double> poison, <4 x i32> %wide.vec139.3 = load <8 x double>, ptr %503, align 8, !noalias !5418 %strided.vec140.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %strided.vec141.3 = shufflevector <8 x double> %wide.vec139.3, <8 x double> poison, <4 x i32> %504 = fadd <4 x double> %strided.vec137.3, %strided.vec140.3 %505 = fadd <4 x double> %strided.vec138.3, %strided.vec141.3 %506 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 76 %interleaved.vec142.3 = shufflevector <4 x double> %504, <4 x double> %505, <8 x i32> store <8 x double> %interleaved.vec142.3, ptr %506, align 8, !noalias !5418 %507 = fsub <4 x double> %strided.vec137.3, %strided.vec140.3 %508 = fsub <4 x double> %strided.vec138.3, %strided.vec141.3 %509 = fmul <4 x double> %508, %broadcast.splat144 %510 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %507, <4 x double> %509) %511 = fmul <4 x double> %broadcast.splat148, %507 %512 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %508, <4 x double> %511) %513 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 108 %interleaved.vec149.3 = shufflevector <4 x double> %510, <4 x double> %512, <8 x i32> store <8 x double> %interleaved.vec149.3, ptr %513, align 8, !noalias !5418 %514 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %515 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %wide.vec136.4 = load <8 x double>, ptr %514, align 8, !noalias !5418 %strided.vec137.4 = shufflevector <8 x double> %wide.vec136.4, <8 x double> poison, <4 x i32> %strided.vec138.4 = shufflevector <8 x double> %wide.vec136.4, <8 x double> poison, <4 x i32> %wide.vec139.4 = load <8 x double>, ptr %515, align 8, !noalias !5418 %strided.vec140.4 = shufflevector <8 x double> %wide.vec139.4, <8 x double> poison, <4 x i32> %strided.vec141.4 = shufflevector <8 x double> %wide.vec139.4, <8 x double> poison, <4 x i32> %516 = fadd <4 x double> %strided.vec137.4, %strided.vec140.4 %517 = fadd <4 x double> %strided.vec138.4, %strided.vec141.4 %518 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %interleaved.vec142.4 = shufflevector <4 x double> %516, <4 x double> %517, <8 x i32> store <8 x double> %interleaved.vec142.4, ptr %518, align 8, !noalias !5418 %519 = fsub <4 x double> %strided.vec137.4, %strided.vec140.4 %520 = fsub <4 x double> %strided.vec138.4, %strided.vec141.4 %521 = fmul <4 x double> %520, %broadcast.splat144 %522 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %519, <4 x double> %521) %523 = fmul <4 x double> %broadcast.splat148, %519 %524 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %520, <4 x double> %523) %525 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 %interleaved.vec149.4 = shufflevector <4 x double> %522, <4 x double> %524, <8 x i32> store <8 x double> %interleaved.vec149.4, ptr %525, align 8, !noalias !5418 %526 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %527 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 116 %wide.vec136.5 = load <8 x double>, ptr %526, align 8, !noalias !5418 %strided.vec137.5 = shufflevector <8 x double> %wide.vec136.5, <8 x double> poison, <4 x i32> %strided.vec138.5 = shufflevector <8 x double> %wide.vec136.5, <8 x double> poison, <4 x i32> %wide.vec139.5 = load <8 x double>, ptr %527, align 8, !noalias !5418 %strided.vec140.5 = shufflevector <8 x double> %wide.vec139.5, <8 x double> poison, <4 x i32> %strided.vec141.5 = shufflevector <8 x double> %wide.vec139.5, <8 x double> poison, <4 x i32> %528 = fadd <4 x double> %strided.vec137.5, %strided.vec140.5 %529 = fadd <4 x double> %strided.vec138.5, %strided.vec141.5 %530 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 84 %interleaved.vec142.5 = shufflevector <4 x double> %528, <4 x double> %529, <8 x i32> store <8 x double> %interleaved.vec142.5, ptr %530, align 8, !noalias !5418 %531 = fsub <4 x double> %strided.vec137.5, %strided.vec140.5 %532 = fsub <4 x double> %strided.vec138.5, %strided.vec141.5 %533 = fmul <4 x double> %532, %broadcast.splat144 %534 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %531, <4 x double> %533) %535 = fmul <4 x double> %broadcast.splat148, %531 %536 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %532, <4 x double> %535) %537 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 116 %interleaved.vec149.5 = shufflevector <4 x double> %534, <4 x double> %536, <8 x i32> store <8 x double> %interleaved.vec149.5, ptr %537, align 8, !noalias !5418 %538 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %539 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 120 %wide.vec136.6 = load <8 x double>, ptr %538, align 8, !noalias !5418 %strided.vec137.6 = shufflevector <8 x double> %wide.vec136.6, <8 x double> poison, <4 x i32> %strided.vec138.6 = shufflevector <8 x double> %wide.vec136.6, <8 x double> poison, <4 x i32> %wide.vec139.6 = load <8 x double>, ptr %539, align 8, !noalias !5418 %strided.vec140.6 = shufflevector <8 x double> %wide.vec139.6, <8 x double> poison, <4 x i32> %strided.vec141.6 = shufflevector <8 x double> %wide.vec139.6, <8 x double> poison, <4 x i32> %540 = fadd <4 x double> %strided.vec137.6, %strided.vec140.6 %541 = fadd <4 x double> %strided.vec138.6, %strided.vec141.6 %542 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %interleaved.vec142.6 = shufflevector <4 x double> %540, <4 x double> %541, <8 x i32> store <8 x double> %interleaved.vec142.6, ptr %542, align 8, !noalias !5418 %543 = fsub <4 x double> %strided.vec137.6, %strided.vec140.6 %544 = fsub <4 x double> %strided.vec138.6, %strided.vec141.6 %545 = fmul <4 x double> %544, %broadcast.splat144 %546 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %543, <4 x double> %545) %547 = fmul <4 x double> %broadcast.splat148, %543 %548 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %544, <4 x double> %547) %549 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 %interleaved.vec149.6 = shufflevector <4 x double> %546, <4 x double> %548, <8 x i32> store <8 x double> %interleaved.vec149.6, ptr %549, align 8, !noalias !5418 %550 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %551 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 124 %wide.vec136.7 = load <8 x double>, ptr %550, align 8, !noalias !5418 %strided.vec137.7 = shufflevector <8 x double> %wide.vec136.7, <8 x double> poison, <4 x i32> %strided.vec138.7 = shufflevector <8 x double> %wide.vec136.7, <8 x double> poison, <4 x i32> %wide.vec139.7 = load <8 x double>, ptr %551, align 8, !noalias !5418 %strided.vec140.7 = shufflevector <8 x double> %wide.vec139.7, <8 x double> poison, <4 x i32> %strided.vec141.7 = shufflevector <8 x double> %wide.vec139.7, <8 x double> poison, <4 x i32> %552 = fadd <4 x double> %strided.vec137.7, %strided.vec140.7 %553 = fadd <4 x double> %strided.vec138.7, %strided.vec141.7 %554 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 92 %interleaved.vec142.7 = shufflevector <4 x double> %552, <4 x double> %553, <8 x i32> store <8 x double> %interleaved.vec142.7, ptr %554, align 8, !noalias !5418 %555 = fsub <4 x double> %strided.vec137.7, %strided.vec140.7 %556 = fsub <4 x double> %strided.vec138.7, %strided.vec141.7 %557 = fmul <4 x double> %556, %broadcast.splat144 %558 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %555, <4 x double> %557) %559 = fmul <4 x double> %broadcast.splat148, %555 %560 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat146, <4 x double> %556, <4 x double> %559) %561 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %interleaved.vec149.7 = shufflevector <4 x double> %558, <4 x double> %560, <8 x i32> store <8 x double> %interleaved.vec149.7, ptr %561, align 8, !noalias !5418 br label %vector.body155 bb19.i.i.i: ; preds = %bb19.i.i107, %bb19.i.i.i %iter.i.i.i.sroa.38.0127 = phi i64 [ %598, %bb19.i.i.i ], [ 0, %bb19.i.i107 ] %start1.i.i.i.i.i.i.i.i808 = shl nuw nsw i64 %iter.i.i.i.sroa.38.0127, 3 %data.i.i.i.i.i.i.i.i809 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i808 %data.i5.i.i.i.i.i.i.i814 = getelementptr inbounds %"num_complex::Complex", ptr %74, i64 %start1.i.i.i.i.i.i.i.i808 %start1.i.i.i.i.i.i817 = shl nuw nsw i64 %iter.i.i.i.sroa.38.0127, 4 %data.i.i.i.i.i.i818 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i817 %562 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i808, i64 1 %w1.0.i.i.i = load double, ptr %562, align 8, !noalias !5435, !noundef !3 %563 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i808, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %563, align 8, !noalias !5435, !noundef !3 %564 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 8 %_6.i.i.i.i = fneg double %w1.1.i.i.i %565 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i809, align 8, !noalias !5435 %566 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i814, align 8, !noalias !5435 %567 = fadd <4 x double> %565, %566 store <4 x double> %567, ptr %data.i.i.i.i.i.i818, align 8, !noalias !5435 %568 = fsub <4 x double> %565, %566 %569 = shufflevector <4 x double> %568, <4 x double> poison, <4 x i32> %570 = insertelement <4 x double> poison, double %_6.i.i.i.i, i64 0 %571 = insertelement <4 x double> %570, double %w1.1.i.i.i, i64 1 %572 = shufflevector <4 x double> %571, <4 x double> poison, <4 x i32> %573 = fmul <4 x double> %569, %572 %574 = insertelement <4 x double> poison, double %w1.0.i.i.i, i64 0 %575 = shufflevector <4 x double> %574, <4 x double> poison, <4 x i32> zeroinitializer %576 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %575, <4 x double> %568, <4 x double> %573) store <4 x double> %576, ptr %564, align 8, !noalias !5435 %_3.i.i.i.i.i.i.i.i867.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i809, i64 2 %_3.i2.i.i.i.i.i.i.i870.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i814, i64 2 %_3.i.i.i.i.i.i873.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 2 %_3.i.i.i.i876.2 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 10 %577 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i867.2, align 8, !noalias !5435 %578 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i870.2, align 8, !noalias !5435 %579 = fadd <4 x double> %577, %578 store <4 x double> %579, ptr %_3.i.i.i.i.i.i873.2, align 8, !noalias !5435 %580 = fsub <4 x double> %577, %578 %581 = shufflevector <4 x double> %580, <4 x double> poison, <4 x i32> %582 = fmul <4 x double> %581, %572 %583 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %575, <4 x double> %580, <4 x double> %582) store <4 x double> %583, ptr %_3.i.i.i.i876.2, align 8, !noalias !5435 %_3.i.i.i.i.i.i.i.i867.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i809, i64 4 %_3.i2.i.i.i.i.i.i.i870.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i814, i64 4 %_3.i.i.i.i.i.i873.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 4 %_3.i.i.i.i876.4 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 12 %584 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i867.4, align 8, !noalias !5435 %585 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i870.4, align 8, !noalias !5435 %586 = fadd <4 x double> %584, %585 store <4 x double> %586, ptr %_3.i.i.i.i.i.i873.4, align 8, !noalias !5435 %587 = fsub <4 x double> %584, %585 %588 = shufflevector <4 x double> %587, <4 x double> poison, <4 x i32> %589 = fmul <4 x double> %588, %572 %590 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %575, <4 x double> %587, <4 x double> %589) store <4 x double> %590, ptr %_3.i.i.i.i876.4, align 8, !noalias !5435 %_3.i.i.i.i.i.i.i.i867.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i809, i64 6 %_3.i2.i.i.i.i.i.i.i870.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i814, i64 6 %_3.i.i.i.i.i.i873.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 6 %_3.i.i.i.i876.6 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i818, i64 14 %591 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i867.6, align 8, !noalias !5435 %592 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i870.6, align 8, !noalias !5435 %593 = fadd <4 x double> %591, %592 store <4 x double> %593, ptr %_3.i.i.i.i.i.i873.6, align 8, !noalias !5435 %594 = fsub <4 x double> %591, %592 %595 = shufflevector <4 x double> %594, <4 x double> poison, <4 x i32> %596 = fmul <4 x double> %595, %572 %597 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %575, <4 x double> %594, <4 x double> %596) store <4 x double> %597, ptr %_3.i.i.i.i876.6, align 8, !noalias !5435 %598 = add nuw nsw i64 %iter.i.i.i.sroa.38.0127, 1 %exitcond138.not = icmp eq i64 %598, 8 br i1 %exitcond138.not, label %bb19.i.i173.preheader, label %bb19.i.i.i vector.body155: ; preds = %vector.body155, %bb19.i.i173.preheader %index156 = phi i64 [ 0, %bb19.i.i173.preheader ], [ %index.next165.1, %vector.body155 ] %599 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index156 %600 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index156 %wide.vec157 = load <8 x double>, ptr %599, align 8, !noalias !5418 %strided.vec158 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %strided.vec159 = shufflevector <8 x double> %wide.vec157, <8 x double> poison, <4 x i32> %wide.vec160 = load <8 x double>, ptr %600, align 8, !noalias !5418 %strided.vec161 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %strided.vec162 = shufflevector <8 x double> %wide.vec160, <8 x double> poison, <4 x i32> %601 = fadd <4 x double> %strided.vec158, %strided.vec161 %602 = fadd <4 x double> %strided.vec159, %strided.vec162 %603 = fsub <4 x double> %strided.vec158, %strided.vec161 %604 = fsub <4 x double> %strided.vec159, %strided.vec162 %interleaved.vec163 = shufflevector <4 x double> %601, <4 x double> %602, <8 x i32> store <8 x double> %interleaved.vec163, ptr %599, align 8, !noalias !5418 %interleaved.vec164 = shufflevector <4 x double> %603, <4 x double> %604, <8 x i32> store <8 x double> %interleaved.vec164, ptr %600, align 8, !noalias !5418 %index.next165 = or disjoint i64 %index156, 4 %605 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next165 %606 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next165 %wide.vec157.1 = load <8 x double>, ptr %605, align 8, !noalias !5418 %strided.vec158.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %strided.vec159.1 = shufflevector <8 x double> %wide.vec157.1, <8 x double> poison, <4 x i32> %wide.vec160.1 = load <8 x double>, ptr %606, align 8, !noalias !5418 %strided.vec161.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %strided.vec162.1 = shufflevector <8 x double> %wide.vec160.1, <8 x double> poison, <4 x i32> %607 = fadd <4 x double> %strided.vec158.1, %strided.vec161.1 %608 = fadd <4 x double> %strided.vec159.1, %strided.vec162.1 %609 = fsub <4 x double> %strided.vec158.1, %strided.vec161.1 %610 = fsub <4 x double> %strided.vec159.1, %strided.vec162.1 %interleaved.vec163.1 = shufflevector <4 x double> %607, <4 x double> %608, <8 x i32> store <8 x double> %interleaved.vec163.1, ptr %605, align 8, !noalias !5418 %interleaved.vec164.1 = shufflevector <4 x double> %609, <4 x double> %610, <8 x i32> store <8 x double> %interleaved.vec164.1, ptr %606, align 8, !noalias !5418 %index.next165.1 = add nuw nsw i64 %index156, 8 %611 = icmp eq i64 %index.next165.1, 64 br i1 %611, label %"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit", label %vector.body155, !llvm.loop !5438 "_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hed2ef8541cc07b37E.exit": ; preds = %vector.body155 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5418 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he3b9f30c2a75017eE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5439 store i64 32, ptr %n.i, align 8, !noalias !5439 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5439 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5439 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5439 store ptr null, ptr %_16.i, align 8, !noalias !5439 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5439 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5439 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5439 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5439 store ptr null, ptr %_24.i, align 8, !noalias !5439 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5439 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5439 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5439 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5439 store ptr null, ptr %_32.i, align 8, !noalias !5439 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5439 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5439 store i64 %w.1, ptr %_34.i, align 8, !noalias !5439 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h411f213ea0c82441E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5439 store ptr null, ptr %_40.i, align 8, !noalias !5439 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h411f213ea0c82441E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5439 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5442 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %1, align 8, !noalias !5442 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %2, align 8, !noalias !5442 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %0, align 8, !noalias !5442 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %6 = fadd <4 x double> %strided.vec, %strided.vec6 %7 = fadd <4 x double> %strided.vec1, %strided.vec7 %8 = fsub <4 x double> %strided.vec, %strided.vec6 %9 = fsub <4 x double> %strided.vec1, %strided.vec7 %10 = fadd <4 x double> %strided.vec3, %strided.vec9 %11 = fadd <4 x double> %strided.vec4, %strided.vec10 %12 = fsub <4 x double> %strided.vec3, %strided.vec9 %13 = fsub <4 x double> %strided.vec4, %strided.vec10 %14 = fadd <4 x double> %6, %10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %13 %17 = fsub <4 x double> %9, %12 %18 = fsub <4 x double> %6, %10 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %13 %21 = fadd <4 x double> %9, %12 %interleaved.vec = shufflevector <4 x double> %14, <4 x double> %15, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5442 %interleaved.vec11 = shufflevector <4 x double> %16, <4 x double> %17, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !5442 %interleaved.vec12 = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !5442 %interleaved.vec13 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> store <8 x double> %interleaved.vec13, ptr %3, align 8, !noalias !5442 %22 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %23 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %24 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %25 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %wide.vec.1 = load <8 x double>, ptr %22, align 8, !noalias !5442 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %23, align 8, !noalias !5442 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %24, align 8, !noalias !5442 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %25, align 8, !noalias !5442 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %26 = fadd <4 x double> %strided.vec.1, %strided.vec6.1 %27 = fadd <4 x double> %strided.vec1.1, %strided.vec7.1 %28 = fsub <4 x double> %strided.vec.1, %strided.vec6.1 %29 = fsub <4 x double> %strided.vec1.1, %strided.vec7.1 %30 = fadd <4 x double> %strided.vec3.1, %strided.vec9.1 %31 = fadd <4 x double> %strided.vec4.1, %strided.vec10.1 %32 = fsub <4 x double> %strided.vec3.1, %strided.vec9.1 %33 = fsub <4 x double> %strided.vec4.1, %strided.vec10.1 %34 = fadd <4 x double> %26, %30 %35 = fadd <4 x double> %27, %31 %36 = fadd <4 x double> %28, %33 %37 = fsub <4 x double> %29, %32 %38 = fsub <4 x double> %26, %30 %39 = fsub <4 x double> %27, %31 %40 = fsub <4 x double> %28, %33 %41 = fadd <4 x double> %29, %32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %34, <4 x double> %35, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %42, align 8, !noalias !5442 %43 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec11.1 = shufflevector <4 x double> %36, <4 x double> %37, <8 x i32> store <8 x double> %interleaved.vec11.1, ptr %43, align 8, !noalias !5442 %44 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec12.1 = shufflevector <4 x double> %38, <4 x double> %39, <8 x i32> store <8 x double> %interleaved.vec12.1, ptr %44, align 8, !noalias !5442 %45 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec13.1 = shufflevector <4 x double> %40, <4 x double> %41, <8 x i32> store <8 x double> %interleaved.vec13.1, ptr %45, align 8, !noalias !5442 %46 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %47 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %48 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 1, i32 1 %wide.masked.gather20 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %48, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %49 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2 %wide.masked.gather21 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %49, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %50 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 2, i32 1 %wide.masked.gather22 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %50, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %51 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3 %wide.masked.gather23 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %52 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 3, i32 1 %wide.masked.gather24 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %53 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4 %wide.masked.gather25 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %53, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %54 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 4, i32 1 %wide.masked.gather26 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %54, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %55 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5 %wide.masked.gather27 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %55, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %56 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 5, i32 1 %wide.masked.gather28 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %56, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %57 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6 %wide.masked.gather29 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %58 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 6, i32 1 %wide.masked.gather30 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %58, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %59 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7 %wide.masked.gather31 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %59, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %60 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> , i64 7, i32 1 %wide.masked.gather32 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %60, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %61 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 4 %62 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 2 %63 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 1 %64 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 3 %65 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 6 %66 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 5 %67 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 7 %68 = fneg <4 x double> %wide.masked.gather20 %69 = fneg <4 x double> %wide.masked.gather22 %70 = fneg <4 x double> %wide.masked.gather24 %71 = fneg <4 x double> %wide.masked.gather26 %72 = fneg <4 x double> %wide.masked.gather28 %73 = fneg <4 x double> %wide.masked.gather30 %74 = fneg <4 x double> %wide.masked.gather32 %wide.masked.gather33 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %75 = getelementptr inbounds i8, <4 x ptr> %46, i64 8 %wide.masked.gather34 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %75, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %wide.masked.gather35 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %76 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 1, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %76, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %77 = fmul <4 x double> %wide.masked.gather36, %68 %78 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather35, <4 x double> %77) %79 = fmul <4 x double> %wide.masked.gather20, %wide.masked.gather35 %80 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather36, <4 x double> %79) %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %81 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 2, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %81, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %82 = fmul <4 x double> %wide.masked.gather38, %69 %83 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather37, <4 x double> %82) %84 = fmul <4 x double> %wide.masked.gather22, %wide.masked.gather37 %85 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather21, <4 x double> %wide.masked.gather38, <4 x double> %84) %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %86 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 3, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %87 = fmul <4 x double> %wide.masked.gather40, %70 %88 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather39, <4 x double> %87) %89 = fmul <4 x double> %wide.masked.gather24, %wide.masked.gather39 %90 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather23, <4 x double> %wide.masked.gather40, <4 x double> %89) %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %61, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %91 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 4, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %91, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %92 = fmul <4 x double> %wide.masked.gather42, %71 %93 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather41, <4 x double> %92) %94 = fmul <4 x double> %wide.masked.gather26, %wide.masked.gather41 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather25, <4 x double> %wide.masked.gather42, <4 x double> %94) %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %66, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %96 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 5, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %97 = fmul <4 x double> %wide.masked.gather44, %72 %98 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather43, <4 x double> %97) %99 = fmul <4 x double> %wide.masked.gather28, %wide.masked.gather43 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather27, <4 x double> %wide.masked.gather44, <4 x double> %99) %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %65, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %101 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 6, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %102 = fmul <4 x double> %wide.masked.gather46, %73 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather45, <4 x double> %102) %104 = fmul <4 x double> %wide.masked.gather30, %wide.masked.gather45 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather29, <4 x double> %wide.masked.gather46, <4 x double> %104) %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %67, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %106 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %46, i64 7, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !5439 %107 = fmul <4 x double> %wide.masked.gather48, %74 %108 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather47, <4 x double> %107) %109 = fmul <4 x double> %wide.masked.gather32, %wide.masked.gather47 %110 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather31, <4 x double> %wide.masked.gather48, <4 x double> %109) %111 = fadd <4 x double> %wide.masked.gather33, %93 %112 = fadd <4 x double> %wide.masked.gather34, %95 %113 = fsub <4 x double> %wide.masked.gather33, %93 %114 = fsub <4 x double> %wide.masked.gather34, %95 %115 = fadd <4 x double> %83, %103 %116 = fadd <4 x double> %85, %105 %117 = fsub <4 x double> %83, %103 %118 = fsub <4 x double> %85, %105 %119 = fadd <4 x double> %78, %98 %120 = fadd <4 x double> %80, %100 %121 = fsub <4 x double> %78, %98 %122 = fsub <4 x double> %80, %100 %123 = fadd <4 x double> %88, %108 %124 = fadd <4 x double> %90, %110 %125 = fsub <4 x double> %88, %108 %126 = fsub <4 x double> %90, %110 %127 = fadd <4 x double> %111, %115 %128 = fadd <4 x double> %112, %116 %129 = fadd <4 x double> %119, %123 %130 = fadd <4 x double> %120, %124 %131 = fadd <4 x double> %127, %129 %132 = fadd <4 x double> %128, %130 %interleaved.vec49 = shufflevector <4 x double> %131, <4 x double> %132, <8 x i32> store <8 x double> %interleaved.vec49, ptr %buf.0, align 8, !noalias !5439 %133 = fsub <4 x double> %127, %129 %134 = fsub <4 x double> %128, %130 %135 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %interleaved.vec50 = shufflevector <4 x double> %133, <4 x double> %134, <8 x i32> store <8 x double> %interleaved.vec50, ptr %135, align 8, !noalias !5439 %136 = fadd <4 x double> %113, %118 %137 = fsub <4 x double> %114, %117 %138 = fadd <4 x double> %121, %126 %139 = fsub <4 x double> %122, %125 %140 = fadd <4 x double> %138, %139 %141 = fsub <4 x double> %139, %138 %142 = fmul <4 x double> %140, %143 = fmul <4 x double> %141, %144 = fadd <4 x double> %136, %142 %145 = fadd <4 x double> %137, %143 %146 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec51 = shufflevector <4 x double> %144, <4 x double> %145, <8 x i32> store <8 x double> %interleaved.vec51, ptr %146, align 8, !noalias !5439 %147 = fsub <4 x double> %136, %142 %148 = fsub <4 x double> %137, %143 %149 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec52 = shufflevector <4 x double> %147, <4 x double> %148, <8 x i32> store <8 x double> %interleaved.vec52, ptr %149, align 8, !noalias !5439 %150 = fsub <4 x double> %111, %115 %151 = fsub <4 x double> %112, %116 %152 = fsub <4 x double> %119, %123 %153 = fsub <4 x double> %120, %124 %154 = fadd <4 x double> %150, %153 %155 = fsub <4 x double> %151, %152 %156 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec53 = shufflevector <4 x double> %154, <4 x double> %155, <8 x i32> store <8 x double> %interleaved.vec53, ptr %156, align 8, !noalias !5439 %157 = fsub <4 x double> %150, %153 %158 = fadd <4 x double> %151, %152 %159 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec54 = shufflevector <4 x double> %157, <4 x double> %158, <8 x i32> store <8 x double> %interleaved.vec54, ptr %159, align 8, !noalias !5439 %160 = fsub <4 x double> %113, %118 %161 = fadd <4 x double> %114, %117 %162 = fsub <4 x double> %121, %126 %163 = fadd <4 x double> %122, %125 %164 = fsub <4 x double> %162, %163 %165 = fadd <4 x double> %162, %163 %166 = fmul <4 x double> %164, %167 = fmul <4 x double> %165, %168 = fsub <4 x double> %160, %166 %169 = fsub <4 x double> %161, %167 %170 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec55 = shufflevector <4 x double> %168, <4 x double> %169, <8 x i32> store <8 x double> %interleaved.vec55, ptr %170, align 8, !noalias !5439 %171 = fadd <4 x double> %160, %166 %172 = fadd <4 x double> %161, %167 %173 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec56 = shufflevector <4 x double> %171, <4 x double> %172, <8 x i32> store <8 x double> %interleaved.vec56, ptr %173, align 8, !noalias !5439 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5439 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he3ff8e96b4bfa382E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5445 store i64 16, ptr %n.i.i, align 8, !noalias !5445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5445 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5445 %_12.i.i = icmp eq i64 %buf.1, 16 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5445 store ptr null, ptr %_16.i.i, align 8, !noalias !5445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5445 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5445 %_20.i.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5445 store ptr null, ptr %_24.i.i, align 8, !noalias !5445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5445 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5445 %_28.i.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5445 store ptr null, ptr %_32.i.i, align 8, !noalias !5445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5445 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5445 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5445 %_36.i.i = icmp eq i64 %w.1, 16 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h9fe2b7520b7babe0E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5445 store ptr null, ptr %_40.i.i, align 8, !noalias !5445 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h9fe2b7520b7babe0E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5445 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !5450 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %6, align 8, !noalias !5450 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %5, align 8, !noalias !5450 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %7, align 8, !noalias !5450 %8 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %10 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %11 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %12 = bitcast <4 x double> %11 to <4 x i64> %13 = xor <4 x i64> %12, %14 = bitcast <4 x i64> %13 to <4 x double> %15 = shufflevector <4 x double> %14, <4 x double> poison, <4 x i32> %16 = fadd <4 x double> %8, %10 %17 = fsub <4 x double> %9, %15 %18 = fsub <4 x double> %8, %10 %19 = fadd <4 x double> %9, %15 store <4 x double> %16, ptr %scratch.0, align 8, !noalias !5450 store <4 x double> %17, ptr %3, align 8, !noalias !5450 store <4 x double> %18, ptr %2, align 8, !noalias !5450 store <4 x double> %19, ptr %4, align 8, !noalias !5450 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5450 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5450 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !5450 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.1.i, align 8, !noalias !5450 %20 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %21 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %22 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %23 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %24 = bitcast <4 x double> %23 to <4 x i64> %25 = xor <4 x i64> %24, %26 = bitcast <4 x i64> %25 to <4 x double> %27 = shufflevector <4 x double> %26, <4 x double> poison, <4 x i32> %28 = fadd <4 x double> %20, %22 %29 = fsub <4 x double> %21, %27 %30 = fsub <4 x double> %20, %22 %31 = fadd <4 x double> %21, %27 store <4 x double> %28, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5450 store <4 x double> %29, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5450 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5450 store <4 x double> %31, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5450 tail call void @llvm.experimental.noalias.scope.decl(metadata !5454) tail call void @llvm.experimental.noalias.scope.decl(metadata !5457) %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %33 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %33, align 8, !alias.scope !5457, !noalias !5459 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %32, align 8, !alias.scope !5457, !noalias !5459 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %34, align 8, !alias.scope !5457, !noalias !5459 %35 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %36 = shufflevector <4 x double> %16, <4 x double> %17, <4 x i32> %37 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> %38 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %39 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %40 = fmul <4 x double> %37, %39 %41 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %36, <4 x double> %40) #23 %42 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %43 = shufflevector <4 x double> %42, <4 x double> poison, <4 x i32> %44 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %45 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %46 = fmul <4 x double> %43, %45 %47 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %44, <4 x double> %42, <4 x double> %46) #23 %48 = shufflevector <4 x double> %28, <4 x double> %29, <4 x i32> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %51 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %52 = fmul <4 x double> %49, %51 %53 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %48, <4 x double> %52) #23 %54 = fadd <4 x double> %35, %47 %55 = fsub <4 x double> %35, %47 %56 = fadd <4 x double> %41, %53 %57 = fsub <4 x double> %41, %53 %58 = bitcast <4 x double> %57 to <4 x i64> %59 = xor <4 x i64> %58, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = fadd <4 x double> %54, %56 store <4 x double> %62, ptr %buf.0, align 8, !alias.scope !5454, !noalias !5461 %63 = fsub <4 x double> %55, %61 store <4 x double> %63, ptr %6, align 8, !alias.scope !5454, !noalias !5461 %64 = fsub <4 x double> %54, %56 store <4 x double> %64, ptr %5, align 8, !alias.scope !5454, !noalias !5461 %65 = fadd <4 x double> %55, %61 store <4 x double> %65, ptr %7, align 8, !alias.scope !5454, !noalias !5461 %_3.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 3 %_3.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 5 %_3.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 7 %w1.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5457, !noalias !5459 %w2.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5457, !noalias !5459 %w3.sroa.0.0.copyload.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.1.i, align 8, !alias.scope !5457, !noalias !5459 %66 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %67 = shufflevector <4 x double> %18, <4 x double> %19, <4 x i32> %68 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> %69 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %70 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %71 = fmul <4 x double> %68, %70 %72 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %69, <4 x double> %67, <4 x double> %71) #23 %73 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %76 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %74, %76 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %73, <4 x double> %77) #23 %79 = shufflevector <4 x double> %30, <4 x double> %31, <4 x i32> %80 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> %81 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %82 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.1.i, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %80, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %81, <4 x double> %79, <4 x double> %83) #23 %85 = fadd <4 x double> %66, %78 %86 = fsub <4 x double> %66, %78 %87 = fadd <4 x double> %72, %84 %88 = fsub <4 x double> %72, %84 %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5454, !noalias !5461 %94 = fsub <4 x double> %86, %92 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !alias.scope !5454, !noalias !5461 %95 = fsub <4 x double> %85, %87 store <4 x double> %95, ptr %_3.i.i.i.i.i.i.1.i, align 8, !alias.scope !5454, !noalias !5461 %96 = fadd <4 x double> %86, %92 store <4 x double> %96, ptr %_3.i.i.i.i.1.i, align 8, !alias.scope !5454, !noalias !5461 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5445 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he4d5e204914ddd26E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5462 store i64 128, ptr %n.i, align 8, !noalias !5462 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5462 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5462 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5462 store ptr null, ptr %_16.i, align 8, !noalias !5462 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5462 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5462 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5462 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5462 store ptr null, ptr %_24.i, align 8, !noalias !5462 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5462 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5462 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5462 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5462 store ptr null, ptr %_32.i, align 8, !noalias !5462 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5462 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5462 store i64 %w.1, ptr %_34.i, align 8, !noalias !5462 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %bb9.i.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5462 store ptr null, ptr %_40.i, align 8, !noalias !5462 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb9.i.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5462 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 br label %vector.body vector.body: ; preds = %vector.body, %bb9.i.i.i.i.preheader %index = phi i64 [ 0, %bb9.i.i.i.i.preheader ], [ %index.next.1, %vector.body ] %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %2 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %wide.vec = load <8 x double>, ptr %1, align 8, !noalias !5462 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !5462 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %3 = fadd <4 x double> %strided.vec, %strided.vec3 %4 = fadd <4 x double> %strided.vec1, %strided.vec4 %5 = fsub <4 x double> %strided.vec, %strided.vec3 %6 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %3, <4 x double> %4, <8 x i32> store <8 x double> %interleaved.vec, ptr %1, align 8, !noalias !5462 %interleaved.vec5 = shufflevector <4 x double> %5, <4 x double> %6, <8 x i32> store <8 x double> %interleaved.vec5, ptr %2, align 8, !noalias !5462 %index.next = or disjoint i64 %index, 4 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index.next %8 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index.next %wide.vec.1 = load <8 x double>, ptr %7, align 8, !noalias !5462 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %8, align 8, !noalias !5462 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %9 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %10 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %11 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %12 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %interleaved.vec.1 = shufflevector <4 x double> %9, <4 x double> %10, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %7, align 8, !noalias !5462 %interleaved.vec5.1 = shufflevector <4 x double> %11, <4 x double> %12, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %8, align 8, !noalias !5462 %index.next.1 = add nuw nsw i64 %index, 8 %13 = icmp eq i64 %index.next.1, 64 br i1 %13, label %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, label %vector.body, !llvm.loop !5465 _ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit: ; preds = %vector.body %14 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %15 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %16 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %17 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %18 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %19 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %20 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 br label %bb32.i.i.i.i bb32.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit, %middle.block6 %_2.i.i.i204 = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ false, %middle.block6 ] %iter.i.i.i.i.sroa.104.0120 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h221665d9ddea249cE.exit ], [ 1, %middle.block6 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0120, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.104.0120, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %21 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %22 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %23 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %24 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %25 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %26 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %27 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %28 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %28, align 8, !noalias !5462, !noundef !3 %_6.i.i.i.i.i = fneg double %w7.1.i.i.i.i %29 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %29, align 8, !noalias !5462, !noundef !3 %_6.i166.i.i.i.i = fneg double %w6.1.i.i.i.i %30 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %30, align 8, !noalias !5462, !noundef !3 %_6.i169.i.i.i.i = fneg double %w5.1.i.i.i.i %31 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %31, align 8, !noalias !5462, !noundef !3 %_6.i172.i.i.i.i = fneg double %w4.1.i.i.i.i %32 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %32, align 8, !noalias !5462, !noundef !3 %_6.i175.i.i.i.i = fneg double %w3.1.i.i.i.i %33 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %33, align 8, !noalias !5462, !noundef !3 %_6.i178.i.i.i.i = fneg double %w2.1.i.i.i.i %34 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %34, align 8, !noalias !5462, !noundef !3 %_6.i181.i.i.i.i = fneg double %w1.1.i.i.i.i %35 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %35, align 8, !noalias !5462, !noundef !3 %36 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %36, align 8, !noalias !5462, !noundef !3 %37 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %37, align 8, !noalias !5462, !noundef !3 %38 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %38, align 8, !noalias !5462, !noundef !3 %39 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %39, align 8, !noalias !5462, !noundef !3 %40 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %40, align 8, !noalias !5462, !noundef !3 %41 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %41, align 8, !noalias !5462, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i181.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert18 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat19 = shufflevector <4 x double> %broadcast.splatinsert18, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert20 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat21 = shufflevector <4 x double> %broadcast.splatinsert20, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert25 = insertelement <4 x double> poison, double %_6.i178.i.i.i.i, i64 0 %broadcast.splat26 = shufflevector <4 x double> %broadcast.splatinsert25, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert27 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat28 = shufflevector <4 x double> %broadcast.splatinsert27, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert29 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat30 = shufflevector <4 x double> %broadcast.splatinsert29, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert34 = insertelement <4 x double> poison, double %_6.i175.i.i.i.i, i64 0 %broadcast.splat35 = shufflevector <4 x double> %broadcast.splatinsert34, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert36 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat37 = shufflevector <4 x double> %broadcast.splatinsert36, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert38 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat39 = shufflevector <4 x double> %broadcast.splatinsert38, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert43 = insertelement <4 x double> poison, double %_6.i172.i.i.i.i, i64 0 %broadcast.splat44 = shufflevector <4 x double> %broadcast.splatinsert43, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert45 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat46 = shufflevector <4 x double> %broadcast.splatinsert45, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert47 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat48 = shufflevector <4 x double> %broadcast.splatinsert47, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert52 = insertelement <4 x double> poison, double %_6.i169.i.i.i.i, i64 0 %broadcast.splat53 = shufflevector <4 x double> %broadcast.splatinsert52, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert54 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat55 = shufflevector <4 x double> %broadcast.splatinsert54, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert56 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat57 = shufflevector <4 x double> %broadcast.splatinsert56, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert61 = insertelement <4 x double> poison, double %_6.i166.i.i.i.i, i64 0 %broadcast.splat62 = shufflevector <4 x double> %broadcast.splatinsert61, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert63 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat64 = shufflevector <4 x double> %broadcast.splatinsert63, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert65 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat66 = shufflevector <4 x double> %broadcast.splatinsert65, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert70 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat71 = shufflevector <4 x double> %broadcast.splatinsert70, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert72 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat73 = shufflevector <4 x double> %broadcast.splatinsert72, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert74 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat75 = shufflevector <4 x double> %broadcast.splatinsert74, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body10 vector.body10: ; preds = %vector.body10, %bb32.i.i.i.i %index11 = phi i64 [ 0, %bb32.i.i.i.i ], [ %index.next84, %vector.body10 ] %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index11 %43 = getelementptr inbounds %"num_complex::Complex", ptr %23, i64 %index11 %44 = getelementptr inbounds %"num_complex::Complex", ptr %22, i64 %index11 %45 = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %index11 %46 = getelementptr inbounds %"num_complex::Complex", ptr %21, i64 %index11 %47 = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %index11 %48 = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %index11 %49 = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %index11 %wide.vec12 = load <8 x double>, ptr %42, align 8, !noalias !5462 %strided.vec13 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %strided.vec14 = shufflevector <8 x double> %wide.vec12, <8 x double> poison, <4 x i32> %wide.vec15 = load <8 x double>, ptr %43, align 8, !noalias !5462 %strided.vec16 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec15, <8 x double> poison, <4 x i32> %50 = fmul <4 x double> %strided.vec17, %broadcast.splat %51 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec16, <4 x double> %50) %52 = fmul <4 x double> %broadcast.splat21, %strided.vec16 %53 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat19, <4 x double> %strided.vec17, <4 x double> %52) %wide.vec22 = load <8 x double>, ptr %44, align 8, !noalias !5462 %strided.vec23 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %strided.vec24 = shufflevector <8 x double> %wide.vec22, <8 x double> poison, <4 x i32> %54 = fmul <4 x double> %strided.vec24, %broadcast.splat26 %55 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec23, <4 x double> %54) %56 = fmul <4 x double> %broadcast.splat30, %strided.vec23 %57 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat28, <4 x double> %strided.vec24, <4 x double> %56) %wide.vec31 = load <8 x double>, ptr %45, align 8, !noalias !5462 %strided.vec32 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %strided.vec33 = shufflevector <8 x double> %wide.vec31, <8 x double> poison, <4 x i32> %58 = fmul <4 x double> %strided.vec33, %broadcast.splat35 %59 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec32, <4 x double> %58) %60 = fmul <4 x double> %broadcast.splat39, %strided.vec32 %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat37, <4 x double> %strided.vec33, <4 x double> %60) %wide.vec40 = load <8 x double>, ptr %46, align 8, !noalias !5462 %strided.vec41 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %strided.vec42 = shufflevector <8 x double> %wide.vec40, <8 x double> poison, <4 x i32> %62 = fmul <4 x double> %strided.vec42, %broadcast.splat44 %63 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec41, <4 x double> %62) %64 = fmul <4 x double> %broadcast.splat48, %strided.vec41 %65 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat46, <4 x double> %strided.vec42, <4 x double> %64) %wide.vec49 = load <8 x double>, ptr %47, align 8, !noalias !5462 %strided.vec50 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %strided.vec51 = shufflevector <8 x double> %wide.vec49, <8 x double> poison, <4 x i32> %66 = fmul <4 x double> %strided.vec51, %broadcast.splat53 %67 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec50, <4 x double> %66) %68 = fmul <4 x double> %broadcast.splat57, %strided.vec50 %69 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat55, <4 x double> %strided.vec51, <4 x double> %68) %wide.vec58 = load <8 x double>, ptr %48, align 8, !noalias !5462 %strided.vec59 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %strided.vec60 = shufflevector <8 x double> %wide.vec58, <8 x double> poison, <4 x i32> %70 = fmul <4 x double> %strided.vec60, %broadcast.splat62 %71 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec59, <4 x double> %70) %72 = fmul <4 x double> %broadcast.splat66, %strided.vec59 %73 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat64, <4 x double> %strided.vec60, <4 x double> %72) %wide.vec67 = load <8 x double>, ptr %49, align 8, !noalias !5462 %strided.vec68 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %strided.vec69 = shufflevector <8 x double> %wide.vec67, <8 x double> poison, <4 x i32> %74 = fmul <4 x double> %strided.vec69, %broadcast.splat71 %75 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec68, <4 x double> %74) %76 = fmul <4 x double> %broadcast.splat75, %strided.vec68 %77 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat73, <4 x double> %strided.vec69, <4 x double> %76) %78 = fadd <4 x double> %strided.vec13, %63 %79 = fadd <4 x double> %strided.vec14, %65 %80 = fsub <4 x double> %strided.vec13, %63 %81 = fsub <4 x double> %strided.vec14, %65 %82 = fadd <4 x double> %55, %71 %83 = fadd <4 x double> %57, %73 %84 = fsub <4 x double> %55, %71 %85 = fsub <4 x double> %57, %73 %86 = fadd <4 x double> %51, %67 %87 = fadd <4 x double> %53, %69 %88 = fsub <4 x double> %51, %67 %89 = fsub <4 x double> %53, %69 %90 = fadd <4 x double> %59, %75 %91 = fadd <4 x double> %61, %77 %92 = fsub <4 x double> %59, %75 %93 = fsub <4 x double> %61, %77 %94 = fadd <4 x double> %78, %82 %95 = fadd <4 x double> %79, %83 %96 = fadd <4 x double> %86, %90 %97 = fadd <4 x double> %87, %91 %98 = fadd <4 x double> %94, %96 %99 = fadd <4 x double> %95, %97 %100 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec76 = shufflevector <4 x double> %98, <4 x double> %99, <8 x i32> store <8 x double> %interleaved.vec76, ptr %100, align 8, !noalias !5462 %101 = fsub <4 x double> %94, %96 %102 = fsub <4 x double> %95, %97 %103 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec77 = shufflevector <4 x double> %101, <4 x double> %102, <8 x i32> store <8 x double> %interleaved.vec77, ptr %103, align 8, !noalias !5462 %104 = fadd <4 x double> %80, %85 %105 = fsub <4 x double> %81, %84 %106 = fadd <4 x double> %88, %93 %107 = fsub <4 x double> %89, %92 %108 = fadd <4 x double> %106, %107 %109 = fsub <4 x double> %107, %106 %110 = fmul <4 x double> %108, %111 = fmul <4 x double> %109, %112 = fadd <4 x double> %104, %110 %113 = fadd <4 x double> %105, %111 %114 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec78 = shufflevector <4 x double> %112, <4 x double> %113, <8 x i32> store <8 x double> %interleaved.vec78, ptr %114, align 8, !noalias !5462 %115 = fsub <4 x double> %104, %110 %116 = fsub <4 x double> %105, %111 %117 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec79 = shufflevector <4 x double> %115, <4 x double> %116, <8 x i32> store <8 x double> %interleaved.vec79, ptr %117, align 8, !noalias !5462 %118 = fsub <4 x double> %78, %82 %119 = fsub <4 x double> %79, %83 %120 = fsub <4 x double> %86, %90 %121 = fsub <4 x double> %87, %91 %122 = fadd <4 x double> %118, %121 %123 = fsub <4 x double> %119, %120 %124 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec80 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec80, ptr %124, align 8, !noalias !5462 %125 = fsub <4 x double> %118, %121 %126 = fadd <4 x double> %119, %120 %127 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec81 = shufflevector <4 x double> %125, <4 x double> %126, <8 x i32> store <8 x double> %interleaved.vec81, ptr %127, align 8, !noalias !5462 %128 = fsub <4 x double> %80, %85 %129 = fadd <4 x double> %81, %84 %130 = fsub <4 x double> %88, %93 %131 = fadd <4 x double> %89, %92 %132 = fsub <4 x double> %130, %131 %133 = fadd <4 x double> %130, %131 %134 = fmul <4 x double> %132, %135 = fmul <4 x double> %133, %136 = fsub <4 x double> %128, %134 %137 = fsub <4 x double> %129, %135 %138 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec82 = shufflevector <4 x double> %136, <4 x double> %137, <8 x i32> store <8 x double> %interleaved.vec82, ptr %138, align 8, !noalias !5462 %139 = fadd <4 x double> %128, %134 %140 = fadd <4 x double> %129, %135 %141 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 %index11 %interleaved.vec83 = shufflevector <4 x double> %139, <4 x double> %140, <8 x i32> store <8 x double> %interleaved.vec83, ptr %141, align 8, !noalias !5462 %index.next84 = add nuw i64 %index11, 4 %142 = icmp eq i64 %index.next84, 8 br i1 %142, label %middle.block6, label %vector.body10, !llvm.loop !5466 middle.block6: ; preds = %vector.body10 br i1 %_2.i.i.i204, label %bb32.i.i.i.i, label %bb32.i.i.i.preheader bb32.i.i.i.preheader: ; preds = %middle.block6 %143 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %144 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %145 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %146 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %147 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %148 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 br label %vector.body89 vector.body89: ; preds = %vector.body89, %bb32.i.i.i.preheader %index90 = phi i64 [ 0, %bb32.i.i.i.preheader ], [ %index.next128, %vector.body89 ] %vec.ind = phi <4 x i64> [ , %bb32.i.i.i.preheader ], [ %vec.ind.next, %vector.body89 ] %149 = shl <4 x i64> %vec.ind, %150 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %149 %151 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %152 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %153 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %153, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %154 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %155 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %158 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather97 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %159 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather98 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %160 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather99 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %161 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather100 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %162 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather101 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %163 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather102 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %164 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather103 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 4 %166 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 2 %167 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 1 %168 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 3 %169 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 6 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 5 %171 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 7 %172 = fneg <4 x double> %wide.masked.gather91 %173 = fneg <4 x double> %wide.masked.gather93 %174 = fneg <4 x double> %wide.masked.gather95 %175 = fneg <4 x double> %wide.masked.gather97 %176 = fneg <4 x double> %wide.masked.gather99 %177 = fneg <4 x double> %wide.masked.gather101 %178 = fneg <4 x double> %wide.masked.gather103 %wide.masked.gather104 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %150, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %179 = getelementptr inbounds i8, <4 x ptr> %150, i64 8 %wide.masked.gather105 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %179, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %wide.masked.gather106 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %167, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %180 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 1, i32 1 %wide.masked.gather107 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %180, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %181 = fmul <4 x double> %wide.masked.gather107, %172 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather106, <4 x double> %181) %183 = fmul <4 x double> %wide.masked.gather91, %wide.masked.gather106 %184 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather107, <4 x double> %183) %wide.masked.gather108 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %166, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %185 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 2, i32 1 %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %185, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %186 = fmul <4 x double> %wide.masked.gather109, %173 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather92, <4 x double> %wide.masked.gather108, <4 x double> %186) %188 = fmul <4 x double> %wide.masked.gather93, %wide.masked.gather108 %189 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather92, <4 x double> %wide.masked.gather109, <4 x double> %188) %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %190 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 3, i32 1 %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %190, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %191 = fmul <4 x double> %wide.masked.gather111, %174 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather94, <4 x double> %wide.masked.gather110, <4 x double> %191) %193 = fmul <4 x double> %wide.masked.gather95, %wide.masked.gather110 %194 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather94, <4 x double> %wide.masked.gather111, <4 x double> %193) %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %195 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 4, i32 1 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %195, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %196 = fmul <4 x double> %wide.masked.gather113, %175 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather96, <4 x double> %wide.masked.gather112, <4 x double> %196) %198 = fmul <4 x double> %wide.masked.gather97, %wide.masked.gather112 %199 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather96, <4 x double> %wide.masked.gather113, <4 x double> %198) %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %200 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 5, i32 1 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %200, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %201 = fmul <4 x double> %wide.masked.gather115, %176 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather98, <4 x double> %wide.masked.gather114, <4 x double> %201) %203 = fmul <4 x double> %wide.masked.gather99, %wide.masked.gather114 %204 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather98, <4 x double> %wide.masked.gather115, <4 x double> %203) %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %169, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %205 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 6, i32 1 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %205, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %206 = fmul <4 x double> %wide.masked.gather117, %177 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather116, <4 x double> %206) %208 = fmul <4 x double> %wide.masked.gather101, %wide.masked.gather116 %209 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather100, <4 x double> %wide.masked.gather117, <4 x double> %208) %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %171, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %210 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %150, i64 7, i32 1 %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %210, i32 8, <4 x i1> , <4 x double> poison), !noalias !5462 %211 = fmul <4 x double> %wide.masked.gather119, %178 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather118, <4 x double> %211) %213 = fmul <4 x double> %wide.masked.gather103, %wide.masked.gather118 %214 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather102, <4 x double> %wide.masked.gather119, <4 x double> %213) %215 = fadd <4 x double> %wide.masked.gather104, %197 %216 = fadd <4 x double> %wide.masked.gather105, %199 %217 = fsub <4 x double> %wide.masked.gather104, %197 %218 = fsub <4 x double> %wide.masked.gather105, %199 %219 = fadd <4 x double> %187, %207 %220 = fadd <4 x double> %189, %209 %221 = fsub <4 x double> %187, %207 %222 = fsub <4 x double> %189, %209 %223 = fadd <4 x double> %182, %202 %224 = fadd <4 x double> %184, %204 %225 = fsub <4 x double> %182, %202 %226 = fsub <4 x double> %184, %204 %227 = fadd <4 x double> %192, %212 %228 = fadd <4 x double> %194, %214 %229 = fsub <4 x double> %192, %212 %230 = fsub <4 x double> %194, %214 %231 = fadd <4 x double> %215, %219 %232 = fadd <4 x double> %216, %220 %233 = fadd <4 x double> %223, %227 %234 = fadd <4 x double> %224, %228 %235 = fadd <4 x double> %231, %233 %236 = fadd <4 x double> %232, %234 %237 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index90 %interleaved.vec120 = shufflevector <4 x double> %235, <4 x double> %236, <8 x i32> store <8 x double> %interleaved.vec120, ptr %237, align 8, !noalias !5462 %238 = fsub <4 x double> %231, %233 %239 = fsub <4 x double> %232, %234 %240 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index90 %interleaved.vec121 = shufflevector <4 x double> %238, <4 x double> %239, <8 x i32> store <8 x double> %interleaved.vec121, ptr %240, align 8, !noalias !5462 %241 = fadd <4 x double> %217, %222 %242 = fsub <4 x double> %218, %221 %243 = fadd <4 x double> %225, %230 %244 = fsub <4 x double> %226, %229 %245 = fadd <4 x double> %243, %244 %246 = fsub <4 x double> %244, %243 %247 = fmul <4 x double> %245, %248 = fmul <4 x double> %246, %249 = fadd <4 x double> %241, %247 %250 = fadd <4 x double> %242, %248 %251 = getelementptr inbounds %"num_complex::Complex", ptr %144, i64 %index90 %interleaved.vec122 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec122, ptr %251, align 8, !noalias !5462 %252 = fsub <4 x double> %241, %247 %253 = fsub <4 x double> %242, %248 %254 = getelementptr inbounds %"num_complex::Complex", ptr %147, i64 %index90 %interleaved.vec123 = shufflevector <4 x double> %252, <4 x double> %253, <8 x i32> store <8 x double> %interleaved.vec123, ptr %254, align 8, !noalias !5462 %255 = fsub <4 x double> %215, %219 %256 = fsub <4 x double> %216, %220 %257 = fsub <4 x double> %223, %227 %258 = fsub <4 x double> %224, %228 %259 = fadd <4 x double> %255, %258 %260 = fsub <4 x double> %256, %257 %261 = getelementptr inbounds %"num_complex::Complex", ptr %143, i64 %index90 %interleaved.vec124 = shufflevector <4 x double> %259, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec124, ptr %261, align 8, !noalias !5462 %262 = fsub <4 x double> %255, %258 %263 = fadd <4 x double> %256, %257 %264 = getelementptr inbounds %"num_complex::Complex", ptr %146, i64 %index90 %interleaved.vec125 = shufflevector <4 x double> %262, <4 x double> %263, <8 x i32> store <8 x double> %interleaved.vec125, ptr %264, align 8, !noalias !5462 %265 = fsub <4 x double> %217, %222 %266 = fadd <4 x double> %218, %221 %267 = fsub <4 x double> %225, %230 %268 = fadd <4 x double> %226, %229 %269 = fsub <4 x double> %267, %268 %270 = fadd <4 x double> %267, %268 %271 = fmul <4 x double> %269, %272 = fmul <4 x double> %270, %273 = fsub <4 x double> %265, %271 %274 = fsub <4 x double> %266, %272 %275 = getelementptr inbounds %"num_complex::Complex", ptr %145, i64 %index90 %interleaved.vec126 = shufflevector <4 x double> %273, <4 x double> %274, <8 x i32> store <8 x double> %interleaved.vec126, ptr %275, align 8, !noalias !5462 %276 = fadd <4 x double> %265, %271 %277 = fadd <4 x double> %266, %272 %278 = getelementptr inbounds %"num_complex::Complex", ptr %148, i64 %index90 %interleaved.vec127 = shufflevector <4 x double> %276, <4 x double> %277, <8 x i32> store <8 x double> %interleaved.vec127, ptr %278, align 8, !noalias !5462 %index.next128 = add nuw i64 %index90, 4 %vec.ind.next = add <4 x i64> %vec.ind, %279 = icmp eq i64 %index.next128, 16 br i1 %279, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3625d83b0ef46d0E.exit", label %vector.body89, !llvm.loop !5467 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3625d83b0ef46d0E.exit": ; preds = %vector.body89 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5462 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he58345cd65c99198E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5468 store i64 64, ptr %n.i.i, align 8, !noalias !5468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5468 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5468 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5468 store ptr null, ptr %_16.i.i, align 8, !noalias !5468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5468 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5468 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5468 store ptr null, ptr %_24.i.i, align 8, !noalias !5468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5468 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5468 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5468 store ptr null, ptr %_32.i.i, align 8, !noalias !5468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5468 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5468 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5468 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h92b1eaee3e49a90eE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5468 store ptr null, ptr %_40.i.i, align 8, !noalias !5468 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h92b1eaee3e49a90eE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5468 tail call void @llvm.experimental.noalias.scope.decl(metadata !5473) tail call void @llvm.experimental.noalias.scope.decl(metadata !5476) tail call void @llvm.experimental.noalias.scope.decl(metadata !5478) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 2 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 6 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 10 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 14 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 18 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 22 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 26 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 30 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 2 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 6 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 10 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 14 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 18 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 22 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 26 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 30 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h92b1eaee3e49a90eE.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h92b1eaee3e49a90eE.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5473, !noalias !5480 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5478, !noalias !5481 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5476, !noalias !5482 store <4 x double> %247, ptr %248, align 8, !alias.scope !5476, !noalias !5482 store <4 x double> %249, ptr %250, align 8, !alias.scope !5476, !noalias !5482 store <4 x double> %251, ptr %252, align 8, !alias.scope !5476, !noalias !5482 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !5476, !noalias !5482 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !5476, !noalias !5482 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !5476, !noalias !5482 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !5476, !noalias !5482 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !5476, !noalias !5482 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !5476, !noalias !5482 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !5476, !noalias !5482 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !5476, !noalias !5482 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !5476, !noalias !5482 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !5476, !noalias !5482 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !5476, !noalias !5482 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !5476, !noalias !5482 %exitcond.not.i.i = icmp eq i64 %32, 2 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17hb0b0ec52a5c1156dE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17hb0b0ec52a5c1156dE.exit: ; preds = %bb39.i.i %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %_73.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %scratch.0, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %278, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %277, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %279, align 8, !noalias !5468 %280 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %281 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.i, %_75.i.i.i.sroa.0.0.copyload.i %282 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %283 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.i, %_76.i.i.i.sroa.0.0.copyload.i %284 = bitcast <4 x double> %283 to <4 x i64> %285 = xor <4 x i64> %284, %286 = bitcast <4 x i64> %285 to <4 x double> %287 = shufflevector <4 x double> %286, <4 x double> poison, <4 x i32> %288 = fadd <4 x double> %280, %282 %289 = fsub <4 x double> %281, %287 %290 = fsub <4 x double> %280, %282 %291 = fadd <4 x double> %281, %287 store <4 x double> %288, ptr %buf.0, align 8, !noalias !5468 store <4 x double> %289, ptr %3, align 8, !noalias !5468 store <4 x double> %290, ptr %2, align 8, !noalias !5468 store <4 x double> %291, ptr %10, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 9 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 17 %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 25 %_3.i.i.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %_3.i.i.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 9 %_3.i.i.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 17 %_3.i.i.i.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 25 %_73.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5468 %292 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %293 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.1.i, %_75.i.i.i.sroa.0.0.copyload.1.i %294 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %295 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.1.i, %_76.i.i.i.sroa.0.0.copyload.1.i %296 = bitcast <4 x double> %295 to <4 x i64> %297 = xor <4 x i64> %296, %298 = bitcast <4 x i64> %297 to <4 x double> %299 = shufflevector <4 x double> %298, <4 x double> poison, <4 x i32> %300 = fadd <4 x double> %292, %294 %301 = fsub <4 x double> %293, %299 %302 = fsub <4 x double> %292, %294 %303 = fadd <4 x double> %293, %299 store <4 x double> %300, ptr %_3.i.i.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5468 store <4 x double> %301, ptr %_3.i.i.i.i.i.i.i.i.1.i, align 8, !noalias !5468 store <4 x double> %302, ptr %_3.i.i.i.i.i.i.1.i, align 8, !noalias !5468 store <4 x double> %303, ptr %_3.i.i.i.i.1.i, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 2 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 10 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 18 %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 26 %_73.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.2.i, align 8, !noalias !5468 %304 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %305 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.2.i, %_75.i.i.i.sroa.0.0.copyload.2.i %306 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %307 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.2.i, %_76.i.i.i.sroa.0.0.copyload.2.i %308 = bitcast <4 x double> %307 to <4 x i64> %309 = xor <4 x i64> %308, %310 = bitcast <4 x i64> %309 to <4 x double> %311 = shufflevector <4 x double> %310, <4 x double> poison, <4 x i32> %312 = fadd <4 x double> %304, %306 %313 = fsub <4 x double> %305, %311 %314 = fsub <4 x double> %304, %306 %315 = fadd <4 x double> %305, %311 store <4 x double> %312, ptr %5, align 8, !noalias !5468 store <4 x double> %313, ptr %8, align 8, !noalias !5468 store <4 x double> %314, ptr %12, align 8, !noalias !5468 store <4 x double> %315, ptr %15, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 3 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 11 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 19 %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 27 %_3.i.i.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 3 %_3.i.i.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 11 %_3.i.i.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 19 %_3.i.i.i.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 27 %_73.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5468 %316 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %317 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.3.i, %_75.i.i.i.sroa.0.0.copyload.3.i %318 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %319 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.3.i, %_76.i.i.i.sroa.0.0.copyload.3.i %320 = bitcast <4 x double> %319 to <4 x i64> %321 = xor <4 x i64> %320, %322 = bitcast <4 x i64> %321 to <4 x double> %323 = shufflevector <4 x double> %322, <4 x double> poison, <4 x i32> %324 = fadd <4 x double> %316, %318 %325 = fsub <4 x double> %317, %323 %326 = fsub <4 x double> %316, %318 %327 = fadd <4 x double> %317, %323 store <4 x double> %324, ptr %_3.i.i.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5468 store <4 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.3.i, align 8, !noalias !5468 store <4 x double> %326, ptr %_3.i.i.i.i.i.i.3.i, align 8, !noalias !5468 store <4 x double> %327, ptr %_3.i.i.i.i.3.i, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %_73.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.4.i, align 8, !noalias !5468 %328 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %329 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.4.i, %_75.i.i.i.sroa.0.0.copyload.4.i %330 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %331 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.4.i, %_76.i.i.i.sroa.0.0.copyload.4.i %332 = bitcast <4 x double> %331 to <4 x i64> %333 = xor <4 x i64> %332, %334 = bitcast <4 x i64> %333 to <4 x double> %335 = shufflevector <4 x double> %334, <4 x double> poison, <4 x i32> %336 = fadd <4 x double> %328, %330 %337 = fsub <4 x double> %329, %335 %338 = fsub <4 x double> %328, %330 %339 = fadd <4 x double> %329, %335 store <4 x double> %336, ptr %4, align 8, !noalias !5468 store <4 x double> %337, ptr %7, align 8, !noalias !5468 store <4 x double> %338, ptr %11, align 8, !noalias !5468 store <4 x double> %339, ptr %14, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 5 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 13 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 21 %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 29 %_3.i.i.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 5 %_3.i.i.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 13 %_3.i.i.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 21 %_3.i.i.i.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 29 %_73.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5468 %340 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %341 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.5.i, %_75.i.i.i.sroa.0.0.copyload.5.i %342 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %343 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.5.i, %_76.i.i.i.sroa.0.0.copyload.5.i %344 = bitcast <4 x double> %343 to <4 x i64> %345 = xor <4 x i64> %344, %346 = bitcast <4 x i64> %345 to <4 x double> %347 = shufflevector <4 x double> %346, <4 x double> poison, <4 x i32> %348 = fadd <4 x double> %340, %342 %349 = fsub <4 x double> %341, %347 %350 = fsub <4 x double> %340, %342 %351 = fadd <4 x double> %341, %347 store <4 x double> %348, ptr %_3.i.i.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5468 store <4 x double> %349, ptr %_3.i.i.i.i.i.i.i.i.5.i, align 8, !noalias !5468 store <4 x double> %350, ptr %_3.i.i.i.i.i.i.5.i, align 8, !noalias !5468 store <4 x double> %351, ptr %_3.i.i.i.i.5.i, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 6 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 14 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 22 %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 30 %_73.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.6.i, align 8, !noalias !5468 %352 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %353 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.6.i, %_75.i.i.i.sroa.0.0.copyload.6.i %354 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %355 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.6.i, %_76.i.i.i.sroa.0.0.copyload.6.i %356 = bitcast <4 x double> %355 to <4 x i64> %357 = xor <4 x i64> %356, %358 = bitcast <4 x i64> %357 to <4 x double> %359 = shufflevector <4 x double> %358, <4 x double> poison, <4 x i32> %360 = fadd <4 x double> %352, %354 %361 = fsub <4 x double> %353, %359 %362 = fsub <4 x double> %352, %354 %363 = fadd <4 x double> %353, %359 store <4 x double> %360, ptr %6, align 8, !noalias !5468 store <4 x double> %361, ptr %9, align 8, !noalias !5468 store <4 x double> %362, ptr %13, align 8, !noalias !5468 store <4 x double> %363, ptr %16, align 8, !noalias !5468 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 7 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 15 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 23 %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 31 %_3.i.i.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 7 %_3.i.i.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 15 %_3.i.i.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 23 %_3.i.i.i.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 31 %_73.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5468 %_74.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5468 %_75.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5468 %_76.i.i.i.sroa.0.0.copyload.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5468 %364 = fadd <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %365 = fsub <4 x double> %_73.i.i.i.sroa.0.0.copyload.7.i, %_75.i.i.i.sroa.0.0.copyload.7.i %366 = fadd <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %367 = fsub <4 x double> %_74.i.i.i.sroa.0.0.copyload.7.i, %_76.i.i.i.sroa.0.0.copyload.7.i %368 = bitcast <4 x double> %367 to <4 x i64> %369 = xor <4 x i64> %368, %370 = bitcast <4 x i64> %369 to <4 x double> %371 = shufflevector <4 x double> %370, <4 x double> poison, <4 x i32> %372 = fadd <4 x double> %364, %366 %373 = fsub <4 x double> %365, %371 %374 = fsub <4 x double> %364, %366 %375 = fadd <4 x double> %365, %371 store <4 x double> %372, ptr %_3.i.i.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5468 store <4 x double> %373, ptr %_3.i.i.i.i.i.i.i.i.7.i, align 8, !noalias !5468 store <4 x double> %374, ptr %_3.i.i.i.i.i.i.7.i, align 8, !noalias !5468 store <4 x double> %375, ptr %_3.i.i.i.i.7.i, align 8, !noalias !5468 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5468 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he58dcc63249b979eE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5483 store i64 512, ptr %n.i.i, align 8, !noalias !5483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5483 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5483 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5483 store ptr null, ptr %_16.i.i, align 8, !noalias !5483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5483 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5483 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5483 store ptr null, ptr %_24.i.i, align 8, !noalias !5483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5483 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5483 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5483 store ptr null, ptr %_32.i.i, align 8, !noalias !5483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5483 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5483 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5483 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h35afb684d75f7c2dE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5483 store ptr null, ptr %_40.i.i, align 8, !noalias !5483 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h35afb684d75f7c2dE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5483 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 br label %bb9.i.i.i.i bb9.i.i.i.i: ; preds = %bb9.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h35afb684d75f7c2dE.exit.i" %iter.i.i.i.sroa.8.058.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h35afb684d75f7c2dE.exit.i" ], [ %12, %bb9.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.sroa.8.058.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.058.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.058.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5483 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !5483 %4 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !5483 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !5483 %6 = or disjoint i64 %iter.i.i.i.sroa.8.058.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5483 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5483 %7 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5483 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5483 %9 = or disjoint i64 %iter.i.i.i.sroa.8.058.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5483 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5483 %10 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5483 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5483 %12 = add nuw nsw i64 %iter.i.i.i.sroa.8.058.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5483 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5483 %13 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5483 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5483 %exitcond.not.i.3 = icmp eq i64 %12, 128 br i1 %exitcond.not.i.3, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i", label %bb9.i.i.i.i "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i": ; preds = %bb9.i.i.i.i %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 tail call void @llvm.experimental.noalias.scope.decl(metadata !5488) tail call void @llvm.experimental.noalias.scope.decl(metadata !5491) tail call void @llvm.experimental.noalias.scope.decl(metadata !5493) %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 144 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 176 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 208 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 240 br label %bb46.i.i bb44.loopexit.i.i: ; preds = %bb98.i.i br i1 %_2.i.i.i.i.i, label %bb46.i.i, label %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i bb46.i.i: ; preds = %bb44.loopexit.i.i, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i" %_2.i.i.i.i.i = phi i1 [ false, %bb44.loopexit.i.i ], [ true, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i" ] %iter.sroa.208.05943.i.i = phi i64 [ 1, %bb44.loopexit.i.i ], [ 0, %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E.exit.i" ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05943.i.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05943.i.i, 7 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 64 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 32 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %33 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %34 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %35 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 48 %36 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 40 %37 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 56 %38 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 96 %39 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 80 %40 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 72 %41 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 88 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 112 %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 104 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 120 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.208.05943.i.i, 4 %45 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i = load double, ptr %45, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %46 = insertelement <4 x double> poison, double %wf.1.i.i, i64 0 %47 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 15 %wf.0.i.i = load double, ptr %47, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i338.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wf.0.i.i, i64 0 %48 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i = load double, ptr %48, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %49 = insertelement <4 x double> poison, double %we.1.i.i, i64 0 %50 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 14 %we.0.i.i = load double, ptr %50, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i342.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %we.0.i.i, i64 0 %51 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i = load double, ptr %51, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %52 = insertelement <4 x double> poison, double %wd.1.i.i, i64 0 %53 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 13 %wd.0.i.i = load double, ptr %53, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i346.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wd.0.i.i, i64 0 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i = load double, ptr %54, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %55 = insertelement <4 x double> poison, double %wc.1.i.i, i64 0 %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 12 %wc.0.i.i = load double, ptr %56, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i350.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wc.0.i.i, i64 0 %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i = load double, ptr %57, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %58 = insertelement <4 x double> poison, double %wb.1.i.i, i64 0 %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 11 %wb.0.i.i = load double, ptr %59, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i354.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wb.0.i.i, i64 0 %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i = load double, ptr %60, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %61 = insertelement <4 x double> poison, double %wa.1.i.i, i64 0 %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 10 %wa.0.i.i = load double, ptr %62, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i358.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %wa.0.i.i, i64 0 %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i = load double, ptr %63, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %64 = insertelement <4 x double> poison, double %w9.1.i.i, i64 0 %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 9 %w9.0.i.i = load double, ptr %65, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i362.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w9.0.i.i, i64 0 %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i = load double, ptr %66, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %67 = insertelement <4 x double> poison, double %w8.1.i.i, i64 0 %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 8 %w8.0.i.i = load double, ptr %68, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i366.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w8.0.i.i, i64 0 %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %69, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %70 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %71 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %71, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i370.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %72, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %73 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %74 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %74, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i374.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %75 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %75, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %76 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %77 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %77, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i378.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %78 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %78, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %79 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %80 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %80, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i382.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %81 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %81, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %82 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %83 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %83, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i386.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %84 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %84, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %85 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %86 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %86, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i390.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %87 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %87, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %88 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %89 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %89, align 8, !alias.scope !5493, !noalias !5495, !noundef !3 %value.i394.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %90 = shufflevector <2 x double> %value.i394.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %91 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> zeroinitializer %92 = shufflevector <2 x double> %value.i390.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %93 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> zeroinitializer %94 = shufflevector <2 x double> %value.i386.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %95 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> zeroinitializer %96 = shufflevector <2 x double> %value.i382.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %97 = shufflevector <4 x double> %79, <4 x double> poison, <4 x i32> zeroinitializer %98 = shufflevector <2 x double> %value.i378.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %99 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <2 x double> %value.i374.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> zeroinitializer %102 = shufflevector <2 x double> %value.i370.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %103 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %104 = shufflevector <2 x double> %value.i366.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %105 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer %106 = shufflevector <2 x double> %value.i362.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> zeroinitializer %108 = shufflevector <2 x double> %value.i358.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %109 = shufflevector <4 x double> %61, <4 x double> poison, <4 x i32> zeroinitializer %110 = shufflevector <2 x double> %value.i354.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %111 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> zeroinitializer %112 = shufflevector <2 x double> %value.i350.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %113 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <2 x double> %value.i346.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <2 x double> %value.i342.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <2 x double> %value.i338.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> zeroinitializer br label %bb98.i.i bb98.i.i: ; preds = %bb98.i.i, %bb46.i.i %iter10.sroa.218.05770.i.i = phi i64 [ 0, %bb46.i.i ], [ %120, %bb98.i.i ] %120 = add nuw nsw i64 %iter10.sroa.218.05770.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter10.sroa.218.05770.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %33, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %34, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %36, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %35, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %40, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %39, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %41, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %38, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i.i.i75.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %42, i64 %iter10.sroa.218.05770.i.i %_3.i.i.i.i.i78.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter10.sroa.218.05770.i.i %y0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %_220.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %121 = shufflevector <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %122 = fmul <4 x double> %91, %121 %123 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %_220.sroa.0.0.copyload.i.i, <4 x double> %122) #23 %_222.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %124 = shufflevector <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %125 = fmul <4 x double> %93, %124 %126 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %92, <4 x double> %_222.sroa.0.0.copyload.i.i, <4 x double> %125) #23 %_224.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %127 = shufflevector <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %128 = fmul <4 x double> %95, %127 %129 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %94, <4 x double> %_224.sroa.0.0.copyload.i.i, <4 x double> %128) #23 %_226.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %130 = shufflevector <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %131 = fmul <4 x double> %97, %130 %132 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %_226.sroa.0.0.copyload.i.i, <4 x double> %131) #23 %_228.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %133 = shufflevector <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %99, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %98, <4 x double> %_228.sroa.0.0.copyload.i.i, <4 x double> %134) #23 %_230.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %136 = shufflevector <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %101, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_230.sroa.0.0.copyload.i.i, <4 x double> %137) #23 %_232.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %139 = shufflevector <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %103, %139 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %102, <4 x double> %_232.sroa.0.0.copyload.i.i, <4 x double> %140) #23 %_234.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %142 = shufflevector <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %105, %142 %144 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %104, <4 x double> %_234.sroa.0.0.copyload.i.i, <4 x double> %143) #23 %_236.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %145 = shufflevector <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %146 = fmul <4 x double> %107, %145 %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_236.sroa.0.0.copyload.i.i, <4 x double> %146) #23 %_238.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %148 = shufflevector <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %149 = fmul <4 x double> %109, %148 %150 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %108, <4 x double> %_238.sroa.0.0.copyload.i.i, <4 x double> %149) #23 %_240.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %151 = shufflevector <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %152 = fmul <4 x double> %111, %151 %153 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %110, <4 x double> %_240.sroa.0.0.copyload.i.i, <4 x double> %152) #23 %_242.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %154 = shufflevector <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %155 = fmul <4 x double> %113, %154 %156 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %112, <4 x double> %_242.sroa.0.0.copyload.i.i, <4 x double> %155) #23 %_244.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %157 = shufflevector <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %158 = fmul <4 x double> %115, %157 %159 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %114, <4 x double> %_244.sroa.0.0.copyload.i.i, <4 x double> %158) #23 %_246.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %160 = shufflevector <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %117, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %116, <4 x double> %_246.sroa.0.0.copyload.i.i, <4 x double> %161) #23 %_248.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i78.i.i.i.i.i, align 8, !alias.scope !5491, !noalias !5496 %163 = shufflevector <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %119, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_248.sroa.0.0.copyload.i.i, <4 x double> %164) #23 %166 = fadd <4 x double> %y0.sroa.0.0.copyload.i.i, %144 %167 = fsub <4 x double> %y0.sroa.0.0.copyload.i.i, %144 %168 = fadd <4 x double> %132, %156 %169 = fsub <4 x double> %132, %156 %170 = fadd <4 x double> %126, %150 %171 = fsub <4 x double> %126, %150 %172 = fadd <4 x double> %138, %162 %173 = fsub <4 x double> %138, %162 %174 = fadd <4 x double> %123, %147 %175 = fsub <4 x double> %123, %147 %176 = fadd <4 x double> %135, %159 %177 = fsub <4 x double> %135, %159 %178 = fadd <4 x double> %129, %153 %179 = fsub <4 x double> %129, %153 %180 = fadd <4 x double> %141, %165 %181 = fsub <4 x double> %141, %165 %182 = bitcast <4 x double> %169 to <4 x i64> %183 = bitcast <4 x double> %173 to <4 x i64> %184 = bitcast <4 x double> %177 to <4 x i64> %185 = bitcast <4 x double> %181 to <4 x i64> %186 = xor <4 x i64> %182, %187 = bitcast <4 x i64> %186 to <4 x double> %188 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> %189 = xor <4 x i64> %183, %190 = bitcast <4 x i64> %189 to <4 x double> %191 = shufflevector <4 x double> %190, <4 x double> poison, <4 x i32> %192 = xor <4 x i64> %184, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = xor <4 x i64> %185, %196 = bitcast <4 x i64> %195 to <4 x double> %197 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> %198 = fadd <4 x double> %166, %168 %199 = fsub <4 x double> %167, %188 %200 = fsub <4 x double> %166, %168 %201 = fadd <4 x double> %167, %188 %202 = fadd <4 x double> %170, %172 %203 = fsub <4 x double> %171, %191 %204 = fsub <4 x double> %170, %172 %205 = fadd <4 x double> %171, %191 %206 = fadd <4 x double> %174, %176 %207 = fsub <4 x double> %175, %194 %208 = fsub <4 x double> %174, %176 %209 = fadd <4 x double> %175, %194 %210 = fadd <4 x double> %178, %180 %211 = fsub <4 x double> %179, %197 %212 = fsub <4 x double> %178, %180 %213 = fadd <4 x double> %179, %197 %214 = bitcast <4 x double> %203 to <4 x i64> %215 = xor <4 x i64> %214, %216 = bitcast <4 x i64> %215 to <4 x double> %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = fadd <4 x double> %203, %217 %219 = fmul <4 x double> %218, %220 = bitcast <4 x double> %204 to <4 x i64> %221 = xor <4 x i64> %220, %222 = bitcast <4 x i64> %221 to <4 x double> %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = bitcast <4 x double> %205 to <4 x i64> %225 = xor <4 x i64> %224, %226 = bitcast <4 x i64> %225 to <4 x double> %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = fadd <4 x double> %205, %227 %229 = fmul <4 x double> %228, %230 = fadd <4 x double> %198, %202 %231 = fadd <4 x double> %199, %219 %232 = fsub <4 x double> %200, %223 %233 = fsub <4 x double> %201, %229 %234 = fsub <4 x double> %198, %202 %235 = fsub <4 x double> %199, %219 %236 = fadd <4 x double> %200, %223 %237 = fadd <4 x double> %201, %229 %238 = bitcast <4 x double> %211 to <4 x i64> %239 = xor <4 x i64> %238, %240 = bitcast <4 x i64> %239 to <4 x double> %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = fadd <4 x double> %211, %241 %243 = fmul <4 x double> %242, %244 = bitcast <4 x double> %212 to <4 x i64> %245 = xor <4 x i64> %244, %246 = bitcast <4 x i64> %245 to <4 x double> %247 = shufflevector <4 x double> %246, <4 x double> poison, <4 x i32> %248 = bitcast <4 x double> %213 to <4 x i64> %249 = xor <4 x i64> %248, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fadd <4 x double> %213, %251 %253 = fmul <4 x double> %252, %254 = fadd <4 x double> %206, %210 %255 = fadd <4 x double> %207, %243 %256 = fsub <4 x double> %208, %247 %257 = fsub <4 x double> %209, %253 %258 = fsub <4 x double> %206, %210 %259 = fsub <4 x double> %207, %243 %260 = fadd <4 x double> %208, %247 %261 = fadd <4 x double> %209, %253 %262 = fadd <4 x double> %230, %254 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %263 = fsub <4 x double> %230, %254 store <4 x double> %263, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %264 = fmul <4 x double> %255, %265 = shufflevector <4 x double> %264, <4 x double> poison, <4 x i32> %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %255, <4 x double> %265) #23 %267 = fadd <4 x double> %266, %231 store <4 x double> %267, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %268 = fsub <4 x double> %231, %266 store <4 x double> %268, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %269 = bitcast <4 x double> %256 to <4 x i64> %270 = xor <4 x i64> %269, %271 = bitcast <4 x i64> %270 to <4 x double> %272 = shufflevector <4 x double> %271, <4 x double> poison, <4 x i32> %273 = fadd <4 x double> %256, %272 %274 = fmul <4 x double> %273, %275 = fadd <4 x double> %232, %274 store <4 x double> %275, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %276 = fsub <4 x double> %232, %274 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %277 = fmul <4 x double> %257, %278 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> %279 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %257, <4 x double> %278) #23 %280 = bitcast <4 x double> %258 to <4 x i64> %281 = xor <4 x i64> %280, %282 = bitcast <4 x i64> %281 to <4 x double> %283 = shufflevector <4 x double> %282, <4 x double> poison, <4 x i32> %284 = fmul <4 x double> %259, %285 = shufflevector <4 x double> %284, <4 x double> poison, <4 x i32> %286 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %259, <4 x double> %285) #23 %.sink.i18.i = fadd <4 x double> %234, %283 %.sink6030.i.i = fsub <4 x double> %234, %283 %.sink6031.i.i = fsub <4 x double> %233, %279 %.sink6032.i.i = fadd <4 x double> %279, %233 store <4 x double> %.sink6032.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 store <4 x double> %.sink6031.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 store <4 x double> %.sink6030.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 store <4 x double> %.sink.i18.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %287 = fsub <4 x double> %235, %286 store <4 x double> %287, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %288 = fadd <4 x double> %286, %235 store <4 x double> %288, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %289 = bitcast <4 x double> %260 to <4 x i64> %290 = xor <4 x i64> %289, %291 = bitcast <4 x i64> %290 to <4 x double> %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = fmul <4 x double> %261, %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %261, <4 x double> %294) #23 %.pn6038.in.i.i = fadd <4 x double> %260, %292 %.pn6038.i.i = fmul <4 x double> %.pn6038.in.i.i, %.sink6033.i.i = fadd <4 x double> %236, %.pn6038.i.i %.sink6034.i.i = fsub <4 x double> %236, %.pn6038.i.i store <4 x double> %.sink6034.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 store <4 x double> %.sink6033.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %296 = fsub <4 x double> %237, %295 store <4 x double> %296, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %297 = fadd <4 x double> %237, %295 store <4 x double> %297, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5488, !noalias !5497 %exitcond.not.i.i = icmp eq i64 %120, 8 br i1 %exitcond.not.i.i, label %bb44.loopexit.i.i, label %bb98.i.i _ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i: ; preds = %bb44.loopexit.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5498) tail call void @llvm.experimental.noalias.scope.decl(metadata !5501) tail call void @llvm.experimental.noalias.scope.decl(metadata !5503) %298 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %299 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %300 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %301 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %302 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %303 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %304 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %305 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %306 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 144 %308 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 176 %309 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %310 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 208 %311 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 240 %312 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %313 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %314 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %315 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %316 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %317 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %318 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %319 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %320 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %321 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %322 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 144 %323 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 176 %324 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 %325 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 208 %326 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 240 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i %iter.sroa.218.05279.i.i = phi i64 [ %327, %bb39.i.i ], [ 0, %_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE.exit.i ] %327 = add nuw nsw i64 %iter.sroa.218.05279.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %300, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %299, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %301, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %298, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %303, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %302, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %304, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30.i = getelementptr inbounds %"fft_simd::c64x2", ptr %307, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31.i = getelementptr inbounds %"fft_simd::c64x2", ptr %306, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32.i = getelementptr inbounds %"fft_simd::c64x2", ptr %308, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i = getelementptr inbounds %"fft_simd::c64x2", ptr %305, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34.i = getelementptr inbounds %"fft_simd::c64x2", ptr %310, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i35.i = getelementptr inbounds %"fft_simd::c64x2", ptr %309, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i36.i = getelementptr inbounds %"fft_simd::c64x2", ptr %311, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %315, i64 %iter.sroa.218.05279.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %314, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %316, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %313, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %318, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %317, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %319, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %312, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %322, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %321, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %323, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %320, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %325, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %324, i64 %iter.sroa.218.05279.i.i %_3.i.i.i.i.i.i.i.i.i37.i = getelementptr inbounds %"fft_simd::c64x2", ptr %326, i64 %iter.sroa.218.05279.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5503, !noalias !5505 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i37.i, align 8, !alias.scope !5503, !noalias !5505 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5501, !noalias !5506 %328 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %328, align 8, !alias.scope !5501, !noalias !5506 %329 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %329, align 8, !alias.scope !5501, !noalias !5506 %330 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %330, align 8, !alias.scope !5501, !noalias !5506 %331 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 4 %ij_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %331, align 8, !alias.scope !5501, !noalias !5506 %332 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 5 %kl_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %332, align 8, !alias.scope !5501, !noalias !5506 %333 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 6 %mn_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %333, align 8, !alias.scope !5501, !noalias !5506 %334 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 7 %op_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %334, align 8, !alias.scope !5501, !noalias !5506 %335 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 8 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %335, align 8, !alias.scope !5501, !noalias !5506 %336 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 9 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %336, align 8, !alias.scope !5501, !noalias !5506 %337 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 10 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %337, align 8, !alias.scope !5501, !noalias !5506 %338 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 11 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %338, align 8, !alias.scope !5501, !noalias !5506 %339 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 12 %ij_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %339, align 8, !alias.scope !5501, !noalias !5506 %340 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 13 %kl_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %340, align 8, !alias.scope !5501, !noalias !5506 %341 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 14 %mn_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %341, align 8, !alias.scope !5501, !noalias !5506 %342 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05279.i.i, i64 15 %op_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %342, align 8, !alias.scope !5501, !noalias !5506 %343 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %344 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %345 = shufflevector <4 x double> %344, <4 x double> poison, <4 x i32> %346 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %347 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %348 = fmul <4 x double> %347, %345 %349 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %346, <4 x double> %344, <4 x double> %348) #23 %350 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %351 = shufflevector <4 x double> %350, <4 x double> poison, <4 x i32> %352 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %353 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %354 = fmul <4 x double> %353, %351 %355 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %352, <4 x double> %350, <4 x double> %354) #23 %356 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %357 = shufflevector <4 x double> %356, <4 x double> poison, <4 x i32> %358 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %359 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %360 = fmul <4 x double> %359, %357 %361 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %358, <4 x double> %356, <4 x double> %360) #23 %362 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %363 = shufflevector <4 x double> %362, <4 x double> poison, <4 x i32> %364 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %365 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %366 = fmul <4 x double> %365, %363 %367 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %364, <4 x double> %362, <4 x double> %366) #23 %368 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %369 = shufflevector <4 x double> %368, <4 x double> poison, <4 x i32> %370 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %371 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %372 = fmul <4 x double> %371, %369 %373 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %370, <4 x double> %368, <4 x double> %372) #23 %374 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %375 = shufflevector <4 x double> %374, <4 x double> poison, <4 x i32> %376 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %377 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %378 = fmul <4 x double> %377, %375 %379 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %376, <4 x double> %374, <4 x double> %378) #23 %380 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %381 = shufflevector <4 x double> %380, <4 x double> poison, <4 x i32> %382 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %383 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %384 = fmul <4 x double> %383, %381 %385 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %382, <4 x double> %380, <4 x double> %384) #23 %386 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %387 = shufflevector <4 x double> %386, <4 x double> poison, <4 x i32> %388 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %389 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %390 = fmul <4 x double> %389, %387 %391 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %388, <4 x double> %386, <4 x double> %390) #23 %392 = shufflevector <4 x double> %ij_0.sroa.0.0.copyload.i.i, <4 x double> %ij_1.sroa.0.0.copyload.i.i, <4 x i32> %393 = shufflevector <4 x double> %392, <4 x double> poison, <4 x i32> %394 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %395 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %396 = fmul <4 x double> %395, %393 %397 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %394, <4 x double> %392, <4 x double> %396) #23 %398 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %399 = shufflevector <4 x double> %398, <4 x double> poison, <4 x i32> %400 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %401 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %402 = fmul <4 x double> %401, %399 %403 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %400, <4 x double> %398, <4 x double> %402) #23 %404 = shufflevector <4 x double> %kl_0.sroa.0.0.copyload.i.i, <4 x double> %kl_1.sroa.0.0.copyload.i.i, <4 x i32> %405 = shufflevector <4 x double> %404, <4 x double> poison, <4 x i32> %406 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %407 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %408 = fmul <4 x double> %407, %405 %409 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %406, <4 x double> %404, <4 x double> %408) #23 %410 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %411 = shufflevector <4 x double> %410, <4 x double> poison, <4 x i32> %412 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %413 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %414 = fmul <4 x double> %413, %411 %415 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %412, <4 x double> %410, <4 x double> %414) #23 %416 = shufflevector <4 x double> %mn_0.sroa.0.0.copyload.i.i, <4 x double> %mn_1.sroa.0.0.copyload.i.i, <4 x i32> %417 = shufflevector <4 x double> %416, <4 x double> poison, <4 x i32> %418 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %419 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %420 = fmul <4 x double> %419, %417 %421 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %418, <4 x double> %416, <4 x double> %420) #23 %422 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %423 = shufflevector <4 x double> %422, <4 x double> poison, <4 x i32> %424 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %425 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %426 = fmul <4 x double> %425, %423 %427 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %424, <4 x double> %422, <4 x double> %426) #23 %428 = shufflevector <4 x double> %op_0.sroa.0.0.copyload.i.i, <4 x double> %op_1.sroa.0.0.copyload.i.i, <4 x i32> %429 = shufflevector <4 x double> %428, <4 x double> poison, <4 x i32> %430 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %431 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %432 = fmul <4 x double> %431, %429 %433 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %430, <4 x double> %428, <4 x double> %432) #23 %434 = fadd <4 x double> %343, %391 %435 = fsub <4 x double> %343, %391 %436 = fadd <4 x double> %367, %415 %437 = fsub <4 x double> %367, %415 %438 = fadd <4 x double> %355, %403 %439 = fsub <4 x double> %355, %403 %440 = fadd <4 x double> %379, %427 %441 = fsub <4 x double> %379, %427 %442 = fadd <4 x double> %349, %397 %443 = fsub <4 x double> %349, %397 %444 = fadd <4 x double> %373, %421 %445 = fsub <4 x double> %373, %421 %446 = fadd <4 x double> %361, %409 %447 = fsub <4 x double> %361, %409 %448 = fadd <4 x double> %385, %433 %449 = fsub <4 x double> %385, %433 %450 = bitcast <4 x double> %437 to <4 x i64> %451 = bitcast <4 x double> %441 to <4 x i64> %452 = bitcast <4 x double> %445 to <4 x i64> %453 = bitcast <4 x double> %449 to <4 x i64> %454 = xor <4 x i64> %450, %455 = bitcast <4 x i64> %454 to <4 x double> %456 = shufflevector <4 x double> %455, <4 x double> poison, <4 x i32> %457 = xor <4 x i64> %451, %458 = bitcast <4 x i64> %457 to <4 x double> %459 = shufflevector <4 x double> %458, <4 x double> poison, <4 x i32> %460 = xor <4 x i64> %452, %461 = bitcast <4 x i64> %460 to <4 x double> %462 = shufflevector <4 x double> %461, <4 x double> poison, <4 x i32> %463 = xor <4 x i64> %453, %464 = bitcast <4 x i64> %463 to <4 x double> %465 = shufflevector <4 x double> %464, <4 x double> poison, <4 x i32> %466 = fadd <4 x double> %434, %436 %467 = fsub <4 x double> %435, %456 %468 = fsub <4 x double> %434, %436 %469 = fadd <4 x double> %435, %456 %470 = fadd <4 x double> %438, %440 %471 = fsub <4 x double> %439, %459 %472 = fsub <4 x double> %438, %440 %473 = fadd <4 x double> %439, %459 %474 = fadd <4 x double> %442, %444 %475 = fsub <4 x double> %443, %462 %476 = fsub <4 x double> %442, %444 %477 = fadd <4 x double> %443, %462 %478 = fadd <4 x double> %446, %448 %479 = fsub <4 x double> %447, %465 %480 = fsub <4 x double> %446, %448 %481 = fadd <4 x double> %447, %465 %482 = bitcast <4 x double> %471 to <4 x i64> %483 = xor <4 x i64> %482, %484 = bitcast <4 x i64> %483 to <4 x double> %485 = shufflevector <4 x double> %484, <4 x double> poison, <4 x i32> %486 = fadd <4 x double> %471, %485 %487 = fmul <4 x double> %486, %488 = bitcast <4 x double> %472 to <4 x i64> %489 = xor <4 x i64> %488, %490 = bitcast <4 x i64> %489 to <4 x double> %491 = shufflevector <4 x double> %490, <4 x double> poison, <4 x i32> %492 = bitcast <4 x double> %473 to <4 x i64> %493 = xor <4 x i64> %492, %494 = bitcast <4 x i64> %493 to <4 x double> %495 = shufflevector <4 x double> %494, <4 x double> poison, <4 x i32> %496 = fadd <4 x double> %473, %495 %497 = fmul <4 x double> %496, %498 = fadd <4 x double> %466, %470 %499 = fadd <4 x double> %467, %487 %500 = fsub <4 x double> %468, %491 %501 = fsub <4 x double> %469, %497 %502 = fsub <4 x double> %466, %470 %503 = fsub <4 x double> %467, %487 %504 = fadd <4 x double> %468, %491 %505 = fadd <4 x double> %469, %497 %506 = bitcast <4 x double> %479 to <4 x i64> %507 = xor <4 x i64> %506, %508 = bitcast <4 x i64> %507 to <4 x double> %509 = shufflevector <4 x double> %508, <4 x double> poison, <4 x i32> %510 = fadd <4 x double> %479, %509 %511 = fmul <4 x double> %510, %512 = bitcast <4 x double> %480 to <4 x i64> %513 = xor <4 x i64> %512, %514 = bitcast <4 x i64> %513 to <4 x double> %515 = shufflevector <4 x double> %514, <4 x double> poison, <4 x i32> %516 = bitcast <4 x double> %481 to <4 x i64> %517 = xor <4 x i64> %516, %518 = bitcast <4 x i64> %517 to <4 x double> %519 = shufflevector <4 x double> %518, <4 x double> poison, <4 x i32> %520 = fadd <4 x double> %481, %519 %521 = fmul <4 x double> %520, %522 = fadd <4 x double> %474, %478 %523 = fadd <4 x double> %475, %511 %524 = fsub <4 x double> %476, %515 %525 = fsub <4 x double> %477, %521 %526 = fsub <4 x double> %474, %478 %527 = fsub <4 x double> %475, %511 %528 = fadd <4 x double> %476, %515 %529 = fadd <4 x double> %477, %521 %530 = fadd <4 x double> %498, %522 store <4 x double> %530, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5498, !noalias !5507 %531 = fsub <4 x double> %498, %522 store <4 x double> %531, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !5498, !noalias !5507 %532 = fmul <4 x double> %523, %533 = shufflevector <4 x double> %532, <4 x double> poison, <4 x i32> %534 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %523, <4 x double> %533) #23 %535 = fadd <4 x double> %534, %499 store <4 x double> %535, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5498, !noalias !5507 %536 = fsub <4 x double> %499, %534 store <4 x double> %536, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i30.i, align 8, !alias.scope !5498, !noalias !5507 %537 = bitcast <4 x double> %524 to <4 x i64> %538 = xor <4 x i64> %537, %539 = bitcast <4 x i64> %538 to <4 x double> %540 = shufflevector <4 x double> %539, <4 x double> poison, <4 x i32> %541 = fadd <4 x double> %524, %540 %542 = fmul <4 x double> %541, %543 = fadd <4 x double> %500, %542 store <4 x double> %543, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !5498, !noalias !5507 %544 = fsub <4 x double> %500, %542 store <4 x double> %544, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i31.i, align 8, !alias.scope !5498, !noalias !5507 %545 = fmul <4 x double> %525, %546 = shufflevector <4 x double> %545, <4 x double> poison, <4 x i32> %547 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %525, <4 x double> %546) #23 %548 = bitcast <4 x double> %526 to <4 x i64> %549 = xor <4 x i64> %548, %550 = bitcast <4 x i64> %549 to <4 x double> %551 = shufflevector <4 x double> %550, <4 x double> poison, <4 x i32> %552 = fmul <4 x double> %527, %553 = shufflevector <4 x double> %552, <4 x double> poison, <4 x i32> %554 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %527, <4 x double> %553) #23 %.sink.i38.i = fadd <4 x double> %502, %551 %.sink5280.i.i = fsub <4 x double> %502, %551 %.sink5281.i.i = fsub <4 x double> %501, %547 %.sink5282.i.i = fadd <4 x double> %547, %501 store <4 x double> %.sink5282.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !5498, !noalias !5507 store <4 x double> %.sink5281.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i32.i, align 8, !alias.scope !5498, !noalias !5507 store <4 x double> %.sink5280.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !5498, !noalias !5507 store <4 x double> %.sink.i38.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i, align 8, !alias.scope !5498, !noalias !5507 %555 = fsub <4 x double> %503, %554 store <4 x double> %555, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !5498, !noalias !5507 %556 = fadd <4 x double> %554, %503 store <4 x double> %556, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i34.i, align 8, !alias.scope !5498, !noalias !5507 %557 = bitcast <4 x double> %528 to <4 x i64> %558 = xor <4 x i64> %557, %559 = bitcast <4 x i64> %558 to <4 x double> %560 = shufflevector <4 x double> %559, <4 x double> poison, <4 x i32> %561 = fmul <4 x double> %529, %562 = shufflevector <4 x double> %561, <4 x double> poison, <4 x i32> %563 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %529, <4 x double> %562) #23 %.pn5288.in.i.i = fadd <4 x double> %528, %560 %.pn5288.i.i = fmul <4 x double> %.pn5288.in.i.i, %.sink5283.i.i = fadd <4 x double> %504, %.pn5288.i.i %.sink5284.i.i = fsub <4 x double> %504, %.pn5288.i.i store <4 x double> %.sink5284.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !5498, !noalias !5507 store <4 x double> %.sink5283.i.i, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i35.i, align 8, !alias.scope !5498, !noalias !5507 %564 = fsub <4 x double> %505, %563 store <4 x double> %564, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !5498, !noalias !5507 %565 = fadd <4 x double> %505, %563 store <4 x double> %565, ptr %_3.i.i.i.i.i.i.i.i.i.i.i36.i, align 8, !alias.scope !5498, !noalias !5507 %exitcond.not.i39.i = icmp eq i64 %327, 16 br i1 %exitcond.not.i39.i, label %_ZN4pulp3x862V39vectorize6__impl17hf562486948d9b48eE.exit, label %bb39.i.i _ZN4pulp3x862V39vectorize6__impl17hf562486948d9b48eE.exit: ; preds = %bb39.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5483 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he697cbc907661bbbE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull writeonly align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5508 store i64 4, ptr %n.i.i, align 8, !noalias !5508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5508 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5508 %_12.i.i = icmp eq i64 %buf.1, 4 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5508 store ptr null, ptr %_16.i.i, align 8, !noalias !5508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5508 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5508 %_20.i.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5508 store ptr null, ptr %_24.i.i, align 8, !noalias !5508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5508 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5508 %_28.i.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5508 store ptr null, ptr %_32.i.i, align 8, !noalias !5508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5508 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5508 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5508 %_36.i.i = icmp eq i64 %w.1, 4 br i1 %_36.i.i, label %_ZN4pulp3x862V39vectorize6__impl17h5cf070537c688668E.exit, label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5508 store ptr null, ptr %_40.i.i, align 8, !noalias !5508 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4pulp3x862V39vectorize6__impl17h5cf070537c688668E.exit: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5508 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 1 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 1 %_51.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %buf.0, align 8, !noalias !5513 %_52.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %2, align 8, !noalias !5513 %4 = fadd <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_51.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %scratch.0, align 8, !noalias !5513 store <4 x double> %5, ptr %3, align 8, !noalias !5513 tail call void @llvm.experimental.noalias.scope.decl(metadata !5517) tail call void @llvm.experimental.noalias.scope.decl(metadata !5520) %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 1 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %6, align 8, !alias.scope !5520, !noalias !5522 %7 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %8 = shufflevector <4 x double> %4, <4 x double> %5, <4 x i32> %9 = shufflevector <4 x double> %8, <4 x double> poison, <4 x i32> %10 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %11 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %12 = fmul <4 x double> %9, %11 %13 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %10, <4 x double> %8, <4 x double> %12) #23 %14 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %buf.0, align 8, !alias.scope !5517, !noalias !5524 %15 = fsub <4 x double> %7, %13 store <4 x double> %15, ptr %2, align 8, !alias.scope !5517, !noalias !5524 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5508 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he7198309d3772d3cE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5525 store i64 1024, ptr %n.i, align 8, !noalias !5525 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5525 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5525 %_12.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5525 store ptr null, ptr %_16.i, align 8, !noalias !5525 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5525 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5525 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5525 %_20.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5525 store ptr null, ptr %_24.i, align 8, !noalias !5525 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5525 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5525 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5525 %_28.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5525 store ptr null, ptr %_32.i, align 8, !noalias !5525 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5525 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5525 store i64 %w.1, ptr %_34.i, align 8, !noalias !5525 %_36.i = icmp eq i64 %w.1, 1024 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b7f02898b452865E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5525 store ptr null, ptr %_40.i, align 8, !noalias !5525 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b7f02898b452865E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5525 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 512 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 256 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 768 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b7f02898b452865E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b7f02898b452865E.exit" ], [ %index.next, %vector.body ] %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %4 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %5 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %6 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %wide.vec = load <8 x double>, ptr %3, align 8, !noalias !5525 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %4, align 8, !noalias !5525 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %5, align 8, !noalias !5525 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %6, align 8, !noalias !5525 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %7 = fadd <4 x double> %strided.vec, %strided.vec6 %8 = fadd <4 x double> %strided.vec1, %strided.vec7 %9 = fsub <4 x double> %strided.vec, %strided.vec6 %10 = fsub <4 x double> %strided.vec1, %strided.vec7 %11 = fadd <4 x double> %strided.vec3, %strided.vec9 %12 = fadd <4 x double> %strided.vec4, %strided.vec10 %13 = fsub <4 x double> %strided.vec3, %strided.vec9 %14 = fsub <4 x double> %strided.vec4, %strided.vec10 %15 = fadd <4 x double> %7, %11 %16 = fadd <4 x double> %8, %12 %17 = fsub <4 x double> %9, %14 %18 = fadd <4 x double> %10, %13 %19 = fsub <4 x double> %7, %11 %20 = fsub <4 x double> %8, %12 %21 = fadd <4 x double> %9, %14 %22 = fsub <4 x double> %10, %13 %interleaved.vec = shufflevector <4 x double> %15, <4 x double> %16, <8 x i32> store <8 x double> %interleaved.vec, ptr %3, align 8, !noalias !5525 %interleaved.vec11 = shufflevector <4 x double> %17, <4 x double> %18, <8 x i32> store <8 x double> %interleaved.vec11, ptr %4, align 8, !noalias !5525 %interleaved.vec12 = shufflevector <4 x double> %19, <4 x double> %20, <8 x i32> store <8 x double> %interleaved.vec12, ptr %5, align 8, !noalias !5525 %interleaved.vec13 = shufflevector <4 x double> %21, <4 x double> %22, <8 x i32> store <8 x double> %interleaved.vec13, ptr %6, align 8, !noalias !5525 %index.next = add nuw i64 %index, 4 %23 = icmp eq i64 %index.next, 256 br i1 %23, label %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, label %vector.body, !llvm.loop !5528 _ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit: ; preds = %vector.body %24 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 512 %25 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 256 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %27 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %28 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %29 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 384 %30 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 320 %31 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 448 %32 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 768 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 640 %34 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 576 %35 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 704 %36 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 896 %37 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 832 %38 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 960 br label %bb48.i.i.i.i bb48.i.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit, %middle.block14 %iter.i.i.i.i.sroa.208.0219 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h479e9fbebc635d9aE.exit ], [ %345, %middle.block14 ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0219, 4 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.208.0219, 8 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %38, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %36, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %37, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %32, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %35, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %33, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %34, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %24, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %31, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %29, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %30, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %25, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %28, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %27, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %39 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 128 %40 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 64 %41 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %42 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %43 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %44 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 96 %45 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 80 %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 112 %47 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 192 %48 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 160 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 144 %50 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 176 %51 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 224 %52 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 208 %53 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 240 %54 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15, i32 1 %wf.1.i.i.i.i = load double, ptr %54, align 8, !noalias !5525, !noundef !3 %_6.i483.i.i.i.i = fneg double %wf.1.i.i.i.i %55 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14, i32 1 %we.1.i.i.i.i = load double, ptr %55, align 8, !noalias !5525, !noundef !3 %_6.i486.i.i.i.i = fneg double %we.1.i.i.i.i %56 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13, i32 1 %wd.1.i.i.i.i = load double, ptr %56, align 8, !noalias !5525, !noundef !3 %_6.i489.i.i.i.i = fneg double %wd.1.i.i.i.i %57 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12, i32 1 %wc.1.i.i.i.i = load double, ptr %57, align 8, !noalias !5525, !noundef !3 %_6.i492.i.i.i.i = fneg double %wc.1.i.i.i.i %58 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11, i32 1 %wb.1.i.i.i.i = load double, ptr %58, align 8, !noalias !5525, !noundef !3 %_6.i495.i.i.i.i = fneg double %wb.1.i.i.i.i %59 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10, i32 1 %wa.1.i.i.i.i = load double, ptr %59, align 8, !noalias !5525, !noundef !3 %_6.i498.i.i.i.i = fneg double %wa.1.i.i.i.i %60 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9, i32 1 %w9.1.i.i.i.i = load double, ptr %60, align 8, !noalias !5525, !noundef !3 %_6.i501.i.i.i.i = fneg double %w9.1.i.i.i.i %61 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8, i32 1 %w8.1.i.i.i.i = load double, ptr %61, align 8, !noalias !5525, !noundef !3 %_6.i504.i.i.i.i = fneg double %w8.1.i.i.i.i %62 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i.i.i = load double, ptr %62, align 8, !noalias !5525, !noundef !3 %_6.i507.i.i.i.i = fneg double %w7.1.i.i.i.i %63 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i.i.i = load double, ptr %63, align 8, !noalias !5525, !noundef !3 %_6.i510.i.i.i.i = fneg double %w6.1.i.i.i.i %64 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i.i.i = load double, ptr %64, align 8, !noalias !5525, !noundef !3 %_6.i513.i.i.i.i = fneg double %w5.1.i.i.i.i %65 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i.i.i = load double, ptr %65, align 8, !noalias !5525, !noundef !3 %_6.i516.i.i.i.i = fneg double %w4.1.i.i.i.i %66 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %66, align 8, !noalias !5525, !noundef !3 %_6.i519.i.i.i.i = fneg double %w3.1.i.i.i.i %67 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %67, align 8, !noalias !5525, !noundef !3 %_6.i522.i.i.i.i = fneg double %w2.1.i.i.i.i %68 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %68, align 8, !noalias !5525, !noundef !3 %_6.i525.i.i.i.i = fneg double %w1.1.i.i.i.i %69 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 15 %wf.0.i.i.i.i = load double, ptr %69, align 8, !noalias !5525, !noundef !3 %70 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 14 %we.0.i.i.i.i = load double, ptr %70, align 8, !noalias !5525, !noundef !3 %71 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 13 %wd.0.i.i.i.i = load double, ptr %71, align 8, !noalias !5525, !noundef !3 %72 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 12 %wc.0.i.i.i.i = load double, ptr %72, align 8, !noalias !5525, !noundef !3 %73 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 11 %wb.0.i.i.i.i = load double, ptr %73, align 8, !noalias !5525, !noundef !3 %74 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 10 %wa.0.i.i.i.i = load double, ptr %74, align 8, !noalias !5525, !noundef !3 %75 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 9 %w9.0.i.i.i.i = load double, ptr %75, align 8, !noalias !5525, !noundef !3 %76 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %w8.0.i.i.i.i = load double, ptr %76, align 8, !noalias !5525, !noundef !3 %77 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 7 %w7.0.i.i.i.i = load double, ptr %77, align 8, !noalias !5525, !noundef !3 %78 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 6 %w6.0.i.i.i.i = load double, ptr %78, align 8, !noalias !5525, !noundef !3 %79 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 5 %w5.0.i.i.i.i = load double, ptr %79, align 8, !noalias !5525, !noundef !3 %80 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %w4.0.i.i.i.i = load double, ptr %80, align 8, !noalias !5525, !noundef !3 %81 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %81, align 8, !noalias !5525, !noundef !3 %82 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %82, align 8, !noalias !5525, !noundef !3 %83 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %83, align 8, !noalias !5525, !noundef !3 %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i525.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i522.i.i.i.i, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i519.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert51 = insertelement <4 x double> poison, double %_6.i516.i.i.i.i, i64 0 %broadcast.splat52 = shufflevector <4 x double> %broadcast.splatinsert51, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert53 = insertelement <4 x double> poison, double %w4.0.i.i.i.i, i64 0 %broadcast.splat54 = shufflevector <4 x double> %broadcast.splatinsert53, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert55 = insertelement <4 x double> poison, double %w4.1.i.i.i.i, i64 0 %broadcast.splat56 = shufflevector <4 x double> %broadcast.splatinsert55, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert60 = insertelement <4 x double> poison, double %_6.i513.i.i.i.i, i64 0 %broadcast.splat61 = shufflevector <4 x double> %broadcast.splatinsert60, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert62 = insertelement <4 x double> poison, double %w5.0.i.i.i.i, i64 0 %broadcast.splat63 = shufflevector <4 x double> %broadcast.splatinsert62, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert64 = insertelement <4 x double> poison, double %w5.1.i.i.i.i, i64 0 %broadcast.splat65 = shufflevector <4 x double> %broadcast.splatinsert64, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert69 = insertelement <4 x double> poison, double %_6.i510.i.i.i.i, i64 0 %broadcast.splat70 = shufflevector <4 x double> %broadcast.splatinsert69, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert71 = insertelement <4 x double> poison, double %w6.0.i.i.i.i, i64 0 %broadcast.splat72 = shufflevector <4 x double> %broadcast.splatinsert71, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert73 = insertelement <4 x double> poison, double %w6.1.i.i.i.i, i64 0 %broadcast.splat74 = shufflevector <4 x double> %broadcast.splatinsert73, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert78 = insertelement <4 x double> poison, double %_6.i507.i.i.i.i, i64 0 %broadcast.splat79 = shufflevector <4 x double> %broadcast.splatinsert78, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert80 = insertelement <4 x double> poison, double %w7.0.i.i.i.i, i64 0 %broadcast.splat81 = shufflevector <4 x double> %broadcast.splatinsert80, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert82 = insertelement <4 x double> poison, double %w7.1.i.i.i.i, i64 0 %broadcast.splat83 = shufflevector <4 x double> %broadcast.splatinsert82, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert87 = insertelement <4 x double> poison, double %_6.i504.i.i.i.i, i64 0 %broadcast.splat88 = shufflevector <4 x double> %broadcast.splatinsert87, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert89 = insertelement <4 x double> poison, double %w8.0.i.i.i.i, i64 0 %broadcast.splat90 = shufflevector <4 x double> %broadcast.splatinsert89, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert91 = insertelement <4 x double> poison, double %w8.1.i.i.i.i, i64 0 %broadcast.splat92 = shufflevector <4 x double> %broadcast.splatinsert91, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert96 = insertelement <4 x double> poison, double %_6.i501.i.i.i.i, i64 0 %broadcast.splat97 = shufflevector <4 x double> %broadcast.splatinsert96, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert98 = insertelement <4 x double> poison, double %w9.0.i.i.i.i, i64 0 %broadcast.splat99 = shufflevector <4 x double> %broadcast.splatinsert98, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert100 = insertelement <4 x double> poison, double %w9.1.i.i.i.i, i64 0 %broadcast.splat101 = shufflevector <4 x double> %broadcast.splatinsert100, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert105 = insertelement <4 x double> poison, double %_6.i498.i.i.i.i, i64 0 %broadcast.splat106 = shufflevector <4 x double> %broadcast.splatinsert105, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert107 = insertelement <4 x double> poison, double %wa.0.i.i.i.i, i64 0 %broadcast.splat108 = shufflevector <4 x double> %broadcast.splatinsert107, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert109 = insertelement <4 x double> poison, double %wa.1.i.i.i.i, i64 0 %broadcast.splat110 = shufflevector <4 x double> %broadcast.splatinsert109, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert114 = insertelement <4 x double> poison, double %_6.i495.i.i.i.i, i64 0 %broadcast.splat115 = shufflevector <4 x double> %broadcast.splatinsert114, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert116 = insertelement <4 x double> poison, double %wb.0.i.i.i.i, i64 0 %broadcast.splat117 = shufflevector <4 x double> %broadcast.splatinsert116, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert118 = insertelement <4 x double> poison, double %wb.1.i.i.i.i, i64 0 %broadcast.splat119 = shufflevector <4 x double> %broadcast.splatinsert118, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert123 = insertelement <4 x double> poison, double %_6.i492.i.i.i.i, i64 0 %broadcast.splat124 = shufflevector <4 x double> %broadcast.splatinsert123, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert125 = insertelement <4 x double> poison, double %wc.0.i.i.i.i, i64 0 %broadcast.splat126 = shufflevector <4 x double> %broadcast.splatinsert125, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert127 = insertelement <4 x double> poison, double %wc.1.i.i.i.i, i64 0 %broadcast.splat128 = shufflevector <4 x double> %broadcast.splatinsert127, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert132 = insertelement <4 x double> poison, double %_6.i489.i.i.i.i, i64 0 %broadcast.splat133 = shufflevector <4 x double> %broadcast.splatinsert132, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert134 = insertelement <4 x double> poison, double %wd.0.i.i.i.i, i64 0 %broadcast.splat135 = shufflevector <4 x double> %broadcast.splatinsert134, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert136 = insertelement <4 x double> poison, double %wd.1.i.i.i.i, i64 0 %broadcast.splat137 = shufflevector <4 x double> %broadcast.splatinsert136, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert141 = insertelement <4 x double> poison, double %_6.i486.i.i.i.i, i64 0 %broadcast.splat142 = shufflevector <4 x double> %broadcast.splatinsert141, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert143 = insertelement <4 x double> poison, double %we.0.i.i.i.i, i64 0 %broadcast.splat144 = shufflevector <4 x double> %broadcast.splatinsert143, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert145 = insertelement <4 x double> poison, double %we.1.i.i.i.i, i64 0 %broadcast.splat146 = shufflevector <4 x double> %broadcast.splatinsert145, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert150 = insertelement <4 x double> poison, double %_6.i483.i.i.i.i, i64 0 %broadcast.splat151 = shufflevector <4 x double> %broadcast.splatinsert150, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert152 = insertelement <4 x double> poison, double %wf.0.i.i.i.i, i64 0 %broadcast.splat153 = shufflevector <4 x double> %broadcast.splatinsert152, <4 x double> poison, <4 x i32> zeroinitializer %broadcast.splatinsert154 = insertelement <4 x double> poison, double %wf.1.i.i.i.i, i64 0 %broadcast.splat155 = shufflevector <4 x double> %broadcast.splatinsert154, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body18 vector.body18: ; preds = %vector.body18, %bb48.i.i.i.i %index19 = phi i64 [ 0, %bb48.i.i.i.i ], [ %index.next172, %vector.body18 ] %84 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 %index19 %85 = getelementptr inbounds %"num_complex::Complex", ptr %42, i64 %index19 %86 = getelementptr inbounds %"num_complex::Complex", ptr %41, i64 %index19 %87 = getelementptr inbounds %"num_complex::Complex", ptr %43, i64 %index19 %88 = getelementptr inbounds %"num_complex::Complex", ptr %40, i64 %index19 %89 = getelementptr inbounds %"num_complex::Complex", ptr %45, i64 %index19 %90 = getelementptr inbounds %"num_complex::Complex", ptr %44, i64 %index19 %91 = getelementptr inbounds %"num_complex::Complex", ptr %46, i64 %index19 %92 = getelementptr inbounds %"num_complex::Complex", ptr %39, i64 %index19 %93 = getelementptr inbounds %"num_complex::Complex", ptr %49, i64 %index19 %94 = getelementptr inbounds %"num_complex::Complex", ptr %48, i64 %index19 %95 = getelementptr inbounds %"num_complex::Complex", ptr %50, i64 %index19 %96 = getelementptr inbounds %"num_complex::Complex", ptr %47, i64 %index19 %97 = getelementptr inbounds %"num_complex::Complex", ptr %52, i64 %index19 %98 = getelementptr inbounds %"num_complex::Complex", ptr %51, i64 %index19 %99 = getelementptr inbounds %"num_complex::Complex", ptr %53, i64 %index19 %wide.vec20 = load <8 x double>, ptr %84, align 8, !noalias !5525 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %85, align 8, !noalias !5525 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %100 = fmul <4 x double> %strided.vec25, %broadcast.splat %101 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %100) %102 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %103 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %102) %wide.vec30 = load <8 x double>, ptr %86, align 8, !noalias !5525 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %104 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %105 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %104) %106 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %107 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %106) %wide.vec39 = load <8 x double>, ptr %87, align 8, !noalias !5525 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %108 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %109 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %108) %110 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %111 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %110) %wide.vec48 = load <8 x double>, ptr %88, align 8, !noalias !5525 %strided.vec49 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %strided.vec50 = shufflevector <8 x double> %wide.vec48, <8 x double> poison, <4 x i32> %112 = fmul <4 x double> %strided.vec50, %broadcast.splat52 %113 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec49, <4 x double> %112) %114 = fmul <4 x double> %broadcast.splat56, %strided.vec49 %115 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat54, <4 x double> %strided.vec50, <4 x double> %114) %wide.vec57 = load <8 x double>, ptr %89, align 8, !noalias !5525 %strided.vec58 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %strided.vec59 = shufflevector <8 x double> %wide.vec57, <8 x double> poison, <4 x i32> %116 = fmul <4 x double> %strided.vec59, %broadcast.splat61 %117 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec58, <4 x double> %116) %118 = fmul <4 x double> %broadcast.splat65, %strided.vec58 %119 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat63, <4 x double> %strided.vec59, <4 x double> %118) %wide.vec66 = load <8 x double>, ptr %90, align 8, !noalias !5525 %strided.vec67 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %strided.vec68 = shufflevector <8 x double> %wide.vec66, <8 x double> poison, <4 x i32> %120 = fmul <4 x double> %strided.vec68, %broadcast.splat70 %121 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec67, <4 x double> %120) %122 = fmul <4 x double> %broadcast.splat74, %strided.vec67 %123 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat72, <4 x double> %strided.vec68, <4 x double> %122) %wide.vec75 = load <8 x double>, ptr %91, align 8, !noalias !5525 %strided.vec76 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %strided.vec77 = shufflevector <8 x double> %wide.vec75, <8 x double> poison, <4 x i32> %124 = fmul <4 x double> %strided.vec77, %broadcast.splat79 %125 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec76, <4 x double> %124) %126 = fmul <4 x double> %broadcast.splat83, %strided.vec76 %127 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat81, <4 x double> %strided.vec77, <4 x double> %126) %wide.vec84 = load <8 x double>, ptr %92, align 8, !noalias !5525 %strided.vec85 = shufflevector <8 x double> %wide.vec84, <8 x double> poison, <4 x i32> %strided.vec86 = shufflevector <8 x double> %wide.vec84, <8 x double> poison, <4 x i32> %128 = fmul <4 x double> %strided.vec86, %broadcast.splat88 %129 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %strided.vec85, <4 x double> %128) %130 = fmul <4 x double> %broadcast.splat92, %strided.vec85 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat90, <4 x double> %strided.vec86, <4 x double> %130) %wide.vec93 = load <8 x double>, ptr %93, align 8, !noalias !5525 %strided.vec94 = shufflevector <8 x double> %wide.vec93, <8 x double> poison, <4 x i32> %strided.vec95 = shufflevector <8 x double> %wide.vec93, <8 x double> poison, <4 x i32> %132 = fmul <4 x double> %strided.vec95, %broadcast.splat97 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat99, <4 x double> %strided.vec94, <4 x double> %132) %134 = fmul <4 x double> %broadcast.splat101, %strided.vec94 %135 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat99, <4 x double> %strided.vec95, <4 x double> %134) %wide.vec102 = load <8 x double>, ptr %94, align 8, !noalias !5525 %strided.vec103 = shufflevector <8 x double> %wide.vec102, <8 x double> poison, <4 x i32> %strided.vec104 = shufflevector <8 x double> %wide.vec102, <8 x double> poison, <4 x i32> %136 = fmul <4 x double> %strided.vec104, %broadcast.splat106 %137 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat108, <4 x double> %strided.vec103, <4 x double> %136) %138 = fmul <4 x double> %broadcast.splat110, %strided.vec103 %139 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat108, <4 x double> %strided.vec104, <4 x double> %138) %wide.vec111 = load <8 x double>, ptr %95, align 8, !noalias !5525 %strided.vec112 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %strided.vec113 = shufflevector <8 x double> %wide.vec111, <8 x double> poison, <4 x i32> %140 = fmul <4 x double> %strided.vec113, %broadcast.splat115 %141 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat117, <4 x double> %strided.vec112, <4 x double> %140) %142 = fmul <4 x double> %broadcast.splat119, %strided.vec112 %143 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat117, <4 x double> %strided.vec113, <4 x double> %142) %wide.vec120 = load <8 x double>, ptr %96, align 8, !noalias !5525 %strided.vec121 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %strided.vec122 = shufflevector <8 x double> %wide.vec120, <8 x double> poison, <4 x i32> %144 = fmul <4 x double> %strided.vec122, %broadcast.splat124 %145 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat126, <4 x double> %strided.vec121, <4 x double> %144) %146 = fmul <4 x double> %broadcast.splat128, %strided.vec121 %147 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat126, <4 x double> %strided.vec122, <4 x double> %146) %wide.vec129 = load <8 x double>, ptr %97, align 8, !noalias !5525 %strided.vec130 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %strided.vec131 = shufflevector <8 x double> %wide.vec129, <8 x double> poison, <4 x i32> %148 = fmul <4 x double> %strided.vec131, %broadcast.splat133 %149 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat135, <4 x double> %strided.vec130, <4 x double> %148) %150 = fmul <4 x double> %broadcast.splat137, %strided.vec130 %151 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat135, <4 x double> %strided.vec131, <4 x double> %150) %wide.vec138 = load <8 x double>, ptr %98, align 8, !noalias !5525 %strided.vec139 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %strided.vec140 = shufflevector <8 x double> %wide.vec138, <8 x double> poison, <4 x i32> %152 = fmul <4 x double> %strided.vec140, %broadcast.splat142 %153 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat144, <4 x double> %strided.vec139, <4 x double> %152) %154 = fmul <4 x double> %broadcast.splat146, %strided.vec139 %155 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat144, <4 x double> %strided.vec140, <4 x double> %154) %wide.vec147 = load <8 x double>, ptr %99, align 8, !noalias !5525 %strided.vec148 = shufflevector <8 x double> %wide.vec147, <8 x double> poison, <4 x i32> %strided.vec149 = shufflevector <8 x double> %wide.vec147, <8 x double> poison, <4 x i32> %156 = fmul <4 x double> %strided.vec149, %broadcast.splat151 %157 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat153, <4 x double> %strided.vec148, <4 x double> %156) %158 = fmul <4 x double> %broadcast.splat155, %strided.vec148 %159 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat153, <4 x double> %strided.vec149, <4 x double> %158) %160 = fadd <4 x double> %strided.vec21, %129 %161 = fadd <4 x double> %strided.vec22, %131 %162 = fsub <4 x double> %strided.vec21, %129 %163 = fsub <4 x double> %strided.vec22, %131 %164 = fadd <4 x double> %113, %145 %165 = fadd <4 x double> %115, %147 %166 = fsub <4 x double> %113, %145 %167 = fsub <4 x double> %115, %147 %168 = fadd <4 x double> %105, %137 %169 = fadd <4 x double> %107, %139 %170 = fsub <4 x double> %105, %137 %171 = fsub <4 x double> %107, %139 %172 = fadd <4 x double> %121, %153 %173 = fadd <4 x double> %123, %155 %174 = fsub <4 x double> %121, %153 %175 = fsub <4 x double> %123, %155 %176 = fadd <4 x double> %101, %133 %177 = fadd <4 x double> %103, %135 %178 = fsub <4 x double> %101, %133 %179 = fsub <4 x double> %103, %135 %180 = fadd <4 x double> %117, %149 %181 = fadd <4 x double> %119, %151 %182 = fsub <4 x double> %117, %149 %183 = fsub <4 x double> %119, %151 %184 = fadd <4 x double> %109, %141 %185 = fadd <4 x double> %111, %143 %186 = fsub <4 x double> %109, %141 %187 = fsub <4 x double> %111, %143 %188 = fadd <4 x double> %125, %157 %189 = fadd <4 x double> %127, %159 %190 = fsub <4 x double> %125, %157 %191 = fsub <4 x double> %127, %159 %192 = fadd <4 x double> %160, %164 %193 = fadd <4 x double> %161, %165 %194 = fsub <4 x double> %162, %167 %195 = fadd <4 x double> %163, %166 %196 = fsub <4 x double> %160, %164 %197 = fsub <4 x double> %161, %165 %198 = fadd <4 x double> %162, %167 %199 = fsub <4 x double> %163, %166 %200 = fadd <4 x double> %168, %172 %201 = fadd <4 x double> %169, %173 %202 = fsub <4 x double> %170, %175 %203 = fadd <4 x double> %171, %174 %204 = fsub <4 x double> %168, %172 %205 = fsub <4 x double> %169, %173 %206 = fadd <4 x double> %170, %175 %207 = fsub <4 x double> %171, %174 %208 = fadd <4 x double> %176, %180 %209 = fadd <4 x double> %177, %181 %210 = fsub <4 x double> %178, %183 %211 = fadd <4 x double> %179, %182 %212 = fsub <4 x double> %176, %180 %213 = fsub <4 x double> %177, %181 %214 = fadd <4 x double> %178, %183 %215 = fsub <4 x double> %179, %182 %216 = fadd <4 x double> %184, %188 %217 = fadd <4 x double> %185, %189 %218 = fsub <4 x double> %186, %191 %219 = fadd <4 x double> %187, %190 %220 = fsub <4 x double> %184, %188 %221 = fsub <4 x double> %185, %189 %222 = fadd <4 x double> %186, %191 %223 = fsub <4 x double> %187, %190 %224 = fsub <4 x double> %202, %203 %225 = fadd <4 x double> %202, %203 %226 = fmul <4 x double> %224, %227 = fmul <4 x double> %225, %228 = fadd <4 x double> %206, %207 %229 = fsub <4 x double> %207, %206 %230 = fmul <4 x double> %228, %231 = fmul <4 x double> %229, %232 = fadd <4 x double> %192, %200 %233 = fadd <4 x double> %193, %201 %234 = fadd <4 x double> %194, %226 %235 = fadd <4 x double> %195, %227 %236 = fsub <4 x double> %196, %205 %237 = fadd <4 x double> %197, %204 %238 = fsub <4 x double> %198, %230 %239 = fsub <4 x double> %199, %231 %240 = fsub <4 x double> %192, %200 %241 = fsub <4 x double> %193, %201 %242 = fsub <4 x double> %194, %226 %243 = fsub <4 x double> %195, %227 %244 = fadd <4 x double> %196, %205 %245 = fsub <4 x double> %197, %204 %246 = fadd <4 x double> %198, %230 %247 = fadd <4 x double> %199, %231 %248 = fsub <4 x double> %218, %219 %249 = fadd <4 x double> %218, %219 %250 = fmul <4 x double> %248, %251 = fmul <4 x double> %249, %252 = fadd <4 x double> %222, %223 %253 = fsub <4 x double> %223, %222 %254 = fmul <4 x double> %252, %255 = fmul <4 x double> %253, %256 = fadd <4 x double> %208, %216 %257 = fadd <4 x double> %209, %217 %258 = fadd <4 x double> %210, %250 %259 = fadd <4 x double> %211, %251 %260 = fsub <4 x double> %212, %221 %261 = fadd <4 x double> %213, %220 %262 = fsub <4 x double> %214, %254 %263 = fsub <4 x double> %215, %255 %264 = fsub <4 x double> %208, %216 %265 = fsub <4 x double> %209, %217 %266 = fsub <4 x double> %210, %250 %267 = fsub <4 x double> %211, %251 %268 = fadd <4 x double> %212, %221 %269 = fsub <4 x double> %213, %220 %270 = fadd <4 x double> %214, %254 %271 = fadd <4 x double> %215, %255 %272 = fadd <4 x double> %232, %256 %273 = fadd <4 x double> %233, %257 %274 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec156 = shufflevector <4 x double> %272, <4 x double> %273, <8 x i32> store <8 x double> %interleaved.vec156, ptr %274, align 8, !noalias !5525 %275 = fsub <4 x double> %232, %256 %276 = fsub <4 x double> %233, %257 %277 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec157 = shufflevector <4 x double> %275, <4 x double> %276, <8 x i32> store <8 x double> %interleaved.vec157, ptr %277, align 8, !noalias !5525 %278 = fmul <4 x double> %259, %279 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %258, <4 x double> , <4 x double> %278) %280 = fmul <4 x double> %258, %281 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %259, <4 x double> , <4 x double> %280) %282 = fadd <4 x double> %234, %279 %283 = fadd <4 x double> %235, %281 %284 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec158 = shufflevector <4 x double> %282, <4 x double> %283, <8 x i32> store <8 x double> %interleaved.vec158, ptr %284, align 8, !noalias !5525 %285 = fsub <4 x double> %234, %279 %286 = fsub <4 x double> %235, %281 %287 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec159 = shufflevector <4 x double> %285, <4 x double> %286, <8 x i32> store <8 x double> %interleaved.vec159, ptr %287, align 8, !noalias !5525 %288 = fsub <4 x double> %260, %261 %289 = fadd <4 x double> %260, %261 %290 = fmul <4 x double> %288, %291 = fmul <4 x double> %289, %292 = fadd <4 x double> %236, %290 %293 = fadd <4 x double> %237, %291 %294 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec160 = shufflevector <4 x double> %292, <4 x double> %293, <8 x i32> store <8 x double> %interleaved.vec160, ptr %294, align 8, !noalias !5525 %295 = fsub <4 x double> %236, %290 %296 = fsub <4 x double> %237, %291 %297 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec161 = shufflevector <4 x double> %295, <4 x double> %296, <8 x i32> store <8 x double> %interleaved.vec161, ptr %297, align 8, !noalias !5525 %298 = fmul <4 x double> %263, %299 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %262, <4 x double> , <4 x double> %298) %300 = fmul <4 x double> %262, %301 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %263, <4 x double> , <4 x double> %300) %302 = fadd <4 x double> %238, %299 %303 = fadd <4 x double> %239, %301 %304 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec162 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec162, ptr %304, align 8, !noalias !5525 %305 = fsub <4 x double> %238, %299 %306 = fsub <4 x double> %239, %301 %307 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec163 = shufflevector <4 x double> %305, <4 x double> %306, <8 x i32> store <8 x double> %interleaved.vec163, ptr %307, align 8, !noalias !5525 %308 = fsub <4 x double> %240, %265 %309 = fadd <4 x double> %241, %264 %310 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec164 = shufflevector <4 x double> %308, <4 x double> %309, <8 x i32> store <8 x double> %interleaved.vec164, ptr %310, align 8, !noalias !5525 %311 = fadd <4 x double> %240, %265 %312 = fsub <4 x double> %241, %264 %313 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec165 = shufflevector <4 x double> %311, <4 x double> %312, <8 x i32> store <8 x double> %interleaved.vec165, ptr %313, align 8, !noalias !5525 %314 = fmul <4 x double> %267, %315 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %266, <4 x double> , <4 x double> %314) %316 = fmul <4 x double> %266, %317 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %267, <4 x double> , <4 x double> %316) %318 = fsub <4 x double> %242, %315 %319 = fsub <4 x double> %243, %317 %320 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec166 = shufflevector <4 x double> %318, <4 x double> %319, <8 x i32> store <8 x double> %interleaved.vec166, ptr %320, align 8, !noalias !5525 %321 = fadd <4 x double> %242, %315 %322 = fadd <4 x double> %243, %317 %323 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec167 = shufflevector <4 x double> %321, <4 x double> %322, <8 x i32> store <8 x double> %interleaved.vec167, ptr %323, align 8, !noalias !5525 %324 = fadd <4 x double> %268, %269 %325 = fsub <4 x double> %269, %268 %326 = fmul <4 x double> %324, %327 = fmul <4 x double> %325, %328 = fsub <4 x double> %244, %326 %329 = fsub <4 x double> %245, %327 %330 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec168 = shufflevector <4 x double> %328, <4 x double> %329, <8 x i32> store <8 x double> %interleaved.vec168, ptr %330, align 8, !noalias !5525 %331 = fadd <4 x double> %244, %326 %332 = fadd <4 x double> %245, %327 %333 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec169 = shufflevector <4 x double> %331, <4 x double> %332, <8 x i32> store <8 x double> %interleaved.vec169, ptr %333, align 8, !noalias !5525 %334 = fmul <4 x double> %271, %335 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %270, <4 x double> , <4 x double> %334) %336 = fmul <4 x double> %270, %337 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %271, <4 x double> , <4 x double> %336) %338 = fsub <4 x double> %246, %335 %339 = fsub <4 x double> %247, %337 %340 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec170 = shufflevector <4 x double> %338, <4 x double> %339, <8 x i32> store <8 x double> %interleaved.vec170, ptr %340, align 8, !noalias !5525 %341 = fadd <4 x double> %246, %335 %342 = fadd <4 x double> %247, %337 %343 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %index19 %interleaved.vec171 = shufflevector <4 x double> %341, <4 x double> %342, <8 x i32> store <8 x double> %interleaved.vec171, ptr %343, align 8, !noalias !5525 %index.next172 = add nuw i64 %index19, 4 %344 = icmp eq i64 %index.next172, 16 br i1 %344, label %middle.block14, label %vector.body18, !llvm.loop !5529 middle.block14: ; preds = %vector.body18 %345 = add nuw nsw i64 %iter.i.i.i.i.sroa.208.0219, 1 %exitcond224.not = icmp eq i64 %345, 4 br i1 %exitcond224.not, label %bb48.i.i.i.preheader, label %bb48.i.i.i.i bb48.i.i.i.preheader: ; preds = %middle.block14 %346 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %348 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 %349 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 384 %350 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 320 %351 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 448 %352 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 640 %353 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 576 %354 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 704 %355 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 896 %356 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 832 %357 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 960 br label %vector.body177 vector.body177: ; preds = %vector.body177, %bb48.i.i.i.preheader %index178 = phi i64 [ 0, %bb48.i.i.i.preheader ], [ %index.next256, %vector.body177 ] %vec.ind = phi <4 x i64> [ , %bb48.i.i.i.preheader ], [ %vec.ind.next, %vector.body177 ] %358 = shl <4 x i64> %vec.ind, %359 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %358 %360 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %360, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %361 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather179 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %361, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %362 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather180 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %362, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %363 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather181 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %364 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather182 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %365 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather183 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %366 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather184 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %367 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather185 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %368 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather186 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %369 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather187 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %370 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather188 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %371 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather189 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %372 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather190 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %373 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather191 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %373, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %374 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather192 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %374, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %375 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather193 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %375, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %376 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather194 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %376, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %377 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather195 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %378 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather196 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %378, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %379 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather197 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %379, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %380 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather198 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %380, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %381 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather199 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %381, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %382 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather200 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %383 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather201 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %383, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %384 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather202 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %384, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %385 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather203 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %385, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %386 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather204 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %386, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %387 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather205 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %387, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %388 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather206 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %388, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %389 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather207 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %389, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %390 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 8 %391 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 4 %392 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 2 %393 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 1 %394 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 3 %395 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 6 %396 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 5 %397 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 7 %398 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 12 %399 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 10 %400 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 9 %401 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 11 %402 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 14 %403 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 13 %404 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 15 %405 = fneg <4 x double> %wide.masked.gather179 %406 = fneg <4 x double> %wide.masked.gather181 %407 = fneg <4 x double> %wide.masked.gather183 %408 = fneg <4 x double> %wide.masked.gather185 %409 = fneg <4 x double> %wide.masked.gather187 %410 = fneg <4 x double> %wide.masked.gather189 %411 = fneg <4 x double> %wide.masked.gather191 %412 = fneg <4 x double> %wide.masked.gather193 %413 = fneg <4 x double> %wide.masked.gather195 %414 = fneg <4 x double> %wide.masked.gather197 %415 = fneg <4 x double> %wide.masked.gather199 %416 = fneg <4 x double> %wide.masked.gather201 %417 = fneg <4 x double> %wide.masked.gather203 %418 = fneg <4 x double> %wide.masked.gather205 %419 = fneg <4 x double> %wide.masked.gather207 %wide.masked.gather208 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %359, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %420 = getelementptr inbounds i8, <4 x ptr> %359, i64 8 %wide.masked.gather209 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %420, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %wide.masked.gather210 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %393, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %421 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 1, i32 1 %wide.masked.gather211 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %421, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %422 = fmul <4 x double> %wide.masked.gather211, %405 %423 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather210, <4 x double> %422) %424 = fmul <4 x double> %wide.masked.gather179, %wide.masked.gather210 %425 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather211, <4 x double> %424) %wide.masked.gather212 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %392, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %426 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 2, i32 1 %wide.masked.gather213 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %426, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %427 = fmul <4 x double> %wide.masked.gather213, %406 %428 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather212, <4 x double> %427) %429 = fmul <4 x double> %wide.masked.gather181, %wide.masked.gather212 %430 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather180, <4 x double> %wide.masked.gather213, <4 x double> %429) %wide.masked.gather214 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %394, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %431 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 3, i32 1 %wide.masked.gather215 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %431, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %432 = fmul <4 x double> %wide.masked.gather215, %407 %433 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather214, <4 x double> %432) %434 = fmul <4 x double> %wide.masked.gather183, %wide.masked.gather214 %435 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather182, <4 x double> %wide.masked.gather215, <4 x double> %434) %wide.masked.gather216 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %391, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %436 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 4, i32 1 %wide.masked.gather217 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %436, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %437 = fmul <4 x double> %wide.masked.gather217, %408 %438 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather216, <4 x double> %437) %439 = fmul <4 x double> %wide.masked.gather185, %wide.masked.gather216 %440 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather184, <4 x double> %wide.masked.gather217, <4 x double> %439) %wide.masked.gather218 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %396, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %441 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 5, i32 1 %wide.masked.gather219 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %441, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %442 = fmul <4 x double> %wide.masked.gather219, %409 %443 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather218, <4 x double> %442) %444 = fmul <4 x double> %wide.masked.gather187, %wide.masked.gather218 %445 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather186, <4 x double> %wide.masked.gather219, <4 x double> %444) %wide.masked.gather220 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %395, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %446 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 6, i32 1 %wide.masked.gather221 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %446, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %447 = fmul <4 x double> %wide.masked.gather221, %410 %448 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather220, <4 x double> %447) %449 = fmul <4 x double> %wide.masked.gather189, %wide.masked.gather220 %450 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather188, <4 x double> %wide.masked.gather221, <4 x double> %449) %wide.masked.gather222 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %397, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %451 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 7, i32 1 %wide.masked.gather223 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %451, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %452 = fmul <4 x double> %wide.masked.gather223, %411 %453 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather222, <4 x double> %452) %454 = fmul <4 x double> %wide.masked.gather191, %wide.masked.gather222 %455 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather190, <4 x double> %wide.masked.gather223, <4 x double> %454) %wide.masked.gather224 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %390, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %456 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 8, i32 1 %wide.masked.gather225 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %456, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %457 = fmul <4 x double> %wide.masked.gather225, %412 %458 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather224, <4 x double> %457) %459 = fmul <4 x double> %wide.masked.gather193, %wide.masked.gather224 %460 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather192, <4 x double> %wide.masked.gather225, <4 x double> %459) %wide.masked.gather226 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %400, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %461 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 9, i32 1 %wide.masked.gather227 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %461, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %462 = fmul <4 x double> %wide.masked.gather227, %413 %463 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather226, <4 x double> %462) %464 = fmul <4 x double> %wide.masked.gather195, %wide.masked.gather226 %465 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather194, <4 x double> %wide.masked.gather227, <4 x double> %464) %wide.masked.gather228 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %399, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %466 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 10, i32 1 %wide.masked.gather229 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %466, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %467 = fmul <4 x double> %wide.masked.gather229, %414 %468 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather228, <4 x double> %467) %469 = fmul <4 x double> %wide.masked.gather197, %wide.masked.gather228 %470 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather196, <4 x double> %wide.masked.gather229, <4 x double> %469) %wide.masked.gather230 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %401, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %471 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 11, i32 1 %wide.masked.gather231 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %471, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %472 = fmul <4 x double> %wide.masked.gather231, %415 %473 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather230, <4 x double> %472) %474 = fmul <4 x double> %wide.masked.gather199, %wide.masked.gather230 %475 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather198, <4 x double> %wide.masked.gather231, <4 x double> %474) %wide.masked.gather232 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %398, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %476 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 12, i32 1 %wide.masked.gather233 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %476, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %477 = fmul <4 x double> %wide.masked.gather233, %416 %478 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather200, <4 x double> %wide.masked.gather232, <4 x double> %477) %479 = fmul <4 x double> %wide.masked.gather201, %wide.masked.gather232 %480 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather200, <4 x double> %wide.masked.gather233, <4 x double> %479) %wide.masked.gather234 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %403, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %481 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 13, i32 1 %wide.masked.gather235 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %481, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %482 = fmul <4 x double> %wide.masked.gather235, %417 %483 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather202, <4 x double> %wide.masked.gather234, <4 x double> %482) %484 = fmul <4 x double> %wide.masked.gather203, %wide.masked.gather234 %485 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather202, <4 x double> %wide.masked.gather235, <4 x double> %484) %wide.masked.gather236 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %402, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %486 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 14, i32 1 %wide.masked.gather237 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %486, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %487 = fmul <4 x double> %wide.masked.gather237, %418 %488 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather204, <4 x double> %wide.masked.gather236, <4 x double> %487) %489 = fmul <4 x double> %wide.masked.gather205, %wide.masked.gather236 %490 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather204, <4 x double> %wide.masked.gather237, <4 x double> %489) %wide.masked.gather238 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %404, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %491 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %359, i64 15, i32 1 %wide.masked.gather239 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %491, i32 8, <4 x i1> , <4 x double> poison), !noalias !5525 %492 = fmul <4 x double> %wide.masked.gather239, %419 %493 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather206, <4 x double> %wide.masked.gather238, <4 x double> %492) %494 = fmul <4 x double> %wide.masked.gather207, %wide.masked.gather238 %495 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather206, <4 x double> %wide.masked.gather239, <4 x double> %494) %496 = fadd <4 x double> %wide.masked.gather208, %458 %497 = fadd <4 x double> %wide.masked.gather209, %460 %498 = fsub <4 x double> %wide.masked.gather208, %458 %499 = fsub <4 x double> %wide.masked.gather209, %460 %500 = fadd <4 x double> %438, %478 %501 = fadd <4 x double> %440, %480 %502 = fsub <4 x double> %438, %478 %503 = fsub <4 x double> %440, %480 %504 = fadd <4 x double> %428, %468 %505 = fadd <4 x double> %430, %470 %506 = fsub <4 x double> %428, %468 %507 = fsub <4 x double> %430, %470 %508 = fadd <4 x double> %448, %488 %509 = fadd <4 x double> %450, %490 %510 = fsub <4 x double> %448, %488 %511 = fsub <4 x double> %450, %490 %512 = fadd <4 x double> %423, %463 %513 = fadd <4 x double> %425, %465 %514 = fsub <4 x double> %423, %463 %515 = fsub <4 x double> %425, %465 %516 = fadd <4 x double> %443, %483 %517 = fadd <4 x double> %445, %485 %518 = fsub <4 x double> %443, %483 %519 = fsub <4 x double> %445, %485 %520 = fadd <4 x double> %433, %473 %521 = fadd <4 x double> %435, %475 %522 = fsub <4 x double> %433, %473 %523 = fsub <4 x double> %435, %475 %524 = fadd <4 x double> %453, %493 %525 = fadd <4 x double> %455, %495 %526 = fsub <4 x double> %453, %493 %527 = fsub <4 x double> %455, %495 %528 = fadd <4 x double> %496, %500 %529 = fadd <4 x double> %497, %501 %530 = fsub <4 x double> %498, %503 %531 = fadd <4 x double> %499, %502 %532 = fsub <4 x double> %496, %500 %533 = fsub <4 x double> %497, %501 %534 = fadd <4 x double> %498, %503 %535 = fsub <4 x double> %499, %502 %536 = fadd <4 x double> %504, %508 %537 = fadd <4 x double> %505, %509 %538 = fsub <4 x double> %506, %511 %539 = fadd <4 x double> %507, %510 %540 = fsub <4 x double> %504, %508 %541 = fsub <4 x double> %505, %509 %542 = fadd <4 x double> %506, %511 %543 = fsub <4 x double> %507, %510 %544 = fadd <4 x double> %512, %516 %545 = fadd <4 x double> %513, %517 %546 = fsub <4 x double> %514, %519 %547 = fadd <4 x double> %515, %518 %548 = fsub <4 x double> %512, %516 %549 = fsub <4 x double> %513, %517 %550 = fadd <4 x double> %514, %519 %551 = fsub <4 x double> %515, %518 %552 = fadd <4 x double> %520, %524 %553 = fadd <4 x double> %521, %525 %554 = fsub <4 x double> %522, %527 %555 = fadd <4 x double> %523, %526 %556 = fsub <4 x double> %520, %524 %557 = fsub <4 x double> %521, %525 %558 = fadd <4 x double> %522, %527 %559 = fsub <4 x double> %523, %526 %560 = fsub <4 x double> %538, %539 %561 = fadd <4 x double> %538, %539 %562 = fmul <4 x double> %560, %563 = fmul <4 x double> %561, %564 = fadd <4 x double> %542, %543 %565 = fsub <4 x double> %543, %542 %566 = fmul <4 x double> %564, %567 = fmul <4 x double> %565, %568 = fadd <4 x double> %528, %536 %569 = fadd <4 x double> %529, %537 %570 = fadd <4 x double> %530, %562 %571 = fadd <4 x double> %531, %563 %572 = fsub <4 x double> %532, %541 %573 = fadd <4 x double> %533, %540 %574 = fsub <4 x double> %534, %566 %575 = fsub <4 x double> %535, %567 %576 = fsub <4 x double> %528, %536 %577 = fsub <4 x double> %529, %537 %578 = fsub <4 x double> %530, %562 %579 = fsub <4 x double> %531, %563 %580 = fadd <4 x double> %532, %541 %581 = fsub <4 x double> %533, %540 %582 = fadd <4 x double> %534, %566 %583 = fadd <4 x double> %535, %567 %584 = fsub <4 x double> %554, %555 %585 = fadd <4 x double> %554, %555 %586 = fmul <4 x double> %584, %587 = fmul <4 x double> %585, %588 = fadd <4 x double> %558, %559 %589 = fsub <4 x double> %559, %558 %590 = fmul <4 x double> %588, %591 = fmul <4 x double> %589, %592 = fadd <4 x double> %544, %552 %593 = fadd <4 x double> %545, %553 %594 = fadd <4 x double> %546, %586 %595 = fadd <4 x double> %547, %587 %596 = fsub <4 x double> %548, %557 %597 = fadd <4 x double> %549, %556 %598 = fsub <4 x double> %550, %590 %599 = fsub <4 x double> %551, %591 %600 = fsub <4 x double> %544, %552 %601 = fsub <4 x double> %545, %553 %602 = fsub <4 x double> %546, %586 %603 = fsub <4 x double> %547, %587 %604 = fadd <4 x double> %548, %557 %605 = fsub <4 x double> %549, %556 %606 = fadd <4 x double> %550, %590 %607 = fadd <4 x double> %551, %591 %608 = fadd <4 x double> %568, %592 %609 = fadd <4 x double> %569, %593 %610 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index178 %interleaved.vec240 = shufflevector <4 x double> %608, <4 x double> %609, <8 x i32> store <8 x double> %interleaved.vec240, ptr %610, align 8, !noalias !5525 %611 = fsub <4 x double> %568, %592 %612 = fsub <4 x double> %569, %593 %613 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index178 %interleaved.vec241 = shufflevector <4 x double> %611, <4 x double> %612, <8 x i32> store <8 x double> %interleaved.vec241, ptr %613, align 8, !noalias !5525 %614 = fmul <4 x double> %595, %615 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %594, <4 x double> , <4 x double> %614) %616 = fmul <4 x double> %594, %617 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %595, <4 x double> , <4 x double> %616) %618 = fadd <4 x double> %570, %615 %619 = fadd <4 x double> %571, %617 %620 = getelementptr inbounds %"num_complex::Complex", ptr %347, i64 %index178 %interleaved.vec242 = shufflevector <4 x double> %618, <4 x double> %619, <8 x i32> store <8 x double> %interleaved.vec242, ptr %620, align 8, !noalias !5525 %621 = fsub <4 x double> %570, %615 %622 = fsub <4 x double> %571, %617 %623 = getelementptr inbounds %"num_complex::Complex", ptr %353, i64 %index178 %interleaved.vec243 = shufflevector <4 x double> %621, <4 x double> %622, <8 x i32> store <8 x double> %interleaved.vec243, ptr %623, align 8, !noalias !5525 %624 = fsub <4 x double> %596, %597 %625 = fadd <4 x double> %596, %597 %626 = fmul <4 x double> %624, %627 = fmul <4 x double> %625, %628 = fadd <4 x double> %572, %626 %629 = fadd <4 x double> %573, %627 %630 = getelementptr inbounds %"num_complex::Complex", ptr %346, i64 %index178 %interleaved.vec244 = shufflevector <4 x double> %628, <4 x double> %629, <8 x i32> store <8 x double> %interleaved.vec244, ptr %630, align 8, !noalias !5525 %631 = fsub <4 x double> %572, %626 %632 = fsub <4 x double> %573, %627 %633 = getelementptr inbounds %"num_complex::Complex", ptr %352, i64 %index178 %interleaved.vec245 = shufflevector <4 x double> %631, <4 x double> %632, <8 x i32> store <8 x double> %interleaved.vec245, ptr %633, align 8, !noalias !5525 %634 = fmul <4 x double> %599, %635 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %598, <4 x double> , <4 x double> %634) %636 = fmul <4 x double> %598, %637 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %599, <4 x double> , <4 x double> %636) %638 = fadd <4 x double> %574, %635 %639 = fadd <4 x double> %575, %637 %640 = getelementptr inbounds %"num_complex::Complex", ptr %348, i64 %index178 %interleaved.vec246 = shufflevector <4 x double> %638, <4 x double> %639, <8 x i32> store <8 x double> %interleaved.vec246, ptr %640, align 8, !noalias !5525 %641 = fsub <4 x double> %574, %635 %642 = fsub <4 x double> %575, %637 %643 = getelementptr inbounds %"num_complex::Complex", ptr %354, i64 %index178 %interleaved.vec247 = shufflevector <4 x double> %641, <4 x double> %642, <8 x i32> store <8 x double> %interleaved.vec247, ptr %643, align 8, !noalias !5525 %644 = fsub <4 x double> %576, %601 %645 = fadd <4 x double> %577, %600 %646 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index178 %interleaved.vec248 = shufflevector <4 x double> %644, <4 x double> %645, <8 x i32> store <8 x double> %interleaved.vec248, ptr %646, align 8, !noalias !5525 %647 = fadd <4 x double> %576, %601 %648 = fsub <4 x double> %577, %600 %649 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index178 %interleaved.vec249 = shufflevector <4 x double> %647, <4 x double> %648, <8 x i32> store <8 x double> %interleaved.vec249, ptr %649, align 8, !noalias !5525 %650 = fmul <4 x double> %603, %651 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %602, <4 x double> , <4 x double> %650) %652 = fmul <4 x double> %602, %653 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %603, <4 x double> , <4 x double> %652) %654 = fsub <4 x double> %578, %651 %655 = fsub <4 x double> %579, %653 %656 = getelementptr inbounds %"num_complex::Complex", ptr %350, i64 %index178 %interleaved.vec250 = shufflevector <4 x double> %654, <4 x double> %655, <8 x i32> store <8 x double> %interleaved.vec250, ptr %656, align 8, !noalias !5525 %657 = fadd <4 x double> %578, %651 %658 = fadd <4 x double> %579, %653 %659 = getelementptr inbounds %"num_complex::Complex", ptr %356, i64 %index178 %interleaved.vec251 = shufflevector <4 x double> %657, <4 x double> %658, <8 x i32> store <8 x double> %interleaved.vec251, ptr %659, align 8, !noalias !5525 %660 = fadd <4 x double> %604, %605 %661 = fsub <4 x double> %605, %604 %662 = fmul <4 x double> %660, %663 = fmul <4 x double> %661, %664 = fsub <4 x double> %580, %662 %665 = fsub <4 x double> %581, %663 %666 = getelementptr inbounds %"num_complex::Complex", ptr %349, i64 %index178 %interleaved.vec252 = shufflevector <4 x double> %664, <4 x double> %665, <8 x i32> store <8 x double> %interleaved.vec252, ptr %666, align 8, !noalias !5525 %667 = fadd <4 x double> %580, %662 %668 = fadd <4 x double> %581, %663 %669 = getelementptr inbounds %"num_complex::Complex", ptr %355, i64 %index178 %interleaved.vec253 = shufflevector <4 x double> %667, <4 x double> %668, <8 x i32> store <8 x double> %interleaved.vec253, ptr %669, align 8, !noalias !5525 %670 = fmul <4 x double> %607, %671 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %606, <4 x double> , <4 x double> %670) %672 = fmul <4 x double> %606, %673 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %607, <4 x double> , <4 x double> %672) %674 = fsub <4 x double> %582, %671 %675 = fsub <4 x double> %583, %673 %676 = getelementptr inbounds %"num_complex::Complex", ptr %351, i64 %index178 %interleaved.vec254 = shufflevector <4 x double> %674, <4 x double> %675, <8 x i32> store <8 x double> %interleaved.vec254, ptr %676, align 8, !noalias !5525 %677 = fadd <4 x double> %582, %671 %678 = fadd <4 x double> %583, %673 %679 = getelementptr inbounds %"num_complex::Complex", ptr %357, i64 %index178 %interleaved.vec255 = shufflevector <4 x double> %677, <4 x double> %678, <8 x i32> store <8 x double> %interleaved.vec255, ptr %679, align 8, !noalias !5525 %index.next256 = add nuw i64 %index178, 4 %vec.ind.next = add <4 x i64> %vec.ind, %680 = icmp eq i64 %index.next256, 64 br i1 %680, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1000f48b55dc070E.exit", label %vector.body177, !llvm.loop !5530 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1000f48b55dc070E.exit": ; preds = %vector.body177 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5525 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he8c71033b2a7503aE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5531 store i64 1024, ptr %n.i.i, align 8, !noalias !5531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5531 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5531 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5531 store ptr null, ptr %_16.i.i, align 8, !noalias !5531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5531 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5531 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5531 store ptr null, ptr %_24.i.i, align 8, !noalias !5531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5531 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5531 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5531 store ptr null, ptr %_32.i.i, align 8, !noalias !5531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5531 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5531 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5531 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8558fa0df430fce1E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5531 store ptr null, ptr %_40.i.i, align 8, !noalias !5531 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8558fa0df430fce1E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5531 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 br label %bb13.i.i.i.i bb13.i.i.i.i: ; preds = %bb13.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8558fa0df430fce1E.exit.i" %iter.i.i.i.sroa.22.0240.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8558fa0df430fce1E.exit.i" ], [ %5, %bb13.i.i.i.i ] %5 = add nuw nsw i64 %iter.i.i.i.sroa.22.0240.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.22.0240.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.22.0240.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.22.0240.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.22.0240.i %_43.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5536 %_44.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !5536 %_45.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5536 %_46.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5536 %6 = fadd <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %7 = fsub <4 x double> %_43.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.sroa.0.0.copyload.i %8 = fadd <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %9 = fsub <4 x double> %_44.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.sroa.0.0.copyload.i %10 = bitcast <4 x double> %9 to <4 x i64> %11 = xor <4 x i64> %10, %12 = bitcast <4 x i64> %11 to <4 x double> %13 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> %14 = fadd <4 x double> %6, %8 %15 = fsub <4 x double> %7, %13 %16 = fsub <4 x double> %6, %8 %17 = fadd <4 x double> %7, %13 store <4 x double> %14, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5536 store <4 x double> %15, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !5536 store <4 x double> %16, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5536 store <4 x double> %17, ptr %_3.i.i.i.i.i, align 8, !noalias !5536 %exitcond.not.i = icmp eq i64 %5, 128 br i1 %exitcond.not.i, label %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i", label %bb13.i.i.i.i "_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i": ; preds = %bb13.i.i.i.i %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 tail call void @llvm.experimental.noalias.scope.decl(metadata !5540) tail call void @llvm.experimental.noalias.scope.decl(metadata !5543) tail call void @llvm.experimental.noalias.scope.decl(metadata !5545) %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 %21 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %21, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %22 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %22, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %23 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i.i = load double, ptr %23, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %24 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %24, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %25 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i.i = load double, ptr %25, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %26 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %26, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %27 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %28 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %32 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %33 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %34 = shufflevector <4 x double> %27, <4 x double> poison, <4 x i32> zeroinitializer %35 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %36 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> zeroinitializer %37 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %38 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.i bb38.us.i.i: ; preds = %bb38.us.i.i, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" %iter5.sroa.50.0694.us.i.i = phi i64 [ 0, %"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE.exit.i" ], [ %39, %bb38.us.i.i ] %39 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter5.sroa.50.0694.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %32, i64 %iter5.sroa.50.0694.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5543, !noalias !5548 %_84.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5543, !noalias !5548 %40 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %41 = fmul <4 x double> %34, %40 %42 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %33, <4 x double> %_84.sroa.0.0.copyload.us.i.i, <4 x double> %41) #23 %_86.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5543, !noalias !5548 %43 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %44 = fmul <4 x double> %36, %43 %45 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %35, <4 x double> %_86.sroa.0.0.copyload.us.i.i, <4 x double> %44) #23 %_88.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !5543, !noalias !5548 %46 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %47 = fmul <4 x double> %38, %46 %48 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %37, <4 x double> %_88.sroa.0.0.copyload.us.i.i, <4 x double> %47) #23 %49 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %50 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %45 %51 = fadd <4 x double> %42, %48 %52 = fsub <4 x double> %42, %48 %53 = bitcast <4 x double> %52 to <4 x i64> %54 = xor <4 x i64> %53, %55 = bitcast <4 x i64> %54 to <4 x double> %56 = shufflevector <4 x double> %55, <4 x double> poison, <4 x i32> %57 = fadd <4 x double> %49, %51 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5540, !noalias !5549 %58 = fsub <4 x double> %50, %56 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5540, !noalias !5549 %59 = fsub <4 x double> %49, %51 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5540, !noalias !5549 %60 = fadd <4 x double> %50, %56 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5540, !noalias !5549 %exitcond.not.i.i = icmp eq i64 %39, 32 br i1 %exitcond.not.i.i, label %bb36.bb20.loopexit_crit_edge.us.i.i, label %bb38.us.i.i bb36.bb20.loopexit_crit_edge.us.i.i: ; preds = %bb38.us.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %61 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i.1.i = load double, ptr %61, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %62 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %62, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %63 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i.1.i = load double, ptr %63, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %64 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i.1.i = load double, ptr %64, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %65 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i.1.i = load double, ptr %65, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %66 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i.1.i = load double, ptr %66, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %67 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w2.0.us.i.1.i, i64 0 %68 = insertelement <4 x double> poison, double %w2.1.us.i.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w3.0.us.i.1.i, i64 0 %69 = insertelement <4 x double> poison, double %w3.1.us.i.1.i, i64 0 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %72 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %73 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %74 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer %75 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %76 = shufflevector <4 x double> %68, <4 x double> poison, <4 x i32> zeroinitializer %77 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %78 = shufflevector <4 x double> %69, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.1.i bb38.us.i.1.i: ; preds = %bb38.us.i.1.i, %bb36.bb20.loopexit_crit_edge.us.i.i %iter5.sroa.50.0694.us.i.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.i ], [ %79, %bb38.us.i.1.i ] %79 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter5.sroa.50.0694.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %72, i64 %iter5.sroa.50.0694.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5543, !noalias !5548 %_84.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5543, !noalias !5548 %80 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %81 = fmul <4 x double> %74, %80 %82 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %73, <4 x double> %_84.sroa.0.0.copyload.us.i.1.i, <4 x double> %81) #23 %_86.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5543, !noalias !5548 %83 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %84 = fmul <4 x double> %76, %83 %85 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %75, <4 x double> %_86.sroa.0.0.copyload.us.i.1.i, <4 x double> %84) #23 %_88.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !5543, !noalias !5548 %86 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %78, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %77, <4 x double> %_88.sroa.0.0.copyload.us.i.1.i, <4 x double> %87) #23 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %85 %91 = fadd <4 x double> %82, %88 %92 = fsub <4 x double> %82, %88 %93 = bitcast <4 x double> %92 to <4 x i64> %94 = xor <4 x i64> %93, %95 = bitcast <4 x i64> %94 to <4 x double> %96 = shufflevector <4 x double> %95, <4 x double> poison, <4 x i32> %97 = fadd <4 x double> %89, %91 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5540, !noalias !5549 %98 = fsub <4 x double> %90, %96 store <4 x double> %98, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5540, !noalias !5549 %99 = fsub <4 x double> %89, %91 store <4 x double> %99, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5540, !noalias !5549 %100 = fadd <4 x double> %90, %96 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5540, !noalias !5549 %exitcond.not.i.1.i = icmp eq i64 %79, 32 br i1 %exitcond.not.i.1.i, label %bb36.bb20.loopexit_crit_edge.us.i.1.i, label %bb38.us.i.1.i bb36.bb20.loopexit_crit_edge.us.i.1.i: ; preds = %bb38.us.i.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %data.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %101 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i.2.i = load double, ptr %101, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %102 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i.2.i = load double, ptr %102, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %103 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2 %w2.0.us.i.2.i = load double, ptr %103, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %104 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2, i32 1 %w2.1.us.i.2.i = load double, ptr %104, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %105 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3 %w3.0.us.i.2.i = load double, ptr %105, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %106 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3, i32 1 %w3.1.us.i.2.i = load double, ptr %106, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w1.0.us.i.2.i, i64 0 %107 = insertelement <4 x double> poison, double %w1.1.us.i.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w2.0.us.i.2.i, i64 0 %108 = insertelement <4 x double> poison, double %w2.1.us.i.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.2.i = insertelement <2 x double> poison, double %w3.0.us.i.2.i, i64 0 %109 = insertelement <4 x double> poison, double %w3.1.us.i.2.i, i64 0 %110 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %111 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %112 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %113 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %114 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> zeroinitializer %115 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %116 = shufflevector <4 x double> %108, <4 x double> poison, <4 x i32> zeroinitializer %117 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.2.i, <2 x double> poison, <4 x i32> zeroinitializer %118 = shufflevector <4 x double> %109, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.2.i bb38.us.i.2.i: ; preds = %bb38.us.i.2.i, %bb36.bb20.loopexit_crit_edge.us.i.1.i %iter5.sroa.50.0694.us.i.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.1.i ], [ %119, %bb38.us.i.2.i ] %119 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.2.i, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %111, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %110, i64 %iter5.sroa.50.0694.us.i.2.i %_3.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %112, i64 %iter5.sroa.50.0694.us.i.2.i %a.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5543, !noalias !5548 %_84.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5543, !noalias !5548 %120 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %114, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %_84.sroa.0.0.copyload.us.i.2.i, <4 x double> %121) #23 %_86.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5543, !noalias !5548 %123 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %116, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %115, <4 x double> %_86.sroa.0.0.copyload.us.i.2.i, <4 x double> %124) #23 %_88.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.2.i, align 8, !alias.scope !5543, !noalias !5548 %126 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %127 = fmul <4 x double> %118, %126 %128 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %117, <4 x double> %_88.sroa.0.0.copyload.us.i.2.i, <4 x double> %127) #23 %129 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %130 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %125 %131 = fadd <4 x double> %122, %128 %132 = fsub <4 x double> %122, %128 %133 = bitcast <4 x double> %132 to <4 x i64> %134 = xor <4 x i64> %133, %135 = bitcast <4 x i64> %134 to <4 x double> %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fadd <4 x double> %129, %131 store <4 x double> %137, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5540, !noalias !5549 %138 = fsub <4 x double> %130, %136 store <4 x double> %138, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5540, !noalias !5549 %139 = fsub <4 x double> %129, %131 store <4 x double> %139, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5540, !noalias !5549 %140 = fadd <4 x double> %130, %136 store <4 x double> %140, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5540, !noalias !5549 %exitcond.not.i.2.i = icmp eq i64 %119, 32 br i1 %exitcond.not.i.2.i, label %bb36.bb20.loopexit_crit_edge.us.i.2.i, label %bb38.us.i.2.i bb36.bb20.loopexit_crit_edge.us.i.2.i: ; preds = %bb38.us.i.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %data.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i.3.i = load double, ptr %141, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i.3.i = load double, ptr %142, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2 %w2.0.us.i.3.i = load double, ptr %143, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %144 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2, i32 1 %w2.1.us.i.3.i = load double, ptr %144, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %145 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3 %w3.0.us.i.3.i = load double, ptr %145, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %146 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3, i32 1 %w3.1.us.i.3.i = load double, ptr %146, align 8, !alias.scope !5545, !noalias !5547, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w1.0.us.i.3.i, i64 0 %147 = insertelement <4 x double> poison, double %w1.1.us.i.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w2.0.us.i.3.i, i64 0 %148 = insertelement <4 x double> poison, double %w2.1.us.i.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.3.i = insertelement <2 x double> poison, double %w3.0.us.i.3.i, i64 0 %149 = insertelement <4 x double> poison, double %w3.1.us.i.3.i, i64 0 %150 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %151 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %152 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %153 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.3.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i.3.i bb38.us.i.3.i: ; preds = %bb38.us.i.3.i, %bb36.bb20.loopexit_crit_edge.us.i.2.i %iter5.sroa.50.0694.us.i.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i.2.i ], [ %159, %bb38.us.i.3.i ] %159 = add nuw nsw i64 %iter5.sroa.50.0694.us.i.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.3.i, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %151, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %150, i64 %iter5.sroa.50.0694.us.i.3.i %_3.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %152, i64 %iter5.sroa.50.0694.us.i.3.i %a.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5543, !noalias !5548 %_84.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5543, !noalias !5548 %160 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_84.sroa.0.0.copyload.us.i.3.i, <4 x double> %161) #23 %_86.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5543, !noalias !5548 %163 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %164 = fmul <4 x double> %156, %163 %165 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %_86.sroa.0.0.copyload.us.i.3.i, <4 x double> %164) #23 %_88.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.3.i, align 8, !alias.scope !5543, !noalias !5548 %166 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %167 = fmul <4 x double> %158, %166 %168 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %_88.sroa.0.0.copyload.us.i.3.i, <4 x double> %167) #23 %169 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %170 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %165 %171 = fadd <4 x double> %162, %168 %172 = fsub <4 x double> %162, %168 %173 = bitcast <4 x double> %172 to <4 x i64> %174 = xor <4 x i64> %173, %175 = bitcast <4 x i64> %174 to <4 x double> %176 = shufflevector <4 x double> %175, <4 x double> poison, <4 x i32> %177 = fadd <4 x double> %169, %171 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5540, !noalias !5549 %178 = fsub <4 x double> %170, %176 store <4 x double> %178, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5540, !noalias !5549 %179 = fsub <4 x double> %169, %171 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5540, !noalias !5549 %180 = fadd <4 x double> %170, %176 store <4 x double> %180, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5540, !noalias !5549 %exitcond.not.i.3.i = icmp eq i64 %159, 32 br i1 %exitcond.not.i.3.i, label %bb36.bb20.loopexit_crit_edge.us.i.3.i, label %bb38.us.i.3.i bb36.bb20.loopexit_crit_edge.us.i.3.i: ; preds = %bb38.us.i.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5550) tail call void @llvm.experimental.noalias.scope.decl(metadata !5553) tail call void @llvm.experimental.noalias.scope.decl(metadata !5555) br label %bb22.us.i67.i bb22.us.i67.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i101.i, %bb36.bb20.loopexit_crit_edge.us.i.3.i %iter.sroa.60.0707.us.i68.i = phi i64 [ %221, %bb36.bb20.loopexit_crit_edge.us.i101.i ], [ 0, %bb36.bb20.loopexit_crit_edge.us.i.3.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i = shl i64 %iter.sroa.60.0707.us.i68.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i %start1.i.i.i.i.i.i.us.i71.i = shl i64 %iter.sroa.60.0707.us.i68.i, 5 %data.i.i.i.i.i.i.us.i72.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i71.i %data.i.i.i.i.i.i.i.i.us.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i %data.i.i.i.i.i.i.i.i.i.i.us.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i69.i %start1.i.i.i.i.us.i76.i = shl i64 %iter.sroa.60.0707.us.i68.i, 4 %181 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i76.i, i64 1 %w1.0.us.i77.i = load double, ptr %181, align 8, !alias.scope !5555, !noalias !5557, !noundef !3 %182 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i76.i, i64 1, i32 1 %w1.1.us.i78.i = load double, ptr %182, align 8, !alias.scope !5555, !noalias !5557, !noundef !3 %183 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i76.i, i64 2 %w2.0.us.i79.i = load double, ptr %183, align 8, !alias.scope !5555, !noalias !5557, !noundef !3 %184 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i76.i, i64 2, i32 1 %w2.1.us.i80.i = load double, ptr %184, align 8, !alias.scope !5555, !noalias !5557, !noundef !3 %185 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i76.i, i64 3 %w3.0.us.i81.i = load double, ptr %185, align 8, !alias.scope !5555, !noalias !5557, !noundef !3 %186 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i76.i, i64 3, i32 1 %w3.1.us.i82.i = load double, ptr %186, align 8, !alias.scope !5555, !noalias !5557, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i83.i = insertelement <2 x double> poison, double %w1.0.us.i77.i, i64 0 %187 = insertelement <4 x double> poison, double %w1.1.us.i78.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i84.i = insertelement <2 x double> poison, double %w2.0.us.i79.i, i64 0 %188 = insertelement <4 x double> poison, double %w2.1.us.i80.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i85.i = insertelement <2 x double> poison, double %w3.0.us.i81.i, i64 0 %189 = insertelement <4 x double> poison, double %w3.1.us.i82.i, i64 0 %190 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 16 %191 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 8 %192 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 24 %193 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i83.i, <2 x double> poison, <4 x i32> zeroinitializer %194 = shufflevector <4 x double> %187, <4 x double> poison, <4 x i32> zeroinitializer %195 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i84.i, <2 x double> poison, <4 x i32> zeroinitializer %196 = shufflevector <4 x double> %188, <4 x double> poison, <4 x i32> zeroinitializer %197 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i85.i, <2 x double> poison, <4 x i32> zeroinitializer %198 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i86.i bb38.us.i86.i: ; preds = %bb38.us.i86.i, %bb22.us.i67.i %iter5.sroa.50.0694.us.i87.i = phi i64 [ 0, %bb22.us.i67.i ], [ %199, %bb38.us.i86.i ] %199 = add nuw nsw i64 %iter5.sroa.50.0694.us.i87.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i88.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i70.i, i64 %iter5.sroa.50.0694.us.i87.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i89.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i75.i, i64 %iter5.sroa.50.0694.us.i87.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i90.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i74.i, i64 %iter5.sroa.50.0694.us.i87.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i91.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i73.i, i64 %iter5.sroa.50.0694.us.i87.i %_3.i.i.i.i.i.i.i.i.i.i.us.i92.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 %iter5.sroa.50.0694.us.i87.i %_3.i.i.i.i.i.i.i.i.us.i93.i = getelementptr inbounds %"fft_simd::c64x2", ptr %191, i64 %iter5.sroa.50.0694.us.i87.i %_3.i.i.i.i.i.i.us.i94.i = getelementptr inbounds %"fft_simd::c64x2", ptr %190, i64 %iter5.sroa.50.0694.us.i87.i %_3.i.i.i.i.us.i95.i = getelementptr inbounds %"fft_simd::c64x2", ptr %192, i64 %iter5.sroa.50.0694.us.i87.i %a.sroa.0.0.copyload.us.i96.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i92.i, align 8, !alias.scope !5553, !noalias !5558 %_84.sroa.0.0.copyload.us.i97.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i93.i, align 8, !alias.scope !5553, !noalias !5558 %200 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i97.i, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %194, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %193, <4 x double> %_84.sroa.0.0.copyload.us.i97.i, <4 x double> %201) #23 %_86.sroa.0.0.copyload.us.i98.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i94.i, align 8, !alias.scope !5553, !noalias !5558 %203 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i98.i, <4 x double> poison, <4 x i32> %204 = fmul <4 x double> %196, %203 %205 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %195, <4 x double> %_86.sroa.0.0.copyload.us.i98.i, <4 x double> %204) #23 %_88.sroa.0.0.copyload.us.i99.i = load <4 x double>, ptr %_3.i.i.i.i.us.i95.i, align 8, !alias.scope !5553, !noalias !5558 %206 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i99.i, <4 x double> poison, <4 x i32> %207 = fmul <4 x double> %198, %206 %208 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_88.sroa.0.0.copyload.us.i99.i, <4 x double> %207) #23 %209 = fadd <4 x double> %a.sroa.0.0.copyload.us.i96.i, %205 %210 = fsub <4 x double> %a.sroa.0.0.copyload.us.i96.i, %205 %211 = fadd <4 x double> %202, %208 %212 = fsub <4 x double> %202, %208 %213 = bitcast <4 x double> %212 to <4 x i64> %214 = xor <4 x i64> %213, %215 = bitcast <4 x i64> %214 to <4 x double> %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fadd <4 x double> %209, %211 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i88.i, align 8, !alias.scope !5550, !noalias !5559 %218 = fsub <4 x double> %210, %216 store <4 x double> %218, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i89.i, align 8, !alias.scope !5550, !noalias !5559 %219 = fsub <4 x double> %209, %211 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i90.i, align 8, !alias.scope !5550, !noalias !5559 %220 = fadd <4 x double> %210, %216 store <4 x double> %220, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i91.i, align 8, !alias.scope !5550, !noalias !5559 %exitcond.not.i100.i = icmp eq i64 %199, 8 br i1 %exitcond.not.i100.i, label %bb36.bb20.loopexit_crit_edge.us.i101.i, label %bb38.us.i86.i bb36.bb20.loopexit_crit_edge.us.i101.i: ; preds = %bb38.us.i86.i %221 = add nuw nsw i64 %iter.sroa.60.0707.us.i68.i, 1 %exitcond242.not.i = icmp eq i64 %221, 16 br i1 %exitcond242.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit103.i, label %bb22.us.i67.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit103.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i101.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5560) tail call void @llvm.experimental.noalias.scope.decl(metadata !5563) tail call void @llvm.experimental.noalias.scope.decl(metadata !5565) br label %bb22.us.i123.i bb22.us.i123.i: ; preds = %bb22.us.i123.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit103.i %iter.sroa.60.0707.us.i124.i = phi i64 [ %282, %bb22.us.i123.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit103.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i = shl nuw i64 %iter.sroa.60.0707.us.i124.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i126.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i %start1.i.i.i.i.i.i.us.i127.i = shl i64 %iter.sroa.60.0707.us.i124.i, 3 %data.i.i.i.i.i.i.us.i128.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i127.i %data.i.i.i.i.i.i.i.i.us.i129.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i %data.i.i.i.i.i.i.i.i.i.i.us.i130.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i131.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i125.i %start1.i.i.i.i.us.i132.i = shl i64 %iter.sroa.60.0707.us.i124.i, 2 %222 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i132.i, i64 1 %w1.0.us.i133.i = load double, ptr %222, align 8, !alias.scope !5565, !noalias !5567, !noundef !3 %223 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i132.i, i64 1, i32 1 %w1.1.us.i134.i = load double, ptr %223, align 8, !alias.scope !5565, !noalias !5567, !noundef !3 %224 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i132.i, i64 2 %w2.0.us.i135.i = load double, ptr %224, align 8, !alias.scope !5565, !noalias !5567, !noundef !3 %225 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i132.i, i64 2, i32 1 %w2.1.us.i136.i = load double, ptr %225, align 8, !alias.scope !5565, !noalias !5567, !noundef !3 %226 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i132.i, i64 3 %w3.0.us.i137.i = load double, ptr %226, align 8, !alias.scope !5565, !noalias !5567, !noundef !3 %227 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i132.i, i64 3, i32 1 %w3.1.us.i138.i = load double, ptr %227, align 8, !alias.scope !5565, !noalias !5567, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i139.i = insertelement <2 x double> poison, double %w1.0.us.i133.i, i64 0 %228 = insertelement <4 x double> poison, double %w1.1.us.i134.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i140.i = insertelement <2 x double> poison, double %w2.0.us.i135.i, i64 0 %229 = insertelement <4 x double> poison, double %w2.1.us.i136.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i141.i = insertelement <2 x double> poison, double %w3.0.us.i137.i, i64 0 %230 = insertelement <4 x double> poison, double %w3.1.us.i138.i, i64 0 %231 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 4 %232 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 2 %233 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 6 %234 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i139.i, <2 x double> poison, <4 x i32> zeroinitializer %235 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> zeroinitializer %236 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i140.i, <2 x double> poison, <4 x i32> zeroinitializer %237 = shufflevector <4 x double> %229, <4 x double> poison, <4 x i32> zeroinitializer %238 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i141.i, <2 x double> poison, <4 x i32> zeroinitializer %239 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i152.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i128.i, align 8, !alias.scope !5563, !noalias !5568 %_84.sroa.0.0.copyload.us.i153.i = load <4 x double>, ptr %232, align 8, !alias.scope !5563, !noalias !5568 %240 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i153.i, <4 x double> poison, <4 x i32> %241 = fmul <4 x double> %235, %240 %242 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %234, <4 x double> %_84.sroa.0.0.copyload.us.i153.i, <4 x double> %241) #23 %_86.sroa.0.0.copyload.us.i154.i = load <4 x double>, ptr %231, align 8, !alias.scope !5563, !noalias !5568 %243 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i154.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %237, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_86.sroa.0.0.copyload.us.i154.i, <4 x double> %244) #23 %_88.sroa.0.0.copyload.us.i155.i = load <4 x double>, ptr %233, align 8, !alias.scope !5563, !noalias !5568 %246 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i155.i, <4 x double> poison, <4 x i32> %247 = fmul <4 x double> %239, %246 %248 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %238, <4 x double> %_88.sroa.0.0.copyload.us.i155.i, <4 x double> %247) #23 %249 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.i, %245 %250 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.i, %245 %251 = fadd <4 x double> %242, %248 %252 = fsub <4 x double> %242, %248 %253 = bitcast <4 x double> %252 to <4 x i64> %254 = xor <4 x i64> %253, %255 = bitcast <4 x i64> %254 to <4 x double> %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fadd <4 x double> %249, %251 store <4 x double> %257, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i126.i, align 8, !alias.scope !5560, !noalias !5569 %258 = fsub <4 x double> %250, %256 store <4 x double> %258, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i131.i, align 8, !alias.scope !5560, !noalias !5569 %259 = fsub <4 x double> %249, %251 store <4 x double> %259, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i130.i, align 8, !alias.scope !5560, !noalias !5569 %260 = fadd <4 x double> %250, %256 store <4 x double> %260, ptr %data.i.i.i.i.i.i.i.i.us.i129.i, align 8, !alias.scope !5560, !noalias !5569 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i144.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i126.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i145.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i131.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i146.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i130.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i147.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i129.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i148.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i149.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 3 %_3.i.i.i.i.i.i.us.i150.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 5 %_3.i.i.i.i.us.i151.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i128.i, i64 7 %a.sroa.0.0.copyload.us.i152.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i148.1.i, align 8, !alias.scope !5563, !noalias !5568 %_84.sroa.0.0.copyload.us.i153.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i149.1.i, align 8, !alias.scope !5563, !noalias !5568 %261 = shufflevector <4 x double> %_84.sroa.0.0.copyload.us.i153.1.i, <4 x double> poison, <4 x i32> %262 = fmul <4 x double> %235, %261 %263 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %234, <4 x double> %_84.sroa.0.0.copyload.us.i153.1.i, <4 x double> %262) #23 %_86.sroa.0.0.copyload.us.i154.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i150.1.i, align 8, !alias.scope !5563, !noalias !5568 %264 = shufflevector <4 x double> %_86.sroa.0.0.copyload.us.i154.1.i, <4 x double> poison, <4 x i32> %265 = fmul <4 x double> %237, %264 %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %_86.sroa.0.0.copyload.us.i154.1.i, <4 x double> %265) #23 %_88.sroa.0.0.copyload.us.i155.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i151.1.i, align 8, !alias.scope !5563, !noalias !5568 %267 = shufflevector <4 x double> %_88.sroa.0.0.copyload.us.i155.1.i, <4 x double> poison, <4 x i32> %268 = fmul <4 x double> %239, %267 %269 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %238, <4 x double> %_88.sroa.0.0.copyload.us.i155.1.i, <4 x double> %268) #23 %270 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.1.i, %266 %271 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.1.i, %266 %272 = fadd <4 x double> %263, %269 %273 = fsub <4 x double> %263, %269 %274 = bitcast <4 x double> %273 to <4 x i64> %275 = xor <4 x i64> %274, %276 = bitcast <4 x i64> %275 to <4 x double> %277 = shufflevector <4 x double> %276, <4 x double> poison, <4 x i32> %278 = fadd <4 x double> %270, %272 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i144.1.i, align 8, !alias.scope !5560, !noalias !5569 %279 = fsub <4 x double> %271, %277 store <4 x double> %279, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i145.1.i, align 8, !alias.scope !5560, !noalias !5569 %280 = fsub <4 x double> %270, %272 store <4 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i146.1.i, align 8, !alias.scope !5560, !noalias !5569 %281 = fadd <4 x double> %271, %277 store <4 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i147.1.i, align 8, !alias.scope !5560, !noalias !5569 %282 = add nuw nsw i64 %iter.sroa.60.0707.us.i124.i, 1 %exitcond243.not.i = icmp eq i64 %282, 64 br i1 %exitcond243.not.i, label %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit159.i, label %bb22.us.i123.i _ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit159.i: ; preds = %bb22.us.i123.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5570) tail call void @llvm.experimental.noalias.scope.decl(metadata !5573) tail call void @llvm.experimental.noalias.scope.decl(metadata !5575) %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 br label %bb15.i162.i bb15.i162.i: ; preds = %bb15.i162.i, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit159.i %iter.sroa.50.0547.i.i = phi i64 [ %286, %bb15.i162.i ], [ 0, %_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE.exit159.i ] %286 = add nuw nsw i64 %iter.sroa.50.0547.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %iter.sroa.50.0547.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %iter.sroa.50.0547.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5575, !noalias !5577 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5575, !noalias !5577 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5575, !noalias !5577 %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5573, !noalias !5578 %287 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 1 %cd0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %287, align 8, !alias.scope !5573, !noalias !5578 %288 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 2 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %288, align 8, !alias.scope !5573, !noalias !5578 %289 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0547.i.i, i64 3 %cd1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %289, align 8, !alias.scope !5573, !noalias !5578 %290 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %291 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %294 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %295 = fmul <4 x double> %294, %292 %296 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %293, <4 x double> %291, <4 x double> %295) #23 %297 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %298 = shufflevector <4 x double> %297, <4 x double> poison, <4 x i32> %299 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %300 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %301 = fmul <4 x double> %300, %298 %302 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %299, <4 x double> %297, <4 x double> %301) #23 %303 = shufflevector <4 x double> %cd0.sroa.0.0.copyload.i.i, <4 x double> %cd1.sroa.0.0.copyload.i.i, <4 x i32> %304 = shufflevector <4 x double> %303, <4 x double> poison, <4 x i32> %305 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %306 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %307 = fmul <4 x double> %306, %304 %308 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %305, <4 x double> %303, <4 x double> %307) #23 %309 = fadd <4 x double> %290, %302 %310 = fsub <4 x double> %290, %302 %311 = fadd <4 x double> %296, %308 %312 = fsub <4 x double> %296, %308 %313 = bitcast <4 x double> %312 to <4 x i64> %314 = xor <4 x i64> %313, %315 = bitcast <4 x i64> %314 to <4 x double> %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fadd <4 x double> %309, %311 store <4 x double> %317, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5570, !noalias !5579 %318 = fsub <4 x double> %310, %316 store <4 x double> %318, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5570, !noalias !5579 %319 = fsub <4 x double> %309, %311 store <4 x double> %319, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5570, !noalias !5579 %320 = fadd <4 x double> %310, %316 store <4 x double> %320, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5570, !noalias !5579 %exitcond.not.i163.i = icmp eq i64 %286, 128 br i1 %exitcond.not.i163.i, label %_ZN4pulp3x862V39vectorize6__impl17h00f3506c41e4aa0bE.exit, label %bb15.i162.i _ZN4pulp3x862V39vectorize6__impl17h00f3506c41e4aa0bE.exit: ; preds = %bb15.i162.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5531 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he995f1c3f2a4cc81E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5580 store i64 256, ptr %n.i.i, align 8, !noalias !5580 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5580 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5580 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5580 store ptr null, ptr %_16.i.i, align 8, !noalias !5580 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5580 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5580 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5580 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5580 store ptr null, ptr %_24.i.i, align 8, !noalias !5580 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5580 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5580 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5580 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5580 store ptr null, ptr %_32.i.i, align 8, !noalias !5580 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5580 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5580 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5580 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4bdbc4ca68c5e24cE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5580 store ptr null, ptr %_40.i.i, align 8, !noalias !5580 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4bdbc4ca68c5e24cE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5580 tail call void @llvm.experimental.noalias.scope.decl(metadata !5585) tail call void @llvm.experimental.noalias.scope.decl(metadata !5588) tail call void @llvm.experimental.noalias.scope.decl(metadata !5590) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4bdbc4ca68c5e24cE.exit.i" %iter.sroa.22.0124.i.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4bdbc4ca68c5e24cE.exit.i" ], [ %15, %bb9.i.i ] %4 = or disjoint i64 %iter.sroa.22.0124.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0124.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.22.0124.i.i %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5585, !noalias !5592 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5585, !noalias !5592 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5590, !noalias !5593 %5 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %7 = shufflevector <4 x double> %6, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %10 = fmul <4 x double> %9, %7 %11 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %8, <4 x double> %6, <4 x double> %10) #23 %12 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5588, !noalias !5594 %13 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> %14 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i, i64 1 store <4 x double> %13, ptr %14, align 8, !alias.scope !5588, !noalias !5594 %15 = add nuw nsw i64 %iter.sroa.22.0124.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %a.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5585, !noalias !5592 %b.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5585, !noalias !5592 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !5590, !noalias !5593 %16 = fadd <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %17 = fsub <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> store <4 x double> %23, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5588, !noalias !5594 %24 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %25 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4, i64 1 store <4 x double> %24, ptr %25, align 8, !alias.scope !5588, !noalias !5594 %exitcond.not.i.i.1 = icmp eq i64 %15, 64 br i1 %exitcond.not.i.i.1, label %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i, label %bb9.i.i _ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i: ; preds = %bb9.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5595) tail call void @llvm.experimental.noalias.scope.decl(metadata !5598) tail call void @llvm.experimental.noalias.scope.decl(metadata !5600) %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 br label %bb17.us.i.i bb17.us.i.i: ; preds = %bb17.us.i.i, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i %iter.sroa.38.0207.us.i.i = phi i64 [ 0, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i ], [ %50, %bb17.us.i.i ] %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0207.us.i.i %data.i5.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.38.0207.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %27 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %27, align 8, !alias.scope !5600, !noalias !5602, !noundef !3 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %28, align 8, !alias.scope !5600, !noalias !5602, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %31 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5595, !noalias !5603 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5595, !noalias !5603 %33 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i store <4 x double> %33, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5598, !noalias !5604 %34 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %32, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %34, <4 x double> %36) #23 store <4 x double> %37, ptr %30, align 8, !alias.scope !5598, !noalias !5604 %38 = or disjoint i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %38 %data.i5.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %38 %start1.i.i.i.i.i.i.us.i.i.1 = shl nuw i64 %38, 1 %data.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i.1 %39 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1 %w1.0.us.i.i.1 = load double, ptr %39, align 8, !alias.scope !5600, !noalias !5602, !noundef !3 %40 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1, i32 1 %w1.1.us.i.i.1 = load double, ptr %40, align 8, !alias.scope !5600, !noalias !5602, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i.1 = insertelement <2 x double> poison, double %w1.0.us.i.i.1, i64 0 %41 = insertelement <4 x double> poison, double %w1.1.us.i.i.1, i64 0 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i.1, i64 1 %43 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i.1, <2 x double> poison, <4 x i32> zeroinitializer %44 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5595, !noalias !5603 %b.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5595, !noalias !5603 %45 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 store <4 x double> %45, ptr %data.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5598, !noalias !5604 %46 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %44, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %46, <4 x double> %48) #23 store <4 x double> %49, ptr %42, align 8, !alias.scope !5598, !noalias !5604 %50 = add nuw nsw i64 %iter.sroa.38.0207.us.i.i, 2 %exitcond.not.i.1 = icmp eq i64 %50, 64 br i1 %exitcond.not.i.1, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i, label %bb17.us.i.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i: ; preds = %bb17.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5605) tail call void @llvm.experimental.noalias.scope.decl(metadata !5608) tail call void @llvm.experimental.noalias.scope.decl(metadata !5610) br label %bb17.us.i31.i bb17.us.i31.i: ; preds = %bb17.us.i31.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i %iter.sroa.38.0207.us.i32.i = phi i64 [ %67, %bb17.us.i31.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i ] %start1.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i32.i, 1 %data.i.i.i.i.i.i.i.i.us.i33.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.us.i34.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i35.i = shl i64 %iter.sroa.38.0207.us.i32.i, 2 %data.i.i.i.i.i.i.us.i36.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i35.i %51 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i35.i, i64 1 %w1.0.us.i37.i = load double, ptr %51, align 8, !alias.scope !5610, !noalias !5612, !noundef !3 %52 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i35.i, i64 1, i32 1 %w1.1.us.i38.i = load double, ptr %52, align 8, !alias.scope !5610, !noalias !5612, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i39.i = insertelement <2 x double> poison, double %w1.0.us.i37.i, i64 0 %53 = insertelement <4 x double> poison, double %w1.1.us.i38.i, i64 0 %54 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i36.i, i64 2 %55 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i39.i, <2 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i46.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i33.i, align 8, !alias.scope !5605, !noalias !5613 %b.sroa.0.0.copyload.us.i47.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i34.i, align 8, !alias.scope !5605, !noalias !5613 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.i, %b.sroa.0.0.copyload.us.i47.i store <4 x double> %57, ptr %data.i.i.i.i.i.i.us.i36.i, align 8, !alias.scope !5608, !noalias !5614 %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.i, %b.sroa.0.0.copyload.us.i47.i %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %56, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %58, <4 x double> %60) #23 store <4 x double> %61, ptr %54, align 8, !alias.scope !5608, !noalias !5614 %_3.i.i.i.i.i.i.i.i.us.i42.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i33.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i34.i, i64 1 %_3.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i36.i, i64 1 %_3.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i36.i, i64 3 %a.sroa.0.0.copyload.us.i46.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i42.1.i, align 8, !alias.scope !5605, !noalias !5613 %b.sroa.0.0.copyload.us.i47.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i43.1.i, align 8, !alias.scope !5605, !noalias !5613 %62 = fadd <4 x double> %a.sroa.0.0.copyload.us.i46.1.i, %b.sroa.0.0.copyload.us.i47.1.i store <4 x double> %62, ptr %_3.i.i.i.i.i.i.us.i44.1.i, align 8, !alias.scope !5608, !noalias !5614 %63 = fsub <4 x double> %a.sroa.0.0.copyload.us.i46.1.i, %b.sroa.0.0.copyload.us.i47.1.i %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %56, %64 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %63, <4 x double> %65) #23 store <4 x double> %66, ptr %_3.i.i.i.i.us.i45.1.i, align 8, !alias.scope !5608, !noalias !5614 %67 = add nuw nsw i64 %iter.sroa.38.0207.us.i32.i, 1 %exitcond232.not.i = icmp eq i64 %67, 32 br i1 %exitcond232.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i, label %bb17.us.i31.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i: ; preds = %bb17.us.i31.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5615) tail call void @llvm.experimental.noalias.scope.decl(metadata !5618) tail call void @llvm.experimental.noalias.scope.decl(metadata !5620) br label %bb17.us.i65.i bb17.us.i65.i: ; preds = %bb17.us.i65.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i %iter.sroa.38.0207.us.i66.i = phi i64 [ %94, %bb17.us.i65.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit51.i ] %start1.i.i.i.i.i.i.i.i.us.i67.i = shl i64 %iter.sroa.38.0207.us.i66.i, 2 %data.i.i.i.i.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i67.i %data.i5.i.i.i.i.i.i.i.us.i69.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i67.i %start1.i.i.i.i.i.i.us.i70.i = shl i64 %iter.sroa.38.0207.us.i66.i, 3 %data.i.i.i.i.i.i.us.i71.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i70.i %68 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i70.i, i64 1 %w1.0.us.i72.i = load double, ptr %68, align 8, !alias.scope !5620, !noalias !5622, !noundef !3 %69 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i70.i, i64 1, i32 1 %w1.1.us.i73.i = load double, ptr %69, align 8, !alias.scope !5620, !noalias !5622, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i74.i = insertelement <2 x double> poison, double %w1.0.us.i72.i, i64 0 %70 = insertelement <4 x double> poison, double %w1.1.us.i73.i, i64 0 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 4 %72 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i74.i, <2 x double> poison, <4 x i32> zeroinitializer %73 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i81.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i68.i, align 8, !alias.scope !5615, !noalias !5623 %b.sroa.0.0.copyload.us.i82.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, align 8, !alias.scope !5615, !noalias !5623 %74 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.i, %b.sroa.0.0.copyload.us.i82.i store <4 x double> %74, ptr %data.i.i.i.i.i.i.us.i71.i, align 8, !alias.scope !5618, !noalias !5624 %75 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.i, %b.sroa.0.0.copyload.us.i82.i %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %73, %76 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %75, <4 x double> %77) #23 store <4 x double> %78, ptr %71, align 8, !alias.scope !5618, !noalias !5624 %_3.i.i.i.i.i.i.i.i.us.i77.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i68.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i78.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, i64 1 %_3.i.i.i.i.i.i.us.i79.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 1 %_3.i.i.i.i.us.i80.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 5 %a.sroa.0.0.copyload.us.i81.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.1.i, align 8, !alias.scope !5615, !noalias !5623 %b.sroa.0.0.copyload.us.i82.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i78.1.i, align 8, !alias.scope !5615, !noalias !5623 %79 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.1.i, %b.sroa.0.0.copyload.us.i82.1.i store <4 x double> %79, ptr %_3.i.i.i.i.i.i.us.i79.1.i, align 8, !alias.scope !5618, !noalias !5624 %80 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.1.i, %b.sroa.0.0.copyload.us.i82.1.i %81 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %73, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %80, <4 x double> %82) #23 store <4 x double> %83, ptr %_3.i.i.i.i.us.i80.1.i, align 8, !alias.scope !5618, !noalias !5624 %_3.i.i.i.i.i.i.i.i.us.i77.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i68.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i78.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, i64 2 %_3.i.i.i.i.i.i.us.i79.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 2 %_3.i.i.i.i.us.i80.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 6 %a.sroa.0.0.copyload.us.i81.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.2.i, align 8, !alias.scope !5615, !noalias !5623 %b.sroa.0.0.copyload.us.i82.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i78.2.i, align 8, !alias.scope !5615, !noalias !5623 %84 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.2.i, %b.sroa.0.0.copyload.us.i82.2.i store <4 x double> %84, ptr %_3.i.i.i.i.i.i.us.i79.2.i, align 8, !alias.scope !5618, !noalias !5624 %85 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.2.i, %b.sroa.0.0.copyload.us.i82.2.i %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %73, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %85, <4 x double> %87) #23 store <4 x double> %88, ptr %_3.i.i.i.i.us.i80.2.i, align 8, !alias.scope !5618, !noalias !5624 %_3.i.i.i.i.i.i.i.i.us.i77.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i68.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i78.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i69.i, i64 3 %_3.i.i.i.i.i.i.us.i79.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 3 %_3.i.i.i.i.us.i80.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i71.i, i64 7 %a.sroa.0.0.copyload.us.i81.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i77.3.i, align 8, !alias.scope !5615, !noalias !5623 %b.sroa.0.0.copyload.us.i82.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i78.3.i, align 8, !alias.scope !5615, !noalias !5623 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i81.3.i, %b.sroa.0.0.copyload.us.i82.3.i store <4 x double> %89, ptr %_3.i.i.i.i.i.i.us.i79.3.i, align 8, !alias.scope !5618, !noalias !5624 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i81.3.i, %b.sroa.0.0.copyload.us.i82.3.i %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %73, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %90, <4 x double> %92) #23 store <4 x double> %93, ptr %_3.i.i.i.i.us.i80.3.i, align 8, !alias.scope !5618, !noalias !5624 %94 = add nuw nsw i64 %iter.sroa.38.0207.us.i66.i, 1 %exitcond233.not.i = icmp eq i64 %94, 16 br i1 %exitcond233.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i, label %bb17.us.i65.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i: ; preds = %bb17.us.i65.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5625) tail call void @llvm.experimental.noalias.scope.decl(metadata !5628) tail call void @llvm.experimental.noalias.scope.decl(metadata !5630) br label %bb17.us.i100.i bb17.us.i100.i: ; preds = %bb17.us.i100.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i %iter.sroa.38.0207.us.i101.i = phi i64 [ %141, %bb17.us.i100.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit86.i ] %start1.i.i.i.i.i.i.i.i.us.i102.i = shl i64 %iter.sroa.38.0207.us.i101.i, 3 %data.i.i.i.i.i.i.i.i.us.i103.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i102.i %data.i5.i.i.i.i.i.i.i.us.i104.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i102.i %start1.i.i.i.i.i.i.us.i105.i = shl i64 %iter.sroa.38.0207.us.i101.i, 4 %data.i.i.i.i.i.i.us.i106.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i105.i %95 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i105.i, i64 1 %w1.0.us.i107.i = load double, ptr %95, align 8, !alias.scope !5630, !noalias !5632, !noundef !3 %96 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i105.i, i64 1, i32 1 %w1.1.us.i108.i = load double, ptr %96, align 8, !alias.scope !5630, !noalias !5632, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i109.i = insertelement <2 x double> poison, double %w1.0.us.i107.i, i64 0 %97 = insertelement <4 x double> poison, double %w1.1.us.i108.i, i64 0 %98 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 8 %99 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i109.i, <2 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i116.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i103.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, align 8, !alias.scope !5625, !noalias !5633 %101 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.i, %b.sroa.0.0.copyload.us.i117.i store <4 x double> %101, ptr %data.i.i.i.i.i.i.us.i106.i, align 8, !alias.scope !5628, !noalias !5634 %102 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.i, %b.sroa.0.0.copyload.us.i117.i %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %100, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %98, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i113.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 1 %_3.i.i.i.i.i.i.us.i114.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 1 %_3.i.i.i.i.us.i115.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 9 %a.sroa.0.0.copyload.us.i116.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.1.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.1.i, align 8, !alias.scope !5625, !noalias !5633 %106 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.1.i, %b.sroa.0.0.copyload.us.i117.1.i store <4 x double> %106, ptr %_3.i.i.i.i.i.i.us.i114.1.i, align 8, !alias.scope !5628, !noalias !5634 %107 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.1.i, %b.sroa.0.0.copyload.us.i117.1.i %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %100, %108 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %107, <4 x double> %109) #23 store <4 x double> %110, ptr %_3.i.i.i.i.us.i115.1.i, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i113.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 2 %_3.i.i.i.i.i.i.us.i114.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 2 %_3.i.i.i.i.us.i115.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 10 %a.sroa.0.0.copyload.us.i116.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.2.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.2.i, align 8, !alias.scope !5625, !noalias !5633 %111 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.2.i, %b.sroa.0.0.copyload.us.i117.2.i store <4 x double> %111, ptr %_3.i.i.i.i.i.i.us.i114.2.i, align 8, !alias.scope !5628, !noalias !5634 %112 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.2.i, %b.sroa.0.0.copyload.us.i117.2.i %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %100, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %112, <4 x double> %114) #23 store <4 x double> %115, ptr %_3.i.i.i.i.us.i115.2.i, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i113.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 3 %_3.i.i.i.i.i.i.us.i114.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 3 %_3.i.i.i.i.us.i115.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 11 %a.sroa.0.0.copyload.us.i116.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.3.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.3.i, align 8, !alias.scope !5625, !noalias !5633 %116 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.3.i, %b.sroa.0.0.copyload.us.i117.3.i store <4 x double> %116, ptr %_3.i.i.i.i.i.i.us.i114.3.i, align 8, !alias.scope !5628, !noalias !5634 %117 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.3.i, %b.sroa.0.0.copyload.us.i117.3.i %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %100, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %117, <4 x double> %119) #23 store <4 x double> %120, ptr %_3.i.i.i.i.us.i115.3.i, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i113.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 4 %_3.i.i.i.i.i.i.us.i114.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 4 %_3.i.i.i.i.us.i115.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 12 %a.sroa.0.0.copyload.us.i116.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.4.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.4.i, align 8, !alias.scope !5625, !noalias !5633 %121 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.4.i, %b.sroa.0.0.copyload.us.i117.4.i store <4 x double> %121, ptr %_3.i.i.i.i.i.i.us.i114.4.i, align 8, !alias.scope !5628, !noalias !5634 %122 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.4.i, %b.sroa.0.0.copyload.us.i117.4.i %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %100, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %122, <4 x double> %124) #23 store <4 x double> %125, ptr %_3.i.i.i.i.us.i115.4.i, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i113.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 5 %_3.i.i.i.i.i.i.us.i114.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 5 %_3.i.i.i.i.us.i115.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 13 %a.sroa.0.0.copyload.us.i116.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.5.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.5.i, align 8, !alias.scope !5625, !noalias !5633 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.5.i, %b.sroa.0.0.copyload.us.i117.5.i store <4 x double> %126, ptr %_3.i.i.i.i.i.i.us.i114.5.i, align 8, !alias.scope !5628, !noalias !5634 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.5.i, %b.sroa.0.0.copyload.us.i117.5.i %128 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %100, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %127, <4 x double> %129) #23 store <4 x double> %130, ptr %_3.i.i.i.i.us.i115.5.i, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i113.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 6 %_3.i.i.i.i.i.i.us.i114.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 6 %_3.i.i.i.i.us.i115.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 14 %a.sroa.0.0.copyload.us.i116.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.6.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.6.i, align 8, !alias.scope !5625, !noalias !5633 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.6.i, %b.sroa.0.0.copyload.us.i117.6.i store <4 x double> %131, ptr %_3.i.i.i.i.i.i.us.i114.6.i, align 8, !alias.scope !5628, !noalias !5634 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.6.i, %b.sroa.0.0.copyload.us.i117.6.i %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %100, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %132, <4 x double> %134) #23 store <4 x double> %135, ptr %_3.i.i.i.i.us.i115.6.i, align 8, !alias.scope !5628, !noalias !5634 %_3.i.i.i.i.i.i.i.i.us.i112.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i103.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i113.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i104.i, i64 7 %_3.i.i.i.i.i.i.us.i114.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 7 %_3.i.i.i.i.us.i115.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i106.i, i64 15 %a.sroa.0.0.copyload.us.i116.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i112.7.i, align 8, !alias.scope !5625, !noalias !5633 %b.sroa.0.0.copyload.us.i117.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i113.7.i, align 8, !alias.scope !5625, !noalias !5633 %136 = fadd <4 x double> %a.sroa.0.0.copyload.us.i116.7.i, %b.sroa.0.0.copyload.us.i117.7.i store <4 x double> %136, ptr %_3.i.i.i.i.i.i.us.i114.7.i, align 8, !alias.scope !5628, !noalias !5634 %137 = fsub <4 x double> %a.sroa.0.0.copyload.us.i116.7.i, %b.sroa.0.0.copyload.us.i117.7.i %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %100, %138 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %137, <4 x double> %139) #23 store <4 x double> %140, ptr %_3.i.i.i.i.us.i115.7.i, align 8, !alias.scope !5628, !noalias !5634 %141 = add nuw nsw i64 %iter.sroa.38.0207.us.i101.i, 1 %exitcond234.not.i = icmp eq i64 %141, 8 br i1 %exitcond234.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i, label %bb17.us.i100.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i: ; preds = %bb17.us.i100.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5635) tail call void @llvm.experimental.noalias.scope.decl(metadata !5638) tail call void @llvm.experimental.noalias.scope.decl(metadata !5640) br label %bb17.us.i135.i bb17.us.i135.i: ; preds = %bb17.us.i135.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i %iter.sroa.38.0207.us.i136.i = phi i64 [ %228, %bb17.us.i135.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit121.i ] %start1.i.i.i.i.i.i.i.i.us.i137.i = shl i64 %iter.sroa.38.0207.us.i136.i, 4 %data.i.i.i.i.i.i.i.i.us.i138.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i137.i %data.i5.i.i.i.i.i.i.i.us.i139.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i137.i %start1.i.i.i.i.i.i.us.i140.i = shl i64 %iter.sroa.38.0207.us.i136.i, 5 %data.i.i.i.i.i.i.us.i141.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i140.i %142 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i140.i, i64 1 %w1.0.us.i142.i = load double, ptr %142, align 8, !alias.scope !5640, !noalias !5642, !noundef !3 %143 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i140.i, i64 1, i32 1 %w1.1.us.i143.i = load double, ptr %143, align 8, !alias.scope !5640, !noalias !5642, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i144.i = insertelement <2 x double> poison, double %w1.0.us.i142.i, i64 0 %144 = insertelement <4 x double> poison, double %w1.1.us.i143.i, i64 0 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 16 %146 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i144.i, <2 x double> poison, <4 x i32> zeroinitializer %147 = shufflevector <4 x double> %144, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i151.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i138.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, align 8, !alias.scope !5635, !noalias !5643 %148 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.i, %b.sroa.0.0.copyload.us.i152.i store <4 x double> %148, ptr %data.i.i.i.i.i.i.us.i141.i, align 8, !alias.scope !5638, !noalias !5644 %149 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.i, %b.sroa.0.0.copyload.us.i152.i %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %147, %150 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %149, <4 x double> %151) #23 store <4 x double> %152, ptr %145, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i148.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 1 %_3.i.i.i.i.i.i.us.i149.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 1 %_3.i.i.i.i.us.i150.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 17 %a.sroa.0.0.copyload.us.i151.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.1.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.1.i, align 8, !alias.scope !5635, !noalias !5643 %153 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.1.i, %b.sroa.0.0.copyload.us.i152.1.i store <4 x double> %153, ptr %_3.i.i.i.i.i.i.us.i149.1.i, align 8, !alias.scope !5638, !noalias !5644 %154 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.1.i, %b.sroa.0.0.copyload.us.i152.1.i %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %147, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %154, <4 x double> %156) #23 store <4 x double> %157, ptr %_3.i.i.i.i.us.i150.1.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i148.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 2 %_3.i.i.i.i.i.i.us.i149.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 2 %_3.i.i.i.i.us.i150.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 18 %a.sroa.0.0.copyload.us.i151.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.2.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.2.i, align 8, !alias.scope !5635, !noalias !5643 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.2.i, %b.sroa.0.0.copyload.us.i152.2.i store <4 x double> %158, ptr %_3.i.i.i.i.i.i.us.i149.2.i, align 8, !alias.scope !5638, !noalias !5644 %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.2.i, %b.sroa.0.0.copyload.us.i152.2.i %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %147, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %159, <4 x double> %161) #23 store <4 x double> %162, ptr %_3.i.i.i.i.us.i150.2.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i148.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 3 %_3.i.i.i.i.i.i.us.i149.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 3 %_3.i.i.i.i.us.i150.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 19 %a.sroa.0.0.copyload.us.i151.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.3.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.3.i, align 8, !alias.scope !5635, !noalias !5643 %163 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.3.i, %b.sroa.0.0.copyload.us.i152.3.i store <4 x double> %163, ptr %_3.i.i.i.i.i.i.us.i149.3.i, align 8, !alias.scope !5638, !noalias !5644 %164 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.3.i, %b.sroa.0.0.copyload.us.i152.3.i %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %147, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %164, <4 x double> %166) #23 store <4 x double> %167, ptr %_3.i.i.i.i.us.i150.3.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i148.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 4 %_3.i.i.i.i.i.i.us.i149.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 4 %_3.i.i.i.i.us.i150.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 20 %a.sroa.0.0.copyload.us.i151.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.4.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.4.i, align 8, !alias.scope !5635, !noalias !5643 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.4.i, %b.sroa.0.0.copyload.us.i152.4.i store <4 x double> %168, ptr %_3.i.i.i.i.i.i.us.i149.4.i, align 8, !alias.scope !5638, !noalias !5644 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.4.i, %b.sroa.0.0.copyload.us.i152.4.i %170 = shufflevector <4 x double> %169, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %147, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %169, <4 x double> %171) #23 store <4 x double> %172, ptr %_3.i.i.i.i.us.i150.4.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i148.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 5 %_3.i.i.i.i.i.i.us.i149.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 5 %_3.i.i.i.i.us.i150.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 21 %a.sroa.0.0.copyload.us.i151.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.5.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.5.i, align 8, !alias.scope !5635, !noalias !5643 %173 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.5.i, %b.sroa.0.0.copyload.us.i152.5.i store <4 x double> %173, ptr %_3.i.i.i.i.i.i.us.i149.5.i, align 8, !alias.scope !5638, !noalias !5644 %174 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.5.i, %b.sroa.0.0.copyload.us.i152.5.i %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %147, %175 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %174, <4 x double> %176) #23 store <4 x double> %177, ptr %_3.i.i.i.i.us.i150.5.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i148.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 6 %_3.i.i.i.i.i.i.us.i149.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 6 %_3.i.i.i.i.us.i150.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 22 %a.sroa.0.0.copyload.us.i151.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.6.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.6.i, align 8, !alias.scope !5635, !noalias !5643 %178 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.6.i, %b.sroa.0.0.copyload.us.i152.6.i store <4 x double> %178, ptr %_3.i.i.i.i.i.i.us.i149.6.i, align 8, !alias.scope !5638, !noalias !5644 %179 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.6.i, %b.sroa.0.0.copyload.us.i152.6.i %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %147, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.us.i150.6.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i148.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 7 %_3.i.i.i.i.i.i.us.i149.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 7 %_3.i.i.i.i.us.i150.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 23 %a.sroa.0.0.copyload.us.i151.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.7.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.7.i, align 8, !alias.scope !5635, !noalias !5643 %183 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.7.i, %b.sroa.0.0.copyload.us.i152.7.i store <4 x double> %183, ptr %_3.i.i.i.i.i.i.us.i149.7.i, align 8, !alias.scope !5638, !noalias !5644 %184 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.7.i, %b.sroa.0.0.copyload.us.i152.7.i %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %147, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %184, <4 x double> %186) #23 store <4 x double> %187, ptr %_3.i.i.i.i.us.i150.7.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i148.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 8 %_3.i.i.i.i.i.i.us.i149.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 8 %_3.i.i.i.i.us.i150.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 24 %a.sroa.0.0.copyload.us.i151.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.8.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.8.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.8.i, align 8, !alias.scope !5635, !noalias !5643 %188 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.8.i, %b.sroa.0.0.copyload.us.i152.8.i store <4 x double> %188, ptr %_3.i.i.i.i.i.i.us.i149.8.i, align 8, !alias.scope !5638, !noalias !5644 %189 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.8.i, %b.sroa.0.0.copyload.us.i152.8.i %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %147, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %189, <4 x double> %191) #23 store <4 x double> %192, ptr %_3.i.i.i.i.us.i150.8.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i148.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 9 %_3.i.i.i.i.i.i.us.i149.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 9 %_3.i.i.i.i.us.i150.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 25 %a.sroa.0.0.copyload.us.i151.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.9.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.9.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.9.i, align 8, !alias.scope !5635, !noalias !5643 %193 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.9.i, %b.sroa.0.0.copyload.us.i152.9.i store <4 x double> %193, ptr %_3.i.i.i.i.i.i.us.i149.9.i, align 8, !alias.scope !5638, !noalias !5644 %194 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.9.i, %b.sroa.0.0.copyload.us.i152.9.i %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %147, %195 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %194, <4 x double> %196) #23 store <4 x double> %197, ptr %_3.i.i.i.i.us.i150.9.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i148.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 10 %_3.i.i.i.i.i.i.us.i149.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 10 %_3.i.i.i.i.us.i150.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 26 %a.sroa.0.0.copyload.us.i151.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.10.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.10.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.10.i, align 8, !alias.scope !5635, !noalias !5643 %198 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.10.i, %b.sroa.0.0.copyload.us.i152.10.i store <4 x double> %198, ptr %_3.i.i.i.i.i.i.us.i149.10.i, align 8, !alias.scope !5638, !noalias !5644 %199 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.10.i, %b.sroa.0.0.copyload.us.i152.10.i %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %147, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %199, <4 x double> %201) #23 store <4 x double> %202, ptr %_3.i.i.i.i.us.i150.10.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i148.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 11 %_3.i.i.i.i.i.i.us.i149.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 11 %_3.i.i.i.i.us.i150.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 27 %a.sroa.0.0.copyload.us.i151.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.11.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.11.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.11.i, align 8, !alias.scope !5635, !noalias !5643 %203 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.11.i, %b.sroa.0.0.copyload.us.i152.11.i store <4 x double> %203, ptr %_3.i.i.i.i.i.i.us.i149.11.i, align 8, !alias.scope !5638, !noalias !5644 %204 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.11.i, %b.sroa.0.0.copyload.us.i152.11.i %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %147, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %204, <4 x double> %206) #23 store <4 x double> %207, ptr %_3.i.i.i.i.us.i150.11.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i148.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 12 %_3.i.i.i.i.i.i.us.i149.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 12 %_3.i.i.i.i.us.i150.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 28 %a.sroa.0.0.copyload.us.i151.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.12.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.12.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.12.i, align 8, !alias.scope !5635, !noalias !5643 %208 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.12.i, %b.sroa.0.0.copyload.us.i152.12.i store <4 x double> %208, ptr %_3.i.i.i.i.i.i.us.i149.12.i, align 8, !alias.scope !5638, !noalias !5644 %209 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.12.i, %b.sroa.0.0.copyload.us.i152.12.i %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = fmul <4 x double> %147, %210 %212 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %209, <4 x double> %211) #23 store <4 x double> %212, ptr %_3.i.i.i.i.us.i150.12.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i148.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 13 %_3.i.i.i.i.i.i.us.i149.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 13 %_3.i.i.i.i.us.i150.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 29 %a.sroa.0.0.copyload.us.i151.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.13.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.13.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.13.i, align 8, !alias.scope !5635, !noalias !5643 %213 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.13.i, %b.sroa.0.0.copyload.us.i152.13.i store <4 x double> %213, ptr %_3.i.i.i.i.i.i.us.i149.13.i, align 8, !alias.scope !5638, !noalias !5644 %214 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.13.i, %b.sroa.0.0.copyload.us.i152.13.i %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %147, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.us.i150.13.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i148.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 14 %_3.i.i.i.i.i.i.us.i149.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 14 %_3.i.i.i.i.us.i150.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 30 %a.sroa.0.0.copyload.us.i151.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.14.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.14.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.14.i, align 8, !alias.scope !5635, !noalias !5643 %218 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.14.i, %b.sroa.0.0.copyload.us.i152.14.i store <4 x double> %218, ptr %_3.i.i.i.i.i.i.us.i149.14.i, align 8, !alias.scope !5638, !noalias !5644 %219 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.14.i, %b.sroa.0.0.copyload.us.i152.14.i %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %147, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.us.i150.14.i, align 8, !alias.scope !5638, !noalias !5644 %_3.i.i.i.i.i.i.i.i.us.i147.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i138.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i148.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i139.i, i64 15 %_3.i.i.i.i.i.i.us.i149.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 15 %_3.i.i.i.i.us.i150.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 31 %a.sroa.0.0.copyload.us.i151.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i147.15.i, align 8, !alias.scope !5635, !noalias !5643 %b.sroa.0.0.copyload.us.i152.15.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i148.15.i, align 8, !alias.scope !5635, !noalias !5643 %223 = fadd <4 x double> %a.sroa.0.0.copyload.us.i151.15.i, %b.sroa.0.0.copyload.us.i152.15.i store <4 x double> %223, ptr %_3.i.i.i.i.i.i.us.i149.15.i, align 8, !alias.scope !5638, !noalias !5644 %224 = fsub <4 x double> %a.sroa.0.0.copyload.us.i151.15.i, %b.sroa.0.0.copyload.us.i152.15.i %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %147, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %224, <4 x double> %226) #23 store <4 x double> %227, ptr %_3.i.i.i.i.us.i150.15.i, align 8, !alias.scope !5638, !noalias !5644 %228 = add nuw nsw i64 %iter.sroa.38.0207.us.i136.i, 1 %exitcond235.not.i = icmp eq i64 %228, 4 br i1 %exitcond235.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i, label %bb17.us.i135.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i: ; preds = %bb17.us.i135.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5645) tail call void @llvm.experimental.noalias.scope.decl(metadata !5648) tail call void @llvm.experimental.noalias.scope.decl(metadata !5650) %229 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i177.i = load double, ptr %229, align 8, !alias.scope !5650, !noalias !5652, !noundef !3 %230 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i178.i = load double, ptr %230, align 8, !alias.scope !5650, !noalias !5652, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i179.i = insertelement <2 x double> poison, double %w1.0.us.i177.i, i64 0 %231 = insertelement <4 x double> poison, double %w1.1.us.i178.i, i64 0 %232 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %233 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i179.i, <2 x double> poison, <4 x i32> zeroinitializer %234 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i180.i bb26.us.i180.i: ; preds = %bb26.us.i180.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i %iter6.sroa.22.0205.us.i181.i = phi i64 [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit156.i ], [ %241, %bb26.us.i180.i ] %235 = or disjoint i64 %iter6.sroa.22.0205.us.i181.i, 1 %_3.i.i.i.i.i.i.i.i.us.i182.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0205.us.i181.i %_3.i2.i.i.i.i.i.i.i.us.i183.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0205.us.i181.i %_3.i.i.i.i.i.i.us.i184.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0205.us.i181.i %_3.i.i.i.i.us.i185.i = getelementptr inbounds %"fft_simd::c64x2", ptr %232, i64 %iter6.sroa.22.0205.us.i181.i %a.sroa.0.0.copyload.us.i186.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.i, align 8, !alias.scope !5645, !noalias !5653 %b.sroa.0.0.copyload.us.i187.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.i, align 8, !alias.scope !5645, !noalias !5653 %236 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.i, %b.sroa.0.0.copyload.us.i187.i store <4 x double> %236, ptr %_3.i.i.i.i.i.i.us.i184.i, align 8, !alias.scope !5648, !noalias !5654 %237 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.i, %b.sroa.0.0.copyload.us.i187.i %238 = shufflevector <4 x double> %237, <4 x double> poison, <4 x i32> %239 = fmul <4 x double> %234, %238 %240 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %237, <4 x double> %239) #23 store <4 x double> %240, ptr %_3.i.i.i.i.us.i185.i, align 8, !alias.scope !5648, !noalias !5654 %241 = add nuw nsw i64 %iter6.sroa.22.0205.us.i181.i, 2 %_3.i.i.i.i.i.i.i.i.us.i182.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %235 %_3.i2.i.i.i.i.i.i.i.us.i183.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %235 %_3.i.i.i.i.i.i.us.i184.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %235 %_3.i.i.i.i.us.i185.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %232, i64 %235 %a.sroa.0.0.copyload.us.i186.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.i.1, align 8, !alias.scope !5645, !noalias !5653 %b.sroa.0.0.copyload.us.i187.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.i.1, align 8, !alias.scope !5645, !noalias !5653 %242 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.i.1, %b.sroa.0.0.copyload.us.i187.i.1 store <4 x double> %242, ptr %_3.i.i.i.i.i.i.us.i184.i.1, align 8, !alias.scope !5648, !noalias !5654 %243 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.i.1, %b.sroa.0.0.copyload.us.i187.i.1 %244 = shufflevector <4 x double> %243, <4 x double> poison, <4 x i32> %245 = fmul <4 x double> %234, %244 %246 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %233, <4 x double> %243, <4 x double> %245) #23 store <4 x double> %246, ptr %_3.i.i.i.i.us.i185.i.1, align 8, !alias.scope !5648, !noalias !5654 %exitcond.not.i188.i.1 = icmp eq i64 %241, 32 br i1 %exitcond.not.i188.i.1, label %bb24.bb15.loopexit_crit_edge.us.i189.i, label %bb26.us.i180.i bb24.bb15.loopexit_crit_edge.us.i189.i: ; preds = %bb26.us.i180.i %data.i.i.i.i.i.i.i.i.us.i173.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i.us.i174.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %247 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i177.1.i = load double, ptr %247, align 8, !alias.scope !5650, !noalias !5652, !noundef !3 %248 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i178.1.i = load double, ptr %248, align 8, !alias.scope !5650, !noalias !5652, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i179.1.i = insertelement <2 x double> poison, double %w1.0.us.i177.1.i, i64 0 %249 = insertelement <4 x double> poison, double %w1.1.us.i178.1.i, i64 0 %250 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %251 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i179.1.i, <2 x double> poison, <4 x i32> zeroinitializer %252 = shufflevector <4 x double> %249, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i180.1.i bb26.us.i180.1.i: ; preds = %bb26.us.i180.1.i, %bb24.bb15.loopexit_crit_edge.us.i189.i %iter6.sroa.22.0205.us.i181.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i189.i ], [ %259, %bb26.us.i180.1.i ] %253 = or disjoint i64 %iter6.sroa.22.0205.us.i181.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i182.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.1.i, i64 %iter6.sroa.22.0205.us.i181.1.i %_3.i2.i.i.i.i.i.i.i.us.i183.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.1.i, i64 %iter6.sroa.22.0205.us.i181.1.i %_3.i.i.i.i.i.i.us.i184.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.sroa.22.0205.us.i181.1.i %_3.i.i.i.i.us.i185.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %iter6.sroa.22.0205.us.i181.1.i %a.sroa.0.0.copyload.us.i186.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.1.i, align 8, !alias.scope !5645, !noalias !5653 %b.sroa.0.0.copyload.us.i187.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.1.i, align 8, !alias.scope !5645, !noalias !5653 %254 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.1.i, %b.sroa.0.0.copyload.us.i187.1.i store <4 x double> %254, ptr %_3.i.i.i.i.i.i.us.i184.1.i, align 8, !alias.scope !5648, !noalias !5654 %255 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.1.i, %b.sroa.0.0.copyload.us.i187.1.i %256 = shufflevector <4 x double> %255, <4 x double> poison, <4 x i32> %257 = fmul <4 x double> %252, %256 %258 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %251, <4 x double> %255, <4 x double> %257) #23 store <4 x double> %258, ptr %_3.i.i.i.i.us.i185.1.i, align 8, !alias.scope !5648, !noalias !5654 %259 = add nuw nsw i64 %iter6.sroa.22.0205.us.i181.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i182.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i173.1.i, i64 %253 %_3.i2.i.i.i.i.i.i.i.us.i183.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i174.1.i, i64 %253 %_3.i.i.i.i.i.i.us.i184.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %253 %_3.i.i.i.i.us.i185.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %250, i64 %253 %a.sroa.0.0.copyload.us.i186.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i182.1.i.1, align 8, !alias.scope !5645, !noalias !5653 %b.sroa.0.0.copyload.us.i187.1.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i183.1.i.1, align 8, !alias.scope !5645, !noalias !5653 %260 = fadd <4 x double> %a.sroa.0.0.copyload.us.i186.1.i.1, %b.sroa.0.0.copyload.us.i187.1.i.1 store <4 x double> %260, ptr %_3.i.i.i.i.i.i.us.i184.1.i.1, align 8, !alias.scope !5648, !noalias !5654 %261 = fsub <4 x double> %a.sroa.0.0.copyload.us.i186.1.i.1, %b.sroa.0.0.copyload.us.i187.1.i.1 %262 = shufflevector <4 x double> %261, <4 x double> poison, <4 x i32> %263 = fmul <4 x double> %252, %262 %264 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %251, <4 x double> %261, <4 x double> %263) #23 store <4 x double> %264, ptr %_3.i.i.i.i.us.i185.1.i.1, align 8, !alias.scope !5648, !noalias !5654 %exitcond.not.i188.1.i.1 = icmp eq i64 %259, 32 br i1 %exitcond.not.i188.1.i.1, label %bb18.i.i.i.i.i.i, label %bb26.us.i180.1.i bb18.i.i.i.i.i.i: ; preds = %bb26.us.i180.1.i, %bb18.i.i.i.i.i.i %iter6.i.i.i.i.i.sroa.22.0231.i = phi i64 [ %268, %bb18.i.i.i.i.i.i ], [ 0, %bb26.us.i180.1.i ] %265 = or disjoint i64 %iter6.i.i.i.i.i.sroa.22.0231.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.i.sroa.22.0231.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter6.i.i.i.i.i.sroa.22.0231.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.i.sroa.22.0231.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.i.sroa.22.0231.i %_51.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5580 %_52.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !5580 %266 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i %267 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %266, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5580 store <4 x double> %267, ptr %_3.i.i.i.i.i, align 8, !noalias !5580 %268 = add nuw nsw i64 %iter6.i.i.i.i.i.sroa.22.0231.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %265 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %265 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %265 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %265 %_51.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5580 %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !5580 %269 = fadd <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 %270 = fsub <4 x double> %_51.i.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %269, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !5580 store <4 x double> %270, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5580 %exitcond236.not.i.1 = icmp eq i64 %268, 64 br i1 %exitcond236.not.i.1, label %_ZN4pulp3x862V39vectorize6__impl17h41d5a7603d62d529E.exit, label %bb18.i.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h41d5a7603d62d529E.exit: ; preds = %bb18.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5580 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17he9ff83625188b5e1E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5655 store i64 64, ptr %n.i, align 8, !noalias !5655 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5655 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5655 %_12.i = icmp eq i64 %buf.1, 64 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5655 store ptr null, ptr %_16.i, align 8, !noalias !5655 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5655 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5655 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5655 %_20.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5655 store ptr null, ptr %_24.i, align 8, !noalias !5655 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5655 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5655 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5655 %_28.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5655 store ptr null, ptr %_32.i, align 8, !noalias !5655 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5655 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5655 store i64 %w.1, ptr %_34.i, align 8, !noalias !5655 %_36.i = icmp eq i64 %w.1, 64 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5655 store ptr null, ptr %_40.i, align 8, !noalias !5655 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5655 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %7 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 56 %8 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 40 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %12 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %13 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %wide.vec = load <8 x double>, ptr %buf.0, align 8, !noalias !5658 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %2, align 8, !noalias !5658 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %1, align 8, !noalias !5658 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %3, align 8, !noalias !5658 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %0, align 8, !noalias !5658 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %5, align 8, !noalias !5658 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %4, align 8, !noalias !5658 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %6, align 8, !noalias !5658 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %14 = fadd <4 x double> %strided.vec, %strided.vec12 %15 = fadd <4 x double> %strided.vec1, %strided.vec13 %16 = fsub <4 x double> %strided.vec, %strided.vec12 %17 = fsub <4 x double> %strided.vec1, %strided.vec13 %18 = fadd <4 x double> %strided.vec6, %strided.vec18 %19 = fadd <4 x double> %strided.vec7, %strided.vec19 %20 = fsub <4 x double> %strided.vec6, %strided.vec18 %21 = fsub <4 x double> %strided.vec7, %strided.vec19 %22 = fadd <4 x double> %strided.vec3, %strided.vec15 %23 = fadd <4 x double> %strided.vec4, %strided.vec16 %24 = fsub <4 x double> %strided.vec3, %strided.vec15 %25 = fsub <4 x double> %strided.vec4, %strided.vec16 %26 = fadd <4 x double> %strided.vec9, %strided.vec21 %27 = fadd <4 x double> %strided.vec10, %strided.vec22 %28 = fsub <4 x double> %strided.vec9, %strided.vec21 %29 = fsub <4 x double> %strided.vec10, %strided.vec22 %30 = fadd <4 x double> %14, %18 %31 = fadd <4 x double> %15, %19 %32 = fadd <4 x double> %16, %21 %33 = fsub <4 x double> %17, %20 %34 = fsub <4 x double> %14, %18 %35 = fsub <4 x double> %15, %19 %36 = fsub <4 x double> %16, %21 %37 = fadd <4 x double> %17, %20 %38 = fadd <4 x double> %22, %26 %39 = fadd <4 x double> %23, %27 %40 = fadd <4 x double> %24, %29 %41 = fsub <4 x double> %25, %28 %42 = fadd <4 x double> %41, %40 %43 = fsub <4 x double> %41, %40 %44 = fmul <4 x double> %42, %45 = fmul <4 x double> %43, %46 = fsub <4 x double> %22, %26 %47 = fsub <4 x double> %23, %27 %48 = fsub <4 x double> %24, %29 %49 = fadd <4 x double> %25, %28 %50 = fsub <4 x double> %48, %49 %51 = fadd <4 x double> %49, %48 %52 = fmul <4 x double> %50, %53 = fmul <4 x double> %51, %54 = fadd <4 x double> %30, %38 %55 = fadd <4 x double> %31, %39 %56 = fadd <4 x double> %32, %44 %57 = fadd <4 x double> %33, %45 %58 = fadd <4 x double> %34, %47 %59 = fsub <4 x double> %35, %46 %60 = fsub <4 x double> %36, %52 %61 = fsub <4 x double> %37, %53 %62 = fsub <4 x double> %30, %38 %63 = fsub <4 x double> %31, %39 %64 = fsub <4 x double> %32, %44 %65 = fsub <4 x double> %33, %45 %66 = fsub <4 x double> %34, %47 %67 = fadd <4 x double> %35, %46 %68 = fadd <4 x double> %36, %52 %69 = fadd <4 x double> %37, %53 %interleaved.vec = shufflevector <4 x double> %54, <4 x double> %55, <8 x i32> store <8 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5658 %interleaved.vec23 = shufflevector <4 x double> %56, <4 x double> %57, <8 x i32> store <8 x double> %interleaved.vec23, ptr %11, align 8, !noalias !5658 %interleaved.vec24 = shufflevector <4 x double> %58, <4 x double> %59, <8 x i32> store <8 x double> %interleaved.vec24, ptr %12, align 8, !noalias !5658 %interleaved.vec25 = shufflevector <4 x double> %60, <4 x double> %61, <8 x i32> store <8 x double> %interleaved.vec25, ptr %10, align 8, !noalias !5658 %interleaved.vec26 = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec26, ptr %13, align 8, !noalias !5658 %interleaved.vec27 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec27, ptr %8, align 8, !noalias !5658 %interleaved.vec28 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec28, ptr %9, align 8, !noalias !5658 %interleaved.vec29 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec29, ptr %7, align 8, !noalias !5658 %70 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %71 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %72 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %73 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %74 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 36 %75 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 44 %76 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 52 %77 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %wide.vec.1 = load <8 x double>, ptr %70, align 8, !noalias !5658 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %71, align 8, !noalias !5658 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %wide.vec5.1 = load <8 x double>, ptr %72, align 8, !noalias !5658 %strided.vec6.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %strided.vec7.1 = shufflevector <8 x double> %wide.vec5.1, <8 x double> poison, <4 x i32> %wide.vec8.1 = load <8 x double>, ptr %73, align 8, !noalias !5658 %strided.vec9.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %strided.vec10.1 = shufflevector <8 x double> %wide.vec8.1, <8 x double> poison, <4 x i32> %wide.vec11.1 = load <8 x double>, ptr %74, align 8, !noalias !5658 %strided.vec12.1 = shufflevector <8 x double> %wide.vec11.1, <8 x double> poison, <4 x i32> %strided.vec13.1 = shufflevector <8 x double> %wide.vec11.1, <8 x double> poison, <4 x i32> %wide.vec14.1 = load <8 x double>, ptr %75, align 8, !noalias !5658 %strided.vec15.1 = shufflevector <8 x double> %wide.vec14.1, <8 x double> poison, <4 x i32> %strided.vec16.1 = shufflevector <8 x double> %wide.vec14.1, <8 x double> poison, <4 x i32> %wide.vec17.1 = load <8 x double>, ptr %76, align 8, !noalias !5658 %strided.vec18.1 = shufflevector <8 x double> %wide.vec17.1, <8 x double> poison, <4 x i32> %strided.vec19.1 = shufflevector <8 x double> %wide.vec17.1, <8 x double> poison, <4 x i32> %wide.vec20.1 = load <8 x double>, ptr %77, align 8, !noalias !5658 %strided.vec21.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %strided.vec22.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %78 = fadd <4 x double> %strided.vec.1, %strided.vec12.1 %79 = fadd <4 x double> %strided.vec1.1, %strided.vec13.1 %80 = fsub <4 x double> %strided.vec.1, %strided.vec12.1 %81 = fsub <4 x double> %strided.vec1.1, %strided.vec13.1 %82 = fadd <4 x double> %strided.vec6.1, %strided.vec18.1 %83 = fadd <4 x double> %strided.vec7.1, %strided.vec19.1 %84 = fsub <4 x double> %strided.vec6.1, %strided.vec18.1 %85 = fsub <4 x double> %strided.vec7.1, %strided.vec19.1 %86 = fadd <4 x double> %strided.vec3.1, %strided.vec15.1 %87 = fadd <4 x double> %strided.vec4.1, %strided.vec16.1 %88 = fsub <4 x double> %strided.vec3.1, %strided.vec15.1 %89 = fsub <4 x double> %strided.vec4.1, %strided.vec16.1 %90 = fadd <4 x double> %strided.vec9.1, %strided.vec21.1 %91 = fadd <4 x double> %strided.vec10.1, %strided.vec22.1 %92 = fsub <4 x double> %strided.vec9.1, %strided.vec21.1 %93 = fsub <4 x double> %strided.vec10.1, %strided.vec22.1 %94 = fadd <4 x double> %78, %82 %95 = fadd <4 x double> %79, %83 %96 = fadd <4 x double> %80, %85 %97 = fsub <4 x double> %81, %84 %98 = fsub <4 x double> %78, %82 %99 = fsub <4 x double> %79, %83 %100 = fsub <4 x double> %80, %85 %101 = fadd <4 x double> %81, %84 %102 = fadd <4 x double> %86, %90 %103 = fadd <4 x double> %87, %91 %104 = fadd <4 x double> %88, %93 %105 = fsub <4 x double> %89, %92 %106 = fadd <4 x double> %105, %104 %107 = fsub <4 x double> %105, %104 %108 = fmul <4 x double> %106, %109 = fmul <4 x double> %107, %110 = fsub <4 x double> %86, %90 %111 = fsub <4 x double> %87, %91 %112 = fsub <4 x double> %88, %93 %113 = fadd <4 x double> %89, %92 %114 = fsub <4 x double> %112, %113 %115 = fadd <4 x double> %113, %112 %116 = fmul <4 x double> %114, %117 = fmul <4 x double> %115, %118 = fadd <4 x double> %94, %102 %119 = fadd <4 x double> %95, %103 %120 = fadd <4 x double> %96, %108 %121 = fadd <4 x double> %97, %109 %122 = fadd <4 x double> %98, %111 %123 = fsub <4 x double> %99, %110 %124 = fsub <4 x double> %100, %116 %125 = fsub <4 x double> %101, %117 %126 = fsub <4 x double> %94, %102 %127 = fsub <4 x double> %95, %103 %128 = fsub <4 x double> %96, %108 %129 = fsub <4 x double> %97, %109 %130 = fsub <4 x double> %98, %111 %131 = fadd <4 x double> %99, %110 %132 = fadd <4 x double> %100, %116 %133 = fadd <4 x double> %101, %117 %134 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %118, <4 x double> %119, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %134, align 8, !noalias !5658 %135 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %interleaved.vec23.1 = shufflevector <4 x double> %120, <4 x double> %121, <8 x i32> store <8 x double> %interleaved.vec23.1, ptr %135, align 8, !noalias !5658 %136 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %interleaved.vec24.1 = shufflevector <4 x double> %122, <4 x double> %123, <8 x i32> store <8 x double> %interleaved.vec24.1, ptr %136, align 8, !noalias !5658 %137 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %interleaved.vec25.1 = shufflevector <4 x double> %124, <4 x double> %125, <8 x i32> store <8 x double> %interleaved.vec25.1, ptr %137, align 8, !noalias !5658 %138 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 36 %interleaved.vec26.1 = shufflevector <4 x double> %126, <4 x double> %127, <8 x i32> store <8 x double> %interleaved.vec26.1, ptr %138, align 8, !noalias !5658 %139 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 44 %interleaved.vec27.1 = shufflevector <4 x double> %128, <4 x double> %129, <8 x i32> store <8 x double> %interleaved.vec27.1, ptr %139, align 8, !noalias !5658 %140 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 52 %interleaved.vec28.1 = shufflevector <4 x double> %130, <4 x double> %131, <8 x i32> store <8 x double> %interleaved.vec28.1, ptr %140, align 8, !noalias !5658 %141 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 60 %interleaved.vec29.1 = shufflevector <4 x double> %132, <4 x double> %133, <8 x i32> store <8 x double> %interleaved.vec29.1, ptr %141, align 8, !noalias !5658 br label %vector.body34 vector.body34: ; preds = %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E.exit", %vector.body34 %index35 = phi i64 [ %index.next73, %vector.body34 ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E.exit" ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body34 ], [ , %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E.exit" ] %142 = shl <4 x i64> %vec.ind, %143 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %142 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %144, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %145, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %146 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %148, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %149 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %149, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %150, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %151 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %151, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %152 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %152, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %153 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %153, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %154 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %154, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %155 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %156 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %157 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %158 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 4 %159 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 2 %160 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 1 %161 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 3 %162 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 6 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 5 %164 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 7 %165 = fneg <4 x double> %wide.masked.gather36 %166 = fneg <4 x double> %wide.masked.gather38 %167 = fneg <4 x double> %wide.masked.gather40 %168 = fneg <4 x double> %wide.masked.gather42 %169 = fneg <4 x double> %wide.masked.gather44 %170 = fneg <4 x double> %wide.masked.gather46 %171 = fneg <4 x double> %wide.masked.gather48 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %143, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %172 = getelementptr inbounds i8, <4 x ptr> %143, i64 8 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %172, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %173 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 1, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %174 = fmul <4 x double> %wide.masked.gather52, %165 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather51, <4 x double> %174) %176 = fmul <4 x double> %wide.masked.gather36, %wide.masked.gather51 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather52, <4 x double> %176) %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %178 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 2, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %179 = fmul <4 x double> %wide.masked.gather54, %166 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather53, <4 x double> %179) %181 = fmul <4 x double> %wide.masked.gather38, %wide.masked.gather53 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather54, <4 x double> %181) %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %161, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %183 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 3, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %184 = fmul <4 x double> %wide.masked.gather56, %167 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather55, <4 x double> %184) %186 = fmul <4 x double> %wide.masked.gather40, %wide.masked.gather55 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather56, <4 x double> %186) %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %188 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 4, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %189 = fmul <4 x double> %wide.masked.gather58, %168 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather57, <4 x double> %189) %191 = fmul <4 x double> %wide.masked.gather42, %wide.masked.gather57 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather58, <4 x double> %191) %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %193 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 5, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %193, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %194 = fmul <4 x double> %wide.masked.gather60, %169 %195 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather59, <4 x double> %194) %196 = fmul <4 x double> %wide.masked.gather44, %wide.masked.gather59 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather60, <4 x double> %196) %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 6, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %199 = fmul <4 x double> %wide.masked.gather62, %170 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather61, <4 x double> %199) %201 = fmul <4 x double> %wide.masked.gather46, %wide.masked.gather61 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather62, <4 x double> %201) %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %143, i64 7, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !5655 %204 = fmul <4 x double> %wide.masked.gather64, %171 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather63, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather48, %wide.masked.gather63 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather64, <4 x double> %206) %208 = fadd <4 x double> %wide.masked.gather49, %190 %209 = fadd <4 x double> %wide.masked.gather50, %192 %210 = fsub <4 x double> %wide.masked.gather49, %190 %211 = fsub <4 x double> %wide.masked.gather50, %192 %212 = fadd <4 x double> %180, %200 %213 = fadd <4 x double> %182, %202 %214 = fsub <4 x double> %180, %200 %215 = fsub <4 x double> %182, %202 %216 = fadd <4 x double> %175, %195 %217 = fadd <4 x double> %177, %197 %218 = fsub <4 x double> %175, %195 %219 = fsub <4 x double> %177, %197 %220 = fadd <4 x double> %185, %205 %221 = fadd <4 x double> %187, %207 %222 = fsub <4 x double> %185, %205 %223 = fsub <4 x double> %187, %207 %224 = fadd <4 x double> %208, %212 %225 = fadd <4 x double> %209, %213 %226 = fadd <4 x double> %216, %220 %227 = fadd <4 x double> %217, %221 %228 = fadd <4 x double> %224, %226 %229 = fadd <4 x double> %225, %227 %230 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index35 %interleaved.vec65 = shufflevector <4 x double> %228, <4 x double> %229, <8 x i32> store <8 x double> %interleaved.vec65, ptr %230, align 8, !noalias !5655 %231 = fsub <4 x double> %224, %226 %232 = fsub <4 x double> %225, %227 %233 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index35 %interleaved.vec66 = shufflevector <4 x double> %231, <4 x double> %232, <8 x i32> store <8 x double> %interleaved.vec66, ptr %233, align 8, !noalias !5655 %234 = fadd <4 x double> %210, %215 %235 = fsub <4 x double> %211, %214 %236 = fadd <4 x double> %218, %223 %237 = fsub <4 x double> %219, %222 %238 = fadd <4 x double> %236, %237 %239 = fsub <4 x double> %237, %236 %240 = fmul <4 x double> %238, %241 = fmul <4 x double> %239, %242 = fadd <4 x double> %234, %240 %243 = fadd <4 x double> %235, %241 %244 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index35 %interleaved.vec67 = shufflevector <4 x double> %242, <4 x double> %243, <8 x i32> store <8 x double> %interleaved.vec67, ptr %244, align 8, !noalias !5655 %245 = fsub <4 x double> %234, %240 %246 = fsub <4 x double> %235, %241 %247 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index35 %interleaved.vec68 = shufflevector <4 x double> %245, <4 x double> %246, <8 x i32> store <8 x double> %interleaved.vec68, ptr %247, align 8, !noalias !5655 %248 = fsub <4 x double> %208, %212 %249 = fsub <4 x double> %209, %213 %250 = fsub <4 x double> %216, %220 %251 = fsub <4 x double> %217, %221 %252 = fadd <4 x double> %248, %251 %253 = fsub <4 x double> %249, %250 %254 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index35 %interleaved.vec69 = shufflevector <4 x double> %252, <4 x double> %253, <8 x i32> store <8 x double> %interleaved.vec69, ptr %254, align 8, !noalias !5655 %255 = fsub <4 x double> %248, %251 %256 = fadd <4 x double> %249, %250 %257 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index35 %interleaved.vec70 = shufflevector <4 x double> %255, <4 x double> %256, <8 x i32> store <8 x double> %interleaved.vec70, ptr %257, align 8, !noalias !5655 %258 = fsub <4 x double> %210, %215 %259 = fadd <4 x double> %211, %214 %260 = fsub <4 x double> %218, %223 %261 = fadd <4 x double> %219, %222 %262 = fsub <4 x double> %260, %261 %263 = fadd <4 x double> %260, %261 %264 = fmul <4 x double> %262, %265 = fmul <4 x double> %263, %266 = fsub <4 x double> %258, %264 %267 = fsub <4 x double> %259, %265 %268 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index35 %interleaved.vec71 = shufflevector <4 x double> %266, <4 x double> %267, <8 x i32> store <8 x double> %interleaved.vec71, ptr %268, align 8, !noalias !5655 %269 = fadd <4 x double> %258, %264 %270 = fadd <4 x double> %259, %265 %271 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index35 %interleaved.vec72 = shufflevector <4 x double> %269, <4 x double> %270, <8 x i32> store <8 x double> %interleaved.vec72, ptr %271, align 8, !noalias !5655 %index.next73 = add nuw i64 %index35, 4 %vec.ind.next = add <4 x i64> %vec.ind, %272 = icmp eq i64 %index.next73, 8 br i1 %272, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE.exit", label %vector.body34, !llvm.loop !5661 "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE.exit": ; preds = %vector.body34 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5655 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hebf2611902285931E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5662 store i64 64, ptr %n.i.i, align 8, !noalias !5662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5662 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5662 %_12.i.i = icmp eq i64 %buf.1, 64 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5662 store ptr null, ptr %_16.i.i, align 8, !noalias !5662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5662 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5662 %_20.i.i = icmp eq i64 %scratch.1, 64 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5662 store ptr null, ptr %_24.i.i, align 8, !noalias !5662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5662 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5662 %_28.i.i = icmp eq i64 %w_init.1, 64 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5662 store ptr null, ptr %_32.i.i, align 8, !noalias !5662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5662 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5662 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5662 %_36.i.i = icmp eq i64 %w.1, 64 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc4bc2f2d05e77492E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5662 store ptr null, ptr %_40.i.i, align 8, !noalias !5662 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc4bc2f2d05e77492E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5662 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 4 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 12 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 20 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 28 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc4bc2f2d05e77492E.exit.i" %iter14.i.i.i.sroa.106.0522.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc4bc2f2d05e77492E.exit.i" ], [ %16, %bb38.i.i.i.i ] %16 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter14.i.i.i.sroa.106.0522.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !5667 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !5667 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !5667 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !5667 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !5667 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !5667 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !5667 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !5667 %17 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %18 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %19 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %20 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = xor <4 x i64> %21, %23 = bitcast <4 x i64> %22 to <4 x double> %24 = shufflevector <4 x double> %23, <4 x double> poison, <4 x i32> %25 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %26 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %27 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %28 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %29 = bitcast <4 x double> %28 to <4 x i64> %30 = xor <4 x i64> %29, %31 = bitcast <4 x i64> %30 to <4 x double> %32 = shufflevector <4 x double> %31, <4 x double> poison, <4 x i32> %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %24 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %24 %37 = fadd <4 x double> %25, %27 %38 = fsub <4 x double> %26, %32 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = xor <4 x i64> %39, %41 = bitcast <4 x i64> %40 to <4 x double> %42 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> %43 = fadd <4 x double> %38, %42 %44 = fmul <4 x double> %43, %45 = fsub <4 x double> %25, %27 %46 = bitcast <4 x double> %45 to <4 x i64> %47 = xor <4 x i64> %46, %48 = bitcast <4 x i64> %47 to <4 x double> %49 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> %50 = fadd <4 x double> %26, %32 %51 = bitcast <4 x double> %50 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %50, %54 %56 = fmul <4 x double> %55, %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %44 %59 = fsub <4 x double> %35, %49 %60 = fsub <4 x double> %36, %56 %61 = fsub <4 x double> %33, %37 %62 = fsub <4 x double> %34, %44 %63 = fadd <4 x double> %35, %49 %64 = fadd <4 x double> %36, %56 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %59, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %61, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %62, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 store <4 x double> %64, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5667 %exitcond.not.i = icmp eq i64 %16, 4 br i1 %exitcond.not.i, label %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i", label %bb38.i.i.i.i "_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i": ; preds = %bb38.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5671) tail call void @llvm.experimental.noalias.scope.decl(metadata !5674) tail call void @llvm.experimental.noalias.scope.decl(metadata !5676) %65 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %66 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %67 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %69 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %70 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" %iter.sroa.106.01794.i.i = phi i64 [ %72, %bb23.i.i ], [ 0, %"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE.exit.i" ] %72 = add nuw nsw i64 %iter.sroa.106.01794.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %67, i64 %iter.sroa.106.01794.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %66, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %65, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %70, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %69, i64 %iter.sroa.106.01794.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %71, i64 %iter.sroa.106.01794.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5676, !noalias !5678 %ab_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5674, !noalias !5679 %73 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 1 %cd_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %73, align 8, !alias.scope !5674, !noalias !5679 %74 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 2 %ef_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %74, align 8, !alias.scope !5674, !noalias !5679 %75 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 3 %gh_0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %75, align 8, !alias.scope !5674, !noalias !5679 %76 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 4 %ab_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %76, align 8, !alias.scope !5674, !noalias !5679 %77 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 5 %cd_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %77, align 8, !alias.scope !5674, !noalias !5679 %78 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 6 %ef_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %78, align 8, !alias.scope !5674, !noalias !5679 %79 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01794.i.i, i64 7 %gh_1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %79, align 8, !alias.scope !5674, !noalias !5679 %80 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %81 = shufflevector <4 x double> %ab_0.sroa.0.0.copyload.i.i, <4 x double> %ab_1.sroa.0.0.copyload.i.i, <4 x i32> %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = fmul <4 x double> %84, %82 %86 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %83, <4 x double> %81, <4 x double> %85) #23 %87 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %88 = shufflevector <4 x double> %87, <4 x double> poison, <4 x i32> %89 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = fmul <4 x double> %90, %88 %92 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %89, <4 x double> %87, <4 x double> %91) #23 %93 = shufflevector <4 x double> %cd_0.sroa.0.0.copyload.i.i, <4 x double> %cd_1.sroa.0.0.copyload.i.i, <4 x i32> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = fmul <4 x double> %96, %94 %98 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %95, <4 x double> %93, <4 x double> %97) #23 %99 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %100 = shufflevector <4 x double> %99, <4 x double> poison, <4 x i32> %101 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %102 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %103 = fmul <4 x double> %102, %100 %104 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %101, <4 x double> %99, <4 x double> %103) #23 %105 = shufflevector <4 x double> %ef_0.sroa.0.0.copyload.i.i, <4 x double> %ef_1.sroa.0.0.copyload.i.i, <4 x i32> %106 = shufflevector <4 x double> %105, <4 x double> poison, <4 x i32> %107 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %108 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %108, %106 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %107, <4 x double> %105, <4 x double> %109) #23 %111 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %112 = shufflevector <4 x double> %111, <4 x double> poison, <4 x i32> %113 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %114 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %115 = fmul <4 x double> %114, %112 %116 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %113, <4 x double> %111, <4 x double> %115) #23 %117 = shufflevector <4 x double> %gh_0.sroa.0.0.copyload.i.i, <4 x double> %gh_1.sroa.0.0.copyload.i.i, <4 x i32> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %120 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %120, %118 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %117, <4 x double> %121) #23 %123 = fadd <4 x double> %80, %104 %124 = fsub <4 x double> %80, %104 %125 = fadd <4 x double> %92, %116 %126 = fsub <4 x double> %92, %116 %127 = bitcast <4 x double> %126 to <4 x i64> %128 = fsub <4 x double> %98, %122 %129 = bitcast <4 x double> %128 to <4 x i64> %130 = xor <4 x i64> %127, %131 = bitcast <4 x i64> %130 to <4 x double> %132 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> %133 = xor <4 x i64> %129, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fadd <4 x double> %86, %110 %137 = fsub <4 x double> %86, %110 %138 = fadd <4 x double> %98, %122 %139 = fadd <4 x double> %123, %125 %140 = fadd <4 x double> %136, %138 %141 = fadd <4 x double> %139, %140 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %142 = fsub <4 x double> %139, %140 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %143 = fsub <4 x double> %124, %132 %144 = fsub <4 x double> %137, %135 %145 = bitcast <4 x double> %144 to <4 x i64> %146 = xor <4 x i64> %145, %147 = bitcast <4 x i64> %146 to <4 x double> %148 = shufflevector <4 x double> %147, <4 x double> poison, <4 x i32> %149 = fadd <4 x double> %144, %148 %150 = fmul <4 x double> %149, %151 = fadd <4 x double> %143, %150 store <4 x double> %151, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %152 = fsub <4 x double> %143, %150 store <4 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %153 = fsub <4 x double> %123, %125 %154 = fsub <4 x double> %136, %138 %155 = bitcast <4 x double> %154 to <4 x i64> %156 = fadd <4 x double> %124, %132 %157 = fadd <4 x double> %137, %135 %158 = xor <4 x i64> %155, %159 = bitcast <4 x i64> %158 to <4 x double> %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fsub <4 x double> %153, %160 store <4 x double> %161, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %162 = fadd <4 x double> %153, %160 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %163 = bitcast <4 x double> %157 to <4 x i64> %164 = xor <4 x i64> %163, %165 = bitcast <4 x i64> %164 to <4 x double> %166 = shufflevector <4 x double> %165, <4 x double> poison, <4 x i32> %167 = fadd <4 x double> %157, %166 %168 = fmul <4 x double> %167, %169 = fsub <4 x double> %156, %168 store <4 x double> %169, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %170 = fadd <4 x double> %156, %168 store <4 x double> %170, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5671, !noalias !5680 %exitcond.not.i.i = icmp eq i64 %72, 4 br i1 %exitcond.not.i.i, label %_ZN4pulp3x862V39vectorize6__impl17he8930741207810c2E.exit, label %bb23.i.i _ZN4pulp3x862V39vectorize6__impl17he8930741207810c2E.exit: ; preds = %bb23.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5662 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hec1b8d18ac71a346E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit16::Dit16>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h62434053279f6b32E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hecd473cfc099a4b1E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5681 store i64 128, ptr %n.i.i, align 8, !noalias !5681 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5681 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5681 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5681 store ptr null, ptr %_16.i.i, align 8, !noalias !5681 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5681 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5681 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5681 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5681 store ptr null, ptr %_24.i.i, align 8, !noalias !5681 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5681 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5681 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5681 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5681 store ptr null, ptr %_32.i.i, align 8, !noalias !5681 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5681 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5681 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5681 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h028efe583df79011E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5681 store ptr null, ptr %_40.i.i, align 8, !noalias !5681 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h028efe583df79011E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5681 tail call void @llvm.experimental.noalias.scope.decl(metadata !5686) tail call void @llvm.experimental.noalias.scope.decl(metadata !5689) tail call void @llvm.experimental.noalias.scope.decl(metadata !5691) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 4 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 12 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 20 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 28 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 36 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 44 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 52 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 60 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 4 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 12 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 20 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 28 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 36 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 44 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 52 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 60 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h028efe583df79011E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h028efe583df79011E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5686, !noalias !5693 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5691, !noalias !5694 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5689, !noalias !5695 store <4 x double> %247, ptr %248, align 8, !alias.scope !5689, !noalias !5695 store <4 x double> %249, ptr %250, align 8, !alias.scope !5689, !noalias !5695 store <4 x double> %251, ptr %252, align 8, !alias.scope !5689, !noalias !5695 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !5689, !noalias !5695 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !5689, !noalias !5695 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !5689, !noalias !5695 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !5689, !noalias !5695 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !5689, !noalias !5695 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !5689, !noalias !5695 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !5689, !noalias !5695 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !5689, !noalias !5695 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !5689, !noalias !5695 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !5689, !noalias !5695 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !5689, !noalias !5695 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !5689, !noalias !5695 %exitcond.not.i.i = icmp eq i64 %32, 4 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 br label %bb38.i.i.i.i bb38.i.i.i.i: ; preds = %bb38.i.i.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %iter14.i.i.i.sroa.106.0522.i = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ], [ %284, %bb38.i.i.i.i ] %284 = add nuw nsw i64 %iter14.i.i.i.sroa.106.0522.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i.i.i35.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter14.i.i.i.sroa.106.0522.i %_3.i.i.i.i.i38.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter14.i.i.i.sroa.106.0522.i %_120.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_121.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_122.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_123.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_124.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_125.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_126.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %_127.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5681 %285 = fadd <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %286 = fsub <4 x double> %_120.i.i.i.sroa.0.0.copyload.i, %_124.i.i.i.sroa.0.0.copyload.i %287 = fadd <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %288 = fsub <4 x double> %_122.i.i.i.sroa.0.0.copyload.i, %_126.i.i.i.sroa.0.0.copyload.i %289 = bitcast <4 x double> %288 to <4 x i64> %290 = xor <4 x i64> %289, %291 = bitcast <4 x i64> %290 to <4 x double> %292 = shufflevector <4 x double> %291, <4 x double> poison, <4 x i32> %293 = fadd <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %294 = fsub <4 x double> %_121.i.i.i.sroa.0.0.copyload.i, %_125.i.i.i.sroa.0.0.copyload.i %295 = fadd <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %296 = fsub <4 x double> %_123.i.i.i.sroa.0.0.copyload.i, %_127.i.i.i.sroa.0.0.copyload.i %297 = bitcast <4 x double> %296 to <4 x i64> %298 = xor <4 x i64> %297, %299 = bitcast <4 x i64> %298 to <4 x double> %300 = shufflevector <4 x double> %299, <4 x double> poison, <4 x i32> %301 = fadd <4 x double> %285, %287 %302 = fsub <4 x double> %286, %292 %303 = fsub <4 x double> %285, %287 %304 = fadd <4 x double> %286, %292 %305 = fadd <4 x double> %293, %295 %306 = fsub <4 x double> %294, %300 %307 = bitcast <4 x double> %306 to <4 x i64> %308 = xor <4 x i64> %307, %309 = bitcast <4 x i64> %308 to <4 x double> %310 = shufflevector <4 x double> %309, <4 x double> poison, <4 x i32> %311 = fadd <4 x double> %306, %310 %312 = fmul <4 x double> %311, %313 = fsub <4 x double> %293, %295 %314 = bitcast <4 x double> %313 to <4 x i64> %315 = xor <4 x i64> %314, %316 = bitcast <4 x i64> %315 to <4 x double> %317 = shufflevector <4 x double> %316, <4 x double> poison, <4 x i32> %318 = fadd <4 x double> %294, %300 %319 = bitcast <4 x double> %318 to <4 x i64> %320 = xor <4 x i64> %319, %321 = bitcast <4 x i64> %320 to <4 x double> %322 = shufflevector <4 x double> %321, <4 x double> poison, <4 x i32> %323 = fadd <4 x double> %318, %322 %324 = fmul <4 x double> %323, %325 = fadd <4 x double> %301, %305 %326 = fadd <4 x double> %302, %312 %327 = fsub <4 x double> %303, %317 %328 = fsub <4 x double> %304, %324 %329 = fsub <4 x double> %301, %305 %330 = fsub <4 x double> %302, %312 %331 = fadd <4 x double> %303, %317 %332 = fadd <4 x double> %304, %324 store <4 x double> %325, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i, align 8, !noalias !5681 store <4 x double> %326, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i, align 8, !noalias !5681 store <4 x double> %327, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i, align 8, !noalias !5681 store <4 x double> %328, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i, align 8, !noalias !5681 store <4 x double> %329, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i, align 8, !noalias !5681 store <4 x double> %330, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i, align 8, !noalias !5681 store <4 x double> %331, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i, align 8, !noalias !5681 store <4 x double> %332, ptr %_3.i.i.i.i.i38.i.i.i.i, align 8, !noalias !5681 %exitcond.not.i = icmp eq i64 %284, 8 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h7c15aac03eda2aecE.exit, label %bb38.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h7c15aac03eda2aecE.exit: ; preds = %bb38.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5681 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hed645aaa573c99ddE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5696 store i64 128, ptr %n.i.i, align 8, !noalias !5696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5696 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5696 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5696 store ptr null, ptr %_16.i.i, align 8, !noalias !5696 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5696 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5696 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5696 store ptr null, ptr %_24.i.i, align 8, !noalias !5696 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5696 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5696 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5696 store ptr null, ptr %_32.i.i, align 8, !noalias !5696 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5696 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5696 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeaa6233d31c234bE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5696 store ptr null, ptr %_40.i.i, align 8, !noalias !5696 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeaa6233d31c234bE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5696 tail call void @llvm.experimental.noalias.scope.decl(metadata !5701) tail call void @llvm.experimental.noalias.scope.decl(metadata !5704) tail call void @llvm.experimental.noalias.scope.decl(metadata !5706) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeaa6233d31c234bE.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeaa6233d31c234bE.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5701, !noalias !5708 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5706, !noalias !5709 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5704, !noalias !5710 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !5704, !noalias !5710 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !5704, !noalias !5710 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !5704, !noalias !5710 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !5704, !noalias !5710 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !5704, !noalias !5710 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !5704, !noalias !5710 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !5704, !noalias !5710 %exitcond.not.i.i = icmp eq i64 %16, 8 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5711) tail call void @llvm.experimental.noalias.scope.decl(metadata !5714) tail call void @llvm.experimental.noalias.scope.decl(metadata !5716) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i br i1 %_2.i.i.i.i.i, label %bb30.i.i, label %bb9.i.i.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %_2.i.i.i.i.i = phi i1 [ false, %bb28.loopexit.i.i ], [ true, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %iter.sroa.104.02174.i.i = phi i64 [ 1, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %122 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.sroa.104.02174.i.i, 3 %129 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %129, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %130 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %131 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %131, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %132, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %133 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %134 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %134, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %135, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %136 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %137 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %137, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %138, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %139 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %140 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %140, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %141, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %142 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %143 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %143, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %144, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %145 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %146 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %146, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %147, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %148 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %149 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %149, align 8, !alias.scope !5716, !noalias !5718, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %150 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %151 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <4 x double> %145, <4 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <4 x double> %142, <4 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <4 x double> %133, <4 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <4 x double> %130, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %164, %bb58.i.i ] %164 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %122, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !5711, !noalias !5719 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5711, !noalias !5719 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !5711, !noalias !5719 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !5711, !noalias !5719 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !5711, !noalias !5719 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !5711, !noalias !5719 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !5711, !noalias !5719 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !5711, !noalias !5719 %165 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %166 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %168 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = bitcast <4 x double> %168 to <4 x i64> %170 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %171 = bitcast <4 x double> %170 to <4 x i64> %172 = xor <4 x i64> %169, %173 = bitcast <4 x i64> %172 to <4 x double> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = xor <4 x i64> %171, %176 = bitcast <4 x i64> %175 to <4 x double> %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %179 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %181 = fadd <4 x double> %165, %167 %182 = fsub <4 x double> %166, %174 %183 = fsub <4 x double> %165, %167 %184 = fadd <4 x double> %166, %174 %185 = fadd <4 x double> %178, %180 %186 = fsub <4 x double> %179, %177 %187 = bitcast <4 x double> %186 to <4 x i64> %188 = fsub <4 x double> %178, %180 %189 = bitcast <4 x double> %188 to <4 x i64> %190 = fadd <4 x double> %179, %177 %191 = xor <4 x i64> %187, %192 = bitcast <4 x i64> %191 to <4 x double> %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = fadd <4 x double> %186, %193 %195 = fmul <4 x double> %194, %196 = xor <4 x i64> %189, %197 = bitcast <4 x i64> %196 to <4 x double> %198 = shufflevector <4 x double> %197, <4 x double> poison, <4 x i32> %199 = bitcast <4 x double> %190 to <4 x i64> %200 = xor <4 x i64> %199, %201 = bitcast <4 x i64> %200 to <4 x double> %202 = shufflevector <4 x double> %201, <4 x double> poison, <4 x i32> %203 = fadd <4 x double> %190, %202 %204 = fmul <4 x double> %203, %205 = fadd <4 x double> %181, %185 store <4 x double> %205, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %206 = fadd <4 x double> %182, %195 %207 = shufflevector <4 x double> %206, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %151, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %150, <4 x double> %206, <4 x double> %208) #23 store <4 x double> %209, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %210 = fsub <4 x double> %183, %198 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %153, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %152, <4 x double> %210, <4 x double> %212) #23 store <4 x double> %213, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %214 = fsub <4 x double> %184, %204 %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %155, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %154, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %218 = fsub <4 x double> %181, %185 %219 = shufflevector <4 x double> %218, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %157, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %156, <4 x double> %218, <4 x double> %220) #23 store <4 x double> %221, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %222 = fsub <4 x double> %182, %195 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = fmul <4 x double> %159, %223 %225 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %222, <4 x double> %224) #23 store <4 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %226 = fadd <4 x double> %183, %198 %227 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> %228 = fmul <4 x double> %161, %227 %229 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %160, <4 x double> %226, <4 x double> %228) #23 store <4 x double> %229, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %230 = fadd <4 x double> %184, %204 %231 = shufflevector <4 x double> %230, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %163, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %162, <4 x double> %230, <4 x double> %232) #23 store <4 x double> %233, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !5714, !noalias !5720 %exitcond.not.i38.i = icmp eq i64 %164, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i bb9.i.i.i.i: ; preds = %bb28.loopexit.i.i, %bb9.i.i.i.i %iter.i.i.i.sroa.8.062.i = phi i64 [ %243, %bb9.i.i.i.i ], [ 0, %bb28.loopexit.i.i ] %234 = or disjoint i64 %iter.i.i.i.sroa.8.062.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.8.062.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.8.062.i %_33.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5696 %_34.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !5696 %235 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i %236 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.sroa.0.0.copyload.i store <4 x double> %235, ptr %_3.i.i.i.i.i, align 8, !noalias !5696 store <4 x double> %236, ptr %_3.i2.i.i.i.i, align 8, !noalias !5696 %237 = or disjoint i64 %iter.i.i.i.sroa.8.062.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %234 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %234 %_33.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5696 %_34.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5696 %238 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 %239 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %238, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5696 store <4 x double> %239, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5696 %240 = or disjoint i64 %iter.i.i.i.sroa.8.062.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %237 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %237 %_33.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5696 %_34.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5696 %241 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 %242 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %241, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5696 store <4 x double> %242, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5696 %243 = add nuw nsw i64 %iter.i.i.i.sroa.8.062.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %240 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %240 %_33.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5696 %_34.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5696 %244 = fadd <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 %245 = fsub <4 x double> %_33.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %244, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5696 store <4 x double> %245, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5696 %exitcond.not.i.3 = icmp eq i64 %243, 32 br i1 %exitcond.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17hf8b843b75df1d5b2E.exit, label %bb9.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17hf8b843b75df1d5b2E.exit: ; preds = %bb9.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5696 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hee43161a513b63b1E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dif16::Dif16>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h5786ee6f43e96ee3E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf0031c3860c0653cE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5721 store i64 512, ptr %n.i.i, align 8, !noalias !5721 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5721 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5721 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5721 store ptr null, ptr %_16.i.i, align 8, !noalias !5721 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5721 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5721 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5721 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5721 store ptr null, ptr %_24.i.i, align 8, !noalias !5721 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5721 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5721 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5721 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5721 store ptr null, ptr %_32.i.i, align 8, !noalias !5721 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5721 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5721 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5721 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7dd8608a2d7b11aE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5721 store ptr null, ptr %_40.i.i, align 8, !noalias !5721 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7dd8608a2d7b11aE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5721 tail call void @llvm.experimental.noalias.scope.decl(metadata !5726) tail call void @llvm.experimental.noalias.scope.decl(metadata !5729) tail call void @llvm.experimental.noalias.scope.decl(metadata !5731) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 192 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 160 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 224 br label %bb23.i.i bb23.i.i: ; preds = %bb23.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7dd8608a2d7b11aE.exit.i" %iter.sroa.106.01839.i.i = phi i64 [ %16, %bb23.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7dd8608a2d7b11aE.exit.i" ] %16 = add nuw nsw i64 %iter.sroa.106.01839.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.106.01839.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.106.01839.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.106.01839.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5726, !noalias !5733 %17 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %18 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x4.sroa.0.0.copyload.i.i %19 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %20 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %x6.sroa.0.0.copyload.i.i %21 = bitcast <4 x double> %20 to <4 x i64> %22 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %23 = bitcast <4 x double> %22 to <4 x i64> %24 = xor <4 x i64> %21, %25 = bitcast <4 x i64> %24 to <4 x double> %26 = shufflevector <4 x double> %25, <4 x double> poison, <4 x i32> %27 = xor <4 x i64> %23, %28 = bitcast <4 x i64> %27 to <4 x double> %29 = shufflevector <4 x double> %28, <4 x double> poison, <4 x i32> %30 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %31 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x5.sroa.0.0.copyload.i.i %32 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %x7.sroa.0.0.copyload.i.i %33 = fadd <4 x double> %17, %19 %34 = fsub <4 x double> %18, %26 %35 = fsub <4 x double> %17, %19 %36 = fadd <4 x double> %18, %26 %37 = fadd <4 x double> %30, %32 %38 = fsub <4 x double> %31, %29 %39 = bitcast <4 x double> %38 to <4 x i64> %40 = fsub <4 x double> %30, %32 %41 = bitcast <4 x double> %40 to <4 x i64> %42 = fadd <4 x double> %31, %29 %43 = xor <4 x i64> %39, %44 = bitcast <4 x i64> %43 to <4 x double> %45 = shufflevector <4 x double> %44, <4 x double> poison, <4 x i32> %46 = fadd <4 x double> %38, %45 %47 = fmul <4 x double> %46, %48 = xor <4 x i64> %41, %49 = bitcast <4 x i64> %48 to <4 x double> %50 = shufflevector <4 x double> %49, <4 x double> poison, <4 x i32> %51 = bitcast <4 x double> %42 to <4 x i64> %52 = xor <4 x i64> %51, %53 = bitcast <4 x i64> %52 to <4 x double> %54 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> %55 = fadd <4 x double> %42, %54 %56 = fmul <4 x double> %55, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i12.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5731, !noalias !5734 %57 = fadd <4 x double> %33, %37 %58 = fadd <4 x double> %34, %47 %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %61 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %62 = fmul <4 x double> %61, %59 %63 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %58, <4 x double> %62) #23 %64 = fsub <4 x double> %35, %50 %65 = shufflevector <4 x double> %64, <4 x double> poison, <4 x i32> %66 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %67 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %67, %65 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %66, <4 x double> %64, <4 x double> %68) #23 %70 = fsub <4 x double> %36, %56 %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %73 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %74 = fmul <4 x double> %73, %71 %75 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %70, <4 x double> %74) #23 %76 = fsub <4 x double> %33, %37 %77 = shufflevector <4 x double> %76, <4 x double> poison, <4 x i32> %78 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %79 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %80 = fmul <4 x double> %77, %79 %81 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %78, <4 x double> %76, <4 x double> %80) #23 %82 = fsub <4 x double> %34, %47 %83 = shufflevector <4 x double> %82, <4 x double> poison, <4 x i32> %84 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %85 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %85, %83 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %84, <4 x double> %82, <4 x double> %86) #23 %88 = fadd <4 x double> %35, %50 %89 = shufflevector <4 x double> %88, <4 x double> poison, <4 x i32> %90 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %91 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %91, %89 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %90, <4 x double> %88, <4 x double> %92) #23 %94 = fadd <4 x double> %36, %56 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %97 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %97, %95 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %96, <4 x double> %94, <4 x double> %98) #23 %100 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5729, !noalias !5735 %101 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %102 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 1 store <4 x double> %101, ptr %102, align 8, !alias.scope !5729, !noalias !5735 %103 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %104 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 2 store <4 x double> %103, ptr %104, align 8, !alias.scope !5729, !noalias !5735 %105 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %106 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 3 store <4 x double> %105, ptr %106, align 8, !alias.scope !5729, !noalias !5735 %107 = shufflevector <4 x double> %57, <4 x double> %63, <4 x i32> %108 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 4 store <4 x double> %107, ptr %108, align 8, !alias.scope !5729, !noalias !5735 %109 = shufflevector <4 x double> %69, <4 x double> %75, <4 x i32> %110 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 5 store <4 x double> %109, ptr %110, align 8, !alias.scope !5729, !noalias !5735 %111 = shufflevector <4 x double> %81, <4 x double> %87, <4 x i32> %112 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 6 store <4 x double> %111, ptr %112, align 8, !alias.scope !5729, !noalias !5735 %113 = shufflevector <4 x double> %93, <4 x double> %99, <4 x i32> %114 = getelementptr inbounds [8 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.106.01839.i.i, i64 7 store <4 x double> %113, ptr %114, align 8, !alias.scope !5729, !noalias !5735 %exitcond.not.i.i = icmp eq i64 %16, 32 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i, label %bb23.i.i _ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i: ; preds = %bb23.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5736) tail call void @llvm.experimental.noalias.scope.decl(metadata !5739) tail call void @llvm.experimental.noalias.scope.decl(metadata !5741) %115 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %119 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %120 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %121 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 br label %bb30.i.i bb28.loopexit.i.i: ; preds = %bb58.i.i %122 = add nuw nsw i64 %iter.sroa.104.02174.i.i, 1 %exitcond.not.i = icmp eq i64 %122, 8 br i1 %exitcond.not.i, label %bb17.i.i.i.i, label %bb30.i.i bb30.i.i: ; preds = %bb28.loopexit.i.i, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i %iter.sroa.104.02174.i.i = phi i64 [ %122, %bb28.loopexit.i.i ], [ 0, %_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 2 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %115, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %120, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %119, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %121, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %start1.i.i.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 5 %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i %123 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 16 %124 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 8 %125 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 4 %126 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 12 %127 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 24 %128 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 20 %129 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 28 %start1.i.i.i.i.i.i = shl i64 %iter.sroa.104.02174.i.i, 3 %130 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7, i32 1 %w7.1.i.i = load double, ptr %130, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %131 = insertelement <4 x double> poison, double %w7.1.i.i, i64 0 %132 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 7 %w7.0.i.i = load double, ptr %132, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i114.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w7.0.i.i, i64 0 %133 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6, i32 1 %w6.1.i.i = load double, ptr %133, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %134 = insertelement <4 x double> poison, double %w6.1.i.i, i64 0 %135 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 6 %w6.0.i.i = load double, ptr %135, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i118.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w6.0.i.i, i64 0 %136 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5, i32 1 %w5.1.i.i = load double, ptr %136, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %137 = insertelement <4 x double> poison, double %w5.1.i.i, i64 0 %138 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 5 %w5.0.i.i = load double, ptr %138, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i122.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w5.0.i.i, i64 0 %139 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4, i32 1 %w4.1.i.i = load double, ptr %139, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %140 = insertelement <4 x double> poison, double %w4.1.i.i, i64 0 %141 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 4 %w4.0.i.i = load double, ptr %141, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i126.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w4.0.i.i, i64 0 %142 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i = load double, ptr %142, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %143 = insertelement <4 x double> poison, double %w3.1.i.i, i64 0 %144 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 3 %w3.0.i.i = load double, ptr %144, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i130.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w3.0.i.i, i64 0 %145 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i = load double, ptr %145, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %146 = insertelement <4 x double> poison, double %w2.1.i.i, i64 0 %147 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 2 %w2.0.i.i = load double, ptr %147, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i134.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w2.0.i.i, i64 0 %148 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i = load double, ptr %148, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %149 = insertelement <4 x double> poison, double %w1.1.i.i, i64 0 %150 = getelementptr inbounds [8 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i, i64 1 %w1.0.i.i = load double, ptr %150, align 8, !alias.scope !5741, !noalias !5743, !noundef !3 %value.i138.sroa.0.0.vec.insert.i.i = insertelement <2 x double> poison, double %w1.0.i.i, i64 0 %151 = shufflevector <2 x double> %value.i138.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %152 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> zeroinitializer %153 = shufflevector <2 x double> %value.i134.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %146, <4 x double> poison, <4 x i32> zeroinitializer %155 = shufflevector <2 x double> %value.i130.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %156 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> zeroinitializer %157 = shufflevector <2 x double> %value.i126.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %158 = shufflevector <4 x double> %140, <4 x double> poison, <4 x i32> zeroinitializer %159 = shufflevector <2 x double> %value.i122.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %160 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <2 x double> %value.i118.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <2 x double> %value.i114.sroa.0.0.vec.insert.i.i, <2 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <4 x double> %131, <4 x double> poison, <4 x i32> zeroinitializer br label %bb58.i.i bb58.i.i: ; preds = %bb58.i.i, %bb30.i.i %iter8.sroa.106.02113.i.i = phi i64 [ 0, %bb30.i.i ], [ %165, %bb58.i.i ] %165 = add nuw nsw i64 %iter8.sroa.106.02113.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i28.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i29.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i, i64 %iter8.sroa.106.02113.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %125, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %124, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %126, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %123, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %128, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i.i.i35.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %127, i64 %iter8.sroa.106.02113.i.i %_3.i.i.i.i.i38.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %129, i64 %iter8.sroa.106.02113.i.i %x0.sroa.0.0.copyload.i30.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i, align 8, !alias.scope !5736, !noalias !5744 %x1.sroa.0.0.copyload.i31.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5736, !noalias !5744 %x2.sroa.0.0.copyload.i32.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i24.i, align 8, !alias.scope !5736, !noalias !5744 %x3.sroa.0.0.copyload.i33.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i25.i, align 8, !alias.scope !5736, !noalias !5744 %x4.sroa.0.0.copyload.i34.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i26.i, align 8, !alias.scope !5736, !noalias !5744 %x5.sroa.0.0.copyload.i35.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i27.i, align 8, !alias.scope !5736, !noalias !5744 %x6.sroa.0.0.copyload.i36.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i28.i, align 8, !alias.scope !5736, !noalias !5744 %x7.sroa.0.0.copyload.i37.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i29.i, align 8, !alias.scope !5736, !noalias !5744 %166 = fadd <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %167 = fsub <4 x double> %x0.sroa.0.0.copyload.i30.i, %x4.sroa.0.0.copyload.i34.i %168 = fadd <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %169 = fsub <4 x double> %x2.sroa.0.0.copyload.i32.i, %x6.sroa.0.0.copyload.i36.i %170 = bitcast <4 x double> %169 to <4 x i64> %171 = fsub <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %172 = bitcast <4 x double> %171 to <4 x i64> %173 = xor <4 x i64> %170, %174 = bitcast <4 x i64> %173 to <4 x double> %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = xor <4 x i64> %172, %177 = bitcast <4 x i64> %176 to <4 x double> %178 = shufflevector <4 x double> %177, <4 x double> poison, <4 x i32> %179 = fadd <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %180 = fsub <4 x double> %x1.sroa.0.0.copyload.i31.i, %x5.sroa.0.0.copyload.i35.i %181 = fadd <4 x double> %x3.sroa.0.0.copyload.i33.i, %x7.sroa.0.0.copyload.i37.i %182 = fadd <4 x double> %166, %168 %183 = fsub <4 x double> %167, %175 %184 = fsub <4 x double> %166, %168 %185 = fadd <4 x double> %167, %175 %186 = fadd <4 x double> %179, %181 %187 = fsub <4 x double> %180, %178 %188 = bitcast <4 x double> %187 to <4 x i64> %189 = fsub <4 x double> %179, %181 %190 = bitcast <4 x double> %189 to <4 x i64> %191 = fadd <4 x double> %180, %178 %192 = xor <4 x i64> %188, %193 = bitcast <4 x i64> %192 to <4 x double> %194 = shufflevector <4 x double> %193, <4 x double> poison, <4 x i32> %195 = fadd <4 x double> %187, %194 %196 = fmul <4 x double> %195, %197 = xor <4 x i64> %190, %198 = bitcast <4 x i64> %197 to <4 x double> %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = bitcast <4 x double> %191 to <4 x i64> %201 = xor <4 x i64> %200, %202 = bitcast <4 x i64> %201 to <4 x double> %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fadd <4 x double> %191, %203 %205 = fmul <4 x double> %204, %206 = fadd <4 x double> %182, %186 store <4 x double> %206, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i17.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %207 = fadd <4 x double> %183, %196 %208 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> %209 = fmul <4 x double> %152, %208 %210 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %151, <4 x double> %207, <4 x double> %209) #23 store <4 x double> %210, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i20.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %211 = fsub <4 x double> %184, %199 %212 = shufflevector <4 x double> %211, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %154, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %211, <4 x double> %213) #23 store <4 x double> %214, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i23.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %215 = fsub <4 x double> %185, %205 %216 = shufflevector <4 x double> %215, <4 x double> poison, <4 x i32> %217 = fmul <4 x double> %156, %216 %218 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %155, <4 x double> %215, <4 x double> %217) #23 store <4 x double> %218, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i26.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %219 = fsub <4 x double> %182, %186 %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %158, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %157, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.i.i.i.i.i.i.i29.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %223 = fsub <4 x double> %183, %196 %224 = shufflevector <4 x double> %223, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %160, %224 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %159, <4 x double> %223, <4 x double> %225) #23 store <4 x double> %226, ptr %_3.i.i.i.i.i.i.i.i.i32.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %227 = fadd <4 x double> %184, %199 %228 = shufflevector <4 x double> %227, <4 x double> poison, <4 x i32> %229 = fmul <4 x double> %162, %228 %230 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %161, <4 x double> %227, <4 x double> %229) #23 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i35.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %231 = fadd <4 x double> %185, %205 %232 = shufflevector <4 x double> %231, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %164, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %163, <4 x double> %231, <4 x double> %233) #23 store <4 x double> %234, ptr %_3.i.i.i.i.i38.i.i.i.i.i, align 8, !alias.scope !5739, !noalias !5745 %exitcond.not.i38.i = icmp eq i64 %165, 4 br i1 %exitcond.not.i38.i, label %bb28.loopexit.i.i, label %bb58.i.i bb17.i.i.i.i: ; preds = %bb28.loopexit.i.i, %bb17.i.i.i.i %iter.i.i.i.sroa.50.0463.i = phi i64 [ %235, %bb17.i.i.i.i ], [ 0, %bb28.loopexit.i.i ] %235 = add nuw nsw i64 %iter.i.i.i.sroa.50.0463.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.sroa.50.0463.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.sroa.50.0463.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.sroa.50.0463.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.i.i.i.sroa.50.0463.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.sroa.50.0463.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.i.i.i.sroa.50.0463.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.i.i.i.sroa.50.0463.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.i.i.i.sroa.50.0463.i %_63.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 %_64.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 %_65.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 %_66.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 %_67.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 %_68.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 %_69.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5721 %_70.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5721 %236 = fadd <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %237 = fsub <4 x double> %_63.i.i.i.sroa.0.0.copyload.i, %_67.i.i.i.sroa.0.0.copyload.i %238 = fadd <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %239 = fsub <4 x double> %_65.i.i.i.sroa.0.0.copyload.i, %_69.i.i.i.sroa.0.0.copyload.i %240 = bitcast <4 x double> %239 to <4 x i64> %241 = xor <4 x i64> %240, %242 = bitcast <4 x i64> %241 to <4 x double> %243 = shufflevector <4 x double> %242, <4 x double> poison, <4 x i32> %244 = fadd <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %245 = fsub <4 x double> %_64.i.i.i.sroa.0.0.copyload.i, %_68.i.i.i.sroa.0.0.copyload.i %246 = fadd <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %247 = fsub <4 x double> %_66.i.i.i.sroa.0.0.copyload.i, %_70.i.i.i.sroa.0.0.copyload.i %248 = bitcast <4 x double> %247 to <4 x i64> %249 = xor <4 x i64> %248, %250 = bitcast <4 x i64> %249 to <4 x double> %251 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> %252 = fadd <4 x double> %236, %238 %253 = fsub <4 x double> %237, %243 %254 = fsub <4 x double> %236, %238 %255 = fadd <4 x double> %237, %243 %256 = fadd <4 x double> %244, %246 %257 = fsub <4 x double> %245, %251 %258 = bitcast <4 x double> %257 to <4 x i64> %259 = xor <4 x i64> %258, %260 = bitcast <4 x i64> %259 to <4 x double> %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fadd <4 x double> %257, %261 %263 = fmul <4 x double> %262, %264 = fsub <4 x double> %244, %246 %265 = bitcast <4 x double> %264 to <4 x i64> %266 = xor <4 x i64> %265, %267 = bitcast <4 x i64> %266 to <4 x double> %268 = shufflevector <4 x double> %267, <4 x double> poison, <4 x i32> %269 = fadd <4 x double> %245, %251 %270 = bitcast <4 x double> %269 to <4 x i64> %271 = xor <4 x i64> %270, %272 = bitcast <4 x i64> %271 to <4 x double> %273 = shufflevector <4 x double> %272, <4 x double> poison, <4 x i32> %274 = fadd <4 x double> %269, %273 %275 = fmul <4 x double> %274, %276 = fadd <4 x double> %252, %256 %277 = fadd <4 x double> %253, %263 %278 = fsub <4 x double> %254, %268 %279 = fsub <4 x double> %255, %275 %280 = fsub <4 x double> %252, %256 %281 = fsub <4 x double> %253, %263 %282 = fadd <4 x double> %254, %268 %283 = fadd <4 x double> %255, %275 store <4 x double> %276, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %277, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %278, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %279, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %280, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %281, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %282, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !5721 store <4 x double> %283, ptr %_3.i.i.i.i.i, align 8, !noalias !5721 %exitcond464.not.i = icmp eq i64 %235, 32 br i1 %exitcond464.not.i, label %_ZN4pulp3x862V39vectorize6__impl17he4b32a8a14b20eedE.exit, label %bb17.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17he4b32a8a14b20eedE.exit: ; preds = %bb17.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5721 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf03eaab66abbb107E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5746 store i64 16, ptr %n.i, align 8, !noalias !5746 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5746 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5746 %_12.i = icmp eq i64 %buf.1, 16 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5746 store ptr null, ptr %_16.i, align 8, !noalias !5746 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5746 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5746 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5746 %_20.i = icmp eq i64 %scratch.1, 16 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5746 store ptr null, ptr %_24.i, align 8, !noalias !5746 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5746 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5746 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5746 %_28.i = icmp eq i64 %w_init.1, 16 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5746 store ptr null, ptr %_32.i, align 8, !noalias !5746 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5746 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5746 store i64 %w.1, ptr %_34.i, align 8, !noalias !5746 %_36.i = icmp eq i64 %w.1, 16 br i1 %_36.i, label %bb26.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5746 store ptr null, ptr %_40.i, align 8, !noalias !5746 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb26.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5746 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %3, align 8, !noalias !5746, !noundef !3 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %4, align 8, !noalias !5746, !noundef !3 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i = load double, ptr %5, align 8, !noalias !5746, !noundef !3 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %6, align 8, !noalias !5746, !noundef !3 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i = load double, ptr %7, align 8, !noalias !5746, !noundef !3 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %8, align 8, !noalias !5746, !noundef !3 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %12 = load <2 x double>, ptr %buf.0, align 8, !noalias !5746 %13 = load <2 x double>, ptr %1, align 8, !noalias !5746 %14 = load <2 x double>, ptr %0, align 8, !noalias !5746 %15 = load <2 x double>, ptr %2, align 8, !noalias !5746 %16 = fadd <2 x double> %12, %14 %17 = fadd <2 x double> %13, %15 %18 = fadd <2 x double> %16, %17 store <2 x double> %18, ptr %scratch.0, align 8, !noalias !5746 %19 = fsub <2 x double> %12, %14 %20 = fsub <2 x double> %13, %15 %21 = shufflevector <2 x double> %20, <2 x double> poison, <2 x i32> %22 = fadd <2 x double> %19, %21 %23 = fsub <2 x double> %19, %21 %24 = shufflevector <2 x double> %22, <2 x double> %23, <2 x i32> %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %10, align 8, !noalias !5746 %32 = fsub <2 x double> %16, %17 %33 = shufflevector <2 x double> %32, <2 x double> poison, <2 x i32> %34 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %35 = insertelement <2 x double> %34, double %w2.1.i.i.i, i64 1 %36 = fmul <2 x double> %33, %35 %37 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %38 = shufflevector <2 x double> %37, <2 x double> poison, <2 x i32> zeroinitializer %39 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %38, <2 x double> %32, <2 x double> %36) store <2 x double> %39, ptr %9, align 8, !noalias !5746 %40 = shufflevector <2 x double> %23, <2 x double> %22, <2 x i32> %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> %42 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %43 = insertelement <2 x double> %42, double %w3.1.i.i.i, i64 1 %44 = fmul <2 x double> %41, %43 %45 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %46 = shufflevector <2 x double> %45, <2 x double> poison, <2 x i32> zeroinitializer %47 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %46, <2 x double> %40, <2 x double> %44) store <2 x double> %47, ptr %11, align 8, !noalias !5746 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 9 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 13 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.i.1 = load double, ptr %48, align 8, !noalias !5746, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %49, align 8, !noalias !5746, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2 %w2.0.i.i.i.1 = load double, ptr %50, align 8, !noalias !5746, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %51, align 8, !noalias !5746, !noundef !3 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3 %w3.0.i.i.i.1 = load double, ptr %52, align 8, !noalias !5746, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %53, align 8, !noalias !5746, !noundef !3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %56 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %57 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5746 %58 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5746 %59 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !5746 %60 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !5746 %61 = fadd <2 x double> %57, %59 %62 = fadd <2 x double> %58, %60 %63 = fadd <2 x double> %61, %62 store <2 x double> %63, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5746 %64 = fsub <2 x double> %57, %59 %65 = fsub <2 x double> %58, %60 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> %67 = fadd <2 x double> %64, %66 %68 = fsub <2 x double> %64, %66 %69 = shufflevector <2 x double> %67, <2 x double> %68, <2 x i32> %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> %71 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %72 = insertelement <2 x double> %71, double %w1.1.i.i.i.1, i64 1 %73 = fmul <2 x double> %70, %72 %74 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> zeroinitializer %76 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %75, <2 x double> %69, <2 x double> %73) store <2 x double> %76, ptr %55, align 8, !noalias !5746 %77 = fsub <2 x double> %61, %62 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %80 = insertelement <2 x double> %79, double %w2.1.i.i.i.1, i64 1 %81 = fmul <2 x double> %78, %80 %82 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> zeroinitializer %84 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %83, <2 x double> %77, <2 x double> %81) store <2 x double> %84, ptr %54, align 8, !noalias !5746 %85 = shufflevector <2 x double> %68, <2 x double> %67, <2 x i32> %86 = shufflevector <2 x double> %85, <2 x double> poison, <2 x i32> %87 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %88 = insertelement <2 x double> %87, double %w3.1.i.i.i.1, i64 1 %89 = fmul <2 x double> %86, %88 %90 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> zeroinitializer %92 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %91, <2 x double> %85, <2 x double> %89) store <2 x double> %92, ptr %56, align 8, !noalias !5746 %data.i.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %data.i5.i.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %data.i.i.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %data.i.i.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %data.i.i.i.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %93 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1 %w1.0.i.i.i.2 = load double, ptr %93, align 8, !noalias !5746, !noundef !3 %94 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %94, align 8, !noalias !5746, !noundef !3 %95 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 2 %w2.0.i.i.i.2 = load double, ptr %95, align 8, !noalias !5746, !noundef !3 %96 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %96, align 8, !noalias !5746, !noundef !3 %97 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 3 %w3.0.i.i.i.2 = load double, ptr %97, align 8, !noalias !5746, !noundef !3 %98 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 2, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %98, align 8, !noalias !5746, !noundef !3 %99 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 10 %100 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 9 %101 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 11 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %102 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5746 %103 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5746 %104 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.2, align 8, !noalias !5746 %105 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.2, align 8, !noalias !5746 %106 = fadd <2 x double> %102, %104 %107 = fadd <2 x double> %103, %105 %108 = fadd <2 x double> %106, %107 store <2 x double> %108, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5746 %109 = fsub <2 x double> %102, %104 %110 = fsub <2 x double> %103, %105 %111 = shufflevector <2 x double> %110, <2 x double> poison, <2 x i32> %112 = fadd <2 x double> %109, %111 %113 = fsub <2 x double> %109, %111 %114 = shufflevector <2 x double> %112, <2 x double> %113, <2 x i32> %115 = shufflevector <2 x double> %114, <2 x double> poison, <2 x i32> %116 = insertelement <2 x double> poison, double %_6.i39.i.i.i.2, i64 0 %117 = insertelement <2 x double> %116, double %w1.1.i.i.i.2, i64 1 %118 = fmul <2 x double> %115, %117 %119 = insertelement <2 x double> poison, double %w1.0.i.i.i.2, i64 0 %120 = shufflevector <2 x double> %119, <2 x double> poison, <2 x i32> zeroinitializer %121 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %120, <2 x double> %114, <2 x double> %118) store <2 x double> %121, ptr %100, align 8, !noalias !5746 %122 = fsub <2 x double> %106, %107 %123 = shufflevector <2 x double> %122, <2 x double> poison, <2 x i32> %124 = insertelement <2 x double> poison, double %_6.i36.i.i.i.2, i64 0 %125 = insertelement <2 x double> %124, double %w2.1.i.i.i.2, i64 1 %126 = fmul <2 x double> %123, %125 %127 = insertelement <2 x double> poison, double %w2.0.i.i.i.2, i64 0 %128 = shufflevector <2 x double> %127, <2 x double> poison, <2 x i32> zeroinitializer %129 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %128, <2 x double> %122, <2 x double> %126) store <2 x double> %129, ptr %99, align 8, !noalias !5746 %130 = shufflevector <2 x double> %113, <2 x double> %112, <2 x i32> %131 = shufflevector <2 x double> %130, <2 x double> poison, <2 x i32> %132 = insertelement <2 x double> poison, double %_6.i.i.i.i.2, i64 0 %133 = insertelement <2 x double> %132, double %w3.1.i.i.i.2, i64 1 %134 = fmul <2 x double> %131, %133 %135 = insertelement <2 x double> poison, double %w3.0.i.i.i.2, i64 0 %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> zeroinitializer %137 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %136, <2 x double> %130, <2 x double> %134) store <2 x double> %137, ptr %101, align 8, !noalias !5746 %data.i.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i5.i.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 11 %data.i.i.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 15 %data.i.i.i.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %138 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1 %w1.0.i.i.i.3 = load double, ptr %138, align 8, !noalias !5746, !noundef !3 %139 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %139, align 8, !noalias !5746, !noundef !3 %140 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 2 %w2.0.i.i.i.3 = load double, ptr %140, align 8, !noalias !5746, !noundef !3 %141 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %141, align 8, !noalias !5746, !noundef !3 %142 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 3 %w3.0.i.i.i.3 = load double, ptr %142, align 8, !noalias !5746, !noundef !3 %143 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 3, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %143, align 8, !noalias !5746, !noundef !3 %144 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 14 %145 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 13 %146 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 15 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %147 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5746 %148 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5746 %149 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.3, align 8, !noalias !5746 %150 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.3, align 8, !noalias !5746 %151 = fadd <2 x double> %147, %149 %152 = fadd <2 x double> %148, %150 %153 = fadd <2 x double> %151, %152 store <2 x double> %153, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5746 %154 = fsub <2 x double> %147, %149 %155 = fsub <2 x double> %148, %150 %156 = shufflevector <2 x double> %155, <2 x double> poison, <2 x i32> %157 = fadd <2 x double> %154, %156 %158 = fsub <2 x double> %154, %156 %159 = shufflevector <2 x double> %157, <2 x double> %158, <2 x i32> %160 = shufflevector <2 x double> %159, <2 x double> poison, <2 x i32> %161 = insertelement <2 x double> poison, double %_6.i39.i.i.i.3, i64 0 %162 = insertelement <2 x double> %161, double %w1.1.i.i.i.3, i64 1 %163 = fmul <2 x double> %160, %162 %164 = insertelement <2 x double> poison, double %w1.0.i.i.i.3, i64 0 %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> zeroinitializer %166 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %165, <2 x double> %159, <2 x double> %163) store <2 x double> %166, ptr %145, align 8, !noalias !5746 %167 = fsub <2 x double> %151, %152 %168 = shufflevector <2 x double> %167, <2 x double> poison, <2 x i32> %169 = insertelement <2 x double> poison, double %_6.i36.i.i.i.3, i64 0 %170 = insertelement <2 x double> %169, double %w2.1.i.i.i.3, i64 1 %171 = fmul <2 x double> %168, %170 %172 = insertelement <2 x double> poison, double %w2.0.i.i.i.3, i64 0 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> zeroinitializer %174 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %173, <2 x double> %167, <2 x double> %171) store <2 x double> %174, ptr %144, align 8, !noalias !5746 %175 = shufflevector <2 x double> %158, <2 x double> %157, <2 x i32> %176 = shufflevector <2 x double> %175, <2 x double> poison, <2 x i32> %177 = insertelement <2 x double> poison, double %_6.i.i.i.i.3, i64 0 %178 = insertelement <2 x double> %177, double %w3.1.i.i.i.3, i64 1 %179 = fmul <2 x double> %176, %178 %180 = insertelement <2 x double> poison, double %w3.0.i.i.i.3, i64 0 %181 = shufflevector <2 x double> %180, <2 x double> poison, <2 x i32> zeroinitializer %182 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %181, <2 x double> %175, <2 x double> %179) store <2 x double> %182, ptr %146, align 8, !noalias !5746 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !5746 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !5746 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %data.i.i.i.i.i.i.2, align 8, !noalias !5746 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %data.i.i.i.i.i.i.3, align 8, !noalias !5746 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %183 = fadd <4 x double> %strided.vec, %strided.vec6 %184 = fadd <4 x double> %strided.vec1, %strided.vec7 %185 = fsub <4 x double> %strided.vec, %strided.vec6 %186 = fsub <4 x double> %strided.vec1, %strided.vec7 %187 = fadd <4 x double> %strided.vec3, %strided.vec9 %188 = fadd <4 x double> %strided.vec4, %strided.vec10 %189 = fsub <4 x double> %strided.vec3, %strided.vec9 %190 = fsub <4 x double> %strided.vec4, %strided.vec10 %191 = fadd <4 x double> %183, %187 %192 = fadd <4 x double> %184, %188 %193 = fadd <4 x double> %185, %190 %194 = fsub <4 x double> %186, %189 %195 = fsub <4 x double> %183, %187 %196 = fsub <4 x double> %184, %188 %197 = fsub <4 x double> %185, %190 %198 = fadd <4 x double> %186, %189 %interleaved.vec = shufflevector <4 x double> %191, <4 x double> %192, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !5746 %199 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec11 = shufflevector <4 x double> %193, <4 x double> %194, <8 x i32> store <8 x double> %interleaved.vec11, ptr %199, align 8, !noalias !5746 %200 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec12 = shufflevector <4 x double> %195, <4 x double> %196, <8 x i32> store <8 x double> %interleaved.vec12, ptr %200, align 8, !noalias !5746 %201 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec13 = shufflevector <4 x double> %197, <4 x double> %198, <8 x i32> store <8 x double> %interleaved.vec13, ptr %201, align 8, !noalias !5746 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5746 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf0940a7f8802a85fE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5749 store i64 128, ptr %n.i.i, align 8, !noalias !5749 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5749 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5749 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5749 store ptr null, ptr %_16.i.i, align 8, !noalias !5749 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5749 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5749 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5749 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5749 store ptr null, ptr %_24.i.i, align 8, !noalias !5749 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5749 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5749 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5749 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5749 store ptr null, ptr %_32.i.i, align 8, !noalias !5749 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5749 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5749 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5749 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf194373e615f94E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5749 store ptr null, ptr %_40.i.i, align 8, !noalias !5749 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf194373e615f94E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5749 tail call void @llvm.experimental.noalias.scope.decl(metadata !5754) tail call void @llvm.experimental.noalias.scope.decl(metadata !5757) tail call void @llvm.experimental.noalias.scope.decl(metadata !5759) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf194373e615f94E.exit.i" %iter.sroa.22.0124.i.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf194373e615f94E.exit.i" ], [ %15, %bb9.i.i ] %4 = or disjoint i64 %iter.sroa.22.0124.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0124.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.22.0124.i.i %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5754, !noalias !5761 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5754, !noalias !5761 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5759, !noalias !5762 %5 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %6 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %b.sroa.0.0.copyload.i.i %7 = shufflevector <4 x double> %6, <4 x double> poison, <4 x i32> %8 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %9 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %10 = fmul <4 x double> %9, %7 %11 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %8, <4 x double> %6, <4 x double> %10) #23 %12 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> store <4 x double> %12, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5757, !noalias !5763 %13 = shufflevector <4 x double> %5, <4 x double> %11, <4 x i32> %14 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0124.i.i, i64 1 store <4 x double> %13, ptr %14, align 8, !alias.scope !5757, !noalias !5763 %15 = add nuw nsw i64 %iter.sroa.22.0124.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %a.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5754, !noalias !5761 %b.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5754, !noalias !5761 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !5759, !noalias !5762 %16 = fadd <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %17 = fsub <4 x double> %a.sroa.0.0.copyload.i.i.1, %b.sroa.0.0.copyload.i.i.1 %18 = shufflevector <4 x double> %17, <4 x double> poison, <4 x i32> %19 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %21 = fmul <4 x double> %20, %18 %22 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %19, <4 x double> %17, <4 x double> %21) #23 %23 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> store <4 x double> %23, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5757, !noalias !5763 %24 = shufflevector <4 x double> %16, <4 x double> %22, <4 x i32> %25 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %4, i64 1 store <4 x double> %24, ptr %25, align 8, !alias.scope !5757, !noalias !5763 %exitcond.not.i.i.1 = icmp eq i64 %15, 32 br i1 %exitcond.not.i.i.1, label %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i, label %bb9.i.i _ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i: ; preds = %bb9.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5764) tail call void @llvm.experimental.noalias.scope.decl(metadata !5767) tail call void @llvm.experimental.noalias.scope.decl(metadata !5769) %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 br label %bb17.us.i.i bb17.us.i.i: ; preds = %bb17.us.i.i, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i %iter.sroa.38.0207.us.i.i = phi i64 [ 0, %_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E.exit.i ], [ %50, %bb17.us.i.i ] %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0207.us.i.i %data.i5.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.38.0207.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %27 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %27, align 8, !alias.scope !5769, !noalias !5771, !noundef !3 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %28, align 8, !alias.scope !5769, !noalias !5771, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %29 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %31 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %32 = shufflevector <4 x double> %29, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5764, !noalias !5772 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5764, !noalias !5772 %33 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i store <4 x double> %33, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5767, !noalias !5773 %34 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %b.sroa.0.0.copyload.us.i.i %35 = shufflevector <4 x double> %34, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %32, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %31, <4 x double> %34, <4 x double> %36) #23 store <4 x double> %37, ptr %30, align 8, !alias.scope !5767, !noalias !5773 %38 = or disjoint i64 %iter.sroa.38.0207.us.i.i, 1 %data.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %38 %data.i5.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %38 %start1.i.i.i.i.i.i.us.i.i.1 = shl nuw i64 %38, 1 %data.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i.1 %39 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1 %w1.0.us.i.i.1 = load double, ptr %39, align 8, !alias.scope !5769, !noalias !5771, !noundef !3 %40 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i.i.1, i64 1, i32 1 %w1.1.us.i.i.1 = load double, ptr %40, align 8, !alias.scope !5769, !noalias !5771, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i.1 = insertelement <2 x double> poison, double %w1.0.us.i.i.1, i64 0 %41 = insertelement <4 x double> poison, double %w1.1.us.i.i.1, i64 0 %42 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i.1, i64 1 %43 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i.1, <2 x double> poison, <4 x i32> zeroinitializer %44 = shufflevector <4 x double> %41, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5764, !noalias !5772 %b.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5764, !noalias !5772 %45 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 store <4 x double> %45, ptr %data.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5767, !noalias !5773 %46 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %b.sroa.0.0.copyload.us.i.i.1 %47 = shufflevector <4 x double> %46, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %44, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %43, <4 x double> %46, <4 x double> %48) #23 store <4 x double> %49, ptr %42, align 8, !alias.scope !5767, !noalias !5773 %50 = add nuw nsw i64 %iter.sroa.38.0207.us.i.i, 2 %exitcond.not.i.1 = icmp eq i64 %50, 32 br i1 %exitcond.not.i.1, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i, label %bb17.us.i.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i: ; preds = %bb17.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5774) tail call void @llvm.experimental.noalias.scope.decl(metadata !5777) tail call void @llvm.experimental.noalias.scope.decl(metadata !5779) br label %bb17.us.i32.i bb17.us.i32.i: ; preds = %bb17.us.i32.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i %iter.sroa.38.0207.us.i33.i = phi i64 [ %67, %bb17.us.i32.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit.i ] %start1.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.38.0207.us.i33.i, 1 %data.i.i.i.i.i.i.i.i.us.i34.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.us.i35.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i36.i = shl i64 %iter.sroa.38.0207.us.i33.i, 2 %data.i.i.i.i.i.i.us.i37.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i36.i %51 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i36.i, i64 1 %w1.0.us.i38.i = load double, ptr %51, align 8, !alias.scope !5779, !noalias !5781, !noundef !3 %52 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i36.i, i64 1, i32 1 %w1.1.us.i39.i = load double, ptr %52, align 8, !alias.scope !5779, !noalias !5781, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i40.i = insertelement <2 x double> poison, double %w1.0.us.i38.i, i64 0 %53 = insertelement <4 x double> poison, double %w1.1.us.i39.i, i64 0 %54 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i37.i, i64 2 %55 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i40.i, <2 x double> poison, <4 x i32> zeroinitializer %56 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i47.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i34.i, align 8, !alias.scope !5774, !noalias !5782 %b.sroa.0.0.copyload.us.i48.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i35.i, align 8, !alias.scope !5774, !noalias !5782 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i47.i, %b.sroa.0.0.copyload.us.i48.i store <4 x double> %57, ptr %data.i.i.i.i.i.i.us.i37.i, align 8, !alias.scope !5777, !noalias !5783 %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i47.i, %b.sroa.0.0.copyload.us.i48.i %59 = shufflevector <4 x double> %58, <4 x double> poison, <4 x i32> %60 = fmul <4 x double> %56, %59 %61 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %58, <4 x double> %60) #23 store <4 x double> %61, ptr %54, align 8, !alias.scope !5777, !noalias !5783 %_3.i.i.i.i.i.i.i.i.us.i43.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i34.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i44.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i35.i, i64 1 %_3.i.i.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i37.i, i64 1 %_3.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i37.i, i64 3 %a.sroa.0.0.copyload.us.i47.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i43.1.i, align 8, !alias.scope !5774, !noalias !5782 %b.sroa.0.0.copyload.us.i48.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i44.1.i, align 8, !alias.scope !5774, !noalias !5782 %62 = fadd <4 x double> %a.sroa.0.0.copyload.us.i47.1.i, %b.sroa.0.0.copyload.us.i48.1.i store <4 x double> %62, ptr %_3.i.i.i.i.i.i.us.i45.1.i, align 8, !alias.scope !5777, !noalias !5783 %63 = fsub <4 x double> %a.sroa.0.0.copyload.us.i47.1.i, %b.sroa.0.0.copyload.us.i48.1.i %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fmul <4 x double> %56, %64 %66 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %55, <4 x double> %63, <4 x double> %65) #23 store <4 x double> %66, ptr %_3.i.i.i.i.us.i46.1.i, align 8, !alias.scope !5777, !noalias !5783 %67 = add nuw nsw i64 %iter.sroa.38.0207.us.i33.i, 1 %exitcond182.not.i = icmp eq i64 %67, 16 br i1 %exitcond182.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit52.i, label %bb17.us.i32.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit52.i: ; preds = %bb17.us.i32.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5784) tail call void @llvm.experimental.noalias.scope.decl(metadata !5787) tail call void @llvm.experimental.noalias.scope.decl(metadata !5789) br label %bb17.us.i66.i bb17.us.i66.i: ; preds = %bb17.us.i66.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit52.i %iter.sroa.38.0207.us.i67.i = phi i64 [ %94, %bb17.us.i66.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit52.i ] %start1.i.i.i.i.i.i.i.i.us.i68.i = shl i64 %iter.sroa.38.0207.us.i67.i, 2 %data.i.i.i.i.i.i.i.i.us.i69.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i68.i %data.i5.i.i.i.i.i.i.i.us.i70.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i68.i %start1.i.i.i.i.i.i.us.i71.i = shl i64 %iter.sroa.38.0207.us.i67.i, 3 %data.i.i.i.i.i.i.us.i72.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i71.i %68 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i71.i, i64 1 %w1.0.us.i73.i = load double, ptr %68, align 8, !alias.scope !5789, !noalias !5791, !noundef !3 %69 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i71.i, i64 1, i32 1 %w1.1.us.i74.i = load double, ptr %69, align 8, !alias.scope !5789, !noalias !5791, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i75.i = insertelement <2 x double> poison, double %w1.0.us.i73.i, i64 0 %70 = insertelement <4 x double> poison, double %w1.1.us.i74.i, i64 0 %71 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 4 %72 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i75.i, <2 x double> poison, <4 x i32> zeroinitializer %73 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i82.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i69.i, align 8, !alias.scope !5784, !noalias !5792 %b.sroa.0.0.copyload.us.i83.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i70.i, align 8, !alias.scope !5784, !noalias !5792 %74 = fadd <4 x double> %a.sroa.0.0.copyload.us.i82.i, %b.sroa.0.0.copyload.us.i83.i store <4 x double> %74, ptr %data.i.i.i.i.i.i.us.i72.i, align 8, !alias.scope !5787, !noalias !5793 %75 = fsub <4 x double> %a.sroa.0.0.copyload.us.i82.i, %b.sroa.0.0.copyload.us.i83.i %76 = shufflevector <4 x double> %75, <4 x double> poison, <4 x i32> %77 = fmul <4 x double> %73, %76 %78 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %75, <4 x double> %77) #23 store <4 x double> %78, ptr %71, align 8, !alias.scope !5787, !noalias !5793 %_3.i.i.i.i.i.i.i.i.us.i78.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i69.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i79.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i70.i, i64 1 %_3.i.i.i.i.i.i.us.i80.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 1 %_3.i.i.i.i.us.i81.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 5 %a.sroa.0.0.copyload.us.i82.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i78.1.i, align 8, !alias.scope !5784, !noalias !5792 %b.sroa.0.0.copyload.us.i83.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i79.1.i, align 8, !alias.scope !5784, !noalias !5792 %79 = fadd <4 x double> %a.sroa.0.0.copyload.us.i82.1.i, %b.sroa.0.0.copyload.us.i83.1.i store <4 x double> %79, ptr %_3.i.i.i.i.i.i.us.i80.1.i, align 8, !alias.scope !5787, !noalias !5793 %80 = fsub <4 x double> %a.sroa.0.0.copyload.us.i82.1.i, %b.sroa.0.0.copyload.us.i83.1.i %81 = shufflevector <4 x double> %80, <4 x double> poison, <4 x i32> %82 = fmul <4 x double> %73, %81 %83 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %80, <4 x double> %82) #23 store <4 x double> %83, ptr %_3.i.i.i.i.us.i81.1.i, align 8, !alias.scope !5787, !noalias !5793 %_3.i.i.i.i.i.i.i.i.us.i78.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i69.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i79.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i70.i, i64 2 %_3.i.i.i.i.i.i.us.i80.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 2 %_3.i.i.i.i.us.i81.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 6 %a.sroa.0.0.copyload.us.i82.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i78.2.i, align 8, !alias.scope !5784, !noalias !5792 %b.sroa.0.0.copyload.us.i83.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i79.2.i, align 8, !alias.scope !5784, !noalias !5792 %84 = fadd <4 x double> %a.sroa.0.0.copyload.us.i82.2.i, %b.sroa.0.0.copyload.us.i83.2.i store <4 x double> %84, ptr %_3.i.i.i.i.i.i.us.i80.2.i, align 8, !alias.scope !5787, !noalias !5793 %85 = fsub <4 x double> %a.sroa.0.0.copyload.us.i82.2.i, %b.sroa.0.0.copyload.us.i83.2.i %86 = shufflevector <4 x double> %85, <4 x double> poison, <4 x i32> %87 = fmul <4 x double> %73, %86 %88 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %85, <4 x double> %87) #23 store <4 x double> %88, ptr %_3.i.i.i.i.us.i81.2.i, align 8, !alias.scope !5787, !noalias !5793 %_3.i.i.i.i.i.i.i.i.us.i78.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i69.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i79.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i70.i, i64 3 %_3.i.i.i.i.i.i.us.i80.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 3 %_3.i.i.i.i.us.i81.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i72.i, i64 7 %a.sroa.0.0.copyload.us.i82.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i78.3.i, align 8, !alias.scope !5784, !noalias !5792 %b.sroa.0.0.copyload.us.i83.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i79.3.i, align 8, !alias.scope !5784, !noalias !5792 %89 = fadd <4 x double> %a.sroa.0.0.copyload.us.i82.3.i, %b.sroa.0.0.copyload.us.i83.3.i store <4 x double> %89, ptr %_3.i.i.i.i.i.i.us.i80.3.i, align 8, !alias.scope !5787, !noalias !5793 %90 = fsub <4 x double> %a.sroa.0.0.copyload.us.i82.3.i, %b.sroa.0.0.copyload.us.i83.3.i %91 = shufflevector <4 x double> %90, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %73, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %72, <4 x double> %90, <4 x double> %92) #23 store <4 x double> %93, ptr %_3.i.i.i.i.us.i81.3.i, align 8, !alias.scope !5787, !noalias !5793 %94 = add nuw nsw i64 %iter.sroa.38.0207.us.i67.i, 1 %exitcond183.not.i = icmp eq i64 %94, 8 br i1 %exitcond183.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit87.i, label %bb17.us.i66.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit87.i: ; preds = %bb17.us.i66.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5794) tail call void @llvm.experimental.noalias.scope.decl(metadata !5797) tail call void @llvm.experimental.noalias.scope.decl(metadata !5799) br label %bb17.us.i101.i bb17.us.i101.i: ; preds = %bb17.us.i101.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit87.i %iter.sroa.38.0207.us.i102.i = phi i64 [ %141, %bb17.us.i101.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit87.i ] %start1.i.i.i.i.i.i.i.i.us.i103.i = shl i64 %iter.sroa.38.0207.us.i102.i, 3 %data.i.i.i.i.i.i.i.i.us.i104.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i103.i %data.i5.i.i.i.i.i.i.i.us.i105.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i103.i %start1.i.i.i.i.i.i.us.i106.i = shl i64 %iter.sroa.38.0207.us.i102.i, 4 %data.i.i.i.i.i.i.us.i107.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i106.i %95 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i106.i, i64 1 %w1.0.us.i108.i = load double, ptr %95, align 8, !alias.scope !5799, !noalias !5801, !noundef !3 %96 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i106.i, i64 1, i32 1 %w1.1.us.i109.i = load double, ptr %96, align 8, !alias.scope !5799, !noalias !5801, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i110.i = insertelement <2 x double> poison, double %w1.0.us.i108.i, i64 0 %97 = insertelement <4 x double> poison, double %w1.1.us.i109.i, i64 0 %98 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 8 %99 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i110.i, <2 x double> poison, <4 x i32> zeroinitializer %100 = shufflevector <4 x double> %97, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i117.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i104.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, align 8, !alias.scope !5794, !noalias !5802 %101 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.i, %b.sroa.0.0.copyload.us.i118.i store <4 x double> %101, ptr %data.i.i.i.i.i.i.us.i107.i, align 8, !alias.scope !5797, !noalias !5803 %102 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.i, %b.sroa.0.0.copyload.us.i118.i %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %100, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %98, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i114.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 1 %_3.i.i.i.i.i.i.us.i115.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 1 %_3.i.i.i.i.us.i116.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 9 %a.sroa.0.0.copyload.us.i117.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.1.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.1.i, align 8, !alias.scope !5794, !noalias !5802 %106 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.1.i, %b.sroa.0.0.copyload.us.i118.1.i store <4 x double> %106, ptr %_3.i.i.i.i.i.i.us.i115.1.i, align 8, !alias.scope !5797, !noalias !5803 %107 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.1.i, %b.sroa.0.0.copyload.us.i118.1.i %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %100, %108 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %107, <4 x double> %109) #23 store <4 x double> %110, ptr %_3.i.i.i.i.us.i116.1.i, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i114.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 2 %_3.i.i.i.i.i.i.us.i115.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 2 %_3.i.i.i.i.us.i116.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 10 %a.sroa.0.0.copyload.us.i117.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.2.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.2.i, align 8, !alias.scope !5794, !noalias !5802 %111 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.2.i, %b.sroa.0.0.copyload.us.i118.2.i store <4 x double> %111, ptr %_3.i.i.i.i.i.i.us.i115.2.i, align 8, !alias.scope !5797, !noalias !5803 %112 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.2.i, %b.sroa.0.0.copyload.us.i118.2.i %113 = shufflevector <4 x double> %112, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %100, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %112, <4 x double> %114) #23 store <4 x double> %115, ptr %_3.i.i.i.i.us.i116.2.i, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i114.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 3 %_3.i.i.i.i.i.i.us.i115.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 3 %_3.i.i.i.i.us.i116.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 11 %a.sroa.0.0.copyload.us.i117.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.3.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.3.i, align 8, !alias.scope !5794, !noalias !5802 %116 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.3.i, %b.sroa.0.0.copyload.us.i118.3.i store <4 x double> %116, ptr %_3.i.i.i.i.i.i.us.i115.3.i, align 8, !alias.scope !5797, !noalias !5803 %117 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.3.i, %b.sroa.0.0.copyload.us.i118.3.i %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %100, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %117, <4 x double> %119) #23 store <4 x double> %120, ptr %_3.i.i.i.i.us.i116.3.i, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i114.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 4 %_3.i.i.i.i.i.i.us.i115.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 4 %_3.i.i.i.i.us.i116.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 12 %a.sroa.0.0.copyload.us.i117.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.4.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.4.i, align 8, !alias.scope !5794, !noalias !5802 %121 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.4.i, %b.sroa.0.0.copyload.us.i118.4.i store <4 x double> %121, ptr %_3.i.i.i.i.i.i.us.i115.4.i, align 8, !alias.scope !5797, !noalias !5803 %122 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.4.i, %b.sroa.0.0.copyload.us.i118.4.i %123 = shufflevector <4 x double> %122, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %100, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %122, <4 x double> %124) #23 store <4 x double> %125, ptr %_3.i.i.i.i.us.i116.4.i, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i114.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 5 %_3.i.i.i.i.i.i.us.i115.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 5 %_3.i.i.i.i.us.i116.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 13 %a.sroa.0.0.copyload.us.i117.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.5.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.5.i, align 8, !alias.scope !5794, !noalias !5802 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.5.i, %b.sroa.0.0.copyload.us.i118.5.i store <4 x double> %126, ptr %_3.i.i.i.i.i.i.us.i115.5.i, align 8, !alias.scope !5797, !noalias !5803 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.5.i, %b.sroa.0.0.copyload.us.i118.5.i %128 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %100, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %127, <4 x double> %129) #23 store <4 x double> %130, ptr %_3.i.i.i.i.us.i116.5.i, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i114.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 6 %_3.i.i.i.i.i.i.us.i115.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 6 %_3.i.i.i.i.us.i116.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 14 %a.sroa.0.0.copyload.us.i117.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.6.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.6.i, align 8, !alias.scope !5794, !noalias !5802 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.6.i, %b.sroa.0.0.copyload.us.i118.6.i store <4 x double> %131, ptr %_3.i.i.i.i.i.i.us.i115.6.i, align 8, !alias.scope !5797, !noalias !5803 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.6.i, %b.sroa.0.0.copyload.us.i118.6.i %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %100, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %132, <4 x double> %134) #23 store <4 x double> %135, ptr %_3.i.i.i.i.us.i116.6.i, align 8, !alias.scope !5797, !noalias !5803 %_3.i.i.i.i.i.i.i.i.us.i113.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i104.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i114.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i105.i, i64 7 %_3.i.i.i.i.i.i.us.i115.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 7 %_3.i.i.i.i.us.i116.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i107.i, i64 15 %a.sroa.0.0.copyload.us.i117.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i113.7.i, align 8, !alias.scope !5794, !noalias !5802 %b.sroa.0.0.copyload.us.i118.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i114.7.i, align 8, !alias.scope !5794, !noalias !5802 %136 = fadd <4 x double> %a.sroa.0.0.copyload.us.i117.7.i, %b.sroa.0.0.copyload.us.i118.7.i store <4 x double> %136, ptr %_3.i.i.i.i.i.i.us.i115.7.i, align 8, !alias.scope !5797, !noalias !5803 %137 = fsub <4 x double> %a.sroa.0.0.copyload.us.i117.7.i, %b.sroa.0.0.copyload.us.i118.7.i %138 = shufflevector <4 x double> %137, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %100, %138 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %99, <4 x double> %137, <4 x double> %139) #23 store <4 x double> %140, ptr %_3.i.i.i.i.us.i116.7.i, align 8, !alias.scope !5797, !noalias !5803 %141 = add nuw nsw i64 %iter.sroa.38.0207.us.i102.i, 1 %exitcond184.not.i = icmp eq i64 %141, 4 br i1 %exitcond184.not.i, label %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit122.i, label %bb17.us.i101.i _ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit122.i: ; preds = %bb17.us.i101.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5804) tail call void @llvm.experimental.noalias.scope.decl(metadata !5807) tail call void @llvm.experimental.noalias.scope.decl(metadata !5809) br label %bb17.us.i136.i bb17.us.i136.i: ; preds = %bb17.us.i136.i, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit122.i %_2.i.i.i.us.i156.i = phi i1 [ false, %bb17.us.i136.i ], [ true, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit122.i ] %iter.sroa.38.0207.us.i137.i = phi i64 [ 1, %bb17.us.i136.i ], [ 0, %_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE.exit122.i ] %start1.i.i.i.i.i.i.i.i.us.i138.i = shl nuw nsw i64 %iter.sroa.38.0207.us.i137.i, 4 %data.i.i.i.i.i.i.i.i.us.i139.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i138.i %data.i5.i.i.i.i.i.i.i.us.i140.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %start1.i.i.i.i.i.i.i.i.us.i138.i %start1.i.i.i.i.i.i.us.i141.i = shl nuw nsw i64 %iter.sroa.38.0207.us.i137.i, 5 %data.i.i.i.i.i.i.us.i142.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i141.i %142 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i141.i, i64 1 %w1.0.us.i143.i = load double, ptr %142, align 8, !alias.scope !5809, !noalias !5811, !noundef !3 %143 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.us.i141.i, i64 1, i32 1 %w1.1.us.i144.i = load double, ptr %143, align 8, !alias.scope !5809, !noalias !5811, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i145.i = insertelement <2 x double> poison, double %w1.0.us.i143.i, i64 0 %144 = insertelement <4 x double> poison, double %w1.1.us.i144.i, i64 0 %145 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 16 %146 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i145.i, <2 x double> poison, <4 x i32> zeroinitializer %147 = shufflevector <4 x double> %144, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i152.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i139.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, align 8, !alias.scope !5804, !noalias !5812 %148 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.i, %b.sroa.0.0.copyload.us.i153.i store <4 x double> %148, ptr %data.i.i.i.i.i.i.us.i142.i, align 8, !alias.scope !5807, !noalias !5813 %149 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.i, %b.sroa.0.0.copyload.us.i153.i %150 = shufflevector <4 x double> %149, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %147, %150 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %149, <4 x double> %151) #23 store <4 x double> %152, ptr %145, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i149.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 1 %_3.i.i.i.i.i.i.us.i150.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 1 %_3.i.i.i.i.us.i151.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 17 %a.sroa.0.0.copyload.us.i152.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.1.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.1.i, align 8, !alias.scope !5804, !noalias !5812 %153 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.1.i, %b.sroa.0.0.copyload.us.i153.1.i store <4 x double> %153, ptr %_3.i.i.i.i.i.i.us.i150.1.i, align 8, !alias.scope !5807, !noalias !5813 %154 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.1.i, %b.sroa.0.0.copyload.us.i153.1.i %155 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %147, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %154, <4 x double> %156) #23 store <4 x double> %157, ptr %_3.i.i.i.i.us.i151.1.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i149.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 2 %_3.i.i.i.i.i.i.us.i150.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 2 %_3.i.i.i.i.us.i151.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 18 %a.sroa.0.0.copyload.us.i152.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.2.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.2.i, align 8, !alias.scope !5804, !noalias !5812 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.2.i, %b.sroa.0.0.copyload.us.i153.2.i store <4 x double> %158, ptr %_3.i.i.i.i.i.i.us.i150.2.i, align 8, !alias.scope !5807, !noalias !5813 %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.2.i, %b.sroa.0.0.copyload.us.i153.2.i %160 = shufflevector <4 x double> %159, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %147, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %159, <4 x double> %161) #23 store <4 x double> %162, ptr %_3.i.i.i.i.us.i151.2.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i149.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 3 %_3.i.i.i.i.i.i.us.i150.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 3 %_3.i.i.i.i.us.i151.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 19 %a.sroa.0.0.copyload.us.i152.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.3.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.3.i, align 8, !alias.scope !5804, !noalias !5812 %163 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.3.i, %b.sroa.0.0.copyload.us.i153.3.i store <4 x double> %163, ptr %_3.i.i.i.i.i.i.us.i150.3.i, align 8, !alias.scope !5807, !noalias !5813 %164 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.3.i, %b.sroa.0.0.copyload.us.i153.3.i %165 = shufflevector <4 x double> %164, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %147, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %164, <4 x double> %166) #23 store <4 x double> %167, ptr %_3.i.i.i.i.us.i151.3.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i149.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 4 %_3.i.i.i.i.i.i.us.i150.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 4 %_3.i.i.i.i.us.i151.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 20 %a.sroa.0.0.copyload.us.i152.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.4.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.4.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.4.i, align 8, !alias.scope !5804, !noalias !5812 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.4.i, %b.sroa.0.0.copyload.us.i153.4.i store <4 x double> %168, ptr %_3.i.i.i.i.i.i.us.i150.4.i, align 8, !alias.scope !5807, !noalias !5813 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.4.i, %b.sroa.0.0.copyload.us.i153.4.i %170 = shufflevector <4 x double> %169, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %147, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %169, <4 x double> %171) #23 store <4 x double> %172, ptr %_3.i.i.i.i.us.i151.4.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i149.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 5 %_3.i.i.i.i.i.i.us.i150.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 5 %_3.i.i.i.i.us.i151.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 21 %a.sroa.0.0.copyload.us.i152.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.5.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.5.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.5.i, align 8, !alias.scope !5804, !noalias !5812 %173 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.5.i, %b.sroa.0.0.copyload.us.i153.5.i store <4 x double> %173, ptr %_3.i.i.i.i.i.i.us.i150.5.i, align 8, !alias.scope !5807, !noalias !5813 %174 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.5.i, %b.sroa.0.0.copyload.us.i153.5.i %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %147, %175 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %174, <4 x double> %176) #23 store <4 x double> %177, ptr %_3.i.i.i.i.us.i151.5.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i149.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 6 %_3.i.i.i.i.i.i.us.i150.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 6 %_3.i.i.i.i.us.i151.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 22 %a.sroa.0.0.copyload.us.i152.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.6.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.6.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.6.i, align 8, !alias.scope !5804, !noalias !5812 %178 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.6.i, %b.sroa.0.0.copyload.us.i153.6.i store <4 x double> %178, ptr %_3.i.i.i.i.i.i.us.i150.6.i, align 8, !alias.scope !5807, !noalias !5813 %179 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.6.i, %b.sroa.0.0.copyload.us.i153.6.i %180 = shufflevector <4 x double> %179, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %147, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %179, <4 x double> %181) #23 store <4 x double> %182, ptr %_3.i.i.i.i.us.i151.6.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i149.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 7 %_3.i.i.i.i.i.i.us.i150.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 7 %_3.i.i.i.i.us.i151.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 23 %a.sroa.0.0.copyload.us.i152.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.7.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.7.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.7.i, align 8, !alias.scope !5804, !noalias !5812 %183 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.7.i, %b.sroa.0.0.copyload.us.i153.7.i store <4 x double> %183, ptr %_3.i.i.i.i.i.i.us.i150.7.i, align 8, !alias.scope !5807, !noalias !5813 %184 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.7.i, %b.sroa.0.0.copyload.us.i153.7.i %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %147, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %184, <4 x double> %186) #23 store <4 x double> %187, ptr %_3.i.i.i.i.us.i151.7.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i149.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 8 %_3.i.i.i.i.i.i.us.i150.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 8 %_3.i.i.i.i.us.i151.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 24 %a.sroa.0.0.copyload.us.i152.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.8.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.8.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.8.i, align 8, !alias.scope !5804, !noalias !5812 %188 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.8.i, %b.sroa.0.0.copyload.us.i153.8.i store <4 x double> %188, ptr %_3.i.i.i.i.i.i.us.i150.8.i, align 8, !alias.scope !5807, !noalias !5813 %189 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.8.i, %b.sroa.0.0.copyload.us.i153.8.i %190 = shufflevector <4 x double> %189, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %147, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %189, <4 x double> %191) #23 store <4 x double> %192, ptr %_3.i.i.i.i.us.i151.8.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i149.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 9 %_3.i.i.i.i.i.i.us.i150.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 9 %_3.i.i.i.i.us.i151.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 25 %a.sroa.0.0.copyload.us.i152.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.9.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.9.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.9.i, align 8, !alias.scope !5804, !noalias !5812 %193 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.9.i, %b.sroa.0.0.copyload.us.i153.9.i store <4 x double> %193, ptr %_3.i.i.i.i.i.i.us.i150.9.i, align 8, !alias.scope !5807, !noalias !5813 %194 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.9.i, %b.sroa.0.0.copyload.us.i153.9.i %195 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %147, %195 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %194, <4 x double> %196) #23 store <4 x double> %197, ptr %_3.i.i.i.i.us.i151.9.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i149.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 10 %_3.i.i.i.i.i.i.us.i150.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 10 %_3.i.i.i.i.us.i151.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 26 %a.sroa.0.0.copyload.us.i152.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.10.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.10.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.10.i, align 8, !alias.scope !5804, !noalias !5812 %198 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.10.i, %b.sroa.0.0.copyload.us.i153.10.i store <4 x double> %198, ptr %_3.i.i.i.i.i.i.us.i150.10.i, align 8, !alias.scope !5807, !noalias !5813 %199 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.10.i, %b.sroa.0.0.copyload.us.i153.10.i %200 = shufflevector <4 x double> %199, <4 x double> poison, <4 x i32> %201 = fmul <4 x double> %147, %200 %202 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %199, <4 x double> %201) #23 store <4 x double> %202, ptr %_3.i.i.i.i.us.i151.10.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i149.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 11 %_3.i.i.i.i.i.i.us.i150.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 11 %_3.i.i.i.i.us.i151.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 27 %a.sroa.0.0.copyload.us.i152.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.11.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.11.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.11.i, align 8, !alias.scope !5804, !noalias !5812 %203 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.11.i, %b.sroa.0.0.copyload.us.i153.11.i store <4 x double> %203, ptr %_3.i.i.i.i.i.i.us.i150.11.i, align 8, !alias.scope !5807, !noalias !5813 %204 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.11.i, %b.sroa.0.0.copyload.us.i153.11.i %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = fmul <4 x double> %147, %205 %207 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %204, <4 x double> %206) #23 store <4 x double> %207, ptr %_3.i.i.i.i.us.i151.11.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i149.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 12 %_3.i.i.i.i.i.i.us.i150.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 12 %_3.i.i.i.i.us.i151.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 28 %a.sroa.0.0.copyload.us.i152.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.12.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.12.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.12.i, align 8, !alias.scope !5804, !noalias !5812 %208 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.12.i, %b.sroa.0.0.copyload.us.i153.12.i store <4 x double> %208, ptr %_3.i.i.i.i.i.i.us.i150.12.i, align 8, !alias.scope !5807, !noalias !5813 %209 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.12.i, %b.sroa.0.0.copyload.us.i153.12.i %210 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> %211 = fmul <4 x double> %147, %210 %212 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %209, <4 x double> %211) #23 store <4 x double> %212, ptr %_3.i.i.i.i.us.i151.12.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i149.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 13 %_3.i.i.i.i.i.i.us.i150.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 13 %_3.i.i.i.i.us.i151.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 29 %a.sroa.0.0.copyload.us.i152.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.13.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.13.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.13.i, align 8, !alias.scope !5804, !noalias !5812 %213 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.13.i, %b.sroa.0.0.copyload.us.i153.13.i store <4 x double> %213, ptr %_3.i.i.i.i.i.i.us.i150.13.i, align 8, !alias.scope !5807, !noalias !5813 %214 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.13.i, %b.sroa.0.0.copyload.us.i153.13.i %215 = shufflevector <4 x double> %214, <4 x double> poison, <4 x i32> %216 = fmul <4 x double> %147, %215 %217 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %214, <4 x double> %216) #23 store <4 x double> %217, ptr %_3.i.i.i.i.us.i151.13.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i149.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 14 %_3.i.i.i.i.i.i.us.i150.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 14 %_3.i.i.i.i.us.i151.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 30 %a.sroa.0.0.copyload.us.i152.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.14.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.14.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.14.i, align 8, !alias.scope !5804, !noalias !5812 %218 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.14.i, %b.sroa.0.0.copyload.us.i153.14.i store <4 x double> %218, ptr %_3.i.i.i.i.i.i.us.i150.14.i, align 8, !alias.scope !5807, !noalias !5813 %219 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.14.i, %b.sroa.0.0.copyload.us.i153.14.i %220 = shufflevector <4 x double> %219, <4 x double> poison, <4 x i32> %221 = fmul <4 x double> %147, %220 %222 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %219, <4 x double> %221) #23 store <4 x double> %222, ptr %_3.i.i.i.i.us.i151.14.i, align 8, !alias.scope !5807, !noalias !5813 %_3.i.i.i.i.i.i.i.i.us.i148.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i139.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i149.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i140.i, i64 15 %_3.i.i.i.i.i.i.us.i150.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 15 %_3.i.i.i.i.us.i151.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i142.i, i64 31 %a.sroa.0.0.copyload.us.i152.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.us.i148.15.i, align 8, !alias.scope !5804, !noalias !5812 %b.sroa.0.0.copyload.us.i153.15.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.us.i149.15.i, align 8, !alias.scope !5804, !noalias !5812 %223 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.15.i, %b.sroa.0.0.copyload.us.i153.15.i store <4 x double> %223, ptr %_3.i.i.i.i.i.i.us.i150.15.i, align 8, !alias.scope !5807, !noalias !5813 %224 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.15.i, %b.sroa.0.0.copyload.us.i153.15.i %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %147, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %146, <4 x double> %224, <4 x double> %226) #23 store <4 x double> %227, ptr %_3.i.i.i.i.us.i151.15.i, align 8, !alias.scope !5807, !noalias !5813 br i1 %_2.i.i.i.us.i156.i, label %bb17.us.i136.i, label %bb9.i.i.i.i.i.i bb9.i.i.i.i.i.i: ; preds = %bb17.us.i136.i, %bb9.i.i.i.i.i.i %iter.i.i.i.i.i.sroa.8.0181.i = phi i64 [ %237, %bb9.i.i.i.i.i.i ], [ 0, %bb17.us.i136.i ] %228 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0181.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0181.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0181.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5749 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !5749 %229 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %230 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %229, ptr %_3.i.i.i.i.i, align 8, !noalias !5749 store <4 x double> %230, ptr %_3.i2.i.i.i.i, align 8, !noalias !5749 %231 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0181.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %228 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %228 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5749 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5749 %232 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %233 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %232, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5749 store <4 x double> %233, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5749 %234 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0181.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %231 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %231 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5749 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5749 %235 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %236 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %235, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5749 store <4 x double> %236, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5749 %237 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0181.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %234 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %234 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5749 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5749 %238 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %239 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %238, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5749 store <4 x double> %239, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5749 %exitcond185.not.i.3 = icmp eq i64 %237, 32 br i1 %exitcond185.not.i.3, label %_ZN4pulp3x862V39vectorize6__impl17h235d87eb0a350715E.exit, label %bb9.i.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h235d87eb0a350715E.exit: ; preds = %bb9.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5749 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf20873f6ab76e888E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5814 store i64 128, ptr %n.i, align 8, !noalias !5814 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5814 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5814 %_12.i = icmp eq i64 %buf.1, 128 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5814 store ptr null, ptr %_16.i, align 8, !noalias !5814 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5814 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5814 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5814 %_20.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5814 store ptr null, ptr %_24.i, align 8, !noalias !5814 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5814 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5814 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5814 %_28.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5814 store ptr null, ptr %_32.i, align 8, !noalias !5814 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5814 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5814 store i64 %w.1, ptr %_34.i, align 8, !noalias !5814 %_36.i = icmp eq i64 %w.1, 128 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haffcec96b3c36ce7E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5814 store ptr null, ptr %_40.i, align 8, !noalias !5814 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haffcec96b3c36ce7E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5814 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 32 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 48 %4 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 96 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 80 %6 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 112 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 32 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 48 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 96 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 80 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 112 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haffcec96b3c36ce7E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haffcec96b3c36ce7E.exit" ], [ %index.next, %vector.body ] %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %15 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index %16 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index %17 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index %18 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index %19 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index %20 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index %21 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index %wide.vec = load <8 x double>, ptr %14, align 8, !noalias !5814 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %15, align 8, !noalias !5814 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %16, align 8, !noalias !5814 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %17, align 8, !noalias !5814 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %wide.vec11 = load <8 x double>, ptr %18, align 8, !noalias !5814 %strided.vec12 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %strided.vec13 = shufflevector <8 x double> %wide.vec11, <8 x double> poison, <4 x i32> %wide.vec14 = load <8 x double>, ptr %19, align 8, !noalias !5814 %strided.vec15 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec14, <8 x double> poison, <4 x i32> %wide.vec17 = load <8 x double>, ptr %20, align 8, !noalias !5814 %strided.vec18 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %strided.vec19 = shufflevector <8 x double> %wide.vec17, <8 x double> poison, <4 x i32> %wide.vec20 = load <8 x double>, ptr %21, align 8, !noalias !5814 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %22 = fadd <4 x double> %strided.vec, %strided.vec12 %23 = fadd <4 x double> %strided.vec1, %strided.vec13 %24 = fsub <4 x double> %strided.vec, %strided.vec12 %25 = fsub <4 x double> %strided.vec1, %strided.vec13 %26 = fadd <4 x double> %strided.vec6, %strided.vec18 %27 = fadd <4 x double> %strided.vec7, %strided.vec19 %28 = fsub <4 x double> %strided.vec6, %strided.vec18 %29 = fsub <4 x double> %strided.vec7, %strided.vec19 %30 = fadd <4 x double> %strided.vec3, %strided.vec15 %31 = fadd <4 x double> %strided.vec4, %strided.vec16 %32 = fsub <4 x double> %strided.vec3, %strided.vec15 %33 = fsub <4 x double> %strided.vec4, %strided.vec16 %34 = fadd <4 x double> %strided.vec9, %strided.vec21 %35 = fadd <4 x double> %strided.vec10, %strided.vec22 %36 = fsub <4 x double> %strided.vec9, %strided.vec21 %37 = fsub <4 x double> %strided.vec10, %strided.vec22 %38 = fadd <4 x double> %22, %26 %39 = fadd <4 x double> %23, %27 %40 = fsub <4 x double> %24, %29 %41 = fadd <4 x double> %25, %28 %42 = fsub <4 x double> %22, %26 %43 = fsub <4 x double> %23, %27 %44 = fadd <4 x double> %24, %29 %45 = fsub <4 x double> %25, %28 %46 = fadd <4 x double> %30, %34 %47 = fadd <4 x double> %31, %35 %48 = fsub <4 x double> %32, %37 %49 = fadd <4 x double> %33, %36 %50 = fsub <4 x double> %48, %49 %51 = fadd <4 x double> %49, %48 %52 = fmul <4 x double> %50, %53 = fmul <4 x double> %51, %54 = fsub <4 x double> %30, %34 %55 = fsub <4 x double> %31, %35 %56 = fadd <4 x double> %32, %37 %57 = fsub <4 x double> %33, %36 %58 = fadd <4 x double> %57, %56 %59 = fsub <4 x double> %57, %56 %60 = fmul <4 x double> %58, %61 = fmul <4 x double> %59, %62 = fadd <4 x double> %38, %46 %63 = fadd <4 x double> %39, %47 %64 = fadd <4 x double> %40, %52 %65 = fadd <4 x double> %41, %53 %66 = fsub <4 x double> %42, %55 %67 = fadd <4 x double> %43, %54 %68 = fsub <4 x double> %44, %60 %69 = fsub <4 x double> %45, %61 %70 = fsub <4 x double> %38, %46 %71 = fsub <4 x double> %39, %47 %72 = fsub <4 x double> %40, %52 %73 = fsub <4 x double> %41, %53 %74 = fadd <4 x double> %42, %55 %75 = fsub <4 x double> %43, %54 %76 = fadd <4 x double> %44, %60 %77 = fadd <4 x double> %45, %61 %78 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %62, <4 x double> %63, <8 x i32> store <8 x double> %interleaved.vec, ptr %78, align 8, !noalias !5814 %79 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %interleaved.vec23 = shufflevector <4 x double> %64, <4 x double> %65, <8 x i32> store <8 x double> %interleaved.vec23, ptr %79, align 8, !noalias !5814 %80 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %interleaved.vec24 = shufflevector <4 x double> %66, <4 x double> %67, <8 x i32> store <8 x double> %interleaved.vec24, ptr %80, align 8, !noalias !5814 %81 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %interleaved.vec25 = shufflevector <4 x double> %68, <4 x double> %69, <8 x i32> store <8 x double> %interleaved.vec25, ptr %81, align 8, !noalias !5814 %82 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec26 = shufflevector <4 x double> %70, <4 x double> %71, <8 x i32> store <8 x double> %interleaved.vec26, ptr %82, align 8, !noalias !5814 %83 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %interleaved.vec27 = shufflevector <4 x double> %72, <4 x double> %73, <8 x i32> store <8 x double> %interleaved.vec27, ptr %83, align 8, !noalias !5814 %84 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %interleaved.vec28 = shufflevector <4 x double> %74, <4 x double> %75, <8 x i32> store <8 x double> %interleaved.vec28, ptr %84, align 8, !noalias !5814 %85 = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %index %interleaved.vec29 = shufflevector <4 x double> %76, <4 x double> %77, <8 x i32> store <8 x double> %interleaved.vec29, ptr %85, align 8, !noalias !5814 %index.next = add nuw i64 %index, 4 %86 = icmp eq i64 %index.next, 16 br i1 %86, label %bb48.i.i.i.preheader, label %vector.body, !llvm.loop !5817 bb48.i.i.i.preheader: ; preds = %vector.body %87 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %88 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %89 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 40 %90 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 56 %91 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 72 %92 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 88 %93 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 104 %94 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 120 br label %vector.body34 vector.body34: ; preds = %vector.body34, %bb48.i.i.i.preheader %index35 = phi i64 [ 0, %bb48.i.i.i.preheader ], [ %index.next113, %vector.body34 ] %vec.ind = phi <4 x i64> [ , %bb48.i.i.i.preheader ], [ %vec.ind.next, %vector.body34 ] %95 = shl <4 x i64> %vec.ind, %96 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %95 %97 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %97, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %98 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 1, i32 1 %wide.masked.gather36 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %99 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2 %wide.masked.gather37 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %99, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %100 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 2, i32 1 %wide.masked.gather38 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %100, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %101 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3 %wide.masked.gather39 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %101, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %102 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 3, i32 1 %wide.masked.gather40 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %102, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %103 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4 %wide.masked.gather41 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %103, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %104 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 4, i32 1 %wide.masked.gather42 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %104, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %105 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5 %wide.masked.gather43 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %105, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %106 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 5, i32 1 %wide.masked.gather44 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %106, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %107 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6 %wide.masked.gather45 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %107, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %108 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 6, i32 1 %wide.masked.gather46 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %108, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %109 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7 %wide.masked.gather47 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %109, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %110 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 7, i32 1 %wide.masked.gather48 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %110, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %111 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8 %wide.masked.gather49 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %111, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %112 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 8, i32 1 %wide.masked.gather50 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %112, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %113 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9 %wide.masked.gather51 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %113, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %114 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 9, i32 1 %wide.masked.gather52 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %114, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %115 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10 %wide.masked.gather53 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %115, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %116 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 10, i32 1 %wide.masked.gather54 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %116, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %117 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11 %wide.masked.gather55 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %117, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %118 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 11, i32 1 %wide.masked.gather56 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %118, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %119 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12 %wide.masked.gather57 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %120 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 12, i32 1 %wide.masked.gather58 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %121 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %122 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 13, i32 1 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %123 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %124 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 14, i32 1 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %125 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15 %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %125, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %126 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind, i64 15, i32 1 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %126, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %127 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 8 %128 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 4 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 2 %130 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 1 %131 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 3 %132 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 6 %133 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 5 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 7 %135 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 12 %136 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 10 %137 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 9 %138 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 11 %139 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 14 %140 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 13 %141 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 15 %142 = fneg <4 x double> %wide.masked.gather36 %143 = fneg <4 x double> %wide.masked.gather38 %144 = fneg <4 x double> %wide.masked.gather40 %145 = fneg <4 x double> %wide.masked.gather42 %146 = fneg <4 x double> %wide.masked.gather44 %147 = fneg <4 x double> %wide.masked.gather46 %148 = fneg <4 x double> %wide.masked.gather48 %149 = fneg <4 x double> %wide.masked.gather50 %150 = fneg <4 x double> %wide.masked.gather52 %151 = fneg <4 x double> %wide.masked.gather54 %152 = fneg <4 x double> %wide.masked.gather56 %153 = fneg <4 x double> %wide.masked.gather58 %154 = fneg <4 x double> %wide.masked.gather60 %155 = fneg <4 x double> %wide.masked.gather62 %156 = fneg <4 x double> %wide.masked.gather64 %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %96, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %157 = getelementptr inbounds i8, <4 x ptr> %96, i64 8 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %130, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %158 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 1, i32 1 %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %159 = fmul <4 x double> %wide.masked.gather68, %142 %160 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather67, <4 x double> %159) %161 = fmul <4 x double> %wide.masked.gather36, %wide.masked.gather67 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather68, <4 x double> %161) %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %163 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 2, i32 1 %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %164 = fmul <4 x double> %wide.masked.gather70, %143 %165 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather69, <4 x double> %164) %166 = fmul <4 x double> %wide.masked.gather38, %wide.masked.gather69 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather37, <4 x double> %wide.masked.gather70, <4 x double> %166) %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %131, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %168 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 3, i32 1 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %168, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %169 = fmul <4 x double> %wide.masked.gather72, %144 %170 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather71, <4 x double> %169) %171 = fmul <4 x double> %wide.masked.gather40, %wide.masked.gather71 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather39, <4 x double> %wide.masked.gather72, <4 x double> %171) %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %128, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %173 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 4, i32 1 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %173, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %174 = fmul <4 x double> %wide.masked.gather74, %145 %175 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather73, <4 x double> %174) %176 = fmul <4 x double> %wide.masked.gather42, %wide.masked.gather73 %177 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather41, <4 x double> %wide.masked.gather74, <4 x double> %176) %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %133, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %178 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 5, i32 1 %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %178, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %179 = fmul <4 x double> %wide.masked.gather76, %146 %180 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather75, <4 x double> %179) %181 = fmul <4 x double> %wide.masked.gather44, %wide.masked.gather75 %182 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather43, <4 x double> %wide.masked.gather76, <4 x double> %181) %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %132, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %183 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 6, i32 1 %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %183, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %184 = fmul <4 x double> %wide.masked.gather78, %147 %185 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather77, <4 x double> %184) %186 = fmul <4 x double> %wide.masked.gather46, %wide.masked.gather77 %187 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather45, <4 x double> %wide.masked.gather78, <4 x double> %186) %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %188 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 7, i32 1 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %188, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %189 = fmul <4 x double> %wide.masked.gather80, %148 %190 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather79, <4 x double> %189) %191 = fmul <4 x double> %wide.masked.gather48, %wide.masked.gather79 %192 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather47, <4 x double> %wide.masked.gather80, <4 x double> %191) %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %127, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %193 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 8, i32 1 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %193, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %194 = fmul <4 x double> %wide.masked.gather82, %149 %195 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather49, <4 x double> %wide.masked.gather81, <4 x double> %194) %196 = fmul <4 x double> %wide.masked.gather50, %wide.masked.gather81 %197 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather49, <4 x double> %wide.masked.gather82, <4 x double> %196) %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %137, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %198 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 9, i32 1 %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %198, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %199 = fmul <4 x double> %wide.masked.gather84, %150 %200 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather51, <4 x double> %wide.masked.gather83, <4 x double> %199) %201 = fmul <4 x double> %wide.masked.gather52, %wide.masked.gather83 %202 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather51, <4 x double> %wide.masked.gather84, <4 x double> %201) %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %136, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %203 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 10, i32 1 %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %203, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %204 = fmul <4 x double> %wide.masked.gather86, %151 %205 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather53, <4 x double> %wide.masked.gather85, <4 x double> %204) %206 = fmul <4 x double> %wide.masked.gather54, %wide.masked.gather85 %207 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather53, <4 x double> %wide.masked.gather86, <4 x double> %206) %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %138, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %208 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 11, i32 1 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %208, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %209 = fmul <4 x double> %wide.masked.gather88, %152 %210 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather55, <4 x double> %wide.masked.gather87, <4 x double> %209) %211 = fmul <4 x double> %wide.masked.gather56, %wide.masked.gather87 %212 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather55, <4 x double> %wide.masked.gather88, <4 x double> %211) %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %135, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %213 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 12, i32 1 %wide.masked.gather90 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %213, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %214 = fmul <4 x double> %wide.masked.gather90, %153 %215 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather57, <4 x double> %wide.masked.gather89, <4 x double> %214) %216 = fmul <4 x double> %wide.masked.gather58, %wide.masked.gather89 %217 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather57, <4 x double> %wide.masked.gather90, <4 x double> %216) %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %140, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %218 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 13, i32 1 %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %218, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %219 = fmul <4 x double> %wide.masked.gather92, %154 %220 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather59, <4 x double> %wide.masked.gather91, <4 x double> %219) %221 = fmul <4 x double> %wide.masked.gather60, %wide.masked.gather91 %222 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather59, <4 x double> %wide.masked.gather92, <4 x double> %221) %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %139, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %223 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 14, i32 1 %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %223, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %224 = fmul <4 x double> %wide.masked.gather94, %155 %225 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather61, <4 x double> %wide.masked.gather93, <4 x double> %224) %226 = fmul <4 x double> %wide.masked.gather62, %wide.masked.gather93 %227 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather61, <4 x double> %wide.masked.gather94, <4 x double> %226) %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %141, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %228 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %96, i64 15, i32 1 %wide.masked.gather96 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %228, i32 8, <4 x i1> , <4 x double> poison), !noalias !5814 %229 = fmul <4 x double> %wide.masked.gather96, %156 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather63, <4 x double> %wide.masked.gather95, <4 x double> %229) %231 = fmul <4 x double> %wide.masked.gather64, %wide.masked.gather95 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather63, <4 x double> %wide.masked.gather96, <4 x double> %231) %233 = fadd <4 x double> %wide.masked.gather65, %195 %234 = fadd <4 x double> %wide.masked.gather66, %197 %235 = fsub <4 x double> %wide.masked.gather65, %195 %236 = fsub <4 x double> %wide.masked.gather66, %197 %237 = fadd <4 x double> %175, %215 %238 = fadd <4 x double> %177, %217 %239 = fsub <4 x double> %175, %215 %240 = fsub <4 x double> %177, %217 %241 = fadd <4 x double> %165, %205 %242 = fadd <4 x double> %167, %207 %243 = fsub <4 x double> %165, %205 %244 = fsub <4 x double> %167, %207 %245 = fadd <4 x double> %185, %225 %246 = fadd <4 x double> %187, %227 %247 = fsub <4 x double> %185, %225 %248 = fsub <4 x double> %187, %227 %249 = fadd <4 x double> %160, %200 %250 = fadd <4 x double> %162, %202 %251 = fsub <4 x double> %160, %200 %252 = fsub <4 x double> %162, %202 %253 = fadd <4 x double> %180, %220 %254 = fadd <4 x double> %182, %222 %255 = fsub <4 x double> %180, %220 %256 = fsub <4 x double> %182, %222 %257 = fadd <4 x double> %170, %210 %258 = fadd <4 x double> %172, %212 %259 = fsub <4 x double> %170, %210 %260 = fsub <4 x double> %172, %212 %261 = fadd <4 x double> %190, %230 %262 = fadd <4 x double> %192, %232 %263 = fsub <4 x double> %190, %230 %264 = fsub <4 x double> %192, %232 %265 = fadd <4 x double> %233, %237 %266 = fadd <4 x double> %234, %238 %267 = fsub <4 x double> %235, %240 %268 = fadd <4 x double> %236, %239 %269 = fsub <4 x double> %233, %237 %270 = fsub <4 x double> %234, %238 %271 = fadd <4 x double> %235, %240 %272 = fsub <4 x double> %236, %239 %273 = fadd <4 x double> %241, %245 %274 = fadd <4 x double> %242, %246 %275 = fsub <4 x double> %243, %248 %276 = fadd <4 x double> %244, %247 %277 = fsub <4 x double> %241, %245 %278 = fsub <4 x double> %242, %246 %279 = fadd <4 x double> %243, %248 %280 = fsub <4 x double> %244, %247 %281 = fadd <4 x double> %249, %253 %282 = fadd <4 x double> %250, %254 %283 = fsub <4 x double> %251, %256 %284 = fadd <4 x double> %252, %255 %285 = fsub <4 x double> %249, %253 %286 = fsub <4 x double> %250, %254 %287 = fadd <4 x double> %251, %256 %288 = fsub <4 x double> %252, %255 %289 = fadd <4 x double> %257, %261 %290 = fadd <4 x double> %258, %262 %291 = fsub <4 x double> %259, %264 %292 = fadd <4 x double> %260, %263 %293 = fsub <4 x double> %257, %261 %294 = fsub <4 x double> %258, %262 %295 = fadd <4 x double> %259, %264 %296 = fsub <4 x double> %260, %263 %297 = fsub <4 x double> %275, %276 %298 = fadd <4 x double> %275, %276 %299 = fmul <4 x double> %297, %300 = fmul <4 x double> %298, %301 = fadd <4 x double> %279, %280 %302 = fsub <4 x double> %280, %279 %303 = fmul <4 x double> %301, %304 = fmul <4 x double> %302, %305 = fadd <4 x double> %265, %273 %306 = fadd <4 x double> %266, %274 %307 = fadd <4 x double> %267, %299 %308 = fadd <4 x double> %268, %300 %309 = fsub <4 x double> %269, %278 %310 = fadd <4 x double> %270, %277 %311 = fsub <4 x double> %271, %303 %312 = fsub <4 x double> %272, %304 %313 = fsub <4 x double> %265, %273 %314 = fsub <4 x double> %266, %274 %315 = fsub <4 x double> %267, %299 %316 = fsub <4 x double> %268, %300 %317 = fadd <4 x double> %269, %278 %318 = fsub <4 x double> %270, %277 %319 = fadd <4 x double> %271, %303 %320 = fadd <4 x double> %272, %304 %321 = fsub <4 x double> %291, %292 %322 = fadd <4 x double> %291, %292 %323 = fmul <4 x double> %321, %324 = fmul <4 x double> %322, %325 = fadd <4 x double> %295, %296 %326 = fsub <4 x double> %296, %295 %327 = fmul <4 x double> %325, %328 = fmul <4 x double> %326, %329 = fadd <4 x double> %281, %289 %330 = fadd <4 x double> %282, %290 %331 = fadd <4 x double> %283, %323 %332 = fadd <4 x double> %284, %324 %333 = fsub <4 x double> %285, %294 %334 = fadd <4 x double> %286, %293 %335 = fsub <4 x double> %287, %327 %336 = fsub <4 x double> %288, %328 %337 = fsub <4 x double> %281, %289 %338 = fsub <4 x double> %282, %290 %339 = fsub <4 x double> %283, %323 %340 = fsub <4 x double> %284, %324 %341 = fadd <4 x double> %285, %294 %342 = fsub <4 x double> %286, %293 %343 = fadd <4 x double> %287, %327 %344 = fadd <4 x double> %288, %328 %345 = fadd <4 x double> %305, %329 %346 = fadd <4 x double> %306, %330 %347 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index35 %interleaved.vec97 = shufflevector <4 x double> %345, <4 x double> %346, <8 x i32> store <8 x double> %interleaved.vec97, ptr %347, align 8, !noalias !5814 %348 = fsub <4 x double> %305, %329 %349 = fsub <4 x double> %306, %330 %350 = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %index35 %interleaved.vec98 = shufflevector <4 x double> %348, <4 x double> %349, <8 x i32> store <8 x double> %interleaved.vec98, ptr %350, align 8, !noalias !5814 %351 = fmul <4 x double> %332, %352 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %331, <4 x double> , <4 x double> %351) %353 = fmul <4 x double> %331, %354 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %332, <4 x double> , <4 x double> %353) %355 = fadd <4 x double> %307, %352 %356 = fadd <4 x double> %308, %354 %357 = getelementptr inbounds %"num_complex::Complex", ptr %87, i64 %index35 %interleaved.vec99 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec99, ptr %357, align 8, !noalias !5814 %358 = fsub <4 x double> %307, %352 %359 = fsub <4 x double> %308, %354 %360 = getelementptr inbounds %"num_complex::Complex", ptr %91, i64 %index35 %interleaved.vec100 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> store <8 x double> %interleaved.vec100, ptr %360, align 8, !noalias !5814 %361 = fsub <4 x double> %333, %334 %362 = fadd <4 x double> %333, %334 %363 = fmul <4 x double> %361, %364 = fmul <4 x double> %362, %365 = fadd <4 x double> %309, %363 %366 = fadd <4 x double> %310, %364 %367 = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %index35 %interleaved.vec101 = shufflevector <4 x double> %365, <4 x double> %366, <8 x i32> store <8 x double> %interleaved.vec101, ptr %367, align 8, !noalias !5814 %368 = fsub <4 x double> %309, %363 %369 = fsub <4 x double> %310, %364 %370 = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %index35 %interleaved.vec102 = shufflevector <4 x double> %368, <4 x double> %369, <8 x i32> store <8 x double> %interleaved.vec102, ptr %370, align 8, !noalias !5814 %371 = fmul <4 x double> %336, %372 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %335, <4 x double> , <4 x double> %371) %373 = fmul <4 x double> %335, %374 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %336, <4 x double> , <4 x double> %373) %375 = fadd <4 x double> %311, %372 %376 = fadd <4 x double> %312, %374 %377 = getelementptr inbounds %"num_complex::Complex", ptr %88, i64 %index35 %interleaved.vec103 = shufflevector <4 x double> %375, <4 x double> %376, <8 x i32> store <8 x double> %interleaved.vec103, ptr %377, align 8, !noalias !5814 %378 = fsub <4 x double> %311, %372 %379 = fsub <4 x double> %312, %374 %380 = getelementptr inbounds %"num_complex::Complex", ptr %92, i64 %index35 %interleaved.vec104 = shufflevector <4 x double> %378, <4 x double> %379, <8 x i32> store <8 x double> %interleaved.vec104, ptr %380, align 8, !noalias !5814 %381 = fsub <4 x double> %313, %338 %382 = fadd <4 x double> %314, %337 %383 = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %index35 %interleaved.vec105 = shufflevector <4 x double> %381, <4 x double> %382, <8 x i32> store <8 x double> %interleaved.vec105, ptr %383, align 8, !noalias !5814 %384 = fadd <4 x double> %313, %338 %385 = fsub <4 x double> %314, %337 %386 = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %index35 %interleaved.vec106 = shufflevector <4 x double> %384, <4 x double> %385, <8 x i32> store <8 x double> %interleaved.vec106, ptr %386, align 8, !noalias !5814 %387 = fmul <4 x double> %340, %388 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %339, <4 x double> , <4 x double> %387) %389 = fmul <4 x double> %339, %390 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %340, <4 x double> , <4 x double> %389) %391 = fsub <4 x double> %315, %388 %392 = fsub <4 x double> %316, %390 %393 = getelementptr inbounds %"num_complex::Complex", ptr %89, i64 %index35 %interleaved.vec107 = shufflevector <4 x double> %391, <4 x double> %392, <8 x i32> store <8 x double> %interleaved.vec107, ptr %393, align 8, !noalias !5814 %394 = fadd <4 x double> %315, %388 %395 = fadd <4 x double> %316, %390 %396 = getelementptr inbounds %"num_complex::Complex", ptr %93, i64 %index35 %interleaved.vec108 = shufflevector <4 x double> %394, <4 x double> %395, <8 x i32> store <8 x double> %interleaved.vec108, ptr %396, align 8, !noalias !5814 %397 = fadd <4 x double> %341, %342 %398 = fsub <4 x double> %342, %341 %399 = fmul <4 x double> %397, %400 = fmul <4 x double> %398, %401 = fsub <4 x double> %317, %399 %402 = fsub <4 x double> %318, %400 %403 = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %index35 %interleaved.vec109 = shufflevector <4 x double> %401, <4 x double> %402, <8 x i32> store <8 x double> %interleaved.vec109, ptr %403, align 8, !noalias !5814 %404 = fadd <4 x double> %317, %399 %405 = fadd <4 x double> %318, %400 %406 = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %index35 %interleaved.vec110 = shufflevector <4 x double> %404, <4 x double> %405, <8 x i32> store <8 x double> %interleaved.vec110, ptr %406, align 8, !noalias !5814 %407 = fmul <4 x double> %344, %408 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %343, <4 x double> , <4 x double> %407) %409 = fmul <4 x double> %343, %410 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %344, <4 x double> , <4 x double> %409) %411 = fsub <4 x double> %319, %408 %412 = fsub <4 x double> %320, %410 %413 = getelementptr inbounds %"num_complex::Complex", ptr %90, i64 %index35 %interleaved.vec111 = shufflevector <4 x double> %411, <4 x double> %412, <8 x i32> store <8 x double> %interleaved.vec111, ptr %413, align 8, !noalias !5814 %414 = fadd <4 x double> %319, %408 %415 = fadd <4 x double> %320, %410 %416 = getelementptr inbounds %"num_complex::Complex", ptr %94, i64 %index35 %interleaved.vec112 = shufflevector <4 x double> %414, <4 x double> %415, <8 x i32> store <8 x double> %interleaved.vec112, ptr %416, align 8, !noalias !5814 %index.next113 = add nuw i64 %index35, 4 %vec.ind.next = add <4 x i64> %vec.ind, %417 = icmp eq i64 %index.next113, 8 br i1 %417, label %"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d46d016bd3c6604E.exit", label %vector.body34, !llvm.loop !5818 "_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d46d016bd3c6604E.exit": ; preds = %vector.body34 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5814 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf3a174ed64975089E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit16::Dit16>>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hce9b04a2e74430f1E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf3b9397a0a5cda4aE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5819 store i64 256, ptr %n.i, align 8, !noalias !5819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5819 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5819 %_12.i = icmp eq i64 %buf.1, 256 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5819 store ptr null, ptr %_16.i, align 8, !noalias !5819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5819 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5819 %_20.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5819 store ptr null, ptr %_24.i, align 8, !noalias !5819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5819 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5819 %_28.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5819 store ptr null, ptr %_32.i, align 8, !noalias !5819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5819 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5819 store i64 %w.1, ptr %_34.i, align 8, !noalias !5819 %_36.i = icmp eq i64 %w.1, 256 br i1 %_36.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2cc712f772be0bf9E.exit", label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5819 store ptr null, ptr %_40.i, align 8, !noalias !5819 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2cc712f772be0bf9E.exit": ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5819 %0 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 128 %1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 64 %2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 192 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 64 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 192 br label %vector.body vector.body: ; preds = %vector.body, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2cc712f772be0bf9E.exit" %index = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2cc712f772be0bf9E.exit" ], [ %index.next, %vector.body ] %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index %7 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index %8 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index %9 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index %wide.vec = load <8 x double>, ptr %6, align 8, !noalias !5822 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %7, align 8, !noalias !5822 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %wide.vec5 = load <8 x double>, ptr %8, align 8, !noalias !5822 %strided.vec6 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %strided.vec7 = shufflevector <8 x double> %wide.vec5, <8 x double> poison, <4 x i32> %wide.vec8 = load <8 x double>, ptr %9, align 8, !noalias !5822 %strided.vec9 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %strided.vec10 = shufflevector <8 x double> %wide.vec8, <8 x double> poison, <4 x i32> %10 = fadd <4 x double> %strided.vec, %strided.vec6 %11 = fadd <4 x double> %strided.vec1, %strided.vec7 %12 = fsub <4 x double> %strided.vec, %strided.vec6 %13 = fsub <4 x double> %strided.vec1, %strided.vec7 %14 = fadd <4 x double> %strided.vec3, %strided.vec9 %15 = fadd <4 x double> %strided.vec4, %strided.vec10 %16 = fsub <4 x double> %strided.vec3, %strided.vec9 %17 = fsub <4 x double> %strided.vec4, %strided.vec10 %18 = fadd <4 x double> %10, %14 %19 = fadd <4 x double> %11, %15 %20 = fsub <4 x double> %12, %17 %21 = fadd <4 x double> %13, %16 %22 = fsub <4 x double> %10, %14 %23 = fsub <4 x double> %11, %15 %24 = fadd <4 x double> %12, %17 %25 = fsub <4 x double> %13, %16 %26 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %index %interleaved.vec = shufflevector <4 x double> %18, <4 x double> %19, <8 x i32> store <8 x double> %interleaved.vec, ptr %26, align 8, !noalias !5822 %27 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %index %interleaved.vec11 = shufflevector <4 x double> %20, <4 x double> %21, <8 x i32> store <8 x double> %interleaved.vec11, ptr %27, align 8, !noalias !5822 %28 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %index %interleaved.vec12 = shufflevector <4 x double> %22, <4 x double> %23, <8 x i32> store <8 x double> %interleaved.vec12, ptr %28, align 8, !noalias !5822 %29 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %index %interleaved.vec13 = shufflevector <4 x double> %24, <4 x double> %25, <8 x i32> store <8 x double> %interleaved.vec13, ptr %29, align 8, !noalias !5822 %index.next = add nuw i64 %index, 4 %30 = icmp eq i64 %index.next, 64 br i1 %30, label %bb24.i.i.i.i, label %vector.body, !llvm.loop !5827 vector.body57: ; preds = %bb24.i.i.i.i, %vector.body57 %index58 = phi i64 [ %index.next100, %vector.body57 ], [ 0, %bb24.i.i.i.i ] %vec.ind = phi <4 x i64> [ %vec.ind.next, %vector.body57 ], [ , %bb24.i.i.i.i ] %31 = shl nuw nsw <4 x i64> %vec.ind, %32 = extractelement <4 x i64> %31, i64 0 %33 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %32 %34 = shl nuw nsw <4 x i64> %vec.ind, %35 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, <4 x i64> %34 %36 = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %32 %37 = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %32 %38 = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %32 %39 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 1 %wide.masked.gather = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %39, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %40 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 1, i32 1 %wide.masked.gather59 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %40, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %41 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 2 %wide.masked.gather60 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %41, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %42 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 2, i32 1 %wide.masked.gather61 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %42, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %43 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 3 %wide.masked.gather62 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %43, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %44 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %31, i64 3, i32 1 %wide.masked.gather63 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %44, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %45 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 8 %46 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 4 %47 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 12 %48 = fneg <4 x double> %wide.masked.gather59 %49 = fneg <4 x double> %wide.masked.gather61 %50 = fneg <4 x double> %wide.masked.gather63 %wide.masked.gather64 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %35, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %51 = getelementptr inbounds i8, <4 x ptr> %35, i64 8 %wide.masked.gather65 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %51, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %wide.masked.gather66 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %46, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %52 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 4, i32 1 %wide.masked.gather67 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %52, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %53 = fmul <4 x double> %wide.masked.gather67, %48 %54 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather66, <4 x double> %53) %55 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather66 %56 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather67, <4 x double> %55) %wide.masked.gather68 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %45, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %57 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 8, i32 1 %wide.masked.gather69 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %57, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %58 = fmul <4 x double> %wide.masked.gather69, %49 %59 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather68, <4 x double> %58) %60 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather68 %61 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather69, <4 x double> %60) %wide.masked.gather70 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %47, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %62 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 12, i32 1 %wide.masked.gather71 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %63 = fmul <4 x double> %wide.masked.gather71, %50 %64 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather70, <4 x double> %63) %65 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather70 %66 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather71, <4 x double> %65) %67 = fadd <4 x double> %wide.masked.gather64, %59 %68 = fadd <4 x double> %wide.masked.gather65, %61 %69 = fsub <4 x double> %wide.masked.gather64, %59 %70 = fsub <4 x double> %wide.masked.gather65, %61 %71 = fadd <4 x double> %54, %64 %72 = fadd <4 x double> %56, %66 %73 = fsub <4 x double> %54, %64 %74 = fsub <4 x double> %56, %66 %75 = fadd <4 x double> %67, %71 %76 = fadd <4 x double> %68, %72 %77 = fsub <4 x double> %69, %74 %78 = fadd <4 x double> %70, %73 %79 = fsub <4 x double> %67, %71 %80 = fsub <4 x double> %68, %72 %81 = fadd <4 x double> %69, %74 %82 = fsub <4 x double> %70, %73 %83 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 1 %84 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 5 %85 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 9 %86 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 13 %wide.masked.gather72 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %83, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %87 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 1, i32 1 %wide.masked.gather73 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %87, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %wide.masked.gather74 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %84, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %88 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 5, i32 1 %wide.masked.gather75 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %88, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %89 = fmul <4 x double> %wide.masked.gather75, %48 %90 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather74, <4 x double> %89) %91 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather74 %92 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather75, <4 x double> %91) %wide.masked.gather76 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %85, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %93 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 9, i32 1 %wide.masked.gather77 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %93, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %94 = fmul <4 x double> %wide.masked.gather77, %49 %95 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather76, <4 x double> %94) %96 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather76 %97 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather77, <4 x double> %96) %wide.masked.gather78 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %86, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %98 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 13, i32 1 %wide.masked.gather79 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %98, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %99 = fmul <4 x double> %wide.masked.gather79, %50 %100 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather78, <4 x double> %99) %101 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather78 %102 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather79, <4 x double> %101) %103 = fadd <4 x double> %wide.masked.gather72, %95 %104 = fadd <4 x double> %wide.masked.gather73, %97 %105 = fsub <4 x double> %wide.masked.gather72, %95 %106 = fsub <4 x double> %wide.masked.gather73, %97 %107 = fadd <4 x double> %90, %100 %108 = fadd <4 x double> %92, %102 %109 = fsub <4 x double> %90, %100 %110 = fsub <4 x double> %92, %102 %111 = fadd <4 x double> %103, %107 %112 = fadd <4 x double> %104, %108 %113 = fsub <4 x double> %105, %110 %114 = fadd <4 x double> %106, %109 %115 = fsub <4 x double> %103, %107 %116 = fsub <4 x double> %104, %108 %117 = fadd <4 x double> %105, %110 %118 = fsub <4 x double> %106, %109 %119 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 2 %120 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 6 %121 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 10 %122 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 14 %wide.masked.gather80 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %119, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %123 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 2, i32 1 %wide.masked.gather81 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %123, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %wide.masked.gather82 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %120, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %124 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 6, i32 1 %wide.masked.gather83 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %124, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %125 = fmul <4 x double> %wide.masked.gather83, %48 %126 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather82, <4 x double> %125) %127 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather82 %128 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather83, <4 x double> %127) %wide.masked.gather84 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %121, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %129 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 10, i32 1 %wide.masked.gather85 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %129, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %130 = fmul <4 x double> %wide.masked.gather85, %49 %131 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather84, <4 x double> %130) %132 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather84 %133 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather85, <4 x double> %132) %wide.masked.gather86 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %122, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %134 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 14, i32 1 %wide.masked.gather87 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %134, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %135 = fmul <4 x double> %wide.masked.gather87, %50 %136 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather86, <4 x double> %135) %137 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather86 %138 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather87, <4 x double> %137) %139 = fadd <4 x double> %wide.masked.gather80, %131 %140 = fadd <4 x double> %wide.masked.gather81, %133 %141 = fsub <4 x double> %wide.masked.gather80, %131 %142 = fsub <4 x double> %wide.masked.gather81, %133 %143 = fadd <4 x double> %126, %136 %144 = fadd <4 x double> %128, %138 %145 = fsub <4 x double> %126, %136 %146 = fsub <4 x double> %128, %138 %147 = fadd <4 x double> %139, %143 %148 = fadd <4 x double> %140, %144 %149 = fsub <4 x double> %141, %146 %150 = fadd <4 x double> %142, %145 %151 = fsub <4 x double> %139, %143 %152 = fsub <4 x double> %140, %144 %153 = fadd <4 x double> %141, %146 %154 = fsub <4 x double> %142, %145 %155 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 3 %156 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 7 %157 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 11 %158 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 15 %wide.masked.gather88 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %155, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %159 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 3, i32 1 %wide.masked.gather89 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %159, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %wide.masked.gather90 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %156, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %160 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 7, i32 1 %wide.masked.gather91 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %160, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %161 = fmul <4 x double> %wide.masked.gather91, %48 %162 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather90, <4 x double> %161) %163 = fmul <4 x double> %wide.masked.gather59, %wide.masked.gather90 %164 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather, <4 x double> %wide.masked.gather91, <4 x double> %163) %wide.masked.gather92 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %157, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %165 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 11, i32 1 %wide.masked.gather93 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %165, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %166 = fmul <4 x double> %wide.masked.gather93, %49 %167 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather92, <4 x double> %166) %168 = fmul <4 x double> %wide.masked.gather61, %wide.masked.gather92 %169 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather60, <4 x double> %wide.masked.gather93, <4 x double> %168) %wide.masked.gather94 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %158, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %170 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %35, i64 15, i32 1 %wide.masked.gather95 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %170, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %171 = fmul <4 x double> %wide.masked.gather95, %50 %172 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather94, <4 x double> %171) %173 = fmul <4 x double> %wide.masked.gather63, %wide.masked.gather94 %174 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather62, <4 x double> %wide.masked.gather95, <4 x double> %173) %175 = fadd <4 x double> %wide.masked.gather88, %167 %176 = fadd <4 x double> %wide.masked.gather89, %169 %177 = fsub <4 x double> %wide.masked.gather88, %167 %178 = fsub <4 x double> %wide.masked.gather89, %169 %179 = fadd <4 x double> %162, %172 %180 = fadd <4 x double> %164, %174 %181 = fsub <4 x double> %162, %172 %182 = fsub <4 x double> %164, %174 %183 = fadd <4 x double> %175, %179 %184 = fadd <4 x double> %176, %180 %185 = shufflevector <4 x double> %75, <4 x double> %76, <8 x i32> %186 = shufflevector <4 x double> %111, <4 x double> %112, <8 x i32> %187 = shufflevector <4 x double> %147, <4 x double> %148, <8 x i32> %188 = shufflevector <4 x double> %183, <4 x double> %184, <8 x i32> %189 = shufflevector <8 x double> %185, <8 x double> %186, <16 x i32> %190 = shufflevector <8 x double> %187, <8 x double> %188, <16 x i32> %interleaved.vec96 = shufflevector <16 x double> %189, <16 x double> %190, <32 x i32> store <32 x double> %interleaved.vec96, ptr %33, align 8, !noalias !5819 %191 = fsub <4 x double> %177, %182 %192 = fadd <4 x double> %178, %181 %193 = shufflevector <4 x double> %77, <4 x double> %78, <8 x i32> %194 = shufflevector <4 x double> %113, <4 x double> %114, <8 x i32> %195 = shufflevector <4 x double> %149, <4 x double> %150, <8 x i32> %196 = shufflevector <4 x double> %191, <4 x double> %192, <8 x i32> %197 = shufflevector <8 x double> %193, <8 x double> %194, <16 x i32> %198 = shufflevector <8 x double> %195, <8 x double> %196, <16 x i32> %interleaved.vec97 = shufflevector <16 x double> %197, <16 x double> %198, <32 x i32> store <32 x double> %interleaved.vec97, ptr %38, align 8, !noalias !5819 %199 = fsub <4 x double> %175, %179 %200 = fsub <4 x double> %176, %180 %201 = shufflevector <4 x double> %79, <4 x double> %80, <8 x i32> %202 = shufflevector <4 x double> %115, <4 x double> %116, <8 x i32> %203 = shufflevector <4 x double> %151, <4 x double> %152, <8 x i32> %204 = shufflevector <4 x double> %199, <4 x double> %200, <8 x i32> %205 = shufflevector <8 x double> %201, <8 x double> %202, <16 x i32> %206 = shufflevector <8 x double> %203, <8 x double> %204, <16 x i32> %interleaved.vec98 = shufflevector <16 x double> %205, <16 x double> %206, <32 x i32> store <32 x double> %interleaved.vec98, ptr %37, align 8, !noalias !5819 %207 = fadd <4 x double> %177, %182 %208 = fsub <4 x double> %178, %181 %209 = shufflevector <4 x double> %81, <4 x double> %82, <8 x i32> %210 = shufflevector <4 x double> %117, <4 x double> %118, <8 x i32> %211 = shufflevector <4 x double> %153, <4 x double> %154, <8 x i32> %212 = shufflevector <4 x double> %207, <4 x double> %208, <8 x i32> %213 = shufflevector <8 x double> %209, <8 x double> %210, <16 x i32> %214 = shufflevector <8 x double> %211, <8 x double> %212, <16 x i32> %interleaved.vec99 = shufflevector <16 x double> %213, <16 x double> %214, <32 x i32> store <32 x double> %interleaved.vec99, ptr %36, align 8, !noalias !5819 %index.next100 = add nuw i64 %index58, 4 %vec.ind.next = add <4 x i64> %vec.ind, %215 = icmp eq i64 %index.next100, 16 br i1 %215, label %vector.body105, label %vector.body57, !llvm.loop !5828 bb24.i.i.i.i: ; preds = %vector.body, %bb24.i.i.i.i %iter.i.i.i.i.sroa.60.0106 = phi i64 [ %361, %bb24.i.i.i.i ], [ 0, %vector.body ] %start1.i.i.i.i.i.i.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0106, 4 %216 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3, i32 1 %w3.1.i.i.i.i = load double, ptr %216, align 8, !noalias !5819, !noundef !3 %broadcast.splatinsert46 = insertelement <4 x double> poison, double %w3.1.i.i.i.i, i64 0 %broadcast.splat47 = shufflevector <4 x double> %broadcast.splatinsert46, <4 x double> poison, <4 x i32> zeroinitializer %217 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 3 %w3.0.i.i.i.i = load double, ptr %217, align 8, !noalias !5819, !noundef !3 %broadcast.splatinsert44 = insertelement <4 x double> poison, double %w3.0.i.i.i.i, i64 0 %broadcast.splat45 = shufflevector <4 x double> %broadcast.splatinsert44, <4 x double> poison, <4 x i32> zeroinitializer %_6.i.i.i.i.i = fneg double %w3.1.i.i.i.i %broadcast.splatinsert42 = insertelement <4 x double> poison, double %_6.i.i.i.i.i, i64 0 %broadcast.splat43 = shufflevector <4 x double> %broadcast.splatinsert42, <4 x double> poison, <4 x i32> zeroinitializer %218 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2, i32 1 %w2.1.i.i.i.i = load double, ptr %218, align 8, !noalias !5819, !noundef !3 %broadcast.splatinsert37 = insertelement <4 x double> poison, double %w2.1.i.i.i.i, i64 0 %broadcast.splat38 = shufflevector <4 x double> %broadcast.splatinsert37, <4 x double> poison, <4 x i32> zeroinitializer %219 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 2 %w2.0.i.i.i.i = load double, ptr %219, align 8, !noalias !5819, !noundef !3 %broadcast.splatinsert35 = insertelement <4 x double> poison, double %w2.0.i.i.i.i, i64 0 %broadcast.splat36 = shufflevector <4 x double> %broadcast.splatinsert35, <4 x double> poison, <4 x i32> zeroinitializer %_6.i36.i.i.i.i = fneg double %w2.1.i.i.i.i %broadcast.splatinsert33 = insertelement <4 x double> poison, double %_6.i36.i.i.i.i, i64 0 %broadcast.splat34 = shufflevector <4 x double> %broadcast.splatinsert33, <4 x double> poison, <4 x i32> zeroinitializer %220 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1, i32 1 %w1.1.i.i.i.i = load double, ptr %220, align 8, !noalias !5819, !noundef !3 %broadcast.splatinsert28 = insertelement <4 x double> poison, double %w1.1.i.i.i.i, i64 0 %broadcast.splat29 = shufflevector <4 x double> %broadcast.splatinsert28, <4 x double> poison, <4 x i32> zeroinitializer %221 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i, i64 1 %w1.0.i.i.i.i = load double, ptr %221, align 8, !noalias !5819, !noundef !3 %broadcast.splatinsert26 = insertelement <4 x double> poison, double %w1.0.i.i.i.i, i64 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> poison, <4 x i32> zeroinitializer %_6.i39.i.i.i.i = fneg double %w1.1.i.i.i.i %broadcast.splatinsert = insertelement <4 x double> poison, double %_6.i39.i.i.i.i, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.i.sroa.60.0106, 6 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i %222 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 48 %223 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 16 %224 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i %wide.vec20 = load <8 x double>, ptr %data.i.i.i.i.i.i, align 8, !noalias !5819 %strided.vec21 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %strided.vec22 = shufflevector <8 x double> %wide.vec20, <8 x double> poison, <4 x i32> %wide.vec23 = load <8 x double>, ptr %223, align 8, !noalias !5819 %strided.vec24 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %strided.vec25 = shufflevector <8 x double> %wide.vec23, <8 x double> poison, <4 x i32> %225 = fmul <4 x double> %strided.vec25, %broadcast.splat %226 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24, <4 x double> %225) %227 = fmul <4 x double> %broadcast.splat29, %strided.vec24 %228 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25, <4 x double> %227) %wide.vec30 = load <8 x double>, ptr %224, align 8, !noalias !5819 %strided.vec31 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %strided.vec32 = shufflevector <8 x double> %wide.vec30, <8 x double> poison, <4 x i32> %229 = fmul <4 x double> %strided.vec32, %broadcast.splat34 %230 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31, <4 x double> %229) %231 = fmul <4 x double> %broadcast.splat38, %strided.vec31 %232 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32, <4 x double> %231) %wide.vec39 = load <8 x double>, ptr %222, align 8, !noalias !5819 %strided.vec40 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %strided.vec41 = shufflevector <8 x double> %wide.vec39, <8 x double> poison, <4 x i32> %233 = fmul <4 x double> %strided.vec41, %broadcast.splat43 %234 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40, <4 x double> %233) %235 = fmul <4 x double> %broadcast.splat47, %strided.vec40 %236 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41, <4 x double> %235) %237 = fadd <4 x double> %strided.vec21, %230 %238 = fadd <4 x double> %strided.vec22, %232 %239 = fsub <4 x double> %strided.vec21, %230 %240 = fsub <4 x double> %strided.vec22, %232 %241 = fadd <4 x double> %226, %234 %242 = fadd <4 x double> %228, %236 %243 = fsub <4 x double> %226, %234 %244 = fsub <4 x double> %228, %236 %245 = fadd <4 x double> %237, %241 %246 = fadd <4 x double> %238, %242 %interleaved.vec48 = shufflevector <4 x double> %245, <4 x double> %246, <8 x i32> store <8 x double> %interleaved.vec48, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5819 %247 = fsub <4 x double> %239, %244 %248 = fadd <4 x double> %240, %243 %interleaved.vec49 = shufflevector <4 x double> %247, <4 x double> %248, <8 x i32> store <8 x double> %interleaved.vec49, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5819 %249 = fsub <4 x double> %237, %241 %250 = fsub <4 x double> %238, %242 %interleaved.vec50 = shufflevector <4 x double> %249, <4 x double> %250, <8 x i32> store <8 x double> %interleaved.vec50, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5819 %251 = fadd <4 x double> %239, %244 %252 = fsub <4 x double> %240, %243 %interleaved.vec51 = shufflevector <4 x double> %251, <4 x double> %252, <8 x i32> store <8 x double> %interleaved.vec51, ptr %data.i.i.i.i.i.i.i.i, align 8, !noalias !5819 %253 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4 %254 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 20 %255 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 36 %256 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 52 %wide.vec20.1 = load <8 x double>, ptr %253, align 8, !noalias !5819 %strided.vec21.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %strided.vec22.1 = shufflevector <8 x double> %wide.vec20.1, <8 x double> poison, <4 x i32> %wide.vec23.1 = load <8 x double>, ptr %254, align 8, !noalias !5819 %strided.vec24.1 = shufflevector <8 x double> %wide.vec23.1, <8 x double> poison, <4 x i32> %strided.vec25.1 = shufflevector <8 x double> %wide.vec23.1, <8 x double> poison, <4 x i32> %257 = fmul <4 x double> %strided.vec25.1, %broadcast.splat %258 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24.1, <4 x double> %257) %259 = fmul <4 x double> %broadcast.splat29, %strided.vec24.1 %260 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25.1, <4 x double> %259) %wide.vec30.1 = load <8 x double>, ptr %255, align 8, !noalias !5819 %strided.vec31.1 = shufflevector <8 x double> %wide.vec30.1, <8 x double> poison, <4 x i32> %strided.vec32.1 = shufflevector <8 x double> %wide.vec30.1, <8 x double> poison, <4 x i32> %261 = fmul <4 x double> %strided.vec32.1, %broadcast.splat34 %262 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31.1, <4 x double> %261) %263 = fmul <4 x double> %broadcast.splat38, %strided.vec31.1 %264 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32.1, <4 x double> %263) %wide.vec39.1 = load <8 x double>, ptr %256, align 8, !noalias !5819 %strided.vec40.1 = shufflevector <8 x double> %wide.vec39.1, <8 x double> poison, <4 x i32> %strided.vec41.1 = shufflevector <8 x double> %wide.vec39.1, <8 x double> poison, <4 x i32> %265 = fmul <4 x double> %strided.vec41.1, %broadcast.splat43 %266 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40.1, <4 x double> %265) %267 = fmul <4 x double> %broadcast.splat47, %strided.vec40.1 %268 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41.1, <4 x double> %267) %269 = fadd <4 x double> %strided.vec21.1, %262 %270 = fadd <4 x double> %strided.vec22.1, %264 %271 = fsub <4 x double> %strided.vec21.1, %262 %272 = fsub <4 x double> %strided.vec22.1, %264 %273 = fadd <4 x double> %258, %266 %274 = fadd <4 x double> %260, %268 %275 = fsub <4 x double> %258, %266 %276 = fsub <4 x double> %260, %268 %277 = fadd <4 x double> %269, %273 %278 = fadd <4 x double> %270, %274 %279 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec48.1 = shufflevector <4 x double> %277, <4 x double> %278, <8 x i32> store <8 x double> %interleaved.vec48.1, ptr %279, align 8, !noalias !5819 %280 = fsub <4 x double> %271, %276 %281 = fadd <4 x double> %272, %275 %282 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec49.1 = shufflevector <4 x double> %280, <4 x double> %281, <8 x i32> store <8 x double> %interleaved.vec49.1, ptr %282, align 8, !noalias !5819 %283 = fsub <4 x double> %269, %273 %284 = fsub <4 x double> %270, %274 %285 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec50.1 = shufflevector <4 x double> %283, <4 x double> %284, <8 x i32> store <8 x double> %interleaved.vec50.1, ptr %285, align 8, !noalias !5819 %286 = fadd <4 x double> %271, %276 %287 = fsub <4 x double> %272, %275 %288 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 4 %interleaved.vec51.1 = shufflevector <4 x double> %286, <4 x double> %287, <8 x i32> store <8 x double> %interleaved.vec51.1, ptr %288, align 8, !noalias !5819 %289 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 8 %290 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 24 %291 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 40 %292 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 56 %wide.vec20.2 = load <8 x double>, ptr %289, align 8, !noalias !5819 %strided.vec21.2 = shufflevector <8 x double> %wide.vec20.2, <8 x double> poison, <4 x i32> %strided.vec22.2 = shufflevector <8 x double> %wide.vec20.2, <8 x double> poison, <4 x i32> %wide.vec23.2 = load <8 x double>, ptr %290, align 8, !noalias !5819 %strided.vec24.2 = shufflevector <8 x double> %wide.vec23.2, <8 x double> poison, <4 x i32> %strided.vec25.2 = shufflevector <8 x double> %wide.vec23.2, <8 x double> poison, <4 x i32> %293 = fmul <4 x double> %strided.vec25.2, %broadcast.splat %294 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24.2, <4 x double> %293) %295 = fmul <4 x double> %broadcast.splat29, %strided.vec24.2 %296 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25.2, <4 x double> %295) %wide.vec30.2 = load <8 x double>, ptr %291, align 8, !noalias !5819 %strided.vec31.2 = shufflevector <8 x double> %wide.vec30.2, <8 x double> poison, <4 x i32> %strided.vec32.2 = shufflevector <8 x double> %wide.vec30.2, <8 x double> poison, <4 x i32> %297 = fmul <4 x double> %strided.vec32.2, %broadcast.splat34 %298 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31.2, <4 x double> %297) %299 = fmul <4 x double> %broadcast.splat38, %strided.vec31.2 %300 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32.2, <4 x double> %299) %wide.vec39.2 = load <8 x double>, ptr %292, align 8, !noalias !5819 %strided.vec40.2 = shufflevector <8 x double> %wide.vec39.2, <8 x double> poison, <4 x i32> %strided.vec41.2 = shufflevector <8 x double> %wide.vec39.2, <8 x double> poison, <4 x i32> %301 = fmul <4 x double> %strided.vec41.2, %broadcast.splat43 %302 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40.2, <4 x double> %301) %303 = fmul <4 x double> %broadcast.splat47, %strided.vec40.2 %304 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41.2, <4 x double> %303) %305 = fadd <4 x double> %strided.vec21.2, %298 %306 = fadd <4 x double> %strided.vec22.2, %300 %307 = fsub <4 x double> %strided.vec21.2, %298 %308 = fsub <4 x double> %strided.vec22.2, %300 %309 = fadd <4 x double> %294, %302 %310 = fadd <4 x double> %296, %304 %311 = fsub <4 x double> %294, %302 %312 = fsub <4 x double> %296, %304 %313 = fadd <4 x double> %305, %309 %314 = fadd <4 x double> %306, %310 %315 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec48.2 = shufflevector <4 x double> %313, <4 x double> %314, <8 x i32> store <8 x double> %interleaved.vec48.2, ptr %315, align 8, !noalias !5819 %316 = fsub <4 x double> %307, %312 %317 = fadd <4 x double> %308, %311 %318 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec49.2 = shufflevector <4 x double> %316, <4 x double> %317, <8 x i32> store <8 x double> %interleaved.vec49.2, ptr %318, align 8, !noalias !5819 %319 = fsub <4 x double> %305, %309 %320 = fsub <4 x double> %306, %310 %321 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec50.2 = shufflevector <4 x double> %319, <4 x double> %320, <8 x i32> store <8 x double> %interleaved.vec50.2, ptr %321, align 8, !noalias !5819 %322 = fadd <4 x double> %307, %312 %323 = fsub <4 x double> %308, %311 %324 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 8 %interleaved.vec51.2 = shufflevector <4 x double> %322, <4 x double> %323, <8 x i32> store <8 x double> %interleaved.vec51.2, ptr %324, align 8, !noalias !5819 %325 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12 %326 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 28 %327 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 44 %328 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 60 %wide.vec20.3 = load <8 x double>, ptr %325, align 8, !noalias !5819 %strided.vec21.3 = shufflevector <8 x double> %wide.vec20.3, <8 x double> poison, <4 x i32> %strided.vec22.3 = shufflevector <8 x double> %wide.vec20.3, <8 x double> poison, <4 x i32> %wide.vec23.3 = load <8 x double>, ptr %326, align 8, !noalias !5819 %strided.vec24.3 = shufflevector <8 x double> %wide.vec23.3, <8 x double> poison, <4 x i32> %strided.vec25.3 = shufflevector <8 x double> %wide.vec23.3, <8 x double> poison, <4 x i32> %329 = fmul <4 x double> %strided.vec25.3, %broadcast.splat %330 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec24.3, <4 x double> %329) %331 = fmul <4 x double> %broadcast.splat29, %strided.vec24.3 %332 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat27, <4 x double> %strided.vec25.3, <4 x double> %331) %wide.vec30.3 = load <8 x double>, ptr %327, align 8, !noalias !5819 %strided.vec31.3 = shufflevector <8 x double> %wide.vec30.3, <8 x double> poison, <4 x i32> %strided.vec32.3 = shufflevector <8 x double> %wide.vec30.3, <8 x double> poison, <4 x i32> %333 = fmul <4 x double> %strided.vec32.3, %broadcast.splat34 %334 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec31.3, <4 x double> %333) %335 = fmul <4 x double> %broadcast.splat38, %strided.vec31.3 %336 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat36, <4 x double> %strided.vec32.3, <4 x double> %335) %wide.vec39.3 = load <8 x double>, ptr %328, align 8, !noalias !5819 %strided.vec40.3 = shufflevector <8 x double> %wide.vec39.3, <8 x double> poison, <4 x i32> %strided.vec41.3 = shufflevector <8 x double> %wide.vec39.3, <8 x double> poison, <4 x i32> %337 = fmul <4 x double> %strided.vec41.3, %broadcast.splat43 %338 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec40.3, <4 x double> %337) %339 = fmul <4 x double> %broadcast.splat47, %strided.vec40.3 %340 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %broadcast.splat45, <4 x double> %strided.vec41.3, <4 x double> %339) %341 = fadd <4 x double> %strided.vec21.3, %334 %342 = fadd <4 x double> %strided.vec22.3, %336 %343 = fsub <4 x double> %strided.vec21.3, %334 %344 = fsub <4 x double> %strided.vec22.3, %336 %345 = fadd <4 x double> %330, %338 %346 = fadd <4 x double> %332, %340 %347 = fsub <4 x double> %330, %338 %348 = fsub <4 x double> %332, %340 %349 = fadd <4 x double> %341, %345 %350 = fadd <4 x double> %342, %346 %351 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec48.3 = shufflevector <4 x double> %349, <4 x double> %350, <8 x i32> store <8 x double> %interleaved.vec48.3, ptr %351, align 8, !noalias !5819 %352 = fsub <4 x double> %343, %348 %353 = fadd <4 x double> %344, %347 %354 = getelementptr inbounds %"num_complex::Complex", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec49.3 = shufflevector <4 x double> %352, <4 x double> %353, <8 x i32> store <8 x double> %interleaved.vec49.3, ptr %354, align 8, !noalias !5819 %355 = fsub <4 x double> %341, %345 %356 = fsub <4 x double> %342, %346 %357 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec50.3 = shufflevector <4 x double> %355, <4 x double> %356, <8 x i32> store <8 x double> %interleaved.vec50.3, ptr %357, align 8, !noalias !5819 %358 = fadd <4 x double> %343, %348 %359 = fsub <4 x double> %344, %347 %360 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i.i.i, i64 12 %interleaved.vec51.3 = shufflevector <4 x double> %358, <4 x double> %359, <8 x i32> store <8 x double> %interleaved.vec51.3, ptr %360, align 8, !noalias !5819 %361 = add nuw nsw i64 %iter.i.i.i.i.sroa.60.0106, 1 %exitcond113.not = icmp eq i64 %361, 4 br i1 %exitcond113.not, label %vector.body57, label %bb24.i.i.i.i vector.body105: ; preds = %vector.body57, %vector.body105 %index106 = phi i64 [ %index.next127, %vector.body105 ], [ 0, %vector.body57 ] %vec.ind107 = phi <4 x i64> [ %vec.ind.next108, %vector.body105 ], [ , %vector.body57 ] %362 = shl <4 x i64> %vec.ind107, %363 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, <4 x i64> %362 %364 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 1 %wide.masked.gather109 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %364, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %365 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 1, i32 1 %wide.masked.gather110 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %365, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %366 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 2 %wide.masked.gather111 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %366, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %367 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 2, i32 1 %wide.masked.gather112 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %367, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %368 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 3 %wide.masked.gather113 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %368, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %369 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, <4 x i64> %vec.ind107, i64 3, i32 1 %wide.masked.gather114 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %369, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %370 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 2 %371 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 1 %372 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 3 %373 = fneg <4 x double> %wide.masked.gather110 %374 = fneg <4 x double> %wide.masked.gather112 %375 = fneg <4 x double> %wide.masked.gather114 %wide.masked.gather115 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %363, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %376 = getelementptr inbounds i8, <4 x ptr> %363, i64 8 %wide.masked.gather116 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %376, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %wide.masked.gather117 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %371, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %377 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 1, i32 1 %wide.masked.gather118 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %377, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %378 = fmul <4 x double> %wide.masked.gather118, %373 %379 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather109, <4 x double> %wide.masked.gather117, <4 x double> %378) %380 = fmul <4 x double> %wide.masked.gather110, %wide.masked.gather117 %381 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather109, <4 x double> %wide.masked.gather118, <4 x double> %380) %wide.masked.gather119 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %370, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %382 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 2, i32 1 %wide.masked.gather120 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %382, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %383 = fmul <4 x double> %wide.masked.gather120, %374 %384 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather111, <4 x double> %wide.masked.gather119, <4 x double> %383) %385 = fmul <4 x double> %wide.masked.gather112, %wide.masked.gather119 %386 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather111, <4 x double> %wide.masked.gather120, <4 x double> %385) %wide.masked.gather121 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %372, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %387 = getelementptr inbounds %"num_complex::Complex", <4 x ptr> %363, i64 3, i32 1 %wide.masked.gather122 = tail call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %387, i32 8, <4 x i1> , <4 x double> poison), !noalias !5819 %388 = fmul <4 x double> %wide.masked.gather122, %375 %389 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather113, <4 x double> %wide.masked.gather121, <4 x double> %388) %390 = fmul <4 x double> %wide.masked.gather114, %wide.masked.gather121 %391 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %wide.masked.gather113, <4 x double> %wide.masked.gather122, <4 x double> %390) %392 = fadd <4 x double> %wide.masked.gather115, %384 %393 = fadd <4 x double> %wide.masked.gather116, %386 %394 = fsub <4 x double> %wide.masked.gather115, %384 %395 = fsub <4 x double> %wide.masked.gather116, %386 %396 = fadd <4 x double> %379, %389 %397 = fadd <4 x double> %381, %391 %398 = fsub <4 x double> %379, %389 %399 = fsub <4 x double> %381, %391 %400 = fadd <4 x double> %392, %396 %401 = fadd <4 x double> %393, %397 %402 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %index106 %interleaved.vec123 = shufflevector <4 x double> %400, <4 x double> %401, <8 x i32> store <8 x double> %interleaved.vec123, ptr %402, align 8, !noalias !5819 %403 = fsub <4 x double> %394, %399 %404 = fadd <4 x double> %395, %398 %405 = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %index106 %interleaved.vec124 = shufflevector <4 x double> %403, <4 x double> %404, <8 x i32> store <8 x double> %interleaved.vec124, ptr %405, align 8, !noalias !5819 %406 = fsub <4 x double> %392, %396 %407 = fsub <4 x double> %393, %397 %408 = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %index106 %interleaved.vec125 = shufflevector <4 x double> %406, <4 x double> %407, <8 x i32> store <8 x double> %interleaved.vec125, ptr %408, align 8, !noalias !5819 %409 = fadd <4 x double> %394, %399 %410 = fsub <4 x double> %395, %398 %411 = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %index106 %interleaved.vec126 = shufflevector <4 x double> %409, <4 x double> %410, <8 x i32> store <8 x double> %interleaved.vec126, ptr %411, align 8, !noalias !5819 %index.next127 = add nuw i64 %index106, 4 %vec.ind.next108 = add <4 x i64> %vec.ind107, %412 = icmp eq i64 %index.next127, 60 br i1 %412, label %bb24.i.i.i, label %vector.body105, !llvm.loop !5829 bb24.i.i.i: ; preds = %vector.body105 %data.i.i.i.i.i.i.i.i.i.i.i.i955 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60 %data.i.i.i.i.i.i965 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240 %data.i.i.i.i.i.i.i.i969 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252 %data.i.i.i.i.i.i.i.i.i.i973 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188 %data.i5.i.i.i.i.i.i.i.i.i.i.i977 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124 %413 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1 %w1.0.i.i.i = load double, ptr %413, align 8, !noalias !5819, !noundef !3 %414 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %414, align 8, !noalias !5819, !noundef !3 %415 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2 %w2.0.i.i.i = load double, ptr %415, align 8, !noalias !5819, !noundef !3 %416 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %416, align 8, !noalias !5819, !noundef !3 %417 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3 %w3.0.i.i.i = load double, ptr %417, align 8, !noalias !5819, !noundef !3 %418 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 60, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %418, align 8, !noalias !5819, !noundef !3 %419 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 242 %420 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 241 %421 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 243 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %a.0.i.i.i = load double, ptr %data.i.i.i.i.i.i965, align 8, !noalias !5819, !noundef !3 %422 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 240, i32 1 %a.1.i.i.i = load double, ptr %422, align 8, !noalias !5819, !noundef !3 %_84.0.i.i.i = load double, ptr %420, align 8, !noalias !5819, !noundef !3 %423 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 241, i32 1 %_84.1.i.i.i = load double, ptr %423, align 8, !noalias !5819, !noundef !3 %b.i40.i.i.i = fmul double %_84.1.i.i.i, %_6.i39.i.i.i %424 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.0.i.i.i, double %b.i40.i.i.i) %b1.i41.i.i.i = fmul double %w1.1.i.i.i, %_84.0.i.i.i %425 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_84.1.i.i.i, double %b1.i41.i.i.i) %_86.0.i.i.i = load double, ptr %419, align 8, !noalias !5819, !noundef !3 %426 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 242, i32 1 %_86.1.i.i.i = load double, ptr %426, align 8, !noalias !5819, !noundef !3 %b.i37.i.i.i = fmul double %_86.1.i.i.i, %_6.i36.i.i.i %427 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.0.i.i.i, double %b.i37.i.i.i) %b1.i38.i.i.i = fmul double %w2.1.i.i.i, %_86.0.i.i.i %428 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_86.1.i.i.i, double %b1.i38.i.i.i) %_88.0.i.i.i = load double, ptr %421, align 8, !noalias !5819, !noundef !3 %429 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 243, i32 1 %_88.1.i.i.i = load double, ptr %429, align 8, !noalias !5819, !noundef !3 %b.i35.i.i.i = fmul double %_88.1.i.i.i, %_6.i.i.i.i %430 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.0.i.i.i, double %b.i35.i.i.i) %b1.i.i.i.i = fmul double %w3.1.i.i.i, %_88.0.i.i.i %431 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_88.1.i.i.i, double %b1.i.i.i.i) %_0.i.i1110 = fadd double %a.0.i.i.i, %427 %_0.i3.i1111 = fadd double %a.1.i.i.i, %428 %_0.i.i1112 = fsub double %a.0.i.i.i, %427 %_0.i3.i1113 = fsub double %a.1.i.i.i, %428 %_0.i.i1114 = fadd double %424, %430 %_0.i3.i1115 = fadd double %425, %431 %_0.i.i1116 = fsub double %424, %430 %_0.i3.i1117 = fsub double %425, %431 %_0.i.i1118 = fadd double %_0.i.i1110, %_0.i.i1114 %_0.i3.i1119 = fadd double %_0.i3.i1111, %_0.i3.i1115 store double %_0.i.i1118, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955, align 8, !noalias !5819 %432 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 60, i32 1 store double %_0.i3.i1119, ptr %432, align 8, !noalias !5819 %_0.i.i1120 = fsub double %_0.i.i1112, %_0.i3.i1117 %_0.i3.i1121 = fadd double %_0.i3.i1113, %_0.i.i1116 store double %_0.i.i1120, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977, align 8, !noalias !5819 %433 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 124, i32 1 store double %_0.i3.i1121, ptr %433, align 8, !noalias !5819 %_0.i.i1122 = fsub double %_0.i.i1110, %_0.i.i1114 %_0.i3.i1123 = fsub double %_0.i3.i1111, %_0.i3.i1115 store double %_0.i.i1122, ptr %data.i.i.i.i.i.i.i.i.i.i973, align 8, !noalias !5819 %434 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 188, i32 1 store double %_0.i3.i1123, ptr %434, align 8, !noalias !5819 %_0.i.i1124 = fadd double %_0.i.i1112, %_0.i3.i1117 %_0.i3.i1125 = fsub double %_0.i3.i1113, %_0.i.i1116 store double %_0.i.i1124, ptr %data.i.i.i.i.i.i.i.i969, align 8, !noalias !5819 %435 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 252, i32 1 store double %_0.i3.i1125, ptr %435, align 8, !noalias !5819 %data.i.i.i.i.i.i.i.i.i.i.i.i955.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61 %data.i.i.i.i.i.i965.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244 %data.i.i.i.i.i.i.i.i969.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253 %data.i.i.i.i.i.i.i.i.i.i973.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 189 %data.i5.i.i.i.i.i.i.i.i.i.i.i977.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125 %436 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1 %w1.0.i.i.i.1 = load double, ptr %436, align 8, !noalias !5819, !noundef !3 %437 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %437, align 8, !noalias !5819, !noundef !3 %438 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2 %w2.0.i.i.i.1 = load double, ptr %438, align 8, !noalias !5819, !noundef !3 %439 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %439, align 8, !noalias !5819, !noundef !3 %440 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3 %w3.0.i.i.i.1 = load double, ptr %440, align 8, !noalias !5819, !noundef !3 %441 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 61, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %441, align 8, !noalias !5819, !noundef !3 %442 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 246 %443 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 245 %444 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 247 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %a.0.i.i.i.1 = load double, ptr %data.i.i.i.i.i.i965.1, align 8, !noalias !5819, !noundef !3 %445 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 244, i32 1 %a.1.i.i.i.1 = load double, ptr %445, align 8, !noalias !5819, !noundef !3 %_84.0.i.i.i.1 = load double, ptr %443, align 8, !noalias !5819, !noundef !3 %446 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 245, i32 1 %_84.1.i.i.i.1 = load double, ptr %446, align 8, !noalias !5819, !noundef !3 %b.i40.i.i.i.1 = fmul double %_84.1.i.i.i.1, %_6.i39.i.i.i.1 %447 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.0.i.i.i.1, double %b.i40.i.i.i.1) %b1.i41.i.i.i.1 = fmul double %w1.1.i.i.i.1, %_84.0.i.i.i.1 %448 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.1, double %_84.1.i.i.i.1, double %b1.i41.i.i.i.1) %_86.0.i.i.i.1 = load double, ptr %442, align 8, !noalias !5819, !noundef !3 %449 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 246, i32 1 %_86.1.i.i.i.1 = load double, ptr %449, align 8, !noalias !5819, !noundef !3 %b.i37.i.i.i.1 = fmul double %_86.1.i.i.i.1, %_6.i36.i.i.i.1 %450 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.0.i.i.i.1, double %b.i37.i.i.i.1) %b1.i38.i.i.i.1 = fmul double %w2.1.i.i.i.1, %_86.0.i.i.i.1 %451 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.1, double %_86.1.i.i.i.1, double %b1.i38.i.i.i.1) %_88.0.i.i.i.1 = load double, ptr %444, align 8, !noalias !5819, !noundef !3 %452 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 247, i32 1 %_88.1.i.i.i.1 = load double, ptr %452, align 8, !noalias !5819, !noundef !3 %b.i35.i.i.i.1 = fmul double %_88.1.i.i.i.1, %_6.i.i.i.i.1 %453 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.0.i.i.i.1, double %b.i35.i.i.i.1) %b1.i.i.i.i.1 = fmul double %w3.1.i.i.i.1, %_88.0.i.i.i.1 %454 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.1, double %_88.1.i.i.i.1, double %b1.i.i.i.i.1) %_0.i.i1110.1 = fadd double %a.0.i.i.i.1, %450 %_0.i3.i1111.1 = fadd double %a.1.i.i.i.1, %451 %_0.i.i1112.1 = fsub double %a.0.i.i.i.1, %450 %_0.i3.i1113.1 = fsub double %a.1.i.i.i.1, %451 %_0.i.i1114.1 = fadd double %447, %453 %_0.i3.i1115.1 = fadd double %448, %454 %_0.i.i1116.1 = fsub double %447, %453 %_0.i3.i1117.1 = fsub double %448, %454 %_0.i.i1118.1 = fadd double %_0.i.i1110.1, %_0.i.i1114.1 %_0.i3.i1119.1 = fadd double %_0.i3.i1111.1, %_0.i3.i1115.1 store double %_0.i.i1118.1, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955.1, align 8, !noalias !5819 %455 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 61, i32 1 store double %_0.i3.i1119.1, ptr %455, align 8, !noalias !5819 %_0.i.i1120.1 = fsub double %_0.i.i1112.1, %_0.i3.i1117.1 %_0.i3.i1121.1 = fadd double %_0.i3.i1113.1, %_0.i.i1116.1 store double %_0.i.i1120.1, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977.1, align 8, !noalias !5819 %456 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 125, i32 1 store double %_0.i3.i1121.1, ptr %456, align 8, !noalias !5819 %_0.i.i1122.1 = fsub double %_0.i.i1110.1, %_0.i.i1114.1 %_0.i3.i1123.1 = fsub double %_0.i3.i1111.1, %_0.i3.i1115.1 store double %_0.i.i1122.1, ptr %data.i.i.i.i.i.i.i.i.i.i973.1, align 8, !noalias !5819 %457 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 189, i32 1 store double %_0.i3.i1123.1, ptr %457, align 8, !noalias !5819 %_0.i.i1124.1 = fadd double %_0.i.i1112.1, %_0.i3.i1117.1 %_0.i3.i1125.1 = fsub double %_0.i3.i1113.1, %_0.i.i1116.1 store double %_0.i.i1124.1, ptr %data.i.i.i.i.i.i.i.i969.1, align 8, !noalias !5819 %458 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 253, i32 1 store double %_0.i3.i1125.1, ptr %458, align 8, !noalias !5819 %data.i.i.i.i.i.i.i.i.i.i.i.i955.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62 %data.i.i.i.i.i.i965.2 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248 %data.i.i.i.i.i.i.i.i969.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254 %data.i.i.i.i.i.i.i.i.i.i973.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 190 %data.i5.i.i.i.i.i.i.i.i.i.i.i977.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126 %459 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1 %w1.0.i.i.i.2 = load double, ptr %459, align 8, !noalias !5819, !noundef !3 %460 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 1, i32 1 %w1.1.i.i.i.2 = load double, ptr %460, align 8, !noalias !5819, !noundef !3 %461 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2 %w2.0.i.i.i.2 = load double, ptr %461, align 8, !noalias !5819, !noundef !3 %462 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 2, i32 1 %w2.1.i.i.i.2 = load double, ptr %462, align 8, !noalias !5819, !noundef !3 %463 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3 %w3.0.i.i.i.2 = load double, ptr %463, align 8, !noalias !5819, !noundef !3 %464 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 62, i64 3, i32 1 %w3.1.i.i.i.2 = load double, ptr %464, align 8, !noalias !5819, !noundef !3 %465 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250 %466 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249 %467 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251 %_6.i39.i.i.i.2 = fneg double %w1.1.i.i.i.2 %_6.i36.i.i.i.2 = fneg double %w2.1.i.i.i.2 %_6.i.i.i.i.2 = fneg double %w3.1.i.i.i.2 %a.0.i.i.i.2 = load double, ptr %data.i.i.i.i.i.i965.2, align 8, !noalias !5819, !noundef !3 %468 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 248, i32 1 %a.1.i.i.i.2 = load double, ptr %468, align 8, !noalias !5819, !noundef !3 %_84.0.i.i.i.2 = load double, ptr %466, align 8, !noalias !5819, !noundef !3 %469 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 249, i32 1 %_84.1.i.i.i.2 = load double, ptr %469, align 8, !noalias !5819, !noundef !3 %b.i40.i.i.i.2 = fmul double %_84.1.i.i.i.2, %_6.i39.i.i.i.2 %470 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.0.i.i.i.2, double %b.i40.i.i.i.2) %b1.i41.i.i.i.2 = fmul double %w1.1.i.i.i.2, %_84.0.i.i.i.2 %471 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.2, double %_84.1.i.i.i.2, double %b1.i41.i.i.i.2) %_86.0.i.i.i.2 = load double, ptr %465, align 8, !noalias !5819, !noundef !3 %472 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 250, i32 1 %_86.1.i.i.i.2 = load double, ptr %472, align 8, !noalias !5819, !noundef !3 %b.i37.i.i.i.2 = fmul double %_86.1.i.i.i.2, %_6.i36.i.i.i.2 %473 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.0.i.i.i.2, double %b.i37.i.i.i.2) %b1.i38.i.i.i.2 = fmul double %w2.1.i.i.i.2, %_86.0.i.i.i.2 %474 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.2, double %_86.1.i.i.i.2, double %b1.i38.i.i.i.2) %_88.0.i.i.i.2 = load double, ptr %467, align 8, !noalias !5819, !noundef !3 %475 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 251, i32 1 %_88.1.i.i.i.2 = load double, ptr %475, align 8, !noalias !5819, !noundef !3 %b.i35.i.i.i.2 = fmul double %_88.1.i.i.i.2, %_6.i.i.i.i.2 %476 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.0.i.i.i.2, double %b.i35.i.i.i.2) %b1.i.i.i.i.2 = fmul double %w3.1.i.i.i.2, %_88.0.i.i.i.2 %477 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.2, double %_88.1.i.i.i.2, double %b1.i.i.i.i.2) %_0.i.i1110.2 = fadd double %a.0.i.i.i.2, %473 %_0.i3.i1111.2 = fadd double %a.1.i.i.i.2, %474 %_0.i.i1112.2 = fsub double %a.0.i.i.i.2, %473 %_0.i3.i1113.2 = fsub double %a.1.i.i.i.2, %474 %_0.i.i1114.2 = fadd double %470, %476 %_0.i3.i1115.2 = fadd double %471, %477 %_0.i.i1116.2 = fsub double %470, %476 %_0.i3.i1117.2 = fsub double %471, %477 %_0.i.i1118.2 = fadd double %_0.i.i1110.2, %_0.i.i1114.2 %_0.i3.i1119.2 = fadd double %_0.i3.i1111.2, %_0.i3.i1115.2 store double %_0.i.i1118.2, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955.2, align 8, !noalias !5819 %478 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 62, i32 1 store double %_0.i3.i1119.2, ptr %478, align 8, !noalias !5819 %_0.i.i1120.2 = fsub double %_0.i.i1112.2, %_0.i3.i1117.2 %_0.i3.i1121.2 = fadd double %_0.i3.i1113.2, %_0.i.i1116.2 store double %_0.i.i1120.2, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977.2, align 8, !noalias !5819 %479 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 126, i32 1 store double %_0.i3.i1121.2, ptr %479, align 8, !noalias !5819 %_0.i.i1122.2 = fsub double %_0.i.i1110.2, %_0.i.i1114.2 %_0.i3.i1123.2 = fsub double %_0.i3.i1111.2, %_0.i3.i1115.2 store double %_0.i.i1122.2, ptr %data.i.i.i.i.i.i.i.i.i.i973.2, align 8, !noalias !5819 %480 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 190, i32 1 store double %_0.i3.i1123.2, ptr %480, align 8, !noalias !5819 %_0.i.i1124.2 = fadd double %_0.i.i1112.2, %_0.i3.i1117.2 %_0.i3.i1125.2 = fsub double %_0.i3.i1113.2, %_0.i.i1116.2 store double %_0.i.i1124.2, ptr %data.i.i.i.i.i.i.i.i969.2, align 8, !noalias !5819 %481 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 254, i32 1 store double %_0.i3.i1125.2, ptr %481, align 8, !noalias !5819 %data.i.i.i.i.i.i.i.i.i.i.i.i955.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63 %data.i.i.i.i.i.i965.3 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252 %data.i.i.i.i.i.i.i.i969.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255 %data.i.i.i.i.i.i.i.i.i.i973.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 191 %data.i5.i.i.i.i.i.i.i.i.i.i.i977.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127 %482 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1 %w1.0.i.i.i.3 = load double, ptr %482, align 8, !noalias !5819, !noundef !3 %483 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 1, i32 1 %w1.1.i.i.i.3 = load double, ptr %483, align 8, !noalias !5819, !noundef !3 %484 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2 %w2.0.i.i.i.3 = load double, ptr %484, align 8, !noalias !5819, !noundef !3 %485 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 2, i32 1 %w2.1.i.i.i.3 = load double, ptr %485, align 8, !noalias !5819, !noundef !3 %486 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3 %w3.0.i.i.i.3 = load double, ptr %486, align 8, !noalias !5819, !noundef !3 %487 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 63, i64 3, i32 1 %w3.1.i.i.i.3 = load double, ptr %487, align 8, !noalias !5819, !noundef !3 %488 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254 %489 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253 %490 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255 %_6.i39.i.i.i.3 = fneg double %w1.1.i.i.i.3 %_6.i36.i.i.i.3 = fneg double %w2.1.i.i.i.3 %_6.i.i.i.i.3 = fneg double %w3.1.i.i.i.3 %a.0.i.i.i.3 = load double, ptr %data.i.i.i.i.i.i965.3, align 8, !noalias !5819, !noundef !3 %491 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 252, i32 1 %a.1.i.i.i.3 = load double, ptr %491, align 8, !noalias !5819, !noundef !3 %_84.0.i.i.i.3 = load double, ptr %489, align 8, !noalias !5819, !noundef !3 %492 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 253, i32 1 %_84.1.i.i.i.3 = load double, ptr %492, align 8, !noalias !5819, !noundef !3 %b.i40.i.i.i.3 = fmul double %_84.1.i.i.i.3, %_6.i39.i.i.i.3 %493 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.0.i.i.i.3, double %b.i40.i.i.i.3) %b1.i41.i.i.i.3 = fmul double %w1.1.i.i.i.3, %_84.0.i.i.i.3 %494 = tail call double @llvm.fma.f64(double %w1.0.i.i.i.3, double %_84.1.i.i.i.3, double %b1.i41.i.i.i.3) %_86.0.i.i.i.3 = load double, ptr %488, align 8, !noalias !5819, !noundef !3 %495 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 254, i32 1 %_86.1.i.i.i.3 = load double, ptr %495, align 8, !noalias !5819, !noundef !3 %b.i37.i.i.i.3 = fmul double %_86.1.i.i.i.3, %_6.i36.i.i.i.3 %496 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.0.i.i.i.3, double %b.i37.i.i.i.3) %b1.i38.i.i.i.3 = fmul double %w2.1.i.i.i.3, %_86.0.i.i.i.3 %497 = tail call double @llvm.fma.f64(double %w2.0.i.i.i.3, double %_86.1.i.i.i.3, double %b1.i38.i.i.i.3) %_88.0.i.i.i.3 = load double, ptr %490, align 8, !noalias !5819, !noundef !3 %498 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 255, i32 1 %_88.1.i.i.i.3 = load double, ptr %498, align 8, !noalias !5819, !noundef !3 %b.i35.i.i.i.3 = fmul double %_88.1.i.i.i.3, %_6.i.i.i.i.3 %499 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.0.i.i.i.3, double %b.i35.i.i.i.3) %b1.i.i.i.i.3 = fmul double %w3.1.i.i.i.3, %_88.0.i.i.i.3 %500 = tail call double @llvm.fma.f64(double %w3.0.i.i.i.3, double %_88.1.i.i.i.3, double %b1.i.i.i.i.3) %_0.i.i1110.3 = fadd double %a.0.i.i.i.3, %496 %_0.i3.i1111.3 = fadd double %a.1.i.i.i.3, %497 %_0.i.i1112.3 = fsub double %a.0.i.i.i.3, %496 %_0.i3.i1113.3 = fsub double %a.1.i.i.i.3, %497 %_0.i.i1114.3 = fadd double %493, %499 %_0.i3.i1115.3 = fadd double %494, %500 %_0.i.i1116.3 = fsub double %493, %499 %_0.i3.i1117.3 = fsub double %494, %500 %_0.i.i1118.3 = fadd double %_0.i.i1110.3, %_0.i.i1114.3 %_0.i3.i1119.3 = fadd double %_0.i3.i1111.3, %_0.i3.i1115.3 store double %_0.i.i1118.3, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i955.3, align 8, !noalias !5819 %501 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 63, i32 1 store double %_0.i3.i1119.3, ptr %501, align 8, !noalias !5819 %_0.i.i1120.3 = fsub double %_0.i.i1112.3, %_0.i3.i1117.3 %_0.i3.i1121.3 = fadd double %_0.i3.i1113.3, %_0.i.i1116.3 store double %_0.i.i1120.3, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i977.3, align 8, !noalias !5819 %502 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 127, i32 1 store double %_0.i3.i1121.3, ptr %502, align 8, !noalias !5819 %_0.i.i1122.3 = fsub double %_0.i.i1110.3, %_0.i.i1114.3 %_0.i3.i1123.3 = fsub double %_0.i3.i1111.3, %_0.i3.i1115.3 store double %_0.i.i1122.3, ptr %data.i.i.i.i.i.i.i.i.i.i973.3, align 8, !noalias !5819 %503 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 191, i32 1 store double %_0.i3.i1123.3, ptr %503, align 8, !noalias !5819 %_0.i.i1124.3 = fadd double %_0.i.i1112.3, %_0.i3.i1117.3 %_0.i3.i1125.3 = fsub double %_0.i3.i1113.3, %_0.i.i1116.3 store double %_0.i.i1124.3, ptr %data.i.i.i.i.i.i.i.i969.3, align 8, !noalias !5819 %504 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 255, i32 1 store double %_0.i3.i1125.3, ptr %504, align 8, !noalias !5819 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5819 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf4bea02274b46e23E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dit8::Dit8>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h86259e550b3657b8E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf4e2a2f727b6c9cfE"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5830 store i64 512, ptr %n.i.i, align 8, !noalias !5830 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5830 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5830 %_12.i.i = icmp eq i64 %buf.1, 512 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5830 store ptr null, ptr %_16.i.i, align 8, !noalias !5830 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5830 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5830 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5830 %_20.i.i = icmp eq i64 %scratch.1, 512 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5830 store ptr null, ptr %_24.i.i, align 8, !noalias !5830 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5830 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5830 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5830 %_28.i.i = icmp eq i64 %w_init.1, 512 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5830 store ptr null, ptr %_32.i.i, align 8, !noalias !5830 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5830 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5830 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5830 %_36.i.i = icmp eq i64 %w.1, 512 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd06d218d598bfe5aE.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5830 store ptr null, ptr %_40.i.i, align 8, !noalias !5830 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd06d218d598bfe5aE.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5830 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 br label %bb9.i.i.i.i.i.i bb9.i.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd06d218d598bfe5aE.exit.i" %iter.i.i.i.i.i.sroa.8.0248.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd06d218d598bfe5aE.exit.i" ], [ %12, %bb9.i.i.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0248.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.i.sroa.8.0248.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.i.sroa.8.0248.i %_33.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5830 %_34.i.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !5830 %4 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !5830 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !5830 %6 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0248.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5830 %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5830 %7 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5830 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5830 %9 = or disjoint i64 %iter.i.i.i.i.i.sroa.8.0248.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5830 %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5830 %10 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5830 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5830 %12 = add nuw nsw i64 %iter.i.i.i.i.i.sroa.8.0248.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5830 %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5830 %13 = fadd <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5830 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5830 %exitcond.not.i.3 = icmp eq i64 %12, 128 br i1 %exitcond.not.i.3, label %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i", label %bb9.i.i.i.i.i.i "_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i": ; preds = %bb9.i.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5835) tail call void @llvm.experimental.noalias.scope.decl(metadata !5838) %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %16, align 8, !noalias !5830, !noundef !3 %17 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %17, align 8, !noalias !5830, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %18 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %20 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %21 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i.i bb26.us.i.i: ; preds = %bb26.us.i.i, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i" %iter6.sroa.22.0209.us.i.i = phi i64 [ 0, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E.exit.i" ], [ %28, %bb26.us.i.i ] %22 = or disjoint i64 %iter6.sroa.22.0209.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0209.us.i.i %_3.i2.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter6.sroa.22.0209.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0209.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter6.sroa.22.0209.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5838, !noalias !5840 %_62.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !5838, !noalias !5840 %23 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %24 = fmul <4 x double> %21, %23 %25 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> %24) #23 %26 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %25 store <4 x double> %26, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5835, !noalias !5842 %27 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %25 store <4 x double> %27, ptr %_3.i2.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5835, !noalias !5842 %28 = add nuw nsw i64 %iter6.sroa.22.0209.us.i.i, 2 %_3.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %22 %_3.i2.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %22 %_3.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %22 %_3.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %22 %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5838, !noalias !5840 %_62.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i.i.1, align 8, !alias.scope !5838, !noalias !5840 %29 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i.1, <4 x double> poison, <4 x i32> %30 = fmul <4 x double> %21, %29 %31 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.i.1, <4 x double> %30) #23 %32 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %31 store <4 x double> %32, ptr %_3.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5835, !noalias !5842 %33 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %31 store <4 x double> %33, ptr %_3.i2.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !5835, !noalias !5842 %exitcond.not.i.i.1 = icmp eq i64 %28, 64 br i1 %exitcond.not.i.i.1, label %bb24.bb15.loopexit_crit_edge.us.i.i, label %bb26.us.i.i bb24.bb15.loopexit_crit_edge.us.i.i: ; preds = %bb26.us.i.i %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %34 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i.1.i = load double, ptr %34, align 8, !noalias !5830, !noundef !3 %35 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %35, align 8, !noalias !5830, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %36 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %37 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %38 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %39 = shufflevector <4 x double> %36, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i.1.i bb26.us.i.1.i: ; preds = %bb26.us.i.1.i, %bb24.bb15.loopexit_crit_edge.us.i.i %iter6.sroa.22.0209.us.i.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i.i ], [ %46, %bb26.us.i.1.i ] %40 = or disjoint i64 %iter6.sroa.22.0209.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i2.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %iter6.sroa.22.0209.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5838, !noalias !5840 %_62.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !5838, !noalias !5840 %41 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %39, %41 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> %42) #23 %44 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %43 store <4 x double> %44, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5835, !noalias !5842 %45 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %43 store <4 x double> %45, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5835, !noalias !5842 %46 = add nuw nsw i64 %iter6.sroa.22.0209.us.i.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %40 %_3.i2.i.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %40 %_3.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %40 %_3.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %40 %a.sroa.0.0.copyload.us.i.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !5838, !noalias !5840 %_62.sroa.0.0.copyload.us.i.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !5838, !noalias !5840 %47 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i.1, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %39, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i.1, <4 x double> %48) #23 %50 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i.1, %49 store <4 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !5835, !noalias !5842 %51 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i.1, %49 store <4 x double> %51, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !5835, !noalias !5842 %exitcond.not.i.1.i.1 = icmp eq i64 %46, 64 br i1 %exitcond.not.i.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i.1.i, label %bb26.us.i.1.i bb24.bb15.loopexit_crit_edge.us.i.1.i: ; preds = %bb26.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5843) tail call void @llvm.experimental.noalias.scope.decl(metadata !5846) tail call void @llvm.experimental.noalias.scope.decl(metadata !5848) %52 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 br label %bb26.us.i43.i bb26.us.i43.i: ; preds = %bb26.us.i43.i, %bb24.bb15.loopexit_crit_edge.us.i.1.i %iter6.sroa.22.0209.us.i44.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i.1.i ], [ %59, %bb26.us.i43.i ] %53 = or disjoint i64 %iter6.sroa.22.0209.us.i44.i, 1 %_3.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0209.us.i44.i %_3.i2.i.i.i.i.i.i.i.us.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0209.us.i44.i %_3.i.i.i.i.i.i.us.i47.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0209.us.i44.i %_3.i.i.i.i.us.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %52, i64 %iter6.sroa.22.0209.us.i44.i %a.sroa.0.0.copyload.us.i49.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.i, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.i = load <4 x double>, ptr %_3.i.i.i.i.us.i48.i, align 8, !alias.scope !5846, !noalias !5850 %54 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.i, <4 x double> poison, <4 x i32> %55 = fmul <4 x double> %21, %54 %56 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i50.i, <4 x double> %55) #23 %57 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.i, %56 store <4 x double> %57, ptr %_3.i.i.i.i.i.i.i.i.us.i45.i, align 8, !alias.scope !5843, !noalias !5851 %58 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.i, %56 store <4 x double> %58, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.i, align 8, !alias.scope !5843, !noalias !5851 %59 = add nuw nsw i64 %iter6.sroa.22.0209.us.i44.i, 2 %_3.i.i.i.i.i.i.i.i.us.i45.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %53 %_3.i2.i.i.i.i.i.i.i.us.i46.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %53 %_3.i.i.i.i.i.i.us.i47.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %53 %_3.i.i.i.i.us.i48.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %52, i64 %53 %a.sroa.0.0.copyload.us.i49.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.i.1, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i48.i.1, align 8, !alias.scope !5846, !noalias !5850 %60 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.i.1, <4 x double> poison, <4 x i32> %61 = fmul <4 x double> %21, %60 %62 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i50.i.1, <4 x double> %61) #23 %63 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.i.1, %62 store <4 x double> %63, ptr %_3.i.i.i.i.i.i.i.i.us.i45.i.1, align 8, !alias.scope !5843, !noalias !5851 %64 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.i.1, %62 store <4 x double> %64, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.i.1, align 8, !alias.scope !5843, !noalias !5851 %exitcond.not.i51.i.1 = icmp eq i64 %59, 32 br i1 %exitcond.not.i51.i.1, label %bb24.bb15.loopexit_crit_edge.us.i52.i, label %bb26.us.i43.i bb24.bb15.loopexit_crit_edge.us.i52.i: ; preds = %bb26.us.i43.i %data.i.i.i.i.i.i.i.i.us.i36.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i.us.i39.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %65 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i40.1.i = load double, ptr %65, align 8, !alias.scope !5848, !noalias !5852, !noundef !3 %66 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i41.1.i = load double, ptr %66, align 8, !alias.scope !5848, !noalias !5852, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i42.1.i = insertelement <2 x double> poison, double %w1.0.us.i40.1.i, i64 0 %67 = insertelement <4 x double> poison, double %w1.1.us.i41.1.i, i64 0 %68 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %69 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i42.1.i, <2 x double> poison, <4 x i32> zeroinitializer %70 = shufflevector <4 x double> %67, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i43.1.i bb26.us.i43.1.i: ; preds = %bb26.us.i43.1.i, %bb24.bb15.loopexit_crit_edge.us.i52.i %iter6.sroa.22.0209.us.i44.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i52.i ], [ %77, %bb26.us.i43.1.i ] %71 = or disjoint i64 %iter6.sroa.22.0209.us.i44.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i45.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i36.1.i, i64 %iter6.sroa.22.0209.us.i44.1.i %_3.i2.i.i.i.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i39.1.i, i64 %iter6.sroa.22.0209.us.i44.1.i %_3.i.i.i.i.i.i.us.i47.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i44.1.i %_3.i.i.i.i.us.i48.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %iter6.sroa.22.0209.us.i44.1.i %a.sroa.0.0.copyload.us.i49.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.1.i, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i48.1.i, align 8, !alias.scope !5846, !noalias !5850 %72 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.1.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %70, %72 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %69, <4 x double> %_62.sroa.0.0.copyload.us.i50.1.i, <4 x double> %73) #23 %75 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.1.i, %74 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.i.i.us.i45.1.i, align 8, !alias.scope !5843, !noalias !5851 %76 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.1.i, %74 store <4 x double> %76, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.1.i, align 8, !alias.scope !5843, !noalias !5851 %77 = add nuw nsw i64 %iter6.sroa.22.0209.us.i44.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i45.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i36.1.i, i64 %71 %_3.i2.i.i.i.i.i.i.i.us.i46.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i39.1.i, i64 %71 %_3.i.i.i.i.i.i.us.i47.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %71 %_3.i.i.i.i.us.i48.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %68, i64 %71 %a.sroa.0.0.copyload.us.i49.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.1.i.1, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i48.1.i.1, align 8, !alias.scope !5846, !noalias !5850 %78 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.1.i.1, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %70, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %69, <4 x double> %_62.sroa.0.0.copyload.us.i50.1.i.1, <4 x double> %79) #23 %81 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.1.i.1, %80 store <4 x double> %81, ptr %_3.i.i.i.i.i.i.i.i.us.i45.1.i.1, align 8, !alias.scope !5843, !noalias !5851 %82 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.1.i.1, %80 store <4 x double> %82, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.1.i.1, align 8, !alias.scope !5843, !noalias !5851 %exitcond.not.i51.1.i.1 = icmp eq i64 %77, 32 br i1 %exitcond.not.i51.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i52.1.i, label %bb26.us.i43.1.i bb24.bb15.loopexit_crit_edge.us.i52.1.i: ; preds = %bb26.us.i43.1.i %83 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 br label %bb26.us.i43.2.i bb26.us.i43.2.i: ; preds = %bb26.us.i43.2.i, %bb24.bb15.loopexit_crit_edge.us.i52.1.i %iter6.sroa.22.0209.us.i44.2.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i52.1.i ], [ %90, %bb26.us.i43.2.i ] %84 = or disjoint i64 %iter6.sroa.22.0209.us.i44.2.i, 1 %_3.i.i.i.i.i.i.i.i.us.i45.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter6.sroa.22.0209.us.i44.2.i %_3.i2.i.i.i.i.i.i.i.us.i46.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %iter6.sroa.22.0209.us.i44.2.i %_3.i.i.i.i.i.i.us.i47.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter6.sroa.22.0209.us.i44.2.i %_3.i.i.i.i.us.i48.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %83, i64 %iter6.sroa.22.0209.us.i44.2.i %a.sroa.0.0.copyload.us.i49.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.2.i, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i48.2.i, align 8, !alias.scope !5846, !noalias !5850 %85 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.2.i, <4 x double> poison, <4 x i32> %86 = fmul <4 x double> %39, %85 %87 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %_62.sroa.0.0.copyload.us.i50.2.i, <4 x double> %86) #23 %88 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.2.i, %87 store <4 x double> %88, ptr %_3.i.i.i.i.i.i.i.i.us.i45.2.i, align 8, !alias.scope !5843, !noalias !5851 %89 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.2.i, %87 store <4 x double> %89, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.2.i, align 8, !alias.scope !5843, !noalias !5851 %90 = add nuw nsw i64 %iter6.sroa.22.0209.us.i44.2.i, 2 %_3.i.i.i.i.i.i.i.i.us.i45.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %84 %_3.i2.i.i.i.i.i.i.i.us.i46.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %37, i64 %84 %_3.i.i.i.i.i.i.us.i47.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %84 %_3.i.i.i.i.us.i48.2.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %83, i64 %84 %a.sroa.0.0.copyload.us.i49.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.2.i.1, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.2.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i48.2.i.1, align 8, !alias.scope !5846, !noalias !5850 %91 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.2.i.1, <4 x double> poison, <4 x i32> %92 = fmul <4 x double> %39, %91 %93 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %38, <4 x double> %_62.sroa.0.0.copyload.us.i50.2.i.1, <4 x double> %92) #23 %94 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.2.i.1, %93 store <4 x double> %94, ptr %_3.i.i.i.i.i.i.i.i.us.i45.2.i.1, align 8, !alias.scope !5843, !noalias !5851 %95 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.2.i.1, %93 store <4 x double> %95, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.2.i.1, align 8, !alias.scope !5843, !noalias !5851 %exitcond.not.i51.2.i.1 = icmp eq i64 %90, 32 br i1 %exitcond.not.i51.2.i.1, label %bb24.bb15.loopexit_crit_edge.us.i52.2.i, label %bb26.us.i43.2.i bb24.bb15.loopexit_crit_edge.us.i52.2.i: ; preds = %bb26.us.i43.2.i %data.i.i.i.i.i.i.i.i.us.i36.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %data.i5.i.i.i.i.i.i.i.us.i39.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %96 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i40.3.i = load double, ptr %96, align 8, !alias.scope !5848, !noalias !5852, !noundef !3 %97 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i41.3.i = load double, ptr %97, align 8, !alias.scope !5848, !noalias !5852, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i42.3.i = insertelement <2 x double> poison, double %w1.0.us.i40.3.i, i64 0 %98 = insertelement <4 x double> poison, double %w1.1.us.i41.3.i, i64 0 %99 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %100 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i42.3.i, <2 x double> poison, <4 x i32> zeroinitializer %101 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i43.3.i bb26.us.i43.3.i: ; preds = %bb26.us.i43.3.i, %bb24.bb15.loopexit_crit_edge.us.i52.2.i %iter6.sroa.22.0209.us.i44.3.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i52.2.i ], [ %108, %bb26.us.i43.3.i ] %102 = or disjoint i64 %iter6.sroa.22.0209.us.i44.3.i, 1 %_3.i.i.i.i.i.i.i.i.us.i45.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i36.3.i, i64 %iter6.sroa.22.0209.us.i44.3.i %_3.i2.i.i.i.i.i.i.i.us.i46.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i39.3.i, i64 %iter6.sroa.22.0209.us.i44.3.i %_3.i.i.i.i.i.i.us.i47.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i44.3.i %_3.i.i.i.i.us.i48.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %99, i64 %iter6.sroa.22.0209.us.i44.3.i %a.sroa.0.0.copyload.us.i49.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.3.i, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i48.3.i, align 8, !alias.scope !5846, !noalias !5850 %103 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.3.i, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %101, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_62.sroa.0.0.copyload.us.i50.3.i, <4 x double> %104) #23 %106 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.3.i, %105 store <4 x double> %106, ptr %_3.i.i.i.i.i.i.i.i.us.i45.3.i, align 8, !alias.scope !5843, !noalias !5851 %107 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.3.i, %105 store <4 x double> %107, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.3.i, align 8, !alias.scope !5843, !noalias !5851 %108 = add nuw nsw i64 %iter6.sroa.22.0209.us.i44.3.i, 2 %_3.i.i.i.i.i.i.i.i.us.i45.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i36.3.i, i64 %102 %_3.i2.i.i.i.i.i.i.i.us.i46.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i39.3.i, i64 %102 %_3.i.i.i.i.i.i.us.i47.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %102 %_3.i.i.i.i.us.i48.3.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %99, i64 %102 %a.sroa.0.0.copyload.us.i49.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i47.3.i.1, align 8, !alias.scope !5846, !noalias !5850 %_62.sroa.0.0.copyload.us.i50.3.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i48.3.i.1, align 8, !alias.scope !5846, !noalias !5850 %109 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i50.3.i.1, <4 x double> poison, <4 x i32> %110 = fmul <4 x double> %101, %109 %111 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %100, <4 x double> %_62.sroa.0.0.copyload.us.i50.3.i.1, <4 x double> %110) #23 %112 = fadd <4 x double> %a.sroa.0.0.copyload.us.i49.3.i.1, %111 store <4 x double> %112, ptr %_3.i.i.i.i.i.i.i.i.us.i45.3.i.1, align 8, !alias.scope !5843, !noalias !5851 %113 = fsub <4 x double> %a.sroa.0.0.copyload.us.i49.3.i.1, %111 store <4 x double> %113, ptr %_3.i2.i.i.i.i.i.i.i.us.i46.3.i.1, align 8, !alias.scope !5843, !noalias !5851 %exitcond.not.i51.3.i.1 = icmp eq i64 %108, 32 br i1 %exitcond.not.i51.3.i.1, label %bb24.bb15.loopexit_crit_edge.us.i52.3.i, label %bb26.us.i43.3.i bb24.bb15.loopexit_crit_edge.us.i52.3.i: ; preds = %bb26.us.i43.3.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5853) tail call void @llvm.experimental.noalias.scope.decl(metadata !5856) tail call void @llvm.experimental.noalias.scope.decl(metadata !5858) br label %bb17.us.i68.i bb17.us.i68.i: ; preds = %bb17.us.i68.i, %bb24.bb15.loopexit_crit_edge.us.i52.3.i %iter.sroa.38.0211.us.i69.i = phi i64 [ %200, %bb17.us.i68.i ], [ 0, %bb24.bb15.loopexit_crit_edge.us.i52.3.i ] %start1.i.i.i.i.i.i.i.i.us.i70.i = shl i64 %iter.sroa.38.0211.us.i69.i, 4 %data.i.i.i.i.i.i.i.i.us.i71.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i70.i %start1.i.i.i.i.us.i72.i = shl i64 %iter.sroa.38.0211.us.i69.i, 5 %data.i.i.i.i.i.i.us.i73.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i72.i %data.i5.i.i.i.i.i.i.i.us.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.us.i70.i %114 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i72.i, i64 1 %w1.0.us.i75.i = load double, ptr %114, align 8, !alias.scope !5858, !noalias !5860, !noundef !3 %115 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i72.i, i64 1, i32 1 %w1.1.us.i76.i = load double, ptr %115, align 8, !alias.scope !5858, !noalias !5860, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i77.i = insertelement <2 x double> poison, double %w1.0.us.i75.i, i64 0 %116 = insertelement <4 x double> poison, double %w1.1.us.i76.i, i64 0 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 16 %118 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i77.i, <2 x double> poison, <4 x i32> zeroinitializer %119 = shufflevector <4 x double> %116, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i84.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i73.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.i = load <4 x double>, ptr %117, align 8, !alias.scope !5856, !noalias !5861 %120 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.i, <4 x double> poison, <4 x i32> %121 = fmul <4 x double> %119, %120 %122 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.i, <4 x double> %121) #23 %123 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.i, %122 store <4 x double> %123, ptr %data.i.i.i.i.i.i.i.i.us.i71.i, align 8, !alias.scope !5853, !noalias !5862 %124 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.i, %122 store <4 x double> %124, ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i81.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 1 %_3.i.i.i.i.i.i.us.i82.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 1 %_3.i.i.i.i.us.i83.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 17 %a.sroa.0.0.copyload.us.i84.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.1.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.1.i, align 8, !alias.scope !5856, !noalias !5861 %125 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.1.i, <4 x double> poison, <4 x i32> %126 = fmul <4 x double> %119, %125 %127 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.1.i, <4 x double> %126) #23 %128 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.1.i, %127 store <4 x double> %128, ptr %_3.i.i.i.i.i.i.i.i.us.i80.1.i, align 8, !alias.scope !5853, !noalias !5862 %129 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.1.i, %127 store <4 x double> %129, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.1.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i81.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 2 %_3.i.i.i.i.i.i.us.i82.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 2 %_3.i.i.i.i.us.i83.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 18 %a.sroa.0.0.copyload.us.i84.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.2.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.2.i, align 8, !alias.scope !5856, !noalias !5861 %130 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.2.i, <4 x double> poison, <4 x i32> %131 = fmul <4 x double> %119, %130 %132 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.2.i, <4 x double> %131) #23 %133 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.2.i, %132 store <4 x double> %133, ptr %_3.i.i.i.i.i.i.i.i.us.i80.2.i, align 8, !alias.scope !5853, !noalias !5862 %134 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.2.i, %132 store <4 x double> %134, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.2.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i81.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 3 %_3.i.i.i.i.i.i.us.i82.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 3 %_3.i.i.i.i.us.i83.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 19 %a.sroa.0.0.copyload.us.i84.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.3.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.3.i, align 8, !alias.scope !5856, !noalias !5861 %135 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.3.i, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %119, %135 %137 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.3.i, <4 x double> %136) #23 %138 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.3.i, %137 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i80.3.i, align 8, !alias.scope !5853, !noalias !5862 %139 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.3.i, %137 store <4 x double> %139, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.3.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i81.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 4 %_3.i.i.i.i.i.i.us.i82.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 4 %_3.i.i.i.i.us.i83.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 20 %a.sroa.0.0.copyload.us.i84.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.4.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.4.i, align 8, !alias.scope !5856, !noalias !5861 %140 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.4.i, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %119, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.4.i, <4 x double> %141) #23 %143 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.4.i, %142 store <4 x double> %143, ptr %_3.i.i.i.i.i.i.i.i.us.i80.4.i, align 8, !alias.scope !5853, !noalias !5862 %144 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.4.i, %142 store <4 x double> %144, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.4.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i81.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 5 %_3.i.i.i.i.i.i.us.i82.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 5 %_3.i.i.i.i.us.i83.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 21 %a.sroa.0.0.copyload.us.i84.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.5.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.5.i, align 8, !alias.scope !5856, !noalias !5861 %145 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.5.i, <4 x double> poison, <4 x i32> %146 = fmul <4 x double> %119, %145 %147 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.5.i, <4 x double> %146) #23 %148 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.5.i, %147 store <4 x double> %148, ptr %_3.i.i.i.i.i.i.i.i.us.i80.5.i, align 8, !alias.scope !5853, !noalias !5862 %149 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.5.i, %147 store <4 x double> %149, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.5.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i81.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 6 %_3.i.i.i.i.i.i.us.i82.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 6 %_3.i.i.i.i.us.i83.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 22 %a.sroa.0.0.copyload.us.i84.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.6.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.6.i, align 8, !alias.scope !5856, !noalias !5861 %150 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.6.i, <4 x double> poison, <4 x i32> %151 = fmul <4 x double> %119, %150 %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.6.i, <4 x double> %151) #23 %153 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.6.i, %152 store <4 x double> %153, ptr %_3.i.i.i.i.i.i.i.i.us.i80.6.i, align 8, !alias.scope !5853, !noalias !5862 %154 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.6.i, %152 store <4 x double> %154, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.6.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i81.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 7 %_3.i.i.i.i.i.i.us.i82.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 7 %_3.i.i.i.i.us.i83.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 23 %a.sroa.0.0.copyload.us.i84.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.7.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.7.i, align 8, !alias.scope !5856, !noalias !5861 %155 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.7.i, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %119, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.7.i, <4 x double> %156) #23 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.7.i, %157 store <4 x double> %158, ptr %_3.i.i.i.i.i.i.i.i.us.i80.7.i, align 8, !alias.scope !5853, !noalias !5862 %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.7.i, %157 store <4 x double> %159, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.7.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i81.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 8 %_3.i.i.i.i.i.i.us.i82.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 8 %_3.i.i.i.i.us.i83.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 24 %a.sroa.0.0.copyload.us.i84.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.8.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.8.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.8.i, align 8, !alias.scope !5856, !noalias !5861 %160 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.8.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %119, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.8.i, <4 x double> %161) #23 %163 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.8.i, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.us.i80.8.i, align 8, !alias.scope !5853, !noalias !5862 %164 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.8.i, %162 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.8.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i81.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 9 %_3.i.i.i.i.i.i.us.i82.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 9 %_3.i.i.i.i.us.i83.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 25 %a.sroa.0.0.copyload.us.i84.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.9.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.9.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.9.i, align 8, !alias.scope !5856, !noalias !5861 %165 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.9.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %119, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.9.i, <4 x double> %166) #23 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.9.i, %167 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.us.i80.9.i, align 8, !alias.scope !5853, !noalias !5862 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.9.i, %167 store <4 x double> %169, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.9.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i81.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 10 %_3.i.i.i.i.i.i.us.i82.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 10 %_3.i.i.i.i.us.i83.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 26 %a.sroa.0.0.copyload.us.i84.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.10.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.10.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.10.i, align 8, !alias.scope !5856, !noalias !5861 %170 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.10.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %119, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.10.i, <4 x double> %171) #23 %173 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.10.i, %172 store <4 x double> %173, ptr %_3.i.i.i.i.i.i.i.i.us.i80.10.i, align 8, !alias.scope !5853, !noalias !5862 %174 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.10.i, %172 store <4 x double> %174, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.10.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i81.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 11 %_3.i.i.i.i.i.i.us.i82.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 11 %_3.i.i.i.i.us.i83.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 27 %a.sroa.0.0.copyload.us.i84.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.11.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.11.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.11.i, align 8, !alias.scope !5856, !noalias !5861 %175 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.11.i, <4 x double> poison, <4 x i32> %176 = fmul <4 x double> %119, %175 %177 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.11.i, <4 x double> %176) #23 %178 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.11.i, %177 store <4 x double> %178, ptr %_3.i.i.i.i.i.i.i.i.us.i80.11.i, align 8, !alias.scope !5853, !noalias !5862 %179 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.11.i, %177 store <4 x double> %179, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.11.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i81.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 12 %_3.i.i.i.i.i.i.us.i82.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 12 %_3.i.i.i.i.us.i83.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 28 %a.sroa.0.0.copyload.us.i84.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.12.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.12.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.12.i, align 8, !alias.scope !5856, !noalias !5861 %180 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.12.i, <4 x double> poison, <4 x i32> %181 = fmul <4 x double> %119, %180 %182 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.12.i, <4 x double> %181) #23 %183 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.12.i, %182 store <4 x double> %183, ptr %_3.i.i.i.i.i.i.i.i.us.i80.12.i, align 8, !alias.scope !5853, !noalias !5862 %184 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.12.i, %182 store <4 x double> %184, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.12.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i81.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 13 %_3.i.i.i.i.i.i.us.i82.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 13 %_3.i.i.i.i.us.i83.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 29 %a.sroa.0.0.copyload.us.i84.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.13.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.13.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.13.i, align 8, !alias.scope !5856, !noalias !5861 %185 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.13.i, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %119, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.13.i, <4 x double> %186) #23 %188 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.13.i, %187 store <4 x double> %188, ptr %_3.i.i.i.i.i.i.i.i.us.i80.13.i, align 8, !alias.scope !5853, !noalias !5862 %189 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.13.i, %187 store <4 x double> %189, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.13.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i81.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 14 %_3.i.i.i.i.i.i.us.i82.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 14 %_3.i.i.i.i.us.i83.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 30 %a.sroa.0.0.copyload.us.i84.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.14.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.14.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.14.i, align 8, !alias.scope !5856, !noalias !5861 %190 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.14.i, <4 x double> poison, <4 x i32> %191 = fmul <4 x double> %119, %190 %192 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.14.i, <4 x double> %191) #23 %193 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.14.i, %192 store <4 x double> %193, ptr %_3.i.i.i.i.i.i.i.i.us.i80.14.i, align 8, !alias.scope !5853, !noalias !5862 %194 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.14.i, %192 store <4 x double> %194, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.14.i, align 8, !alias.scope !5853, !noalias !5862 %_3.i.i.i.i.i.i.i.i.us.i80.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i71.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i81.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i74.i, i64 15 %_3.i.i.i.i.i.i.us.i82.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 15 %_3.i.i.i.i.us.i83.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i73.i, i64 31 %a.sroa.0.0.copyload.us.i84.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i82.15.i, align 8, !alias.scope !5856, !noalias !5861 %_62.sroa.0.0.copyload.us.i85.15.i = load <4 x double>, ptr %_3.i.i.i.i.us.i83.15.i, align 8, !alias.scope !5856, !noalias !5861 %195 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i85.15.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %119, %195 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %118, <4 x double> %_62.sroa.0.0.copyload.us.i85.15.i, <4 x double> %196) #23 %198 = fadd <4 x double> %a.sroa.0.0.copyload.us.i84.15.i, %197 store <4 x double> %198, ptr %_3.i.i.i.i.i.i.i.i.us.i80.15.i, align 8, !alias.scope !5853, !noalias !5862 %199 = fsub <4 x double> %a.sroa.0.0.copyload.us.i84.15.i, %197 store <4 x double> %199, ptr %_3.i2.i.i.i.i.i.i.i.us.i81.15.i, align 8, !alias.scope !5853, !noalias !5862 %200 = add nuw nsw i64 %iter.sroa.38.0211.us.i69.i, 1 %exitcond250.not.i = icmp eq i64 %200, 8 br i1 %exitcond250.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit89.i, label %bb17.us.i68.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit89.i: ; preds = %bb17.us.i68.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5863) tail call void @llvm.experimental.noalias.scope.decl(metadata !5866) tail call void @llvm.experimental.noalias.scope.decl(metadata !5868) br label %bb17.us.i103.i bb17.us.i103.i: ; preds = %bb17.us.i103.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit89.i %iter.sroa.38.0211.us.i104.i = phi i64 [ %247, %bb17.us.i103.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit89.i ] %start1.i.i.i.i.i.i.i.i.us.i105.i = shl i64 %iter.sroa.38.0211.us.i104.i, 3 %data.i.i.i.i.i.i.i.i.us.i106.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i105.i %start1.i.i.i.i.us.i107.i = shl i64 %iter.sroa.38.0211.us.i104.i, 4 %data.i.i.i.i.i.i.us.i108.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i107.i %data.i5.i.i.i.i.i.i.i.us.i109.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i105.i %201 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i107.i, i64 1 %w1.0.us.i110.i = load double, ptr %201, align 8, !alias.scope !5868, !noalias !5870, !noundef !3 %202 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i107.i, i64 1, i32 1 %w1.1.us.i111.i = load double, ptr %202, align 8, !alias.scope !5868, !noalias !5870, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i112.i = insertelement <2 x double> poison, double %w1.0.us.i110.i, i64 0 %203 = insertelement <4 x double> poison, double %w1.1.us.i111.i, i64 0 %204 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 8 %205 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i112.i, <2 x double> poison, <4 x i32> zeroinitializer %206 = shufflevector <4 x double> %203, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i119.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i108.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.i = load <4 x double>, ptr %204, align 8, !alias.scope !5866, !noalias !5871 %207 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %206, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.i, <4 x double> %208) #23 %210 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.i, %209 store <4 x double> %210, ptr %data.i.i.i.i.i.i.i.i.us.i106.i, align 8, !alias.scope !5863, !noalias !5872 %211 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.i, %209 store <4 x double> %211, ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i116.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 1 %_3.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 1 %_3.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 9 %a.sroa.0.0.copyload.us.i119.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.1.i, align 8, !alias.scope !5866, !noalias !5871 %212 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.1.i, <4 x double> poison, <4 x i32> %213 = fmul <4 x double> %206, %212 %214 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.1.i, <4 x double> %213) #23 %215 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.1.i, %214 store <4 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.us.i115.1.i, align 8, !alias.scope !5863, !noalias !5872 %216 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.1.i, %214 store <4 x double> %216, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.1.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i116.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 2 %_3.i.i.i.i.i.i.us.i117.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 2 %_3.i.i.i.i.us.i118.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 10 %a.sroa.0.0.copyload.us.i119.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.2.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.2.i, align 8, !alias.scope !5866, !noalias !5871 %217 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.2.i, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %206, %217 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.2.i, <4 x double> %218) #23 %220 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.2.i, %219 store <4 x double> %220, ptr %_3.i.i.i.i.i.i.i.i.us.i115.2.i, align 8, !alias.scope !5863, !noalias !5872 %221 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.2.i, %219 store <4 x double> %221, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.2.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i116.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 3 %_3.i.i.i.i.i.i.us.i117.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 3 %_3.i.i.i.i.us.i118.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 11 %a.sroa.0.0.copyload.us.i119.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.3.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.3.i, align 8, !alias.scope !5866, !noalias !5871 %222 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.3.i, <4 x double> poison, <4 x i32> %223 = fmul <4 x double> %206, %222 %224 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.3.i, <4 x double> %223) #23 %225 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.3.i, %224 store <4 x double> %225, ptr %_3.i.i.i.i.i.i.i.i.us.i115.3.i, align 8, !alias.scope !5863, !noalias !5872 %226 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.3.i, %224 store <4 x double> %226, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.3.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i116.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 4 %_3.i.i.i.i.i.i.us.i117.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 4 %_3.i.i.i.i.us.i118.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 12 %a.sroa.0.0.copyload.us.i119.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.4.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.4.i, align 8, !alias.scope !5866, !noalias !5871 %227 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.4.i, <4 x double> poison, <4 x i32> %228 = fmul <4 x double> %206, %227 %229 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.4.i, <4 x double> %228) #23 %230 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.4.i, %229 store <4 x double> %230, ptr %_3.i.i.i.i.i.i.i.i.us.i115.4.i, align 8, !alias.scope !5863, !noalias !5872 %231 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.4.i, %229 store <4 x double> %231, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.4.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i116.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 5 %_3.i.i.i.i.i.i.us.i117.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 5 %_3.i.i.i.i.us.i118.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 13 %a.sroa.0.0.copyload.us.i119.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.5.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.5.i, align 8, !alias.scope !5866, !noalias !5871 %232 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.5.i, <4 x double> poison, <4 x i32> %233 = fmul <4 x double> %206, %232 %234 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.5.i, <4 x double> %233) #23 %235 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.5.i, %234 store <4 x double> %235, ptr %_3.i.i.i.i.i.i.i.i.us.i115.5.i, align 8, !alias.scope !5863, !noalias !5872 %236 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.5.i, %234 store <4 x double> %236, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.5.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i116.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 6 %_3.i.i.i.i.i.i.us.i117.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 6 %_3.i.i.i.i.us.i118.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 14 %a.sroa.0.0.copyload.us.i119.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.6.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.6.i, align 8, !alias.scope !5866, !noalias !5871 %237 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.6.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %206, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.6.i, <4 x double> %238) #23 %240 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.6.i, %239 store <4 x double> %240, ptr %_3.i.i.i.i.i.i.i.i.us.i115.6.i, align 8, !alias.scope !5863, !noalias !5872 %241 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.6.i, %239 store <4 x double> %241, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.6.i, align 8, !alias.scope !5863, !noalias !5872 %_3.i.i.i.i.i.i.i.i.us.i115.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i106.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i116.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i109.i, i64 7 %_3.i.i.i.i.i.i.us.i117.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 7 %_3.i.i.i.i.us.i118.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i108.i, i64 15 %a.sroa.0.0.copyload.us.i119.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i117.7.i, align 8, !alias.scope !5866, !noalias !5871 %_62.sroa.0.0.copyload.us.i120.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i118.7.i, align 8, !alias.scope !5866, !noalias !5871 %242 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i120.7.i, <4 x double> poison, <4 x i32> %243 = fmul <4 x double> %206, %242 %244 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %205, <4 x double> %_62.sroa.0.0.copyload.us.i120.7.i, <4 x double> %243) #23 %245 = fadd <4 x double> %a.sroa.0.0.copyload.us.i119.7.i, %244 store <4 x double> %245, ptr %_3.i.i.i.i.i.i.i.i.us.i115.7.i, align 8, !alias.scope !5863, !noalias !5872 %246 = fsub <4 x double> %a.sroa.0.0.copyload.us.i119.7.i, %244 store <4 x double> %246, ptr %_3.i2.i.i.i.i.i.i.i.us.i116.7.i, align 8, !alias.scope !5863, !noalias !5872 %247 = add nuw nsw i64 %iter.sroa.38.0211.us.i104.i, 1 %exitcond251.not.i = icmp eq i64 %247, 16 br i1 %exitcond251.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit124.i, label %bb17.us.i103.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit124.i: ; preds = %bb17.us.i103.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5873) tail call void @llvm.experimental.noalias.scope.decl(metadata !5876) tail call void @llvm.experimental.noalias.scope.decl(metadata !5878) br label %bb17.us.i138.i bb17.us.i138.i: ; preds = %bb17.us.i138.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit124.i %iter.sroa.38.0211.us.i139.i = phi i64 [ %274, %bb17.us.i138.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit124.i ] %start1.i.i.i.i.i.i.i.i.us.i140.i = shl i64 %iter.sroa.38.0211.us.i139.i, 2 %data.i.i.i.i.i.i.i.i.us.i141.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i140.i %start1.i.i.i.i.us.i142.i = shl i64 %iter.sroa.38.0211.us.i139.i, 3 %data.i.i.i.i.i.i.us.i143.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i142.i %data.i5.i.i.i.i.i.i.i.us.i144.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.us.i140.i %248 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i142.i, i64 1 %w1.0.us.i145.i = load double, ptr %248, align 8, !alias.scope !5878, !noalias !5880, !noundef !3 %249 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i142.i, i64 1, i32 1 %w1.1.us.i146.i = load double, ptr %249, align 8, !alias.scope !5878, !noalias !5880, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i147.i = insertelement <2 x double> poison, double %w1.0.us.i145.i, i64 0 %250 = insertelement <4 x double> poison, double %w1.1.us.i146.i, i64 0 %251 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 4 %252 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i147.i, <2 x double> poison, <4 x i32> zeroinitializer %253 = shufflevector <4 x double> %250, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i154.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i143.i, align 8, !alias.scope !5876, !noalias !5881 %_62.sroa.0.0.copyload.us.i155.i = load <4 x double>, ptr %251, align 8, !alias.scope !5876, !noalias !5881 %254 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i155.i, <4 x double> poison, <4 x i32> %255 = fmul <4 x double> %253, %254 %256 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %252, <4 x double> %_62.sroa.0.0.copyload.us.i155.i, <4 x double> %255) #23 %257 = fadd <4 x double> %a.sroa.0.0.copyload.us.i154.i, %256 store <4 x double> %257, ptr %data.i.i.i.i.i.i.i.i.us.i141.i, align 8, !alias.scope !5873, !noalias !5882 %258 = fsub <4 x double> %a.sroa.0.0.copyload.us.i154.i, %256 store <4 x double> %258, ptr %data.i5.i.i.i.i.i.i.i.us.i144.i, align 8, !alias.scope !5873, !noalias !5882 %_3.i.i.i.i.i.i.i.i.us.i150.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i141.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i151.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i144.i, i64 1 %_3.i.i.i.i.i.i.us.i152.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 1 %_3.i.i.i.i.us.i153.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 5 %a.sroa.0.0.copyload.us.i154.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i152.1.i, align 8, !alias.scope !5876, !noalias !5881 %_62.sroa.0.0.copyload.us.i155.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i153.1.i, align 8, !alias.scope !5876, !noalias !5881 %259 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i155.1.i, <4 x double> poison, <4 x i32> %260 = fmul <4 x double> %253, %259 %261 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %252, <4 x double> %_62.sroa.0.0.copyload.us.i155.1.i, <4 x double> %260) #23 %262 = fadd <4 x double> %a.sroa.0.0.copyload.us.i154.1.i, %261 store <4 x double> %262, ptr %_3.i.i.i.i.i.i.i.i.us.i150.1.i, align 8, !alias.scope !5873, !noalias !5882 %263 = fsub <4 x double> %a.sroa.0.0.copyload.us.i154.1.i, %261 store <4 x double> %263, ptr %_3.i2.i.i.i.i.i.i.i.us.i151.1.i, align 8, !alias.scope !5873, !noalias !5882 %_3.i.i.i.i.i.i.i.i.us.i150.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i141.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i151.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i144.i, i64 2 %_3.i.i.i.i.i.i.us.i152.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 2 %_3.i.i.i.i.us.i153.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 6 %a.sroa.0.0.copyload.us.i154.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i152.2.i, align 8, !alias.scope !5876, !noalias !5881 %_62.sroa.0.0.copyload.us.i155.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i153.2.i, align 8, !alias.scope !5876, !noalias !5881 %264 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i155.2.i, <4 x double> poison, <4 x i32> %265 = fmul <4 x double> %253, %264 %266 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %252, <4 x double> %_62.sroa.0.0.copyload.us.i155.2.i, <4 x double> %265) #23 %267 = fadd <4 x double> %a.sroa.0.0.copyload.us.i154.2.i, %266 store <4 x double> %267, ptr %_3.i.i.i.i.i.i.i.i.us.i150.2.i, align 8, !alias.scope !5873, !noalias !5882 %268 = fsub <4 x double> %a.sroa.0.0.copyload.us.i154.2.i, %266 store <4 x double> %268, ptr %_3.i2.i.i.i.i.i.i.i.us.i151.2.i, align 8, !alias.scope !5873, !noalias !5882 %_3.i.i.i.i.i.i.i.i.us.i150.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i141.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i151.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i144.i, i64 3 %_3.i.i.i.i.i.i.us.i152.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 3 %_3.i.i.i.i.us.i153.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i143.i, i64 7 %a.sroa.0.0.copyload.us.i154.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i152.3.i, align 8, !alias.scope !5876, !noalias !5881 %_62.sroa.0.0.copyload.us.i155.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i153.3.i, align 8, !alias.scope !5876, !noalias !5881 %269 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i155.3.i, <4 x double> poison, <4 x i32> %270 = fmul <4 x double> %253, %269 %271 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %252, <4 x double> %_62.sroa.0.0.copyload.us.i155.3.i, <4 x double> %270) #23 %272 = fadd <4 x double> %a.sroa.0.0.copyload.us.i154.3.i, %271 store <4 x double> %272, ptr %_3.i.i.i.i.i.i.i.i.us.i150.3.i, align 8, !alias.scope !5873, !noalias !5882 %273 = fsub <4 x double> %a.sroa.0.0.copyload.us.i154.3.i, %271 store <4 x double> %273, ptr %_3.i2.i.i.i.i.i.i.i.us.i151.3.i, align 8, !alias.scope !5873, !noalias !5882 %274 = add nuw nsw i64 %iter.sroa.38.0211.us.i139.i, 1 %exitcond252.not.i = icmp eq i64 %274, 32 br i1 %exitcond252.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit159.i, label %bb17.us.i138.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit159.i: ; preds = %bb17.us.i138.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5883) tail call void @llvm.experimental.noalias.scope.decl(metadata !5886) tail call void @llvm.experimental.noalias.scope.decl(metadata !5888) br label %bb17.us.i173.i bb17.us.i173.i: ; preds = %bb17.us.i173.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit159.i %iter.sroa.38.0211.us.i174.i = phi i64 [ %291, %bb17.us.i173.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit159.i ] %start1.i.i.i.i.i.i.i.i.us.i175.i = shl nuw i64 %iter.sroa.38.0211.us.i174.i, 1 %data.i.i.i.i.i.i.i.i.us.i176.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i175.i %start1.i.i.i.i.us.i177.i = shl i64 %iter.sroa.38.0211.us.i174.i, 2 %data.i.i.i.i.i.i.us.i178.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i177.i %data.i5.i.i.i.i.i.i.i.us.i179.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i175.i %275 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i177.i, i64 1 %w1.0.us.i180.i = load double, ptr %275, align 8, !alias.scope !5888, !noalias !5890, !noundef !3 %276 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i177.i, i64 1, i32 1 %w1.1.us.i181.i = load double, ptr %276, align 8, !alias.scope !5888, !noalias !5890, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i182.i = insertelement <2 x double> poison, double %w1.0.us.i180.i, i64 0 %277 = insertelement <4 x double> poison, double %w1.1.us.i181.i, i64 0 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i178.i, i64 2 %279 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i182.i, <2 x double> poison, <4 x i32> zeroinitializer %280 = shufflevector <4 x double> %277, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i189.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i178.i, align 8, !alias.scope !5886, !noalias !5891 %_62.sroa.0.0.copyload.us.i190.i = load <4 x double>, ptr %278, align 8, !alias.scope !5886, !noalias !5891 %281 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i190.i, <4 x double> poison, <4 x i32> %282 = fmul <4 x double> %280, %281 %283 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %279, <4 x double> %_62.sroa.0.0.copyload.us.i190.i, <4 x double> %282) #23 %284 = fadd <4 x double> %a.sroa.0.0.copyload.us.i189.i, %283 store <4 x double> %284, ptr %data.i.i.i.i.i.i.i.i.us.i176.i, align 8, !alias.scope !5883, !noalias !5892 %285 = fsub <4 x double> %a.sroa.0.0.copyload.us.i189.i, %283 store <4 x double> %285, ptr %data.i5.i.i.i.i.i.i.i.us.i179.i, align 8, !alias.scope !5883, !noalias !5892 %_3.i.i.i.i.i.i.i.i.us.i185.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i176.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i186.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i179.i, i64 1 %_3.i.i.i.i.i.i.us.i187.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i178.i, i64 1 %_3.i.i.i.i.us.i188.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i178.i, i64 3 %a.sroa.0.0.copyload.us.i189.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i187.1.i, align 8, !alias.scope !5886, !noalias !5891 %_62.sroa.0.0.copyload.us.i190.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i188.1.i, align 8, !alias.scope !5886, !noalias !5891 %286 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i190.1.i, <4 x double> poison, <4 x i32> %287 = fmul <4 x double> %280, %286 %288 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %279, <4 x double> %_62.sroa.0.0.copyload.us.i190.1.i, <4 x double> %287) #23 %289 = fadd <4 x double> %a.sroa.0.0.copyload.us.i189.1.i, %288 store <4 x double> %289, ptr %_3.i.i.i.i.i.i.i.i.us.i185.1.i, align 8, !alias.scope !5883, !noalias !5892 %290 = fsub <4 x double> %a.sroa.0.0.copyload.us.i189.1.i, %288 store <4 x double> %290, ptr %_3.i2.i.i.i.i.i.i.i.us.i186.1.i, align 8, !alias.scope !5883, !noalias !5892 %291 = add nuw nsw i64 %iter.sroa.38.0211.us.i174.i, 1 %exitcond253.not.i = icmp eq i64 %291, 64 br i1 %exitcond253.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit194.i, label %bb17.us.i173.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit194.i: ; preds = %bb17.us.i173.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5893) tail call void @llvm.experimental.noalias.scope.decl(metadata !5896) tail call void @llvm.experimental.noalias.scope.decl(metadata !5898) br label %bb17.us.i206.i bb17.us.i206.i: ; preds = %bb17.us.i206.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit194.i %iter.sroa.38.0211.us.i207.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit194.i ], [ %315, %bb17.us.i206.i ] %data.i.i.i.i.i.i.i.i.us.i208.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0211.us.i207.i %start1.i.i.i.i.us.i209.i = shl nuw i64 %iter.sroa.38.0211.us.i207.i, 1 %data.i.i.i.i.i.i.us.i210.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i209.i %data.i5.i.i.i.i.i.i.i.us.i211.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.38.0211.us.i207.i %292 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i209.i, i64 1 %w1.0.us.i212.i = load double, ptr %292, align 8, !alias.scope !5898, !noalias !5900, !noundef !3 %293 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i209.i, i64 1, i32 1 %w1.1.us.i213.i = load double, ptr %293, align 8, !alias.scope !5898, !noalias !5900, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i214.i = insertelement <2 x double> poison, double %w1.0.us.i212.i, i64 0 %294 = insertelement <4 x double> poison, double %w1.1.us.i213.i, i64 0 %295 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i210.i, i64 1 %296 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i214.i, <2 x double> poison, <4 x i32> zeroinitializer %297 = shufflevector <4 x double> %294, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i221.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i210.i, align 8, !alias.scope !5896, !noalias !5901 %_62.sroa.0.0.copyload.us.i222.i = load <4 x double>, ptr %295, align 8, !alias.scope !5896, !noalias !5901 %298 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i222.i, <4 x double> poison, <4 x i32> %299 = fmul <4 x double> %297, %298 %300 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %296, <4 x double> %_62.sroa.0.0.copyload.us.i222.i, <4 x double> %299) #23 %301 = fadd <4 x double> %a.sroa.0.0.copyload.us.i221.i, %300 store <4 x double> %301, ptr %data.i.i.i.i.i.i.i.i.us.i208.i, align 8, !alias.scope !5893, !noalias !5902 %302 = fsub <4 x double> %a.sroa.0.0.copyload.us.i221.i, %300 store <4 x double> %302, ptr %data.i5.i.i.i.i.i.i.i.us.i211.i, align 8, !alias.scope !5893, !noalias !5902 %303 = or disjoint i64 %iter.sroa.38.0211.us.i207.i, 1 %data.i.i.i.i.i.i.i.i.us.i208.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %303 %start1.i.i.i.i.us.i209.i.1 = shl nuw i64 %303, 1 %data.i.i.i.i.i.i.us.i210.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i209.i.1 %data.i5.i.i.i.i.i.i.i.us.i211.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %303 %304 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i209.i.1, i64 1 %w1.0.us.i212.i.1 = load double, ptr %304, align 8, !alias.scope !5898, !noalias !5900, !noundef !3 %305 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i209.i.1, i64 1, i32 1 %w1.1.us.i213.i.1 = load double, ptr %305, align 8, !alias.scope !5898, !noalias !5900, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i214.i.1 = insertelement <2 x double> poison, double %w1.0.us.i212.i.1, i64 0 %306 = insertelement <4 x double> poison, double %w1.1.us.i213.i.1, i64 0 %307 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i210.i.1, i64 1 %308 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i214.i.1, <2 x double> poison, <4 x i32> zeroinitializer %309 = shufflevector <4 x double> %306, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i221.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i210.i.1, align 8, !alias.scope !5896, !noalias !5901 %_62.sroa.0.0.copyload.us.i222.i.1 = load <4 x double>, ptr %307, align 8, !alias.scope !5896, !noalias !5901 %310 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i222.i.1, <4 x double> poison, <4 x i32> %311 = fmul <4 x double> %309, %310 %312 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %308, <4 x double> %_62.sroa.0.0.copyload.us.i222.i.1, <4 x double> %311) #23 %313 = fadd <4 x double> %a.sroa.0.0.copyload.us.i221.i.1, %312 store <4 x double> %313, ptr %data.i.i.i.i.i.i.i.i.us.i208.i.1, align 8, !alias.scope !5893, !noalias !5902 %314 = fsub <4 x double> %a.sroa.0.0.copyload.us.i221.i.1, %312 store <4 x double> %314, ptr %data.i5.i.i.i.i.i.i.i.us.i211.i.1, align 8, !alias.scope !5893, !noalias !5902 %315 = add nuw nsw i64 %iter.sroa.38.0211.us.i207.i, 2 %exitcond254.not.i.1 = icmp eq i64 %315, 128 br i1 %exitcond254.not.i.1, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit226.i, label %bb17.us.i206.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit226.i: ; preds = %bb17.us.i206.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5903) tail call void @llvm.experimental.noalias.scope.decl(metadata !5906) tail call void @llvm.experimental.noalias.scope.decl(metadata !5908) %316 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit226.i %iter.sroa.22.0123.i.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit226.i ], [ %328, %bb9.i.i ] %317 = or disjoint i64 %iter.sroa.22.0123.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %316, i64 %iter.sroa.22.0123.i.i %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5906, !noalias !5910 %318 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i, i64 1 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %318, align 8, !alias.scope !5906, !noalias !5910 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5908, !noalias !5911 %319 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %320 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %321 = shufflevector <4 x double> %320, <4 x double> poison, <4 x i32> %322 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %323 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %324 = fmul <4 x double> %323, %321 %325 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %322, <4 x double> %320, <4 x double> %324) #23 %326 = fadd <4 x double> %319, %325 store <4 x double> %326, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5903, !noalias !5912 %327 = fsub <4 x double> %319, %325 store <4 x double> %327, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5903, !noalias !5912 %328 = add nuw nsw i64 %iter.sroa.22.0123.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %317 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %317 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %317 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %316, i64 %317 %ab0.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5906, !noalias !5910 %329 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %317, i64 1 %ab1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %329, align 8, !alias.scope !5906, !noalias !5910 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !5908, !noalias !5911 %330 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %331 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %332 = shufflevector <4 x double> %331, <4 x double> poison, <4 x i32> %333 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %334 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %335 = fmul <4 x double> %334, %332 %336 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %333, <4 x double> %331, <4 x double> %335) #23 %337 = fadd <4 x double> %330, %336 store <4 x double> %337, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5903, !noalias !5912 %338 = fsub <4 x double> %330, %336 store <4 x double> %338, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5903, !noalias !5912 %exitcond.not.i229.i.1 = icmp eq i64 %328, 128 br i1 %exitcond.not.i229.i.1, label %_ZN4pulp3x862V39vectorize6__impl17ha81d97481a669378E.exit, label %bb9.i.i _ZN4pulp3x862V39vectorize6__impl17ha81d97481a669378E.exit: ; preds = %bb9.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5830 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf5ac62e6f5e367c2E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5913 store i64 256, ptr %n.i.i, align 8, !noalias !5913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5913 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5913 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5913 store ptr null, ptr %_16.i.i, align 8, !noalias !5913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5913 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5913 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5913 store ptr null, ptr %_24.i.i, align 8, !noalias !5913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5913 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5913 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5913 store ptr null, ptr %_32.i.i, align 8, !noalias !5913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5913 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5913 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5913 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d5aac2d18767b72E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5913 store ptr null, ptr %_40.i.i, align 8, !noalias !5913 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d5aac2d18767b72E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5913 tail call void @llvm.experimental.noalias.scope.decl(metadata !5918) tail call void @llvm.experimental.noalias.scope.decl(metadata !5921) tail call void @llvm.experimental.noalias.scope.decl(metadata !5923) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 16 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 8 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 24 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 48 %8 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 40 %9 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 56 %10 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %11 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 80 %12 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 72 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 88 %14 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 112 %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 104 %16 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 120 %17 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 %18 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 16 %20 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 8 %21 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 24 %22 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 48 %23 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 40 %24 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 56 %25 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 96 %26 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 80 %27 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 72 %28 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 88 %29 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 112 %30 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 104 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 120 br label %bb39.i.i bb39.i.i: ; preds = %bb39.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d5aac2d18767b72E.exit.i" %iter.sroa.218.05723.i.i = phi i64 [ %32, %bb39.i.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d5aac2d18767b72E.exit.i" ] %32 = add nuw nsw i64 %iter.sroa.218.05723.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %20, i64 %iter.sroa.218.05723.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %19, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %21, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %18, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %23, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %22, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %24, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %17, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %27, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %26, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %28, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %25, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %30, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i66.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %29, i64 %iter.sroa.218.05723.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter.sroa.218.05723.i.i %x0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %x9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %xa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %xb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %xc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %xd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %xe.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %xf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5918, !noalias !5925 %33 = fadd <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %34 = fsub <4 x double> %x0.sroa.0.0.copyload.i.i, %x8.sroa.0.0.copyload.i.i %35 = fadd <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %36 = fsub <4 x double> %x4.sroa.0.0.copyload.i.i, %xc.sroa.0.0.copyload.i.i %37 = fadd <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %38 = fsub <4 x double> %x2.sroa.0.0.copyload.i.i, %xa.sroa.0.0.copyload.i.i %39 = fadd <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %40 = fsub <4 x double> %x6.sroa.0.0.copyload.i.i, %xe.sroa.0.0.copyload.i.i %41 = fadd <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %42 = fsub <4 x double> %x1.sroa.0.0.copyload.i.i, %x9.sroa.0.0.copyload.i.i %43 = fadd <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %44 = fsub <4 x double> %x5.sroa.0.0.copyload.i.i, %xd.sroa.0.0.copyload.i.i %45 = fadd <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %46 = fsub <4 x double> %x3.sroa.0.0.copyload.i.i, %xb.sroa.0.0.copyload.i.i %47 = fadd <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %48 = fsub <4 x double> %x7.sroa.0.0.copyload.i.i, %xf.sroa.0.0.copyload.i.i %49 = bitcast <4 x double> %36 to <4 x i64> %50 = bitcast <4 x double> %40 to <4 x i64> %51 = bitcast <4 x double> %44 to <4 x i64> %52 = bitcast <4 x double> %48 to <4 x i64> %53 = xor <4 x i64> %49, %54 = bitcast <4 x i64> %53 to <4 x double> %55 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> %56 = xor <4 x i64> %50, %57 = bitcast <4 x i64> %56 to <4 x double> %58 = shufflevector <4 x double> %57, <4 x double> poison, <4 x i32> %59 = xor <4 x i64> %51, %60 = bitcast <4 x i64> %59 to <4 x double> %61 = shufflevector <4 x double> %60, <4 x double> poison, <4 x i32> %62 = xor <4 x i64> %52, %63 = bitcast <4 x i64> %62 to <4 x double> %64 = shufflevector <4 x double> %63, <4 x double> poison, <4 x i32> %65 = fadd <4 x double> %33, %35 %66 = fsub <4 x double> %34, %55 %67 = fsub <4 x double> %33, %35 %68 = fadd <4 x double> %34, %55 %69 = fadd <4 x double> %37, %39 %70 = fsub <4 x double> %38, %58 %71 = fsub <4 x double> %37, %39 %72 = fadd <4 x double> %38, %58 %73 = fadd <4 x double> %41, %43 %74 = fsub <4 x double> %42, %61 %75 = fsub <4 x double> %41, %43 %76 = fadd <4 x double> %42, %61 %77 = fadd <4 x double> %45, %47 %78 = fsub <4 x double> %46, %64 %79 = fsub <4 x double> %45, %47 %80 = fadd <4 x double> %46, %64 %81 = bitcast <4 x double> %70 to <4 x i64> %82 = xor <4 x i64> %81, %83 = bitcast <4 x i64> %82 to <4 x double> %84 = shufflevector <4 x double> %83, <4 x double> poison, <4 x i32> %85 = fadd <4 x double> %70, %84 %86 = fmul <4 x double> %85, %87 = bitcast <4 x double> %71 to <4 x i64> %88 = xor <4 x i64> %87, %89 = bitcast <4 x i64> %88 to <4 x double> %90 = shufflevector <4 x double> %89, <4 x double> poison, <4 x i32> %91 = bitcast <4 x double> %72 to <4 x i64> %92 = xor <4 x i64> %91, %93 = bitcast <4 x i64> %92 to <4 x double> %94 = shufflevector <4 x double> %93, <4 x double> poison, <4 x i32> %95 = fadd <4 x double> %72, %94 %96 = fmul <4 x double> %95, %97 = fadd <4 x double> %65, %69 %98 = fadd <4 x double> %66, %86 %99 = fsub <4 x double> %67, %90 %100 = fsub <4 x double> %68, %96 %101 = fsub <4 x double> %65, %69 %102 = fsub <4 x double> %66, %86 %103 = fadd <4 x double> %67, %90 %104 = fadd <4 x double> %68, %96 %105 = bitcast <4 x double> %78 to <4 x i64> %106 = xor <4 x i64> %105, %107 = bitcast <4 x i64> %106 to <4 x double> %108 = shufflevector <4 x double> %107, <4 x double> poison, <4 x i32> %109 = fadd <4 x double> %78, %108 %110 = fmul <4 x double> %109, %111 = bitcast <4 x double> %79 to <4 x i64> %112 = xor <4 x i64> %111, %113 = bitcast <4 x i64> %112 to <4 x double> %114 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> %115 = bitcast <4 x double> %80 to <4 x i64> %116 = xor <4 x i64> %115, %117 = bitcast <4 x i64> %116 to <4 x double> %118 = shufflevector <4 x double> %117, <4 x double> poison, <4 x i32> %119 = fadd <4 x double> %80, %118 %120 = fmul <4 x double> %119, %121 = fadd <4 x double> %73, %77 %122 = fadd <4 x double> %74, %110 %123 = fsub <4 x double> %75, %114 %124 = fsub <4 x double> %76, %120 %125 = fsub <4 x double> %73, %77 %126 = fsub <4 x double> %74, %110 %127 = fadd <4 x double> %75, %114 %128 = fadd <4 x double> %76, %120 %129 = fmul <4 x double> %122, %130 = shufflevector <4 x double> %129, <4 x double> poison, <4 x i32> %131 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %122, <4 x double> %130) #23 %132 = bitcast <4 x double> %123 to <4 x i64> %133 = xor <4 x i64> %132, %134 = bitcast <4 x i64> %133 to <4 x double> %135 = shufflevector <4 x double> %134, <4 x double> poison, <4 x i32> %136 = fmul <4 x double> %124, %137 = shufflevector <4 x double> %136, <4 x double> poison, <4 x i32> %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %124, <4 x double> %137) #23 %139 = bitcast <4 x double> %125 to <4 x i64> %140 = xor <4 x i64> %139, %141 = bitcast <4 x i64> %140 to <4 x double> %142 = shufflevector <4 x double> %141, <4 x double> poison, <4 x i32> %143 = fmul <4 x double> %126, %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %126, <4 x double> %144) #23 %146 = bitcast <4 x double> %127 to <4 x i64> %147 = xor <4 x i64> %146, %148 = bitcast <4 x i64> %147 to <4 x double> %149 = shufflevector <4 x double> %148, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %128, %151 = shufflevector <4 x double> %150, <4 x double> poison, <4 x i32> %152 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %128, <4 x double> %151) #23 %.in5720.i.i = fadd <4 x double> %123, %135 %153 = fmul <4 x double> %.in5720.i.i, %.in.i.i = fadd <4 x double> %127, %149 %154 = fmul <4 x double> %.in.i.i, %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i28.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w4.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w5.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w6.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w7.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w8.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %w9.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %wa.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %wb.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %wc.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %wd.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i63.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %we.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i66.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %wf.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5923, !noalias !5926 %155 = fadd <4 x double> %97, %121 %156 = fadd <4 x double> %131, %98 %157 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> %158 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %159 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %159, %157 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %158, <4 x double> %156, <4 x double> %160) #23 %162 = fadd <4 x double> %99, %153 %163 = shufflevector <4 x double> %162, <4 x double> poison, <4 x i32> %164 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %165 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %165, %163 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %162, <4 x double> %166) #23 %168 = fadd <4 x double> %138, %100 %169 = shufflevector <4 x double> %168, <4 x double> poison, <4 x i32> %170 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %171 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %172 = fmul <4 x double> %171, %169 %173 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %170, <4 x double> %168, <4 x double> %172) #23 %174 = fsub <4 x double> %101, %142 %175 = shufflevector <4 x double> %174, <4 x double> poison, <4 x i32> %176 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %177 = shufflevector <4 x double> %w4.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %175, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %176, <4 x double> %174, <4 x double> %178) #23 %180 = fsub <4 x double> %102, %145 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %183 = shufflevector <4 x double> %w5.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %184 = fmul <4 x double> %183, %181 %185 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %182, <4 x double> %180, <4 x double> %184) #23 %186 = fsub <4 x double> %103, %154 %187 = shufflevector <4 x double> %186, <4 x double> poison, <4 x i32> %188 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %189 = shufflevector <4 x double> %w6.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %190 = fmul <4 x double> %189, %187 %191 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %188, <4 x double> %186, <4 x double> %190) #23 %192 = fsub <4 x double> %104, %152 %193 = shufflevector <4 x double> %192, <4 x double> poison, <4 x i32> %194 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %195 = shufflevector <4 x double> %w7.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %196 = fmul <4 x double> %195, %193 %197 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %194, <4 x double> %192, <4 x double> %196) #23 %198 = fsub <4 x double> %97, %121 %199 = shufflevector <4 x double> %198, <4 x double> poison, <4 x i32> %200 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %201 = shufflevector <4 x double> %w8.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %199, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %198, <4 x double> %202) #23 %204 = fsub <4 x double> %98, %131 %205 = shufflevector <4 x double> %204, <4 x double> poison, <4 x i32> %206 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %207 = shufflevector <4 x double> %w9.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %208 = fmul <4 x double> %205, %207 %209 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %206, <4 x double> %204, <4 x double> %208) #23 %210 = fsub <4 x double> %99, %153 %211 = shufflevector <4 x double> %210, <4 x double> poison, <4 x i32> %212 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %213 = shufflevector <4 x double> %wa.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %211, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %212, <4 x double> %210, <4 x double> %214) #23 %216 = fsub <4 x double> %100, %138 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %219 = shufflevector <4 x double> %wb.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %220 = fmul <4 x double> %217, %219 %221 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %218, <4 x double> %216, <4 x double> %220) #23 %222 = fadd <4 x double> %101, %142 %223 = shufflevector <4 x double> %222, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = shufflevector <4 x double> %wc.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %223, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %224, <4 x double> %222, <4 x double> %226) #23 %228 = fadd <4 x double> %145, %102 %229 = shufflevector <4 x double> %228, <4 x double> poison, <4 x i32> %230 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %231 = shufflevector <4 x double> %wd.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %232 = fmul <4 x double> %229, %231 %233 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %230, <4 x double> %228, <4 x double> %232) #23 %234 = fadd <4 x double> %103, %154 %235 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> %236 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %237 = shufflevector <4 x double> %we.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %238 = fmul <4 x double> %235, %237 %239 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %236, <4 x double> %234, <4 x double> %238) #23 %240 = fadd <4 x double> %152, %104 %241 = shufflevector <4 x double> %240, <4 x double> poison, <4 x i32> %242 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %243 = shufflevector <4 x double> %wf.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %244 = fmul <4 x double> %241, %243 %245 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %240, <4 x double> %244) #23 %246 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %247 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %248 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 1 %249 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %250 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 2 %251 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %252 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 3 %253 = shufflevector <4 x double> %155, <4 x double> %161, <4 x i32> %254 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 4 %255 = shufflevector <4 x double> %167, <4 x double> %173, <4 x i32> %256 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 5 %257 = shufflevector <4 x double> %179, <4 x double> %185, <4 x i32> %258 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 6 %259 = shufflevector <4 x double> %191, <4 x double> %197, <4 x i32> %260 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 7 store <4 x double> %246, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5921, !noalias !5927 store <4 x double> %247, ptr %248, align 8, !alias.scope !5921, !noalias !5927 store <4 x double> %249, ptr %250, align 8, !alias.scope !5921, !noalias !5927 store <4 x double> %251, ptr %252, align 8, !alias.scope !5921, !noalias !5927 %261 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> store <4 x double> %261, ptr %254, align 8, !alias.scope !5921, !noalias !5927 %262 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> store <4 x double> %262, ptr %256, align 8, !alias.scope !5921, !noalias !5927 %263 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> store <4 x double> %263, ptr %258, align 8, !alias.scope !5921, !noalias !5927 %264 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> store <4 x double> %264, ptr %260, align 8, !alias.scope !5921, !noalias !5927 %265 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 8 store <4 x double> %253, ptr %265, align 8, !alias.scope !5921, !noalias !5927 %266 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 9 store <4 x double> %255, ptr %266, align 8, !alias.scope !5921, !noalias !5927 %267 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 10 store <4 x double> %257, ptr %267, align 8, !alias.scope !5921, !noalias !5927 %268 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 11 store <4 x double> %259, ptr %268, align 8, !alias.scope !5921, !noalias !5927 %269 = shufflevector <4 x double> %203, <4 x double> %209, <4 x i32> %270 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 12 store <4 x double> %269, ptr %270, align 8, !alias.scope !5921, !noalias !5927 %271 = shufflevector <4 x double> %215, <4 x double> %221, <4 x i32> %272 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 13 store <4 x double> %271, ptr %272, align 8, !alias.scope !5921, !noalias !5927 %273 = shufflevector <4 x double> %227, <4 x double> %233, <4 x i32> %274 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 14 store <4 x double> %273, ptr %274, align 8, !alias.scope !5921, !noalias !5927 %275 = shufflevector <4 x double> %239, <4 x double> %245, <4 x i32> %276 = getelementptr inbounds [16 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.218.05723.i.i, i64 15 store <4 x double> %275, ptr %276, align 8, !alias.scope !5921, !noalias !5927 %exitcond.not.i.i = icmp eq i64 %32, 8 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i, label %bb39.i.i _ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i: ; preds = %bb39.i.i %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 16 %280 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 8 %281 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 24 %282 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 48 %283 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 40 %284 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 56 %285 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %286 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 80 %287 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 72 %288 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 88 %289 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 112 %290 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 104 %291 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 120 br label %bb62.i.i.i.i bb62.i.i.i.i: ; preds = %bb62.i.i.i.i, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i %iter22.i.i.i.sroa.218.01492.i = phi i64 [ 0, %_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E.exit.i ], [ %292, %bb62.i.i.i.i ] %292 = add nuw nsw i64 %iter22.i.i.i.sroa.218.01492.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %280, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %281, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %283, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %282, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %284, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %287, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %286, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %288, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %285, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %290, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %289, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %291, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %8, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %9, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %12, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %11, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %10, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i.i.i75.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %14, i64 %iter22.i.i.i.sroa.218.01492.i %_3.i.i.i.i.i78.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %16, i64 %iter22.i.i.i.sroa.218.01492.i %_208.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_209.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_210.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_211.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_212.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_213.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_214.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_215.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_216.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_217.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_218.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_219.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_220.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_221.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_222.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %_223.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !5913 %293 = fadd <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %294 = fsub <4 x double> %_208.i.i.i.sroa.0.0.copyload.i, %_216.i.i.i.sroa.0.0.copyload.i %295 = fadd <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %296 = fsub <4 x double> %_212.i.i.i.sroa.0.0.copyload.i, %_220.i.i.i.sroa.0.0.copyload.i %297 = fadd <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %298 = fsub <4 x double> %_210.i.i.i.sroa.0.0.copyload.i, %_218.i.i.i.sroa.0.0.copyload.i %299 = fadd <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %300 = fsub <4 x double> %_214.i.i.i.sroa.0.0.copyload.i, %_222.i.i.i.sroa.0.0.copyload.i %301 = fadd <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %302 = fsub <4 x double> %_209.i.i.i.sroa.0.0.copyload.i, %_217.i.i.i.sroa.0.0.copyload.i %303 = fadd <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %304 = fsub <4 x double> %_213.i.i.i.sroa.0.0.copyload.i, %_221.i.i.i.sroa.0.0.copyload.i %305 = fadd <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %306 = fsub <4 x double> %_211.i.i.i.sroa.0.0.copyload.i, %_219.i.i.i.sroa.0.0.copyload.i %307 = fadd <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %308 = fsub <4 x double> %_215.i.i.i.sroa.0.0.copyload.i, %_223.i.i.i.sroa.0.0.copyload.i %309 = bitcast <4 x double> %296 to <4 x i64> %310 = xor <4 x i64> %309, %311 = bitcast <4 x i64> %310 to <4 x double> %312 = shufflevector <4 x double> %311, <4 x double> poison, <4 x i32> %313 = bitcast <4 x double> %300 to <4 x i64> %314 = xor <4 x i64> %313, %315 = bitcast <4 x i64> %314 to <4 x double> %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = bitcast <4 x double> %304 to <4 x i64> %318 = xor <4 x i64> %317, %319 = bitcast <4 x i64> %318 to <4 x double> %320 = shufflevector <4 x double> %319, <4 x double> poison, <4 x i32> %321 = bitcast <4 x double> %308 to <4 x i64> %322 = xor <4 x i64> %321, %323 = bitcast <4 x i64> %322 to <4 x double> %324 = shufflevector <4 x double> %323, <4 x double> poison, <4 x i32> %325 = fadd <4 x double> %293, %295 %326 = fsub <4 x double> %294, %312 %327 = fsub <4 x double> %293, %295 %328 = fadd <4 x double> %294, %312 %329 = fadd <4 x double> %297, %299 %330 = fsub <4 x double> %298, %316 %331 = fsub <4 x double> %297, %299 %332 = fadd <4 x double> %298, %316 %333 = fadd <4 x double> %301, %303 %334 = fsub <4 x double> %302, %320 %335 = fsub <4 x double> %301, %303 %336 = fadd <4 x double> %302, %320 %337 = fadd <4 x double> %305, %307 %338 = fsub <4 x double> %306, %324 %339 = fsub <4 x double> %305, %307 %340 = fadd <4 x double> %306, %324 %341 = bitcast <4 x double> %330 to <4 x i64> %342 = xor <4 x i64> %341, %343 = bitcast <4 x i64> %342 to <4 x double> %344 = shufflevector <4 x double> %343, <4 x double> poison, <4 x i32> %345 = fadd <4 x double> %330, %344 %346 = fmul <4 x double> %345, %347 = bitcast <4 x double> %331 to <4 x i64> %348 = xor <4 x i64> %347, %349 = bitcast <4 x i64> %348 to <4 x double> %350 = shufflevector <4 x double> %349, <4 x double> poison, <4 x i32> %351 = bitcast <4 x double> %332 to <4 x i64> %352 = xor <4 x i64> %351, %353 = bitcast <4 x i64> %352 to <4 x double> %354 = shufflevector <4 x double> %353, <4 x double> poison, <4 x i32> %355 = fadd <4 x double> %332, %354 %356 = fmul <4 x double> %355, %357 = fadd <4 x double> %325, %329 %358 = fadd <4 x double> %326, %346 %359 = fsub <4 x double> %327, %350 %360 = fsub <4 x double> %328, %356 %361 = fsub <4 x double> %325, %329 %362 = fsub <4 x double> %326, %346 %363 = fadd <4 x double> %327, %350 %364 = fadd <4 x double> %328, %356 %365 = bitcast <4 x double> %338 to <4 x i64> %366 = xor <4 x i64> %365, %367 = bitcast <4 x i64> %366 to <4 x double> %368 = shufflevector <4 x double> %367, <4 x double> poison, <4 x i32> %369 = fadd <4 x double> %338, %368 %370 = fmul <4 x double> %369, %371 = bitcast <4 x double> %339 to <4 x i64> %372 = xor <4 x i64> %371, %373 = bitcast <4 x i64> %372 to <4 x double> %374 = shufflevector <4 x double> %373, <4 x double> poison, <4 x i32> %375 = bitcast <4 x double> %340 to <4 x i64> %376 = xor <4 x i64> %375, %377 = bitcast <4 x i64> %376 to <4 x double> %378 = shufflevector <4 x double> %377, <4 x double> poison, <4 x i32> %379 = fadd <4 x double> %340, %378 %380 = fmul <4 x double> %379, %381 = fadd <4 x double> %333, %337 %382 = fadd <4 x double> %334, %370 %383 = fsub <4 x double> %335, %374 %384 = fsub <4 x double> %336, %380 %385 = fsub <4 x double> %333, %337 %386 = fsub <4 x double> %334, %370 %387 = fadd <4 x double> %335, %374 %388 = fadd <4 x double> %336, %380 %389 = fmul <4 x double> %382, %390 = shufflevector <4 x double> %389, <4 x double> poison, <4 x i32> %391 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %382, <4 x double> %390) #23 %392 = bitcast <4 x double> %383 to <4 x i64> %393 = xor <4 x i64> %392, %394 = bitcast <4 x i64> %393 to <4 x double> %395 = shufflevector <4 x double> %394, <4 x double> poison, <4 x i32> %396 = fadd <4 x double> %383, %395 %397 = fmul <4 x double> %396, %398 = fmul <4 x double> %384, %399 = shufflevector <4 x double> %398, <4 x double> poison, <4 x i32> %400 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %384, <4 x double> %399) #23 %401 = bitcast <4 x double> %385 to <4 x i64> %402 = xor <4 x i64> %401, %403 = bitcast <4 x i64> %402 to <4 x double> %404 = shufflevector <4 x double> %403, <4 x double> poison, <4 x i32> %405 = fmul <4 x double> %386, %406 = shufflevector <4 x double> %405, <4 x double> poison, <4 x i32> %407 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %386, <4 x double> %406) #23 %408 = bitcast <4 x double> %387 to <4 x i64> %409 = xor <4 x i64> %408, %410 = bitcast <4 x i64> %409 to <4 x double> %411 = shufflevector <4 x double> %410, <4 x double> poison, <4 x i32> %412 = fadd <4 x double> %387, %411 %413 = fmul <4 x double> %412, %414 = fmul <4 x double> %388, %415 = shufflevector <4 x double> %414, <4 x double> poison, <4 x i32> %416 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> , <4 x double> %388, <4 x double> %415) #23 %417 = fadd <4 x double> %357, %381 %418 = fadd <4 x double> %391, %358 %419 = fadd <4 x double> %359, %397 %420 = fadd <4 x double> %400, %360 %421 = fsub <4 x double> %361, %404 %422 = fsub <4 x double> %362, %407 %423 = fsub <4 x double> %363, %413 %424 = fsub <4 x double> %364, %416 %425 = fsub <4 x double> %357, %381 %426 = fsub <4 x double> %358, %391 %427 = fsub <4 x double> %359, %397 %428 = fsub <4 x double> %360, %400 %429 = fadd <4 x double> %361, %404 %430 = fadd <4 x double> %407, %362 %431 = fadd <4 x double> %363, %413 %432 = fadd <4 x double> %416, %364 store <4 x double> %417, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i33.i.i.i.i, align 8, !noalias !5913 store <4 x double> %418, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i36.i.i.i.i, align 8, !noalias !5913 store <4 x double> %419, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i39.i.i.i.i, align 8, !noalias !5913 store <4 x double> %420, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i42.i.i.i.i, align 8, !noalias !5913 store <4 x double> %421, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i45.i.i.i.i, align 8, !noalias !5913 store <4 x double> %422, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i48.i.i.i.i, align 8, !noalias !5913 store <4 x double> %423, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i51.i.i.i.i, align 8, !noalias !5913 store <4 x double> %424, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i54.i.i.i.i, align 8, !noalias !5913 store <4 x double> %425, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i57.i.i.i.i, align 8, !noalias !5913 store <4 x double> %426, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i60.i.i.i.i, align 8, !noalias !5913 store <4 x double> %427, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i63.i.i.i.i, align 8, !noalias !5913 store <4 x double> %428, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i66.i.i.i.i, align 8, !noalias !5913 store <4 x double> %429, ptr %_3.i.i.i.i.i.i.i.i.i.i.i69.i.i.i.i, align 8, !noalias !5913 store <4 x double> %430, ptr %_3.i.i.i.i.i.i.i.i.i72.i.i.i.i, align 8, !noalias !5913 store <4 x double> %431, ptr %_3.i.i.i.i.i.i.i75.i.i.i.i, align 8, !noalias !5913 store <4 x double> %432, ptr %_3.i.i.i.i.i78.i.i.i.i, align 8, !noalias !5913 %exitcond.not.i = icmp eq i64 %292, 8 br i1 %exitcond.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h7d96d29c50f17a62E.exit, label %bb62.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h7d96d29c50f17a62E.exit: ; preds = %bb62.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5913 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf621022a85b02b44E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif16::Dif16>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17hc6dce19fdfcbbc8bE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf7165141c512fe81E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5928 store i64 4, ptr %n.i, align 8, !noalias !5928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5928 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5928 %_12.i = icmp eq i64 %buf.1, 4 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5928 store ptr null, ptr %_16.i, align 8, !noalias !5928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5928 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5928 %_20.i = icmp eq i64 %scratch.1, 4 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5928 store ptr null, ptr %_24.i, align 8, !noalias !5928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5928 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5928 %_28.i = icmp eq i64 %w_init.1, 4 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5928 store ptr null, ptr %_32.i, align 8, !noalias !5928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5928 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5928 store i64 %w.1, ptr %_34.i, align 8, !noalias !5928 %_36.i = icmp eq i64 %w.1, 4 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5928 store ptr null, ptr %_40.i, align 8, !noalias !5928 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5928 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %wide.vec = load <4 x double>, ptr %buf.0, align 8, !noalias !5931 %strided.vec = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> %strided.vec1 = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> %wide.vec2 = load <4 x double>, ptr %0, align 8, !noalias !5931 %strided.vec3 = shufflevector <4 x double> %wide.vec2, <4 x double> poison, <2 x i32> %strided.vec4 = shufflevector <4 x double> %wide.vec2, <4 x double> poison, <2 x i32> %1 = fadd <2 x double> %strided.vec, %strided.vec3 %2 = fadd <2 x double> %strided.vec1, %strided.vec4 %3 = fsub <2 x double> %strided.vec, %strided.vec3 %4 = fsub <2 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <2 x double> %1, <2 x double> %2, <4 x i32> store <4 x double> %interleaved.vec, ptr %scratch.0, align 8, !noalias !5931 %5 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %interleaved.vec5 = shufflevector <2 x double> %3, <2 x double> %4, <4 x i32> store <4 x double> %interleaved.vec5, ptr %5, align 8, !noalias !5931 %6 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1 %wide.masked.gather = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %6, i32 8, <2 x i1> , <2 x double> poison), !noalias !5928 %7 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, <2 x i64> , i64 1, i32 1 %wide.masked.gather12 = tail call <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr> %7, i32 8, <2 x i1> , <2 x double> poison), !noalias !5928 %8 = fneg <2 x double> %wide.masked.gather12 %wide.vec13 = load <8 x double>, ptr %scratch.0, align 8, !noalias !5928 %strided.vec14 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <2 x i32> %strided.vec15 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <2 x i32> %strided.vec16 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <2 x i32> %strided.vec17 = shufflevector <8 x double> %wide.vec13, <8 x double> poison, <2 x i32> %9 = fmul <2 x double> %strided.vec17, %8 %10 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %strided.vec16, <2 x double> %9) %11 = fmul <2 x double> %wide.masked.gather12, %strided.vec16 %12 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %wide.masked.gather, <2 x double> %strided.vec17, <2 x double> %11) %13 = fadd <2 x double> %strided.vec14, %10 %14 = fadd <2 x double> %strided.vec15, %12 %interleaved.vec18 = shufflevector <2 x double> %13, <2 x double> %14, <4 x i32> store <4 x double> %interleaved.vec18, ptr %buf.0, align 8, !noalias !5928 %15 = fsub <2 x double> %strided.vec14, %10 %16 = fsub <2 x double> %strided.vec15, %12 %17 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %interleaved.vec19 = shufflevector <2 x double> %15, <2 x double> %16, <4 x i32> store <4 x double> %interleaved.vec19, ptr %17, align 8, !noalias !5928 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5928 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf9451898d1f3903dE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !5934 store i64 32, ptr %n.i, align 8, !noalias !5934 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !5934 store i64 %buf.1, ptr %_10.i, align 8, !noalias !5934 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !5934 store ptr null, ptr %_16.i, align 8, !noalias !5934 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !5934 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !5934 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !5934 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !5934 store ptr null, ptr %_24.i, align 8, !noalias !5934 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !5934 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !5934 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !5934 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !5934 store ptr null, ptr %_32.i, align 8, !noalias !5934 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !5934 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !5934 store i64 %w.1, ptr %_34.i, align 8, !noalias !5934 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !5934 store ptr null, ptr %_40.i, align 8, !noalias !5934 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !5934 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 br label %bb48.i.i.i bb48.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, %bb48.i.i.i %_2.i.i.i = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ false, %bb48.i.i.i ] %iter.i.i.i.sroa.192.0115 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ 1, %bb48.i.i.i ] %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter.i.i.i.sroa.192.0115 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %iter.i.i.i.sroa.192.0115 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.sroa.192.0115, 4 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i %15 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 1 %w1.0.i.i.i = load double, ptr %15, align 8, !noalias !5934, !noundef !3 %16 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %16, align 8, !noalias !5934, !noundef !3 %17 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 2 %w2.0.i.i.i = load double, ptr %17, align 8, !noalias !5934, !noundef !3 %18 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %18, align 8, !noalias !5934, !noundef !3 %19 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 3 %w3.0.i.i.i = load double, ptr %19, align 8, !noalias !5934, !noundef !3 %20 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %20, align 8, !noalias !5934, !noundef !3 %21 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 4 %w4.0.i.i.i = load double, ptr %21, align 8, !noalias !5934, !noundef !3 %22 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 4, i32 1 %w4.1.i.i.i = load double, ptr %22, align 8, !noalias !5934, !noundef !3 %23 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 5 %w5.0.i.i.i = load double, ptr %23, align 8, !noalias !5934, !noundef !3 %24 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 5, i32 1 %w5.1.i.i.i = load double, ptr %24, align 8, !noalias !5934, !noundef !3 %25 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 6 %w6.0.i.i.i = load double, ptr %25, align 8, !noalias !5934, !noundef !3 %26 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 6, i32 1 %w6.1.i.i.i = load double, ptr %26, align 8, !noalias !5934, !noundef !3 %27 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 7 %w7.0.i.i.i = load double, ptr %27, align 8, !noalias !5934, !noundef !3 %28 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 7, i32 1 %w7.1.i.i.i = load double, ptr %28, align 8, !noalias !5934, !noundef !3 %29 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 8 %w8.0.i.i.i = load double, ptr %29, align 8, !noalias !5934, !noundef !3 %30 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 8, i32 1 %w8.1.i.i.i = load double, ptr %30, align 8, !noalias !5934, !noundef !3 %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 9 %w9.0.i.i.i = load double, ptr %31, align 8, !noalias !5934, !noundef !3 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 9, i32 1 %w9.1.i.i.i = load double, ptr %32, align 8, !noalias !5934, !noundef !3 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 10 %wa.0.i.i.i = load double, ptr %33, align 8, !noalias !5934, !noundef !3 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 10, i32 1 %wa.1.i.i.i = load double, ptr %34, align 8, !noalias !5934, !noundef !3 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 11 %wb.0.i.i.i = load double, ptr %35, align 8, !noalias !5934, !noundef !3 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 11, i32 1 %wb.1.i.i.i = load double, ptr %36, align 8, !noalias !5934, !noundef !3 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 12 %wc.0.i.i.i = load double, ptr %37, align 8, !noalias !5934, !noundef !3 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 12, i32 1 %wc.1.i.i.i = load double, ptr %38, align 8, !noalias !5934, !noundef !3 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 13 %wd.0.i.i.i = load double, ptr %39, align 8, !noalias !5934, !noundef !3 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 13, i32 1 %wd.1.i.i.i = load double, ptr %40, align 8, !noalias !5934, !noundef !3 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 14 %we.0.i.i.i = load double, ptr %41, align 8, !noalias !5934, !noundef !3 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 14, i32 1 %we.1.i.i.i = load double, ptr %42, align 8, !noalias !5934, !noundef !3 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 15 %wf.0.i.i.i = load double, ptr %43, align 8, !noalias !5934, !noundef !3 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 15, i32 1 %wf.1.i.i.i = load double, ptr %44, align 8, !noalias !5934, !noundef !3 %45 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4 %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2 %47 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6 %50 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5 %51 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 7 %52 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12 %53 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10 %54 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9 %55 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11 %56 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14 %57 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13 %58 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 15 %_6.i525.i.i.i = fneg double %w1.1.i.i.i %_6.i522.i.i.i = fneg double %w2.1.i.i.i %_6.i519.i.i.i = fneg double %w3.1.i.i.i %_6.i516.i.i.i = fneg double %w4.1.i.i.i %_6.i513.i.i.i = fneg double %w5.1.i.i.i %_6.i510.i.i.i = fneg double %w6.1.i.i.i %_6.i507.i.i.i = fneg double %w7.1.i.i.i %_6.i504.i.i.i = fneg double %w8.1.i.i.i %_6.i501.i.i.i = fneg double %w9.1.i.i.i %_6.i498.i.i.i = fneg double %wa.1.i.i.i %_6.i495.i.i.i = fneg double %wb.1.i.i.i %_6.i492.i.i.i = fneg double %wc.1.i.i.i %_6.i489.i.i.i = fneg double %wd.1.i.i.i %_6.i486.i.i.i = fneg double %we.1.i.i.i %_6.i483.i.i.i = fneg double %wf.1.i.i.i %59 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %60 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %61 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %63 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %66 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %67 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %68 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %69 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %70 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %71 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %72 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %73 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %74 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !5934 %75 = fadd <2 x double> %59, %67 %76 = fadd <2 x double> %63, %71 %77 = fadd <2 x double> %61, %69 %78 = fsub <2 x double> %61, %69 %_0.i.i809 = extractelement <2 x double> %78, i64 0 %79 = fsub <2 x double> %61, %69 %_0.i3.i810 = extractelement <2 x double> %79, i64 1 %80 = fadd <2 x double> %65, %73 %81 = fsub <2 x double> %65, %73 %_0.i.i813 = extractelement <2 x double> %81, i64 0 %82 = fsub <2 x double> %65, %73 %_0.i3.i814 = extractelement <2 x double> %82, i64 1 %83 = fadd <2 x double> %60, %68 %84 = fadd <2 x double> %64, %72 %85 = fadd <2 x double> %62, %70 %86 = fsub <2 x double> %62, %70 %_0.i.i825 = extractelement <2 x double> %86, i64 0 %87 = fsub <2 x double> %62, %70 %_0.i3.i826 = extractelement <2 x double> %87, i64 1 %88 = fadd <2 x double> %66, %74 %89 = fsub <2 x double> %66, %74 %_0.i.i829 = extractelement <2 x double> %89, i64 0 %90 = fsub <2 x double> %66, %74 %_0.i3.i830 = extractelement <2 x double> %90, i64 1 %91 = fadd <2 x double> %75, %76 %92 = fadd <2 x double> %77, %80 %_0.i.i841 = fsub double %_0.i.i809, %_0.i3.i814 %_0.i3.i842 = fadd double %_0.i3.i810, %_0.i.i813 %_0.i.i845 = fadd double %_0.i.i809, %_0.i3.i814 %_0.i3.i846 = fsub double %_0.i3.i810, %_0.i.i813 %93 = fadd <2 x double> %83, %84 %94 = fsub <2 x double> %83, %84 %_0.i.i851 = extractelement <2 x double> %94, i64 0 %95 = fsub <2 x double> %83, %84 %_0.i3.i852 = extractelement <2 x double> %95, i64 1 %96 = fadd <2 x double> %85, %88 %_0.i.i857 = fsub double %_0.i.i825, %_0.i3.i830 %_0.i3.i858 = fadd double %_0.i3.i826, %_0.i.i829 %97 = fsub <2 x double> %85, %88 %_0.i.i859 = extractelement <2 x double> %97, i64 0 %98 = fsub <2 x double> %85, %88 %_0.i3.i860 = extractelement <2 x double> %98, i64 1 %_0.i.i861 = fadd double %_0.i.i825, %_0.i3.i830 %_0.i3.i862 = fsub double %_0.i3.i826, %_0.i.i829 %99 = fadd <2 x double> %91, %92 %100 = fadd <2 x double> %93, %96 %_0.i.i891 = fsub double %_0.i.i851, %_0.i3.i860 %_0.i3.i892 = fadd double %_0.i3.i852, %_0.i.i859 %_0.i.i899 = fadd double %_0.i.i851, %_0.i3.i860 %_0.i3.i900 = fsub double %_0.i3.i852, %_0.i.i859 %_0.i.i905 = fadd double %_0.i3.i900, %_0.i.i899 %_0.i3.i906 = fsub double %_0.i3.i900, %_0.i.i899 %_4.i459.i.i.i = fmul double %_0.i.i905, 0x3FE6A09E667F3BCD %_7.i460.i.i.i = fmul double %_0.i3.i906, 0x3FE6A09E667F3BCD %101 = fadd <2 x double> %99, %100 store <2 x double> %101, ptr %data.i.i.i.i.i.i, align 8, !noalias !5934 %102 = fsub <2 x double> %59, %67 %103 = fsub <2 x double> %63, %71 %104 = shufflevector <2 x double> %103, <2 x double> poison, <2 x i32> %105 = fsub <2 x double> %60, %68 %106 = fsub <2 x double> %64, %72 %107 = shufflevector <2 x double> %106, <2 x double> poison, <2 x i32> %108 = fsub <2 x double> %102, %104 %109 = fadd <2 x double> %102, %104 %110 = shufflevector <2 x double> %108, <2 x double> %109, <2 x i32> %111 = fsub <2 x double> %105, %107 %112 = fadd <2 x double> %105, %107 %113 = shufflevector <2 x double> %111, <2 x double> %112, <2 x i32> %114 = insertelement <2 x double> poison, double %_0.i.i841, i64 0 %115 = insertelement <2 x double> poison, double %_0.i.i841, i64 0 %116 = insertelement <2 x double> poison, double %_0.i3.i842, i64 0 %117 = insertelement <2 x double> poison, double %_0.i3.i842, i64 0 %118 = fsub <2 x double> %115, %117 %119 = fadd <2 x double> %114, %116 %120 = shufflevector <2 x double> %118, <2 x double> %119, <2 x i32> %121 = fmul <2 x double> %120, %122 = fadd <2 x double> %110, %121 %123 = insertelement <2 x double> poison, double %_0.i.i857, i64 0 %124 = insertelement <2 x double> poison, double %_0.i.i857, i64 0 %125 = insertelement <2 x double> poison, double %_0.i3.i858, i64 0 %126 = insertelement <2 x double> poison, double %_0.i3.i858, i64 0 %127 = fsub <2 x double> %124, %126 %128 = fadd <2 x double> %123, %125 %129 = shufflevector <2 x double> %127, <2 x double> %128, <2 x i32> %130 = fmul <2 x double> %129, %131 = fadd <2 x double> %113, %130 %132 = fmul <2 x double> %131, %133 = shufflevector <2 x double> %132, <2 x double> poison, <2 x i32> %134 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %131, <2 x double> , <2 x double> %133) %135 = fadd <2 x double> %122, %134 %136 = shufflevector <2 x double> %135, <2 x double> poison, <2 x i32> %137 = insertelement <2 x double> poison, double %_6.i525.i.i.i, i64 0 %138 = insertelement <2 x double> %137, double %w1.1.i.i.i, i64 1 %139 = fmul <2 x double> %136, %138 %140 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> zeroinitializer %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %141, <2 x double> %135, <2 x double> %139) store <2 x double> %142, ptr %47, align 8, !noalias !5934 %143 = fsub <2 x double> %75, %76 %144 = fsub <2 x double> %77, %80 %145 = shufflevector <2 x double> %144, <2 x double> poison, <2 x i32> %146 = fsub <2 x double> %143, %145 %147 = fadd <2 x double> %143, %145 %148 = shufflevector <2 x double> %146, <2 x double> %147, <2 x i32> %149 = fadd <2 x double> %143, %145 %_0.i.i879 = extractelement <2 x double> %149, i64 0 %150 = fsub <2 x double> %143, %145 %_0.i3.i880 = extractelement <2 x double> %150, i64 1 %151 = insertelement <2 x double> poison, double %_0.i.i891, i64 0 %152 = insertelement <2 x double> poison, double %_0.i.i891, i64 0 %153 = insertelement <2 x double> poison, double %_0.i3.i892, i64 0 %154 = insertelement <2 x double> poison, double %_0.i3.i892, i64 0 %155 = fsub <2 x double> %152, %154 %156 = fadd <2 x double> %151, %153 %157 = shufflevector <2 x double> %155, <2 x double> %156, <2 x i32> %158 = fmul <2 x double> %157, %159 = fadd <2 x double> %148, %158 %160 = shufflevector <2 x double> %159, <2 x double> poison, <2 x i32> %161 = insertelement <2 x double> poison, double %_6.i522.i.i.i, i64 0 %162 = insertelement <2 x double> %161, double %w2.1.i.i.i, i64 1 %163 = fmul <2 x double> %160, %162 %164 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %165 = shufflevector <2 x double> %164, <2 x double> poison, <2 x i32> zeroinitializer %166 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %165, <2 x double> %159, <2 x double> %163) store <2 x double> %166, ptr %46, align 8, !noalias !5934 %167 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3, i32 1 %168 = fsub <2 x double> %91, %92 %169 = fsub <2 x double> %93, %96 %170 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> %171 = fsub <2 x double> %168, %170 %172 = fadd <2 x double> %168, %170 %173 = shufflevector <2 x double> %171, <2 x double> %172, <2 x i32> %174 = shufflevector <2 x double> %173, <2 x double> poison, <2 x i32> %175 = insertelement <2 x double> poison, double %_6.i516.i.i.i, i64 0 %176 = insertelement <2 x double> %175, double %w4.1.i.i.i, i64 1 %177 = fmul <2 x double> %174, %176 %178 = insertelement <2 x double> poison, double %w4.0.i.i.i, i64 0 %179 = shufflevector <2 x double> %178, <2 x double> poison, <2 x i32> zeroinitializer %180 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %179, <2 x double> %173, <2 x double> %177) store <2 x double> %180, ptr %45, align 8, !noalias !5934 %181 = fsub <2 x double> %110, %121 %182 = fsub <2 x double> %113, %130 %183 = fmul <2 x double> %182, %184 = shufflevector <2 x double> %183, <2 x double> poison, <2 x i32> %185 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %182, <2 x double> , <2 x double> %184) %186 = fsub <2 x double> %181, %185 %187 = shufflevector <2 x double> %186, <2 x double> poison, <2 x i32> %188 = insertelement <2 x double> poison, double %_6.i513.i.i.i, i64 0 %189 = insertelement <2 x double> %188, double %w5.1.i.i.i, i64 1 %190 = fmul <2 x double> %187, %189 %191 = insertelement <2 x double> poison, double %w5.0.i.i.i, i64 0 %192 = shufflevector <2 x double> %191, <2 x double> poison, <2 x i32> zeroinitializer %193 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %192, <2 x double> %186, <2 x double> %190) store <2 x double> %193, ptr %50, align 8, !noalias !5934 %_0.i.i919 = fsub double %_0.i.i879, %_4.i459.i.i.i %_0.i3.i920 = fsub double %_0.i3.i880, %_7.i460.i.i.i %b.i511.i.i.i = fmul double %_0.i3.i920, %_6.i510.i.i.i %194 = tail call double @llvm.fma.f64(double %w6.0.i.i.i, double %_0.i.i919, double %b.i511.i.i.i) %b1.i512.i.i.i = fmul double %w6.1.i.i.i, %_0.i.i919 %195 = tail call double @llvm.fma.f64(double %w6.0.i.i.i, double %_0.i3.i920, double %b1.i512.i.i.i) store double %194, ptr %49, align 8, !noalias !5934 %196 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6, i32 1 store double %195, ptr %196, align 8, !noalias !5934 %197 = insertelement <4 x double> poison, double %_6.i507.i.i.i, i64 0 %198 = insertelement <4 x double> %197, double %w7.1.i.i.i, i64 1 %199 = insertelement <4 x double> %198, double %_6.i504.i.i.i, i64 2 %200 = insertelement <4 x double> %199, double %w8.1.i.i.i, i64 3 %201 = insertelement <4 x double> poison, double %w7.0.i.i.i, i64 0 %202 = insertelement <4 x double> %201, double %w8.0.i.i.i, i64 1 %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %204 = fsub <2 x double> %122, %134 %205 = shufflevector <2 x double> %204, <2 x double> poison, <2 x i32> %206 = insertelement <2 x double> poison, double %_6.i501.i.i.i, i64 0 %207 = insertelement <2 x double> %206, double %w9.1.i.i.i, i64 1 %208 = fmul <2 x double> %205, %207 %209 = insertelement <2 x double> poison, double %w9.0.i.i.i, i64 0 %210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> zeroinitializer %211 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %210, <2 x double> %204, <2 x double> %208) store <2 x double> %211, ptr %54, align 8, !noalias !5934 %212 = fsub <2 x double> %148, %158 %213 = shufflevector <2 x double> %212, <2 x double> poison, <2 x i32> %214 = insertelement <2 x double> poison, double %_6.i498.i.i.i, i64 0 %215 = insertelement <2 x double> %214, double %wa.1.i.i.i, i64 1 %216 = fmul <2 x double> %213, %215 %217 = insertelement <2 x double> poison, double %wa.0.i.i.i, i64 0 %218 = shufflevector <2 x double> %217, <2 x double> poison, <2 x i32> zeroinitializer %219 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %218, <2 x double> %212, <2 x double> %216) store <2 x double> %219, ptr %53, align 8, !noalias !5934 %220 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11, i32 1 %221 = shufflevector <2 x double> %172, <2 x double> %171, <2 x i32> %222 = shufflevector <2 x double> %221, <2 x double> poison, <2 x i32> %223 = insertelement <2 x double> poison, double %_6.i492.i.i.i, i64 0 %224 = insertelement <2 x double> %223, double %wc.1.i.i.i, i64 1 %225 = fmul <2 x double> %222, %224 %226 = insertelement <2 x double> poison, double %wc.0.i.i.i, i64 0 %227 = shufflevector <2 x double> %226, <2 x double> poison, <2 x i32> zeroinitializer %228 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %227, <2 x double> %221, <2 x double> %225) store <2 x double> %228, ptr %52, align 8, !noalias !5934 %229 = fadd <2 x double> %181, %185 %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> %231 = insertelement <2 x double> poison, double %_6.i489.i.i.i, i64 0 %232 = insertelement <2 x double> %231, double %wd.1.i.i.i, i64 1 %233 = fmul <2 x double> %230, %232 %234 = insertelement <2 x double> poison, double %wd.0.i.i.i, i64 0 %235 = shufflevector <2 x double> %234, <2 x double> poison, <2 x i32> zeroinitializer %236 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %235, <2 x double> %229, <2 x double> %233) store <2 x double> %236, ptr %57, align 8, !noalias !5934 %_0.i.i935 = fadd double %_0.i.i879, %_4.i459.i.i.i %_0.i3.i936 = fadd double %_0.i3.i880, %_7.i460.i.i.i %b.i487.i.i.i = fmul double %_0.i3.i936, %_6.i486.i.i.i %237 = tail call double @llvm.fma.f64(double %we.0.i.i.i, double %_0.i.i935, double %b.i487.i.i.i) %b1.i488.i.i.i = fmul double %we.1.i.i.i, %_0.i.i935 %238 = tail call double @llvm.fma.f64(double %we.0.i.i.i, double %_0.i3.i936, double %b1.i488.i.i.i) store double %237, ptr %56, align 8, !noalias !5934 %239 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14, i32 1 store double %238, ptr %239, align 8, !noalias !5934 %240 = insertelement <2 x double> poison, double %_0.i3.i846, i64 0 %241 = insertelement <2 x double> poison, double %_0.i3.i846, i64 0 %242 = insertelement <2 x double> poison, double %_0.i.i845, i64 0 %243 = insertelement <2 x double> poison, double %_0.i.i845, i64 0 %244 = fadd <2 x double> %241, %243 %245 = fsub <2 x double> %240, %242 %246 = shufflevector <2 x double> %244, <2 x double> %245, <2 x i32> %247 = fmul <2 x double> %246, %248 = insertelement <2 x double> poison, double %_0.i3.i862, i64 0 %249 = insertelement <2 x double> poison, double %_0.i3.i862, i64 0 %250 = insertelement <2 x double> poison, double %_0.i.i861, i64 0 %251 = insertelement <2 x double> poison, double %_0.i.i861, i64 0 %252 = fadd <2 x double> %249, %251 %253 = fsub <2 x double> %248, %250 %254 = shufflevector <2 x double> %252, <2 x double> %253, <2 x i32> %255 = fmul <2 x double> %254, %256 = shufflevector <2 x double> %109, <2 x double> %108, <2 x i32> %257 = shufflevector <2 x double> %112, <2 x double> %111, <2 x i32> %258 = fsub <2 x double> %256, %247 %_0.i.i873 = extractelement <2 x double> %258, i64 0 %259 = fsub <2 x double> %256, %247 %_0.i3.i874 = extractelement <2 x double> %259, i64 1 %260 = fadd <2 x double> %256, %247 %261 = fsub <2 x double> %257, %255 %_0.i.i893 = extractelement <2 x double> %261, i64 0 %262 = fsub <2 x double> %257, %255 %_0.i3.i894 = extractelement <2 x double> %262, i64 1 %263 = fadd <2 x double> %257, %255 %b.i463.i.i.i = fmul double %_0.i3.i894, 0xBFED906BCF328D46 %264 = tail call double @llvm.fma.f64(double %_0.i.i893, double 0x3FD87DE2A6AEA964, double %b.i463.i.i.i) %b1.i464.i.i.i = fmul double %_0.i.i893, 0x3FED906BCF328D46 %265 = tail call double @llvm.fma.f64(double %_0.i3.i894, double 0x3FD87DE2A6AEA964, double %b1.i464.i.i.i) %266 = fmul <2 x double> %263, %267 = shufflevector <2 x double> %266, <2 x double> poison, <2 x i32> %268 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %263, <2 x double> , <2 x double> %267) %_0.i.i913 = fadd double %_0.i.i873, %264 %_0.i3.i914 = fadd double %_0.i3.i874, %265 %b.i520.i.i.i = fmul double %_0.i3.i914, %_6.i519.i.i.i %269 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_0.i.i913, double %b.i520.i.i.i) %b1.i521.i.i.i = fmul double %w3.1.i.i.i, %_0.i.i913 %270 = tail call double @llvm.fma.f64(double %w3.0.i.i.i, double %_0.i3.i914, double %b1.i521.i.i.i) store double %269, ptr %48, align 8, !noalias !5934 store double %270, ptr %167, align 8, !noalias !5934 %271 = shufflevector <2 x double> %99, <2 x double> %260, <4 x i32> %272 = shufflevector <2 x double> %100, <2 x double> %268, <4 x i32> %273 = fsub <4 x double> %271, %272 %274 = shufflevector <4 x double> %273, <4 x double> poison, <4 x i32> %275 = fmul <4 x double> %274, %200 %276 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %273, <4 x double> %275) store <4 x double> %276, ptr %51, align 8, !noalias !5934 %_0.i.i929 = fsub double %_0.i.i873, %264 %_0.i3.i930 = fsub double %_0.i3.i874, %265 %b.i496.i.i.i = fmul double %_0.i3.i930, %_6.i495.i.i.i %277 = tail call double @llvm.fma.f64(double %wb.0.i.i.i, double %_0.i.i929, double %b.i496.i.i.i) %b1.i497.i.i.i = fmul double %wb.1.i.i.i, %_0.i.i929 %278 = tail call double @llvm.fma.f64(double %wb.0.i.i.i, double %_0.i3.i930, double %b1.i497.i.i.i) store double %277, ptr %55, align 8, !noalias !5934 store double %278, ptr %220, align 8, !noalias !5934 %279 = fadd <2 x double> %260, %268 %280 = shufflevector <2 x double> %279, <2 x double> poison, <2 x i32> %281 = insertelement <2 x double> poison, double %_6.i483.i.i.i, i64 0 %282 = insertelement <2 x double> %281, double %wf.1.i.i.i, i64 1 %283 = fmul <2 x double> %280, %282 %284 = insertelement <2 x double> poison, double %wf.0.i.i.i, i64 0 %285 = shufflevector <2 x double> %284, <2 x double> poison, <2 x i32> zeroinitializer %286 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %285, <2 x double> %279, <2 x double> %283) store <2 x double> %286, ptr %58, align 8, !noalias !5934 br i1 %_2.i.i.i, label %bb48.i.i.i, label %vector.body vector.body: ; preds = %bb48.i.i.i %287 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !5934 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %287, align 8, !noalias !5934 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %288 = fadd <4 x double> %strided.vec, %strided.vec3 %289 = fadd <4 x double> %strided.vec1, %strided.vec4 %290 = fsub <4 x double> %strided.vec, %strided.vec3 %291 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %288, <4 x double> %289, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !5934 %interleaved.vec5 = shufflevector <4 x double> %290, <4 x double> %291, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !5934 %292 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %293 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %292, align 8, !noalias !5934 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %293, align 8, !noalias !5934 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %294 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %295 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %296 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %297 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %298 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %294, <4 x double> %295, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %298, align 8, !noalias !5934 %299 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec5.1 = shufflevector <4 x double> %296, <4 x double> %297, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %299, align 8, !noalias !5934 %300 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %301 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %300, align 8, !noalias !5934 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %301, align 8, !noalias !5934 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %302 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %303 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %304 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %305 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %306 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %302, <4 x double> %303, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %306, align 8, !noalias !5934 %307 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec5.2 = shufflevector <4 x double> %304, <4 x double> %305, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %307, align 8, !noalias !5934 %308 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %309 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %308, align 8, !noalias !5934 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %309, align 8, !noalias !5934 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %310 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %311 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %312 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %313 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %314 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %310, <4 x double> %311, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %314, align 8, !noalias !5934 %315 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec5.3 = shufflevector <4 x double> %312, <4 x double> %313, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %315, align 8, !noalias !5934 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !5934 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf97a5dbf406c3b03E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, false, dif8::Dif8>>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h451fdf821e9ade79E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf97d1d54e2713546E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !5937 store i64 128, ptr %n.i.i, align 8, !noalias !5937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5937 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !5937 %_12.i.i = icmp eq i64 %buf.1, 128 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !5937 store ptr null, ptr %_16.i.i, align 8, !noalias !5937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !5937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5937 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !5937 %_20.i.i = icmp eq i64 %scratch.1, 128 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !5937 store ptr null, ptr %_24.i.i, align 8, !noalias !5937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !5937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5937 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !5937 %_28.i.i = icmp eq i64 %w_init.1, 128 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !5937 store ptr null, ptr %_32.i.i, align 8, !noalias !5937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !5937 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5937 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !5937 %_36.i.i = icmp eq i64 %w.1, 128 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d8db5c209f801f1E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !5937 store ptr null, ptr %_40.i.i, align 8, !noalias !5937 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d8db5c209f801f1E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !5937 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 br label %bb9.i.i.i.i.i bb9.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d8db5c209f801f1E.exit.i" %iter.i.i.i.i.sroa.8.0179.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d8db5c209f801f1E.exit.i" ], [ %12, %bb9.i.i.i.i.i ] %3 = or disjoint i64 %iter.i.i.i.i.sroa.8.0179.i, 1 %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.sroa.8.0179.i %_3.i2.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.sroa.8.0179.i %_33.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !5937 %_34.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i, align 8, !noalias !5937 %4 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i %5 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i, %_34.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %4, ptr %_3.i.i.i.i.i, align 8, !noalias !5937 store <4 x double> %5, ptr %_3.i2.i.i.i.i, align 8, !noalias !5937 %6 = or disjoint i64 %iter.i.i.i.i.sroa.8.0179.i, 2 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %3 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %3 %_33.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5937 %_34.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5937 %7 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.sroa.0.0.copyload.i.1 %8 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i.1, %_34.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %7, ptr %_3.i.i.i.i.i.1, align 8, !noalias !5937 store <4 x double> %8, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !5937 %9 = or disjoint i64 %iter.i.i.i.i.sroa.8.0179.i, 3 %_3.i.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %6 %_3.i2.i.i.i.i.2 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %6 %_33.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5937 %_34.i.i.i.i.sroa.0.0.copyload.i.2 = load <4 x double>, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5937 %10 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.sroa.0.0.copyload.i.2 %11 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i.2, %_34.i.i.i.i.sroa.0.0.copyload.i.2 store <4 x double> %10, ptr %_3.i.i.i.i.i.2, align 8, !noalias !5937 store <4 x double> %11, ptr %_3.i2.i.i.i.i.2, align 8, !noalias !5937 %12 = add nuw nsw i64 %iter.i.i.i.i.sroa.8.0179.i, 4 %_3.i.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %9 %_3.i2.i.i.i.i.3 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %9 %_33.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5937 %_34.i.i.i.i.sroa.0.0.copyload.i.3 = load <4 x double>, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5937 %13 = fadd <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.sroa.0.0.copyload.i.3 %14 = fsub <4 x double> %_33.i.i.i.i.sroa.0.0.copyload.i.3, %_34.i.i.i.i.sroa.0.0.copyload.i.3 store <4 x double> %13, ptr %_3.i.i.i.i.i.3, align 8, !noalias !5937 store <4 x double> %14, ptr %_3.i2.i.i.i.i.3, align 8, !noalias !5937 %exitcond.not.i.3 = icmp eq i64 %12, 32 br i1 %exitcond.not.i.3, label %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i", label %bb9.i.i.i.i.i "_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i": ; preds = %bb9.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5942) tail call void @llvm.experimental.noalias.scope.decl(metadata !5945) tail call void @llvm.experimental.noalias.scope.decl(metadata !5947) %15 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 br label %bb17.us.i.i bb17.us.i.i: ; preds = %bb17.us.i.i, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i" %_2.i.i.i.us.i.i = phi i1 [ false, %bb17.us.i.i ], [ true, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i" ] %iter.sroa.38.0211.us.i.i = phi i64 [ 1, %bb17.us.i.i ], [ 0, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i" ] %start1.i.i.i.i.i.i.i.i.us.i.i = shl nuw nsw i64 %iter.sroa.38.0211.us.i.i, 4 %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl nuw nsw i64 %iter.sroa.38.0211.us.i.i, 5 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.us.i.i %16 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %16, align 8, !alias.scope !5947, !noalias !5949, !noundef !3 %17 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %17, align 8, !alias.scope !5947, !noalias !5949, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %18 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %19 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 16 %20 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %21 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %19, align 8, !alias.scope !5945, !noalias !5950 %22 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %23 = fmul <4 x double> %21, %22 %24 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> %23) #23 %25 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %24 store <4 x double> %25, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5942, !noalias !5951 %26 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %24 store <4 x double> %26, ptr %data.i5.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 17 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !5945, !noalias !5950 %27 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %21, %27 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> %28) #23 %30 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %29 store <4 x double> %30, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5942, !noalias !5951 %31 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %29 store <4 x double> %31, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 2 %_3.i.i.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %_3.i.i.i.i.us.i.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 18 %a.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.2.i, align 8, !alias.scope !5945, !noalias !5950 %32 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.2.i, <4 x double> poison, <4 x i32> %33 = fmul <4 x double> %21, %32 %34 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.2.i, <4 x double> %33) #23 %35 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %34 store <4 x double> %35, ptr %_3.i.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5942, !noalias !5951 %36 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.2.i, %34 store <4 x double> %36, ptr %_3.i2.i.i.i.i.i.i.i.us.i.2.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.us.i.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 19 %a.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.3.i, align 8, !alias.scope !5945, !noalias !5950 %37 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.3.i, <4 x double> poison, <4 x i32> %38 = fmul <4 x double> %21, %37 %39 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.3.i, <4 x double> %38) #23 %40 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %39 store <4 x double> %40, ptr %_3.i.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5942, !noalias !5951 %41 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.3.i, %39 store <4 x double> %41, ptr %_3.i2.i.i.i.i.i.i.i.us.i.3.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 4 %_3.i.i.i.i.i.i.us.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %_3.i.i.i.i.us.i.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 20 %a.sroa.0.0.copyload.us.i.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.4.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.4.i, align 8, !alias.scope !5945, !noalias !5950 %42 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.4.i, <4 x double> poison, <4 x i32> %43 = fmul <4 x double> %21, %42 %44 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.4.i, <4 x double> %43) #23 %45 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.4.i, %44 store <4 x double> %45, ptr %_3.i.i.i.i.i.i.i.i.us.i.4.i, align 8, !alias.scope !5942, !noalias !5951 %46 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.4.i, %44 store <4 x double> %46, ptr %_3.i2.i.i.i.i.i.i.i.us.i.4.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.i.i.us.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 21 %a.sroa.0.0.copyload.us.i.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.5.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.5.i, align 8, !alias.scope !5945, !noalias !5950 %47 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.5.i, <4 x double> poison, <4 x i32> %48 = fmul <4 x double> %21, %47 %49 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.5.i, <4 x double> %48) #23 %50 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.5.i, %49 store <4 x double> %50, ptr %_3.i.i.i.i.i.i.i.i.us.i.5.i, align 8, !alias.scope !5942, !noalias !5951 %51 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.5.i, %49 store <4 x double> %51, ptr %_3.i2.i.i.i.i.i.i.i.us.i.5.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 6 %_3.i.i.i.i.i.i.us.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %_3.i.i.i.i.us.i.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 22 %a.sroa.0.0.copyload.us.i.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.6.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.6.i, align 8, !alias.scope !5945, !noalias !5950 %52 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.6.i, <4 x double> poison, <4 x i32> %53 = fmul <4 x double> %21, %52 %54 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.6.i, <4 x double> %53) #23 %55 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.6.i, %54 store <4 x double> %55, ptr %_3.i.i.i.i.i.i.i.i.us.i.6.i, align 8, !alias.scope !5942, !noalias !5951 %56 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.6.i, %54 store <4 x double> %56, ptr %_3.i2.i.i.i.i.i.i.i.us.i.6.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 7 %_3.i.i.i.i.i.i.us.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %_3.i.i.i.i.us.i.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 23 %a.sroa.0.0.copyload.us.i.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.7.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.7.i, align 8, !alias.scope !5945, !noalias !5950 %57 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.7.i, <4 x double> poison, <4 x i32> %58 = fmul <4 x double> %21, %57 %59 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.7.i, <4 x double> %58) #23 %60 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.7.i, %59 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.us.i.7.i, align 8, !alias.scope !5942, !noalias !5951 %61 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.7.i, %59 store <4 x double> %61, ptr %_3.i2.i.i.i.i.i.i.i.us.i.7.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 8 %_3.i.i.i.i.i.i.us.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 8 %_3.i.i.i.i.us.i.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 24 %a.sroa.0.0.copyload.us.i.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.8.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.8.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.8.i, align 8, !alias.scope !5945, !noalias !5950 %62 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.8.i, <4 x double> poison, <4 x i32> %63 = fmul <4 x double> %21, %62 %64 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.8.i, <4 x double> %63) #23 %65 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.8.i, %64 store <4 x double> %65, ptr %_3.i.i.i.i.i.i.i.i.us.i.8.i, align 8, !alias.scope !5942, !noalias !5951 %66 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.8.i, %64 store <4 x double> %66, ptr %_3.i2.i.i.i.i.i.i.i.us.i.8.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 9 %_3.i.i.i.i.i.i.us.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 9 %_3.i.i.i.i.us.i.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 25 %a.sroa.0.0.copyload.us.i.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.9.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.9.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.9.i, align 8, !alias.scope !5945, !noalias !5950 %67 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.9.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %21, %67 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.9.i, <4 x double> %68) #23 %70 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.9.i, %69 store <4 x double> %70, ptr %_3.i.i.i.i.i.i.i.i.us.i.9.i, align 8, !alias.scope !5942, !noalias !5951 %71 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.9.i, %69 store <4 x double> %71, ptr %_3.i2.i.i.i.i.i.i.i.us.i.9.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 10 %_3.i.i.i.i.i.i.us.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 10 %_3.i.i.i.i.us.i.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 26 %a.sroa.0.0.copyload.us.i.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.10.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.10.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.10.i, align 8, !alias.scope !5945, !noalias !5950 %72 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.10.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %21, %72 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.10.i, <4 x double> %73) #23 %75 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.10.i, %74 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.i.i.us.i.10.i, align 8, !alias.scope !5942, !noalias !5951 %76 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.10.i, %74 store <4 x double> %76, ptr %_3.i2.i.i.i.i.i.i.i.us.i.10.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 11 %_3.i.i.i.i.i.i.us.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 11 %_3.i.i.i.i.us.i.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 27 %a.sroa.0.0.copyload.us.i.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.11.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.11.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.11.i, align 8, !alias.scope !5945, !noalias !5950 %77 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.11.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %21, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.11.i, <4 x double> %78) #23 %80 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.11.i, %79 store <4 x double> %80, ptr %_3.i.i.i.i.i.i.i.i.us.i.11.i, align 8, !alias.scope !5942, !noalias !5951 %81 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.11.i, %79 store <4 x double> %81, ptr %_3.i2.i.i.i.i.i.i.i.us.i.11.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 12 %_3.i.i.i.i.i.i.us.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 12 %_3.i.i.i.i.us.i.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 28 %a.sroa.0.0.copyload.us.i.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.12.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.12.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.12.i, align 8, !alias.scope !5945, !noalias !5950 %82 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.12.i, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %21, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.12.i, <4 x double> %83) #23 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.12.i, %84 store <4 x double> %85, ptr %_3.i.i.i.i.i.i.i.i.us.i.12.i, align 8, !alias.scope !5942, !noalias !5951 %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.12.i, %84 store <4 x double> %86, ptr %_3.i2.i.i.i.i.i.i.i.us.i.12.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 13 %_3.i.i.i.i.i.i.us.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 13 %_3.i.i.i.i.us.i.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 29 %a.sroa.0.0.copyload.us.i.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.13.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.13.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.13.i, align 8, !alias.scope !5945, !noalias !5950 %87 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.13.i, <4 x double> poison, <4 x i32> %88 = fmul <4 x double> %21, %87 %89 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.13.i, <4 x double> %88) #23 %90 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.13.i, %89 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.us.i.13.i, align 8, !alias.scope !5942, !noalias !5951 %91 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.13.i, %89 store <4 x double> %91, ptr %_3.i2.i.i.i.i.i.i.i.us.i.13.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 14 %_3.i.i.i.i.i.i.us.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 14 %_3.i.i.i.i.us.i.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 30 %a.sroa.0.0.copyload.us.i.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.14.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.14.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.14.i, align 8, !alias.scope !5945, !noalias !5950 %92 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.14.i, <4 x double> poison, <4 x i32> %93 = fmul <4 x double> %21, %92 %94 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.14.i, <4 x double> %93) #23 %95 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.14.i, %94 store <4 x double> %95, ptr %_3.i.i.i.i.i.i.i.i.us.i.14.i, align 8, !alias.scope !5942, !noalias !5951 %96 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.14.i, %94 store <4 x double> %96, ptr %_3.i2.i.i.i.i.i.i.i.us.i.14.i, align 8, !alias.scope !5942, !noalias !5951 %_3.i.i.i.i.i.i.i.i.us.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.i, i64 15 %_3.i.i.i.i.i.i.us.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 15 %_3.i.i.i.i.us.i.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 31 %a.sroa.0.0.copyload.us.i.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.15.i, align 8, !alias.scope !5945, !noalias !5950 %_62.sroa.0.0.copyload.us.i.15.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.15.i, align 8, !alias.scope !5945, !noalias !5950 %97 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.15.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %21, %97 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %_62.sroa.0.0.copyload.us.i.15.i, <4 x double> %98) #23 %100 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.15.i, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.us.i.15.i, align 8, !alias.scope !5942, !noalias !5951 %101 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.15.i, %99 store <4 x double> %101, ptr %_3.i2.i.i.i.i.i.i.i.us.i.15.i, align 8, !alias.scope !5942, !noalias !5951 br i1 %_2.i.i.i.us.i.i, label %bb17.us.i.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit.i: ; preds = %bb17.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5952) tail call void @llvm.experimental.noalias.scope.decl(metadata !5955) tail call void @llvm.experimental.noalias.scope.decl(metadata !5957) br label %bb17.us.i34.i bb17.us.i34.i: ; preds = %bb17.us.i34.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit.i %iter.sroa.38.0211.us.i35.i = phi i64 [ %148, %bb17.us.i34.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit.i ] %start1.i.i.i.i.i.i.i.i.us.i36.i = shl i64 %iter.sroa.38.0211.us.i35.i, 3 %data.i.i.i.i.i.i.i.i.us.i37.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i36.i %start1.i.i.i.i.us.i38.i = shl i64 %iter.sroa.38.0211.us.i35.i, 4 %data.i.i.i.i.i.i.us.i39.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i38.i %data.i5.i.i.i.i.i.i.i.us.i40.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i36.i %102 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i38.i, i64 1 %w1.0.us.i41.i = load double, ptr %102, align 8, !alias.scope !5957, !noalias !5959, !noundef !3 %103 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i38.i, i64 1, i32 1 %w1.1.us.i42.i = load double, ptr %103, align 8, !alias.scope !5957, !noalias !5959, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i43.i = insertelement <2 x double> poison, double %w1.0.us.i41.i, i64 0 %104 = insertelement <4 x double> poison, double %w1.1.us.i42.i, i64 0 %105 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 8 %106 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i43.i, <2 x double> poison, <4 x i32> zeroinitializer %107 = shufflevector <4 x double> %104, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i50.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i39.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.i = load <4 x double>, ptr %105, align 8, !alias.scope !5955, !noalias !5960 %108 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.i, <4 x double> poison, <4 x i32> %109 = fmul <4 x double> %107, %108 %110 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.i, <4 x double> %109) #23 %111 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.i, %110 store <4 x double> %111, ptr %data.i.i.i.i.i.i.i.i.us.i37.i, align 8, !alias.scope !5952, !noalias !5961 %112 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.i, %110 store <4 x double> %112, ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i47.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 1 %_3.i.i.i.i.i.i.us.i48.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 1 %_3.i.i.i.i.us.i49.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 9 %a.sroa.0.0.copyload.us.i50.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.1.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.1.i, align 8, !alias.scope !5955, !noalias !5960 %113 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.1.i, <4 x double> poison, <4 x i32> %114 = fmul <4 x double> %107, %113 %115 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.1.i, <4 x double> %114) #23 %116 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.1.i, %115 store <4 x double> %116, ptr %_3.i.i.i.i.i.i.i.i.us.i46.1.i, align 8, !alias.scope !5952, !noalias !5961 %117 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.1.i, %115 store <4 x double> %117, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.1.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i47.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 2 %_3.i.i.i.i.i.i.us.i48.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 2 %_3.i.i.i.i.us.i49.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 10 %a.sroa.0.0.copyload.us.i50.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.2.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.2.i, align 8, !alias.scope !5955, !noalias !5960 %118 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.2.i, <4 x double> poison, <4 x i32> %119 = fmul <4 x double> %107, %118 %120 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.2.i, <4 x double> %119) #23 %121 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.2.i, %120 store <4 x double> %121, ptr %_3.i.i.i.i.i.i.i.i.us.i46.2.i, align 8, !alias.scope !5952, !noalias !5961 %122 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.2.i, %120 store <4 x double> %122, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.2.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i47.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 3 %_3.i.i.i.i.i.i.us.i48.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 3 %_3.i.i.i.i.us.i49.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 11 %a.sroa.0.0.copyload.us.i50.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.3.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.3.i, align 8, !alias.scope !5955, !noalias !5960 %123 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.3.i, <4 x double> poison, <4 x i32> %124 = fmul <4 x double> %107, %123 %125 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.3.i, <4 x double> %124) #23 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.3.i, %125 store <4 x double> %126, ptr %_3.i.i.i.i.i.i.i.i.us.i46.3.i, align 8, !alias.scope !5952, !noalias !5961 %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.3.i, %125 store <4 x double> %127, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.3.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i47.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 4 %_3.i.i.i.i.i.i.us.i48.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 4 %_3.i.i.i.i.us.i49.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 12 %a.sroa.0.0.copyload.us.i50.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.4.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.4.i, align 8, !alias.scope !5955, !noalias !5960 %128 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.4.i, <4 x double> poison, <4 x i32> %129 = fmul <4 x double> %107, %128 %130 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.4.i, <4 x double> %129) #23 %131 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.4.i, %130 store <4 x double> %131, ptr %_3.i.i.i.i.i.i.i.i.us.i46.4.i, align 8, !alias.scope !5952, !noalias !5961 %132 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.4.i, %130 store <4 x double> %132, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.4.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i47.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 5 %_3.i.i.i.i.i.i.us.i48.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 5 %_3.i.i.i.i.us.i49.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 13 %a.sroa.0.0.copyload.us.i50.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.5.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.5.i, align 8, !alias.scope !5955, !noalias !5960 %133 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.5.i, <4 x double> poison, <4 x i32> %134 = fmul <4 x double> %107, %133 %135 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.5.i, <4 x double> %134) #23 %136 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.5.i, %135 store <4 x double> %136, ptr %_3.i.i.i.i.i.i.i.i.us.i46.5.i, align 8, !alias.scope !5952, !noalias !5961 %137 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.5.i, %135 store <4 x double> %137, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.5.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i47.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 6 %_3.i.i.i.i.i.i.us.i48.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 6 %_3.i.i.i.i.us.i49.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 14 %a.sroa.0.0.copyload.us.i50.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.6.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.6.i, align 8, !alias.scope !5955, !noalias !5960 %138 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.6.i, <4 x double> poison, <4 x i32> %139 = fmul <4 x double> %107, %138 %140 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.6.i, <4 x double> %139) #23 %141 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.6.i, %140 store <4 x double> %141, ptr %_3.i.i.i.i.i.i.i.i.us.i46.6.i, align 8, !alias.scope !5952, !noalias !5961 %142 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.6.i, %140 store <4 x double> %142, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.6.i, align 8, !alias.scope !5952, !noalias !5961 %_3.i.i.i.i.i.i.i.i.us.i46.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i37.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i47.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i40.i, i64 7 %_3.i.i.i.i.i.i.us.i48.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 7 %_3.i.i.i.i.us.i49.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i39.i, i64 15 %a.sroa.0.0.copyload.us.i50.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i48.7.i, align 8, !alias.scope !5955, !noalias !5960 %_62.sroa.0.0.copyload.us.i51.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i49.7.i, align 8, !alias.scope !5955, !noalias !5960 %143 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i51.7.i, <4 x double> poison, <4 x i32> %144 = fmul <4 x double> %107, %143 %145 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %106, <4 x double> %_62.sroa.0.0.copyload.us.i51.7.i, <4 x double> %144) #23 %146 = fadd <4 x double> %a.sroa.0.0.copyload.us.i50.7.i, %145 store <4 x double> %146, ptr %_3.i.i.i.i.i.i.i.i.us.i46.7.i, align 8, !alias.scope !5952, !noalias !5961 %147 = fsub <4 x double> %a.sroa.0.0.copyload.us.i50.7.i, %145 store <4 x double> %147, ptr %_3.i2.i.i.i.i.i.i.i.us.i47.7.i, align 8, !alias.scope !5952, !noalias !5961 %148 = add nuw nsw i64 %iter.sroa.38.0211.us.i35.i, 1 %exitcond180.not.i = icmp eq i64 %148, 4 br i1 %exitcond180.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit55.i, label %bb17.us.i34.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit55.i: ; preds = %bb17.us.i34.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5962) tail call void @llvm.experimental.noalias.scope.decl(metadata !5965) tail call void @llvm.experimental.noalias.scope.decl(metadata !5967) br label %bb17.us.i69.i bb17.us.i69.i: ; preds = %bb17.us.i69.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit55.i %iter.sroa.38.0211.us.i70.i = phi i64 [ %175, %bb17.us.i69.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit55.i ] %start1.i.i.i.i.i.i.i.i.us.i71.i = shl i64 %iter.sroa.38.0211.us.i70.i, 2 %data.i.i.i.i.i.i.i.i.us.i72.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i71.i %start1.i.i.i.i.us.i73.i = shl i64 %iter.sroa.38.0211.us.i70.i, 3 %data.i.i.i.i.i.i.us.i74.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i73.i %data.i5.i.i.i.i.i.i.i.us.i75.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %start1.i.i.i.i.i.i.i.i.us.i71.i %149 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i73.i, i64 1 %w1.0.us.i76.i = load double, ptr %149, align 8, !alias.scope !5967, !noalias !5969, !noundef !3 %150 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i73.i, i64 1, i32 1 %w1.1.us.i77.i = load double, ptr %150, align 8, !alias.scope !5967, !noalias !5969, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i78.i = insertelement <2 x double> poison, double %w1.0.us.i76.i, i64 0 %151 = insertelement <4 x double> poison, double %w1.1.us.i77.i, i64 0 %152 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 4 %153 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i78.i, <2 x double> poison, <4 x i32> zeroinitializer %154 = shufflevector <4 x double> %151, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i85.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i74.i, align 8, !alias.scope !5965, !noalias !5970 %_62.sroa.0.0.copyload.us.i86.i = load <4 x double>, ptr %152, align 8, !alias.scope !5965, !noalias !5970 %155 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i86.i, <4 x double> poison, <4 x i32> %156 = fmul <4 x double> %154, %155 %157 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_62.sroa.0.0.copyload.us.i86.i, <4 x double> %156) #23 %158 = fadd <4 x double> %a.sroa.0.0.copyload.us.i85.i, %157 store <4 x double> %158, ptr %data.i.i.i.i.i.i.i.i.us.i72.i, align 8, !alias.scope !5962, !noalias !5971 %159 = fsub <4 x double> %a.sroa.0.0.copyload.us.i85.i, %157 store <4 x double> %159, ptr %data.i5.i.i.i.i.i.i.i.us.i75.i, align 8, !alias.scope !5962, !noalias !5971 %_3.i.i.i.i.i.i.i.i.us.i81.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i72.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i82.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i75.i, i64 1 %_3.i.i.i.i.i.i.us.i83.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 1 %_3.i.i.i.i.us.i84.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 5 %a.sroa.0.0.copyload.us.i85.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i83.1.i, align 8, !alias.scope !5965, !noalias !5970 %_62.sroa.0.0.copyload.us.i86.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i84.1.i, align 8, !alias.scope !5965, !noalias !5970 %160 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i86.1.i, <4 x double> poison, <4 x i32> %161 = fmul <4 x double> %154, %160 %162 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_62.sroa.0.0.copyload.us.i86.1.i, <4 x double> %161) #23 %163 = fadd <4 x double> %a.sroa.0.0.copyload.us.i85.1.i, %162 store <4 x double> %163, ptr %_3.i.i.i.i.i.i.i.i.us.i81.1.i, align 8, !alias.scope !5962, !noalias !5971 %164 = fsub <4 x double> %a.sroa.0.0.copyload.us.i85.1.i, %162 store <4 x double> %164, ptr %_3.i2.i.i.i.i.i.i.i.us.i82.1.i, align 8, !alias.scope !5962, !noalias !5971 %_3.i.i.i.i.i.i.i.i.us.i81.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i72.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i82.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i75.i, i64 2 %_3.i.i.i.i.i.i.us.i83.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 2 %_3.i.i.i.i.us.i84.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 6 %a.sroa.0.0.copyload.us.i85.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i83.2.i, align 8, !alias.scope !5965, !noalias !5970 %_62.sroa.0.0.copyload.us.i86.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i84.2.i, align 8, !alias.scope !5965, !noalias !5970 %165 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i86.2.i, <4 x double> poison, <4 x i32> %166 = fmul <4 x double> %154, %165 %167 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_62.sroa.0.0.copyload.us.i86.2.i, <4 x double> %166) #23 %168 = fadd <4 x double> %a.sroa.0.0.copyload.us.i85.2.i, %167 store <4 x double> %168, ptr %_3.i.i.i.i.i.i.i.i.us.i81.2.i, align 8, !alias.scope !5962, !noalias !5971 %169 = fsub <4 x double> %a.sroa.0.0.copyload.us.i85.2.i, %167 store <4 x double> %169, ptr %_3.i2.i.i.i.i.i.i.i.us.i82.2.i, align 8, !alias.scope !5962, !noalias !5971 %_3.i.i.i.i.i.i.i.i.us.i81.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i72.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i82.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i75.i, i64 3 %_3.i.i.i.i.i.i.us.i83.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 3 %_3.i.i.i.i.us.i84.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i74.i, i64 7 %a.sroa.0.0.copyload.us.i85.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i83.3.i, align 8, !alias.scope !5965, !noalias !5970 %_62.sroa.0.0.copyload.us.i86.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i84.3.i, align 8, !alias.scope !5965, !noalias !5970 %170 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i86.3.i, <4 x double> poison, <4 x i32> %171 = fmul <4 x double> %154, %170 %172 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %153, <4 x double> %_62.sroa.0.0.copyload.us.i86.3.i, <4 x double> %171) #23 %173 = fadd <4 x double> %a.sroa.0.0.copyload.us.i85.3.i, %172 store <4 x double> %173, ptr %_3.i.i.i.i.i.i.i.i.us.i81.3.i, align 8, !alias.scope !5962, !noalias !5971 %174 = fsub <4 x double> %a.sroa.0.0.copyload.us.i85.3.i, %172 store <4 x double> %174, ptr %_3.i2.i.i.i.i.i.i.i.us.i82.3.i, align 8, !alias.scope !5962, !noalias !5971 %175 = add nuw nsw i64 %iter.sroa.38.0211.us.i70.i, 1 %exitcond181.not.i = icmp eq i64 %175, 8 br i1 %exitcond181.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit90.i, label %bb17.us.i69.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit90.i: ; preds = %bb17.us.i69.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5972) tail call void @llvm.experimental.noalias.scope.decl(metadata !5975) tail call void @llvm.experimental.noalias.scope.decl(metadata !5977) br label %bb17.us.i104.i bb17.us.i104.i: ; preds = %bb17.us.i104.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit90.i %iter.sroa.38.0211.us.i105.i = phi i64 [ %192, %bb17.us.i104.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit90.i ] %start1.i.i.i.i.i.i.i.i.us.i106.i = shl nuw i64 %iter.sroa.38.0211.us.i105.i, 1 %data.i.i.i.i.i.i.i.i.us.i107.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i106.i %start1.i.i.i.i.us.i108.i = shl i64 %iter.sroa.38.0211.us.i105.i, 2 %data.i.i.i.i.i.i.us.i109.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i108.i %data.i5.i.i.i.i.i.i.i.us.i110.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i106.i %176 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i108.i, i64 1 %w1.0.us.i111.i = load double, ptr %176, align 8, !alias.scope !5977, !noalias !5979, !noundef !3 %177 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i108.i, i64 1, i32 1 %w1.1.us.i112.i = load double, ptr %177, align 8, !alias.scope !5977, !noalias !5979, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i113.i = insertelement <2 x double> poison, double %w1.0.us.i111.i, i64 0 %178 = insertelement <4 x double> poison, double %w1.1.us.i112.i, i64 0 %179 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i109.i, i64 2 %180 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i113.i, <2 x double> poison, <4 x i32> zeroinitializer %181 = shufflevector <4 x double> %178, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i120.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i109.i, align 8, !alias.scope !5975, !noalias !5980 %_62.sroa.0.0.copyload.us.i121.i = load <4 x double>, ptr %179, align 8, !alias.scope !5975, !noalias !5980 %182 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i121.i, <4 x double> poison, <4 x i32> %183 = fmul <4 x double> %181, %182 %184 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %180, <4 x double> %_62.sroa.0.0.copyload.us.i121.i, <4 x double> %183) #23 %185 = fadd <4 x double> %a.sroa.0.0.copyload.us.i120.i, %184 store <4 x double> %185, ptr %data.i.i.i.i.i.i.i.i.us.i107.i, align 8, !alias.scope !5972, !noalias !5981 %186 = fsub <4 x double> %a.sroa.0.0.copyload.us.i120.i, %184 store <4 x double> %186, ptr %data.i5.i.i.i.i.i.i.i.us.i110.i, align 8, !alias.scope !5972, !noalias !5981 %_3.i.i.i.i.i.i.i.i.us.i116.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i107.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i110.i, i64 1 %_3.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i109.i, i64 1 %_3.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i109.i, i64 3 %a.sroa.0.0.copyload.us.i120.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !5975, !noalias !5980 %_62.sroa.0.0.copyload.us.i121.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i119.1.i, align 8, !alias.scope !5975, !noalias !5980 %187 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i121.1.i, <4 x double> poison, <4 x i32> %188 = fmul <4 x double> %181, %187 %189 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %180, <4 x double> %_62.sroa.0.0.copyload.us.i121.1.i, <4 x double> %188) #23 %190 = fadd <4 x double> %a.sroa.0.0.copyload.us.i120.1.i, %189 store <4 x double> %190, ptr %_3.i.i.i.i.i.i.i.i.us.i116.1.i, align 8, !alias.scope !5972, !noalias !5981 %191 = fsub <4 x double> %a.sroa.0.0.copyload.us.i120.1.i, %189 store <4 x double> %191, ptr %_3.i2.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !5972, !noalias !5981 %192 = add nuw nsw i64 %iter.sroa.38.0211.us.i105.i, 1 %exitcond182.not.i = icmp eq i64 %192, 16 br i1 %exitcond182.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit125.i, label %bb17.us.i104.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit125.i: ; preds = %bb17.us.i104.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5982) tail call void @llvm.experimental.noalias.scope.decl(metadata !5985) tail call void @llvm.experimental.noalias.scope.decl(metadata !5987) br label %bb17.us.i137.i bb17.us.i137.i: ; preds = %bb17.us.i137.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit125.i %iter.sroa.38.0211.us.i138.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit125.i ], [ %216, %bb17.us.i137.i ] %data.i.i.i.i.i.i.i.i.us.i139.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0211.us.i138.i %start1.i.i.i.i.us.i140.i = shl nuw i64 %iter.sroa.38.0211.us.i138.i, 1 %data.i.i.i.i.i.i.us.i141.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i140.i %data.i5.i.i.i.i.i.i.i.us.i142.i = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %iter.sroa.38.0211.us.i138.i %193 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i140.i, i64 1 %w1.0.us.i143.i = load double, ptr %193, align 8, !alias.scope !5987, !noalias !5989, !noundef !3 %194 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i140.i, i64 1, i32 1 %w1.1.us.i144.i = load double, ptr %194, align 8, !alias.scope !5987, !noalias !5989, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i145.i = insertelement <2 x double> poison, double %w1.0.us.i143.i, i64 0 %195 = insertelement <4 x double> poison, double %w1.1.us.i144.i, i64 0 %196 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i, i64 1 %197 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i145.i, <2 x double> poison, <4 x i32> zeroinitializer %198 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i152.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i141.i, align 8, !alias.scope !5985, !noalias !5990 %_62.sroa.0.0.copyload.us.i153.i = load <4 x double>, ptr %196, align 8, !alias.scope !5985, !noalias !5990 %199 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i153.i, <4 x double> poison, <4 x i32> %200 = fmul <4 x double> %198, %199 %201 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %197, <4 x double> %_62.sroa.0.0.copyload.us.i153.i, <4 x double> %200) #23 %202 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.i, %201 store <4 x double> %202, ptr %data.i.i.i.i.i.i.i.i.us.i139.i, align 8, !alias.scope !5982, !noalias !5991 %203 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.i, %201 store <4 x double> %203, ptr %data.i5.i.i.i.i.i.i.i.us.i142.i, align 8, !alias.scope !5982, !noalias !5991 %204 = or disjoint i64 %iter.sroa.38.0211.us.i138.i, 1 %data.i.i.i.i.i.i.i.i.us.i139.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %204 %start1.i.i.i.i.us.i140.i.1 = shl nuw i64 %204, 1 %data.i.i.i.i.i.i.us.i141.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i140.i.1 %data.i5.i.i.i.i.i.i.i.us.i142.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %15, i64 %204 %205 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i140.i.1, i64 1 %w1.0.us.i143.i.1 = load double, ptr %205, align 8, !alias.scope !5987, !noalias !5989, !noundef !3 %206 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i140.i.1, i64 1, i32 1 %w1.1.us.i144.i.1 = load double, ptr %206, align 8, !alias.scope !5987, !noalias !5989, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i145.i.1 = insertelement <2 x double> poison, double %w1.0.us.i143.i.1, i64 0 %207 = insertelement <4 x double> poison, double %w1.1.us.i144.i.1, i64 0 %208 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i141.i.1, i64 1 %209 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i145.i.1, <2 x double> poison, <4 x i32> zeroinitializer %210 = shufflevector <4 x double> %207, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i152.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i141.i.1, align 8, !alias.scope !5985, !noalias !5990 %_62.sroa.0.0.copyload.us.i153.i.1 = load <4 x double>, ptr %208, align 8, !alias.scope !5985, !noalias !5990 %211 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i153.i.1, <4 x double> poison, <4 x i32> %212 = fmul <4 x double> %210, %211 %213 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %209, <4 x double> %_62.sroa.0.0.copyload.us.i153.i.1, <4 x double> %212) #23 %214 = fadd <4 x double> %a.sroa.0.0.copyload.us.i152.i.1, %213 store <4 x double> %214, ptr %data.i.i.i.i.i.i.i.i.us.i139.i.1, align 8, !alias.scope !5982, !noalias !5991 %215 = fsub <4 x double> %a.sroa.0.0.copyload.us.i152.i.1, %213 store <4 x double> %215, ptr %data.i5.i.i.i.i.i.i.i.us.i142.i.1, align 8, !alias.scope !5982, !noalias !5991 %216 = add nuw nsw i64 %iter.sroa.38.0211.us.i138.i, 2 %exitcond183.not.i.1 = icmp eq i64 %216, 32 br i1 %exitcond183.not.i.1, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit157.i, label %bb17.us.i137.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit157.i: ; preds = %bb17.us.i137.i tail call void @llvm.experimental.noalias.scope.decl(metadata !5992) tail call void @llvm.experimental.noalias.scope.decl(metadata !5995) tail call void @llvm.experimental.noalias.scope.decl(metadata !5997) %217 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 32 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit157.i %iter.sroa.22.0123.i.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit157.i ], [ %229, %bb9.i.i ] %218 = or disjoint i64 %iter.sroa.22.0123.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %217, i64 %iter.sroa.22.0123.i.i %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5995, !noalias !5999 %219 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i, i64 1 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %219, align 8, !alias.scope !5995, !noalias !5999 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !5997, !noalias !6000 %220 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %221 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %222 = shufflevector <4 x double> %221, <4 x double> poison, <4 x i32> %223 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %224 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %225 = fmul <4 x double> %224, %222 %226 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %223, <4 x double> %221, <4 x double> %225) #23 %227 = fadd <4 x double> %220, %226 store <4 x double> %227, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !5992, !noalias !6001 %228 = fsub <4 x double> %220, %226 store <4 x double> %228, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !5992, !noalias !6001 %229 = add nuw nsw i64 %iter.sroa.22.0123.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %218 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %218 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %218 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %217, i64 %218 %ab0.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5995, !noalias !5999 %230 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %218, i64 1 %ab1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %230, align 8, !alias.scope !5995, !noalias !5999 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !5997, !noalias !6000 %231 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %232 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %233 = shufflevector <4 x double> %232, <4 x double> poison, <4 x i32> %234 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %235 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %236 = fmul <4 x double> %235, %233 %237 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %234, <4 x double> %232, <4 x double> %236) #23 %238 = fadd <4 x double> %231, %237 store <4 x double> %238, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5992, !noalias !6001 %239 = fsub <4 x double> %231, %237 store <4 x double> %239, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !5992, !noalias !6001 %exitcond.not.i160.i.1 = icmp eq i64 %229, 32 br i1 %exitcond.not.i160.i.1, label %_ZN4pulp3x862V39vectorize6__impl17hb69db3710d693773E.exit, label %bb9.i.i _ZN4pulp3x862V39vectorize6__impl17hb69db3710d693773E.exit: ; preds = %bb9.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !5937 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hf9a8f6e1c93c6a7cE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !6002 store i64 32, ptr %n.i, align 8, !noalias !6002 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !6002 store i64 %buf.1, ptr %_10.i, align 8, !noalias !6002 %_12.i = icmp eq i64 %buf.1, 32 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !6002 store ptr null, ptr %_16.i, align 8, !noalias !6002 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !6002 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !6002 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !6002 %_20.i = icmp eq i64 %scratch.1, 32 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !6002 store ptr null, ptr %_24.i, align 8, !noalias !6002 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !6002 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !6002 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !6002 %_28.i = icmp eq i64 %w_init.1, 32 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !6002 store ptr null, ptr %_32.i, align 8, !noalias !6002 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !6002 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !6002 store i64 %w.1, ptr %_34.i, align 8, !noalias !6002 %_36.i = icmp eq i64 %w.1, 32 br i1 %_36.i, label %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !6002 store ptr null, ptr %_40.i, align 8, !noalias !6002 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable _ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !6002 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 16 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %4 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %5 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %6 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 10 %7 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 14 %8 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %9 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %10 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 18 %11 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 22 %12 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %13 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 26 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 30 br label %bb48.i.i.i bb48.i.i.i: ; preds = %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit, %bb48.i.i.i %_2.i.i.i = phi i1 [ true, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ false, %bb48.i.i.i ] %iter.i.i.i.sroa.192.0115 = phi i64 [ 0, %_ZN4core4iter6traits8iterator8Iterator3zip17h5a30ceca5af276efE.exit ], [ 1, %bb48.i.i.i ] %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter.i.i.i.sroa.192.0115 %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %3, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %2, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %4, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %1, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %6, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %5, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %7, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %0, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %10, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %9, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %11, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %8, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %13, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %12, i64 %iter.i.i.i.sroa.192.0115 %data.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %iter.i.i.i.sroa.192.0115 %start1.i.i.i.i.i.i = shl nuw nsw i64 %iter.i.i.i.sroa.192.0115, 4 %data.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 %start1.i.i.i.i.i.i %15 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 1 %w1.0.i.i.i = load double, ptr %15, align 8, !noalias !6002, !noundef !3 %16 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %16, align 8, !noalias !6002, !noundef !3 %17 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 2 %w2.0.i.i.i = load double, ptr %17, align 8, !noalias !6002, !noundef !3 %18 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %18, align 8, !noalias !6002, !noundef !3 %19 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 3 %w3.0.i.i.i = load double, ptr %19, align 8, !noalias !6002, !noundef !3 %20 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %20, align 8, !noalias !6002, !noundef !3 %21 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 4 %w4.0.i.i.i = load double, ptr %21, align 8, !noalias !6002, !noundef !3 %22 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 4, i32 1 %w4.1.i.i.i = load double, ptr %22, align 8, !noalias !6002, !noundef !3 %23 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 5 %w5.0.i.i.i = load double, ptr %23, align 8, !noalias !6002, !noundef !3 %24 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 5, i32 1 %w5.1.i.i.i = load double, ptr %24, align 8, !noalias !6002, !noundef !3 %25 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 6 %w6.0.i.i.i = load double, ptr %25, align 8, !noalias !6002, !noundef !3 %26 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 6, i32 1 %w6.1.i.i.i = load double, ptr %26, align 8, !noalias !6002, !noundef !3 %27 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 7 %w7.0.i.i.i = load double, ptr %27, align 8, !noalias !6002, !noundef !3 %28 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 7, i32 1 %w7.1.i.i.i = load double, ptr %28, align 8, !noalias !6002, !noundef !3 %29 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 8 %w8.0.i.i.i = load double, ptr %29, align 8, !noalias !6002, !noundef !3 %30 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 8, i32 1 %w8.1.i.i.i = load double, ptr %30, align 8, !noalias !6002, !noundef !3 %31 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 9 %w9.0.i.i.i = load double, ptr %31, align 8, !noalias !6002, !noundef !3 %32 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 9, i32 1 %w9.1.i.i.i = load double, ptr %32, align 8, !noalias !6002, !noundef !3 %33 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 10 %wa.0.i.i.i = load double, ptr %33, align 8, !noalias !6002, !noundef !3 %34 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 10, i32 1 %wa.1.i.i.i = load double, ptr %34, align 8, !noalias !6002, !noundef !3 %35 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 11 %wb.0.i.i.i = load double, ptr %35, align 8, !noalias !6002, !noundef !3 %36 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 11, i32 1 %wb.1.i.i.i = load double, ptr %36, align 8, !noalias !6002, !noundef !3 %37 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 12 %wc.0.i.i.i = load double, ptr %37, align 8, !noalias !6002, !noundef !3 %38 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 12, i32 1 %wc.1.i.i.i = load double, ptr %38, align 8, !noalias !6002, !noundef !3 %39 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 13 %wd.0.i.i.i = load double, ptr %39, align 8, !noalias !6002, !noundef !3 %40 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 13, i32 1 %wd.1.i.i.i = load double, ptr %40, align 8, !noalias !6002, !noundef !3 %41 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 14 %we.0.i.i.i = load double, ptr %41, align 8, !noalias !6002, !noundef !3 %42 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 14, i32 1 %we.1.i.i.i = load double, ptr %42, align 8, !noalias !6002, !noundef !3 %43 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 15 %wf.0.i.i.i = load double, ptr %43, align 8, !noalias !6002, !noundef !3 %44 = getelementptr inbounds [16 x %"num_complex::Complex"], ptr %w.0, i64 %iter.i.i.i.sroa.192.0115, i64 15, i32 1 %wf.1.i.i.i = load double, ptr %44, align 8, !noalias !6002, !noundef !3 %45 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 4 %46 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2 %47 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1 %48 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 3 %49 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 6 %50 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5 %51 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 7 %52 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 12 %53 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10 %54 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9 %55 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 11 %56 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 14 %57 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13 %58 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 15 %_6.i525.i.i.i = fneg double %w1.1.i.i.i %_6.i522.i.i.i = fneg double %w2.1.i.i.i %_6.i519.i.i.i = fneg double %w3.1.i.i.i %_6.i516.i.i.i = fneg double %w4.1.i.i.i %_6.i513.i.i.i = fneg double %w5.1.i.i.i %_6.i510.i.i.i = fneg double %w6.1.i.i.i %_6.i507.i.i.i = fneg double %w7.1.i.i.i %_6.i504.i.i.i = fneg double %w8.1.i.i.i %_6.i501.i.i.i = fneg double %w9.1.i.i.i %_6.i498.i.i.i = fneg double %wa.1.i.i.i %_6.i495.i.i.i = fneg double %wb.1.i.i.i %_6.i492.i.i.i = fneg double %wc.1.i.i.i %_6.i489.i.i.i = fneg double %wd.1.i.i.i %_6.i486.i.i.i = fneg double %we.1.i.i.i %_6.i483.i.i.i = fneg double %wf.1.i.i.i %59 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %60 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %61 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %62 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %63 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %64 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %65 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %66 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %67 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %68 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %69 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %70 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %71 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %72 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %73 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %74 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6002 %75 = fadd <2 x double> %59, %67 %76 = fadd <2 x double> %63, %71 %77 = fadd <2 x double> %61, %69 %78 = fsub <2 x double> %61, %69 %_0.i.i809 = extractelement <2 x double> %78, i64 0 %79 = fsub <2 x double> %61, %69 %_0.i3.i810 = extractelement <2 x double> %79, i64 1 %80 = fadd <2 x double> %65, %73 %81 = fsub <2 x double> %65, %73 %_0.i.i813 = extractelement <2 x double> %81, i64 0 %82 = fsub <2 x double> %65, %73 %_0.i3.i814 = extractelement <2 x double> %82, i64 1 %83 = fadd <2 x double> %60, %68 %84 = fadd <2 x double> %64, %72 %85 = fadd <2 x double> %62, %70 %86 = fsub <2 x double> %62, %70 %_0.i.i825 = extractelement <2 x double> %86, i64 0 %87 = fsub <2 x double> %62, %70 %_0.i3.i826 = extractelement <2 x double> %87, i64 1 %88 = fadd <2 x double> %66, %74 %89 = fsub <2 x double> %66, %74 %_0.i.i829 = extractelement <2 x double> %89, i64 0 %90 = fsub <2 x double> %66, %74 %_0.i3.i830 = extractelement <2 x double> %90, i64 1 %91 = fadd <2 x double> %75, %76 %92 = fadd <2 x double> %77, %80 %_0.i.i841 = fadd double %_0.i.i809, %_0.i3.i814 %_0.i3.i842 = fsub double %_0.i3.i810, %_0.i.i813 %_0.i.i845 = fsub double %_0.i.i809, %_0.i3.i814 %_0.i3.i846 = fadd double %_0.i3.i810, %_0.i.i813 %93 = fadd <2 x double> %83, %84 %94 = fsub <2 x double> %83, %84 %_0.i.i851 = extractelement <2 x double> %94, i64 0 %95 = fsub <2 x double> %83, %84 %_0.i3.i852 = extractelement <2 x double> %95, i64 1 %96 = fadd <2 x double> %85, %88 %_0.i.i857 = fadd double %_0.i.i825, %_0.i3.i830 %_0.i3.i858 = fsub double %_0.i3.i826, %_0.i.i829 %97 = fsub <2 x double> %85, %88 %_0.i.i859 = extractelement <2 x double> %97, i64 0 %98 = fsub <2 x double> %85, %88 %_0.i3.i860 = extractelement <2 x double> %98, i64 1 %_0.i.i861 = fsub double %_0.i.i825, %_0.i3.i830 %_0.i3.i862 = fadd double %_0.i3.i826, %_0.i.i829 %_0.i.i863 = fadd double %_0.i3.i842, %_0.i.i841 %_0.i3.i864 = fsub double %_0.i3.i842, %_0.i.i841 %_4.i.i.i.i = fmul double %_0.i.i863, 0x3FE6A09E667F3BCD %_7.i.i.i.i = fmul double %_0.i3.i864, 0x3FE6A09E667F3BCD %99 = fadd <2 x double> %91, %92 %_0.i.i883 = fadd double %_0.i3.i858, %_0.i.i857 %_0.i3.i884 = fsub double %_0.i3.i858, %_0.i.i857 %_4.i453.i.i.i = fmul double %_0.i.i883, 0x3FE6A09E667F3BCD %_7.i454.i.i.i = fmul double %_0.i3.i884, 0x3FE6A09E667F3BCD %100 = fadd <2 x double> %93, %96 %_0.i.i891 = fadd double %_0.i.i851, %_0.i3.i860 %_0.i3.i892 = fsub double %_0.i3.i852, %_0.i.i859 %_0.i.i899 = fsub double %_0.i.i851, %_0.i3.i860 %_0.i3.i900 = fadd double %_0.i3.i852, %_0.i.i859 %_0.i.i903 = fadd double %_0.i3.i892, %_0.i.i891 %_0.i3.i904 = fsub double %_0.i3.i892, %_0.i.i891 %_4.i457.i.i.i = fmul double %_0.i.i903, 0x3FE6A09E667F3BCD %_7.i458.i.i.i = fmul double %_0.i3.i904, 0x3FE6A09E667F3BCD %101 = fadd <2 x double> %99, %100 store <2 x double> %101, ptr %data.i.i.i.i.i.i, align 8, !noalias !6002 %102 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 1, i32 1 %103 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 2, i32 1 %104 = fsub <2 x double> %59, %67 %105 = fsub <2 x double> %63, %71 %106 = shufflevector <2 x double> %105, <2 x double> poison, <2 x i32> %107 = fsub <2 x double> %60, %68 %108 = fsub <2 x double> %64, %72 %109 = shufflevector <2 x double> %108, <2 x double> poison, <2 x i32> %110 = fadd <2 x double> %104, %106 %_0.i.i833 = extractelement <2 x double> %110, i64 0 %111 = fsub <2 x double> %104, %106 %_0.i3.i834 = extractelement <2 x double> %111, i64 1 %112 = fsub <2 x double> %104, %106 %113 = fadd <2 x double> %104, %106 %114 = shufflevector <2 x double> %112, <2 x double> %113, <2 x i32> %115 = fadd <2 x double> %107, %109 %_0.i.i849 = extractelement <2 x double> %115, i64 0 %116 = fsub <2 x double> %107, %109 %_0.i3.i850 = extractelement <2 x double> %116, i64 1 %117 = fsub <2 x double> %107, %109 %118 = fadd <2 x double> %107, %109 %119 = shufflevector <2 x double> %117, <2 x double> %118, <2 x i32> %120 = insertelement <2 x double> poison, double %_0.i.i845, i64 0 %121 = insertelement <2 x double> poison, double %_0.i.i845, i64 0 %122 = insertelement <2 x double> poison, double %_0.i3.i846, i64 0 %123 = insertelement <2 x double> poison, double %_0.i3.i846, i64 0 %124 = fsub <2 x double> %121, %123 %125 = fadd <2 x double> %120, %122 %126 = shufflevector <2 x double> %124, <2 x double> %125, <2 x i32> %127 = fmul <2 x double> %126, %_0.i.i869 = fadd double %_0.i.i833, %_4.i.i.i.i %_0.i3.i870 = fadd double %_0.i3.i834, %_7.i.i.i.i %128 = fsub <2 x double> %114, %127 %_0.i.i877 = fsub double %_0.i.i833, %_4.i.i.i.i %_0.i3.i878 = fsub double %_0.i3.i834, %_7.i.i.i.i %129 = insertelement <2 x double> poison, double %_0.i.i861, i64 0 %130 = insertelement <2 x double> poison, double %_0.i.i861, i64 0 %131 = insertelement <2 x double> poison, double %_0.i3.i862, i64 0 %132 = insertelement <2 x double> poison, double %_0.i3.i862, i64 0 %133 = fsub <2 x double> %130, %132 %134 = fadd <2 x double> %129, %131 %135 = shufflevector <2 x double> %133, <2 x double> %134, <2 x i32> %136 = fmul <2 x double> %135, %_0.i.i889 = fadd double %_0.i.i849, %_4.i453.i.i.i %_0.i3.i890 = fadd double %_0.i3.i850, %_7.i454.i.i.i %137 = fsub <2 x double> %119, %136 %_0.i.i897 = fsub double %_0.i.i849, %_4.i453.i.i.i %_0.i3.i898 = fsub double %_0.i3.i850, %_7.i454.i.i.i %b.i472.i.i.i = fmul double %_0.i3.i890, 0x3FD87DE2A6AEA964 %138 = tail call double @llvm.fma.f64(double %_0.i.i889, double 0x3FED906BCF328D46, double %b.i472.i.i.i) %b1.i473.i.i.i = fmul double %_0.i.i889, 0xBFD87DE2A6AEA964 %139 = tail call double @llvm.fma.f64(double %_0.i3.i890, double 0x3FED906BCF328D46, double %b1.i473.i.i.i) %140 = fmul <2 x double> %137, %141 = shufflevector <2 x double> %140, <2 x double> poison, <2 x i32> %142 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %137, <2 x double> , <2 x double> %141) %b.i469.i.i.i = fmul double %_0.i3.i898, 0xBFED906BCF328D46 %143 = tail call double @llvm.fma.f64(double %_0.i.i897, double 0x3FD87DE2A6AEA964, double %b.i469.i.i.i) %b1.i470.i.i.i = fmul double %_0.i.i897, 0x3FED906BCF328D46 %144 = tail call double @llvm.fma.f64(double %_0.i3.i898, double 0x3FD87DE2A6AEA964, double %b1.i470.i.i.i) %_0.i.i909 = fadd double %_0.i.i869, %138 %_0.i3.i910 = fadd double %_0.i3.i870, %139 %b.i526.i.i.i = fmul double %_0.i3.i910, %_6.i525.i.i.i %145 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_0.i.i909, double %b.i526.i.i.i) %b1.i527.i.i.i = fmul double %w1.1.i.i.i, %_0.i.i909 %146 = tail call double @llvm.fma.f64(double %w1.0.i.i.i, double %_0.i3.i910, double %b1.i527.i.i.i) store double %145, ptr %47, align 8, !noalias !6002 store double %146, ptr %102, align 8, !noalias !6002 %147 = fadd <2 x double> %128, %142 %148 = shufflevector <2 x double> %147, <2 x double> poison, <2 x i32> %149 = insertelement <2 x double> poison, double %_6.i519.i.i.i, i64 0 %150 = insertelement <2 x double> %149, double %w3.1.i.i.i, i64 1 %151 = fmul <2 x double> %148, %150 %152 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %153 = shufflevector <2 x double> %152, <2 x double> poison, <2 x i32> zeroinitializer %154 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %153, <2 x double> %147, <2 x double> %151) store <2 x double> %154, ptr %48, align 8, !noalias !6002 %155 = fsub <2 x double> %91, %92 %156 = fsub <2 x double> %93, %96 %157 = shufflevector <2 x double> %156, <2 x double> poison, <2 x i32> %158 = fadd <2 x double> %155, %157 %159 = fsub <2 x double> %155, %157 %160 = shufflevector <2 x double> %158, <2 x double> %159, <2 x i32> %161 = shufflevector <2 x double> %160, <2 x double> poison, <2 x i32> %162 = insertelement <2 x double> poison, double %_6.i516.i.i.i, i64 0 %163 = insertelement <2 x double> %162, double %w4.1.i.i.i, i64 1 %164 = fmul <2 x double> %161, %163 %165 = insertelement <2 x double> poison, double %w4.0.i.i.i, i64 0 %166 = shufflevector <2 x double> %165, <2 x double> poison, <2 x i32> zeroinitializer %167 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %166, <2 x double> %160, <2 x double> %164) store <2 x double> %167, ptr %45, align 8, !noalias !6002 %_0.i.i917 = fsub double %_0.i.i877, %143 %_0.i3.i918 = fsub double %_0.i3.i878, %144 %b.i514.i.i.i = fmul double %_0.i3.i918, %_6.i513.i.i.i %168 = tail call double @llvm.fma.f64(double %w5.0.i.i.i, double %_0.i.i917, double %b.i514.i.i.i) %b1.i515.i.i.i = fmul double %w5.1.i.i.i, %_0.i.i917 %169 = tail call double @llvm.fma.f64(double %w5.0.i.i.i, double %_0.i3.i918, double %b1.i515.i.i.i) store double %168, ptr %50, align 8, !noalias !6002 %170 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 5, i32 1 store double %169, ptr %170, align 8, !noalias !6002 %171 = fsub <2 x double> %75, %76 %172 = fsub <2 x double> %77, %80 %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> %174 = fadd <2 x double> %171, %173 %_0.i.i871 = extractelement <2 x double> %174, i64 0 %175 = fsub <2 x double> %171, %173 %_0.i3.i872 = extractelement <2 x double> %175, i64 1 %176 = fsub <2 x double> %171, %173 %177 = fadd <2 x double> %171, %173 %178 = shufflevector <2 x double> %176, <2 x double> %177, <2 x i32> %179 = insertelement <2 x double> poison, double %_0.i.i899, i64 0 %180 = insertelement <2 x double> poison, double %_0.i.i899, i64 0 %181 = insertelement <2 x double> poison, double %_0.i3.i900, i64 0 %182 = insertelement <2 x double> poison, double %_0.i3.i900, i64 0 %183 = fsub <2 x double> %180, %182 %184 = fadd <2 x double> %179, %181 %185 = shufflevector <2 x double> %183, <2 x double> %184, <2 x i32> %186 = fmul <2 x double> %185, %_0.i.i911 = fadd double %_0.i.i871, %_4.i457.i.i.i %_0.i3.i912 = fadd double %_0.i3.i872, %_7.i458.i.i.i %b.i523.i.i.i = fmul double %_0.i3.i912, %_6.i522.i.i.i %187 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_0.i.i911, double %b.i523.i.i.i) %b1.i524.i.i.i = fmul double %w2.1.i.i.i, %_0.i.i911 %188 = tail call double @llvm.fma.f64(double %w2.0.i.i.i, double %_0.i3.i912, double %b1.i524.i.i.i) store double %187, ptr %46, align 8, !noalias !6002 store double %188, ptr %103, align 8, !noalias !6002 %189 = fsub <2 x double> %178, %186 %190 = shufflevector <2 x double> %189, <2 x double> poison, <2 x i32> %191 = insertelement <2 x double> poison, double %_6.i510.i.i.i, i64 0 %192 = insertelement <2 x double> %191, double %w6.1.i.i.i, i64 1 %193 = fmul <2 x double> %190, %192 %194 = insertelement <2 x double> poison, double %w6.0.i.i.i, i64 0 %195 = shufflevector <2 x double> %194, <2 x double> poison, <2 x i32> zeroinitializer %196 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %195, <2 x double> %189, <2 x double> %193) store <2 x double> %196, ptr %49, align 8, !noalias !6002 %197 = insertelement <4 x double> poison, double %_6.i507.i.i.i, i64 0 %198 = insertelement <4 x double> %197, double %w7.1.i.i.i, i64 1 %199 = insertelement <4 x double> %198, double %_6.i504.i.i.i, i64 2 %200 = insertelement <4 x double> %199, double %w8.1.i.i.i, i64 3 %201 = insertelement <4 x double> poison, double %w7.0.i.i.i, i64 0 %202 = insertelement <4 x double> %201, double %w8.0.i.i.i, i64 1 %203 = shufflevector <4 x double> %202, <4 x double> poison, <4 x i32> %_0.i.i925 = fsub double %_0.i.i869, %138 %_0.i3.i926 = fsub double %_0.i3.i870, %139 %b.i502.i.i.i = fmul double %_0.i3.i926, %_6.i501.i.i.i %204 = tail call double @llvm.fma.f64(double %w9.0.i.i.i, double %_0.i.i925, double %b.i502.i.i.i) %b1.i503.i.i.i = fmul double %w9.1.i.i.i, %_0.i.i925 %205 = tail call double @llvm.fma.f64(double %w9.0.i.i.i, double %_0.i3.i926, double %b1.i503.i.i.i) store double %204, ptr %54, align 8, !noalias !6002 %206 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 9, i32 1 store double %205, ptr %206, align 8, !noalias !6002 %_0.i.i927 = fsub double %_0.i.i871, %_4.i457.i.i.i %_0.i3.i928 = fsub double %_0.i3.i872, %_7.i458.i.i.i %b.i499.i.i.i = fmul double %_0.i3.i928, %_6.i498.i.i.i %207 = tail call double @llvm.fma.f64(double %wa.0.i.i.i, double %_0.i.i927, double %b.i499.i.i.i) %b1.i500.i.i.i = fmul double %wa.1.i.i.i, %_0.i.i927 %208 = tail call double @llvm.fma.f64(double %wa.0.i.i.i, double %_0.i3.i928, double %b1.i500.i.i.i) store double %207, ptr %53, align 8, !noalias !6002 %209 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 10, i32 1 store double %208, ptr %209, align 8, !noalias !6002 %210 = fsub <2 x double> %128, %142 %211 = shufflevector <2 x double> %210, <2 x double> poison, <2 x i32> %212 = insertelement <2 x double> poison, double %_6.i495.i.i.i, i64 0 %213 = insertelement <2 x double> %212, double %wb.1.i.i.i, i64 1 %214 = fmul <2 x double> %211, %213 %215 = insertelement <2 x double> poison, double %wb.0.i.i.i, i64 0 %216 = shufflevector <2 x double> %215, <2 x double> poison, <2 x i32> zeroinitializer %217 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %216, <2 x double> %210, <2 x double> %214) store <2 x double> %217, ptr %55, align 8, !noalias !6002 %218 = shufflevector <2 x double> %159, <2 x double> %158, <2 x i32> %219 = shufflevector <2 x double> %218, <2 x double> poison, <2 x i32> %220 = insertelement <2 x double> poison, double %_6.i492.i.i.i, i64 0 %221 = insertelement <2 x double> %220, double %wc.1.i.i.i, i64 1 %222 = fmul <2 x double> %219, %221 %223 = insertelement <2 x double> poison, double %wc.0.i.i.i, i64 0 %224 = shufflevector <2 x double> %223, <2 x double> poison, <2 x i32> zeroinitializer %225 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %224, <2 x double> %218, <2 x double> %222) store <2 x double> %225, ptr %52, align 8, !noalias !6002 %_0.i.i933 = fadd double %_0.i.i877, %143 %_0.i3.i934 = fadd double %_0.i3.i878, %144 %b.i490.i.i.i = fmul double %_0.i3.i934, %_6.i489.i.i.i %226 = tail call double @llvm.fma.f64(double %wd.0.i.i.i, double %_0.i.i933, double %b.i490.i.i.i) %b1.i491.i.i.i = fmul double %wd.1.i.i.i, %_0.i.i933 %227 = tail call double @llvm.fma.f64(double %wd.0.i.i.i, double %_0.i3.i934, double %b1.i491.i.i.i) store double %226, ptr %57, align 8, !noalias !6002 %228 = getelementptr inbounds %"num_complex::Complex", ptr %data.i.i.i.i.i.i, i64 13, i32 1 store double %227, ptr %228, align 8, !noalias !6002 %229 = fadd <2 x double> %178, %186 %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> %231 = insertelement <2 x double> poison, double %_6.i486.i.i.i, i64 0 %232 = insertelement <2 x double> %231, double %we.1.i.i.i, i64 1 %233 = fmul <2 x double> %230, %232 %234 = insertelement <2 x double> poison, double %we.0.i.i.i, i64 0 %235 = shufflevector <2 x double> %234, <2 x double> poison, <2 x i32> zeroinitializer %236 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %235, <2 x double> %229, <2 x double> %233) store <2 x double> %236, ptr %56, align 8, !noalias !6002 %237 = fadd <2 x double> %114, %127 %238 = fadd <2 x double> %119, %136 %239 = fmul <2 x double> %238, %240 = shufflevector <2 x double> %239, <2 x double> poison, <2 x i32> %241 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %238, <2 x double> , <2 x double> %240) %242 = shufflevector <2 x double> %99, <2 x double> %237, <4 x i32> %243 = shufflevector <2 x double> %100, <2 x double> %241, <4 x i32> %244 = fsub <4 x double> %242, %243 %245 = shufflevector <4 x double> %244, <4 x double> poison, <4 x i32> %246 = fmul <4 x double> %245, %200 %247 = tail call <4 x double> @llvm.fma.v4f64(<4 x double> %203, <4 x double> %244, <4 x double> %246) store <4 x double> %247, ptr %51, align 8, !noalias !6002 %248 = fadd <2 x double> %237, %241 %249 = shufflevector <2 x double> %248, <2 x double> poison, <2 x i32> %250 = insertelement <2 x double> poison, double %_6.i483.i.i.i, i64 0 %251 = insertelement <2 x double> %250, double %wf.1.i.i.i, i64 1 %252 = fmul <2 x double> %249, %251 %253 = insertelement <2 x double> poison, double %wf.0.i.i.i, i64 0 %254 = shufflevector <2 x double> %253, <2 x double> poison, <2 x i32> zeroinitializer %255 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %254, <2 x double> %248, <2 x double> %252) store <2 x double> %255, ptr %58, align 8, !noalias !6002 br i1 %_2.i.i.i, label %bb48.i.i.i, label %vector.body vector.body: ; preds = %bb48.i.i.i %256 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 16 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !6002 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %256, align 8, !noalias !6002 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %257 = fadd <4 x double> %strided.vec, %strided.vec3 %258 = fadd <4 x double> %strided.vec1, %strided.vec4 %259 = fsub <4 x double> %strided.vec, %strided.vec3 %260 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %257, <4 x double> %258, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !6002 %interleaved.vec5 = shufflevector <4 x double> %259, <4 x double> %260, <8 x i32> store <8 x double> %interleaved.vec5, ptr %0, align 8, !noalias !6002 %261 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %262 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 20 %wide.vec.1 = load <8 x double>, ptr %261, align 8, !noalias !6002 %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %strided.vec1.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> poison, <4 x i32> %wide.vec2.1 = load <8 x double>, ptr %262, align 8, !noalias !6002 %strided.vec3.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %strided.vec4.1 = shufflevector <8 x double> %wide.vec2.1, <8 x double> poison, <4 x i32> %263 = fadd <4 x double> %strided.vec.1, %strided.vec3.1 %264 = fadd <4 x double> %strided.vec1.1, %strided.vec4.1 %265 = fsub <4 x double> %strided.vec.1, %strided.vec3.1 %266 = fsub <4 x double> %strided.vec1.1, %strided.vec4.1 %267 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec.1 = shufflevector <4 x double> %263, <4 x double> %264, <8 x i32> store <8 x double> %interleaved.vec.1, ptr %267, align 8, !noalias !6002 %268 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 20 %interleaved.vec5.1 = shufflevector <4 x double> %265, <4 x double> %266, <8 x i32> store <8 x double> %interleaved.vec5.1, ptr %268, align 8, !noalias !6002 %269 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 8 %270 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 24 %wide.vec.2 = load <8 x double>, ptr %269, align 8, !noalias !6002 %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %strided.vec1.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> poison, <4 x i32> %wide.vec2.2 = load <8 x double>, ptr %270, align 8, !noalias !6002 %strided.vec3.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %strided.vec4.2 = shufflevector <8 x double> %wide.vec2.2, <8 x double> poison, <4 x i32> %271 = fadd <4 x double> %strided.vec.2, %strided.vec3.2 %272 = fadd <4 x double> %strided.vec1.2, %strided.vec4.2 %273 = fsub <4 x double> %strided.vec.2, %strided.vec3.2 %274 = fsub <4 x double> %strided.vec1.2, %strided.vec4.2 %275 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 8 %interleaved.vec.2 = shufflevector <4 x double> %271, <4 x double> %272, <8 x i32> store <8 x double> %interleaved.vec.2, ptr %275, align 8, !noalias !6002 %276 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 24 %interleaved.vec5.2 = shufflevector <4 x double> %273, <4 x double> %274, <8 x i32> store <8 x double> %interleaved.vec5.2, ptr %276, align 8, !noalias !6002 %277 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 12 %278 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 28 %wide.vec.3 = load <8 x double>, ptr %277, align 8, !noalias !6002 %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %strided.vec1.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> poison, <4 x i32> %wide.vec2.3 = load <8 x double>, ptr %278, align 8, !noalias !6002 %strided.vec3.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %strided.vec4.3 = shufflevector <8 x double> %wide.vec2.3, <8 x double> poison, <4 x i32> %279 = fadd <4 x double> %strided.vec.3, %strided.vec3.3 %280 = fadd <4 x double> %strided.vec1.3, %strided.vec4.3 %281 = fsub <4 x double> %strided.vec.3, %strided.vec3.3 %282 = fsub <4 x double> %strided.vec1.3, %strided.vec4.3 %283 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 12 %interleaved.vec.3 = shufflevector <4 x double> %279, <4 x double> %280, <8 x i32> store <8 x double> %interleaved.vec.3, ptr %283, align 8, !noalias !6002 %284 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 28 %interleaved.vec5.3 = shufflevector <4 x double> %281, <4 x double> %282, <8 x i32> store <8 x double> %interleaved.vec5.3, ptr %284, align 8, !noalias !6002 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !6002 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfaa8b062e0401dd7E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !6005 store i64 256, ptr %n.i.i, align 8, !noalias !6005 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !6005 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !6005 %_12.i.i = icmp eq i64 %buf.1, 256 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !6005 store ptr null, ptr %_16.i.i, align 8, !noalias !6005 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !6005 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !6005 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !6005 %_20.i.i = icmp eq i64 %scratch.1, 256 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !6005 store ptr null, ptr %_24.i.i, align 8, !noalias !6005 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !6005 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !6005 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !6005 %_28.i.i = icmp eq i64 %w_init.1, 256 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !6005 store ptr null, ptr %_32.i.i, align 8, !noalias !6005 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !6005 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !6005 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !6005 %_36.i.i = icmp eq i64 %w.1, 256 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0177a04c8539dec0E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !6005 store ptr null, ptr %_40.i.i, align 8, !noalias !6005 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0177a04c8539dec0E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !6005 %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 br label %bb18.i.i.i.i.i bb18.i.i.i.i.i: ; preds = %bb18.i.i.i.i.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0177a04c8539dec0E.exit.i" %iter6.i.i.i.i.sroa.22.0230.i = phi i64 [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0177a04c8539dec0E.exit.i" ], [ %7, %bb18.i.i.i.i.i ] %4 = or disjoint i64 %iter6.i.i.i.i.sroa.22.0230.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.i.i.i.i.sroa.22.0230.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.i.i.i.i.sroa.22.0230.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.i.i.i.i.sroa.22.0230.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.i.i.i.i.sroa.22.0230.i %_51.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !6010 %_52.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !6010 %5 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i %6 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i, %_52.i.i.i.i.sroa.0.0.copyload.i store <4 x double> %5, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !6010 store <4 x double> %6, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !6010 %7 = add nuw nsw i64 %iter6.i.i.i.i.sroa.22.0230.i, 2 %_3.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %4 %_3.i2.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %4 %_3.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %4 %_3.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %4 %_51.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.1, align 8, !noalias !6010 %_52.i.i.i.i.sroa.0.0.copyload.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.1, align 8, !noalias !6010 %8 = fadd <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 %9 = fsub <4 x double> %_51.i.i.i.i.sroa.0.0.copyload.i.1, %_52.i.i.i.i.sroa.0.0.copyload.i.1 store <4 x double> %8, ptr %_3.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !6010 store <4 x double> %9, ptr %_3.i2.i.i.i.i.i.i.i.i.1, align 8, !noalias !6010 %exitcond.not.i.1 = icmp eq i64 %7, 64 br i1 %exitcond.not.i.1, label %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i", label %bb18.i.i.i.i.i "_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i": ; preds = %bb18.i.i.i.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6017) tail call void @llvm.experimental.noalias.scope.decl(metadata !6020) tail call void @llvm.experimental.noalias.scope.decl(metadata !6022) %10 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i.i = load double, ptr %10, align 8, !alias.scope !6022, !noalias !6024, !noundef !3 %11 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %11, align 8, !alias.scope !6022, !noalias !6024, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %12 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %13 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %14 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %15 = shufflevector <4 x double> %12, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i.i bb26.us.i.i: ; preds = %bb26.us.i.i, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i" %iter6.sroa.22.0209.us.i.i = phi i64 [ 0, %"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE.exit.i" ], [ %22, %bb26.us.i.i ] %16 = or disjoint i64 %iter6.sroa.22.0209.us.i.i, 1 %_3.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter6.sroa.22.0209.us.i.i %_3.i2.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter6.sroa.22.0209.us.i.i %_3.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter6.sroa.22.0209.us.i.i %_3.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %iter6.sroa.22.0209.us.i.i %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6020, !noalias !6025 %_62.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.i, align 8, !alias.scope !6020, !noalias !6025 %17 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> poison, <4 x i32> %18 = fmul <4 x double> %15, %17 %19 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i.i, <4 x double> %18) #23 %20 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %19 store <4 x double> %20, ptr %_3.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6017, !noalias !6026 %21 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %19 store <4 x double> %21, ptr %_3.i2.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6017, !noalias !6026 %22 = add nuw nsw i64 %iter6.sroa.22.0209.us.i.i, 2 %_3.i.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %16 %_3.i2.i.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %16 %_3.i.i.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %16 %_3.i.i.i.i.us.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %13, i64 %16 %a.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !6020, !noalias !6025 %_62.sroa.0.0.copyload.us.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i.i.1, align 8, !alias.scope !6020, !noalias !6025 %23 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.i.1, <4 x double> poison, <4 x i32> %24 = fmul <4 x double> %15, %23 %25 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %14, <4 x double> %_62.sroa.0.0.copyload.us.i.i.1, <4 x double> %24) #23 %26 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %25 store <4 x double> %26, ptr %_3.i.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !6017, !noalias !6026 %27 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i.1, %25 store <4 x double> %27, ptr %_3.i2.i.i.i.i.i.i.i.us.i.i.1, align 8, !alias.scope !6017, !noalias !6026 %exitcond.not.i.i.1 = icmp eq i64 %22, 32 br i1 %exitcond.not.i.i.1, label %bb24.bb15.loopexit_crit_edge.us.i.i, label %bb26.us.i.i bb24.bb15.loopexit_crit_edge.us.i.i: ; preds = %bb26.us.i.i %data.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %data.i5.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %28 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i.1.i = load double, ptr %28, align 8, !alias.scope !6022, !noalias !6024, !noundef !3 %29 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i.1.i = load double, ptr %29, align 8, !alias.scope !6022, !noalias !6024, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i.1.i = insertelement <2 x double> poison, double %w1.0.us.i.1.i, i64 0 %30 = insertelement <4 x double> poison, double %w1.1.us.i.1.i, i64 0 %31 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %32 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i.1.i, <2 x double> poison, <4 x i32> zeroinitializer %33 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> zeroinitializer br label %bb26.us.i.1.i bb26.us.i.1.i: ; preds = %bb26.us.i.1.i, %bb24.bb15.loopexit_crit_edge.us.i.i %iter6.sroa.22.0209.us.i.1.i = phi i64 [ 0, %bb24.bb15.loopexit_crit_edge.us.i.i ], [ %40, %bb26.us.i.1.i ] %34 = or disjoint i64 %iter6.sroa.22.0209.us.i.1.i, 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i2.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter6.sroa.22.0209.us.i.1.i %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %iter6.sroa.22.0209.us.i.1.i %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6020, !noalias !6025 %_62.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !6020, !noalias !6025 %35 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> poison, <4 x i32> %36 = fmul <4 x double> %33, %35 %37 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i, <4 x double> %36) #23 %38 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %37 store <4 x double> %38, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6017, !noalias !6026 %39 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %37 store <4 x double> %39, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6017, !noalias !6026 %40 = add nuw nsw i64 %iter6.sroa.22.0209.us.i.1.i, 2 %_3.i.i.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.1.i, i64 %34 %_3.i2.i.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i.1.i, i64 %34 %_3.i.i.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %34 %_3.i.i.i.i.us.i.1.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %31, i64 %34 %a.sroa.0.0.copyload.us.i.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !6020, !noalias !6025 %_62.sroa.0.0.copyload.us.i.1.i.1 = load <4 x double>, ptr %_3.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !6020, !noalias !6025 %41 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i.1.i.1, <4 x double> poison, <4 x i32> %42 = fmul <4 x double> %33, %41 %43 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %_62.sroa.0.0.copyload.us.i.1.i.1, <4 x double> %42) #23 %44 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i.1, %43 store <4 x double> %44, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !6017, !noalias !6026 %45 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i.1, %43 store <4 x double> %45, ptr %_3.i2.i.i.i.i.i.i.i.us.i.1.i.1, align 8, !alias.scope !6017, !noalias !6026 %exitcond.not.i.1.i.1 = icmp eq i64 %40, 32 br i1 %exitcond.not.i.1.i.1, label %bb24.bb15.loopexit_crit_edge.us.i.1.i, label %bb26.us.i.1.i bb24.bb15.loopexit_crit_edge.us.i.1.i: ; preds = %bb26.us.i.1.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6027) tail call void @llvm.experimental.noalias.scope.decl(metadata !6030) tail call void @llvm.experimental.noalias.scope.decl(metadata !6032) br label %bb17.us.i48.i bb17.us.i48.i: ; preds = %bb17.us.i48.i, %bb24.bb15.loopexit_crit_edge.us.i.1.i %iter.sroa.38.0211.us.i49.i = phi i64 [ %132, %bb17.us.i48.i ], [ 0, %bb24.bb15.loopexit_crit_edge.us.i.1.i ] %start1.i.i.i.i.i.i.i.i.us.i50.i = shl i64 %iter.sroa.38.0211.us.i49.i, 4 %data.i.i.i.i.i.i.i.i.us.i51.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i50.i %start1.i.i.i.i.us.i52.i = shl i64 %iter.sroa.38.0211.us.i49.i, 5 %data.i.i.i.i.i.i.us.i53.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i52.i %data.i5.i.i.i.i.i.i.i.us.i54.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i50.i %46 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i52.i, i64 1 %w1.0.us.i55.i = load double, ptr %46, align 8, !alias.scope !6032, !noalias !6034, !noundef !3 %47 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i52.i, i64 1, i32 1 %w1.1.us.i56.i = load double, ptr %47, align 8, !alias.scope !6032, !noalias !6034, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w1.0.us.i55.i, i64 0 %48 = insertelement <4 x double> poison, double %w1.1.us.i56.i, i64 0 %49 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 16 %50 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %51 = shufflevector <4 x double> %48, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i64.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i53.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.i = load <4 x double>, ptr %49, align 8, !alias.scope !6030, !noalias !6035 %52 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.i, <4 x double> poison, <4 x i32> %53 = fmul <4 x double> %51, %52 %54 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.i, <4 x double> %53) #23 %55 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.i, %54 store <4 x double> %55, ptr %data.i.i.i.i.i.i.i.i.us.i51.i, align 8, !alias.scope !6027, !noalias !6036 %56 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.i, %54 store <4 x double> %56, ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i61.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 1 %_3.i.i.i.i.i.i.us.i62.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 1 %_3.i.i.i.i.us.i63.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 17 %a.sroa.0.0.copyload.us.i64.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.1.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.1.i, align 8, !alias.scope !6030, !noalias !6035 %57 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.1.i, <4 x double> poison, <4 x i32> %58 = fmul <4 x double> %51, %57 %59 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.1.i, <4 x double> %58) #23 %60 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.1.i, %59 store <4 x double> %60, ptr %_3.i.i.i.i.i.i.i.i.us.i60.1.i, align 8, !alias.scope !6027, !noalias !6036 %61 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.1.i, %59 store <4 x double> %61, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.1.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i61.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 2 %_3.i.i.i.i.i.i.us.i62.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 2 %_3.i.i.i.i.us.i63.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 18 %a.sroa.0.0.copyload.us.i64.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.2.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.2.i, align 8, !alias.scope !6030, !noalias !6035 %62 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.2.i, <4 x double> poison, <4 x i32> %63 = fmul <4 x double> %51, %62 %64 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.2.i, <4 x double> %63) #23 %65 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.2.i, %64 store <4 x double> %65, ptr %_3.i.i.i.i.i.i.i.i.us.i60.2.i, align 8, !alias.scope !6027, !noalias !6036 %66 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.2.i, %64 store <4 x double> %66, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.2.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i61.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 3 %_3.i.i.i.i.i.i.us.i62.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 3 %_3.i.i.i.i.us.i63.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 19 %a.sroa.0.0.copyload.us.i64.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.3.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.3.i, align 8, !alias.scope !6030, !noalias !6035 %67 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.3.i, <4 x double> poison, <4 x i32> %68 = fmul <4 x double> %51, %67 %69 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.3.i, <4 x double> %68) #23 %70 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.3.i, %69 store <4 x double> %70, ptr %_3.i.i.i.i.i.i.i.i.us.i60.3.i, align 8, !alias.scope !6027, !noalias !6036 %71 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.3.i, %69 store <4 x double> %71, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.3.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i61.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 4 %_3.i.i.i.i.i.i.us.i62.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 4 %_3.i.i.i.i.us.i63.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 20 %a.sroa.0.0.copyload.us.i64.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.4.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.4.i, align 8, !alias.scope !6030, !noalias !6035 %72 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.4.i, <4 x double> poison, <4 x i32> %73 = fmul <4 x double> %51, %72 %74 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.4.i, <4 x double> %73) #23 %75 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.4.i, %74 store <4 x double> %75, ptr %_3.i.i.i.i.i.i.i.i.us.i60.4.i, align 8, !alias.scope !6027, !noalias !6036 %76 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.4.i, %74 store <4 x double> %76, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.4.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i61.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 5 %_3.i.i.i.i.i.i.us.i62.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 5 %_3.i.i.i.i.us.i63.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 21 %a.sroa.0.0.copyload.us.i64.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.5.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.5.i, align 8, !alias.scope !6030, !noalias !6035 %77 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.5.i, <4 x double> poison, <4 x i32> %78 = fmul <4 x double> %51, %77 %79 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.5.i, <4 x double> %78) #23 %80 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.5.i, %79 store <4 x double> %80, ptr %_3.i.i.i.i.i.i.i.i.us.i60.5.i, align 8, !alias.scope !6027, !noalias !6036 %81 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.5.i, %79 store <4 x double> %81, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.5.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i61.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 6 %_3.i.i.i.i.i.i.us.i62.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 6 %_3.i.i.i.i.us.i63.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 22 %a.sroa.0.0.copyload.us.i64.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.6.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.6.i, align 8, !alias.scope !6030, !noalias !6035 %82 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.6.i, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %51, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.6.i, <4 x double> %83) #23 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.6.i, %84 store <4 x double> %85, ptr %_3.i.i.i.i.i.i.i.i.us.i60.6.i, align 8, !alias.scope !6027, !noalias !6036 %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.6.i, %84 store <4 x double> %86, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.6.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i61.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 7 %_3.i.i.i.i.i.i.us.i62.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 7 %_3.i.i.i.i.us.i63.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 23 %a.sroa.0.0.copyload.us.i64.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.7.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.7.i, align 8, !alias.scope !6030, !noalias !6035 %87 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.7.i, <4 x double> poison, <4 x i32> %88 = fmul <4 x double> %51, %87 %89 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.7.i, <4 x double> %88) #23 %90 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.7.i, %89 store <4 x double> %90, ptr %_3.i.i.i.i.i.i.i.i.us.i60.7.i, align 8, !alias.scope !6027, !noalias !6036 %91 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.7.i, %89 store <4 x double> %91, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.7.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 8 %_3.i2.i.i.i.i.i.i.i.us.i61.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 8 %_3.i.i.i.i.i.i.us.i62.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 8 %_3.i.i.i.i.us.i63.8.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 24 %a.sroa.0.0.copyload.us.i64.8.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.8.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.8.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.8.i, align 8, !alias.scope !6030, !noalias !6035 %92 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.8.i, <4 x double> poison, <4 x i32> %93 = fmul <4 x double> %51, %92 %94 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.8.i, <4 x double> %93) #23 %95 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.8.i, %94 store <4 x double> %95, ptr %_3.i.i.i.i.i.i.i.i.us.i60.8.i, align 8, !alias.scope !6027, !noalias !6036 %96 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.8.i, %94 store <4 x double> %96, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.8.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 9 %_3.i2.i.i.i.i.i.i.i.us.i61.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 9 %_3.i.i.i.i.i.i.us.i62.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 9 %_3.i.i.i.i.us.i63.9.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 25 %a.sroa.0.0.copyload.us.i64.9.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.9.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.9.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.9.i, align 8, !alias.scope !6030, !noalias !6035 %97 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.9.i, <4 x double> poison, <4 x i32> %98 = fmul <4 x double> %51, %97 %99 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.9.i, <4 x double> %98) #23 %100 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.9.i, %99 store <4 x double> %100, ptr %_3.i.i.i.i.i.i.i.i.us.i60.9.i, align 8, !alias.scope !6027, !noalias !6036 %101 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.9.i, %99 store <4 x double> %101, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.9.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 10 %_3.i2.i.i.i.i.i.i.i.us.i61.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 10 %_3.i.i.i.i.i.i.us.i62.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 10 %_3.i.i.i.i.us.i63.10.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 26 %a.sroa.0.0.copyload.us.i64.10.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.10.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.10.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.10.i, align 8, !alias.scope !6030, !noalias !6035 %102 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.10.i, <4 x double> poison, <4 x i32> %103 = fmul <4 x double> %51, %102 %104 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.10.i, <4 x double> %103) #23 %105 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.10.i, %104 store <4 x double> %105, ptr %_3.i.i.i.i.i.i.i.i.us.i60.10.i, align 8, !alias.scope !6027, !noalias !6036 %106 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.10.i, %104 store <4 x double> %106, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.10.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 11 %_3.i2.i.i.i.i.i.i.i.us.i61.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 11 %_3.i.i.i.i.i.i.us.i62.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 11 %_3.i.i.i.i.us.i63.11.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 27 %a.sroa.0.0.copyload.us.i64.11.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.11.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.11.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.11.i, align 8, !alias.scope !6030, !noalias !6035 %107 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.11.i, <4 x double> poison, <4 x i32> %108 = fmul <4 x double> %51, %107 %109 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.11.i, <4 x double> %108) #23 %110 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.11.i, %109 store <4 x double> %110, ptr %_3.i.i.i.i.i.i.i.i.us.i60.11.i, align 8, !alias.scope !6027, !noalias !6036 %111 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.11.i, %109 store <4 x double> %111, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.11.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 12 %_3.i2.i.i.i.i.i.i.i.us.i61.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 12 %_3.i.i.i.i.i.i.us.i62.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 12 %_3.i.i.i.i.us.i63.12.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 28 %a.sroa.0.0.copyload.us.i64.12.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.12.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.12.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.12.i, align 8, !alias.scope !6030, !noalias !6035 %112 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.12.i, <4 x double> poison, <4 x i32> %113 = fmul <4 x double> %51, %112 %114 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.12.i, <4 x double> %113) #23 %115 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.12.i, %114 store <4 x double> %115, ptr %_3.i.i.i.i.i.i.i.i.us.i60.12.i, align 8, !alias.scope !6027, !noalias !6036 %116 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.12.i, %114 store <4 x double> %116, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.12.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 13 %_3.i2.i.i.i.i.i.i.i.us.i61.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 13 %_3.i.i.i.i.i.i.us.i62.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 13 %_3.i.i.i.i.us.i63.13.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 29 %a.sroa.0.0.copyload.us.i64.13.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.13.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.13.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.13.i, align 8, !alias.scope !6030, !noalias !6035 %117 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.13.i, <4 x double> poison, <4 x i32> %118 = fmul <4 x double> %51, %117 %119 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.13.i, <4 x double> %118) #23 %120 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.13.i, %119 store <4 x double> %120, ptr %_3.i.i.i.i.i.i.i.i.us.i60.13.i, align 8, !alias.scope !6027, !noalias !6036 %121 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.13.i, %119 store <4 x double> %121, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.13.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 14 %_3.i2.i.i.i.i.i.i.i.us.i61.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 14 %_3.i.i.i.i.i.i.us.i62.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 14 %_3.i.i.i.i.us.i63.14.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 30 %a.sroa.0.0.copyload.us.i64.14.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.14.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.14.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.14.i, align 8, !alias.scope !6030, !noalias !6035 %122 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.14.i, <4 x double> poison, <4 x i32> %123 = fmul <4 x double> %51, %122 %124 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.14.i, <4 x double> %123) #23 %125 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.14.i, %124 store <4 x double> %125, ptr %_3.i.i.i.i.i.i.i.i.us.i60.14.i, align 8, !alias.scope !6027, !noalias !6036 %126 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.14.i, %124 store <4 x double> %126, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.14.i, align 8, !alias.scope !6027, !noalias !6036 %_3.i.i.i.i.i.i.i.i.us.i60.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i51.i, i64 15 %_3.i2.i.i.i.i.i.i.i.us.i61.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i54.i, i64 15 %_3.i.i.i.i.i.i.us.i62.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 15 %_3.i.i.i.i.us.i63.15.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i53.i, i64 31 %a.sroa.0.0.copyload.us.i64.15.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i62.15.i, align 8, !alias.scope !6030, !noalias !6035 %_62.sroa.0.0.copyload.us.i65.15.i = load <4 x double>, ptr %_3.i.i.i.i.us.i63.15.i, align 8, !alias.scope !6030, !noalias !6035 %127 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i65.15.i, <4 x double> poison, <4 x i32> %128 = fmul <4 x double> %51, %127 %129 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %50, <4 x double> %_62.sroa.0.0.copyload.us.i65.15.i, <4 x double> %128) #23 %130 = fadd <4 x double> %a.sroa.0.0.copyload.us.i64.15.i, %129 store <4 x double> %130, ptr %_3.i.i.i.i.i.i.i.i.us.i60.15.i, align 8, !alias.scope !6027, !noalias !6036 %131 = fsub <4 x double> %a.sroa.0.0.copyload.us.i64.15.i, %129 store <4 x double> %131, ptr %_3.i2.i.i.i.i.i.i.i.us.i61.15.i, align 8, !alias.scope !6027, !noalias !6036 %132 = add nuw nsw i64 %iter.sroa.38.0211.us.i49.i, 1 %exitcond231.not.i = icmp eq i64 %132, 4 br i1 %exitcond231.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit69.i, label %bb17.us.i48.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit69.i: ; preds = %bb17.us.i48.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6037) tail call void @llvm.experimental.noalias.scope.decl(metadata !6040) tail call void @llvm.experimental.noalias.scope.decl(metadata !6042) br label %bb17.us.i83.i bb17.us.i83.i: ; preds = %bb17.us.i83.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit69.i %iter.sroa.38.0211.us.i84.i = phi i64 [ %179, %bb17.us.i83.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit69.i ] %start1.i.i.i.i.i.i.i.i.us.i85.i = shl i64 %iter.sroa.38.0211.us.i84.i, 3 %data.i.i.i.i.i.i.i.i.us.i86.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i85.i %start1.i.i.i.i.us.i87.i = shl i64 %iter.sroa.38.0211.us.i84.i, 4 %data.i.i.i.i.i.i.us.i88.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i87.i %data.i5.i.i.i.i.i.i.i.us.i89.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.us.i85.i %133 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i87.i, i64 1 %w1.0.us.i90.i = load double, ptr %133, align 8, !alias.scope !6042, !noalias !6044, !noundef !3 %134 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i87.i, i64 1, i32 1 %w1.1.us.i91.i = load double, ptr %134, align 8, !alias.scope !6042, !noalias !6044, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i92.i = insertelement <2 x double> poison, double %w1.0.us.i90.i, i64 0 %135 = insertelement <4 x double> poison, double %w1.1.us.i91.i, i64 0 %136 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 8 %137 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i92.i, <2 x double> poison, <4 x i32> zeroinitializer %138 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i99.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i88.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.i = load <4 x double>, ptr %136, align 8, !alias.scope !6040, !noalias !6045 %139 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.i, <4 x double> poison, <4 x i32> %140 = fmul <4 x double> %138, %139 %141 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.i, <4 x double> %140) #23 %142 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.i, %141 store <4 x double> %142, ptr %data.i.i.i.i.i.i.i.i.us.i86.i, align 8, !alias.scope !6037, !noalias !6046 %143 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.i, %141 store <4 x double> %143, ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i96.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 1 %_3.i.i.i.i.i.i.us.i97.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 1 %_3.i.i.i.i.us.i98.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 9 %a.sroa.0.0.copyload.us.i99.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.1.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.1.i, align 8, !alias.scope !6040, !noalias !6045 %144 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.1.i, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %138, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.1.i, <4 x double> %145) #23 %147 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.1.i, %146 store <4 x double> %147, ptr %_3.i.i.i.i.i.i.i.i.us.i95.1.i, align 8, !alias.scope !6037, !noalias !6046 %148 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.1.i, %146 store <4 x double> %148, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.1.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i96.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 2 %_3.i.i.i.i.i.i.us.i97.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 2 %_3.i.i.i.i.us.i98.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 10 %a.sroa.0.0.copyload.us.i99.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.2.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.2.i, align 8, !alias.scope !6040, !noalias !6045 %149 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.2.i, <4 x double> poison, <4 x i32> %150 = fmul <4 x double> %138, %149 %151 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.2.i, <4 x double> %150) #23 %152 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.2.i, %151 store <4 x double> %152, ptr %_3.i.i.i.i.i.i.i.i.us.i95.2.i, align 8, !alias.scope !6037, !noalias !6046 %153 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.2.i, %151 store <4 x double> %153, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.2.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i96.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 3 %_3.i.i.i.i.i.i.us.i97.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 3 %_3.i.i.i.i.us.i98.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 11 %a.sroa.0.0.copyload.us.i99.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.3.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.3.i, align 8, !alias.scope !6040, !noalias !6045 %154 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.3.i, <4 x double> poison, <4 x i32> %155 = fmul <4 x double> %138, %154 %156 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.3.i, <4 x double> %155) #23 %157 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.3.i, %156 store <4 x double> %157, ptr %_3.i.i.i.i.i.i.i.i.us.i95.3.i, align 8, !alias.scope !6037, !noalias !6046 %158 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.3.i, %156 store <4 x double> %158, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.3.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 4 %_3.i2.i.i.i.i.i.i.i.us.i96.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 4 %_3.i.i.i.i.i.i.us.i97.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 4 %_3.i.i.i.i.us.i98.4.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 12 %a.sroa.0.0.copyload.us.i99.4.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.4.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.4.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.4.i, align 8, !alias.scope !6040, !noalias !6045 %159 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.4.i, <4 x double> poison, <4 x i32> %160 = fmul <4 x double> %138, %159 %161 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.4.i, <4 x double> %160) #23 %162 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.4.i, %161 store <4 x double> %162, ptr %_3.i.i.i.i.i.i.i.i.us.i95.4.i, align 8, !alias.scope !6037, !noalias !6046 %163 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.4.i, %161 store <4 x double> %163, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.4.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 5 %_3.i2.i.i.i.i.i.i.i.us.i96.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 5 %_3.i.i.i.i.i.i.us.i97.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 5 %_3.i.i.i.i.us.i98.5.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 13 %a.sroa.0.0.copyload.us.i99.5.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.5.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.5.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.5.i, align 8, !alias.scope !6040, !noalias !6045 %164 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.5.i, <4 x double> poison, <4 x i32> %165 = fmul <4 x double> %138, %164 %166 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.5.i, <4 x double> %165) #23 %167 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.5.i, %166 store <4 x double> %167, ptr %_3.i.i.i.i.i.i.i.i.us.i95.5.i, align 8, !alias.scope !6037, !noalias !6046 %168 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.5.i, %166 store <4 x double> %168, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.5.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 6 %_3.i2.i.i.i.i.i.i.i.us.i96.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 6 %_3.i.i.i.i.i.i.us.i97.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 6 %_3.i.i.i.i.us.i98.6.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 14 %a.sroa.0.0.copyload.us.i99.6.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.6.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.6.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.6.i, align 8, !alias.scope !6040, !noalias !6045 %169 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.6.i, <4 x double> poison, <4 x i32> %170 = fmul <4 x double> %138, %169 %171 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.6.i, <4 x double> %170) #23 %172 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.6.i, %171 store <4 x double> %172, ptr %_3.i.i.i.i.i.i.i.i.us.i95.6.i, align 8, !alias.scope !6037, !noalias !6046 %173 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.6.i, %171 store <4 x double> %173, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.6.i, align 8, !alias.scope !6037, !noalias !6046 %_3.i.i.i.i.i.i.i.i.us.i95.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i86.i, i64 7 %_3.i2.i.i.i.i.i.i.i.us.i96.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i89.i, i64 7 %_3.i.i.i.i.i.i.us.i97.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 7 %_3.i.i.i.i.us.i98.7.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i88.i, i64 15 %a.sroa.0.0.copyload.us.i99.7.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i97.7.i, align 8, !alias.scope !6040, !noalias !6045 %_62.sroa.0.0.copyload.us.i100.7.i = load <4 x double>, ptr %_3.i.i.i.i.us.i98.7.i, align 8, !alias.scope !6040, !noalias !6045 %174 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i100.7.i, <4 x double> poison, <4 x i32> %175 = fmul <4 x double> %138, %174 %176 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %137, <4 x double> %_62.sroa.0.0.copyload.us.i100.7.i, <4 x double> %175) #23 %177 = fadd <4 x double> %a.sroa.0.0.copyload.us.i99.7.i, %176 store <4 x double> %177, ptr %_3.i.i.i.i.i.i.i.i.us.i95.7.i, align 8, !alias.scope !6037, !noalias !6046 %178 = fsub <4 x double> %a.sroa.0.0.copyload.us.i99.7.i, %176 store <4 x double> %178, ptr %_3.i2.i.i.i.i.i.i.i.us.i96.7.i, align 8, !alias.scope !6037, !noalias !6046 %179 = add nuw nsw i64 %iter.sroa.38.0211.us.i84.i, 1 %exitcond232.not.i = icmp eq i64 %179, 8 br i1 %exitcond232.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit104.i, label %bb17.us.i83.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit104.i: ; preds = %bb17.us.i83.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6047) tail call void @llvm.experimental.noalias.scope.decl(metadata !6050) tail call void @llvm.experimental.noalias.scope.decl(metadata !6052) br label %bb17.us.i118.i bb17.us.i118.i: ; preds = %bb17.us.i118.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit104.i %iter.sroa.38.0211.us.i119.i = phi i64 [ %206, %bb17.us.i118.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit104.i ] %start1.i.i.i.i.i.i.i.i.us.i120.i = shl i64 %iter.sroa.38.0211.us.i119.i, 2 %data.i.i.i.i.i.i.i.i.us.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.us.i120.i %start1.i.i.i.i.us.i122.i = shl i64 %iter.sroa.38.0211.us.i119.i, 3 %data.i.i.i.i.i.i.us.i123.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i122.i %data.i5.i.i.i.i.i.i.i.us.i124.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.us.i120.i %180 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i122.i, i64 1 %w1.0.us.i125.i = load double, ptr %180, align 8, !alias.scope !6052, !noalias !6054, !noundef !3 %181 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i122.i, i64 1, i32 1 %w1.1.us.i126.i = load double, ptr %181, align 8, !alias.scope !6052, !noalias !6054, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i127.i = insertelement <2 x double> poison, double %w1.0.us.i125.i, i64 0 %182 = insertelement <4 x double> poison, double %w1.1.us.i126.i, i64 0 %183 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 4 %184 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i127.i, <2 x double> poison, <4 x i32> zeroinitializer %185 = shufflevector <4 x double> %182, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i134.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i123.i, align 8, !alias.scope !6050, !noalias !6055 %_62.sroa.0.0.copyload.us.i135.i = load <4 x double>, ptr %183, align 8, !alias.scope !6050, !noalias !6055 %186 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i135.i, <4 x double> poison, <4 x i32> %187 = fmul <4 x double> %185, %186 %188 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %_62.sroa.0.0.copyload.us.i135.i, <4 x double> %187) #23 %189 = fadd <4 x double> %a.sroa.0.0.copyload.us.i134.i, %188 store <4 x double> %189, ptr %data.i.i.i.i.i.i.i.i.us.i121.i, align 8, !alias.scope !6047, !noalias !6056 %190 = fsub <4 x double> %a.sroa.0.0.copyload.us.i134.i, %188 store <4 x double> %190, ptr %data.i5.i.i.i.i.i.i.i.us.i124.i, align 8, !alias.scope !6047, !noalias !6056 %_3.i.i.i.i.i.i.i.i.us.i130.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i121.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i131.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i124.i, i64 1 %_3.i.i.i.i.i.i.us.i132.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 1 %_3.i.i.i.i.us.i133.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 5 %a.sroa.0.0.copyload.us.i134.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i132.1.i, align 8, !alias.scope !6050, !noalias !6055 %_62.sroa.0.0.copyload.us.i135.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i133.1.i, align 8, !alias.scope !6050, !noalias !6055 %191 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i135.1.i, <4 x double> poison, <4 x i32> %192 = fmul <4 x double> %185, %191 %193 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %_62.sroa.0.0.copyload.us.i135.1.i, <4 x double> %192) #23 %194 = fadd <4 x double> %a.sroa.0.0.copyload.us.i134.1.i, %193 store <4 x double> %194, ptr %_3.i.i.i.i.i.i.i.i.us.i130.1.i, align 8, !alias.scope !6047, !noalias !6056 %195 = fsub <4 x double> %a.sroa.0.0.copyload.us.i134.1.i, %193 store <4 x double> %195, ptr %_3.i2.i.i.i.i.i.i.i.us.i131.1.i, align 8, !alias.scope !6047, !noalias !6056 %_3.i.i.i.i.i.i.i.i.us.i130.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i121.i, i64 2 %_3.i2.i.i.i.i.i.i.i.us.i131.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i124.i, i64 2 %_3.i.i.i.i.i.i.us.i132.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 2 %_3.i.i.i.i.us.i133.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 6 %a.sroa.0.0.copyload.us.i134.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i132.2.i, align 8, !alias.scope !6050, !noalias !6055 %_62.sroa.0.0.copyload.us.i135.2.i = load <4 x double>, ptr %_3.i.i.i.i.us.i133.2.i, align 8, !alias.scope !6050, !noalias !6055 %196 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i135.2.i, <4 x double> poison, <4 x i32> %197 = fmul <4 x double> %185, %196 %198 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %_62.sroa.0.0.copyload.us.i135.2.i, <4 x double> %197) #23 %199 = fadd <4 x double> %a.sroa.0.0.copyload.us.i134.2.i, %198 store <4 x double> %199, ptr %_3.i.i.i.i.i.i.i.i.us.i130.2.i, align 8, !alias.scope !6047, !noalias !6056 %200 = fsub <4 x double> %a.sroa.0.0.copyload.us.i134.2.i, %198 store <4 x double> %200, ptr %_3.i2.i.i.i.i.i.i.i.us.i131.2.i, align 8, !alias.scope !6047, !noalias !6056 %_3.i.i.i.i.i.i.i.i.us.i130.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i121.i, i64 3 %_3.i2.i.i.i.i.i.i.i.us.i131.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i124.i, i64 3 %_3.i.i.i.i.i.i.us.i132.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 3 %_3.i.i.i.i.us.i133.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i123.i, i64 7 %a.sroa.0.0.copyload.us.i134.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i132.3.i, align 8, !alias.scope !6050, !noalias !6055 %_62.sroa.0.0.copyload.us.i135.3.i = load <4 x double>, ptr %_3.i.i.i.i.us.i133.3.i, align 8, !alias.scope !6050, !noalias !6055 %201 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i135.3.i, <4 x double> poison, <4 x i32> %202 = fmul <4 x double> %185, %201 %203 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %184, <4 x double> %_62.sroa.0.0.copyload.us.i135.3.i, <4 x double> %202) #23 %204 = fadd <4 x double> %a.sroa.0.0.copyload.us.i134.3.i, %203 store <4 x double> %204, ptr %_3.i.i.i.i.i.i.i.i.us.i130.3.i, align 8, !alias.scope !6047, !noalias !6056 %205 = fsub <4 x double> %a.sroa.0.0.copyload.us.i134.3.i, %203 store <4 x double> %205, ptr %_3.i2.i.i.i.i.i.i.i.us.i131.3.i, align 8, !alias.scope !6047, !noalias !6056 %206 = add nuw nsw i64 %iter.sroa.38.0211.us.i119.i, 1 %exitcond233.not.i = icmp eq i64 %206, 16 br i1 %exitcond233.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit139.i, label %bb17.us.i118.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit139.i: ; preds = %bb17.us.i118.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6057) tail call void @llvm.experimental.noalias.scope.decl(metadata !6060) tail call void @llvm.experimental.noalias.scope.decl(metadata !6062) br label %bb17.us.i153.i bb17.us.i153.i: ; preds = %bb17.us.i153.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit139.i %iter.sroa.38.0211.us.i154.i = phi i64 [ %223, %bb17.us.i153.i ], [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit139.i ] %start1.i.i.i.i.i.i.i.i.us.i155.i = shl nuw i64 %iter.sroa.38.0211.us.i154.i, 1 %data.i.i.i.i.i.i.i.i.us.i156.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.us.i155.i %start1.i.i.i.i.us.i157.i = shl i64 %iter.sroa.38.0211.us.i154.i, 2 %data.i.i.i.i.i.i.us.i158.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.us.i157.i %data.i5.i.i.i.i.i.i.i.us.i159.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.us.i155.i %207 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i157.i, i64 1 %w1.0.us.i160.i = load double, ptr %207, align 8, !alias.scope !6062, !noalias !6064, !noundef !3 %208 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i157.i, i64 1, i32 1 %w1.1.us.i161.i = load double, ptr %208, align 8, !alias.scope !6062, !noalias !6064, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i162.i = insertelement <2 x double> poison, double %w1.0.us.i160.i, i64 0 %209 = insertelement <4 x double> poison, double %w1.1.us.i161.i, i64 0 %210 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i158.i, i64 2 %211 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i162.i, <2 x double> poison, <4 x i32> zeroinitializer %212 = shufflevector <4 x double> %209, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i169.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i158.i, align 8, !alias.scope !6060, !noalias !6065 %_62.sroa.0.0.copyload.us.i170.i = load <4 x double>, ptr %210, align 8, !alias.scope !6060, !noalias !6065 %213 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i170.i, <4 x double> poison, <4 x i32> %214 = fmul <4 x double> %212, %213 %215 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %211, <4 x double> %_62.sroa.0.0.copyload.us.i170.i, <4 x double> %214) #23 %216 = fadd <4 x double> %a.sroa.0.0.copyload.us.i169.i, %215 store <4 x double> %216, ptr %data.i.i.i.i.i.i.i.i.us.i156.i, align 8, !alias.scope !6057, !noalias !6066 %217 = fsub <4 x double> %a.sroa.0.0.copyload.us.i169.i, %215 store <4 x double> %217, ptr %data.i5.i.i.i.i.i.i.i.us.i159.i, align 8, !alias.scope !6057, !noalias !6066 %_3.i.i.i.i.i.i.i.i.us.i165.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i156.i, i64 1 %_3.i2.i.i.i.i.i.i.i.us.i166.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.us.i159.i, i64 1 %_3.i.i.i.i.i.i.us.i167.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i158.i, i64 1 %_3.i.i.i.i.us.i168.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i158.i, i64 3 %a.sroa.0.0.copyload.us.i169.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.us.i167.1.i, align 8, !alias.scope !6060, !noalias !6065 %_62.sroa.0.0.copyload.us.i170.1.i = load <4 x double>, ptr %_3.i.i.i.i.us.i168.1.i, align 8, !alias.scope !6060, !noalias !6065 %218 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i170.1.i, <4 x double> poison, <4 x i32> %219 = fmul <4 x double> %212, %218 %220 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %211, <4 x double> %_62.sroa.0.0.copyload.us.i170.1.i, <4 x double> %219) #23 %221 = fadd <4 x double> %a.sroa.0.0.copyload.us.i169.1.i, %220 store <4 x double> %221, ptr %_3.i.i.i.i.i.i.i.i.us.i165.1.i, align 8, !alias.scope !6057, !noalias !6066 %222 = fsub <4 x double> %a.sroa.0.0.copyload.us.i169.1.i, %220 store <4 x double> %222, ptr %_3.i2.i.i.i.i.i.i.i.us.i166.1.i, align 8, !alias.scope !6057, !noalias !6066 %223 = add nuw nsw i64 %iter.sroa.38.0211.us.i154.i, 1 %exitcond234.not.i = icmp eq i64 %223, 32 br i1 %exitcond234.not.i, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit174.i, label %bb17.us.i153.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit174.i: ; preds = %bb17.us.i153.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6067) tail call void @llvm.experimental.noalias.scope.decl(metadata !6070) tail call void @llvm.experimental.noalias.scope.decl(metadata !6072) br label %bb17.us.i186.i bb17.us.i186.i: ; preds = %bb17.us.i186.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit174.i %iter.sroa.38.0211.us.i187.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit174.i ], [ %247, %bb17.us.i186.i ] %data.i.i.i.i.i.i.i.i.us.i188.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter.sroa.38.0211.us.i187.i %start1.i.i.i.i.us.i189.i = shl nuw i64 %iter.sroa.38.0211.us.i187.i, 1 %data.i.i.i.i.i.i.us.i190.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i189.i %data.i5.i.i.i.i.i.i.i.us.i191.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.38.0211.us.i187.i %224 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i189.i, i64 1 %w1.0.us.i192.i = load double, ptr %224, align 8, !alias.scope !6072, !noalias !6074, !noundef !3 %225 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i189.i, i64 1, i32 1 %w1.1.us.i193.i = load double, ptr %225, align 8, !alias.scope !6072, !noalias !6074, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i194.i = insertelement <2 x double> poison, double %w1.0.us.i192.i, i64 0 %226 = insertelement <4 x double> poison, double %w1.1.us.i193.i, i64 0 %227 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i190.i, i64 1 %228 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i194.i, <2 x double> poison, <4 x i32> zeroinitializer %229 = shufflevector <4 x double> %226, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i201.i = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i190.i, align 8, !alias.scope !6070, !noalias !6075 %_62.sroa.0.0.copyload.us.i202.i = load <4 x double>, ptr %227, align 8, !alias.scope !6070, !noalias !6075 %230 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i202.i, <4 x double> poison, <4 x i32> %231 = fmul <4 x double> %229, %230 %232 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %228, <4 x double> %_62.sroa.0.0.copyload.us.i202.i, <4 x double> %231) #23 %233 = fadd <4 x double> %a.sroa.0.0.copyload.us.i201.i, %232 store <4 x double> %233, ptr %data.i.i.i.i.i.i.i.i.us.i188.i, align 8, !alias.scope !6067, !noalias !6076 %234 = fsub <4 x double> %a.sroa.0.0.copyload.us.i201.i, %232 store <4 x double> %234, ptr %data.i5.i.i.i.i.i.i.i.us.i191.i, align 8, !alias.scope !6067, !noalias !6076 %235 = or disjoint i64 %iter.sroa.38.0211.us.i187.i, 1 %data.i.i.i.i.i.i.i.i.us.i188.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %235 %start1.i.i.i.i.us.i189.i.1 = shl nuw i64 %235, 1 %data.i.i.i.i.i.i.us.i190.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.us.i189.i.1 %data.i5.i.i.i.i.i.i.i.us.i191.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %235 %236 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i189.i.1, i64 1 %w1.0.us.i192.i.1 = load double, ptr %236, align 8, !alias.scope !6072, !noalias !6074, !noundef !3 %237 = getelementptr inbounds [2 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i189.i.1, i64 1, i32 1 %w1.1.us.i193.i.1 = load double, ptr %237, align 8, !alias.scope !6072, !noalias !6074, !noundef !3 %value.i.sroa.0.0.vec.insert.us.i194.i.1 = insertelement <2 x double> poison, double %w1.0.us.i192.i.1, i64 0 %238 = insertelement <4 x double> poison, double %w1.1.us.i193.i.1, i64 0 %239 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i190.i.1, i64 1 %240 = shufflevector <2 x double> %value.i.sroa.0.0.vec.insert.us.i194.i.1, <2 x double> poison, <4 x i32> zeroinitializer %241 = shufflevector <4 x double> %238, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i201.i.1 = load <4 x double>, ptr %data.i.i.i.i.i.i.us.i190.i.1, align 8, !alias.scope !6070, !noalias !6075 %_62.sroa.0.0.copyload.us.i202.i.1 = load <4 x double>, ptr %239, align 8, !alias.scope !6070, !noalias !6075 %242 = shufflevector <4 x double> %_62.sroa.0.0.copyload.us.i202.i.1, <4 x double> poison, <4 x i32> %243 = fmul <4 x double> %241, %242 %244 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %240, <4 x double> %_62.sroa.0.0.copyload.us.i202.i.1, <4 x double> %243) #23 %245 = fadd <4 x double> %a.sroa.0.0.copyload.us.i201.i.1, %244 store <4 x double> %245, ptr %data.i.i.i.i.i.i.i.i.us.i188.i.1, align 8, !alias.scope !6067, !noalias !6076 %246 = fsub <4 x double> %a.sroa.0.0.copyload.us.i201.i.1, %244 store <4 x double> %246, ptr %data.i5.i.i.i.i.i.i.i.us.i191.i.1, align 8, !alias.scope !6067, !noalias !6076 %247 = add nuw nsw i64 %iter.sroa.38.0211.us.i187.i, 2 %exitcond235.not.i.1 = icmp eq i64 %247, 64 br i1 %exitcond235.not.i.1, label %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit206.i, label %bb17.us.i186.i _ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit206.i: ; preds = %bb17.us.i186.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6077) tail call void @llvm.experimental.noalias.scope.decl(metadata !6080) tail call void @llvm.experimental.noalias.scope.decl(metadata !6082) %248 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 64 br label %bb9.i.i bb9.i.i: ; preds = %bb9.i.i, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit206.i %iter.sroa.22.0123.i.i = phi i64 [ 0, %_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E.exit206.i ], [ %260, %bb9.i.i ] %249 = or disjoint i64 %iter.sroa.22.0123.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i %_3.i2.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.22.0123.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %248, i64 %iter.sroa.22.0123.i.i %ab0.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6080, !noalias !6084 %250 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.22.0123.i.i, i64 1 %ab1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %250, align 8, !alias.scope !6080, !noalias !6084 %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !6082, !noalias !6085 %251 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %252 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i, <4 x double> %ab1.sroa.0.0.copyload.i.i, <4 x i32> %253 = shufflevector <4 x double> %252, <4 x double> poison, <4 x i32> %254 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %255 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %256 = fmul <4 x double> %255, %253 %257 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %254, <4 x double> %252, <4 x double> %256) #23 %258 = fadd <4 x double> %251, %257 store <4 x double> %258, ptr %_3.i2.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6077, !noalias !6086 %259 = fsub <4 x double> %251, %257 store <4 x double> %259, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !6077, !noalias !6086 %260 = add nuw nsw i64 %iter.sroa.22.0123.i.i, 2 %_3.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %249 %_3.i2.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %249 %_3.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %249 %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"fft_simd::c64x2", ptr %248, i64 %249 %ab0.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !6080, !noalias !6084 %261 = getelementptr inbounds [2 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %249, i64 1 %ab1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %261, align 8, !alias.scope !6080, !noalias !6084 %w1.sroa.0.0.copyload.i.i.1 = load <4 x double>, ptr %_3.i.i.i.i.i.i.1, align 8, !alias.scope !6082, !noalias !6085 %262 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %263 = shufflevector <4 x double> %ab0.sroa.0.0.copyload.i.i.1, <4 x double> %ab1.sroa.0.0.copyload.i.i.1, <4 x i32> %264 = shufflevector <4 x double> %263, <4 x double> poison, <4 x i32> %265 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %266 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i.1, <4 x double> poison, <4 x i32> %267 = fmul <4 x double> %266, %264 %268 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %265, <4 x double> %263, <4 x double> %267) #23 %269 = fadd <4 x double> %262, %268 store <4 x double> %269, ptr %_3.i2.i.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !6077, !noalias !6086 %270 = fsub <4 x double> %262, %268 store <4 x double> %270, ptr %_3.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !6077, !noalias !6086 %exitcond.not.i209.i.1 = icmp eq i64 %260, 64 br i1 %exitcond.not.i209.i.1, label %_ZN4pulp3x862V39vectorize6__impl17ha9a1b1e579192160E.exit, label %bb9.i.i _ZN4pulp3x862V39vectorize6__impl17ha9a1b1e579192160E.exit: ; preds = %bb9.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !6005 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfbcb6245a1ebdb34E"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias nocapture noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i.i = alloca %"core::option::Option>", align 8 %_34.i.i = alloca i64, align 8 %_32.i.i = alloca %"core::option::Option>", align 8 %_26.i.i = alloca i64, align 8 %_24.i.i = alloca %"core::option::Option>", align 8 %_18.i.i = alloca i64, align 8 %_16.i.i = alloca %"core::option::Option>", align 8 %_10.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit bb1.i: ; preds = %start ; call pulp::x86::V3::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !6087 store i64 1024, ptr %n.i.i, align 8, !noalias !6087 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i.i), !noalias !6087 store i64 %buf.1, ptr %_10.i.i, align 8, !noalias !6087 %_12.i.i = icmp eq i64 %buf.1, 1024 br i1 %_12.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i.i), !noalias !6087 store ptr null, ptr %_16.i.i, align 8, !noalias !6087 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i.i: ; preds = %bb5 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i.i), !noalias !6087 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i.i), !noalias !6087 store i64 %scratch.1, ptr %_18.i.i, align 8, !noalias !6087 %_20.i.i = icmp eq i64 %scratch.1, 1024 br i1 %_20.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i.i), !noalias !6087 store ptr null, ptr %_24.i.i, align 8, !noalias !6087 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i.i: ; preds = %bb1.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i.i), !noalias !6087 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i.i), !noalias !6087 store i64 %w_init.1, ptr %_26.i.i, align 8, !noalias !6087 %_28.i.i = icmp eq i64 %w_init.1, 1024 br i1 %_28.i.i, label %bb5.i.i, label %bb6.i.i bb6.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i.i), !noalias !6087 store ptr null, ptr %_32.i.i, align 8, !noalias !6087 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i.i), !noalias !6087 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i.i), !noalias !6087 store i64 %w.1, ptr %_34.i.i, align 8, !noalias !6087 %_36.i.i = icmp eq i64 %w.1, 1024 br i1 %_36.i.i, label %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb16e7533cceabc80E.exit.i", label %bb8.i.i bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i.i), !noalias !6087 store ptr null, ptr %_40.i.i, align 8, !noalias !6087 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable "_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb16e7533cceabc80E.exit.i": ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i.i), !noalias !6087 tail call void @llvm.experimental.noalias.scope.decl(metadata !6092) tail call void @llvm.experimental.noalias.scope.decl(metadata !6095) tail call void @llvm.experimental.noalias.scope.decl(metadata !6097) %2 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 256 %3 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 128 %4 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 384 %5 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 256 %6 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 128 %7 = getelementptr inbounds %"fft_simd::c64x2", ptr %w_init.0, i64 384 br label %bb15.i13.i bb15.i13.i: ; preds = %bb15.i13.i, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb16e7533cceabc80E.exit.i" %iter.sroa.50.0552.i.i = phi i64 [ %8, %bb15.i13.i ], [ 0, %"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb16e7533cceabc80E.exit.i" ] %8 = add nuw nsw i64 %iter.sroa.50.0552.i.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.sroa.50.0552.i.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %6, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %5, i64 %iter.sroa.50.0552.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %7, i64 %iter.sroa.50.0552.i.i %w1.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6097, !noalias !6099 %w2.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i, align 8, !alias.scope !6097, !noalias !6099 %w3.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i, align 8, !alias.scope !6097, !noalias !6099 %a.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6092, !noalias !6100 %b.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6092, !noalias !6100 %c.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6092, !noalias !6100 %d.sroa.0.0.copyload.i.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6092, !noalias !6100 %9 = fadd <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %10 = fsub <4 x double> %a.sroa.0.0.copyload.i.i, %c.sroa.0.0.copyload.i.i %11 = fadd <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %12 = fsub <4 x double> %b.sroa.0.0.copyload.i.i, %d.sroa.0.0.copyload.i.i %13 = bitcast <4 x double> %12 to <4 x i64> %14 = xor <4 x i64> %13, %15 = bitcast <4 x i64> %14 to <4 x double> %16 = shufflevector <4 x double> %15, <4 x double> poison, <4 x i32> %17 = fadd <4 x double> %9, %11 %18 = fsub <4 x double> %10, %16 %19 = shufflevector <4 x double> %18, <4 x double> poison, <4 x i32> %20 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %21 = shufflevector <4 x double> %w1.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %22 = fmul <4 x double> %21, %19 %23 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %20, <4 x double> %18, <4 x double> %22) #23 %24 = fsub <4 x double> %9, %11 %25 = shufflevector <4 x double> %24, <4 x double> poison, <4 x i32> %26 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %27 = shufflevector <4 x double> %w2.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %28 = fmul <4 x double> %27, %25 %29 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %26, <4 x double> %24, <4 x double> %28) #23 %30 = fadd <4 x double> %10, %16 %31 = shufflevector <4 x double> %30, <4 x double> poison, <4 x i32> %32 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %33 = shufflevector <4 x double> %w3.sroa.0.0.copyload.i.i, <4 x double> poison, <4 x i32> %34 = fmul <4 x double> %33, %31 %35 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %32, <4 x double> %30, <4 x double> %34) #23 %36 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %37 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> store <4 x double> %36, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !6095, !noalias !6101 %38 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 1 store <4 x double> %37, ptr %38, align 8, !alias.scope !6095, !noalias !6101 %39 = shufflevector <4 x double> %17, <4 x double> %23, <4 x i32> %40 = shufflevector <4 x double> %29, <4 x double> %35, <4 x i32> %41 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 2 store <4 x double> %39, ptr %41, align 8, !alias.scope !6095, !noalias !6101 %42 = getelementptr inbounds [4 x %"fft_simd::c64x2"], ptr %scratch.0, i64 %iter.sroa.50.0552.i.i, i64 3 store <4 x double> %40, ptr %42, align 8, !alias.scope !6095, !noalias !6101 %exitcond.not.i.i = icmp eq i64 %8, 128 br i1 %exitcond.not.i.i, label %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i, label %bb15.i13.i _ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i: ; preds = %bb15.i13.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6102) tail call void @llvm.experimental.noalias.scope.decl(metadata !6105) tail call void @llvm.experimental.noalias.scope.decl(metadata !6107) %43 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 256 %44 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 128 %45 = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 384 br label %bb22.us.i.i bb22.us.i.i: ; preds = %bb22.us.i.i, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i %iter.sroa.60.0710.us.i.i = phi i64 [ %106, %bb22.us.i.i ], [ 0, %_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = shl nuw i64 %iter.sroa.60.0710.us.i.i, 1 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %data.i.i.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 3 %data.i.i.i.i.i.i.us.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.us.i.i %start1.i.i.i.i.us.i.i = shl i64 %iter.sroa.60.0710.us.i.i, 2 %46 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1 %w1.0.us.i.i = load double, ptr %46, align 8, !alias.scope !6107, !noalias !6109, !noundef !3 %47 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 1, i32 1 %w1.1.us.i.i = load double, ptr %47, align 8, !alias.scope !6107, !noalias !6109, !noundef !3 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2 %w2.0.us.i.i = load double, ptr %48, align 8, !alias.scope !6107, !noalias !6109, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 2, i32 1 %w2.1.us.i.i = load double, ptr %49, align 8, !alias.scope !6107, !noalias !6109, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3 %w3.0.us.i.i = load double, ptr %50, align 8, !alias.scope !6107, !noalias !6109, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i.i, i64 3, i32 1 %w3.1.us.i.i = load double, ptr %51, align 8, !alias.scope !6107, !noalias !6109, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w1.0.us.i.i, i64 0 %52 = insertelement <4 x double> poison, double %w1.1.us.i.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w2.0.us.i.i, i64 0 %53 = insertelement <4 x double> poison, double %w2.1.us.i.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i.i = insertelement <2 x double> poison, double %w3.0.us.i.i, i64 0 %54 = insertelement <4 x double> poison, double %w3.1.us.i.i, i64 0 %55 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 4 %56 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 2 %57 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 6 %58 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %59 = shufflevector <4 x double> %52, <4 x double> poison, <4 x i32> zeroinitializer %60 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %61 = shufflevector <4 x double> %53, <4 x double> poison, <4 x i32> zeroinitializer %62 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i.i, <2 x double> poison, <4 x i32> zeroinitializer %63 = shufflevector <4 x double> %54, <4 x double> poison, <4 x i32> zeroinitializer %a.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6102, !noalias !6110 %b.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6102, !noalias !6110 %c.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6102, !noalias !6110 %d.sroa.0.0.copyload.us.i.i = load <4 x double>, ptr %data.i.i.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6102, !noalias !6110 %64 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %65 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.i, %c.sroa.0.0.copyload.us.i.i %66 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %67 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.i, %d.sroa.0.0.copyload.us.i.i %68 = bitcast <4 x double> %67 to <4 x i64> %69 = xor <4 x i64> %68, %70 = bitcast <4 x i64> %69 to <4 x double> %71 = shufflevector <4 x double> %70, <4 x double> poison, <4 x i32> %72 = fadd <4 x double> %64, %66 store <4 x double> %72, ptr %data.i.i.i.i.i.i.us.i.i, align 8, !alias.scope !6105, !noalias !6111 %73 = fsub <4 x double> %65, %71 %74 = shufflevector <4 x double> %73, <4 x double> poison, <4 x i32> %75 = fmul <4 x double> %59, %74 %76 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %73, <4 x double> %75) #23 store <4 x double> %76, ptr %56, align 8, !alias.scope !6105, !noalias !6111 %77 = fsub <4 x double> %64, %66 %78 = shufflevector <4 x double> %77, <4 x double> poison, <4 x i32> %79 = fmul <4 x double> %61, %78 %80 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %77, <4 x double> %79) #23 store <4 x double> %80, ptr %55, align 8, !alias.scope !6105, !noalias !6111 %81 = fadd <4 x double> %65, %71 %82 = shufflevector <4 x double> %81, <4 x double> poison, <4 x i32> %83 = fmul <4 x double> %63, %82 %84 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %81, <4 x double> %83) #23 store <4 x double> %84, ptr %57, align 8, !alias.scope !6105, !noalias !6111 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 1 %_3.i.i.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 3 %_3.i.i.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 5 %_3.i.i.i.i.us.i.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i.i, i64 7 %a.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6102, !noalias !6110 %b.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6102, !noalias !6110 %c.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6102, !noalias !6110 %d.sroa.0.0.copyload.us.i.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6102, !noalias !6110 %85 = fadd <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %86 = fsub <4 x double> %a.sroa.0.0.copyload.us.i.1.i, %c.sroa.0.0.copyload.us.i.1.i %87 = fadd <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %88 = fsub <4 x double> %b.sroa.0.0.copyload.us.i.1.i, %d.sroa.0.0.copyload.us.i.1.i %89 = bitcast <4 x double> %88 to <4 x i64> %90 = xor <4 x i64> %89, %91 = bitcast <4 x i64> %90 to <4 x double> %92 = shufflevector <4 x double> %91, <4 x double> poison, <4 x i32> %93 = fadd <4 x double> %85, %87 store <4 x double> %93, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6105, !noalias !6111 %94 = fsub <4 x double> %86, %92 %95 = shufflevector <4 x double> %94, <4 x double> poison, <4 x i32> %96 = fmul <4 x double> %59, %95 %97 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %58, <4 x double> %94, <4 x double> %96) #23 store <4 x double> %97, ptr %_3.i.i.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6105, !noalias !6111 %98 = fsub <4 x double> %85, %87 %99 = shufflevector <4 x double> %98, <4 x double> poison, <4 x i32> %100 = fmul <4 x double> %61, %99 %101 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %60, <4 x double> %98, <4 x double> %100) #23 store <4 x double> %101, ptr %_3.i.i.i.i.i.i.us.i.1.i, align 8, !alias.scope !6105, !noalias !6111 %102 = fadd <4 x double> %86, %92 %103 = shufflevector <4 x double> %102, <4 x double> poison, <4 x i32> %104 = fmul <4 x double> %63, %103 %105 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %62, <4 x double> %102, <4 x double> %104) #23 store <4 x double> %105, ptr %_3.i.i.i.i.us.i.1.i, align 8, !alias.scope !6105, !noalias !6111 %106 = add nuw nsw i64 %iter.sroa.60.0710.us.i.i, 1 %exitcond.not.i = icmp eq i64 %106, 64 br i1 %exitcond.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i, label %bb22.us.i.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i: ; preds = %bb22.us.i.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6112) tail call void @llvm.experimental.noalias.scope.decl(metadata !6115) tail call void @llvm.experimental.noalias.scope.decl(metadata !6117) br label %bb22.us.i40.i bb22.us.i40.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i %iter.sroa.60.0710.us.i41.i = phi i64 [ %147, %bb36.bb20.loopexit_crit_edge.us.i74.i ], [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit.i ] %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i = shl i64 %iter.sroa.60.0710.us.i41.i, 3 %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.i.i.us.i45.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %data.i.i.i.i.i.i.i.i.us.i46.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %start1.i.i.i.i.i.i.i.i.i.i.i.i.us.i42.i %start1.i.i.i.i.i.i.us.i47.i = shl i64 %iter.sroa.60.0710.us.i41.i, 5 %data.i.i.i.i.i.i.us.i48.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %start1.i.i.i.i.i.i.us.i47.i %start1.i.i.i.i.us.i49.i = shl i64 %iter.sroa.60.0710.us.i41.i, 4 %107 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1 %w1.0.us.i50.i = load double, ptr %107, align 8, !alias.scope !6117, !noalias !6119, !noundef !3 %108 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 1, i32 1 %w1.1.us.i51.i = load double, ptr %108, align 8, !alias.scope !6117, !noalias !6119, !noundef !3 %109 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2 %w2.0.us.i52.i = load double, ptr %109, align 8, !alias.scope !6117, !noalias !6119, !noundef !3 %110 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 2, i32 1 %w2.1.us.i53.i = load double, ptr %110, align 8, !alias.scope !6117, !noalias !6119, !noundef !3 %111 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3 %w3.0.us.i54.i = load double, ptr %111, align 8, !alias.scope !6117, !noalias !6119, !noundef !3 %112 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 %start1.i.i.i.i.us.i49.i, i64 3, i32 1 %w3.1.us.i55.i = load double, ptr %112, align 8, !alias.scope !6117, !noalias !6119, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i56.i = insertelement <2 x double> poison, double %w1.0.us.i50.i, i64 0 %113 = insertelement <4 x double> poison, double %w1.1.us.i51.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i57.i = insertelement <2 x double> poison, double %w2.0.us.i52.i, i64 0 %114 = insertelement <4 x double> poison, double %w2.1.us.i53.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i58.i = insertelement <2 x double> poison, double %w3.0.us.i54.i, i64 0 %115 = insertelement <4 x double> poison, double %w3.1.us.i55.i, i64 0 %116 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 16 %117 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 8 %118 = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 24 %119 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i56.i, <2 x double> poison, <4 x i32> zeroinitializer %120 = shufflevector <4 x double> %113, <4 x double> poison, <4 x i32> zeroinitializer %121 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i57.i, <2 x double> poison, <4 x i32> zeroinitializer %122 = shufflevector <4 x double> %114, <4 x double> poison, <4 x i32> zeroinitializer %123 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i58.i, <2 x double> poison, <4 x i32> zeroinitializer %124 = shufflevector <4 x double> %115, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i59.i bb38.us.i59.i: ; preds = %bb38.us.i59.i, %bb22.us.i40.i %iter5.sroa.50.0697.us.i60.i = phi i64 [ 0, %bb22.us.i40.i ], [ %125, %bb38.us.i59.i ] %125 = add nuw nsw i64 %iter5.sroa.50.0697.us.i60.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i43.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i44.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i45.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i46.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.us.i48.i, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.i.i.us.i66.i = getelementptr inbounds %"fft_simd::c64x2", ptr %117, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.i.i.us.i67.i = getelementptr inbounds %"fft_simd::c64x2", ptr %116, i64 %iter5.sroa.50.0697.us.i60.i %_3.i.i.i.i.us.i68.i = getelementptr inbounds %"fft_simd::c64x2", ptr %118, i64 %iter5.sroa.50.0697.us.i60.i %a.sroa.0.0.copyload.us.i69.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i61.i, align 8, !alias.scope !6112, !noalias !6120 %b.sroa.0.0.copyload.us.i70.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i62.i, align 8, !alias.scope !6112, !noalias !6120 %c.sroa.0.0.copyload.us.i71.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i63.i, align 8, !alias.scope !6112, !noalias !6120 %d.sroa.0.0.copyload.us.i72.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i64.i, align 8, !alias.scope !6112, !noalias !6120 %126 = fadd <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %127 = fsub <4 x double> %a.sroa.0.0.copyload.us.i69.i, %c.sroa.0.0.copyload.us.i71.i %128 = fadd <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %129 = fsub <4 x double> %b.sroa.0.0.copyload.us.i70.i, %d.sroa.0.0.copyload.us.i72.i %130 = bitcast <4 x double> %129 to <4 x i64> %131 = xor <4 x i64> %130, %132 = bitcast <4 x i64> %131 to <4 x double> %133 = shufflevector <4 x double> %132, <4 x double> poison, <4 x i32> %134 = fadd <4 x double> %126, %128 store <4 x double> %134, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i65.i, align 8, !alias.scope !6115, !noalias !6121 %135 = fsub <4 x double> %127, %133 %136 = shufflevector <4 x double> %135, <4 x double> poison, <4 x i32> %137 = fmul <4 x double> %120, %136 %138 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %119, <4 x double> %135, <4 x double> %137) #23 store <4 x double> %138, ptr %_3.i.i.i.i.i.i.i.i.us.i66.i, align 8, !alias.scope !6115, !noalias !6121 %139 = fsub <4 x double> %126, %128 %140 = shufflevector <4 x double> %139, <4 x double> poison, <4 x i32> %141 = fmul <4 x double> %122, %140 %142 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %121, <4 x double> %139, <4 x double> %141) #23 store <4 x double> %142, ptr %_3.i.i.i.i.i.i.us.i67.i, align 8, !alias.scope !6115, !noalias !6121 %143 = fadd <4 x double> %127, %133 %144 = shufflevector <4 x double> %143, <4 x double> poison, <4 x i32> %145 = fmul <4 x double> %124, %144 %146 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %123, <4 x double> %143, <4 x double> %145) #23 store <4 x double> %146, ptr %_3.i.i.i.i.us.i68.i, align 8, !alias.scope !6115, !noalias !6121 %exitcond.not.i73.i = icmp eq i64 %125, 8 br i1 %exitcond.not.i73.i, label %bb36.bb20.loopexit_crit_edge.us.i74.i, label %bb38.us.i59.i bb36.bb20.loopexit_crit_edge.us.i74.i: ; preds = %bb38.us.i59.i %147 = add nuw nsw i64 %iter.sroa.60.0710.us.i41.i, 1 %exitcond244.not.i = icmp eq i64 %147, 16 br i1 %exitcond244.not.i, label %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i, label %bb22.us.i40.i _ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i: ; preds = %bb36.bb20.loopexit_crit_edge.us.i74.i tail call void @llvm.experimental.noalias.scope.decl(metadata !6122) tail call void @llvm.experimental.noalias.scope.decl(metadata !6125) tail call void @llvm.experimental.noalias.scope.decl(metadata !6127) %148 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.us.i106.i = load double, ptr %148, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %149 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.us.i107.i = load double, ptr %149, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %150 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.us.i108.i = load double, ptr %150, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %151 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.us.i109.i = load double, ptr %151, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %152 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.us.i110.i = load double, ptr %152, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %153 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.us.i111.i = load double, ptr %153, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.i = insertelement <2 x double> poison, double %w1.0.us.i106.i, i64 0 %154 = insertelement <4 x double> poison, double %w1.1.us.i107.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.i = insertelement <2 x double> poison, double %w2.0.us.i108.i, i64 0 %155 = insertelement <4 x double> poison, double %w2.1.us.i109.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.i = insertelement <2 x double> poison, double %w3.0.us.i110.i, i64 0 %156 = insertelement <4 x double> poison, double %w3.1.us.i111.i, i64 0 %157 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 64 %158 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 32 %159 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 96 %160 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.i, <2 x double> poison, <4 x i32> zeroinitializer %161 = shufflevector <4 x double> %154, <4 x double> poison, <4 x i32> zeroinitializer %162 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.i, <2 x double> poison, <4 x i32> zeroinitializer %163 = shufflevector <4 x double> %155, <4 x double> poison, <4 x i32> zeroinitializer %164 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.i, <2 x double> poison, <4 x i32> zeroinitializer %165 = shufflevector <4 x double> %156, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.i bb38.us.i115.i: ; preds = %bb38.us.i115.i, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i %iter5.sroa.50.0697.us.i116.i = phi i64 [ 0, %_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E.exit76.i ], [ %166, %bb38.us.i115.i ] %166 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i = getelementptr inbounds %"fft_simd::c64x2", ptr %44, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i = getelementptr inbounds %"fft_simd::c64x2", ptr %43, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i = getelementptr inbounds %"fft_simd::c64x2", ptr %45, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.i.i.us.i122.i = getelementptr inbounds %"fft_simd::c64x2", ptr %158, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.i.i.us.i123.i = getelementptr inbounds %"fft_simd::c64x2", ptr %157, i64 %iter5.sroa.50.0697.us.i116.i %_3.i.i.i.i.us.i124.i = getelementptr inbounds %"fft_simd::c64x2", ptr %159, i64 %iter5.sroa.50.0697.us.i116.i %a.sroa.0.0.copyload.us.i125.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.i, align 8, !alias.scope !6122, !noalias !6130 %b.sroa.0.0.copyload.us.i126.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.i, align 8, !alias.scope !6122, !noalias !6130 %c.sroa.0.0.copyload.us.i127.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.i, align 8, !alias.scope !6122, !noalias !6130 %d.sroa.0.0.copyload.us.i128.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.i, align 8, !alias.scope !6122, !noalias !6130 %167 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %168 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.i, %c.sroa.0.0.copyload.us.i127.i %169 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %170 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.i, %d.sroa.0.0.copyload.us.i128.i %171 = bitcast <4 x double> %170 to <4 x i64> %172 = xor <4 x i64> %171, %173 = bitcast <4 x i64> %172 to <4 x double> %174 = shufflevector <4 x double> %173, <4 x double> poison, <4 x i32> %175 = fadd <4 x double> %167, %169 store <4 x double> %175, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.i, align 8, !alias.scope !6125, !noalias !6131 %176 = fsub <4 x double> %168, %174 %177 = shufflevector <4 x double> %176, <4 x double> poison, <4 x i32> %178 = fmul <4 x double> %161, %177 %179 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %160, <4 x double> %176, <4 x double> %178) #23 store <4 x double> %179, ptr %_3.i.i.i.i.i.i.i.i.us.i122.i, align 8, !alias.scope !6125, !noalias !6131 %180 = fsub <4 x double> %167, %169 %181 = shufflevector <4 x double> %180, <4 x double> poison, <4 x i32> %182 = fmul <4 x double> %163, %181 %183 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %162, <4 x double> %180, <4 x double> %182) #23 store <4 x double> %183, ptr %_3.i.i.i.i.i.i.us.i123.i, align 8, !alias.scope !6125, !noalias !6131 %184 = fadd <4 x double> %168, %174 %185 = shufflevector <4 x double> %184, <4 x double> poison, <4 x i32> %186 = fmul <4 x double> %165, %185 %187 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %164, <4 x double> %184, <4 x double> %186) #23 store <4 x double> %187, ptr %_3.i.i.i.i.us.i124.i, align 8, !alias.scope !6125, !noalias !6131 %exitcond.not.i129.i = icmp eq i64 %166, 32 br i1 %exitcond.not.i129.i, label %bb36.bb20.loopexit_crit_edge.us.i130.i, label %bb38.us.i115.i bb36.bb20.loopexit_crit_edge.us.i130.i: ; preds = %bb38.us.i115.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 32 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 160 %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 288 %data.i.i.i.i.i.i.i.i.us.i102.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 416 %188 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1 %w1.0.us.i106.1.i = load double, ptr %188, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %189 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 1, i32 1 %w1.1.us.i107.1.i = load double, ptr %189, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %190 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2 %w2.0.us.i108.1.i = load double, ptr %190, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %191 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 2, i32 1 %w2.1.us.i109.1.i = load double, ptr %191, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %192 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3 %w3.0.us.i110.1.i = load double, ptr %192, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %193 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 64, i64 3, i32 1 %w3.1.us.i111.1.i = load double, ptr %193, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.1.i = insertelement <2 x double> poison, double %w1.0.us.i106.1.i, i64 0 %194 = insertelement <4 x double> poison, double %w1.1.us.i107.1.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.1.i = insertelement <2 x double> poison, double %w2.0.us.i108.1.i, i64 0 %195 = insertelement <4 x double> poison, double %w2.1.us.i109.1.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.1.i = insertelement <2 x double> poison, double %w3.0.us.i110.1.i, i64 0 %196 = insertelement <4 x double> poison, double %w3.1.us.i111.1.i, i64 0 %197 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 192 %198 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 160 %199 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 224 %200 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.1.i, <2 x double> poison, <4 x i32> zeroinitializer %201 = shufflevector <4 x double> %194, <4 x double> poison, <4 x i32> zeroinitializer %202 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.1.i, <2 x double> poison, <4 x i32> zeroinitializer %203 = shufflevector <4 x double> %195, <4 x double> poison, <4 x i32> zeroinitializer %204 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.1.i, <2 x double> poison, <4 x i32> zeroinitializer %205 = shufflevector <4 x double> %196, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.1.i bb38.us.i115.1.i: ; preds = %bb38.us.i115.1.i, %bb36.bb20.loopexit_crit_edge.us.i130.i %iter5.sroa.50.0697.us.i116.1.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.i ], [ %206, %bb38.us.i115.1.i ] %206 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.1.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.1.i, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.i.i.us.i122.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %198, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.i.i.us.i123.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %197, i64 %iter5.sroa.50.0697.us.i116.1.i %_3.i.i.i.i.us.i124.1.i = getelementptr inbounds %"fft_simd::c64x2", ptr %199, i64 %iter5.sroa.50.0697.us.i116.1.i %a.sroa.0.0.copyload.us.i125.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.1.i, align 8, !alias.scope !6122, !noalias !6130 %b.sroa.0.0.copyload.us.i126.1.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.1.i, align 8, !alias.scope !6122, !noalias !6130 %c.sroa.0.0.copyload.us.i127.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.1.i, align 8, !alias.scope !6122, !noalias !6130 %d.sroa.0.0.copyload.us.i128.1.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.1.i, align 8, !alias.scope !6122, !noalias !6130 %207 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %208 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.1.i, %c.sroa.0.0.copyload.us.i127.1.i %209 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %210 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.1.i, %d.sroa.0.0.copyload.us.i128.1.i %211 = bitcast <4 x double> %210 to <4 x i64> %212 = xor <4 x i64> %211, %213 = bitcast <4 x i64> %212 to <4 x double> %214 = shufflevector <4 x double> %213, <4 x double> poison, <4 x i32> %215 = fadd <4 x double> %207, %209 store <4 x double> %215, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.1.i, align 8, !alias.scope !6125, !noalias !6131 %216 = fsub <4 x double> %208, %214 %217 = shufflevector <4 x double> %216, <4 x double> poison, <4 x i32> %218 = fmul <4 x double> %201, %217 %219 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %200, <4 x double> %216, <4 x double> %218) #23 store <4 x double> %219, ptr %_3.i.i.i.i.i.i.i.i.us.i122.1.i, align 8, !alias.scope !6125, !noalias !6131 %220 = fsub <4 x double> %207, %209 %221 = shufflevector <4 x double> %220, <4 x double> poison, <4 x i32> %222 = fmul <4 x double> %203, %221 %223 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %202, <4 x double> %220, <4 x double> %222) #23 store <4 x double> %223, ptr %_3.i.i.i.i.i.i.us.i123.1.i, align 8, !alias.scope !6125, !noalias !6131 %224 = fadd <4 x double> %208, %214 %225 = shufflevector <4 x double> %224, <4 x double> poison, <4 x i32> %226 = fmul <4 x double> %205, %225 %227 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %204, <4 x double> %224, <4 x double> %226) #23 store <4 x double> %227, ptr %_3.i.i.i.i.us.i124.1.i, align 8, !alias.scope !6125, !noalias !6131 %exitcond.not.i129.1.i = icmp eq i64 %206, 32 br i1 %exitcond.not.i129.1.i, label %bb36.bb20.loopexit_crit_edge.us.i130.1.i, label %bb38.us.i115.1.i bb36.bb20.loopexit_crit_edge.us.i130.1.i: ; preds = %bb38.us.i115.1.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 64 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 192 %data.i.i.i.i.i.i.i.i.i.i.us.i101.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 320 %data.i.i.i.i.i.i.i.i.us.i102.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 448 %228 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1 %w1.0.us.i106.2.i = load double, ptr %228, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %229 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 1, i32 1 %w1.1.us.i107.2.i = load double, ptr %229, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %230 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2 %w2.0.us.i108.2.i = load double, ptr %230, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %231 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 2, i32 1 %w2.1.us.i109.2.i = load double, ptr %231, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %232 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3 %w3.0.us.i110.2.i = load double, ptr %232, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %233 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 128, i64 3, i32 1 %w3.1.us.i111.2.i = load double, ptr %233, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.2.i = insertelement <2 x double> poison, double %w1.0.us.i106.2.i, i64 0 %234 = insertelement <4 x double> poison, double %w1.1.us.i107.2.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.2.i = insertelement <2 x double> poison, double %w2.0.us.i108.2.i, i64 0 %235 = insertelement <4 x double> poison, double %w2.1.us.i109.2.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.2.i = insertelement <2 x double> poison, double %w3.0.us.i110.2.i, i64 0 %236 = insertelement <4 x double> poison, double %w3.1.us.i111.2.i, i64 0 %237 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 320 %238 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 288 %239 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 352 %240 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.2.i, <2 x double> poison, <4 x i32> zeroinitializer %241 = shufflevector <4 x double> %234, <4 x double> poison, <4 x i32> zeroinitializer %242 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.2.i, <2 x double> poison, <4 x i32> zeroinitializer %243 = shufflevector <4 x double> %235, <4 x double> poison, <4 x i32> zeroinitializer %244 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.2.i, <2 x double> poison, <4 x i32> zeroinitializer %245 = shufflevector <4 x double> %236, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.2.i bb38.us.i115.2.i: ; preds = %bb38.us.i115.2.i, %bb36.bb20.loopexit_crit_edge.us.i130.1.i %iter5.sroa.50.0697.us.i116.2.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.1.i ], [ %246, %bb38.us.i115.2.i ] %246 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.2.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.2.i, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.i.i.us.i122.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %238, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.i.i.us.i123.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %237, i64 %iter5.sroa.50.0697.us.i116.2.i %_3.i.i.i.i.us.i124.2.i = getelementptr inbounds %"fft_simd::c64x2", ptr %239, i64 %iter5.sroa.50.0697.us.i116.2.i %a.sroa.0.0.copyload.us.i125.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.2.i, align 8, !alias.scope !6122, !noalias !6130 %b.sroa.0.0.copyload.us.i126.2.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.2.i, align 8, !alias.scope !6122, !noalias !6130 %c.sroa.0.0.copyload.us.i127.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.2.i, align 8, !alias.scope !6122, !noalias !6130 %d.sroa.0.0.copyload.us.i128.2.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.2.i, align 8, !alias.scope !6122, !noalias !6130 %247 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.2.i, %c.sroa.0.0.copyload.us.i127.2.i %248 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.2.i, %c.sroa.0.0.copyload.us.i127.2.i %249 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.2.i, %d.sroa.0.0.copyload.us.i128.2.i %250 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.2.i, %d.sroa.0.0.copyload.us.i128.2.i %251 = bitcast <4 x double> %250 to <4 x i64> %252 = xor <4 x i64> %251, %253 = bitcast <4 x i64> %252 to <4 x double> %254 = shufflevector <4 x double> %253, <4 x double> poison, <4 x i32> %255 = fadd <4 x double> %247, %249 store <4 x double> %255, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.2.i, align 8, !alias.scope !6125, !noalias !6131 %256 = fsub <4 x double> %248, %254 %257 = shufflevector <4 x double> %256, <4 x double> poison, <4 x i32> %258 = fmul <4 x double> %241, %257 %259 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %240, <4 x double> %256, <4 x double> %258) #23 store <4 x double> %259, ptr %_3.i.i.i.i.i.i.i.i.us.i122.2.i, align 8, !alias.scope !6125, !noalias !6131 %260 = fsub <4 x double> %247, %249 %261 = shufflevector <4 x double> %260, <4 x double> poison, <4 x i32> %262 = fmul <4 x double> %243, %261 %263 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %242, <4 x double> %260, <4 x double> %262) #23 store <4 x double> %263, ptr %_3.i.i.i.i.i.i.us.i123.2.i, align 8, !alias.scope !6125, !noalias !6131 %264 = fadd <4 x double> %248, %254 %265 = shufflevector <4 x double> %264, <4 x double> poison, <4 x i32> %266 = fmul <4 x double> %245, %265 %267 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %244, <4 x double> %264, <4 x double> %266) #23 store <4 x double> %267, ptr %_3.i.i.i.i.us.i124.2.i, align 8, !alias.scope !6125, !noalias !6131 %exitcond.not.i129.2.i = icmp eq i64 %246, 32 br i1 %exitcond.not.i129.2.i, label %bb36.bb20.loopexit_crit_edge.us.i130.2.i, label %bb38.us.i115.2.i bb36.bb20.loopexit_crit_edge.us.i130.2.i: ; preds = %bb38.us.i115.2.i %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 96 %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 224 %data.i.i.i.i.i.i.i.i.i.i.us.i101.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 352 %data.i.i.i.i.i.i.i.i.us.i102.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %scratch.0, i64 480 %268 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1 %w1.0.us.i106.3.i = load double, ptr %268, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %269 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 1, i32 1 %w1.1.us.i107.3.i = load double, ptr %269, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %270 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2 %w2.0.us.i108.3.i = load double, ptr %270, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %271 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 2, i32 1 %w2.1.us.i109.3.i = load double, ptr %271, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %272 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3 %w3.0.us.i110.3.i = load double, ptr %272, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %273 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 192, i64 3, i32 1 %w3.1.us.i111.3.i = load double, ptr %273, align 8, !alias.scope !6127, !noalias !6129, !noundef !3 %value.i37.sroa.0.0.vec.insert.us.i112.3.i = insertelement <2 x double> poison, double %w1.0.us.i106.3.i, i64 0 %274 = insertelement <4 x double> poison, double %w1.1.us.i107.3.i, i64 0 %value.i33.sroa.0.0.vec.insert.us.i113.3.i = insertelement <2 x double> poison, double %w2.0.us.i108.3.i, i64 0 %275 = insertelement <4 x double> poison, double %w2.1.us.i109.3.i, i64 0 %value.i29.sroa.0.0.vec.insert.us.i114.3.i = insertelement <2 x double> poison, double %w3.0.us.i110.3.i, i64 0 %276 = insertelement <4 x double> poison, double %w3.1.us.i111.3.i, i64 0 %277 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 448 %278 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 416 %279 = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 480 %280 = shufflevector <2 x double> %value.i37.sroa.0.0.vec.insert.us.i112.3.i, <2 x double> poison, <4 x i32> zeroinitializer %281 = shufflevector <4 x double> %274, <4 x double> poison, <4 x i32> zeroinitializer %282 = shufflevector <2 x double> %value.i33.sroa.0.0.vec.insert.us.i113.3.i, <2 x double> poison, <4 x i32> zeroinitializer %283 = shufflevector <4 x double> %275, <4 x double> poison, <4 x i32> zeroinitializer %284 = shufflevector <2 x double> %value.i29.sroa.0.0.vec.insert.us.i114.3.i, <2 x double> poison, <4 x i32> zeroinitializer %285 = shufflevector <4 x double> %276, <4 x double> poison, <4 x i32> zeroinitializer br label %bb38.us.i115.3.i bb38.us.i115.3.i: ; preds = %bb38.us.i115.3.i, %bb36.bb20.loopexit_crit_edge.us.i130.2.i %iter5.sroa.50.0697.us.i116.3.i = phi i64 [ 0, %bb36.bb20.loopexit_crit_edge.us.i130.2.i ], [ %286, %bb38.us.i115.3.i ] %286 = add nuw nsw i64 %iter5.sroa.50.0697.us.i116.3.i, 1 %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.us.i99.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.us.i100.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.i.i.us.i101.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %data.i.i.i.i.i.i.i.i.us.i102.3.i, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.i.i.us.i121.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.i.i.us.i122.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %278, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.i.i.us.i123.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %277, i64 %iter5.sroa.50.0697.us.i116.3.i %_3.i.i.i.i.us.i124.3.i = getelementptr inbounds %"fft_simd::c64x2", ptr %279, i64 %iter5.sroa.50.0697.us.i116.3.i %a.sroa.0.0.copyload.us.i125.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i117.3.i, align 8, !alias.scope !6122, !noalias !6130 %b.sroa.0.0.copyload.us.i126.3.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i118.3.i, align 8, !alias.scope !6122, !noalias !6130 %c.sroa.0.0.copyload.us.i127.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.us.i119.3.i, align 8, !alias.scope !6122, !noalias !6130 %d.sroa.0.0.copyload.us.i128.3.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i.i.i.i.us.i120.3.i, align 8, !alias.scope !6122, !noalias !6130 %287 = fadd <4 x double> %a.sroa.0.0.copyload.us.i125.3.i, %c.sroa.0.0.copyload.us.i127.3.i %288 = fsub <4 x double> %a.sroa.0.0.copyload.us.i125.3.i, %c.sroa.0.0.copyload.us.i127.3.i %289 = fadd <4 x double> %b.sroa.0.0.copyload.us.i126.3.i, %d.sroa.0.0.copyload.us.i128.3.i %290 = fsub <4 x double> %b.sroa.0.0.copyload.us.i126.3.i, %d.sroa.0.0.copyload.us.i128.3.i %291 = bitcast <4 x double> %290 to <4 x i64> %292 = xor <4 x i64> %291, %293 = bitcast <4 x i64> %292 to <4 x double> %294 = shufflevector <4 x double> %293, <4 x double> poison, <4 x i32> %295 = fadd <4 x double> %287, %289 store <4 x double> %295, ptr %_3.i.i.i.i.i.i.i.i.i.i.us.i121.3.i, align 8, !alias.scope !6125, !noalias !6131 %296 = fsub <4 x double> %288, %294 %297 = shufflevector <4 x double> %296, <4 x double> poison, <4 x i32> %298 = fmul <4 x double> %281, %297 %299 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %280, <4 x double> %296, <4 x double> %298) #23 store <4 x double> %299, ptr %_3.i.i.i.i.i.i.i.i.us.i122.3.i, align 8, !alias.scope !6125, !noalias !6131 %300 = fsub <4 x double> %287, %289 %301 = shufflevector <4 x double> %300, <4 x double> poison, <4 x i32> %302 = fmul <4 x double> %283, %301 %303 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %282, <4 x double> %300, <4 x double> %302) #23 store <4 x double> %303, ptr %_3.i.i.i.i.i.i.us.i123.3.i, align 8, !alias.scope !6125, !noalias !6131 %304 = fadd <4 x double> %288, %294 %305 = shufflevector <4 x double> %304, <4 x double> poison, <4 x i32> %306 = fmul <4 x double> %285, %305 %307 = tail call <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double> %284, <4 x double> %304, <4 x double> %306) #23 store <4 x double> %307, ptr %_3.i.i.i.i.us.i124.3.i, align 8, !alias.scope !6125, !noalias !6131 %exitcond.not.i129.3.i = icmp eq i64 %286, 32 br i1 %exitcond.not.i129.3.i, label %bb13.i.i.i.i.i, label %bb38.us.i115.3.i bb13.i.i.i.i.i: ; preds = %bb38.us.i115.3.i, %bb13.i.i.i.i.i %iter.i.i.i.i.sroa.22.0243.i = phi i64 [ %308, %bb13.i.i.i.i.i ], [ 0, %bb38.us.i115.3.i ] %308 = add nuw nsw i64 %iter.i.i.i.i.sroa.22.0243.i, 1 %_3.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %buf.0, i64 %iter.i.i.i.i.sroa.22.0243.i %_3.i2.i.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %3, i64 %iter.i.i.i.i.sroa.22.0243.i %_3.i.i.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %2, i64 %iter.i.i.i.i.sroa.22.0243.i %_3.i.i.i.i.i = getelementptr inbounds %"fft_simd::c64x2", ptr %4, i64 %iter.i.i.i.i.sroa.22.0243.i %_43.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !6087 %_44.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !6087 %_45.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !6087 %_46.i.i.i.i.sroa.0.0.copyload.i = load <4 x double>, ptr %_3.i.i.i.i.i, align 8, !noalias !6087 %309 = fadd <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %310 = fsub <4 x double> %_43.i.i.i.i.sroa.0.0.copyload.i, %_45.i.i.i.i.sroa.0.0.copyload.i %311 = fadd <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %312 = fsub <4 x double> %_44.i.i.i.i.sroa.0.0.copyload.i, %_46.i.i.i.i.sroa.0.0.copyload.i %313 = bitcast <4 x double> %312 to <4 x i64> %314 = xor <4 x i64> %313, %315 = bitcast <4 x i64> %314 to <4 x double> %316 = shufflevector <4 x double> %315, <4 x double> poison, <4 x i32> %317 = fadd <4 x double> %309, %311 %318 = fsub <4 x double> %310, %316 %319 = fsub <4 x double> %309, %311 %320 = fadd <4 x double> %310, %316 store <4 x double> %317, ptr %_3.i.i.i.i.i.i.i.i.i, align 8, !noalias !6087 store <4 x double> %318, ptr %_3.i2.i.i.i.i.i.i.i.i, align 8, !noalias !6087 store <4 x double> %319, ptr %_3.i.i.i.i.i.i.i, align 8, !noalias !6087 store <4 x double> %320, ptr %_3.i.i.i.i.i, align 8, !noalias !6087 %exitcond246.not.i = icmp eq i64 %308, 128 br i1 %exitcond246.not.i, label %_ZN4pulp3x862V39vectorize6__impl17h0be331f5928054d1E.exit, label %bb13.i.i.i.i.i _ZN4pulp3x862V39vectorize6__impl17h0be331f5928054d1E.exit: ; preds = %bb13.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !6087 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfda96b676381de6dE"(ptr noalias nocapture noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias nocapture noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, i64 noundef %w_init.1, ptr noalias nocapture noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 personality ptr @rust_eh_personality { start: %_40.i = alloca %"core::option::Option>", align 8 %_34.i = alloca i64, align 8 %_32.i = alloca %"core::option::Option>", align 8 %_26.i = alloca i64, align 8 %_24.i = alloca %"core::option::Option>", align 8 %_18.i = alloca i64, align 8 %_16.i = alloca %"core::option::Option>", align 8 %_10.i = alloca i64, align 8 %n.i = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !6132 store i64 8, ptr %n.i, align 8, !noalias !6132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_10.i), !noalias !6132 store i64 %buf.1, ptr %_10.i, align 8, !noalias !6132 %_12.i = icmp eq i64 %buf.1, 8 br i1 %_12.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_16.i), !noalias !6132 store ptr null, ptr %_16.i, align 8, !noalias !6132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_10.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_16.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_92ecc2f1f945bef2a4ac149e21489214) #22 unreachable bb1.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_10.i), !noalias !6132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18.i), !noalias !6132 store i64 %scratch.1, ptr %_18.i, align 8, !noalias !6132 %_20.i = icmp eq i64 %scratch.1, 8 br i1 %_20.i, label %bb3.i, label %bb4.i bb4.i: ; preds = %bb1.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_24.i), !noalias !6132 store ptr null, ptr %_24.i, align 8, !noalias !6132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f15bc705775877ba7fa4ddbd82a00e5e) #22 unreachable bb3.i: ; preds = %bb1.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18.i), !noalias !6132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_26.i), !noalias !6132 store i64 %w_init.1, ptr %_26.i, align 8, !noalias !6132 %_28.i = icmp eq i64 %w_init.1, 8 br i1 %_28.i, label %bb5.i, label %bb6.i bb6.i: ; preds = %bb3.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_32.i), !noalias !6132 store ptr null, ptr %_32.i, align 8, !noalias !6132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_26.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_32.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_7f9dea55f442986021cc9ce39498d4a4) #22 unreachable bb5.i: ; preds = %bb3.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_26.i), !noalias !6132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_34.i), !noalias !6132 store i64 %w.1, ptr %_34.i, align 8, !noalias !6132 %_36.i = icmp eq i64 %w.1, 8 br i1 %_36.i, label %bb18.i.i.i.preheader, label %bb8.i bb8.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_40.i), !noalias !6132 store ptr null, ptr %_40.i, align 8, !noalias !6132 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_34.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_40.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cc78bc361b124a43b5dbd9f63038eb72) #22 unreachable bb18.i.i.i.preheader: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_34.i), !noalias !6132 %0 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 2 %2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 6 %3 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1 %w1.0.i.i.i = load double, ptr %3, align 8, !noalias !6132, !noundef !3 %4 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 1, i32 1 %w1.1.i.i.i = load double, ptr %4, align 8, !noalias !6132, !noundef !3 %5 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2 %w2.0.i.i.i = load double, ptr %5, align 8, !noalias !6132, !noundef !3 %6 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 2, i32 1 %w2.1.i.i.i = load double, ptr %6, align 8, !noalias !6132, !noundef !3 %7 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3 %w3.0.i.i.i = load double, ptr %7, align 8, !noalias !6132, !noundef !3 %8 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 0, i64 3, i32 1 %w3.1.i.i.i = load double, ptr %8, align 8, !noalias !6132, !noundef !3 %9 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 2 %10 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 1 %11 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 3 %_6.i39.i.i.i = fneg double %w1.1.i.i.i %_6.i36.i.i.i = fneg double %w2.1.i.i.i %_6.i.i.i.i = fneg double %w3.1.i.i.i %12 = load <2 x double>, ptr %buf.0, align 8, !noalias !6132 %13 = load <2 x double>, ptr %1, align 8, !noalias !6132 %14 = load <2 x double>, ptr %0, align 8, !noalias !6132 %15 = load <2 x double>, ptr %2, align 8, !noalias !6132 %16 = fadd <2 x double> %12, %14 %17 = fadd <2 x double> %13, %15 %18 = fadd <2 x double> %16, %17 store <2 x double> %18, ptr %scratch.0, align 8, !noalias !6132 %19 = fsub <2 x double> %12, %14 %20 = fsub <2 x double> %13, %15 %21 = shufflevector <2 x double> %20, <2 x double> poison, <2 x i32> %22 = fadd <2 x double> %19, %21 %23 = fsub <2 x double> %19, %21 %24 = shufflevector <2 x double> %22, <2 x double> %23, <2 x i32> %25 = shufflevector <2 x double> %24, <2 x double> poison, <2 x i32> %26 = insertelement <2 x double> poison, double %_6.i39.i.i.i, i64 0 %27 = insertelement <2 x double> %26, double %w1.1.i.i.i, i64 1 %28 = fmul <2 x double> %25, %27 %29 = insertelement <2 x double> poison, double %w1.0.i.i.i, i64 0 %30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer %31 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %30, <2 x double> %24, <2 x double> %28) store <2 x double> %31, ptr %10, align 8, !noalias !6132 %32 = fsub <2 x double> %16, %17 %33 = shufflevector <2 x double> %32, <2 x double> poison, <2 x i32> %34 = insertelement <2 x double> poison, double %_6.i36.i.i.i, i64 0 %35 = insertelement <2 x double> %34, double %w2.1.i.i.i, i64 1 %36 = fmul <2 x double> %33, %35 %37 = insertelement <2 x double> poison, double %w2.0.i.i.i, i64 0 %38 = shufflevector <2 x double> %37, <2 x double> poison, <2 x i32> zeroinitializer %39 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %38, <2 x double> %32, <2 x double> %36) store <2 x double> %39, ptr %9, align 8, !noalias !6132 %40 = shufflevector <2 x double> %23, <2 x double> %22, <2 x i32> %41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> %42 = insertelement <2 x double> poison, double %_6.i.i.i.i, i64 0 %43 = insertelement <2 x double> %42, double %w3.1.i.i.i, i64 1 %44 = fmul <2 x double> %41, %43 %45 = insertelement <2 x double> poison, double %w3.0.i.i.i, i64 0 %46 = shufflevector <2 x double> %45, <2 x double> poison, <2 x i32> zeroinitializer %47 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %46, <2 x double> %40, <2 x double> %44) store <2 x double> %47, ptr %11, align 8, !noalias !6132 %data.i.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 1 %data.i5.i.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 3 %data.i.i.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 5 %data.i.i.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 7 %data.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 4 %48 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1 %w1.0.i.i.i.1 = load double, ptr %48, align 8, !noalias !6132, !noundef !3 %49 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 1, i32 1 %w1.1.i.i.i.1 = load double, ptr %49, align 8, !noalias !6132, !noundef !3 %50 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2 %w2.0.i.i.i.1 = load double, ptr %50, align 8, !noalias !6132, !noundef !3 %51 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 2, i32 1 %w2.1.i.i.i.1 = load double, ptr %51, align 8, !noalias !6132, !noundef !3 %52 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3 %w3.0.i.i.i.1 = load double, ptr %52, align 8, !noalias !6132, !noundef !3 %53 = getelementptr inbounds [4 x %"num_complex::Complex"], ptr %w.0, i64 1, i64 3, i32 1 %w3.1.i.i.i.1 = load double, ptr %53, align 8, !noalias !6132, !noundef !3 %54 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 6 %55 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 5 %56 = getelementptr inbounds %"num_complex::Complex", ptr %scratch.0, i64 7 %_6.i39.i.i.i.1 = fneg double %w1.1.i.i.i.1 %_6.i36.i.i.i.1 = fneg double %w2.1.i.i.i.1 %_6.i.i.i.i.1 = fneg double %w3.1.i.i.i.1 %57 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !6132 %58 = load <2 x double>, ptr %data.i5.i.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !6132 %59 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.i.i.1, align 8, !noalias !6132 %60 = load <2 x double>, ptr %data.i.i.i.i.i.i.i.i.1, align 8, !noalias !6132 %61 = fadd <2 x double> %57, %59 %62 = fadd <2 x double> %58, %60 %63 = fadd <2 x double> %61, %62 store <2 x double> %63, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !6132 %64 = fsub <2 x double> %57, %59 %65 = fsub <2 x double> %58, %60 %66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> %67 = fadd <2 x double> %64, %66 %68 = fsub <2 x double> %64, %66 %69 = shufflevector <2 x double> %67, <2 x double> %68, <2 x i32> %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> %71 = insertelement <2 x double> poison, double %_6.i39.i.i.i.1, i64 0 %72 = insertelement <2 x double> %71, double %w1.1.i.i.i.1, i64 1 %73 = fmul <2 x double> %70, %72 %74 = insertelement <2 x double> poison, double %w1.0.i.i.i.1, i64 0 %75 = shufflevector <2 x double> %74, <2 x double> poison, <2 x i32> zeroinitializer %76 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %75, <2 x double> %69, <2 x double> %73) store <2 x double> %76, ptr %55, align 8, !noalias !6132 %77 = fsub <2 x double> %61, %62 %78 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> %79 = insertelement <2 x double> poison, double %_6.i36.i.i.i.1, i64 0 %80 = insertelement <2 x double> %79, double %w2.1.i.i.i.1, i64 1 %81 = fmul <2 x double> %78, %80 %82 = insertelement <2 x double> poison, double %w2.0.i.i.i.1, i64 0 %83 = shufflevector <2 x double> %82, <2 x double> poison, <2 x i32> zeroinitializer %84 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %83, <2 x double> %77, <2 x double> %81) store <2 x double> %84, ptr %54, align 8, !noalias !6132 %85 = shufflevector <2 x double> %68, <2 x double> %67, <2 x i32> %86 = shufflevector <2 x double> %85, <2 x double> poison, <2 x i32> %87 = insertelement <2 x double> poison, double %_6.i.i.i.i.1, i64 0 %88 = insertelement <2 x double> %87, double %w3.1.i.i.i.1, i64 1 %89 = fmul <2 x double> %86, %88 %90 = insertelement <2 x double> poison, double %w3.0.i.i.i.1, i64 0 %91 = shufflevector <2 x double> %90, <2 x double> poison, <2 x i32> zeroinitializer %92 = tail call <2 x double> @llvm.fma.v2f64(<2 x double> %91, <2 x double> %85, <2 x double> %89) store <2 x double> %92, ptr %56, align 8, !noalias !6132 %wide.vec = load <8 x double>, ptr %scratch.0, align 8, !noalias !6132 %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %strided.vec1 = shufflevector <8 x double> %wide.vec, <8 x double> poison, <4 x i32> %wide.vec2 = load <8 x double>, ptr %data.i.i.i.i.i.i.1, align 8, !noalias !6132 %strided.vec3 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %strided.vec4 = shufflevector <8 x double> %wide.vec2, <8 x double> poison, <4 x i32> %93 = fadd <4 x double> %strided.vec, %strided.vec3 %94 = fadd <4 x double> %strided.vec1, %strided.vec4 %95 = fsub <4 x double> %strided.vec, %strided.vec3 %96 = fsub <4 x double> %strided.vec1, %strided.vec4 %interleaved.vec = shufflevector <4 x double> %93, <4 x double> %94, <8 x i32> store <8 x double> %interleaved.vec, ptr %buf.0, align 8, !noalias !6132 %97 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 4 %interleaved.vec5 = shufflevector <4 x double> %95, <4 x double> %96, <8 x i32> store <8 x double> %interleaved.vec5, ptr %97, align 8, !noalias !6132 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !6132 ret void } ; concrete_fft::fn_ptr::{{closure}} ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @"_ZN12concrete_fft6fn_ptr28_$u7b$$u7b$closure$u7d$$u7d$17hfde91657e41269f5E"(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %scratch.0, i64 noundef %scratch.1, ptr noalias noundef nonnull readonly align 8 %w_init.0, i64 noundef %w_init.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1) unnamed_addr #8 { start: %_8 = alloca %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", align 8 %0 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit bb1.i: ; preds = %start ; call pulp::x86::V4::__detect_is_available %_5.i = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() %1 = zext i1 %_5.i to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit: ; preds = %start, %bb1.i %available.0.i = phi i8 [ %1, %bb1.i ], [ %0, %start ] %_0.i.not = icmp eq i8 %available.0.i, 0 br i1 %_0.i.not, label %bb4, label %bb5 bb4: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit ; call core::option::unwrap_failed tail call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_bc19144355b5f6348ca5b0e0efdfd21e) #22 unreachable bb5: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_8) store ptr %buf.0, ptr %_8, align 8 %2 = getelementptr inbounds i8, ptr %_8, i64 8 store i64 %buf.1, ptr %2, align 8 %3 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1 store ptr %scratch.0, ptr %3, align 8 %4 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 1, i32 1 store i64 %scratch.1, ptr %4, align 8 %5 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2 store ptr %w_init.0, ptr %5, align 8 %6 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 2, i32 1 store i64 %w_init.1, ptr %6, align 8 %7 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3 store ptr %w.0, ptr %7, align 8 %8 = getelementptr inbounds %"fn_ptr::{closure#0}::Impl<'_, true, dit4::Dit4>>>>>>>, fft_simd::c64x4, pulp::x86::V4>", ptr %_8, i64 0, i32 3, i32 1 store i64 %w.1, ptr %8, align 8 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h5e4733dc546ca3f9E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(64) %_8) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %_8) ret void } ; concrete_fft::ordered::duration_div_f64 ; Function Attrs: nonlazybind uwtable define internal fastcc { i64, i32 } @_ZN12concrete_fft7ordered16duration_div_f6417h5231ac64bfa9d687E(i64 noundef %0, i32 noundef %1, double noundef %n) unnamed_addr #0 { start: %_7.i = alloca { ptr, i64 }, align 8 %_6 = uitofp i64 %0 to double %_9 = uitofp i32 %1 to double %_8 = fdiv double %_9, 1.000000e+09 %_4 = fadd double %_8, %_6 %_3 = fdiv double %_4, %n %_2.i.i = fcmp olt double %_3, 0.000000e+00 br i1 %_2.i.i, label %bb6.i, label %bb2.i.i bb2.i.i: ; preds = %start %bits.i.i = bitcast double %_3 to i64 %_5.i.i = and i64 %bits.i.i, 4503599627370495 %mant.i.i = or disjoint i64 %_5.i.i, 4503599627370496 %_9.i.i = lshr i64 %bits.i.i, 52 %2 = trunc i64 %_9.i.i to i16 %_7.i.i = and i16 %2, 2047 %exp.i.i = add nuw nsw i64 %_9.i.i, 1 %_12.i.i = icmp ult i16 %_7.i.i, 992 br i1 %_12.i.i, label %_ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit, label %bb4.i.i bb4.i.i: ; preds = %bb2.i.i %_13.i.i = icmp ult i16 %_7.i.i, 1023 br i1 %_13.i.i, label %bb5.i.i, label %bb14.i.i bb14.i.i: ; preds = %bb4.i.i %_31.i.i = icmp ult i16 %_7.i.i, 1075 br i1 %_31.i.i, label %bb15.i.i, label %bb24.i.i bb5.i.i: ; preds = %bb4.i.i %_15.i.i = zext nneg i64 %mant.i.i to i128 %_16.i.i = add nuw nsw i16 %2, 45 %3 = and i16 %_16.i.i, 127 %4 = zext nneg i16 %3 to i128 %t4.i.i = shl nuw nsw i128 %_15.i.i, %4 %nanos_tmp5.i.i = mul nuw nsw i128 %t4.i.i, 1000000000 %_19.i.i = lshr i128 %nanos_tmp5.i.i, 96 %nanos6.i.i = trunc i128 %_19.i.i to i32 %rem7.i.i = and i128 %nanos_tmp5.i.i, 79228162514264337593543949824 %is_tie8.i.i = icmp ne i128 %rem7.i.i, 39614081257132168796771975168 %_25.i.i = and i128 %nanos_tmp5.i.i, 39614081257132168796771975168 %5 = icmp ne i128 %_25.i.i, 0 %_23.i.i = and i32 %nanos6.i.i, 1 %is_even9.i.i = icmp ne i32 %_23.i.i, 0 %narrow25.i.i = or i1 %is_tie8.i.i, %is_even9.i.i %narrow26.i.i = and i1 %5, %narrow25.i.i %_27.0.i.i = zext i1 %narrow26.i.i to i32 %nanos12.i.i = add nuw nsw i32 %_27.0.i.i, %nanos6.i.i %_30.not.i.i = icmp eq i32 %nanos12.i.i, 1000000000 br i1 %_30.not.i.i, label %_ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit, label %bb29.i.i bb24.i.i: ; preds = %bb14.i.i %_52.i.i = icmp ult i16 %_7.i.i, 1087 br i1 %_52.i.i, label %bb25.i.i, label %bb5.i bb15.i.i: ; preds = %bb14.i.i %_33.i.i = sub nsw i64 51, %_9.i.i %6 = and i64 %_33.i.i, 63 %secs2.i.i = lshr i64 %mant.i.i, %6 %7 = and i64 %exp.i.i, 63 %_36.i.i = shl i64 %bits.i.i, %7 %small.i.i = and i64 %_36.i.i, 4503599627370495 %t.i.i = zext nneg i64 %small.i.i to i128 %nanos_tmp.i.i = mul nuw nsw i128 %t.i.i, 1000000000 %_39.i.i = lshr i128 %nanos_tmp.i.i, 52 %nanos.i.i = trunc i128 %_39.i.i to i32 %rem.i.i = and i128 %nanos_tmp.i.i, 4503599627369984 %is_tie.i.i = icmp ne i128 %rem.i.i, 2251799813685248 %_45.i.i = and i128 %nanos_tmp.i.i, 2251799813685248 %8 = icmp ne i128 %_45.i.i, 0 %_43.i.i = and i32 %nanos.i.i, 1 %is_even.i.i = icmp ne i32 %_43.i.i, 0 %narrow.i.i = select i1 %is_even.i.i, i1 true, i1 %is_tie.i.i %narrow24.i.i = select i1 %8, i1 %narrow.i.i, i1 false %_47.0.i.i = zext i1 %narrow24.i.i to i32 %nanos3.i.i = add nuw nsw i32 %_47.0.i.i, %nanos.i.i %_50.not.i.i = icmp eq i32 %nanos3.i.i, 1000000000 %_51.i.i = zext i1 %_50.not.i.i to i64 %spec.select23.i.i = add nuw nsw i64 %secs2.i.i, %_51.i.i %spec.select.i = select i1 %_50.not.i.i, i32 0, i32 %nanos3.i.i br label %_ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit bb25.i.i: ; preds = %bb24.i.i %_54.i.i = add nuw nsw i64 %_9.i.i, 13 %9 = and i64 %_54.i.i, 63 %secs1.i.i = shl nuw i64 %mant.i.i, %9 br label %_ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit bb29.i.i: ; preds = %bb5.i.i %_3.i.i.i = icmp ult i32 %nanos12.i.i, 1000000000 br i1 %_3.i.i.i, label %_ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit, label %bb6.i.i.i bb6.i.i.i: ; preds = %bb29.i.i %_7.i.i.i = udiv i32 %nanos12.i.i, 1000000000 %rhs.i.i.i = zext nneg i32 %_7.i.i.i to i64 %nanos2.i.i.i = urem i32 %nanos12.i.i, 1000000000 br label %_ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit bb6.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_7.i) br label %bb4.i bb5.i: ; preds = %bb24.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_7.i) br label %bb4.i bb4.i: ; preds = %bb5.i, %bb6.i %storemerge.i = phi ptr [ @alloc_6690d2678f9b4fe23e6fbd8fc55c8f17, %bb5.i ], [ @alloc_4fccf952c9892dc212f30f84225a4d2a, %bb6.i ] %.sink.i = phi i64 [ 73, %bb5.i ], [ 60, %bb6.i ] store ptr %storemerge.i, ptr %_7.i, align 8 %10 = getelementptr inbounds i8, ptr %_7.i, i64 8 store i64 %.sink.i, ptr %10, align 8 ; call core::time::Duration::from_secs_f64::panic_cold_display call fastcc void @_ZN4core4time8Duration13from_secs_f6418panic_cold_display17h8349342c304d2b85E(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %_7.i) #22 unreachable _ZN4core4time8Duration13from_secs_f6417h54bbf63b00b54a63E.exit: ; preds = %bb2.i.i, %bb5.i.i, %bb15.i.i, %bb25.i.i, %bb29.i.i, %bb6.i.i.i %_2.sroa.7.0.ph.i = phi i32 [ 0, %bb5.i.i ], [ 0, %bb25.i.i ], [ 0, %bb2.i.i ], [ %nanos12.i.i, %bb29.i.i ], [ %nanos2.i.i.i, %bb6.i.i.i ], [ %spec.select.i, %bb15.i.i ] %_2.sroa.0.0.ph.i = phi i64 [ 1, %bb5.i.i ], [ %secs1.i.i, %bb25.i.i ], [ 0, %bb2.i.i ], [ 0, %bb29.i.i ], [ %rhs.i.i.i, %bb6.i.i.i ], [ %spec.select23.i.i, %bb15.i.i ] %11 = insertvalue { i64, i32 } poison, i64 %_2.sroa.0.0.ph.i, 0 %12 = insertvalue { i64, i32 } %11, i32 %_2.sroa.7.0.ph.i, 1 ret { i64, i32 } %12 } ; concrete_fft::ordered::measure_fastest_scratch ; Function Attrs: nonlazybind uwtable define internal fastcc { i64, i64 } @_ZN12concrete_fft7ordered23measure_fastest_scratch17h58dfbb2aaf288113E(i64 noundef %n) unnamed_addr #0 { start: %0 = and i64 %n, 8646911284551352320 %_21.1.i = icmp eq i64 %0, 0 %_9.sroa.0.0.i = zext i1 %_21.1.i to i64 %_21.0.i = shl i64 %n, 5 ; call dyn_stack::stack_req::unwrap %_8.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_9.sroa.0.0.i, i64 %_21.0.i) %_21.1.i1 = icmp ult i64 %n, 1152921504606846976 %_9.sroa.0.0.i2 = zext i1 %_21.1.i1 to i64 %_21.0.i3 = shl i64 %n, 4 ; call dyn_stack::stack_req::unwrap %_8.i4 = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_9.sroa.0.0.i2, i64 %_21.0.i3) ; call dyn_stack::stack_req::round_up_pow2 %self.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i4, i64 noundef 128) %1 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i, i64 %rhs.i) %_28.1.i = extractvalue { i64, i1 } %1, 1 %not._28.1.i = xor i1 %_28.1.i, true %_11.sroa.0.0.i = zext i1 %not._28.1.i to i64 %_28.0.i = extractvalue { i64, i1 } %1, 0 ; call dyn_stack::stack_req::unwrap %_10.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i, i64 %_28.0.i) ; call dyn_stack::stack_req::unwrap %_8.i8 = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_9.sroa.0.0.i2, i64 %_21.0.i3) ; call dyn_stack::stack_req::round_up_pow2 %self.i9 = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_10.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i10 = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i8, i64 noundef 128) %2 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i9, i64 %rhs.i10) %_28.1.i11 = extractvalue { i64, i1 } %2, 1 %not._28.1.i12 = xor i1 %_28.1.i11, true %_11.sroa.0.0.i13 = zext i1 %not._28.1.i12 to i64 %_28.0.i14 = extractvalue { i64, i1 } %2, 0 ; call dyn_stack::stack_req::unwrap %_10.i15 = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i13, i64 %_28.0.i14) %3 = insertvalue { i64, i64 } { i64 128, i64 poison }, i64 %_10.i15, 1 ret { i64, i64 } %3 } ; concrete_fft::ordered::measure_fastest ; Function Attrs: nonlazybind uwtable define internal fastcc void @_ZN12concrete_fft7ordered15measure_fastest17h4f1bd38e78c4e9b4E(ptr noalias nocapture noundef writeonly align 8 dereferenceable(24) %_0, i64 noundef %0, i32 noundef %1, i64 noundef %n, ptr noalias noundef nonnull align 1 %stack.0, i64 noundef %stack.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %now.i165 = alloca %"std::time::Instant", align 8 %_11.i166 = alloca [2 x ptr], align 8 %now.i = alloca %"std::time::Instant", align 8 %_11.i = alloca [2 x ptr], align 8 %_24.i.i.i.i70 = alloca i64, align 8 %_15.i.i.i.i71 = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i.i72 = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i.i73 = alloca { ptr, i64 }, align 8 %array_len.i.i.i.i74 = alloca i64, align 8 %remaining_len.i.i.i.i75 = alloca i64, align 8 %_12.i5.i.i.i76 = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i.i77 = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i.i78 = alloca i64, align 8 %align.i.i.i.i79 = alloca i64, align 8 %len.i.i.i.i80 = alloca i64, align 8 %_24.i.i.i.i38 = alloca i64, align 8 %_15.i.i.i.i39 = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i.i40 = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i.i41 = alloca { ptr, i64 }, align 8 %array_len.i.i.i.i42 = alloca i64, align 8 %remaining_len.i.i.i.i43 = alloca i64, align 8 %_12.i5.i.i.i44 = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i.i45 = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i.i46 = alloca i64, align 8 %align.i.i.i.i47 = alloca i64, align 8 %len.i.i.i.i48 = alloca i64, align 8 %_24.i.i.i.i = alloca i64, align 8 %_15.i.i.i.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i.i = alloca i64, align 8 %remaining_len.i.i.i.i = alloca i64, align 8 %_12.i5.i.i.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i.i = alloca i64, align 8 %align.i.i.i.i = alloca i64, align 8 %len.i.i.i.i = alloca i64, align 8 %avg_durations = alloca [8 x %"core::time::Duration"], align 8 %2 = tail call i64 @llvm.ctpop.i64(i64 %n), !range !750 %3 = icmp eq i64 %2, 1 br i1 %3, label %bb1, label %bb2 bb1: ; preds = %start %_8 = shl i64 %n, 1 tail call void @llvm.experimental.noalias.scope.decl(metadata !6135) %addr.i.i.i.i = ptrtoint ptr %stack.0 to i64 %_9.i.i.i.i = add i64 %addr.i.i.i.i, 127 %aligned_address.i.i.i.i = and i64 %_9.i.i.i.i, -128 %byte_offset.i.i.i.i = sub i64 %aligned_address.i.i.i.i, %addr.i.i.i.i %_12.i.i.i.i = icmp ult i64 %byte_offset.i.i.i.i, 128 tail call void @llvm.assume(i1 %_12.i.i.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i.i), !noalias !6138 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i.i), !noalias !6138 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i.i), !noalias !6138 store i64 %stack.1, ptr %len.i.i.i.i, align 8, !noalias !6149 store i64 128, ptr %align.i.i.i.i, align 8, !noalias !6149 store i64 %byte_offset.i.i.i.i, ptr %align_offset.i.i.i.i, align 8, !noalias !6149 %_4.not.i.i.i.i = icmp ugt i64 %byte_offset.i.i.i.i, %stack.1 br i1 %_4.not.i.i.i.i, label %bb2.i.i.i.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i bb2.i.i.i.i: ; preds = %bb1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i.i), !noalias !6149 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i.i), !noalias !6149 store ptr %align.i.i.i.i, ptr %_12.i5.i.i.i, align 8, !noalias !6149 %4 = getelementptr inbounds i8, ptr %_12.i5.i.i.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %4, align 8, !noalias !6149 %5 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i, i64 0, i64 1 store ptr %align_offset.i.i.i.i, ptr %5, align 8, !noalias !6149 %6 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %6, align 8, !noalias !6149 %7 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i, i64 0, i64 2 store ptr %len.i.i.i.i, ptr %7, align 8, !noalias !6149 %8 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %8, align 8, !noalias !6149 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i.i, align 8, !noalias !6149 %9 = getelementptr inbounds i8, ptr %_8.i.i.i.i, i64 8 store i64 4, ptr %9, align 8, !noalias !6149 %10 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i, i64 0, i32 2 store ptr null, ptr %10, align 8, !noalias !6149 %11 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i, i64 0, i32 1 store ptr %_12.i5.i.i.i, ptr %11, align 8, !noalias !6149 %12 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i, i64 0, i32 1, i32 1 store i64 3, ptr %12, align 8, !noalias !6149 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_ef3d74fe318c8f93c82ea6bf5727aec8) #22, !noalias !6152 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i: ; preds = %bb1 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i.i), !noalias !6138 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i.i), !noalias !6138 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i.i), !noalias !6138 %len1.i.i.i = sub i64 %stack.1, %byte_offset.i.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i.i), !noalias !6138 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i.i), !noalias !6138 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i), !noalias !6138 store i64 %len1.i.i.i, ptr %remaining_len.i.i.i.i, align 8, !noalias !6153 store i64 %_8, ptr %array_len.i.i.i.i, align 8, !noalias !6153 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i.i, align 8, !noalias !6153 %13 = getelementptr inbounds i8, ptr %type_name.i.i.i.i, i64 8 store i64 25, ptr %13, align 8, !noalias !6153 %_71.i.i.i.i = lshr i64 %len1.i.i.i, 4 %_6.not.i.i.i.i = icmp ult i64 %_71.i.i.i.i, %_8 br i1 %_6.not.i.i.i.i, label %bb4.i.i.i.i, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i bb4.i.i.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i.i), !noalias !6153 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i.i), !noalias !6153 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i.i), !noalias !6153 %14 = shl i64 %n, 5 store i64 %14, ptr %_24.i.i.i.i, align 8, !noalias !6153 store ptr %type_name.i.i.i.i, ptr %_15.i.i.i.i, align 8, !noalias !6153 %15 = getelementptr inbounds i8, ptr %_15.i.i.i.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %15, align 8, !noalias !6153 %16 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i, i64 0, i64 1 store ptr %remaining_len.i.i.i.i, ptr %16, align 8, !noalias !6153 %17 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %17, align 8, !noalias !6153 %18 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i, i64 0, i64 2 store ptr %array_len.i.i.i.i, ptr %18, align 8, !noalias !6153 %19 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %19, align 8, !noalias !6153 %20 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i, i64 0, i64 3 store ptr %_24.i.i.i.i, ptr %20, align 8, !noalias !6153 %21 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %21, align 8, !noalias !6153 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i.i, align 8, !noalias !6153 %22 = getelementptr inbounds i8, ptr %_11.i.i.i.i, i64 8 store i64 5, ptr %22, align 8, !noalias !6153 %23 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i, i64 0, i32 2 store ptr null, ptr %23, align 8, !noalias !6153 %24 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i, i64 0, i32 1 store ptr %_15.i.i.i.i, ptr %24, align 8, !noalias !6153 %25 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i, i64 0, i32 1, i32 1 store i64 4, ptr %25, align 8, !noalias !6153 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_ef3d74fe318c8f93c82ea6bf5727aec8) #22, !noalias !6152 unreachable _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i.i), !noalias !6138 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i.i), !noalias !6138 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i), !noalias !6138 %data2.i.i.i = getelementptr inbounds i8, ptr %stack.0, i64 %byte_offset.i.i.i.i %begin_len.i.i.i = shl i64 %n, 5 %26 = icmp eq i64 %_8, 0 br i1 %26, label %_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E.exit, label %bb3.preheader.i.i bb3.preheader.i.i: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %data2.i.i.i, i8 0, i64 %begin_len.i.i.i, i1 false), !alias.scope !6156, !noalias !6159 br label %_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E.exit _ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E.exit: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i, %bb3.preheader.i.i %mid_len.i.i.i = sub i64 %len1.i.i.i, %begin_len.i.i.i %mid.i.i.i = getelementptr inbounds i8, ptr %data2.i.i.i, i64 %begin_len.i.i.i %_7.i = icmp slt i64 %n, 0 br i1 %_7.i, label %bb3.i, label %bb35 bb3.i: ; preds = %_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E.exit ; call core::slice::index::slice_end_index_len_fail tail call void @_ZN4core5slice5index24slice_end_index_len_fail17hec92f8c818923428E(i64 noundef %n, i64 noundef %_8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_c02ab310a9ba126e88020d38180d63fc) #22 unreachable bb2: ; preds = %start ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf, i64 noundef 37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_87855c5d7b3c745421b566ef514582d8) #22 unreachable bb35: ; preds = %_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E.exit %data16 = getelementptr inbounds %"num_complex::Complex", ptr %data2.i.i.i, i64 %n tail call void @llvm.experimental.noalias.scope.decl(metadata !6160) %addr.i.i.i.i49 = ptrtoint ptr %mid.i.i.i to i64 %_9.i.i.i.i50 = add i64 %addr.i.i.i.i49, 127 %aligned_address.i.i.i.i51 = and i64 %_9.i.i.i.i50, -128 %byte_offset.i.i.i.i52 = sub i64 %aligned_address.i.i.i.i51, %addr.i.i.i.i49 %_12.i.i.i.i53 = icmp ult i64 %byte_offset.i.i.i.i52, 128 tail call void @llvm.assume(i1 %_12.i.i.i.i53) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i.i46), !noalias !6163 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i.i47), !noalias !6163 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i.i48), !noalias !6163 store i64 %mid_len.i.i.i, ptr %len.i.i.i.i48, align 8, !noalias !6174 store i64 128, ptr %align.i.i.i.i47, align 8, !noalias !6174 store i64 %byte_offset.i.i.i.i52, ptr %align_offset.i.i.i.i46, align 8, !noalias !6174 %_4.not.i.i.i.i54 = icmp ugt i64 %byte_offset.i.i.i.i52, %mid_len.i.i.i br i1 %_4.not.i.i.i.i54, label %bb2.i.i.i.i66, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i55 bb2.i.i.i.i66: ; preds = %bb35 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i.i45), !noalias !6174 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i.i44), !noalias !6174 store ptr %align.i.i.i.i47, ptr %_12.i5.i.i.i44, align 8, !noalias !6174 %27 = getelementptr inbounds i8, ptr %_12.i5.i.i.i44, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %27, align 8, !noalias !6174 %28 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i44, i64 0, i64 1 store ptr %align_offset.i.i.i.i46, ptr %28, align 8, !noalias !6174 %29 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i44, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %29, align 8, !noalias !6174 %30 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i44, i64 0, i64 2 store ptr %len.i.i.i.i48, ptr %30, align 8, !noalias !6174 %31 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i44, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %31, align 8, !noalias !6174 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i.i45, align 8, !noalias !6174 %32 = getelementptr inbounds i8, ptr %_8.i.i.i.i45, i64 8 store i64 4, ptr %32, align 8, !noalias !6174 %33 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i45, i64 0, i32 2 store ptr null, ptr %33, align 8, !noalias !6174 %34 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i45, i64 0, i32 1 store ptr %_12.i5.i.i.i44, ptr %34, align 8, !noalias !6174 %35 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i45, i64 0, i32 1, i32 1 store i64 3, ptr %35, align 8, !noalias !6174 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i.i45, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_d2338b042a385d9f7000e396b9fa70e7) #22 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i55: ; preds = %bb35 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i.i46), !noalias !6163 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i.i47), !noalias !6163 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i.i48), !noalias !6163 %len1.i.i.i56 = sub i64 %mid_len.i.i.i, %byte_offset.i.i.i.i52 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i.i41), !noalias !6163 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i.i42), !noalias !6163 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i43), !noalias !6163 store i64 %len1.i.i.i56, ptr %remaining_len.i.i.i.i43, align 8, !noalias !6177 store i64 %n, ptr %array_len.i.i.i.i42, align 8, !noalias !6177 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i.i41, align 8, !noalias !6177 %36 = getelementptr inbounds i8, ptr %type_name.i.i.i.i41, i64 8 store i64 25, ptr %36, align 8, !noalias !6177 %_71.i.i.i.i57 = lshr i64 %len1.i.i.i56, 4 %_6.not.i.i.i.i58 = icmp ult i64 %_71.i.i.i.i57, %n br i1 %_6.not.i.i.i.i58, label %bb4.i.i.i.i65, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i59 bb4.i.i.i.i65: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i55 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i.i40), !noalias !6177 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i.i39), !noalias !6177 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i.i38), !noalias !6177 %37 = shl nuw i64 %n, 4 store i64 %37, ptr %_24.i.i.i.i38, align 8, !noalias !6177 store ptr %type_name.i.i.i.i41, ptr %_15.i.i.i.i39, align 8, !noalias !6177 %38 = getelementptr inbounds i8, ptr %_15.i.i.i.i39, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %38, align 8, !noalias !6177 %39 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i39, i64 0, i64 1 store ptr %remaining_len.i.i.i.i43, ptr %39, align 8, !noalias !6177 %40 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i39, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %40, align 8, !noalias !6177 %41 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i39, i64 0, i64 2 store ptr %array_len.i.i.i.i42, ptr %41, align 8, !noalias !6177 %42 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i39, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %42, align 8, !noalias !6177 %43 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i39, i64 0, i64 3 store ptr %_24.i.i.i.i38, ptr %43, align 8, !noalias !6177 %44 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i39, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %44, align 8, !noalias !6177 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i.i40, align 8, !noalias !6177 %45 = getelementptr inbounds i8, ptr %_11.i.i.i.i40, i64 8 store i64 5, ptr %45, align 8, !noalias !6177 %46 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i40, i64 0, i32 2 store ptr null, ptr %46, align 8, !noalias !6177 %47 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i40, i64 0, i32 1 store ptr %_15.i.i.i.i39, ptr %47, align 8, !noalias !6177 %48 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i40, i64 0, i32 1, i32 1 store i64 4, ptr %48, align 8, !noalias !6177 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i.i40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_d2338b042a385d9f7000e396b9fa70e7) #22 unreachable _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i59: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i55 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i.i41), !noalias !6163 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i.i42), !noalias !6163 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i43), !noalias !6163 %data2.i.i.i60 = getelementptr inbounds i8, ptr %mid.i.i.i, i64 %byte_offset.i.i.i.i52 %begin_len.i.i.i61 = shl nuw i64 %n, 4 %49 = icmp eq i64 %n, 0 br i1 %49, label %bb4, label %bb3.preheader.i.i62 bb3.preheader.i.i62: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i59 tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %data2.i.i.i60, i8 0, i64 %begin_len.i.i.i61, i1 false), !alias.scope !6180, !noalias !6183 br label %bb4 bb4: ; preds = %bb3.preheader.i.i62, %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i59 %mid_len.i.i.i63 = sub i64 %len1.i.i.i56, %begin_len.i.i.i61 %mid.i.i.i64 = getelementptr inbounds i8, ptr %data2.i.i.i60, i64 %begin_len.i.i.i61 tail call void @llvm.experimental.noalias.scope.decl(metadata !6184) %addr.i.i.i.i81 = ptrtoint ptr %mid.i.i.i64 to i64 %_9.i.i.i.i82 = add i64 %addr.i.i.i.i81, 127 %aligned_address.i.i.i.i83 = and i64 %_9.i.i.i.i82, -128 %byte_offset.i.i.i.i84 = sub i64 %aligned_address.i.i.i.i83, %addr.i.i.i.i81 %_12.i.i.i.i85 = icmp ult i64 %byte_offset.i.i.i.i84, 128 tail call void @llvm.assume(i1 %_12.i.i.i.i85) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i.i78), !noalias !6187 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i.i79), !noalias !6187 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i.i80), !noalias !6187 store i64 %mid_len.i.i.i63, ptr %len.i.i.i.i80, align 8, !noalias !6198 store i64 128, ptr %align.i.i.i.i79, align 8, !noalias !6198 store i64 %byte_offset.i.i.i.i84, ptr %align_offset.i.i.i.i78, align 8, !noalias !6198 %_4.not.i.i.i.i86 = icmp ugt i64 %byte_offset.i.i.i.i84, %mid_len.i.i.i63 br i1 %_4.not.i.i.i.i86, label %bb2.i.i.i.i98, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i87 bb2.i.i.i.i98: ; preds = %bb4 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i.i77), !noalias !6198 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i.i76), !noalias !6198 store ptr %align.i.i.i.i79, ptr %_12.i5.i.i.i76, align 8, !noalias !6198 %50 = getelementptr inbounds i8, ptr %_12.i5.i.i.i76, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %50, align 8, !noalias !6198 %51 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i76, i64 0, i64 1 store ptr %align_offset.i.i.i.i78, ptr %51, align 8, !noalias !6198 %52 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i76, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %52, align 8, !noalias !6198 %53 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i76, i64 0, i64 2 store ptr %len.i.i.i.i80, ptr %53, align 8, !noalias !6198 %54 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i76, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %54, align 8, !noalias !6198 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i.i77, align 8, !noalias !6198 %55 = getelementptr inbounds i8, ptr %_8.i.i.i.i77, i64 8 store i64 4, ptr %55, align 8, !noalias !6198 %56 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i77, i64 0, i32 2 store ptr null, ptr %56, align 8, !noalias !6198 %57 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i77, i64 0, i32 1 store ptr %_12.i5.i.i.i76, ptr %57, align 8, !noalias !6198 %58 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i77, i64 0, i32 1, i32 1 store i64 3, ptr %58, align 8, !noalias !6198 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i.i77, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_44d96b7e2f99499a4769e219f65882a5) #22 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i87: ; preds = %bb4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i.i78), !noalias !6187 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i.i79), !noalias !6187 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i.i80), !noalias !6187 %len1.i.i.i88 = sub i64 %mid_len.i.i.i63, %byte_offset.i.i.i.i84 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i.i73), !noalias !6187 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i.i74), !noalias !6187 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i75), !noalias !6187 store i64 %len1.i.i.i88, ptr %remaining_len.i.i.i.i75, align 8, !noalias !6201 store i64 %n, ptr %array_len.i.i.i.i74, align 8, !noalias !6201 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i.i73, align 8, !noalias !6201 %59 = getelementptr inbounds i8, ptr %type_name.i.i.i.i73, i64 8 store i64 25, ptr %59, align 8, !noalias !6201 %_71.i.i.i.i89 = lshr i64 %len1.i.i.i88, 4 %_6.not.i.i.i.i90 = icmp ult i64 %_71.i.i.i.i89, %n br i1 %_6.not.i.i.i.i90, label %bb4.i.i.i.i97, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i91 bb4.i.i.i.i97: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i87 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i.i72), !noalias !6201 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i.i71), !noalias !6201 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i.i70), !noalias !6201 store i64 %begin_len.i.i.i61, ptr %_24.i.i.i.i70, align 8, !noalias !6201 store ptr %type_name.i.i.i.i73, ptr %_15.i.i.i.i71, align 8, !noalias !6201 %60 = getelementptr inbounds i8, ptr %_15.i.i.i.i71, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %60, align 8, !noalias !6201 %61 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i71, i64 0, i64 1 store ptr %remaining_len.i.i.i.i75, ptr %61, align 8, !noalias !6201 %62 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i71, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %62, align 8, !noalias !6201 %63 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i71, i64 0, i64 2 store ptr %array_len.i.i.i.i74, ptr %63, align 8, !noalias !6201 %64 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i71, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %64, align 8, !noalias !6201 %65 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i71, i64 0, i64 3 store ptr %_24.i.i.i.i70, ptr %65, align 8, !noalias !6201 %66 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i71, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %66, align 8, !noalias !6201 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i.i72, align 8, !noalias !6201 %67 = getelementptr inbounds i8, ptr %_11.i.i.i.i72, i64 8 store i64 5, ptr %67, align 8, !noalias !6201 %68 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i72, i64 0, i32 2 store ptr null, ptr %68, align 8, !noalias !6201 %69 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i72, i64 0, i32 1 store ptr %_15.i.i.i.i71, ptr %69, align 8, !noalias !6201 %70 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i72, i64 0, i32 1, i32 1 store i64 4, ptr %70, align 8, !noalias !6201 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i.i72, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_44d96b7e2f99499a4769e219f65882a5) #22 unreachable _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i91: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i87 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i.i73), !noalias !6187 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i.i74), !noalias !6187 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i75), !noalias !6187 %data2.i.i.i92 = getelementptr inbounds i8, ptr %mid.i.i.i64, i64 %byte_offset.i.i.i.i84 br i1 %49, label %bb36, label %bb3.preheader.i.i94 bb3.preheader.i.i94: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i91 tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %data2.i.i.i92, i8 0, i64 %begin_len.i.i.i61, i1 false), !alias.scope !6204, !noalias !6207 br label %bb36 bb36: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i91, %bb3.preheader.i.i94 call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %avg_durations) store i64 0, ptr %avg_durations, align 8 %71 = getelementptr inbounds i8, ptr %avg_durations, i64 8 store i32 0, ptr %71, align 8 %72 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 1 store i64 0, ptr %72, align 8 %73 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 1, i32 1 store i32 0, ptr %73, align 8 %74 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 2 store i64 0, ptr %74, align 8 %75 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 2, i32 1 store i32 0, ptr %75, align 8 %76 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 3 store i64 0, ptr %76, align 8 %77 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 3, i32 1 store i32 0, ptr %77, align 8 %78 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 4 store i64 0, ptr %78, align 8 %79 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 4, i32 1 store i32 0, ptr %79, align 8 %80 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 5 store i64 0, ptr %80, align 8 %81 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 5, i32 1 store i32 0, ptr %81, align 8 %82 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 6 store i64 0, ptr %82, align 8 %83 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 6, i32 1 store i32 0, ptr %83, align 8 %84 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 7 store i64 0, ptr %84, align 8 %85 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 7, i32 1 store i32 0, ptr %85, align 8 %86 = getelementptr inbounds i8, ptr %now.i, i64 8 %_143 = uitofp i64 %0 to double %_146 = uitofp i32 %1 to double %_145 = fdiv double %_146, 1.000000e+09 %_51 = fadd double %_145, %_143 %87 = getelementptr inbounds i8, ptr %now.i165, i64 8 br label %bb8 bb9: ; preds = %bb20 %_3.val.i.i.i.i.i.i.i = load i64, ptr %avg_durations, align 8, !alias.scope !6208, !noalias !6213, !noundef !3 %_3.val1.i.i.i.i.i.i.i = load i32, ptr %71, align 8, !noalias !3 %_4.val.i.i.i.i.i.i.i = load i64, ptr %72, align 8, !noalias !3, !noundef !3 %_4.val2.i.i.i.i.i.i.i = load i32, ptr %73, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i = icmp ult i64 %_3.val.i.i.i.i.i.i.i, %_4.val.i.i.i.i.i.i.i br i1 %_9.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i", label %bb4.i.i.i.i.i.i.i.i bb4.i.i.i.i.i.i.i.i: ; preds = %bb9 %_12.i.i.i.i.i.i.i.i = icmp eq i64 %_3.val.i.i.i.i.i.i.i, %_4.val.i.i.i.i.i.i.i br i1 %_12.i.i.i.i.i.i.i.i, label %bb5.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i" bb5.i.i.i.i.i.i.i.i: ; preds = %bb4.i.i.i.i.i.i.i.i %_15.i.i.i.i.i.i.i.i = icmp ult i32 %_3.val1.i.i.i.i.i.i.i, %_4.val2.i.i.i.i.i.i.i br i1 %_15.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i", label %bb8.i.i.i.i.i.i.i.i bb8.i.i.i.i.i.i.i.i: ; preds = %bb5.i.i.i.i.i.i.i.i %_18.i.i.i.i.not.not.i.i.i.i = icmp eq i32 %_3.val1.i.i.i.i.i.i.i, %_4.val2.i.i.i.i.i.i.i %88 = select i1 %_18.i.i.i.i.not.not.i.i.i.i, ptr %avg_durations, ptr %72 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i": ; preds = %bb8.i.i.i.i.i.i.i.i, %bb5.i.i.i.i.i.i.i.i, %bb4.i.i.i.i.i.i.i.i, %bb9 %_0.0.i.i.i.i.i.i.i.i = phi ptr [ %avg_durations, %bb9 ], [ %72, %bb4.i.i.i.i.i.i.i.i ], [ %88, %bb8.i.i.i.i.i.i.i.i ], [ %avg_durations, %bb5.i.i.i.i.i.i.i.i ] %_49.i.i.1 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 2 %_3.val.i.i.i.i.i.i.i.1 = load i64, ptr %_0.0.i.i.i.i.i.i.i.i, align 8, !alias.scope !6216, !noalias !6219, !noundef !3 %89 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i, i64 8 %_3.val1.i.i.i.i.i.i.i.1 = load i32, ptr %89, align 8, !alias.scope !6216, !noalias !6219 %_4.val.i.i.i.i.i.i.i.1 = load i64, ptr %_49.i.i.1, align 8, !noalias !3, !noundef !3 %90 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 2, i32 1 %_4.val2.i.i.i.i.i.i.i.1 = load i32, ptr %90, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i.1 = icmp ult i64 %_3.val.i.i.i.i.i.i.i.1, %_4.val.i.i.i.i.i.i.i.1 br i1 %_9.i.i.i.i.i.i.i.i.1, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1", label %bb4.i.i.i.i.i.i.i.i.1 bb4.i.i.i.i.i.i.i.i.1: ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i" %_12.i.i.i.i.i.i.i.i.1 = icmp eq i64 %_3.val.i.i.i.i.i.i.i.1, %_4.val.i.i.i.i.i.i.i.1 br i1 %_12.i.i.i.i.i.i.i.i.1, label %bb5.i.i.i.i.i.i.i.i.1, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1" bb5.i.i.i.i.i.i.i.i.1: ; preds = %bb4.i.i.i.i.i.i.i.i.1 %_15.i.i.i.i.i.i.i.i.1 = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.1, %_4.val2.i.i.i.i.i.i.i.1 br i1 %_15.i.i.i.i.i.i.i.i.1, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1", label %bb8.i.i.i.i.i.i.i.i.1 bb8.i.i.i.i.i.i.i.i.1: ; preds = %bb5.i.i.i.i.i.i.i.i.1 %_18.i.i.i.i.not.not.i.i.i.i.1 = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.1, %_4.val2.i.i.i.i.i.i.i.1 %91 = select i1 %_18.i.i.i.i.not.not.i.i.i.i.1, ptr %_0.0.i.i.i.i.i.i.i.i, ptr %_49.i.i.1 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1": ; preds = %bb8.i.i.i.i.i.i.i.i.1, %bb5.i.i.i.i.i.i.i.i.1, %bb4.i.i.i.i.i.i.i.i.1, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i" %_0.0.i.i.i.i.i.i.i.i.1 = phi ptr [ %_0.0.i.i.i.i.i.i.i.i, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i" ], [ %_49.i.i.1, %bb4.i.i.i.i.i.i.i.i.1 ], [ %91, %bb8.i.i.i.i.i.i.i.i.1 ], [ %_0.0.i.i.i.i.i.i.i.i, %bb5.i.i.i.i.i.i.i.i.1 ] %_49.i.i.2 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 3 %_3.val.i.i.i.i.i.i.i.2 = load i64, ptr %_0.0.i.i.i.i.i.i.i.i.1, align 8, !alias.scope !6222, !noalias !6225, !noundef !3 %92 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.1, i64 8 %_3.val1.i.i.i.i.i.i.i.2 = load i32, ptr %92, align 8, !alias.scope !6222, !noalias !6225 %_4.val.i.i.i.i.i.i.i.2 = load i64, ptr %_49.i.i.2, align 8, !noalias !3, !noundef !3 %93 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 3, i32 1 %_4.val2.i.i.i.i.i.i.i.2 = load i32, ptr %93, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i.2 = icmp ult i64 %_3.val.i.i.i.i.i.i.i.2, %_4.val.i.i.i.i.i.i.i.2 br i1 %_9.i.i.i.i.i.i.i.i.2, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2", label %bb4.i.i.i.i.i.i.i.i.2 bb4.i.i.i.i.i.i.i.i.2: ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1" %_12.i.i.i.i.i.i.i.i.2 = icmp eq i64 %_3.val.i.i.i.i.i.i.i.2, %_4.val.i.i.i.i.i.i.i.2 br i1 %_12.i.i.i.i.i.i.i.i.2, label %bb5.i.i.i.i.i.i.i.i.2, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2" bb5.i.i.i.i.i.i.i.i.2: ; preds = %bb4.i.i.i.i.i.i.i.i.2 %_15.i.i.i.i.i.i.i.i.2 = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.2, %_4.val2.i.i.i.i.i.i.i.2 br i1 %_15.i.i.i.i.i.i.i.i.2, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2", label %bb8.i.i.i.i.i.i.i.i.2 bb8.i.i.i.i.i.i.i.i.2: ; preds = %bb5.i.i.i.i.i.i.i.i.2 %_18.i.i.i.i.not.not.i.i.i.i.2 = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.2, %_4.val2.i.i.i.i.i.i.i.2 %94 = select i1 %_18.i.i.i.i.not.not.i.i.i.i.2, ptr %_0.0.i.i.i.i.i.i.i.i.1, ptr %_49.i.i.2 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2": ; preds = %bb8.i.i.i.i.i.i.i.i.2, %bb5.i.i.i.i.i.i.i.i.2, %bb4.i.i.i.i.i.i.i.i.2, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1" %_0.0.i.i.i.i.i.i.i.i.2 = phi ptr [ %_0.0.i.i.i.i.i.i.i.i.1, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.1" ], [ %_49.i.i.2, %bb4.i.i.i.i.i.i.i.i.2 ], [ %94, %bb8.i.i.i.i.i.i.i.i.2 ], [ %_0.0.i.i.i.i.i.i.i.i.1, %bb5.i.i.i.i.i.i.i.i.2 ] %_49.i.i.3 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 4 %_3.val.i.i.i.i.i.i.i.3 = load i64, ptr %_0.0.i.i.i.i.i.i.i.i.2, align 8, !alias.scope !6228, !noalias !6231, !noundef !3 %95 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.2, i64 8 %_3.val1.i.i.i.i.i.i.i.3 = load i32, ptr %95, align 8, !alias.scope !6228, !noalias !6231 %_4.val.i.i.i.i.i.i.i.3 = load i64, ptr %_49.i.i.3, align 8, !noalias !3, !noundef !3 %96 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 4, i32 1 %_4.val2.i.i.i.i.i.i.i.3 = load i32, ptr %96, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i.3 = icmp ult i64 %_3.val.i.i.i.i.i.i.i.3, %_4.val.i.i.i.i.i.i.i.3 br i1 %_9.i.i.i.i.i.i.i.i.3, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3", label %bb4.i.i.i.i.i.i.i.i.3 bb4.i.i.i.i.i.i.i.i.3: ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2" %_12.i.i.i.i.i.i.i.i.3 = icmp eq i64 %_3.val.i.i.i.i.i.i.i.3, %_4.val.i.i.i.i.i.i.i.3 br i1 %_12.i.i.i.i.i.i.i.i.3, label %bb5.i.i.i.i.i.i.i.i.3, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3" bb5.i.i.i.i.i.i.i.i.3: ; preds = %bb4.i.i.i.i.i.i.i.i.3 %_15.i.i.i.i.i.i.i.i.3 = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.3, %_4.val2.i.i.i.i.i.i.i.3 br i1 %_15.i.i.i.i.i.i.i.i.3, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3", label %bb8.i.i.i.i.i.i.i.i.3 bb8.i.i.i.i.i.i.i.i.3: ; preds = %bb5.i.i.i.i.i.i.i.i.3 %_18.i.i.i.i.not.not.i.i.i.i.3 = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.3, %_4.val2.i.i.i.i.i.i.i.3 %97 = select i1 %_18.i.i.i.i.not.not.i.i.i.i.3, ptr %_0.0.i.i.i.i.i.i.i.i.2, ptr %_49.i.i.3 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3": ; preds = %bb8.i.i.i.i.i.i.i.i.3, %bb5.i.i.i.i.i.i.i.i.3, %bb4.i.i.i.i.i.i.i.i.3, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2" %_0.0.i.i.i.i.i.i.i.i.3 = phi ptr [ %_0.0.i.i.i.i.i.i.i.i.2, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.2" ], [ %_49.i.i.3, %bb4.i.i.i.i.i.i.i.i.3 ], [ %97, %bb8.i.i.i.i.i.i.i.i.3 ], [ %_0.0.i.i.i.i.i.i.i.i.2, %bb5.i.i.i.i.i.i.i.i.3 ] %_49.i.i.4 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 5 %_3.val.i.i.i.i.i.i.i.4 = load i64, ptr %_0.0.i.i.i.i.i.i.i.i.3, align 8, !alias.scope !6234, !noalias !6237, !noundef !3 %98 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.3, i64 8 %_3.val1.i.i.i.i.i.i.i.4 = load i32, ptr %98, align 8, !alias.scope !6234, !noalias !6237 %_4.val.i.i.i.i.i.i.i.4 = load i64, ptr %_49.i.i.4, align 8, !noalias !3, !noundef !3 %99 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 5, i32 1 %_4.val2.i.i.i.i.i.i.i.4 = load i32, ptr %99, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i.4 = icmp ult i64 %_3.val.i.i.i.i.i.i.i.4, %_4.val.i.i.i.i.i.i.i.4 br i1 %_9.i.i.i.i.i.i.i.i.4, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4", label %bb4.i.i.i.i.i.i.i.i.4 bb4.i.i.i.i.i.i.i.i.4: ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3" %_12.i.i.i.i.i.i.i.i.4 = icmp eq i64 %_3.val.i.i.i.i.i.i.i.4, %_4.val.i.i.i.i.i.i.i.4 br i1 %_12.i.i.i.i.i.i.i.i.4, label %bb5.i.i.i.i.i.i.i.i.4, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4" bb5.i.i.i.i.i.i.i.i.4: ; preds = %bb4.i.i.i.i.i.i.i.i.4 %_15.i.i.i.i.i.i.i.i.4 = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.4, %_4.val2.i.i.i.i.i.i.i.4 br i1 %_15.i.i.i.i.i.i.i.i.4, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4", label %bb8.i.i.i.i.i.i.i.i.4 bb8.i.i.i.i.i.i.i.i.4: ; preds = %bb5.i.i.i.i.i.i.i.i.4 %_18.i.i.i.i.not.not.i.i.i.i.4 = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.4, %_4.val2.i.i.i.i.i.i.i.4 %100 = select i1 %_18.i.i.i.i.not.not.i.i.i.i.4, ptr %_0.0.i.i.i.i.i.i.i.i.3, ptr %_49.i.i.4 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4": ; preds = %bb8.i.i.i.i.i.i.i.i.4, %bb5.i.i.i.i.i.i.i.i.4, %bb4.i.i.i.i.i.i.i.i.4, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3" %_0.0.i.i.i.i.i.i.i.i.4 = phi ptr [ %_0.0.i.i.i.i.i.i.i.i.3, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.3" ], [ %_49.i.i.4, %bb4.i.i.i.i.i.i.i.i.4 ], [ %100, %bb8.i.i.i.i.i.i.i.i.4 ], [ %_0.0.i.i.i.i.i.i.i.i.3, %bb5.i.i.i.i.i.i.i.i.4 ] %_49.i.i.5 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 6 %_3.val.i.i.i.i.i.i.i.5 = load i64, ptr %_0.0.i.i.i.i.i.i.i.i.4, align 8, !alias.scope !6240, !noalias !6243, !noundef !3 %101 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.4, i64 8 %_3.val1.i.i.i.i.i.i.i.5 = load i32, ptr %101, align 8, !alias.scope !6240, !noalias !6243 %_4.val.i.i.i.i.i.i.i.5 = load i64, ptr %_49.i.i.5, align 8, !noalias !3, !noundef !3 %102 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 6, i32 1 %_4.val2.i.i.i.i.i.i.i.5 = load i32, ptr %102, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i.5 = icmp ult i64 %_3.val.i.i.i.i.i.i.i.5, %_4.val.i.i.i.i.i.i.i.5 br i1 %_9.i.i.i.i.i.i.i.i.5, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5", label %bb4.i.i.i.i.i.i.i.i.5 bb4.i.i.i.i.i.i.i.i.5: ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4" %_12.i.i.i.i.i.i.i.i.5 = icmp eq i64 %_3.val.i.i.i.i.i.i.i.5, %_4.val.i.i.i.i.i.i.i.5 br i1 %_12.i.i.i.i.i.i.i.i.5, label %bb5.i.i.i.i.i.i.i.i.5, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5" bb5.i.i.i.i.i.i.i.i.5: ; preds = %bb4.i.i.i.i.i.i.i.i.5 %_15.i.i.i.i.i.i.i.i.5 = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.5, %_4.val2.i.i.i.i.i.i.i.5 br i1 %_15.i.i.i.i.i.i.i.i.5, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5", label %bb8.i.i.i.i.i.i.i.i.5 bb8.i.i.i.i.i.i.i.i.5: ; preds = %bb5.i.i.i.i.i.i.i.i.5 %_18.i.i.i.i.not.not.i.i.i.i.5 = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.5, %_4.val2.i.i.i.i.i.i.i.5 %103 = select i1 %_18.i.i.i.i.not.not.i.i.i.i.5, ptr %_0.0.i.i.i.i.i.i.i.i.4, ptr %_49.i.i.5 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5": ; preds = %bb8.i.i.i.i.i.i.i.i.5, %bb5.i.i.i.i.i.i.i.i.5, %bb4.i.i.i.i.i.i.i.i.5, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4" %_0.0.i.i.i.i.i.i.i.i.5 = phi ptr [ %_0.0.i.i.i.i.i.i.i.i.4, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.4" ], [ %_49.i.i.5, %bb4.i.i.i.i.i.i.i.i.5 ], [ %103, %bb8.i.i.i.i.i.i.i.i.5 ], [ %_0.0.i.i.i.i.i.i.i.i.4, %bb5.i.i.i.i.i.i.i.i.5 ] %_49.i.i.6 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 7 %_3.val.i.i.i.i.i.i.i.6 = load i64, ptr %_0.0.i.i.i.i.i.i.i.i.5, align 8, !alias.scope !6246, !noalias !6249, !noundef !3 %104 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.5, i64 8 %_3.val1.i.i.i.i.i.i.i.6 = load i32, ptr %104, align 8, !alias.scope !6246, !noalias !6249 %_4.val.i.i.i.i.i.i.i.6 = load i64, ptr %_49.i.i.6, align 8, !noalias !3, !noundef !3 %105 = getelementptr inbounds [8 x %"core::time::Duration"], ptr %avg_durations, i64 0, i64 7, i32 1 %_4.val2.i.i.i.i.i.i.i.6 = load i32, ptr %105, align 8, !noalias !3 %_9.i.i.i.i.i.i.i.i.6 = icmp ult i64 %_3.val.i.i.i.i.i.i.i.6, %_4.val.i.i.i.i.i.i.i.6 br i1 %_9.i.i.i.i.i.i.i.i.6, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6", label %bb4.i.i.i.i.i.i.i.i.6 bb4.i.i.i.i.i.i.i.i.6: ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5" %_12.i.i.i.i.i.i.i.i.6 = icmp eq i64 %_3.val.i.i.i.i.i.i.i.6, %_4.val.i.i.i.i.i.i.i.6 br i1 %_12.i.i.i.i.i.i.i.i.6, label %bb5.i.i.i.i.i.i.i.i.6, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6" bb5.i.i.i.i.i.i.i.i.6: ; preds = %bb4.i.i.i.i.i.i.i.i.6 %_15.i.i.i.i.i.i.i.i.6 = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.6, %_4.val2.i.i.i.i.i.i.i.6 br i1 %_15.i.i.i.i.i.i.i.i.6, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6", label %bb8.i.i.i.i.i.i.i.i.6 bb8.i.i.i.i.i.i.i.i.6: ; preds = %bb5.i.i.i.i.i.i.i.i.6 %_18.i.i.i.i.not.not.i.i.i.i.6 = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.6, %_4.val2.i.i.i.i.i.i.i.6 %106 = select i1 %_18.i.i.i.i.not.not.i.i.i.i.6, ptr %_0.0.i.i.i.i.i.i.i.i.5, ptr %_49.i.i.6 br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6": ; preds = %bb8.i.i.i.i.i.i.i.i.6, %bb5.i.i.i.i.i.i.i.i.6, %bb4.i.i.i.i.i.i.i.i.6, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5" %_0.0.i.i.i.i.i.i.i.i.6 = phi ptr [ %_0.0.i.i.i.i.i.i.i.i.5, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.5" ], [ %_49.i.i.6, %bb4.i.i.i.i.i.i.i.i.6 ], [ %106, %bb8.i.i.i.i.i.i.i.i.6 ], [ %_0.0.i.i.i.i.i.i.i.i.5, %bb5.i.i.i.i.i.i.i.i.6 ] %_9.i.i = load i64, ptr %_0.0.i.i.i.i.i.i.i.i.6, align 8, !noundef !3 %107 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.6, i64 8 %.val.i = load i64, ptr %avg_durations, align 8, !noalias !6252, !noundef !3 %_7.i.i = icmp eq i64 %_9.i.i, %.val.i br i1 %_7.i.i, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i", label %bb9.i107 bb8: ; preds = %bb36, %bb20 %iter.sroa.8.0206 = phi i64 [ 0, %bb36 ], [ %108, %bb20 ] %108 = add nuw nsw i64 %iter.sroa.8.0206, 1 %_3.i.i = getelementptr inbounds %"core::time::Duration", ptr %avg_durations, i64 %iter.sroa.8.0206 %109 = icmp ult i64 %iter.sroa.8.0206, 8 br i1 %109, label %switch.lookup, label %bb1.i103 bb1.i103: ; preds = %bb8 ; call core::panicking::panic call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_a500d906b91607583596fa15e63c2ada, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_feac8914a9f83e63647655d545fc571c) #22 unreachable switch.lookup: ; preds = %bb8 %switch.idx.cast = trunc i64 %iter.sroa.8.0206 to i8 br label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i142 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i": ; preds = %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6" %_13.i.i = load i32, ptr %107, align 8, !noundef !3 %110 = icmp eq i32 %_13.i.i, %_3.val1.i.i.i.i.i.i.i br i1 %110, label %bb23, label %bb9.i107 bb9.i107: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i", %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E.exit.i.i.6" %_7.i.i.1 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i br i1 %_7.i.i.1, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.1", label %bb9.i107.1 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.1": ; preds = %bb9.i107 %_13.i.i.1 = load i32, ptr %107, align 8, !noundef !3 %111 = icmp eq i32 %_13.i.i.1, %_4.val2.i.i.i.i.i.i.i br i1 %111, label %bb23, label %bb9.i107.1 bb9.i107.1: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.1", %bb9.i107 %_7.i.i.2 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i.1 br i1 %_7.i.i.2, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.2", label %bb9.i107.2 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.2": ; preds = %bb9.i107.1 %_13.i.i.2 = load i32, ptr %107, align 8, !noundef !3 %112 = icmp eq i32 %_13.i.i.2, %_4.val2.i.i.i.i.i.i.i.1 br i1 %112, label %bb23, label %bb9.i107.2 bb9.i107.2: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.2", %bb9.i107.1 %_7.i.i.3 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i.2 br i1 %_7.i.i.3, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.3", label %bb9.i107.3 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.3": ; preds = %bb9.i107.2 %_13.i.i.3 = load i32, ptr %107, align 8, !noundef !3 %113 = icmp eq i32 %_13.i.i.3, %_4.val2.i.i.i.i.i.i.i.2 br i1 %113, label %bb23, label %bb9.i107.3 bb9.i107.3: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.3", %bb9.i107.2 %_7.i.i.4 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i.3 br i1 %_7.i.i.4, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.4", label %bb9.i107.4 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.4": ; preds = %bb9.i107.3 %_13.i.i.4 = load i32, ptr %107, align 8, !noundef !3 %114 = icmp eq i32 %_13.i.i.4, %_4.val2.i.i.i.i.i.i.i.3 br i1 %114, label %bb23, label %bb9.i107.4 bb9.i107.4: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.4", %bb9.i107.3 %_7.i.i.5 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i.4 br i1 %_7.i.i.5, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.5", label %bb9.i107.5 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.5": ; preds = %bb9.i107.4 %_13.i.i.5 = load i32, ptr %107, align 8, !noundef !3 %115 = icmp eq i32 %_13.i.i.5, %_4.val2.i.i.i.i.i.i.i.4 br i1 %115, label %bb23, label %bb9.i107.5 bb9.i107.5: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.5", %bb9.i107.4 %_7.i.i.6 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i.5 br i1 %_7.i.i.6, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.6", label %bb9.i107.6 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.6": ; preds = %bb9.i107.5 %_13.i.i.6 = load i32, ptr %107, align 8, !noundef !3 %116 = icmp eq i32 %_13.i.i.6, %_4.val2.i.i.i.i.i.i.i.5 br i1 %116, label %bb23, label %bb9.i107.6 bb9.i107.6: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.6", %bb9.i107.5 %_7.i.i.7 = icmp eq i64 %_9.i.i, %_4.val.i.i.i.i.i.i.i.6 br i1 %_7.i.i.7, label %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.7", label %bb9.i107.7 "_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.7": ; preds = %bb9.i107.6 %_13.i.i.7 = load i32, ptr %107, align 8, !noundef !3 %117 = icmp eq i32 %_13.i.i.7, %_4.val2.i.i.i.i.i.i.i.6 br i1 %117, label %bb23, label %bb9.i107.7 bb9.i107.7: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.7", %bb9.i107.6 ; call core::option::unwrap_failed call void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_defc14adf7d0042fd5980f68e887c0d4) #22 unreachable bb23: ; preds = %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.7", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.6", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.5", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.4", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.3", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.2", %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.1" %_80.1212 = phi i32 [ %_4.val2.i.i.i.i.i.i.i, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.1" ], [ %_4.val2.i.i.i.i.i.i.i.1, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.2" ], [ %_4.val2.i.i.i.i.i.i.i.2, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.3" ], [ %_4.val2.i.i.i.i.i.i.i.3, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.4" ], [ %_4.val2.i.i.i.i.i.i.i.4, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.5" ], [ %_4.val2.i.i.i.i.i.i.i.5, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.6" ], [ %_4.val2.i.i.i.i.i.i.i.6, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.7" ], [ %_3.val1.i.i.i.i.i.i.i, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i" ] %_0.0.i111 = phi i8 [ 1, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.1" ], [ 2, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.2" ], [ 3, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.3" ], [ 4, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.4" ], [ 5, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.5" ], [ 6, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.6" ], [ 7, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i.7" ], [ 0, %"_ZN12concrete_fft7ordered15measure_fastest28_$u7b$$u7b$closure$u7d$$u7d$17he4840797e2521779E.exit.i" ] store i8 %_0.0.i111, ptr %_0, align 8 %118 = getelementptr inbounds { i8, [7 x i8], %"core::time::Duration" }, ptr %_0, i64 0, i32 2 store i64 %_9.i.i, ptr %118, align 8 %119 = getelementptr inbounds { i8, [7 x i8], %"core::time::Duration" }, ptr %_0, i64 0, i32 2, i32 1 store i32 %_80.1212, ptr %119, align 8 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %avg_durations) ret void _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i142: ; preds = %bb12.i, %switch.lookup %n_runs.0 = phi i128 [ %126, %bb12.i ], [ 1, %switch.lookup ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_11.i), !noalias !6256 ; call concrete_fft::ordered::get_fn_ptr call fastcc void @_ZN12concrete_fft7ordered10get_fn_ptr17h345a513ed1ede784E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(16) %_11.i, i8 noundef %switch.idx.cast, i64 noundef %n) %fwd.i = load ptr, ptr %_11.i, align 8, !noalias !6256, !nonnull !3, !noundef !3 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_11.i), !noalias !6256 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %now.i), !noalias !6256 ; call std::time::Instant::now %120 = call { i64, i32 } @_ZN3std4time7Instant3now17hab1b16cc3dc6aeddE() %121 = extractvalue { i64, i32 } %120, 0 %122 = extractvalue { i64, i32 } %120, 1 store i64 %121, ptr %now.i, align 8, !noalias !6256 store i32 %122, ptr %86, align 8, !noalias !6256 %_203.not.i = icmp eq i128 %n_runs.0, 0 br i1 %_203.not.i, label %bb12.i, label %bb11.i bb12.i: ; preds = %bb11.i, %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i142 ; call std::time::Instant::elapsed %123 = call { i64, i32 } @_ZN3std4time7Instant7elapsed17h553679d4e3b86f9fE(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %now.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %now.i), !noalias !6256 %124 = extractvalue { i64, i32 } %123, 0 %125 = extractvalue { i64, i32 } %123, 1 %_13.i = icmp eq i64 %124, 0 %_17.i = icmp ult i32 %125, 1000000 %_41 = select i1 %_13.i, i1 %_17.i, i1 false %126 = shl i128 %n_runs.0, 1 br i1 %_41, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i142, label %bb14 bb11.i: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i142, %bb11.i %iter.sroa.0.04.i = phi i128 [ %_0.i.i, %bb11.i ], [ 0, %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i142 ] %_0.i.i = add nuw i128 %iter.sroa.0.04.i, 1 call void %fwd.i(ptr noalias noundef nonnull align 8 %data2.i.i.i60, i64 noundef %n, ptr noalias noundef nonnull align 8 %data2.i.i.i92, i64 noundef %n, ptr noalias noundef nonnull readonly align 8 %data16, i64 noundef %n, ptr noalias noundef nonnull readonly align 8 %data2.i.i.i, i64 noundef %n) %_20.i = icmp ult i128 %_0.i.i, %n_runs.0 br i1 %_20.i, label %bb11.i, label %bb12.i bb14: ; preds = %bb12.i %_46 = uitofp i128 %n_runs.0 to double ; call concrete_fft::ordered::duration_div_f64 %127 = call fastcc { i64, i32 } @_ZN12concrete_fft7ordered16duration_div_f6417h5231ac64bfa9d687E(i64 noundef %124, i32 noundef %125, double noundef %_46) %_44.0 = extractvalue { i64, i32 } %127, 0 %_44.1 = extractvalue { i64, i32 } %127, 1 %_148 = uitofp i64 %_44.0 to double %_151 = uitofp i32 %_44.1 to double %_150 = fdiv double %_151, 1.000000e+09 %_53 = fadd double %_150, %_148 %self20 = fdiv double %_51, %_53 %128 = call double @llvm.ceil.f64(double %self20) %n_runs21 = call i128 @llvm.fptoui.sat.i128.f64(double %128) %_56.not = icmp ugt i128 %n_runs21, %n_runs.0 br i1 %_56.not, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i177, label %bb20 _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i177: ; preds = %bb14 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_11.i166), !noalias !6262 ; call concrete_fft::ordered::get_fn_ptr call fastcc void @_ZN12concrete_fft7ordered10get_fn_ptr17h345a513ed1ede784E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(16) %_11.i166, i8 noundef %switch.idx.cast, i64 noundef %n) %fwd.i179 = load ptr, ptr %_11.i166, align 8, !noalias !6262, !nonnull !3, !noundef !3 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_11.i166), !noalias !6262 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %now.i165), !noalias !6262 ; call std::time::Instant::now %129 = call { i64, i32 } @_ZN3std4time7Instant3now17hab1b16cc3dc6aeddE() %130 = extractvalue { i64, i32 } %129, 0 %131 = extractvalue { i64, i32 } %129, 1 store i64 %130, ptr %now.i165, align 8, !noalias !6262 store i32 %131, ptr %87, align 8, !noalias !6262 br label %bb11.i181 bb12.i185: ; preds = %bb11.i181 ; call std::time::Instant::elapsed %132 = call { i64, i32 } @_ZN3std4time7Instant7elapsed17h553679d4e3b86f9fE(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %now.i165) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %now.i165), !noalias !6262 %duration.0 = extractvalue { i64, i32 } %132, 0 %duration.1 = extractvalue { i64, i32 } %132, 1 %_63 = uitofp i128 %n_runs21 to double ; call concrete_fft::ordered::duration_div_f64 %133 = call fastcc { i64, i32 } @_ZN12concrete_fft7ordered16duration_div_f6417h5231ac64bfa9d687E(i64 noundef %duration.0, i32 noundef %duration.1, double noundef %_63) %134 = extractvalue { i64, i32 } %133, 0 %135 = extractvalue { i64, i32 } %133, 1 br label %bb20 bb11.i181: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i177, %bb11.i181 %iter.sroa.0.04.i182 = phi i128 [ %_0.i.i183, %bb11.i181 ], [ 0, %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i177 ] %_0.i.i183 = add nuw i128 %iter.sroa.0.04.i182, 1 call void %fwd.i179(ptr noalias noundef nonnull align 8 %data2.i.i.i60, i64 noundef %n, ptr noalias noundef nonnull align 8 %data2.i.i.i92, i64 noundef %n, ptr noalias noundef nonnull readonly align 8 %data16, i64 noundef %n, ptr noalias noundef nonnull readonly align 8 %data2.i.i.i, i64 noundef %n) %_20.i184 = icmp ult i128 %_0.i.i183, %n_runs21 br i1 %_20.i184, label %bb11.i181, label %bb12.i185 bb20: ; preds = %bb14, %bb12.i185 %_55.sroa.0.0 = phi i64 [ %134, %bb12.i185 ], [ %_44.0, %bb14 ] %_55.sroa.5.0 = phi i32 [ %135, %bb12.i185 ], [ %_44.1, %bb14 ] store i64 %_55.sroa.0.0, ptr %_3.i.i, align 8 %136 = getelementptr inbounds i8, ptr %_3.i.i, i64 8 store i32 %_55.sroa.5.0, ptr %136, align 8 %exitcond.not = icmp eq i64 %108, 8 br i1 %exitcond.not, label %bb9, label %bb8 } ; ::fmt ; Function Attrs: nonlazybind uwtable define noundef zeroext i1 @"_ZN64_$LT$concrete_fft..ordered..Plan$u20$as$u20$core..fmt..Debug$GT$3fmt17hd88000bf32bf9ad1E"(ptr noalias noundef readonly align 8 dereferenceable(56) %self, ptr noalias noundef align 8 dereferenceable(64) %f) unnamed_addr #0 { start: %_14 = alloca i64, align 8 %_6 = alloca %"core::fmt::builders::DebugStruct<'_, '_>", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_6) ; call core::fmt::Formatter::debug_struct call void @_ZN4core3fmt9Formatter12debug_struct17hd73751d7fb4f2f1fE(ptr noalias nocapture noundef nonnull sret(%"core::fmt::builders::DebugStruct<'_, '_>") align 8 dereferenceable(16) %_6, ptr noalias noundef nonnull align 8 dereferenceable(64) %f, ptr noalias noundef nonnull readonly align 1 @alloc_3e79479e97db69285ea6f953d78f10f9, i64 noundef 4) %_10 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 4 ; call core::fmt::builders::DebugStruct::field %_4 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17hd8ccd7f398ada389E(ptr noalias noundef nonnull align 8 dereferenceable(16) %_6, ptr noalias noundef nonnull readonly align 1 @alloc_9a9e0d0b735fdc92678304642744192b, i64 noundef 4, ptr noundef nonnull align 1 %_10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.3) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_14) %0 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 2, i32 0, i32 0, i32 1 %self.1 = load i64, ptr %0, align 8, !noundef !3 %1 = lshr i64 %self.1, 1 store i64 %1, ptr %_14, align 8 ; call core::fmt::builders::DebugStruct::field %_3 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17hd8ccd7f398ada389E(ptr noalias noundef nonnull align 8 dereferenceable(16) %_4, ptr noalias noundef nonnull readonly align 1 @alloc_91a1caf18117f9d24e09981586d01594, i64 noundef 8, ptr noundef nonnull align 1 %_14, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.4) ; call core::fmt::builders::DebugStruct::finish %_0 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17hbeda9600f5f5968bE(ptr noalias noundef nonnull align 8 dereferenceable(16) %_3) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_14) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_6) ret i1 %_0 } ; concrete_fft::ordered::do_nothing ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define internal void @_ZN12concrete_fft7ordered10do_nothing17heaa7a4565867ea90E(ptr noalias nocapture nonnull readnone align 8 %_1.0, i64 %_1.1, ptr noalias nocapture nonnull readnone align 8 %_2.0, i64 %_2.1, ptr noalias nocapture nonnull readonly align 8 %_3.0, i64 %_3.1, ptr noalias nocapture nonnull readonly align 8 %_4.0, i64 %_4.1) unnamed_addr #10 { start: ret void } ; concrete_fft::ordered::get_fn_ptr ; Function Attrs: nonlazybind uwtable define internal fastcc void @_ZN12concrete_fft7ordered10get_fn_ptr17h345a513ed1ede784E(ptr noalias nocapture noundef writeonly align 8 dereferenceable(16) %_0, i8 noundef %0, i64 noundef %n) unnamed_addr #0 { start: %_9.i455 = alloca %FftImpl, align 8 %_7.i456 = alloca %FftImpl, align 8 %_4.i457 = alloca %FftImpl, align 8 %_9.i360 = alloca %FftImpl, align 8 %_7.i361 = alloca %FftImpl, align 8 %_4.i362 = alloca %FftImpl, align 8 %_9.i265 = alloca %FftImpl, align 8 %_7.i266 = alloca %FftImpl, align 8 %_4.i267 = alloca %FftImpl, align 8 %_9.i170 = alloca %FftImpl, align 8 %_7.i171 = alloca %FftImpl, align 8 %_4.i172 = alloca %FftImpl, align 8 %_9.i75 = alloca %FftImpl, align 8 %_7.i76 = alloca %FftImpl, align 8 %_4.i77 = alloca %FftImpl, align 8 %_9.i = alloca %FftImpl, align 8 %_7.i = alloca %FftImpl, align 8 %_4.i61 = alloca %FftImpl, align 8 %_6.i1 = alloca %FftImpl, align 8 %_4.i2 = alloca %FftImpl, align 8 %_6.i = alloca %FftImpl, align 8 %_4.i = alloca %FftImpl, align 8 %1 = icmp eq i64 %n, 1 br i1 %1, label %repeat_loop_body.preheader, label %bb2 repeat_loop_body.preheader: ; preds = %start store ptr @_ZN12concrete_fft7ordered10do_nothing17heaa7a4565867ea90E, ptr %_0, align 8 %2 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr @_ZN12concrete_fft7ordered10do_nothing17heaa7a4565867ea90E, ptr %2, align 8 br label %bb11 bb2: ; preds = %start switch i8 %0, label %default.unreachable [ i8 0, label %bb4 i8 1, label %bb5 i8 2, label %bb6 i8 3, label %bb7 i8 4, label %bb8 i8 5, label %bb9 i8 6, label %bb10 i8 7, label %bb3 ] bb11: ; preds = %repeat_loop_body.preheader, %bb11.i545, %bb17.i518, %bb20.i493, %bb11.i450, %bb17.i423, %bb20.i398, %bb11.i355, %bb17.i328, %bb20.i303, %bb11.i260, %bb17.i233, %bb20.i208, %bb11.i165, %bb17.i138, %bb20.i113, %bb11.i72, %bb17.i, %bb20.i, %bb8.i56, %bb11.i31, %bb8.i, %bb11.i ret void default.unreachable: ; preds = %bb2 unreachable bb4: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6268) %3 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6268 %_3.i.i = icmp eq i8 %3, -1 br i1 %_3.i.i, label %bb1.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i.i: ; preds = %bb4 ; call pulp::x86::V3::__detect_is_available %_5.i.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6268 %4 = zext i1 %_5.i.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %bb1.i.i, %bb4 %available.0.i.i = phi i8 [ %4, %bb1.i.i ], [ %3, %bb4 ] %_0.i.i = icmp ne i8 %available.0.i.i, 0 %_2.i = icmp ugt i64 %n, 3 %or.cond.i = and i1 %_2.i, %_0.i.i br i1 %or.cond.i, label %bb1.i, label %bb3.i bb3.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_6.i), !noalias !6268 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_6.i, align 8, !noalias !6268 %ptrs1.sroa.5.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2c7ce3adaf1a0a93E, ptr %ptrs1.sroa.5.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.6.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfb15e6fac6abd2f8E, ptr %ptrs1.sroa.6.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.7.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd2bbd537b493c18fE, ptr %ptrs1.sroa.7.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.8.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc439f0f9bf78f7a4E, ptr %ptrs1.sroa.8.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.9.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcd5997a2929ba99aE, ptr %ptrs1.sroa.9.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.10.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4eb25c26df97bfa6E, ptr %ptrs1.sroa.10.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.11.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcbfe728059b9db44E, ptr %ptrs1.sroa.11.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.12.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha0dc59ff18b8ac3fE, ptr %ptrs1.sroa.12.0._6.sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.13.0._6.sroa_idx.i = getelementptr inbounds i8, ptr %_6.i, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfba7c8ceb0310e85E, ptr %ptrs1.sroa.13.0._6.sroa_idx.i, align 8, !noalias !6268 %5 = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %5, align 8, !noalias !6268 %ptrs1.sroa.5.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2c7ce3adaf1a0a93E, ptr %ptrs1.sroa.5.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.6.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfb15e6fac6abd2f8E, ptr %ptrs1.sroa.6.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.7.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd2bbd537b493c18fE, ptr %ptrs1.sroa.7.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.8.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc439f0f9bf78f7a4E, ptr %ptrs1.sroa.8.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.9.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcd5997a2929ba99aE, ptr %ptrs1.sroa.9.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.10.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4eb25c26df97bfa6E, ptr %ptrs1.sroa.10.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.11.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcbfe728059b9db44E, ptr %ptrs1.sroa.11.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.12.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha0dc59ff18b8ac3fE, ptr %ptrs1.sroa.12.0..sroa_idx.i, align 8, !noalias !6268 %ptrs1.sroa.13.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfba7c8ceb0310e85E, ptr %ptrs1.sroa.13.0..sroa_idx.i, align 8, !noalias !6268 %6 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i = add nsw i64 %6, -1 %_41.i = icmp ult i64 %idx.i, 10 br i1 %_41.i, label %bb11.i, label %panic.i, !prof !2180 bb1.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i), !noalias !6268 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %_4.i, align 8, !noalias !6268 %ptrs.sroa.5.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h754fb9d412d5b3eeE, ptr %ptrs.sroa.5.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.6.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1be21f260b2d43d8E, ptr %ptrs.sroa.6.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.7.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17had125a4ed8b780c7E, ptr %ptrs.sroa.7.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.8.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h127454c6109fb2aaE, ptr %ptrs.sroa.8.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.9.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6eae222a51387a69E, ptr %ptrs.sroa.9.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.10.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h655741d47a42e420E, ptr %ptrs.sroa.10.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.11.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h19861c604fc94768E, ptr %ptrs.sroa.11.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.12.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2a102e58d217dd6aE, ptr %ptrs.sroa.12.0._4.sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.13.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf579883489a883b9E, ptr %ptrs.sroa.13.0._4.sroa_idx.i, align 8, !noalias !6268 %7 = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %7, align 8, !noalias !6268 %ptrs.sroa.5.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h754fb9d412d5b3eeE, ptr %ptrs.sroa.5.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.6.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1be21f260b2d43d8E, ptr %ptrs.sroa.6.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.7.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17had125a4ed8b780c7E, ptr %ptrs.sroa.7.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.8.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h127454c6109fb2aaE, ptr %ptrs.sroa.8.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.9.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6eae222a51387a69E, ptr %ptrs.sroa.9.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.10.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h655741d47a42e420E, ptr %ptrs.sroa.10.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.11.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h19861c604fc94768E, ptr %ptrs.sroa.11.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.12.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2a102e58d217dd6aE, ptr %ptrs.sroa.12.0..sroa_idx.i, align 8, !noalias !6268 %ptrs.sroa.13.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf579883489a883b9E, ptr %ptrs.sroa.13.0..sroa_idx.i, align 8, !noalias !6268 %8 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx3.i = add nsw i64 %8, -1 %_23.i = icmp ult i64 %idx3.i, 10 br i1 %_23.i, label %bb8.i, label %panic4.i, !prof !2180 bb11.i: ; preds = %bb3.i %9 = getelementptr inbounds [10 x ptr], ptr %_6.i, i64 0, i64 %idx.i %_40.i = load ptr, ptr %9, align 8, !noalias !6268, !nonnull !3, !noundef !3 %10 = getelementptr inbounds %FftImpl, ptr %_6.i, i64 0, i32 1, i64 %idx.i %_42.i = load ptr, ptr %10, align 8, !noalias !6268, !nonnull !3, !noundef !3 store ptr %_40.i, ptr %_0, align 8, !alias.scope !6268 %11 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_42.i, ptr %11, align 8, !alias.scope !6268 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_6.i), !noalias !6268 br label %bb11 panic.i: ; preds = %bb3.i ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6268 unreachable bb8.i: ; preds = %bb1.i %12 = getelementptr inbounds [10 x ptr], ptr %_4.i, i64 0, i64 %idx3.i %_22.i = load ptr, ptr %12, align 8, !noalias !6268, !nonnull !3, !noundef !3 %13 = getelementptr inbounds %FftImpl, ptr %_4.i, i64 0, i32 1, i64 %idx3.i %_24.i = load ptr, ptr %13, align 8, !noalias !6268, !nonnull !3, !noundef !3 store ptr %_22.i, ptr %_0, align 8, !alias.scope !6268 %14 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_24.i, ptr %14, align 8, !alias.scope !6268 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i), !noalias !6268 br label %bb11 panic4.i: ; preds = %bb1.i ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx3.i, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6268 unreachable bb5: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6271) %15 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6271 %_3.i.i3 = icmp eq i8 %15, -1 br i1 %_3.i.i3, label %bb1.i.i59, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i4 bb1.i.i59: ; preds = %bb5 ; call pulp::x86::V3::__detect_is_available %_5.i.i60 = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6271 %16 = zext i1 %_5.i.i60 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i4 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i4: ; preds = %bb1.i.i59, %bb5 %available.0.i.i5 = phi i8 [ %16, %bb1.i.i59 ], [ %15, %bb5 ] %_0.i.i6 = icmp ne i8 %available.0.i.i5, 0 %_2.i7 = icmp ugt i64 %n, 3 %or.cond.i8 = and i1 %_2.i7, %_0.i.i6 br i1 %or.cond.i8, label %bb1.i34, label %bb3.i9 bb3.i9: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i4 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_6.i1), !noalias !6271 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_6.i1, align 8, !noalias !6271 %ptrs1.sroa.5.0._6.sroa_idx.i10 = getelementptr inbounds i8, ptr %_6.i1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17had63cca2c38998c7E, ptr %ptrs1.sroa.5.0._6.sroa_idx.i10, align 8, !noalias !6271 %ptrs1.sroa.6.0._6.sroa_idx.i11 = getelementptr inbounds i8, ptr %_6.i1, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h396f966ddeae67ddE, ptr %ptrs1.sroa.6.0._6.sroa_idx.i11, align 8, !noalias !6271 %ptrs1.sroa.7.0._6.sroa_idx.i12 = getelementptr inbounds i8, ptr %_6.i1, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17hefa52b1fcd7aca13E, ptr %ptrs1.sroa.7.0._6.sroa_idx.i12, align 8, !noalias !6271 %ptrs1.sroa.8.0._6.sroa_idx.i13 = getelementptr inbounds i8, ptr %_6.i1, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h33c0e7a616f1a7b8E, ptr %ptrs1.sroa.8.0._6.sroa_idx.i13, align 8, !noalias !6271 %ptrs1.sroa.9.0._6.sroa_idx.i14 = getelementptr inbounds i8, ptr %_6.i1, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb9d25274af069e40E, ptr %ptrs1.sroa.9.0._6.sroa_idx.i14, align 8, !noalias !6271 %ptrs1.sroa.10.0._6.sroa_idx.i15 = getelementptr inbounds i8, ptr %_6.i1, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h88f8f4bf36c447b5E, ptr %ptrs1.sroa.10.0._6.sroa_idx.i15, align 8, !noalias !6271 %ptrs1.sroa.11.0._6.sroa_idx.i16 = getelementptr inbounds i8, ptr %_6.i1, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc5bf4b1afe16374eE, ptr %ptrs1.sroa.11.0._6.sroa_idx.i16, align 8, !noalias !6271 %ptrs1.sroa.12.0._6.sroa_idx.i17 = getelementptr inbounds i8, ptr %_6.i1, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h479b1e159c177d0fE, ptr %ptrs1.sroa.12.0._6.sroa_idx.i17, align 8, !noalias !6271 %ptrs1.sroa.13.0._6.sroa_idx.i18 = getelementptr inbounds i8, ptr %_6.i1, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h19e7e8737ff41a54E, ptr %ptrs1.sroa.13.0._6.sroa_idx.i18, align 8, !noalias !6271 %17 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %17, align 8, !noalias !6271 %ptrs1.sroa.5.0..sroa_idx.i19 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17had63cca2c38998c7E, ptr %ptrs1.sroa.5.0..sroa_idx.i19, align 8, !noalias !6271 %ptrs1.sroa.6.0..sroa_idx.i20 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h396f966ddeae67ddE, ptr %ptrs1.sroa.6.0..sroa_idx.i20, align 8, !noalias !6271 %ptrs1.sroa.7.0..sroa_idx.i21 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17hefa52b1fcd7aca13E, ptr %ptrs1.sroa.7.0..sroa_idx.i21, align 8, !noalias !6271 %ptrs1.sroa.8.0..sroa_idx.i22 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h33c0e7a616f1a7b8E, ptr %ptrs1.sroa.8.0..sroa_idx.i22, align 8, !noalias !6271 %ptrs1.sroa.9.0..sroa_idx.i23 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb9d25274af069e40E, ptr %ptrs1.sroa.9.0..sroa_idx.i23, align 8, !noalias !6271 %ptrs1.sroa.10.0..sroa_idx.i24 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h88f8f4bf36c447b5E, ptr %ptrs1.sroa.10.0..sroa_idx.i24, align 8, !noalias !6271 %ptrs1.sroa.11.0..sroa_idx.i25 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc5bf4b1afe16374eE, ptr %ptrs1.sroa.11.0..sroa_idx.i25, align 8, !noalias !6271 %ptrs1.sroa.12.0..sroa_idx.i26 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h479b1e159c177d0fE, ptr %ptrs1.sroa.12.0..sroa_idx.i26, align 8, !noalias !6271 %ptrs1.sroa.13.0..sroa_idx.i27 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h19e7e8737ff41a54E, ptr %ptrs1.sroa.13.0..sroa_idx.i27, align 8, !noalias !6271 %18 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i28 = add nsw i64 %18, -1 %_41.i29 = icmp ult i64 %idx.i28, 10 br i1 %_41.i29, label %bb11.i31, label %panic.i30, !prof !2180 bb1.i34: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i4 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i2), !noalias !6271 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %_4.i2, align 8, !noalias !6271 %ptrs.sroa.5.0._4.sroa_idx.i35 = getelementptr inbounds i8, ptr %_4.i2, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7ade0115a0b7cb39E, ptr %ptrs.sroa.5.0._4.sroa_idx.i35, align 8, !noalias !6271 %ptrs.sroa.6.0._4.sroa_idx.i36 = getelementptr inbounds i8, ptr %_4.i2, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6ab2952fc8d89babE, ptr %ptrs.sroa.6.0._4.sroa_idx.i36, align 8, !noalias !6271 %ptrs.sroa.7.0._4.sroa_idx.i37 = getelementptr inbounds i8, ptr %_4.i2, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb089b7cc54bdd5fbE, ptr %ptrs.sroa.7.0._4.sroa_idx.i37, align 8, !noalias !6271 %ptrs.sroa.8.0._4.sroa_idx.i38 = getelementptr inbounds i8, ptr %_4.i2, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc8bf4c39f38d06b3E, ptr %ptrs.sroa.8.0._4.sroa_idx.i38, align 8, !noalias !6271 %ptrs.sroa.9.0._4.sroa_idx.i39 = getelementptr inbounds i8, ptr %_4.i2, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h67180ff697900a83E, ptr %ptrs.sroa.9.0._4.sroa_idx.i39, align 8, !noalias !6271 %ptrs.sroa.10.0._4.sroa_idx.i40 = getelementptr inbounds i8, ptr %_4.i2, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h33317e12ea3a8c19E, ptr %ptrs.sroa.10.0._4.sroa_idx.i40, align 8, !noalias !6271 %ptrs.sroa.11.0._4.sroa_idx.i41 = getelementptr inbounds i8, ptr %_4.i2, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3dcbd228650df949E, ptr %ptrs.sroa.11.0._4.sroa_idx.i41, align 8, !noalias !6271 %ptrs.sroa.12.0._4.sroa_idx.i42 = getelementptr inbounds i8, ptr %_4.i2, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6409063d70320d68E, ptr %ptrs.sroa.12.0._4.sroa_idx.i42, align 8, !noalias !6271 %ptrs.sroa.13.0._4.sroa_idx.i43 = getelementptr inbounds i8, ptr %_4.i2, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7cab27b8a92f225aE, ptr %ptrs.sroa.13.0._4.sroa_idx.i43, align 8, !noalias !6271 %19 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %19, align 8, !noalias !6271 %ptrs.sroa.5.0..sroa_idx.i44 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7ade0115a0b7cb39E, ptr %ptrs.sroa.5.0..sroa_idx.i44, align 8, !noalias !6271 %ptrs.sroa.6.0..sroa_idx.i45 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6ab2952fc8d89babE, ptr %ptrs.sroa.6.0..sroa_idx.i45, align 8, !noalias !6271 %ptrs.sroa.7.0..sroa_idx.i46 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb089b7cc54bdd5fbE, ptr %ptrs.sroa.7.0..sroa_idx.i46, align 8, !noalias !6271 %ptrs.sroa.8.0..sroa_idx.i47 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc8bf4c39f38d06b3E, ptr %ptrs.sroa.8.0..sroa_idx.i47, align 8, !noalias !6271 %ptrs.sroa.9.0..sroa_idx.i48 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h67180ff697900a83E, ptr %ptrs.sroa.9.0..sroa_idx.i48, align 8, !noalias !6271 %ptrs.sroa.10.0..sroa_idx.i49 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h33317e12ea3a8c19E, ptr %ptrs.sroa.10.0..sroa_idx.i49, align 8, !noalias !6271 %ptrs.sroa.11.0..sroa_idx.i50 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3dcbd228650df949E, ptr %ptrs.sroa.11.0..sroa_idx.i50, align 8, !noalias !6271 %ptrs.sroa.12.0..sroa_idx.i51 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6409063d70320d68E, ptr %ptrs.sroa.12.0..sroa_idx.i51, align 8, !noalias !6271 %ptrs.sroa.13.0..sroa_idx.i52 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7cab27b8a92f225aE, ptr %ptrs.sroa.13.0..sroa_idx.i52, align 8, !noalias !6271 %20 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx3.i53 = add nsw i64 %20, -1 %_23.i54 = icmp ult i64 %idx3.i53, 10 br i1 %_23.i54, label %bb8.i56, label %panic4.i55, !prof !2180 bb11.i31: ; preds = %bb3.i9 %21 = getelementptr inbounds [10 x ptr], ptr %_6.i1, i64 0, i64 %idx.i28 %_40.i32 = load ptr, ptr %21, align 8, !noalias !6271, !nonnull !3, !noundef !3 %22 = getelementptr inbounds %FftImpl, ptr %_6.i1, i64 0, i32 1, i64 %idx.i28 %_42.i33 = load ptr, ptr %22, align 8, !noalias !6271, !nonnull !3, !noundef !3 store ptr %_40.i32, ptr %_0, align 8, !alias.scope !6271 %23 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_42.i33, ptr %23, align 8, !alias.scope !6271 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_6.i1), !noalias !6271 br label %bb11 panic.i30: ; preds = %bb3.i9 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i28, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6271 unreachable bb8.i56: ; preds = %bb1.i34 %24 = getelementptr inbounds [10 x ptr], ptr %_4.i2, i64 0, i64 %idx3.i53 %_22.i57 = load ptr, ptr %24, align 8, !noalias !6271, !nonnull !3, !noundef !3 %25 = getelementptr inbounds %FftImpl, ptr %_4.i2, i64 0, i32 1, i64 %idx3.i53 %_24.i58 = load ptr, ptr %25, align 8, !noalias !6271, !nonnull !3, !noundef !3 store ptr %_22.i57, ptr %_0, align 8, !alias.scope !6271 %26 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_24.i58, ptr %26, align 8, !alias.scope !6271 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i2), !noalias !6271 br label %bb11 panic4.i55: ; preds = %bb1.i34 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx3.i53, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6271 unreachable bb6: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6274) %27 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6274 %_3.i.i62 = icmp eq i8 %27, -1 br i1 %_3.i.i62, label %bb1.i.i73, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i73: ; preds = %bb6 ; call pulp::x86::V4::__detect_is_available %_5.i.i74 = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !6274 %28 = zext i1 %_5.i.i74 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %bb1.i.i73, %bb6 %available.0.i.i63 = phi i8 [ %28, %bb1.i.i73 ], [ %27, %bb6 ] %_0.i.i64 = icmp ne i8 %available.0.i.i63, 0 %_2.i65 = icmp ugt i64 %n, 15 %or.cond.i66 = and i1 %_2.i65, %_0.i.i64 br i1 %or.cond.i66, label %bb1.i71, label %bb3.i67 bb3.i67: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i %29 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6274 %_3.i15.i = icmp eq i8 %29, -1 br i1 %_3.i15.i, label %bb1.i18.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i68 bb1.i18.i: ; preds = %bb3.i67 ; call pulp::x86::V3::__detect_is_available %_5.i19.i = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6274 %30 = zext i1 %_5.i19.i to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i68 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i68: ; preds = %bb1.i18.i, %bb3.i67 %available.0.i16.i = phi i8 [ %30, %bb1.i18.i ], [ %29, %bb3.i67 ] %_0.i17.i = icmp ne i8 %available.0.i16.i, 0 %_5.i = icmp ugt i64 %n, 7 %or.cond12.i = and i1 %_5.i, %_0.i17.i br i1 %or.cond12.i, label %bb4.i, label %bb6.i bb1.i71: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i61), !noalias !6274 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %_4.i61, align 8, !noalias !6274 %fwd.sroa.4.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE, ptr %fwd.sroa.4.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.5.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5900a228b954337fE, ptr %fwd.sroa.5.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.6.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1865e9442db81ca0E, ptr %fwd.sroa.6.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.7.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17hadda635e7dbe7739E, ptr %fwd.sroa.7.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.8.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6102b75ae125a70cE, ptr %fwd.sroa.8.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.9.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h502c2f04705a68beE, ptr %fwd.sroa.9.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.10.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1786d51001395883E, ptr %fwd.sroa.10.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.11.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5bb5b26d783a8927E, ptr %fwd.sroa.11.0._4.sroa_idx.i, align 8, !noalias !6274 %fwd.sroa.12.0._4.sroa_idx.i = getelementptr inbounds i8, ptr %_4.i61, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h77decbe99a796593E, ptr %fwd.sroa.12.0._4.sroa_idx.i, align 8, !noalias !6274 %31 = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %31, align 8, !noalias !6274 %inv.sroa.4.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE, ptr %inv.sroa.4.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.5.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5900a228b954337fE, ptr %inv.sroa.5.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.6.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9893e9432f64f441E, ptr %inv.sroa.6.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.7.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9a1a3f4f92c38d29E, ptr %inv.sroa.7.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.8.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd94eef3962325314E, ptr %inv.sroa.8.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.9.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha01e4492e9717f0dE, ptr %inv.sroa.9.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.10.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hea97ce512018e587E, ptr %inv.sroa.10.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.11.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17hec71cb8e13e1065fE, ptr %inv.sroa.11.0..sroa_idx.i, align 8, !noalias !6274 %inv.sroa.12.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h335053178fa6d3d3E, ptr %inv.sroa.12.0..sroa_idx.i, align 8, !noalias !6274 %32 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx9.i = add nsw i64 %32, -1 %_37.i = icmp ult i64 %idx9.i, 10 br i1 %_37.i, label %bb11.i72, label %panic10.i, !prof !2180 bb6.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i68 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_9.i), !noalias !6274 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_9.i, align 8, !noalias !6274 %fwd3.sroa.4.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E, ptr %fwd3.sroa.4.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.5.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075c80a398111b32E, ptr %fwd3.sroa.5.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.6.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3c1d5b1aabfed9ffE, ptr %fwd3.sroa.6.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.7.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5d50a3898b8a15e4E, ptr %fwd3.sroa.7.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.8.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h92fd128d899f6275E, ptr %fwd3.sroa.8.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.9.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17hba6d0265b1632367E, ptr %fwd3.sroa.9.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.10.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h598a7202f1e1b3a8E, ptr %fwd3.sroa.10.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.11.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h55e0991b81774a62E, ptr %fwd3.sroa.11.0._9.sroa_idx.i, align 8, !noalias !6274 %fwd3.sroa.12.0._9.sroa_idx.i = getelementptr inbounds i8, ptr %_9.i, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a74821c1faedc3eE, ptr %fwd3.sroa.12.0._9.sroa_idx.i, align 8, !noalias !6274 %33 = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %33, align 8, !noalias !6274 %inv4.sroa.4.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E, ptr %inv4.sroa.4.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.5.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h71ae0a85278e85b6E, ptr %inv4.sroa.5.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.6.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h914c2eccd19bc92bE, ptr %inv4.sroa.6.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.7.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8999a214c0431230E, ptr %inv4.sroa.7.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.8.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hab60dcaae53e537fE, ptr %inv4.sroa.8.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.9.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6e408824efd25b39E, ptr %inv4.sroa.9.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.10.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1d728453a3c5abfbE, ptr %inv4.sroa.10.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.11.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1e4f2de343c8e0c9E, ptr %inv4.sroa.11.0..sroa_idx.i, align 8, !noalias !6274 %inv4.sroa.12.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc539a89f672bb7c9E, ptr %inv4.sroa.12.0..sroa_idx.i, align 8, !noalias !6274 %34 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i69 = add nsw i64 %34, -1 %_96.i = icmp ult i64 %idx.i69, 10 br i1 %_96.i, label %bb20.i, label %panic.i70, !prof !2180 bb4.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i68 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_7.i), !noalias !6274 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %_7.i, align 8, !noalias !6274 %fwd1.sroa.4.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE, ptr %fwd1.sroa.4.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.5.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h832986be3c6709b3E, ptr %fwd1.sroa.5.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.6.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9b017283c7eea3c0E, ptr %fwd1.sroa.6.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.7.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h60a1c0d0e8bd306dE, ptr %fwd1.sroa.7.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.8.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9711215d686fdba5E, ptr %fwd1.sroa.8.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.9.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h82fc8ddafeee4899E, ptr %fwd1.sroa.9.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.10.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha23478c6bc80eddbE, ptr %fwd1.sroa.10.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.11.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8bbf81733dc296b3E, ptr %fwd1.sroa.11.0._7.sroa_idx.i, align 8, !noalias !6274 %fwd1.sroa.12.0._7.sroa_idx.i = getelementptr inbounds i8, ptr %_7.i, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd8d10e2eb38eb8f9E, ptr %fwd1.sroa.12.0._7.sroa_idx.i, align 8, !noalias !6274 %35 = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %35, align 8, !noalias !6274 %inv2.sroa.4.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE, ptr %inv2.sroa.4.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.5.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1ac11e53b1426369E, ptr %inv2.sroa.5.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.6.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h342d7c1848bd507cE, ptr %inv2.sroa.6.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.7.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h84f863933d030792E, ptr %inv2.sroa.7.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.8.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h79aae62d777d92fdE, ptr %inv2.sroa.8.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.9.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h57aa008c2a673837E, ptr %inv2.sroa.9.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.10.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h73329400916abe63E, ptr %inv2.sroa.10.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.11.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha6749a5fedf179c7E, ptr %inv2.sroa.11.0..sroa_idx.i, align 8, !noalias !6274 %inv2.sroa.12.0..sroa_idx.i = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd939dbfc776c55d4E, ptr %inv2.sroa.12.0..sroa_idx.i, align 8, !noalias !6274 %36 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx6.i = add nsw i64 %36, -1 %_67.i = icmp ult i64 %idx6.i, 10 br i1 %_67.i, label %bb17.i, label %panic7.i, !prof !2180 bb20.i: ; preds = %bb6.i %37 = getelementptr inbounds [10 x ptr], ptr %_9.i, i64 0, i64 %idx.i69 %_95.i = load ptr, ptr %37, align 8, !noalias !6274, !nonnull !3, !noundef !3 %38 = getelementptr inbounds %FftImpl, ptr %_9.i, i64 0, i32 1, i64 %idx.i69 %_97.i = load ptr, ptr %38, align 8, !noalias !6274, !nonnull !3, !noundef !3 store ptr %_95.i, ptr %_0, align 8, !alias.scope !6274 %39 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_97.i, ptr %39, align 8, !alias.scope !6274 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_9.i), !noalias !6274 br label %bb11 panic.i70: ; preds = %bb6.i ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i69, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6274 unreachable bb17.i: ; preds = %bb4.i %40 = getelementptr inbounds [10 x ptr], ptr %_7.i, i64 0, i64 %idx6.i %_66.i = load ptr, ptr %40, align 8, !noalias !6274, !nonnull !3, !noundef !3 %41 = getelementptr inbounds %FftImpl, ptr %_7.i, i64 0, i32 1, i64 %idx6.i %_68.i = load ptr, ptr %41, align 8, !noalias !6274, !nonnull !3, !noundef !3 store ptr %_66.i, ptr %_0, align 8, !alias.scope !6274 %42 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_68.i, ptr %42, align 8, !alias.scope !6274 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_7.i), !noalias !6274 br label %bb11 panic7.i: ; preds = %bb4.i ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx6.i, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6274 unreachable bb11.i72: ; preds = %bb1.i71 %43 = getelementptr inbounds [10 x ptr], ptr %_4.i61, i64 0, i64 %idx9.i %_36.i = load ptr, ptr %43, align 8, !noalias !6274, !nonnull !3, !noundef !3 %44 = getelementptr inbounds %FftImpl, ptr %_4.i61, i64 0, i32 1, i64 %idx9.i %_38.i = load ptr, ptr %44, align 8, !noalias !6274, !nonnull !3, !noundef !3 store ptr %_36.i, ptr %_0, align 8, !alias.scope !6274 %45 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_38.i, ptr %45, align 8, !alias.scope !6274 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i61), !noalias !6274 br label %bb11 panic10.i: ; preds = %bb1.i71 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx9.i, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6274 unreachable bb7: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6277) %46 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6277 %_3.i.i78 = icmp eq i8 %46, -1 br i1 %_3.i.i78, label %bb1.i.i168, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i79 bb1.i.i168: ; preds = %bb7 ; call pulp::x86::V4::__detect_is_available %_5.i.i169 = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !6277 %47 = zext i1 %_5.i.i169 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i79 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i79: ; preds = %bb1.i.i168, %bb7 %available.0.i.i80 = phi i8 [ %47, %bb1.i.i168 ], [ %46, %bb7 ] %_0.i.i81 = icmp ne i8 %available.0.i.i80, 0 %_2.i82 = icmp ugt i64 %n, 15 %or.cond.i83 = and i1 %_2.i82, %_0.i.i81 br i1 %or.cond.i83, label %bb1.i143, label %bb3.i84 bb3.i84: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i79 %48 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6277 %_3.i15.i85 = icmp eq i8 %48, -1 br i1 %_3.i15.i85, label %bb1.i18.i141, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i86 bb1.i18.i141: ; preds = %bb3.i84 ; call pulp::x86::V3::__detect_is_available %_5.i19.i142 = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6277 %49 = zext i1 %_5.i19.i142 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i86 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i86: ; preds = %bb1.i18.i141, %bb3.i84 %available.0.i16.i87 = phi i8 [ %49, %bb1.i18.i141 ], [ %48, %bb3.i84 ] %_0.i17.i88 = icmp ne i8 %available.0.i16.i87, 0 %_5.i89 = icmp ugt i64 %n, 7 %or.cond12.i90 = and i1 %_5.i89, %_0.i17.i88 br i1 %or.cond12.i90, label %bb4.i116, label %bb6.i91 bb1.i143: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i79 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i77), !noalias !6277 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %_4.i77, align 8, !noalias !6277 %fwd.sroa.4.0._4.sroa_idx.i144 = getelementptr inbounds i8, ptr %_4.i77, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E, ptr %fwd.sroa.4.0._4.sroa_idx.i144, align 8, !noalias !6277 %fwd.sroa.5.0._4.sroa_idx.i145 = getelementptr inbounds i8, ptr %_4.i77, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha8224d2d03e4291dE, ptr %fwd.sroa.5.0._4.sroa_idx.i145, align 8, !noalias !6277 %fwd.sroa.6.0._4.sroa_idx.i146 = getelementptr inbounds i8, ptr %_4.i77, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h33deb5de25fd2d58E, ptr %fwd.sroa.6.0._4.sroa_idx.i146, align 8, !noalias !6277 %fwd.sroa.7.0._4.sroa_idx.i147 = getelementptr inbounds i8, ptr %_4.i77, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfb2f754e258e945cE, ptr %fwd.sroa.7.0._4.sroa_idx.i147, align 8, !noalias !6277 %fwd.sroa.8.0._4.sroa_idx.i148 = getelementptr inbounds i8, ptr %_4.i77, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6c65615d953c9a67E, ptr %fwd.sroa.8.0._4.sroa_idx.i148, align 8, !noalias !6277 %fwd.sroa.9.0._4.sroa_idx.i149 = getelementptr inbounds i8, ptr %_4.i77, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7e99af5c60475581E, ptr %fwd.sroa.9.0._4.sroa_idx.i149, align 8, !noalias !6277 %fwd.sroa.10.0._4.sroa_idx.i150 = getelementptr inbounds i8, ptr %_4.i77, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf65cd834c3f3b3c1E, ptr %fwd.sroa.10.0._4.sroa_idx.i150, align 8, !noalias !6277 %fwd.sroa.11.0._4.sroa_idx.i151 = getelementptr inbounds i8, ptr %_4.i77, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd45cc219219331fdE, ptr %fwd.sroa.11.0._4.sroa_idx.i151, align 8, !noalias !6277 %fwd.sroa.12.0._4.sroa_idx.i152 = getelementptr inbounds i8, ptr %_4.i77, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc2397a2f319d4555E, ptr %fwd.sroa.12.0._4.sroa_idx.i152, align 8, !noalias !6277 %50 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %50, align 8, !noalias !6277 %inv.sroa.4.0..sroa_idx.i153 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E, ptr %inv.sroa.4.0..sroa_idx.i153, align 8, !noalias !6277 %inv.sroa.5.0..sroa_idx.i154 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha8224d2d03e4291dE, ptr %inv.sroa.5.0..sroa_idx.i154, align 8, !noalias !6277 %inv.sroa.6.0..sroa_idx.i155 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0319b77e7ac64271E, ptr %inv.sroa.6.0..sroa_idx.i155, align 8, !noalias !6277 %inv.sroa.7.0..sroa_idx.i156 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h41342e1f98595c54E, ptr %inv.sroa.7.0..sroa_idx.i156, align 8, !noalias !6277 %inv.sroa.8.0..sroa_idx.i157 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc06304901403e20cE, ptr %inv.sroa.8.0..sroa_idx.i157, align 8, !noalias !6277 %inv.sroa.9.0..sroa_idx.i158 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfe9fd2531486af0dE, ptr %inv.sroa.9.0..sroa_idx.i158, align 8, !noalias !6277 %inv.sroa.10.0..sroa_idx.i159 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hca7b6699d4d0886cE, ptr %inv.sroa.10.0..sroa_idx.i159, align 8, !noalias !6277 %inv.sroa.11.0..sroa_idx.i160 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6fa767e8bbe341e3E, ptr %inv.sroa.11.0..sroa_idx.i160, align 8, !noalias !6277 %inv.sroa.12.0..sroa_idx.i161 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h71a74110cdf4a3a1E, ptr %inv.sroa.12.0..sroa_idx.i161, align 8, !noalias !6277 %51 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx9.i162 = add nsw i64 %51, -1 %_37.i163 = icmp ult i64 %idx9.i162, 10 br i1 %_37.i163, label %bb11.i165, label %panic10.i164, !prof !2180 bb6.i91: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i86 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_9.i75), !noalias !6277 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_9.i75, align 8, !noalias !6277 %fwd3.sroa.4.0._9.sroa_idx.i92 = getelementptr inbounds i8, ptr %_9.i75, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E, ptr %fwd3.sroa.4.0._9.sroa_idx.i92, align 8, !noalias !6277 %fwd3.sroa.5.0._9.sroa_idx.i93 = getelementptr inbounds i8, ptr %_9.i75, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h431bd8be7dd67df6E, ptr %fwd3.sroa.5.0._9.sroa_idx.i93, align 8, !noalias !6277 %fwd3.sroa.6.0._9.sroa_idx.i94 = getelementptr inbounds i8, ptr %_9.i75, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17heabe04641af84ca6E, ptr %fwd3.sroa.6.0._9.sroa_idx.i94, align 8, !noalias !6277 %fwd3.sroa.7.0._9.sroa_idx.i95 = getelementptr inbounds i8, ptr %_9.i75, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7cd26be4957e5aefE, ptr %fwd3.sroa.7.0._9.sroa_idx.i95, align 8, !noalias !6277 %fwd3.sroa.8.0._9.sroa_idx.i96 = getelementptr inbounds i8, ptr %_9.i75, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4b16fb2b737842b6E, ptr %fwd3.sroa.8.0._9.sroa_idx.i96, align 8, !noalias !6277 %fwd3.sroa.9.0._9.sroa_idx.i97 = getelementptr inbounds i8, ptr %_9.i75, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17habb63787ced1a8bfE, ptr %fwd3.sroa.9.0._9.sroa_idx.i97, align 8, !noalias !6277 %fwd3.sroa.10.0._9.sroa_idx.i98 = getelementptr inbounds i8, ptr %_9.i75, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h362df0cd08218524E, ptr %fwd3.sroa.10.0._9.sroa_idx.i98, align 8, !noalias !6277 %fwd3.sroa.11.0._9.sroa_idx.i99 = getelementptr inbounds i8, ptr %_9.i75, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h59fa938d445379b9E, ptr %fwd3.sroa.11.0._9.sroa_idx.i99, align 8, !noalias !6277 %fwd3.sroa.12.0._9.sroa_idx.i100 = getelementptr inbounds i8, ptr %_9.i75, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd3eaaaad078d2adfE, ptr %fwd3.sroa.12.0._9.sroa_idx.i100, align 8, !noalias !6277 %52 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %52, align 8, !noalias !6277 %inv4.sroa.4.0..sroa_idx.i101 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E, ptr %inv4.sroa.4.0..sroa_idx.i101, align 8, !noalias !6277 %inv4.sroa.5.0..sroa_idx.i102 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h40f4b6dfdf44ac20E, ptr %inv4.sroa.5.0..sroa_idx.i102, align 8, !noalias !6277 %inv4.sroa.6.0..sroa_idx.i103 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9505c91b179ce2fdE, ptr %inv4.sroa.6.0..sroa_idx.i103, align 8, !noalias !6277 %inv4.sroa.7.0..sroa_idx.i104 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h812b5ed072befcd5E, ptr %inv4.sroa.7.0..sroa_idx.i104, align 8, !noalias !6277 %inv4.sroa.8.0..sroa_idx.i105 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9d93fc9fd6e118e8E, ptr %inv4.sroa.8.0..sroa_idx.i105, align 8, !noalias !6277 %inv4.sroa.9.0..sroa_idx.i106 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha28e306bac38bfe9E, ptr %inv4.sroa.9.0..sroa_idx.i106, align 8, !noalias !6277 %inv4.sroa.10.0..sroa_idx.i107 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h689de500788fa50cE, ptr %inv4.sroa.10.0..sroa_idx.i107, align 8, !noalias !6277 %inv4.sroa.11.0..sroa_idx.i108 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17had5ced298a8cf9c9E, ptr %inv4.sroa.11.0..sroa_idx.i108, align 8, !noalias !6277 %inv4.sroa.12.0..sroa_idx.i109 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h46bdaa267e6b2cebE, ptr %inv4.sroa.12.0..sroa_idx.i109, align 8, !noalias !6277 %53 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i110 = add nsw i64 %53, -1 %_96.i111 = icmp ult i64 %idx.i110, 10 br i1 %_96.i111, label %bb20.i113, label %panic.i112, !prof !2180 bb4.i116: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i86 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_7.i76), !noalias !6277 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %_7.i76, align 8, !noalias !6277 %fwd1.sroa.4.0._7.sroa_idx.i117 = getelementptr inbounds i8, ptr %_7.i76, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E, ptr %fwd1.sroa.4.0._7.sroa_idx.i117, align 8, !noalias !6277 %fwd1.sroa.5.0._7.sroa_idx.i118 = getelementptr inbounds i8, ptr %_7.i76, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9ebfd052ce4f11baE, ptr %fwd1.sroa.5.0._7.sroa_idx.i118, align 8, !noalias !6277 %fwd1.sroa.6.0._7.sroa_idx.i119 = getelementptr inbounds i8, ptr %_7.i76, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h43991bb1d0c2b002E, ptr %fwd1.sroa.6.0._7.sroa_idx.i119, align 8, !noalias !6277 %fwd1.sroa.7.0._7.sroa_idx.i120 = getelementptr inbounds i8, ptr %_7.i76, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5b5b52509be1a1b9E, ptr %fwd1.sroa.7.0._7.sroa_idx.i120, align 8, !noalias !6277 %fwd1.sroa.8.0._7.sroa_idx.i121 = getelementptr inbounds i8, ptr %_7.i76, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h67d87fe3dde48509E, ptr %fwd1.sroa.8.0._7.sroa_idx.i121, align 8, !noalias !6277 %fwd1.sroa.9.0._7.sroa_idx.i122 = getelementptr inbounds i8, ptr %_7.i76, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6029c48b2d629121E, ptr %fwd1.sroa.9.0._7.sroa_idx.i122, align 8, !noalias !6277 %fwd1.sroa.10.0._7.sroa_idx.i123 = getelementptr inbounds i8, ptr %_7.i76, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8bf85e17d8a380e6E, ptr %fwd1.sroa.10.0._7.sroa_idx.i123, align 8, !noalias !6277 %fwd1.sroa.11.0._7.sroa_idx.i124 = getelementptr inbounds i8, ptr %_7.i76, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0459a621b30b4a09E, ptr %fwd1.sroa.11.0._7.sroa_idx.i124, align 8, !noalias !6277 %fwd1.sroa.12.0._7.sroa_idx.i125 = getelementptr inbounds i8, ptr %_7.i76, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h499ffe64f41c2ca9E, ptr %fwd1.sroa.12.0._7.sroa_idx.i125, align 8, !noalias !6277 %54 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %54, align 8, !noalias !6277 %inv2.sroa.4.0..sroa_idx.i126 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E, ptr %inv2.sroa.4.0..sroa_idx.i126, align 8, !noalias !6277 %inv2.sroa.5.0..sroa_idx.i127 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h095a5706a85e40f8E, ptr %inv2.sroa.5.0..sroa_idx.i127, align 8, !noalias !6277 %inv2.sroa.6.0..sroa_idx.i128 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5dce8947a55f950bE, ptr %inv2.sroa.6.0..sroa_idx.i128, align 8, !noalias !6277 %inv2.sroa.7.0..sroa_idx.i129 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h541998eec51e8bbbE, ptr %inv2.sroa.7.0..sroa_idx.i129, align 8, !noalias !6277 %inv2.sroa.8.0..sroa_idx.i130 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h83e75844db8f90c4E, ptr %inv2.sroa.8.0..sroa_idx.i130, align 8, !noalias !6277 %inv2.sroa.9.0..sroa_idx.i131 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hde37442b0c761d71E, ptr %inv2.sroa.9.0..sroa_idx.i131, align 8, !noalias !6277 %inv2.sroa.10.0..sroa_idx.i132 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf2e1cf41b533e1feE, ptr %inv2.sroa.10.0..sroa_idx.i132, align 8, !noalias !6277 %inv2.sroa.11.0..sroa_idx.i133 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb6c80fd2f102c124E, ptr %inv2.sroa.11.0..sroa_idx.i133, align 8, !noalias !6277 %inv2.sroa.12.0..sroa_idx.i134 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2a6b0633466a4c5dE, ptr %inv2.sroa.12.0..sroa_idx.i134, align 8, !noalias !6277 %55 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx6.i135 = add nsw i64 %55, -1 %_67.i136 = icmp ult i64 %idx6.i135, 10 br i1 %_67.i136, label %bb17.i138, label %panic7.i137, !prof !2180 bb20.i113: ; preds = %bb6.i91 %56 = getelementptr inbounds [10 x ptr], ptr %_9.i75, i64 0, i64 %idx.i110 %_95.i114 = load ptr, ptr %56, align 8, !noalias !6277, !nonnull !3, !noundef !3 %57 = getelementptr inbounds %FftImpl, ptr %_9.i75, i64 0, i32 1, i64 %idx.i110 %_97.i115 = load ptr, ptr %57, align 8, !noalias !6277, !nonnull !3, !noundef !3 store ptr %_95.i114, ptr %_0, align 8, !alias.scope !6277 %58 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_97.i115, ptr %58, align 8, !alias.scope !6277 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_9.i75), !noalias !6277 br label %bb11 panic.i112: ; preds = %bb6.i91 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i110, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6277 unreachable bb17.i138: ; preds = %bb4.i116 %59 = getelementptr inbounds [10 x ptr], ptr %_7.i76, i64 0, i64 %idx6.i135 %_66.i139 = load ptr, ptr %59, align 8, !noalias !6277, !nonnull !3, !noundef !3 %60 = getelementptr inbounds %FftImpl, ptr %_7.i76, i64 0, i32 1, i64 %idx6.i135 %_68.i140 = load ptr, ptr %60, align 8, !noalias !6277, !nonnull !3, !noundef !3 store ptr %_66.i139, ptr %_0, align 8, !alias.scope !6277 %61 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_68.i140, ptr %61, align 8, !alias.scope !6277 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_7.i76), !noalias !6277 br label %bb11 panic7.i137: ; preds = %bb4.i116 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx6.i135, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6277 unreachable bb11.i165: ; preds = %bb1.i143 %62 = getelementptr inbounds [10 x ptr], ptr %_4.i77, i64 0, i64 %idx9.i162 %_36.i166 = load ptr, ptr %62, align 8, !noalias !6277, !nonnull !3, !noundef !3 %63 = getelementptr inbounds %FftImpl, ptr %_4.i77, i64 0, i32 1, i64 %idx9.i162 %_38.i167 = load ptr, ptr %63, align 8, !noalias !6277, !nonnull !3, !noundef !3 store ptr %_36.i166, ptr %_0, align 8, !alias.scope !6277 %64 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_38.i167, ptr %64, align 8, !alias.scope !6277 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i77), !noalias !6277 br label %bb11 panic10.i164: ; preds = %bb1.i143 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx9.i162, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6277 unreachable bb8: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6280) %65 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6280 %_3.i.i173 = icmp eq i8 %65, -1 br i1 %_3.i.i173, label %bb1.i.i263, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i174 bb1.i.i263: ; preds = %bb8 ; call pulp::x86::V4::__detect_is_available %_5.i.i264 = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !6280 %66 = zext i1 %_5.i.i264 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i174 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i174: ; preds = %bb1.i.i263, %bb8 %available.0.i.i175 = phi i8 [ %66, %bb1.i.i263 ], [ %65, %bb8 ] %_0.i.i176 = icmp ne i8 %available.0.i.i175, 0 %_2.i177 = icmp ugt i64 %n, 31 %or.cond.i178 = and i1 %_2.i177, %_0.i.i176 br i1 %or.cond.i178, label %bb1.i238, label %bb3.i179 bb3.i179: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i174 %67 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6280 %_3.i15.i180 = icmp eq i8 %67, -1 br i1 %_3.i15.i180, label %bb1.i18.i236, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i181 bb1.i18.i236: ; preds = %bb3.i179 ; call pulp::x86::V3::__detect_is_available %_5.i19.i237 = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6280 %68 = zext i1 %_5.i19.i237 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i181 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i181: ; preds = %bb1.i18.i236, %bb3.i179 %available.0.i16.i182 = phi i8 [ %68, %bb1.i18.i236 ], [ %67, %bb3.i179 ] %_0.i17.i183 = icmp ne i8 %available.0.i16.i182, 0 %_5.i184 = icmp ugt i64 %n, 15 %or.cond12.i185 = and i1 %_5.i184, %_0.i17.i183 br i1 %or.cond12.i185, label %bb4.i211, label %bb6.i186 bb1.i238: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i174 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i172), !noalias !6280 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %_4.i172, align 8, !noalias !6280 %fwd.sroa.4.0._4.sroa_idx.i239 = getelementptr inbounds i8, ptr %_4.i172, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE, ptr %fwd.sroa.4.0._4.sroa_idx.i239, align 8, !noalias !6280 %fwd.sroa.5.0._4.sroa_idx.i240 = getelementptr inbounds i8, ptr %_4.i172, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h178a09fa99b3d60fE, ptr %fwd.sroa.5.0._4.sroa_idx.i240, align 8, !noalias !6280 %fwd.sroa.6.0._4.sroa_idx.i241 = getelementptr inbounds i8, ptr %_4.i172, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h437254b76ef6b930E, ptr %fwd.sroa.6.0._4.sroa_idx.i241, align 8, !noalias !6280 %fwd.sroa.7.0._4.sroa_idx.i242 = getelementptr inbounds i8, ptr %_4.i172, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h626aaf5b31b63219E, ptr %fwd.sroa.7.0._4.sroa_idx.i242, align 8, !noalias !6280 %fwd.sroa.8.0._4.sroa_idx.i243 = getelementptr inbounds i8, ptr %_4.i172, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9e70e8f362a07514E, ptr %fwd.sroa.8.0._4.sroa_idx.i243, align 8, !noalias !6280 %fwd.sroa.9.0._4.sroa_idx.i244 = getelementptr inbounds i8, ptr %_4.i172, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17he0d1367dd194b77eE, ptr %fwd.sroa.9.0._4.sroa_idx.i244, align 8, !noalias !6280 %fwd.sroa.10.0._4.sroa_idx.i245 = getelementptr inbounds i8, ptr %_4.i172, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc69299e0fca41d78E, ptr %fwd.sroa.10.0._4.sroa_idx.i245, align 8, !noalias !6280 %fwd.sroa.11.0._4.sroa_idx.i246 = getelementptr inbounds i8, ptr %_4.i172, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5e5f3c578297eb53E, ptr %fwd.sroa.11.0._4.sroa_idx.i246, align 8, !noalias !6280 %fwd.sroa.12.0._4.sroa_idx.i247 = getelementptr inbounds i8, ptr %_4.i172, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hbe49a38afb3f161eE, ptr %fwd.sroa.12.0._4.sroa_idx.i247, align 8, !noalias !6280 %69 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %69, align 8, !noalias !6280 %inv.sroa.4.0..sroa_idx.i248 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE, ptr %inv.sroa.4.0..sroa_idx.i248, align 8, !noalias !6280 %inv.sroa.5.0..sroa_idx.i249 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h178a09fa99b3d60fE, ptr %inv.sroa.5.0..sroa_idx.i249, align 8, !noalias !6280 %inv.sroa.6.0..sroa_idx.i250 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h437254b76ef6b930E, ptr %inv.sroa.6.0..sroa_idx.i250, align 8, !noalias !6280 %inv.sroa.7.0..sroa_idx.i251 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7ed905db65b44d81E, ptr %inv.sroa.7.0..sroa_idx.i251, align 8, !noalias !6280 %inv.sroa.8.0..sroa_idx.i252 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h25b63e7838be1625E, ptr %inv.sroa.8.0..sroa_idx.i252, align 8, !noalias !6280 %inv.sroa.9.0..sroa_idx.i253 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd51de123a9765203E, ptr %inv.sroa.9.0..sroa_idx.i253, align 8, !noalias !6280 %inv.sroa.10.0..sroa_idx.i254 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h85ea903155e58fefE, ptr %inv.sroa.10.0..sroa_idx.i254, align 8, !noalias !6280 %inv.sroa.11.0..sroa_idx.i255 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h77ac2ee9729ffc0aE, ptr %inv.sroa.11.0..sroa_idx.i255, align 8, !noalias !6280 %inv.sroa.12.0..sroa_idx.i256 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hca4f13d32765e188E, ptr %inv.sroa.12.0..sroa_idx.i256, align 8, !noalias !6280 %70 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx9.i257 = add nsw i64 %70, -1 %_37.i258 = icmp ult i64 %idx9.i257, 10 br i1 %_37.i258, label %bb11.i260, label %panic10.i259, !prof !2180 bb6.i186: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i181 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_9.i170), !noalias !6280 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_9.i170, align 8, !noalias !6280 %fwd3.sroa.4.0._9.sroa_idx.i187 = getelementptr inbounds i8, ptr %_9.i170, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E, ptr %fwd3.sroa.4.0._9.sroa_idx.i187, align 8, !noalias !6280 %fwd3.sroa.5.0._9.sroa_idx.i188 = getelementptr inbounds i8, ptr %_9.i170, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h85a17475f55bdd90E, ptr %fwd3.sroa.5.0._9.sroa_idx.i188, align 8, !noalias !6280 %fwd3.sroa.6.0._9.sroa_idx.i189 = getelementptr inbounds i8, ptr %_9.i170, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h65d8794cf2ad35dcE, ptr %fwd3.sroa.6.0._9.sroa_idx.i189, align 8, !noalias !6280 %fwd3.sroa.7.0._9.sroa_idx.i190 = getelementptr inbounds i8, ptr %_9.i170, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb4a7145605cf17d9E, ptr %fwd3.sroa.7.0._9.sroa_idx.i190, align 8, !noalias !6280 %fwd3.sroa.8.0._9.sroa_idx.i191 = getelementptr inbounds i8, ptr %_9.i170, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h358fe581f2e1c411E, ptr %fwd3.sroa.8.0._9.sroa_idx.i191, align 8, !noalias !6280 %fwd3.sroa.9.0._9.sroa_idx.i192 = getelementptr inbounds i8, ptr %_9.i170, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1ac77871344e47bcE, ptr %fwd3.sroa.9.0._9.sroa_idx.i192, align 8, !noalias !6280 %fwd3.sroa.10.0._9.sroa_idx.i193 = getelementptr inbounds i8, ptr %_9.i170, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h20581689dd8920eaE, ptr %fwd3.sroa.10.0._9.sroa_idx.i193, align 8, !noalias !6280 %fwd3.sroa.11.0._9.sroa_idx.i194 = getelementptr inbounds i8, ptr %_9.i170, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8522edf03841fd2dE, ptr %fwd3.sroa.11.0._9.sroa_idx.i194, align 8, !noalias !6280 %fwd3.sroa.12.0._9.sroa_idx.i195 = getelementptr inbounds i8, ptr %_9.i170, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7e4a23bc4c3746a8E, ptr %fwd3.sroa.12.0._9.sroa_idx.i195, align 8, !noalias !6280 %71 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %71, align 8, !noalias !6280 %inv4.sroa.4.0..sroa_idx.i196 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E, ptr %inv4.sroa.4.0..sroa_idx.i196, align 8, !noalias !6280 %inv4.sroa.5.0..sroa_idx.i197 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h10170623f4eeea51E, ptr %inv4.sroa.5.0..sroa_idx.i197, align 8, !noalias !6280 %inv4.sroa.6.0..sroa_idx.i198 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha31423625b236a52E, ptr %inv4.sroa.6.0..sroa_idx.i198, align 8, !noalias !6280 %inv4.sroa.7.0..sroa_idx.i199 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17haaebf932eac08440E, ptr %inv4.sroa.7.0..sroa_idx.i199, align 8, !noalias !6280 %inv4.sroa.8.0..sroa_idx.i200 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc6ec462795478dcaE, ptr %inv4.sroa.8.0..sroa_idx.i200, align 8, !noalias !6280 %inv4.sroa.9.0..sroa_idx.i201 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h56e4eea5a710db62E, ptr %inv4.sroa.9.0..sroa_idx.i201, align 8, !noalias !6280 %inv4.sroa.10.0..sroa_idx.i202 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h51a97271a361c766E, ptr %inv4.sroa.10.0..sroa_idx.i202, align 8, !noalias !6280 %inv4.sroa.11.0..sroa_idx.i203 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h179868e957f6b3fbE, ptr %inv4.sroa.11.0..sroa_idx.i203, align 8, !noalias !6280 %inv4.sroa.12.0..sroa_idx.i204 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2a2745f2b48217b5E, ptr %inv4.sroa.12.0..sroa_idx.i204, align 8, !noalias !6280 %72 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i205 = add nsw i64 %72, -1 %_96.i206 = icmp ult i64 %idx.i205, 10 br i1 %_96.i206, label %bb20.i208, label %panic.i207, !prof !2180 bb4.i211: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i181 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_7.i171), !noalias !6280 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %_7.i171, align 8, !noalias !6280 %fwd1.sroa.4.0._7.sroa_idx.i212 = getelementptr inbounds i8, ptr %_7.i171, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE, ptr %fwd1.sroa.4.0._7.sroa_idx.i212, align 8, !noalias !6280 %fwd1.sroa.5.0._7.sroa_idx.i213 = getelementptr inbounds i8, ptr %_7.i171, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5fc8a52c39806279E, ptr %fwd1.sroa.5.0._7.sroa_idx.i213, align 8, !noalias !6280 %fwd1.sroa.6.0._7.sroa_idx.i214 = getelementptr inbounds i8, ptr %_7.i171, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17hbb48629611e11a0cE, ptr %fwd1.sroa.6.0._7.sroa_idx.i214, align 8, !noalias !6280 %fwd1.sroa.7.0._7.sroa_idx.i215 = getelementptr inbounds i8, ptr %_7.i171, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfd319af51842e327E, ptr %fwd1.sroa.7.0._7.sroa_idx.i215, align 8, !noalias !6280 %fwd1.sroa.8.0._7.sroa_idx.i216 = getelementptr inbounds i8, ptr %_7.i171, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcbe465c02e3e4e90E, ptr %fwd1.sroa.8.0._7.sroa_idx.i216, align 8, !noalias !6280 %fwd1.sroa.9.0._7.sroa_idx.i217 = getelementptr inbounds i8, ptr %_7.i171, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h15e5b201080a809aE, ptr %fwd1.sroa.9.0._7.sroa_idx.i217, align 8, !noalias !6280 %fwd1.sroa.10.0._7.sroa_idx.i218 = getelementptr inbounds i8, ptr %_7.i171, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h633277617446ba57E, ptr %fwd1.sroa.10.0._7.sroa_idx.i218, align 8, !noalias !6280 %fwd1.sroa.11.0._7.sroa_idx.i219 = getelementptr inbounds i8, ptr %_7.i171, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcab6c5f022756cc8E, ptr %fwd1.sroa.11.0._7.sroa_idx.i219, align 8, !noalias !6280 %fwd1.sroa.12.0._7.sroa_idx.i220 = getelementptr inbounds i8, ptr %_7.i171, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17he5e5386dc72ef588E, ptr %fwd1.sroa.12.0._7.sroa_idx.i220, align 8, !noalias !6280 %73 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %73, align 8, !noalias !6280 %inv2.sroa.4.0..sroa_idx.i221 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE, ptr %inv2.sroa.4.0..sroa_idx.i221, align 8, !noalias !6280 %inv2.sroa.5.0..sroa_idx.i222 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5fc8a52c39806279E, ptr %inv2.sroa.5.0..sroa_idx.i222, align 8, !noalias !6280 %inv2.sroa.6.0..sroa_idx.i223 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5b22a83d5911ba15E, ptr %inv2.sroa.6.0..sroa_idx.i223, align 8, !noalias !6280 %inv2.sroa.7.0..sroa_idx.i224 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1efccd2d53705160E, ptr %inv2.sroa.7.0..sroa_idx.i224, align 8, !noalias !6280 %inv2.sroa.8.0..sroa_idx.i225 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h08f06705d05a44a9E, ptr %inv2.sroa.8.0..sroa_idx.i225, align 8, !noalias !6280 %inv2.sroa.9.0..sroa_idx.i226 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc8ef0a46b189afd2E, ptr %inv2.sroa.9.0..sroa_idx.i226, align 8, !noalias !6280 %inv2.sroa.10.0..sroa_idx.i227 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcde11989b6b504ccE, ptr %inv2.sroa.10.0..sroa_idx.i227, align 8, !noalias !6280 %inv2.sroa.11.0..sroa_idx.i228 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcf34a69d95fc92d4E, ptr %inv2.sroa.11.0..sroa_idx.i228, align 8, !noalias !6280 %inv2.sroa.12.0..sroa_idx.i229 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb2e8eeb3eba46ea8E, ptr %inv2.sroa.12.0..sroa_idx.i229, align 8, !noalias !6280 %74 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx6.i230 = add nsw i64 %74, -1 %_67.i231 = icmp ult i64 %idx6.i230, 10 br i1 %_67.i231, label %bb17.i233, label %panic7.i232, !prof !2180 bb20.i208: ; preds = %bb6.i186 %75 = getelementptr inbounds [10 x ptr], ptr %_9.i170, i64 0, i64 %idx.i205 %_95.i209 = load ptr, ptr %75, align 8, !noalias !6280, !nonnull !3, !noundef !3 %76 = getelementptr inbounds %FftImpl, ptr %_9.i170, i64 0, i32 1, i64 %idx.i205 %_97.i210 = load ptr, ptr %76, align 8, !noalias !6280, !nonnull !3, !noundef !3 store ptr %_95.i209, ptr %_0, align 8, !alias.scope !6280 %77 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_97.i210, ptr %77, align 8, !alias.scope !6280 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_9.i170), !noalias !6280 br label %bb11 panic.i207: ; preds = %bb6.i186 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i205, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6280 unreachable bb17.i233: ; preds = %bb4.i211 %78 = getelementptr inbounds [10 x ptr], ptr %_7.i171, i64 0, i64 %idx6.i230 %_66.i234 = load ptr, ptr %78, align 8, !noalias !6280, !nonnull !3, !noundef !3 %79 = getelementptr inbounds %FftImpl, ptr %_7.i171, i64 0, i32 1, i64 %idx6.i230 %_68.i235 = load ptr, ptr %79, align 8, !noalias !6280, !nonnull !3, !noundef !3 store ptr %_66.i234, ptr %_0, align 8, !alias.scope !6280 %80 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_68.i235, ptr %80, align 8, !alias.scope !6280 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_7.i171), !noalias !6280 br label %bb11 panic7.i232: ; preds = %bb4.i211 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx6.i230, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6280 unreachable bb11.i260: ; preds = %bb1.i238 %81 = getelementptr inbounds [10 x ptr], ptr %_4.i172, i64 0, i64 %idx9.i257 %_36.i261 = load ptr, ptr %81, align 8, !noalias !6280, !nonnull !3, !noundef !3 %82 = getelementptr inbounds %FftImpl, ptr %_4.i172, i64 0, i32 1, i64 %idx9.i257 %_38.i262 = load ptr, ptr %82, align 8, !noalias !6280, !nonnull !3, !noundef !3 store ptr %_36.i261, ptr %_0, align 8, !alias.scope !6280 %83 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_38.i262, ptr %83, align 8, !alias.scope !6280 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i172), !noalias !6280 br label %bb11 panic10.i259: ; preds = %bb1.i238 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx9.i257, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6280 unreachable bb9: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6283) %84 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6283 %_3.i.i268 = icmp eq i8 %84, -1 br i1 %_3.i.i268, label %bb1.i.i358, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i269 bb1.i.i358: ; preds = %bb9 ; call pulp::x86::V4::__detect_is_available %_5.i.i359 = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !6283 %85 = zext i1 %_5.i.i359 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i269 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i269: ; preds = %bb1.i.i358, %bb9 %available.0.i.i270 = phi i8 [ %85, %bb1.i.i358 ], [ %84, %bb9 ] %_0.i.i271 = icmp ne i8 %available.0.i.i270, 0 %_2.i272 = icmp ugt i64 %n, 31 %or.cond.i273 = and i1 %_2.i272, %_0.i.i271 br i1 %or.cond.i273, label %bb1.i333, label %bb3.i274 bb3.i274: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i269 %86 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6283 %_3.i15.i275 = icmp eq i8 %86, -1 br i1 %_3.i15.i275, label %bb1.i18.i331, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i276 bb1.i18.i331: ; preds = %bb3.i274 ; call pulp::x86::V3::__detect_is_available %_5.i19.i332 = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6283 %87 = zext i1 %_5.i19.i332 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i276 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i276: ; preds = %bb1.i18.i331, %bb3.i274 %available.0.i16.i277 = phi i8 [ %87, %bb1.i18.i331 ], [ %86, %bb3.i274 ] %_0.i17.i278 = icmp ne i8 %available.0.i16.i277, 0 %_5.i279 = icmp ugt i64 %n, 15 %or.cond12.i280 = and i1 %_5.i279, %_0.i17.i278 br i1 %or.cond12.i280, label %bb4.i306, label %bb6.i281 bb1.i333: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i269 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i267), !noalias !6283 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %_4.i267, align 8, !noalias !6283 %fwd.sroa.4.0._4.sroa_idx.i334 = getelementptr inbounds i8, ptr %_4.i267, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E, ptr %fwd.sroa.4.0._4.sroa_idx.i334, align 8, !noalias !6283 %fwd.sroa.5.0._4.sroa_idx.i335 = getelementptr inbounds i8, ptr %_4.i267, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3fb778f5a66a08cbE, ptr %fwd.sroa.5.0._4.sroa_idx.i335, align 8, !noalias !6283 %fwd.sroa.6.0._4.sroa_idx.i336 = getelementptr inbounds i8, ptr %_4.i267, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha254268925b70b37E, ptr %fwd.sroa.6.0._4.sroa_idx.i336, align 8, !noalias !6283 %fwd.sroa.7.0._4.sroa_idx.i337 = getelementptr inbounds i8, ptr %_4.i267, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8369cbb07bb21fc2E, ptr %fwd.sroa.7.0._4.sroa_idx.i337, align 8, !noalias !6283 %fwd.sroa.8.0._4.sroa_idx.i338 = getelementptr inbounds i8, ptr %_4.i267, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h29bcea11fc3e04dbE, ptr %fwd.sroa.8.0._4.sroa_idx.i338, align 8, !noalias !6283 %fwd.sroa.9.0._4.sroa_idx.i339 = getelementptr inbounds i8, ptr %_4.i267, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc5de77a65359b8c1E, ptr %fwd.sroa.9.0._4.sroa_idx.i339, align 8, !noalias !6283 %fwd.sroa.10.0._4.sroa_idx.i340 = getelementptr inbounds i8, ptr %_4.i267, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h302ff213fc35b967E, ptr %fwd.sroa.10.0._4.sroa_idx.i340, align 8, !noalias !6283 %fwd.sroa.11.0._4.sroa_idx.i341 = getelementptr inbounds i8, ptr %_4.i267, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h47248c3661c52b46E, ptr %fwd.sroa.11.0._4.sroa_idx.i341, align 8, !noalias !6283 %fwd.sroa.12.0._4.sroa_idx.i342 = getelementptr inbounds i8, ptr %_4.i267, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc203dcb8cfbf046fE, ptr %fwd.sroa.12.0._4.sroa_idx.i342, align 8, !noalias !6283 %88 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %88, align 8, !noalias !6283 %inv.sroa.4.0..sroa_idx.i343 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E, ptr %inv.sroa.4.0..sroa_idx.i343, align 8, !noalias !6283 %inv.sroa.5.0..sroa_idx.i344 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3fb778f5a66a08cbE, ptr %inv.sroa.5.0..sroa_idx.i344, align 8, !noalias !6283 %inv.sroa.6.0..sroa_idx.i345 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha254268925b70b37E, ptr %inv.sroa.6.0..sroa_idx.i345, align 8, !noalias !6283 %inv.sroa.7.0..sroa_idx.i346 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfc123acad0466480E, ptr %inv.sroa.7.0..sroa_idx.i346, align 8, !noalias !6283 %inv.sroa.8.0..sroa_idx.i347 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hcb1f7ec920c0b606E, ptr %inv.sroa.8.0..sroa_idx.i347, align 8, !noalias !6283 %inv.sroa.9.0..sroa_idx.i348 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8b40e2c80a4260bbE, ptr %inv.sroa.9.0..sroa_idx.i348, align 8, !noalias !6283 %inv.sroa.10.0..sroa_idx.i349 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h65fd19313e7ee888E, ptr %inv.sroa.10.0..sroa_idx.i349, align 8, !noalias !6283 %inv.sroa.11.0..sroa_idx.i350 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h53e4754dc4ada05eE, ptr %inv.sroa.11.0..sroa_idx.i350, align 8, !noalias !6283 %inv.sroa.12.0..sroa_idx.i351 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h775f9f9754f429bcE, ptr %inv.sroa.12.0..sroa_idx.i351, align 8, !noalias !6283 %89 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx9.i352 = add nsw i64 %89, -1 %_37.i353 = icmp ult i64 %idx9.i352, 10 br i1 %_37.i353, label %bb11.i355, label %panic10.i354, !prof !2180 bb6.i281: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i276 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_9.i265), !noalias !6283 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_9.i265, align 8, !noalias !6283 %fwd3.sroa.4.0._9.sroa_idx.i282 = getelementptr inbounds i8, ptr %_9.i265, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E, ptr %fwd3.sroa.4.0._9.sroa_idx.i282, align 8, !noalias !6283 %fwd3.sroa.5.0._9.sroa_idx.i283 = getelementptr inbounds i8, ptr %_9.i265, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h85a17475f55bdd90E, ptr %fwd3.sroa.5.0._9.sroa_idx.i283, align 8, !noalias !6283 %fwd3.sroa.6.0._9.sroa_idx.i284 = getelementptr inbounds i8, ptr %_9.i265, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3cd3cf06e5dd1d47E, ptr %fwd3.sroa.6.0._9.sroa_idx.i284, align 8, !noalias !6283 %fwd3.sroa.7.0._9.sroa_idx.i285 = getelementptr inbounds i8, ptr %_9.i265, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h499d7916cbd71990E, ptr %fwd3.sroa.7.0._9.sroa_idx.i285, align 8, !noalias !6283 %fwd3.sroa.8.0._9.sroa_idx.i286 = getelementptr inbounds i8, ptr %_9.i265, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5e7d135dc3982535E, ptr %fwd3.sroa.8.0._9.sroa_idx.i286, align 8, !noalias !6283 %fwd3.sroa.9.0._9.sroa_idx.i287 = getelementptr inbounds i8, ptr %_9.i265, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17hdb9062fb04807b61E, ptr %fwd3.sroa.9.0._9.sroa_idx.i287, align 8, !noalias !6283 %fwd3.sroa.10.0._9.sroa_idx.i288 = getelementptr inbounds i8, ptr %_9.i265, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha2853b55bb65ede3E, ptr %fwd3.sroa.10.0._9.sroa_idx.i288, align 8, !noalias !6283 %fwd3.sroa.11.0._9.sroa_idx.i289 = getelementptr inbounds i8, ptr %_9.i265, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfac2767dc7e89a3cE, ptr %fwd3.sroa.11.0._9.sroa_idx.i289, align 8, !noalias !6283 %fwd3.sroa.12.0._9.sroa_idx.i290 = getelementptr inbounds i8, ptr %_9.i265, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h456ede137ee0cb99E, ptr %fwd3.sroa.12.0._9.sroa_idx.i290, align 8, !noalias !6283 %90 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %90, align 8, !noalias !6283 %inv4.sroa.4.0..sroa_idx.i291 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E, ptr %inv4.sroa.4.0..sroa_idx.i291, align 8, !noalias !6283 %inv4.sroa.5.0..sroa_idx.i292 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h10170623f4eeea51E, ptr %inv4.sroa.5.0..sroa_idx.i292, align 8, !noalias !6283 %inv4.sroa.6.0..sroa_idx.i293 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc894333660cece98E, ptr %inv4.sroa.6.0..sroa_idx.i293, align 8, !noalias !6283 %inv4.sroa.7.0..sroa_idx.i294 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf0e99480e7ac0d0fE, ptr %inv4.sroa.7.0..sroa_idx.i294, align 8, !noalias !6283 %inv4.sroa.8.0..sroa_idx.i295 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0286692b65f5948dE, ptr %inv4.sroa.8.0..sroa_idx.i295, align 8, !noalias !6283 %inv4.sroa.9.0..sroa_idx.i296 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7ef4661cbeb82121E, ptr %inv4.sroa.9.0..sroa_idx.i296, align 8, !noalias !6283 %inv4.sroa.10.0..sroa_idx.i297 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3935393503bf4e15E, ptr %inv4.sroa.10.0..sroa_idx.i297, align 8, !noalias !6283 %inv4.sroa.11.0..sroa_idx.i298 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1853b8c7b1b02310E, ptr %inv4.sroa.11.0..sroa_idx.i298, align 8, !noalias !6283 %inv4.sroa.12.0..sroa_idx.i299 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4e90bdb3ed0dfe5cE, ptr %inv4.sroa.12.0..sroa_idx.i299, align 8, !noalias !6283 %91 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i300 = add nsw i64 %91, -1 %_96.i301 = icmp ult i64 %idx.i300, 10 br i1 %_96.i301, label %bb20.i303, label %panic.i302, !prof !2180 bb4.i306: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i276 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_7.i266), !noalias !6283 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %_7.i266, align 8, !noalias !6283 %fwd1.sroa.4.0._7.sroa_idx.i307 = getelementptr inbounds i8, ptr %_7.i266, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E, ptr %fwd1.sroa.4.0._7.sroa_idx.i307, align 8, !noalias !6283 %fwd1.sroa.5.0._7.sroa_idx.i308 = getelementptr inbounds i8, ptr %_7.i266, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h138a9e2b1a60dfbeE, ptr %fwd1.sroa.5.0._7.sroa_idx.i308, align 8, !noalias !6283 %fwd1.sroa.6.0._7.sroa_idx.i309 = getelementptr inbounds i8, ptr %_7.i266, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h88cd72113026415eE, ptr %fwd1.sroa.6.0._7.sroa_idx.i309, align 8, !noalias !6283 %fwd1.sroa.7.0._7.sroa_idx.i310 = getelementptr inbounds i8, ptr %_7.i266, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h39fe6d403d2906beE, ptr %fwd1.sroa.7.0._7.sroa_idx.i310, align 8, !noalias !6283 %fwd1.sroa.8.0._7.sroa_idx.i311 = getelementptr inbounds i8, ptr %_7.i266, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfd71164e2d50cab0E, ptr %fwd1.sroa.8.0._7.sroa_idx.i311, align 8, !noalias !6283 %fwd1.sroa.9.0._7.sroa_idx.i312 = getelementptr inbounds i8, ptr %_7.i266, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3c7503bdac670885E, ptr %fwd1.sroa.9.0._7.sroa_idx.i312, align 8, !noalias !6283 %fwd1.sroa.10.0._7.sroa_idx.i313 = getelementptr inbounds i8, ptr %_7.i266, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h605098a361b861b4E, ptr %fwd1.sroa.10.0._7.sroa_idx.i313, align 8, !noalias !6283 %fwd1.sroa.11.0._7.sroa_idx.i314 = getelementptr inbounds i8, ptr %_7.i266, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h07b7206357be8eabE, ptr %fwd1.sroa.11.0._7.sroa_idx.i314, align 8, !noalias !6283 %fwd1.sroa.12.0._7.sroa_idx.i315 = getelementptr inbounds i8, ptr %_7.i266, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h000c325da584b34fE, ptr %fwd1.sroa.12.0._7.sroa_idx.i315, align 8, !noalias !6283 %92 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %92, align 8, !noalias !6283 %inv2.sroa.4.0..sroa_idx.i316 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E, ptr %inv2.sroa.4.0..sroa_idx.i316, align 8, !noalias !6283 %inv2.sroa.5.0..sroa_idx.i317 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h138a9e2b1a60dfbeE, ptr %inv2.sroa.5.0..sroa_idx.i317, align 8, !noalias !6283 %inv2.sroa.6.0..sroa_idx.i318 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6f69fc71b13c25f3E, ptr %inv2.sroa.6.0..sroa_idx.i318, align 8, !noalias !6283 %inv2.sroa.7.0..sroa_idx.i319 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8477eaaf78c518d2E, ptr %inv2.sroa.7.0..sroa_idx.i319, align 8, !noalias !6283 %inv2.sroa.8.0..sroa_idx.i320 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf58169413aa0551fE, ptr %inv2.sroa.8.0..sroa_idx.i320, align 8, !noalias !6283 %inv2.sroa.9.0..sroa_idx.i321 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17he98aed5f697c3bc1E, ptr %inv2.sroa.9.0..sroa_idx.i321, align 8, !noalias !6283 %inv2.sroa.10.0..sroa_idx.i322 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9a9609fc8b39ee5eE, ptr %inv2.sroa.10.0..sroa_idx.i322, align 8, !noalias !6283 %inv2.sroa.11.0..sroa_idx.i323 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h19b684a5ecffd696E, ptr %inv2.sroa.11.0..sroa_idx.i323, align 8, !noalias !6283 %inv2.sroa.12.0..sroa_idx.i324 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha48b4dc2bb6863faE, ptr %inv2.sroa.12.0..sroa_idx.i324, align 8, !noalias !6283 %93 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx6.i325 = add nsw i64 %93, -1 %_67.i326 = icmp ult i64 %idx6.i325, 10 br i1 %_67.i326, label %bb17.i328, label %panic7.i327, !prof !2180 bb20.i303: ; preds = %bb6.i281 %94 = getelementptr inbounds [10 x ptr], ptr %_9.i265, i64 0, i64 %idx.i300 %_95.i304 = load ptr, ptr %94, align 8, !noalias !6283, !nonnull !3, !noundef !3 %95 = getelementptr inbounds %FftImpl, ptr %_9.i265, i64 0, i32 1, i64 %idx.i300 %_97.i305 = load ptr, ptr %95, align 8, !noalias !6283, !nonnull !3, !noundef !3 store ptr %_95.i304, ptr %_0, align 8, !alias.scope !6283 %96 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_97.i305, ptr %96, align 8, !alias.scope !6283 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_9.i265), !noalias !6283 br label %bb11 panic.i302: ; preds = %bb6.i281 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i300, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6283 unreachable bb17.i328: ; preds = %bb4.i306 %97 = getelementptr inbounds [10 x ptr], ptr %_7.i266, i64 0, i64 %idx6.i325 %_66.i329 = load ptr, ptr %97, align 8, !noalias !6283, !nonnull !3, !noundef !3 %98 = getelementptr inbounds %FftImpl, ptr %_7.i266, i64 0, i32 1, i64 %idx6.i325 %_68.i330 = load ptr, ptr %98, align 8, !noalias !6283, !nonnull !3, !noundef !3 store ptr %_66.i329, ptr %_0, align 8, !alias.scope !6283 %99 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_68.i330, ptr %99, align 8, !alias.scope !6283 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_7.i266), !noalias !6283 br label %bb11 panic7.i327: ; preds = %bb4.i306 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx6.i325, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6283 unreachable bb11.i355: ; preds = %bb1.i333 %100 = getelementptr inbounds [10 x ptr], ptr %_4.i267, i64 0, i64 %idx9.i352 %_36.i356 = load ptr, ptr %100, align 8, !noalias !6283, !nonnull !3, !noundef !3 %101 = getelementptr inbounds %FftImpl, ptr %_4.i267, i64 0, i32 1, i64 %idx9.i352 %_38.i357 = load ptr, ptr %101, align 8, !noalias !6283, !nonnull !3, !noundef !3 store ptr %_36.i356, ptr %_0, align 8, !alias.scope !6283 %102 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_38.i357, ptr %102, align 8, !alias.scope !6283 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i267), !noalias !6283 br label %bb11 panic10.i354: ; preds = %bb1.i333 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx9.i352, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6283 unreachable bb10: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6286) %103 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6286 %_3.i.i363 = icmp eq i8 %103, -1 br i1 %_3.i.i363, label %bb1.i.i453, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i364 bb1.i.i453: ; preds = %bb10 ; call pulp::x86::V4::__detect_is_available %_5.i.i454 = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !6286 %104 = zext i1 %_5.i.i454 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i364 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i364: ; preds = %bb1.i.i453, %bb10 %available.0.i.i365 = phi i8 [ %104, %bb1.i.i453 ], [ %103, %bb10 ] %_0.i.i366 = icmp ne i8 %available.0.i.i365, 0 %_2.i367 = icmp ugt i64 %n, 63 %or.cond.i368 = and i1 %_2.i367, %_0.i.i366 br i1 %or.cond.i368, label %bb1.i428, label %bb3.i369 bb3.i369: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i364 %105 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6286 %_3.i15.i370 = icmp eq i8 %105, -1 br i1 %_3.i15.i370, label %bb1.i18.i426, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i371 bb1.i18.i426: ; preds = %bb3.i369 ; call pulp::x86::V3::__detect_is_available %_5.i19.i427 = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6286 %106 = zext i1 %_5.i19.i427 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i371 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i371: ; preds = %bb1.i18.i426, %bb3.i369 %available.0.i16.i372 = phi i8 [ %106, %bb1.i18.i426 ], [ %105, %bb3.i369 ] %_0.i17.i373 = icmp ne i8 %available.0.i16.i372, 0 %_5.i374 = icmp ugt i64 %n, 31 %or.cond12.i375 = and i1 %_5.i374, %_0.i17.i373 br i1 %or.cond12.i375, label %bb4.i401, label %bb6.i376 bb1.i428: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i364 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i362), !noalias !6286 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %_4.i362, align 8, !noalias !6286 %fwd.sroa.4.0._4.sroa_idx.i429 = getelementptr inbounds i8, ptr %_4.i362, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE, ptr %fwd.sroa.4.0._4.sroa_idx.i429, align 8, !noalias !6286 %fwd.sroa.5.0._4.sroa_idx.i430 = getelementptr inbounds i8, ptr %_4.i362, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h178a09fa99b3d60fE, ptr %fwd.sroa.5.0._4.sroa_idx.i430, align 8, !noalias !6286 %fwd.sroa.6.0._4.sroa_idx.i431 = getelementptr inbounds i8, ptr %_4.i362, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h43e1ec8a2c22051bE, ptr %fwd.sroa.6.0._4.sroa_idx.i431, align 8, !noalias !6286 %fwd.sroa.7.0._4.sroa_idx.i432 = getelementptr inbounds i8, ptr %_4.i362, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5a4881f49354c7a5E, ptr %fwd.sroa.7.0._4.sroa_idx.i432, align 8, !noalias !6286 %fwd.sroa.8.0._4.sroa_idx.i433 = getelementptr inbounds i8, ptr %_4.i362, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7eb4cf7d783eaa9eE, ptr %fwd.sroa.8.0._4.sroa_idx.i433, align 8, !noalias !6286 %fwd.sroa.9.0._4.sroa_idx.i434 = getelementptr inbounds i8, ptr %_4.i362, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h20e04d95ba8bdf79E, ptr %fwd.sroa.9.0._4.sroa_idx.i434, align 8, !noalias !6286 %fwd.sroa.10.0._4.sroa_idx.i435 = getelementptr inbounds i8, ptr %_4.i362, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17he3dae92d1afba147E, ptr %fwd.sroa.10.0._4.sroa_idx.i435, align 8, !noalias !6286 %fwd.sroa.11.0._4.sroa_idx.i436 = getelementptr inbounds i8, ptr %_4.i362, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf79966d1f3f70aeaE, ptr %fwd.sroa.11.0._4.sroa_idx.i436, align 8, !noalias !6286 %fwd.sroa.12.0._4.sroa_idx.i437 = getelementptr inbounds i8, ptr %_4.i362, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17haa4f569a04b8714eE, ptr %fwd.sroa.12.0._4.sroa_idx.i437, align 8, !noalias !6286 %107 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %107, align 8, !noalias !6286 %inv.sroa.4.0..sroa_idx.i438 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h134e4aa976a679deE, ptr %inv.sroa.4.0..sroa_idx.i438, align 8, !noalias !6286 %inv.sroa.5.0..sroa_idx.i439 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h178a09fa99b3d60fE, ptr %inv.sroa.5.0..sroa_idx.i439, align 8, !noalias !6286 %inv.sroa.6.0..sroa_idx.i440 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h43e1ec8a2c22051bE, ptr %inv.sroa.6.0..sroa_idx.i440, align 8, !noalias !6286 %inv.sroa.7.0..sroa_idx.i441 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5a4881f49354c7a5E, ptr %inv.sroa.7.0..sroa_idx.i441, align 8, !noalias !6286 %inv.sroa.8.0..sroa_idx.i442 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h730454751d500f1eE, ptr %inv.sroa.8.0..sroa_idx.i442, align 8, !noalias !6286 %inv.sroa.9.0..sroa_idx.i443 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf300ffab7a0b38d6E, ptr %inv.sroa.9.0..sroa_idx.i443, align 8, !noalias !6286 %inv.sroa.10.0..sroa_idx.i444 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17had0fbf042c89c047E, ptr %inv.sroa.10.0..sroa_idx.i444, align 8, !noalias !6286 %inv.sroa.11.0..sroa_idx.i445 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc801580ebc6b8781E, ptr %inv.sroa.11.0..sroa_idx.i445, align 8, !noalias !6286 %inv.sroa.12.0..sroa_idx.i446 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9bd04fba983bba1fE, ptr %inv.sroa.12.0..sroa_idx.i446, align 8, !noalias !6286 %108 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx9.i447 = add nsw i64 %108, -1 %_37.i448 = icmp ult i64 %idx9.i447, 10 br i1 %_37.i448, label %bb11.i450, label %panic10.i449, !prof !2180 bb6.i376: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i371 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_9.i360), !noalias !6286 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_9.i360, align 8, !noalias !6286 %fwd3.sroa.4.0._9.sroa_idx.i377 = getelementptr inbounds i8, ptr %_9.i360, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E, ptr %fwd3.sroa.4.0._9.sroa_idx.i377, align 8, !noalias !6286 %fwd3.sroa.5.0._9.sroa_idx.i378 = getelementptr inbounds i8, ptr %_9.i360, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h85a17475f55bdd90E, ptr %fwd3.sroa.5.0._9.sroa_idx.i378, align 8, !noalias !6286 %fwd3.sroa.6.0._9.sroa_idx.i379 = getelementptr inbounds i8, ptr %_9.i360, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17hedcbc66d1be13ff8E, ptr %fwd3.sroa.6.0._9.sroa_idx.i379, align 8, !noalias !6286 %fwd3.sroa.7.0._9.sroa_idx.i380 = getelementptr inbounds i8, ptr %_9.i360, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h244113317c21b9d4E, ptr %fwd3.sroa.7.0._9.sroa_idx.i380, align 8, !noalias !6286 %fwd3.sroa.8.0._9.sroa_idx.i381 = getelementptr inbounds i8, ptr %_9.i360, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha5c1ef9e77e683efE, ptr %fwd3.sroa.8.0._9.sroa_idx.i381, align 8, !noalias !6286 %fwd3.sroa.9.0._9.sroa_idx.i382 = getelementptr inbounds i8, ptr %_9.i360, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1fa39286938b1f2eE, ptr %fwd3.sroa.9.0._9.sroa_idx.i382, align 8, !noalias !6286 %fwd3.sroa.10.0._9.sroa_idx.i383 = getelementptr inbounds i8, ptr %_9.i360, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf0576c73c8ef0ebeE, ptr %fwd3.sroa.10.0._9.sroa_idx.i383, align 8, !noalias !6286 %fwd3.sroa.11.0._9.sroa_idx.i384 = getelementptr inbounds i8, ptr %_9.i360, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9b5adb0180915f18E, ptr %fwd3.sroa.11.0._9.sroa_idx.i384, align 8, !noalias !6286 %fwd3.sroa.12.0._9.sroa_idx.i385 = getelementptr inbounds i8, ptr %_9.i360, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h206a16aa640d1130E, ptr %fwd3.sroa.12.0._9.sroa_idx.i385, align 8, !noalias !6286 %109 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %109, align 8, !noalias !6286 %inv4.sroa.4.0..sroa_idx.i386 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E, ptr %inv4.sroa.4.0..sroa_idx.i386, align 8, !noalias !6286 %inv4.sroa.5.0..sroa_idx.i387 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h10170623f4eeea51E, ptr %inv4.sroa.5.0..sroa_idx.i387, align 8, !noalias !6286 %inv4.sroa.6.0..sroa_idx.i388 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h888106451980ecbeE, ptr %inv4.sroa.6.0..sroa_idx.i388, align 8, !noalias !6286 %inv4.sroa.7.0..sroa_idx.i389 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h7b082f24805a691eE, ptr %inv4.sroa.7.0..sroa_idx.i389, align 8, !noalias !6286 %inv4.sroa.8.0..sroa_idx.i390 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h629c0f4e7966fa6dE, ptr %inv4.sroa.8.0..sroa_idx.i390, align 8, !noalias !6286 %inv4.sroa.9.0..sroa_idx.i391 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17he3cc172aaecdd215E, ptr %inv4.sroa.9.0..sroa_idx.i391, align 8, !noalias !6286 %inv4.sroa.10.0..sroa_idx.i392 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6157286ebe6aaedfE, ptr %inv4.sroa.10.0..sroa_idx.i392, align 8, !noalias !6286 %inv4.sroa.11.0..sroa_idx.i393 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h47fd729c86e270b3E, ptr %inv4.sroa.11.0..sroa_idx.i393, align 8, !noalias !6286 %inv4.sroa.12.0..sroa_idx.i394 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17hf9d83f0e1cd42d6dE, ptr %inv4.sroa.12.0..sroa_idx.i394, align 8, !noalias !6286 %110 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i395 = add nsw i64 %110, -1 %_96.i396 = icmp ult i64 %idx.i395, 10 br i1 %_96.i396, label %bb20.i398, label %panic.i397, !prof !2180 bb4.i401: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i371 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_7.i361), !noalias !6286 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %_7.i361, align 8, !noalias !6286 %fwd1.sroa.4.0._7.sroa_idx.i402 = getelementptr inbounds i8, ptr %_7.i361, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE, ptr %fwd1.sroa.4.0._7.sroa_idx.i402, align 8, !noalias !6286 %fwd1.sroa.5.0._7.sroa_idx.i403 = getelementptr inbounds i8, ptr %_7.i361, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5fc8a52c39806279E, ptr %fwd1.sroa.5.0._7.sroa_idx.i403, align 8, !noalias !6286 %fwd1.sroa.6.0._7.sroa_idx.i404 = getelementptr inbounds i8, ptr %_7.i361, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00573d7f258c7a77E, ptr %fwd1.sroa.6.0._7.sroa_idx.i404, align 8, !noalias !6286 %fwd1.sroa.7.0._7.sroa_idx.i405 = getelementptr inbounds i8, ptr %_7.i361, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9485c76d76ab301cE, ptr %fwd1.sroa.7.0._7.sroa_idx.i405, align 8, !noalias !6286 %fwd1.sroa.8.0._7.sroa_idx.i406 = getelementptr inbounds i8, ptr %_7.i361, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5d254d713970c606E, ptr %fwd1.sroa.8.0._7.sroa_idx.i406, align 8, !noalias !6286 %fwd1.sroa.9.0._7.sroa_idx.i407 = getelementptr inbounds i8, ptr %_7.i361, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb2aa3ebafaf8355fE, ptr %fwd1.sroa.9.0._7.sroa_idx.i407, align 8, !noalias !6286 %fwd1.sroa.10.0._7.sroa_idx.i408 = getelementptr inbounds i8, ptr %_7.i361, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h255b113b51e1dd7aE, ptr %fwd1.sroa.10.0._7.sroa_idx.i408, align 8, !noalias !6286 %fwd1.sroa.11.0._7.sroa_idx.i409 = getelementptr inbounds i8, ptr %_7.i361, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17he9e1d5dac0c33298E, ptr %fwd1.sroa.11.0._7.sroa_idx.i409, align 8, !noalias !6286 %fwd1.sroa.12.0._7.sroa_idx.i410 = getelementptr inbounds i8, ptr %_7.i361, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1abc269ba09ec36cE, ptr %fwd1.sroa.12.0._7.sroa_idx.i410, align 8, !noalias !6286 %111 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h075ea645eb6e714bE, ptr %111, align 8, !noalias !6286 %inv2.sroa.4.0..sroa_idx.i411 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1a662e18aaf7a87dE, ptr %inv2.sroa.4.0..sroa_idx.i411, align 8, !noalias !6286 %inv2.sroa.5.0..sroa_idx.i412 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5fc8a52c39806279E, ptr %inv2.sroa.5.0..sroa_idx.i412, align 8, !noalias !6286 %inv2.sroa.6.0..sroa_idx.i413 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00573d7f258c7a77E, ptr %inv2.sroa.6.0..sroa_idx.i413, align 8, !noalias !6286 %inv2.sroa.7.0..sroa_idx.i414 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h150fbe092b23bf33E, ptr %inv2.sroa.7.0..sroa_idx.i414, align 8, !noalias !6286 %inv2.sroa.8.0..sroa_idx.i415 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hab1a488a55e90c90E, ptr %inv2.sroa.8.0..sroa_idx.i415, align 8, !noalias !6286 %inv2.sroa.9.0..sroa_idx.i416 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd570de55aa4fd554E, ptr %inv2.sroa.9.0..sroa_idx.i416, align 8, !noalias !6286 %inv2.sroa.10.0..sroa_idx.i417 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3a6db6188b47f1f8E, ptr %inv2.sroa.10.0..sroa_idx.i417, align 8, !noalias !6286 %inv2.sroa.11.0..sroa_idx.i418 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2618ae3f91292788E, ptr %inv2.sroa.11.0..sroa_idx.i418, align 8, !noalias !6286 %inv2.sroa.12.0..sroa_idx.i419 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h02ef88083453d12cE, ptr %inv2.sroa.12.0..sroa_idx.i419, align 8, !noalias !6286 %112 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx6.i420 = add nsw i64 %112, -1 %_67.i421 = icmp ult i64 %idx6.i420, 10 br i1 %_67.i421, label %bb17.i423, label %panic7.i422, !prof !2180 bb20.i398: ; preds = %bb6.i376 %113 = getelementptr inbounds [10 x ptr], ptr %_9.i360, i64 0, i64 %idx.i395 %_95.i399 = load ptr, ptr %113, align 8, !noalias !6286, !nonnull !3, !noundef !3 %114 = getelementptr inbounds %FftImpl, ptr %_9.i360, i64 0, i32 1, i64 %idx.i395 %_97.i400 = load ptr, ptr %114, align 8, !noalias !6286, !nonnull !3, !noundef !3 store ptr %_95.i399, ptr %_0, align 8, !alias.scope !6286 %115 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_97.i400, ptr %115, align 8, !alias.scope !6286 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_9.i360), !noalias !6286 br label %bb11 panic.i397: ; preds = %bb6.i376 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i395, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6286 unreachable bb17.i423: ; preds = %bb4.i401 %116 = getelementptr inbounds [10 x ptr], ptr %_7.i361, i64 0, i64 %idx6.i420 %_66.i424 = load ptr, ptr %116, align 8, !noalias !6286, !nonnull !3, !noundef !3 %117 = getelementptr inbounds %FftImpl, ptr %_7.i361, i64 0, i32 1, i64 %idx6.i420 %_68.i425 = load ptr, ptr %117, align 8, !noalias !6286, !nonnull !3, !noundef !3 store ptr %_66.i424, ptr %_0, align 8, !alias.scope !6286 %118 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_68.i425, ptr %118, align 8, !alias.scope !6286 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_7.i361), !noalias !6286 br label %bb11 panic7.i422: ; preds = %bb4.i401 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx6.i420, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6286 unreachable bb11.i450: ; preds = %bb1.i428 %119 = getelementptr inbounds [10 x ptr], ptr %_4.i362, i64 0, i64 %idx9.i447 %_36.i451 = load ptr, ptr %119, align 8, !noalias !6286, !nonnull !3, !noundef !3 %120 = getelementptr inbounds %FftImpl, ptr %_4.i362, i64 0, i32 1, i64 %idx9.i447 %_38.i452 = load ptr, ptr %120, align 8, !noalias !6286, !nonnull !3, !noundef !3 store ptr %_36.i451, ptr %_0, align 8, !alias.scope !6286 %121 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_38.i452, ptr %121, align 8, !alias.scope !6286 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i362), !noalias !6286 br label %bb11 panic10.i449: ; preds = %bb1.i428 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx9.i447, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6286 unreachable bb3: ; preds = %bb2 tail call void @llvm.experimental.noalias.scope.decl(metadata !6289) %122 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6289 %_3.i.i458 = icmp eq i8 %122, -1 br i1 %_3.i.i458, label %bb1.i.i548, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i459 bb1.i.i548: ; preds = %bb3 ; call pulp::x86::V4::__detect_is_available %_5.i.i549 = tail call noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE(), !noalias !6289 %123 = zext i1 %_5.i.i549 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i459 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i459: ; preds = %bb1.i.i548, %bb3 %available.0.i.i460 = phi i8 [ %123, %bb1.i.i548 ], [ %122, %bb3 ] %_0.i.i461 = icmp ne i8 %available.0.i.i460, 0 %_2.i462 = icmp ugt i64 %n, 63 %or.cond.i463 = and i1 %_2.i462, %_0.i.i461 br i1 %or.cond.i463, label %bb1.i523, label %bb3.i464 bb3.i464: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i459 %124 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6289 %_3.i15.i465 = icmp eq i8 %124, -1 br i1 %_3.i15.i465, label %bb1.i18.i521, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i466 bb1.i18.i521: ; preds = %bb3.i464 ; call pulp::x86::V3::__detect_is_available %_5.i19.i522 = tail call noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE(), !noalias !6289 %125 = zext i1 %_5.i19.i522 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i466 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i466: ; preds = %bb1.i18.i521, %bb3.i464 %available.0.i16.i467 = phi i8 [ %125, %bb1.i18.i521 ], [ %124, %bb3.i464 ] %_0.i17.i468 = icmp ne i8 %available.0.i16.i467, 0 %_5.i469 = icmp ugt i64 %n, 31 %or.cond12.i470 = and i1 %_5.i469, %_0.i17.i468 br i1 %or.cond12.i470, label %bb4.i496, label %bb6.i471 bb1.i523: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i459 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_4.i457), !noalias !6289 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %_4.i457, align 8, !noalias !6289 %fwd.sroa.4.0._4.sroa_idx.i524 = getelementptr inbounds i8, ptr %_4.i457, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E, ptr %fwd.sroa.4.0._4.sroa_idx.i524, align 8, !noalias !6289 %fwd.sroa.5.0._4.sroa_idx.i525 = getelementptr inbounds i8, ptr %_4.i457, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3fb778f5a66a08cbE, ptr %fwd.sroa.5.0._4.sroa_idx.i525, align 8, !noalias !6289 %fwd.sroa.6.0._4.sroa_idx.i526 = getelementptr inbounds i8, ptr %_4.i457, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h043ce95777fa6581E, ptr %fwd.sroa.6.0._4.sroa_idx.i526, align 8, !noalias !6289 %fwd.sroa.7.0._4.sroa_idx.i527 = getelementptr inbounds i8, ptr %_4.i457, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9e2c8f44d3e48949E, ptr %fwd.sroa.7.0._4.sroa_idx.i527, align 8, !noalias !6289 %fwd.sroa.8.0._4.sroa_idx.i528 = getelementptr inbounds i8, ptr %_4.i457, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h04bf106a2332ccadE, ptr %fwd.sroa.8.0._4.sroa_idx.i528, align 8, !noalias !6289 %fwd.sroa.9.0._4.sroa_idx.i529 = getelementptr inbounds i8, ptr %_4.i457, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17h78f2f9cb1e90cee3E, ptr %fwd.sroa.9.0._4.sroa_idx.i529, align 8, !noalias !6289 %fwd.sroa.10.0._4.sroa_idx.i530 = getelementptr inbounds i8, ptr %_4.i457, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd7e429449824aa7aE, ptr %fwd.sroa.10.0._4.sroa_idx.i530, align 8, !noalias !6289 %fwd.sroa.11.0._4.sroa_idx.i531 = getelementptr inbounds i8, ptr %_4.i457, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0517a052e2a50be6E, ptr %fwd.sroa.11.0._4.sroa_idx.i531, align 8, !noalias !6289 %fwd.sroa.12.0._4.sroa_idx.i532 = getelementptr inbounds i8, ptr %_4.i457, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc726ba6fe02988b4E, ptr %fwd.sroa.12.0._4.sroa_idx.i532, align 8, !noalias !6289 %126 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h00ec383d18773296E, ptr %126, align 8, !noalias !6289 %inv.sroa.4.0..sroa_idx.i533 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h156ee2fb4c4254d4E, ptr %inv.sroa.4.0..sroa_idx.i533, align 8, !noalias !6289 %inv.sroa.5.0..sroa_idx.i534 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3fb778f5a66a08cbE, ptr %inv.sroa.5.0..sroa_idx.i534, align 8, !noalias !6289 %inv.sroa.6.0..sroa_idx.i535 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h043ce95777fa6581E, ptr %inv.sroa.6.0..sroa_idx.i535, align 8, !noalias !6289 %inv.sroa.7.0..sroa_idx.i536 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h9e2c8f44d3e48949E, ptr %inv.sroa.7.0..sroa_idx.i536, align 8, !noalias !6289 %inv.sroa.8.0..sroa_idx.i537 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h097dca61406d6c69E, ptr %inv.sroa.8.0..sroa_idx.i537, align 8, !noalias !6289 %inv.sroa.9.0..sroa_idx.i538 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h832232daa4e7a621E, ptr %inv.sroa.9.0..sroa_idx.i538, align 8, !noalias !6289 %inv.sroa.10.0..sroa_idx.i539 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8ac8ecab5c1bea69E, ptr %inv.sroa.10.0..sroa_idx.i539, align 8, !noalias !6289 %inv.sroa.11.0..sroa_idx.i540 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb3a6e57803867d86E, ptr %inv.sroa.11.0..sroa_idx.i540, align 8, !noalias !6289 %inv.sroa.12.0..sroa_idx.i541 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h5a5875b4873913a3E, ptr %inv.sroa.12.0..sroa_idx.i541, align 8, !noalias !6289 %127 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx9.i542 = add nsw i64 %127, -1 %_37.i543 = icmp ult i64 %idx9.i542, 10 br i1 %_37.i543, label %bb11.i545, label %panic10.i544, !prof !2180 bb6.i471: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i466 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_9.i455), !noalias !6289 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %_9.i455, align 8, !noalias !6289 %fwd3.sroa.4.0._9.sroa_idx.i472 = getelementptr inbounds i8, ptr %_9.i455, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0d002bd6b189e2a7E, ptr %fwd3.sroa.4.0._9.sroa_idx.i472, align 8, !noalias !6289 %fwd3.sroa.5.0._9.sroa_idx.i473 = getelementptr inbounds i8, ptr %_9.i455, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h85a17475f55bdd90E, ptr %fwd3.sroa.5.0._9.sroa_idx.i473, align 8, !noalias !6289 %fwd3.sroa.6.0._9.sroa_idx.i474 = getelementptr inbounds i8, ptr %_9.i455, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17hedcbc66d1be13ff8E, ptr %fwd3.sroa.6.0._9.sroa_idx.i474, align 8, !noalias !6289 %fwd3.sroa.7.0._9.sroa_idx.i475 = getelementptr inbounds i8, ptr %_9.i455, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4e4520cffc7ed69cE, ptr %fwd3.sroa.7.0._9.sroa_idx.i475, align 8, !noalias !6289 %fwd3.sroa.8.0._9.sroa_idx.i476 = getelementptr inbounds i8, ptr %_9.i455, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1da9b5565fdccb96E, ptr %fwd3.sroa.8.0._9.sroa_idx.i476, align 8, !noalias !6289 %fwd3.sroa.9.0._9.sroa_idx.i477 = getelementptr inbounds i8, ptr %_9.i455, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd98ffbcf85aa2f29E, ptr %fwd3.sroa.9.0._9.sroa_idx.i477, align 8, !noalias !6289 %fwd3.sroa.10.0._9.sroa_idx.i478 = getelementptr inbounds i8, ptr %_9.i455, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0c43f7932b3b65e2E, ptr %fwd3.sroa.10.0._9.sroa_idx.i478, align 8, !noalias !6289 %fwd3.sroa.11.0._9.sroa_idx.i479 = getelementptr inbounds i8, ptr %_9.i455, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h3601bcc36a74b6e3E, ptr %fwd3.sroa.11.0._9.sroa_idx.i479, align 8, !noalias !6289 %fwd3.sroa.12.0._9.sroa_idx.i480 = getelementptr inbounds i8, ptr %_9.i455, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc0b80ca84e84a6f6E, ptr %fwd3.sroa.12.0._9.sroa_idx.i480, align 8, !noalias !6289 %128 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h27842013269643c8E, ptr %128, align 8, !noalias !6289 %inv4.sroa.4.0..sroa_idx.i481 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h4aa56dbce22d2ca8E, ptr %inv4.sroa.4.0..sroa_idx.i481, align 8, !noalias !6289 %inv4.sroa.5.0..sroa_idx.i482 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h10170623f4eeea51E, ptr %inv4.sroa.5.0..sroa_idx.i482, align 8, !noalias !6289 %inv4.sroa.6.0..sroa_idx.i483 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h888106451980ecbeE, ptr %inv4.sroa.6.0..sroa_idx.i483, align 8, !noalias !6289 %inv4.sroa.7.0..sroa_idx.i484 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1c48943f3fe062daE, ptr %inv4.sroa.7.0..sroa_idx.i484, align 8, !noalias !6289 %inv4.sroa.8.0..sroa_idx.i485 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb0ef5661ee1c69d6E, ptr %inv4.sroa.8.0..sroa_idx.i485, align 8, !noalias !6289 %inv4.sroa.9.0..sroa_idx.i486 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17h80a678a8622cddefE, ptr %inv4.sroa.9.0..sroa_idx.i486, align 8, !noalias !6289 %inv4.sroa.10.0..sroa_idx.i487 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hbc0fcc18b7114e45E, ptr %inv4.sroa.10.0..sroa_idx.i487, align 8, !noalias !6289 %inv4.sroa.11.0..sroa_idx.i488 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h2518230c8a974652E, ptr %inv4.sroa.11.0..sroa_idx.i488, align 8, !noalias !6289 %inv4.sroa.12.0..sroa_idx.i489 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17h687b1e4cf0ae5b32E, ptr %inv4.sroa.12.0..sroa_idx.i489, align 8, !noalias !6289 %129 = tail call i64 @llvm.cttz.i64(i64 %n, i1 false), !range !750 %idx.i490 = add nsw i64 %129, -1 %_96.i491 = icmp ult i64 %idx.i490, 10 br i1 %_96.i491, label %bb20.i493, label %panic.i492, !prof !2180 bb4.i496: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i466 call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %_7.i456), !noalias !6289 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %_7.i456, align 8, !noalias !6289 %fwd1.sroa.4.0._7.sroa_idx.i497 = getelementptr inbounds i8, ptr %_7.i456, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E, ptr %fwd1.sroa.4.0._7.sroa_idx.i497, align 8, !noalias !6289 %fwd1.sroa.5.0._7.sroa_idx.i498 = getelementptr inbounds i8, ptr %_7.i456, i64 16 store ptr @_ZN4core3ops8function6FnOnce9call_once17h138a9e2b1a60dfbeE, ptr %fwd1.sroa.5.0._7.sroa_idx.i498, align 8, !noalias !6289 %fwd1.sroa.6.0._7.sroa_idx.i499 = getelementptr inbounds i8, ptr %_7.i456, i64 24 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6094fdda0b5c1db8E, ptr %fwd1.sroa.6.0._7.sroa_idx.i499, align 8, !noalias !6289 %fwd1.sroa.7.0._7.sroa_idx.i500 = getelementptr inbounds i8, ptr %_7.i456, i64 32 store ptr @_ZN4core3ops8function6FnOnce9call_once17h0edf0836dda0919eE, ptr %fwd1.sroa.7.0._7.sroa_idx.i500, align 8, !noalias !6289 %fwd1.sroa.8.0._7.sroa_idx.i501 = getelementptr inbounds i8, ptr %_7.i456, i64 40 store ptr @_ZN4core3ops8function6FnOnce9call_once17h1668850afd322a31E, ptr %fwd1.sroa.8.0._7.sroa_idx.i501, align 8, !noalias !6289 %fwd1.sroa.9.0._7.sroa_idx.i502 = getelementptr inbounds i8, ptr %_7.i456, i64 48 store ptr @_ZN4core3ops8function6FnOnce9call_once17hd483d4721d28116cE, ptr %fwd1.sroa.9.0._7.sroa_idx.i502, align 8, !noalias !6289 %fwd1.sroa.10.0._7.sroa_idx.i503 = getelementptr inbounds i8, ptr %_7.i456, i64 56 store ptr @_ZN4core3ops8function6FnOnce9call_once17had7e6d7c24ffb8a9E, ptr %fwd1.sroa.10.0._7.sroa_idx.i503, align 8, !noalias !6289 %fwd1.sroa.11.0._7.sroa_idx.i504 = getelementptr inbounds i8, ptr %_7.i456, i64 64 store ptr @_ZN4core3ops8function6FnOnce9call_once17h363009ad56eabd90E, ptr %fwd1.sroa.11.0._7.sroa_idx.i504, align 8, !noalias !6289 %fwd1.sroa.12.0._7.sroa_idx.i505 = getelementptr inbounds i8, ptr %_7.i456, i64 72 store ptr @_ZN4core3ops8function6FnOnce9call_once17hb01f4d27a8c0f114E, ptr %fwd1.sroa.12.0._7.sroa_idx.i505, align 8, !noalias !6289 %130 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h09b2951dada94ecaE, ptr %130, align 8, !noalias !6289 %inv2.sroa.4.0..sroa_idx.i506 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 1 store ptr @_ZN4core3ops8function6FnOnce9call_once17h124bd00f010cda69E, ptr %inv2.sroa.4.0..sroa_idx.i506, align 8, !noalias !6289 %inv2.sroa.5.0..sroa_idx.i507 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 2 store ptr @_ZN4core3ops8function6FnOnce9call_once17h138a9e2b1a60dfbeE, ptr %inv2.sroa.5.0..sroa_idx.i507, align 8, !noalias !6289 %inv2.sroa.6.0..sroa_idx.i508 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 3 store ptr @_ZN4core3ops8function6FnOnce9call_once17h6094fdda0b5c1db8E, ptr %inv2.sroa.6.0..sroa_idx.i508, align 8, !noalias !6289 %inv2.sroa.7.0..sroa_idx.i509 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 4 store ptr @_ZN4core3ops8function6FnOnce9call_once17h211ace6e34799c35E, ptr %inv2.sroa.7.0..sroa_idx.i509, align 8, !noalias !6289 %inv2.sroa.8.0..sroa_idx.i510 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 5 store ptr @_ZN4core3ops8function6FnOnce9call_once17h766b06bad806956dE, ptr %inv2.sroa.8.0..sroa_idx.i510, align 8, !noalias !6289 %inv2.sroa.9.0..sroa_idx.i511 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 6 store ptr @_ZN4core3ops8function6FnOnce9call_once17hc422924981261ff3E, ptr %inv2.sroa.9.0..sroa_idx.i511, align 8, !noalias !6289 %inv2.sroa.10.0..sroa_idx.i512 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 7 store ptr @_ZN4core3ops8function6FnOnce9call_once17hfaf829474132b539E, ptr %inv2.sroa.10.0..sroa_idx.i512, align 8, !noalias !6289 %inv2.sroa.11.0..sroa_idx.i513 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 8 store ptr @_ZN4core3ops8function6FnOnce9call_once17h8469a712155d2637E, ptr %inv2.sroa.11.0..sroa_idx.i513, align 8, !noalias !6289 %inv2.sroa.12.0..sroa_idx.i514 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 9 store ptr @_ZN4core3ops8function6FnOnce9call_once17ha07f55c5929f1f15E, ptr %inv2.sroa.12.0..sroa_idx.i514, align 8, !noalias !6289 %131 = tail call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %idx6.i515 = add nsw i64 %131, -1 %_67.i516 = icmp ult i64 %idx6.i515, 10 br i1 %_67.i516, label %bb17.i518, label %panic7.i517, !prof !2180 bb20.i493: ; preds = %bb6.i471 %132 = getelementptr inbounds [10 x ptr], ptr %_9.i455, i64 0, i64 %idx.i490 %_95.i494 = load ptr, ptr %132, align 8, !noalias !6289, !nonnull !3, !noundef !3 %133 = getelementptr inbounds %FftImpl, ptr %_9.i455, i64 0, i32 1, i64 %idx.i490 %_97.i495 = load ptr, ptr %133, align 8, !noalias !6289, !nonnull !3, !noundef !3 store ptr %_95.i494, ptr %_0, align 8, !alias.scope !6289 %134 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_97.i495, ptr %134, align 8, !alias.scope !6289 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_9.i455), !noalias !6289 br label %bb11 panic.i492: ; preds = %bb6.i471 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.i490, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6289 unreachable bb17.i518: ; preds = %bb4.i496 %135 = getelementptr inbounds [10 x ptr], ptr %_7.i456, i64 0, i64 %idx6.i515 %_66.i519 = load ptr, ptr %135, align 8, !noalias !6289, !nonnull !3, !noundef !3 %136 = getelementptr inbounds %FftImpl, ptr %_7.i456, i64 0, i32 1, i64 %idx6.i515 %_68.i520 = load ptr, ptr %136, align 8, !noalias !6289, !nonnull !3, !noundef !3 store ptr %_66.i519, ptr %_0, align 8, !alias.scope !6289 %137 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_68.i520, ptr %137, align 8, !alias.scope !6289 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_7.i456), !noalias !6289 br label %bb11 panic7.i517: ; preds = %bb4.i496 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx6.i515, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6289 unreachable bb11.i545: ; preds = %bb1.i523 %138 = getelementptr inbounds [10 x ptr], ptr %_4.i457, i64 0, i64 %idx9.i542 %_36.i546 = load ptr, ptr %138, align 8, !noalias !6289, !nonnull !3, !noundef !3 %139 = getelementptr inbounds %FftImpl, ptr %_4.i457, i64 0, i32 1, i64 %idx9.i542 %_38.i547 = load ptr, ptr %139, align 8, !noalias !6289, !nonnull !3, !noundef !3 store ptr %_36.i546, ptr %_0, align 8, !alias.scope !6289 %140 = getelementptr inbounds [2 x ptr], ptr %_0, i64 0, i64 1 store ptr %_38.i547, ptr %140, align 8, !alias.scope !6289 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %_4.i457), !noalias !6289 br label %bb11 panic10.i544: ; preds = %bb1.i523 ; call core::panicking::panic_bounds_check tail call void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx9.i542, i64 noundef 10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e7c4d37f337e66a858596f43595df04b) #22, !noalias !6289 unreachable } ; concrete_fft::ordered::Plan::new ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft7ordered4Plan3new17h44a6f435f616f1b4E(ptr noalias nocapture noundef writeonly sret(%"ordered::Plan") align 8 dereferenceable(56) %_0, i64 noundef %n, ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %method) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_19 = alloca [2 x ptr], align 16 %_15 = alloca %"dyn_stack::mem::GlobalPodBuffer", align 8 %_11 = alloca { i8, [7 x i8], %"core::time::Duration" }, align 8 %0 = tail call i64 @llvm.ctpop.i64(i64 %n), !range !750 %1 = icmp eq i64 %0, 1 br i1 %1, label %bb1, label %bb2 bb1: ; preds = %start %2 = and i64 %n, 2047 %_4.not = icmp eq i64 %2, 0 br i1 %_4.not, label %bb4, label %bb3 bb2: ; preds = %start ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf, i64 noundef 37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_cf5080b62438d956622c758f8fa3d336) #22 unreachable bb4: ; preds = %bb1 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_7a32b4b39aba00e218ea4642e861cf8c, i64 noundef 41, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e3e2504e41d8656822ccecf09aa87df7) #22 unreachable bb3: ; preds = %bb1 %3 = getelementptr inbounds %"ordered::Method", ptr %method, i64 0, i32 1 %4 = load i32, ptr %3, align 8, !range !6292, !noundef !3 %5 = icmp eq i32 %4, 1000000000 br i1 %5, label %bb6, label %bb5 bb6: ; preds = %bb3 %algo3 = load i8, ptr %method, align 8, !range !6293, !noundef !3 br label %bb11 bb5: ; preds = %bb3 %duration.0 = load i64, ptr %method, align 8, !noundef !3 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %_11) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %_15) ; call concrete_fft::ordered::measure_fastest_scratch %6 = tail call fastcc { i64, i64 } @_ZN12concrete_fft7ordered23measure_fastest_scratch17h58dfbb2aaf288113E(i64 noundef %n) %_16.0 = extractvalue { i64, i64 } %6, 0 %_16.1 = extractvalue { i64, i64 } %6, 1 ; call dyn_stack::mem::GlobalPodBuffer::new call void @_ZN9dyn_stack3mem15GlobalPodBuffer3new17h0bc965e576176338E(ptr noalias nocapture noundef nonnull sret(%"dyn_stack::mem::GlobalPodBuffer") align 8 dereferenceable(24) %_15, i64 noundef %_16.0, i64 noundef %_16.1) %self4 = load ptr, ptr %_15, align 8, !nonnull !3, !noundef !3 %7 = getelementptr inbounds %"dyn_stack::mem::GlobalMemBuffer", ptr %_15, i64 0, i32 1 %len = load i64, ptr %7, align 8, !noundef !3 ; invoke concrete_fft::ordered::measure_fastest invoke fastcc void @_ZN12concrete_fft7ordered15measure_fastest17h4f1bd38e78c4e9b4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %_11, i64 noundef %duration.0, i32 noundef %4, i64 noundef %n, ptr noalias noundef nonnull align 1 %self4, i64 noundef %len) to label %bb9 unwind label %cleanup bb11: ; preds = %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit22", %bb6 %algo.0 = phi i8 [ %algo3, %bb6 ], [ %17, %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit22" ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_19) ; call concrete_fft::ordered::get_fn_ptr call fastcc void @_ZN12concrete_fft7ordered10get_fn_ptr17h345a513ed1ede784E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(16) %_19, i8 noundef %algo.0, i64 noundef %n) %8 = load <2 x ptr>, ptr %_19, align 16 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_19) %count = shl i64 %n, 1 %9 = icmp eq i64 %count, 0 br i1 %9, label %switch.lookup, label %bb3.i.i.i.i.preheader.i bb3.i.i.i.i.preheader.i: ; preds = %bb11 ; call aligned_vec::raw::with_capacity_unchecked %_6.i.i = tail call noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef %count, i64 noundef 128, i64 noundef 16), !noalias !6294 %10 = icmp ne ptr %_6.i.i, null tail call void @llvm.assume(i1 %10) %11 = shl i64 %n, 5 tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %_6.i.i, i8 0, i64 %11, i1 false), !noalias !6298 ; invoke aligned_vec::raw::with_capacity_unchecked %_6.i.i2537 = invoke noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef %count, i64 noundef 128, i64 noundef 16) to label %_6.i.i25.noexc unwind label %bb24.thread cleanup: ; preds = %bb5 %12 = landingpad { ptr, i32 } cleanup tail call void @llvm.experimental.noalias.scope.decl(metadata !6322) tail call void @llvm.experimental.noalias.scope.decl(metadata !6325) tail call void @llvm.experimental.noalias.scope.decl(metadata !6328) %13 = icmp eq i64 %len, 0 br i1 %13, label %bb26, label %bb1.i.i.i bb1.i.i.i: ; preds = %cleanup %14 = getelementptr inbounds %"dyn_stack::mem::GlobalMemBuffer", ptr %_15, i64 0, i32 2 %align.i.i.i = load i64, ptr %14, align 8, !alias.scope !6331, !noundef !3 %15 = icmp ne i64 %align.i.i.i, 0 tail call void @llvm.assume(i1 %15) %16 = icmp ult i64 %align.i.i.i, -9223372036854775807 tail call void @llvm.assume(i1 %16) tail call void @__rust_dealloc(ptr noundef nonnull %self4, i64 noundef %len, i64 noundef %align.i.i.i) #23, !noalias !6331 br label %bb26 bb9: ; preds = %bb5 %17 = load i8, ptr %_11, align 8, !range !6293, !noundef !3 tail call void @llvm.experimental.noalias.scope.decl(metadata !6332) tail call void @llvm.experimental.noalias.scope.decl(metadata !6335) tail call void @llvm.experimental.noalias.scope.decl(metadata !6338) %18 = icmp eq i64 %len, 0 br i1 %18, label %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit22", label %bb1.i.i.i19 bb1.i.i.i19: ; preds = %bb9 %19 = getelementptr inbounds %"dyn_stack::mem::GlobalMemBuffer", ptr %_15, i64 0, i32 2 %align.i.i.i21 = load i64, ptr %19, align 8, !alias.scope !6341, !noundef !3 %20 = icmp ne i64 %align.i.i.i21, 0 tail call void @llvm.assume(i1 %20) %21 = icmp ult i64 %align.i.i.i21, -9223372036854775807 tail call void @llvm.assume(i1 %21) tail call void @__rust_dealloc(ptr noundef nonnull %self4, i64 noundef %len, i64 noundef %align.i.i.i21) #23, !noalias !6341 br label %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit22" "_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit22": ; preds = %bb9, %bb1.i.i.i19 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %_15) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %_11) br label %bb11 bb24: ; preds = %cleanup10 %22 = shl i64 %n, 5 tail call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i34, i64 noundef %22, i64 noundef 128) #23, !noalias !6342 br label %bb1.i.i.i.i bb1.i.i.i.i: ; preds = %bb24, %bb24.thread %.pre-phi = phi i64 [ %22, %bb24 ], [ %11, %bb24.thread ] %_0.sroa.0.0.i27.i63 = phi ptr [ %_0.sroa.0.0.i27.i64, %bb24 ], [ %_6.i.i, %bb24.thread ] %.pn59 = phi { ptr, i32 } [ %26, %bb24 ], [ %23, %bb24.thread ] tail call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i63, i64 noundef %.pre-phi, i64 noundef 128) #23, !noalias !6347 br label %bb26 bb24.thread: ; preds = %bb3.i.i.i.i.preheader.i %23 = landingpad { ptr, i32 } cleanup br label %bb1.i.i.i.i _6.i.i25.noexc: ; preds = %bb3.i.i.i.i.preheader.i %24 = icmp ne ptr %_6.i.i2537, null tail call void @llvm.assume(i1 %24) tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %_6.i.i2537, i8 0, i64 %11, i1 false), !noalias !6352 br label %switch.lookup switch.lookup: ; preds = %bb11, %_6.i.i25.noexc %_0.sroa.0.0.i27.i64 = phi ptr [ inttoptr (i64 128 to ptr), %bb11 ], [ %_6.i.i, %_6.i.i25.noexc ] %_0.sroa.0.0.i27.i34 = phi ptr [ inttoptr (i64 128 to ptr), %bb11 ], [ %_6.i.i2537, %_6.i.i25.noexc ] %25 = zext nneg i8 %algo.0 to i64 %switch.gep = getelementptr inbounds [8 x i64], ptr @switch.table._ZN12concrete_fft9unordered4Plan3new17h0e00385d94bb7a76E, i64 0, i64 %25 %switch.load = load i64, ptr %switch.gep, align 8 ; invoke concrete_fft::fft_simd::init_wt invoke fastcc void @_ZN12concrete_fft8fft_simd7init_wt17ha286b79974ecae66E(i64 noundef %switch.load, i64 noundef %n, ptr noalias noundef nonnull align 8 %_0.sroa.0.0.i27.i64, i64 noundef %count, ptr noalias noundef nonnull align 8 %_0.sroa.0.0.i27.i34, i64 noundef %count) to label %bb22 unwind label %cleanup10 cleanup10: ; preds = %switch.lookup %26 = landingpad { ptr, i32 } cleanup br i1 %9, label %bb26, label %bb24 bb22: ; preds = %switch.lookup store <2 x ptr> %8, ptr %_0, align 8 %27 = getelementptr inbounds %"ordered::Plan", ptr %_0, i64 0, i32 2 store ptr %_0.sroa.0.0.i27.i64, ptr %27, align 8 %28 = getelementptr inbounds %"ordered::Plan", ptr %_0, i64 0, i32 2, i32 0, i32 0, i32 1 store i64 %count, ptr %28, align 8 %29 = getelementptr inbounds %"ordered::Plan", ptr %_0, i64 0, i32 3 store ptr %_0.sroa.0.0.i27.i34, ptr %29, align 8 %30 = getelementptr inbounds %"ordered::Plan", ptr %_0, i64 0, i32 3, i32 0, i32 0, i32 1 store i64 %count, ptr %30, align 8 %31 = getelementptr inbounds %"ordered::Plan", ptr %_0, i64 0, i32 4 store i8 %algo.0, ptr %31, align 8 ret void bb26: ; preds = %cleanup10, %bb1.i.i.i.i, %bb1.i.i.i, %cleanup %.pn.pn = phi { ptr, i32 } [ %12, %cleanup ], [ %12, %bb1.i.i.i ], [ %.pn59, %bb1.i.i.i.i ], [ %26, %cleanup10 ] resume { ptr, i32 } %.pn.pn } ; concrete_fft::ordered::Plan::fft_scratch ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define { i64, i64 } @_ZN12concrete_fft7ordered4Plan11fft_scratch17h2fc51c6c2b561e84E(ptr noalias nocapture noundef readonly align 8 dereferenceable(56) %self) unnamed_addr #11 { start: %0 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 2, i32 0, i32 0, i32 1 %self.1 = load i64, ptr %0, align 8, !noundef !3 %_18.1.i = icmp ugt i64 %self.1, 2305843009213693951 %_0.sroa.0.0.i = select i1 %_18.1.i, i64 0, i64 128 %1 = shl i64 %self.1, 3 %_18.0.i = and i64 %1, -16 %2 = insertvalue { i64, i64 } poison, i64 %_0.sroa.0.0.i, 0 %3 = insertvalue { i64, i64 } %2, i64 %_18.0.i, 1 ret { i64, i64 } %3 } ; concrete_fft::ordered::Plan::fwd ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft7ordered4Plan3fwd17h317350dc6c2738bbE(ptr noalias nocapture noundef readonly align 8 dereferenceable(56) %self, ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 1 %stack.0, i64 noundef %stack.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_24.i.i.i = alloca i64, align 8 %_15.i.i.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i = alloca i64, align 8 %remaining_len.i.i.i = alloca i64, align 8 %_12.i5.i.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i = alloca i64, align 8 %align.i.i.i = alloca i64, align 8 %len.i.i.i = alloca i64, align 8 %0 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 2 %self.0 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3 %1 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 2, i32 0, i32 0, i32 1 %self.1 = load i64, ptr %1, align 8, !noundef !3 %n4 = lshr i64 %self.1, 1 %addr.i.i.i = ptrtoint ptr %stack.0 to i64 %_9.i.i.i = add i64 %addr.i.i.i, 127 %aligned_address.i.i.i = and i64 %_9.i.i.i, -128 %byte_offset.i.i.i = sub i64 %aligned_address.i.i.i, %addr.i.i.i %_12.i.i.i = icmp ult i64 %byte_offset.i.i.i, 128 tail call void @llvm.assume(i1 %_12.i.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6379 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6379 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6379 store i64 %stack.1, ptr %len.i.i.i, align 8, !noalias !6388 store i64 128, ptr %align.i.i.i, align 8, !noalias !6388 store i64 %byte_offset.i.i.i, ptr %align_offset.i.i.i, align 8, !noalias !6388 %_4.not.i.i.i = icmp ugt i64 %byte_offset.i.i.i, %stack.1 br i1 %_4.not.i.i.i, label %bb2.i.i.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i bb2.i.i.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i), !noalias !6388 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i), !noalias !6388 store ptr %align.i.i.i, ptr %_12.i5.i.i, align 8, !noalias !6388 %2 = getelementptr inbounds i8, ptr %_12.i5.i.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %2, align 8, !noalias !6388 %3 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1 store ptr %align_offset.i.i.i, ptr %3, align 8, !noalias !6388 %4 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %4, align 8, !noalias !6388 %5 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2 store ptr %len.i.i.i, ptr %5, align 8, !noalias !6388 %6 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %6, align 8, !noalias !6388 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i, align 8, !noalias !6388 %7 = getelementptr inbounds i8, ptr %_8.i.i.i, i64 8 store i64 4, ptr %7, align 8, !noalias !6388 %8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 2 store ptr null, ptr %8, align 8, !noalias !6388 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1 store ptr %_12.i5.i.i, ptr %9, align 8, !noalias !6388 %10 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1, i32 1 store i64 3, ptr %10, align 8, !noalias !6388 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_60a524fb834afd57f307b7d04603d463) #22, !noalias !6391 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6379 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6379 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6379 %len1.i.i = sub i64 %stack.1, %byte_offset.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6379 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6379 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6379 store i64 %len1.i.i, ptr %remaining_len.i.i.i, align 8, !noalias !6392 store i64 %n4, ptr %array_len.i.i.i, align 8, !noalias !6392 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i, align 8, !noalias !6392 %11 = getelementptr inbounds i8, ptr %type_name.i.i.i, i64 8 store i64 25, ptr %11, align 8, !noalias !6392 %_71.i.i.i = lshr i64 %len1.i.i, 4 %_6.not.i.i.i = icmp ult i64 %_71.i.i.i, %n4 br i1 %_6.not.i.i.i, label %bb4.i.i.i, label %bb7 bb4.i.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i), !noalias !6392 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i), !noalias !6392 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i), !noalias !6392 %12 = shl i64 %n4, 4 store i64 %12, ptr %_24.i.i.i, align 8, !noalias !6392 store ptr %type_name.i.i.i, ptr %_15.i.i.i, align 8, !noalias !6392 %13 = getelementptr inbounds i8, ptr %_15.i.i.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %13, align 8, !noalias !6392 %14 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1 store ptr %remaining_len.i.i.i, ptr %14, align 8, !noalias !6392 %15 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %15, align 8, !noalias !6392 %16 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2 store ptr %array_len.i.i.i, ptr %16, align 8, !noalias !6392 %17 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %17, align 8, !noalias !6392 %18 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3 store ptr %_24.i.i.i, ptr %18, align 8, !noalias !6392 %19 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %19, align 8, !noalias !6392 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i, align 8, !noalias !6392 %20 = getelementptr inbounds i8, ptr %_11.i.i.i, i64 8 store i64 5, ptr %20, align 8, !noalias !6392 %21 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 2 store ptr null, ptr %21, align 8, !noalias !6392 %22 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1 store ptr %_15.i.i.i, ptr %22, align 8, !noalias !6392 %23 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1, i32 1 store i64 4, ptr %23, align 8, !noalias !6392 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_60a524fb834afd57f307b7d04603d463) #22, !noalias !6391 unreachable bb7: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6379 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6379 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6379 %data2.i.i = getelementptr inbounds i8, ptr %stack.0, i64 %byte_offset.i.i.i %24 = getelementptr inbounds %"num_complex::Complex", ptr %self.0, i64 %n4 %25 = sub i64 %self.1, %n4 %_12 = load ptr, ptr %self, align 8, !nonnull !3, !noundef !3 tail call void %_12(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %data2.i.i, i64 noundef %n4, ptr noalias noundef nonnull readonly align 8 %self.0, i64 noundef %n4, ptr noalias noundef nonnull readonly align 8 %24, i64 noundef %25) ret void } ; concrete_fft::ordered::Plan::inv ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft7ordered4Plan3inv17h7f52c2a67e0b31a9E(ptr noalias nocapture noundef readonly align 8 dereferenceable(56) %self, ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 1 %stack.0, i64 noundef %stack.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_24.i.i.i = alloca i64, align 8 %_15.i.i.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i = alloca i64, align 8 %remaining_len.i.i.i = alloca i64, align 8 %_12.i5.i.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i = alloca i64, align 8 %align.i.i.i = alloca i64, align 8 %len.i.i.i = alloca i64, align 8 %0 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 2, i32 0, i32 0, i32 1 %self.1 = load i64, ptr %0, align 8, !noundef !3 %n6 = lshr i64 %self.1, 1 %addr.i.i.i = ptrtoint ptr %stack.0 to i64 %_9.i.i.i = add i64 %addr.i.i.i, 127 %aligned_address.i.i.i = and i64 %_9.i.i.i, -128 %byte_offset.i.i.i = sub i64 %aligned_address.i.i.i, %addr.i.i.i %_12.i.i.i = icmp ult i64 %byte_offset.i.i.i, 128 tail call void @llvm.assume(i1 %_12.i.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6395 store i64 %stack.1, ptr %len.i.i.i, align 8, !noalias !6404 store i64 128, ptr %align.i.i.i, align 8, !noalias !6404 store i64 %byte_offset.i.i.i, ptr %align_offset.i.i.i, align 8, !noalias !6404 %_4.not.i.i.i = icmp ugt i64 %byte_offset.i.i.i, %stack.1 br i1 %_4.not.i.i.i, label %bb2.i.i.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i bb2.i.i.i: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i), !noalias !6404 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i), !noalias !6404 store ptr %align.i.i.i, ptr %_12.i5.i.i, align 8, !noalias !6404 %1 = getelementptr inbounds i8, ptr %_12.i5.i.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %1, align 8, !noalias !6404 %2 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1 store ptr %align_offset.i.i.i, ptr %2, align 8, !noalias !6404 %3 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %3, align 8, !noalias !6404 %4 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2 store ptr %len.i.i.i, ptr %4, align 8, !noalias !6404 %5 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %5, align 8, !noalias !6404 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i, align 8, !noalias !6404 %6 = getelementptr inbounds i8, ptr %_8.i.i.i, i64 8 store i64 4, ptr %6, align 8, !noalias !6404 %7 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 2 store ptr null, ptr %7, align 8, !noalias !6404 %8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1 store ptr %_12.i5.i.i, ptr %8, align 8, !noalias !6404 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1, i32 1 store i64 3, ptr %9, align 8, !noalias !6404 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3446e1dc06b48e31ed98466b344bc684) #22, !noalias !6407 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6395 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6395 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6395 %len1.i.i = sub i64 %stack.1, %byte_offset.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6395 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6395 store i64 %len1.i.i, ptr %remaining_len.i.i.i, align 8, !noalias !6408 store i64 %n6, ptr %array_len.i.i.i, align 8, !noalias !6408 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i, align 8, !noalias !6408 %10 = getelementptr inbounds i8, ptr %type_name.i.i.i, i64 8 store i64 25, ptr %10, align 8, !noalias !6408 %_71.i.i.i = lshr i64 %len1.i.i, 4 %_6.not.i.i.i = icmp ult i64 %_71.i.i.i, %n6 br i1 %_6.not.i.i.i, label %bb4.i.i.i, label %bb7 bb4.i.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i), !noalias !6408 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i), !noalias !6408 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i), !noalias !6408 %11 = shl i64 %n6, 4 store i64 %11, ptr %_24.i.i.i, align 8, !noalias !6408 store ptr %type_name.i.i.i, ptr %_15.i.i.i, align 8, !noalias !6408 %12 = getelementptr inbounds i8, ptr %_15.i.i.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %12, align 8, !noalias !6408 %13 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1 store ptr %remaining_len.i.i.i, ptr %13, align 8, !noalias !6408 %14 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %14, align 8, !noalias !6408 %15 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2 store ptr %array_len.i.i.i, ptr %15, align 8, !noalias !6408 %16 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %16, align 8, !noalias !6408 %17 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3 store ptr %_24.i.i.i, ptr %17, align 8, !noalias !6408 %18 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %18, align 8, !noalias !6408 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i, align 8, !noalias !6408 %19 = getelementptr inbounds i8, ptr %_11.i.i.i, i64 8 store i64 5, ptr %19, align 8, !noalias !6408 %20 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 2 store ptr null, ptr %20, align 8, !noalias !6408 %21 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1 store ptr %_15.i.i.i, ptr %21, align 8, !noalias !6408 %22 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1, i32 1 store i64 4, ptr %22, align 8, !noalias !6408 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_3446e1dc06b48e31ed98466b344bc684) #22, !noalias !6407 unreachable bb7: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6395 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6395 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6395 %data2.i.i = getelementptr inbounds i8, ptr %stack.0, i64 %byte_offset.i.i.i %23 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 3, i32 0, i32 0, i32 1 %self.14 = load i64, ptr %23, align 8, !noundef !3 %mid7 = lshr i64 %self.14, 1 %24 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 3 %self.03 = load ptr, ptr %24, align 8, !nonnull !3, !noundef !3 %25 = getelementptr inbounds %"num_complex::Complex", ptr %self.03, i64 %mid7 %26 = sub i64 %self.14, %mid7 %27 = getelementptr inbounds %"ordered::Plan", ptr %self, i64 0, i32 1 %_12 = load ptr, ptr %27, align 8, !nonnull !3, !noundef !3 tail call void %_12(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 8 %data2.i.i, i64 noundef %n6, ptr noalias noundef nonnull readonly align 8 %self.03, i64 noundef %mid7, ptr noalias noundef nonnull readonly align 8 %25, i64 noundef %26) ret void } ; concrete_fft::unordered::fwd_depth ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @_ZN12concrete_fft9unordered9fwd_depth17h1f12811e1aba27a9E(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1, ptr nocapture noundef nonnull readonly %base_fn, i64 noundef %base_n, ptr noalias noundef nonnull align 8 %base_scratch.0, i64 noundef %base_scratch.1, ptr nocapture noundef nonnull readonly %fwd_process_x2, ptr nocapture noundef nonnull readonly %fwd_process_x4, ptr nocapture noundef nonnull readonly %fwd_process_x8) unnamed_addr #8 { start: %_4.i = alloca %"core::fmt::Arguments<'_>", align 8 %_48 = alloca %"core::fmt::Arguments<'_>", align 8 %_10 = icmp eq i64 %z.1, %base_n br i1 %_10, label %bb1, label %bb2 bb2: ; preds = %start %_17 = shl i64 %base_n, 1 %_16 = icmp eq i64 %_17, %z.1 br i1 %_16, label %bb29, label %bb4 bb1: ; preds = %start %mid639 = lshr i64 %w.1, 1 %0 = getelementptr inbounds %"num_complex::Complex", ptr %w.0, i64 %mid639 %1 = sub i64 %w.1, %mid639 tail call void %base_fn(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull align 8 %base_scratch.0, i64 noundef %base_scratch.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %mid639, ptr noalias noundef nonnull readonly align 8 %0, i64 noundef %1) br label %bb21 bb4: ; preds = %bb2 %_19 = shl i64 %base_n, 2 %_18 = icmp eq i64 %_19, %z.1 %2 = select i1 %_18, i64 2, i64 3 %3 = lshr i64 %z.1, %2 %4 = select i1 %_18, i64 3, i64 7 %5 = mul i64 %3, %4 %.not = icmp ugt i64 %5, %w.1 br i1 %.not, label %bb27, label %bb25 bb27: ; preds = %bb29, %bb4 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_48) store ptr @alloc_2b3e40161faa82f936e1f97ea2aea002, ptr %_48, align 8 %6 = getelementptr inbounds i8, ptr %_48, i64 8 store i64 1, ptr %6, align 8 %7 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_48, i64 0, i32 2 store ptr null, ptr %7, align 8 %8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_48, i64 0, i32 1 store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %8, align 8 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_48, i64 0, i32 1, i32 1 store i64 0, ptr %9, align 8 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_48, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_b14aed5dae6705c6de901d98465c8f68) #22 unreachable bb25: ; preds = %bb4 %10 = getelementptr inbounds %"num_complex::Complex", ptr %w.0, i64 %5 br i1 %_18, label %bb11, label %bb12 bb12: ; preds = %bb25 tail call void %fwd_process_x8(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %5) br label %bb14 bb11: ; preds = %bb25 tail call void %fwd_process_x4(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %5) br label %bb14 bb14: ; preds = %bb12, %bb11, %bb30 %pair2.sroa.0.1 = phi ptr [ %17, %bb30 ], [ %10, %bb11 ], [ %10, %bb12 ] %.pn = phi i64 [ %16, %bb30 ], [ %5, %bb11 ], [ %5, %bb12 ] %m.1 = phi i64 [ %16, %bb30 ], [ %3, %bb11 ], [ %3, %bb12 ] %pair2.sroa.5.1 = sub i64 %w.1, %.pn %11 = icmp eq i64 %m.1, 0 br i1 %11, label %bb2.i, label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" bb2.i: ; preds = %bb14 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4.i), !noalias !6411 store ptr @alloc_1f6e2bb373e6c20cda1457c91e8d33ed, ptr %_4.i, align 8, !noalias !6411 %12 = getelementptr inbounds i8, ptr %_4.i, i64 8 store i64 1, ptr %12, align 8, !noalias !6411 %13 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i, i64 0, i32 2 store ptr null, ptr %13, align 8, !noalias !6411 %14 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i, i64 0, i32 1 store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %14, align 8, !noalias !6411 %15 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i, i64 0, i32 1, i32 1 store i64 0, ptr %15, align 8, !noalias !6411 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_4.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9a9a72bdc5573320e6bf177353a05dbd) #22, !noalias !6416 unreachable "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit": ; preds = %bb14 %rem.i = urem i64 %z.1, %m.1 %fst_len.i = sub nuw i64 %z.1, %rem.i %_2.i47 = icmp ult i64 %fst_len.i, %m.1 br i1 %_2.i47, label %bb21, label %bb18 bb29: ; preds = %bb2 %16 = lshr i64 %z.1, 1 %.not38 = icmp ugt i64 %16, %w.1 br i1 %.not38, label %bb27, label %bb30 bb30: ; preds = %bb29 %17 = getelementptr inbounds %"num_complex::Complex", ptr %w.0, i64 %16 tail call void %fwd_process_x2(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %16) br label %bb14 bb18: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit", %bb18 %iter.sroa.7.049 = phi i64 [ %len1.i.i, %bb18 ], [ %fst_len.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" ] %iter.sroa.4.048 = phi ptr [ %tail.i.i, %bb18 ], [ %z.0, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" ] %len1.i.i = sub i64 %iter.sroa.7.049, %m.1 %tail.i.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.sroa.4.048, i64 %m.1 ; call concrete_fft::unordered::fwd_depth tail call fastcc void @_ZN12concrete_fft9unordered9fwd_depth17h1f12811e1aba27a9E(ptr noalias noundef nonnull align 8 %iter.sroa.4.048, i64 noundef %m.1, ptr noalias noundef nonnull readonly align 8 %pair2.sroa.0.1, i64 noundef %pair2.sroa.5.1, ptr noundef nonnull %base_fn, i64 noundef %base_n, ptr noalias noundef nonnull align 8 %base_scratch.0, i64 noundef %base_scratch.1, ptr noundef nonnull %fwd_process_x2, ptr noundef nonnull %fwd_process_x4, ptr noundef nonnull %fwd_process_x8) %_2.i = icmp ult i64 %len1.i.i, %m.1 br i1 %_2.i, label %bb21, label %bb18 bb21: ; preds = %bb18, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit", %bb1 ret void } ; concrete_fft::unordered::inv_depth ; Function Attrs: noinline nonlazybind uwtable define internal fastcc void @_ZN12concrete_fft9unordered9inv_depth17h8e989f8d58729d6eE(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %w.1, ptr nocapture noundef nonnull readonly %base_fn, i64 noundef %base_n, ptr noalias noundef nonnull align 8 %base_scratch.0, i64 noundef %base_scratch.1, ptr nocapture noundef nonnull readonly %inv_process_x2, ptr nocapture noundef nonnull readonly %inv_process_x4, ptr nocapture noundef nonnull readonly %inv_process_x8) unnamed_addr #8 { start: %_4.i = alloca %"core::fmt::Arguments<'_>", align 8 %_48 = alloca %"core::fmt::Arguments<'_>", align 8 %_10 = icmp eq i64 %z.1, %base_n br i1 %_10, label %bb1, label %bb2 bb2: ; preds = %start %_17 = shl i64 %base_n, 1 %_16 = icmp ne i64 %_17, %z.1 %_19 = shl i64 %base_n, 2 %_18 = icmp eq i64 %_19, %z.1 %0 = and i1 %_16, %_18 %1 = select i1 %_18, i64 3, i64 7 %2 = select i1 %_18, i64 2, i64 3 %3 = select i1 %_16, i64 %2, i64 1 %m14 = lshr i64 %z.1, %3 %_26 = select i1 %_16, i64 %1, i64 1 %_25 = mul i64 %m14, %_26 %_50.not = icmp ugt i64 %_25, %w.1 br i1 %_50.not, label %bb28, label %bb26 bb1: ; preds = %start %mid39 = lshr i64 %w.1, 1 %4 = getelementptr inbounds %"num_complex::Complex", ptr %w.0, i64 %mid39 %5 = sub i64 %w.1, %mid39 tail call void %base_fn(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull align 8 %base_scratch.0, i64 noundef %base_scratch.1, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %mid39, ptr noalias noundef nonnull readonly align 8 %4, i64 noundef %5) br label %bb22 bb28: ; preds = %bb2 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_48) store ptr @alloc_2b3e40161faa82f936e1f97ea2aea002, ptr %_48, align 8 %6 = getelementptr inbounds i8, ptr %_48, i64 8 store i64 1, ptr %6, align 8 %7 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_48, i64 0, i32 2 store ptr null, ptr %7, align 8 %8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_48, i64 0, i32 1 store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %8, align 8 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_48, i64 0, i32 1, i32 1 store i64 0, ptr %9, align 8 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_48, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_65bf8e6758aaa52f95ca455c714c2e91) #22 unreachable bb26: ; preds = %bb2 %mid = sub i64 %w.1, %_25 %10 = getelementptr inbounds %"num_complex::Complex", ptr %w.0, i64 %mid %11 = icmp eq i64 %m14, 0 br i1 %11, label %bb2.i, label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" bb2.i: ; preds = %bb26 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4.i), !noalias !6417 store ptr @alloc_1f6e2bb373e6c20cda1457c91e8d33ed, ptr %_4.i, align 8, !noalias !6417 %12 = getelementptr inbounds i8, ptr %_4.i, i64 8 store i64 1, ptr %12, align 8, !noalias !6417 %13 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i, i64 0, i32 2 store ptr null, ptr %13, align 8, !noalias !6417 %14 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i, i64 0, i32 1 store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %14, align 8, !noalias !6417 %15 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i, i64 0, i32 1, i32 1 store i64 0, ptr %15, align 8, !noalias !6417 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_4.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_9f3a19f0643858dc45576d8a9a7d0ac7) #22, !noalias !6422 unreachable "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit": ; preds = %bb26 %rem.i = urem i64 %z.1, %m14 %fst_len.i = sub nuw i64 %z.1, %rem.i %_2.i15 = icmp ult i64 %fst_len.i, %m14 br i1 %_2.i15, label %bb14, label %bb13 bb14: ; preds = %bb13, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" br i1 %_16, label %bb17, label %bb16 bb13: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit", %bb13 %iter.sroa.7.017 = phi i64 [ %len1.i.i, %bb13 ], [ %fst_len.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" ] %iter.sroa.4.016 = phi ptr [ %tail.i.i, %bb13 ], [ %z.0, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E.exit" ] %len1.i.i = sub i64 %iter.sroa.7.017, %m14 %tail.i.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.sroa.4.016, i64 %m14 ; call concrete_fft::unordered::inv_depth tail call fastcc void @_ZN12concrete_fft9unordered9inv_depth17h8e989f8d58729d6eE(ptr noalias noundef nonnull align 8 %iter.sroa.4.016, i64 noundef %m14, ptr noalias noundef nonnull readonly align 8 %w.0, i64 noundef %mid, ptr noundef nonnull %base_fn, i64 noundef %base_n, ptr noalias noundef nonnull align 8 %base_scratch.0, i64 noundef %base_scratch.1, ptr noundef nonnull %inv_process_x2, ptr noundef nonnull %inv_process_x4, ptr noundef nonnull %inv_process_x8) %_2.i = icmp ult i64 %len1.i.i, %m14 br i1 %_2.i, label %bb14, label %bb13 bb16: ; preds = %bb14 tail call void %inv_process_x2(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %10, i64 noundef %_25) br label %bb22 bb17: ; preds = %bb14 br i1 %0, label %bb18, label %bb19 bb18: ; preds = %bb17 tail call void %inv_process_x4(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %10, i64 noundef %_25) br label %bb22 bb19: ; preds = %bb17 tail call void %inv_process_x8(ptr noalias noundef nonnull align 8 %z.0, i64 noundef %z.1, ptr noalias noundef nonnull readonly align 8 %10, i64 noundef %_25) br label %bb22 bb22: ; preds = %bb16, %bb19, %bb18, %bb1 ret void } ; ::fmt ; Function Attrs: nonlazybind uwtable define noundef zeroext i1 @"_ZN66_$LT$concrete_fft..unordered..Plan$u20$as$u20$core..fmt..Debug$GT$3fmt17h995b214d23ef1f32E"(ptr noalias noundef readonly align 8 dereferenceable(152) %self, ptr noalias noundef align 8 dereferenceable(64) %f) unnamed_addr #0 { start: %_18 = alloca i64, align 8 %_7 = alloca %"core::fmt::builders::DebugStruct<'_, '_>", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_7) ; call core::fmt::Formatter::debug_struct call void @_ZN4core3fmt9Formatter12debug_struct17hd73751d7fb4f2f1fE(ptr noalias nocapture noundef nonnull sret(%"core::fmt::builders::DebugStruct<'_, '_>") align 8 dereferenceable(16) %_7, ptr noalias noundef nonnull align 8 dereferenceable(64) %f, ptr noalias noundef nonnull readonly align 1 @alloc_3e79479e97db69285ea6f953d78f10f9, i64 noundef 4) %_11 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 14 ; call core::fmt::builders::DebugStruct::field %_5 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17hd8ccd7f398ada389E(ptr noalias noundef nonnull align 8 dereferenceable(16) %_7, ptr noalias noundef nonnull readonly align 1 @alloc_23aaf07ea6675c54f5a006c735776ed9, i64 noundef 9, ptr noundef nonnull align 1 %_11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.3) %_14 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 12 ; call core::fmt::builders::DebugStruct::field %_4 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17hd8ccd7f398ada389E(ptr noalias noundef nonnull align 8 dereferenceable(16) %_5, ptr noalias noundef nonnull readonly align 1 @alloc_aa8ef6711671480af422804f2087ae0a, i64 noundef 9, ptr noundef nonnull align 1 %_14, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.4) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_18) %0 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 13 %1 = load i64, ptr %0, align 8, !noundef !3 store i64 %1, ptr %_18, align 8 ; call core::fmt::builders::DebugStruct::field %_3 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17hd8ccd7f398ada389E(ptr noalias noundef nonnull align 8 dereferenceable(16) %_4, ptr noalias noundef nonnull readonly align 1 @alloc_91a1caf18117f9d24e09981586d01594, i64 noundef 8, ptr noundef nonnull align 1 %_18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.4) ; call core::fmt::builders::DebugStruct::finish %_0 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17hbeda9600f5f5968bE(ptr noalias noundef nonnull align 8 dereferenceable(16) %_3) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_18) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_7) ret i1 %_0 } ; concrete_fft::unordered::Plan::new ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft9unordered4Plan3new17h0e00385d94bb7a76E(ptr noalias nocapture noundef writeonly sret(%"unordered::Plan") align 8 dereferenceable(152) %_0, i64 noundef %n, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %method) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_76.i = alloca %"core::fmt::Arguments<'_>", align 8 %_76.i.sroa.gep718 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_76.i, i64 0, i32 1, i32 1 %_76.i.sroa.gep715 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_76.i, i64 0, i32 1 %_76.i.sroa.gep712 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_76.i, i64 0, i32 2 %_76.i.sroa.gep = getelementptr inbounds i8, ptr %_76.i, i64 8 %_69.i = alloca %"core::fmt::Arguments<'_>", align 8 %_69.i.sroa.gep719 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_69.i, i64 0, i32 1, i32 1 %_69.i.sroa.gep716 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_69.i, i64 0, i32 1 %_69.i.sroa.gep713 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_69.i, i64 0, i32 2 %_69.i.sroa.gep = getelementptr inbounds i8, ptr %_69.i, i64 8 %_10.i.i.i48 = alloca %"core::fmt::Arguments<'_>", align 8 %_10.i.i.i48.sroa.gep710 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_10.i.i.i48, i64 0, i32 1, i32 1 %_10.i.i.i48.sroa.gep702 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_10.i.i.i48, i64 0, i32 1 %_10.i.i.i48.sroa.gep694 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_10.i.i.i48, i64 0, i32 2 %_10.i.i.i48.sroa.gep = getelementptr inbounds i8, ptr %_10.i.i.i48, i64 8 %_24.i.i.i.i132.i = alloca i64, align 8 %_15.i.i.i.i133.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i.i134.i = alloca %"core::fmt::Arguments<'_>", align 8 %_11.i.i.i.i134.i.sroa.gep709 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i134.i, i64 0, i32 1, i32 1 %_11.i.i.i.i134.i.sroa.gep701 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i134.i, i64 0, i32 1 %_11.i.i.i.i134.i.sroa.gep693 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i134.i, i64 0, i32 2 %_11.i.i.i.i134.i.sroa.gep = getelementptr inbounds i8, ptr %_11.i.i.i.i134.i, i64 8 %type_name.i.i.i.i135.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i.i136.i = alloca i64, align 8 %remaining_len.i.i.i.i137.i = alloca i64, align 8 %_12.i5.i.i.i138.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i.i139.i = alloca %"core::fmt::Arguments<'_>", align 8 %_8.i.i.i.i139.i.sroa.gep708 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i139.i, i64 0, i32 1, i32 1 %_8.i.i.i.i139.i.sroa.gep700 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i139.i, i64 0, i32 1 %_8.i.i.i.i139.i.sroa.gep692 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i139.i, i64 0, i32 2 %_8.i.i.i.i139.i.sroa.gep = getelementptr inbounds i8, ptr %_8.i.i.i.i139.i, i64 8 %align_offset.i.i.i.i140.i = alloca i64, align 8 %align.i.i.i.i141.i = alloca i64, align 8 %len.i.i.i.i142.i = alloca i64, align 8 %_24.i.i.i.i100.i = alloca i64, align 8 %_15.i.i.i.i101.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i.i102.i = alloca %"core::fmt::Arguments<'_>", align 8 %_11.i.i.i.i102.i.sroa.gep707 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i102.i, i64 0, i32 1, i32 1 %_11.i.i.i.i102.i.sroa.gep699 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i102.i, i64 0, i32 1 %_11.i.i.i.i102.i.sroa.gep691 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i102.i, i64 0, i32 2 %_11.i.i.i.i102.i.sroa.gep = getelementptr inbounds i8, ptr %_11.i.i.i.i102.i, i64 8 %type_name.i.i.i.i103.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i.i104.i = alloca i64, align 8 %remaining_len.i.i.i.i105.i = alloca i64, align 8 %_12.i5.i.i.i106.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i.i107.i = alloca %"core::fmt::Arguments<'_>", align 8 %_8.i.i.i.i107.i.sroa.gep706 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i107.i, i64 0, i32 1, i32 1 %_8.i.i.i.i107.i.sroa.gep698 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i107.i, i64 0, i32 1 %_8.i.i.i.i107.i.sroa.gep690 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i107.i, i64 0, i32 2 %_8.i.i.i.i107.i.sroa.gep = getelementptr inbounds i8, ptr %_8.i.i.i.i107.i, i64 8 %align_offset.i.i.i.i108.i = alloca i64, align 8 %align.i.i.i.i109.i = alloca i64, align 8 %len.i.i.i.i110.i = alloca i64, align 8 %_24.i.i.i.i.i = alloca i64, align 8 %_15.i.i.i.i.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %_11.i.i.i.i.i.sroa.gep705 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i.i, i64 0, i32 1, i32 1 %_11.i.i.i.i.i.sroa.gep697 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i.i, i64 0, i32 1 %_11.i.i.i.i.i.sroa.gep689 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i.i.i, i64 0, i32 2 %_11.i.i.i.i.i.sroa.gep = getelementptr inbounds i8, ptr %_11.i.i.i.i.i, i64 8 %type_name.i.i.i.i.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i.i.i = alloca i64, align 8 %remaining_len.i.i.i.i.i = alloca i64, align 8 %_12.i5.i.i.i.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %_8.i.i.i.i.i.sroa.gep704 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i.i, i64 0, i32 1, i32 1 %_8.i.i.i.i.i.sroa.gep696 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i.i, i64 0, i32 1 %_8.i.i.i.i.i.sroa.gep688 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i.i.i, i64 0, i32 2 %_8.i.i.i.i.i.sroa.gep = getelementptr inbounds i8, ptr %_8.i.i.i.i.i, i64 8 %align_offset.i.i.i.i.i = alloca i64, align 8 %align.i.i.i.i.i = alloca i64, align 8 %len.i.i.i.i.i = alloca i64, align 8 %now.i = alloca %"std::time::Instant", align 8 %_40.i = alloca [2 x ptr], align 8 %_30.i = alloca { i8, [7 x i8], %"core::time::Duration" }, align 8 %avg_durations.i = alloca [4 x %"core::option::Option"], align 8 %algos.i = alloca [4 x i8], align 4 %bases.i = alloca [2 x i64], align 8 %_9.i = alloca { i8, [7 x i8], %"core::time::Duration" }, align 8 %_29 = alloca [2 x ptr], align 16 %_25 = alloca %"dyn_stack::mem::GlobalPodBuffer", align 8 %0 = tail call i64 @llvm.ctpop.i64(i64 %n), !range !750 %1 = icmp eq i64 %0, 1 br i1 %1, label %bb1, label %bb2 bb1: ; preds = %start %2 = load i8, ptr %method, align 8, !range !6423, !noundef !3 %trunc.not = icmp eq i8 %2, 0 br i1 %trunc.not, label %bb4, label %bb3 bb2: ; preds = %start ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf, i64 noundef 37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_1033ffd84d1a6b0873949db14c2eaee6) #22 unreachable bb4: ; preds = %bb1 %3 = getelementptr inbounds %"unordered::Method::UserProvided", ptr %method, i64 0, i32 1 %base_algo11 = load i8, ptr %3, align 1, !range !6293, !noundef !3 %4 = getelementptr inbounds %"unordered::Method::UserProvided", ptr %method, i64 0, i32 3 %base_n = load i64, ptr %4, align 8, !noundef !3 %5 = tail call i64 @llvm.ctpop.i64(i64 %base_n), !range !750 %6 = icmp eq i64 %5, 1 br i1 %6, label %bb5, label %bb6 bb3: ; preds = %bb1 %7 = getelementptr inbounds %"unordered::Method::Measure", ptr %method, i64 0, i32 1 %duration.0 = load i64, ptr %7, align 8, !noundef !3 %8 = getelementptr inbounds %"unordered::Method::Measure", ptr %method, i64 0, i32 1, i32 1 %duration.1 = load i32, ptr %8, align 8, !range !6424, !noundef !3 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %_25) %_2.i = icmp ult i64 %n, 513 br i1 %_2.i, label %bb1.i, label %bb2.i bb2.i: ; preds = %bb3 ; call dyn_stack::stack_req::unwrap %_8.i.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef 1, i64 131072) ; call dyn_stack::stack_req::unwrap %_8.i4.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef 1, i64 65536) ; call dyn_stack::stack_req::round_up_pow2 %self.i.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i.i.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i4.i.i, i64 noundef 128) %9 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i.i.i, i64 %rhs.i.i.i) %_28.1.i.i.i = extractvalue { i64, i1 } %9, 1 %not._28.1.i.i.i = xor i1 %_28.1.i.i.i, true %_11.sroa.0.0.i.i.i = zext i1 %not._28.1.i.i.i to i64 %_28.0.i.i.i = extractvalue { i64, i1 } %9, 0 ; call dyn_stack::stack_req::unwrap %_10.i.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i.i.i, i64 %_28.0.i.i.i) ; call dyn_stack::stack_req::unwrap %_8.i8.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef 1, i64 65536) ; call dyn_stack::stack_req::round_up_pow2 %self.i9.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_10.i.i.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i10.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i8.i.i, i64 noundef 128) %10 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i9.i.i, i64 %rhs.i10.i.i) %_28.1.i11.i.i = extractvalue { i64, i1 } %10, 1 %not._28.1.i12.i.i = xor i1 %_28.1.i11.i.i, true %_11.sroa.0.0.i13.i.i = zext i1 %not._28.1.i12.i.i to i64 %_28.0.i14.i.i = extractvalue { i64, i1 } %10, 0 ; call dyn_stack::stack_req::unwrap %_10.i15.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i13.i.i, i64 %_28.0.i14.i.i) %_7.i = add i64 %n, 4096 %_21.1.i.i = icmp ult i64 %_7.i, 1152921504606846976 %_9.sroa.0.0.i.i = zext i1 %_21.1.i.i to i64 %_21.0.i.i = shl i64 %_7.i, 4 ; call dyn_stack::stack_req::unwrap %_8.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_9.sroa.0.0.i.i, i64 %_21.0.i.i) ; call dyn_stack::stack_req::round_up_pow2 %self.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_10.i15.i.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i.i, i64 noundef 128) %11 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i.i, i64 %rhs.i.i) %_28.1.i.i = extractvalue { i64, i1 } %11, 1 %not._28.1.i.i = xor i1 %_28.1.i.i, true %_11.sroa.0.0.i.i = zext i1 %not._28.1.i.i to i64 %_28.0.i.i = extractvalue { i64, i1 } %11, 0 ; call dyn_stack::stack_req::unwrap %_10.i.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i.i, i64 %_28.0.i.i) %_21.1.i2.i = icmp ult i64 %n, 1152921504606846976 %_9.sroa.0.0.i3.i = zext i1 %_21.1.i2.i to i64 %_21.0.i4.i = shl i64 %n, 4 ; call dyn_stack::stack_req::unwrap %_8.i5.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_9.sroa.0.0.i3.i, i64 %_21.0.i4.i) ; call dyn_stack::stack_req::round_up_pow2 %self.i7.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_10.i.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i8.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i5.i, i64 noundef 128) %12 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i7.i, i64 %rhs.i8.i) %_28.1.i9.i = extractvalue { i64, i1 } %12, 1 %not._28.1.i10.i = xor i1 %_28.1.i9.i, true %_11.sroa.0.0.i11.i = zext i1 %not._28.1.i10.i to i64 %_28.0.i12.i = extractvalue { i64, i1 } %12, 0 ; call dyn_stack::stack_req::unwrap %_10.i13.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i11.i, i64 %_28.0.i12.i) ; call dyn_stack::stack_req::unwrap %_8.i14.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef 1, i64 65536) ; call dyn_stack::stack_req::round_up_pow2 %self.i16.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_10.i13.i, i64 noundef 128) ; call dyn_stack::stack_req::round_up_pow2 %rhs.i17.i = tail call noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef %_8.i14.i, i64 noundef 128) %13 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %self.i16.i, i64 %rhs.i17.i) %_28.1.i18.i = extractvalue { i64, i1 } %13, 1 %not._28.1.i19.i = xor i1 %_28.1.i18.i, true %_11.sroa.0.0.i20.i = zext i1 %not._28.1.i19.i to i64 %_28.0.i21.i = extractvalue { i64, i1 } %13, 0 ; call dyn_stack::stack_req::unwrap %_10.i22.i = tail call noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef %_11.sroa.0.0.i20.i, i64 %_28.0.i21.i) %14 = insertvalue { i64, i64 } { i64 128, i64 poison }, i64 %_10.i22.i, 1 br label %_ZN12concrete_fft9unordered23measure_fastest_scratch17hf9014b5f4291ab5cE.exit bb1.i: ; preds = %bb3 ; call concrete_fft::ordered::measure_fastest_scratch %15 = tail call fastcc { i64, i64 } @_ZN12concrete_fft7ordered23measure_fastest_scratch17h58dfbb2aaf288113E(i64 noundef %n) br label %_ZN12concrete_fft9unordered23measure_fastest_scratch17hf9014b5f4291ab5cE.exit _ZN12concrete_fft9unordered23measure_fastest_scratch17hf9014b5f4291ab5cE.exit: ; preds = %bb2.i, %bb1.i %.pn.i = phi { i64, i64 } [ %15, %bb1.i ], [ %14, %bb2.i ] %_26.0 = extractvalue { i64, i64 } %.pn.i, 0 %_26.1 = extractvalue { i64, i64 } %.pn.i, 1 ; call dyn_stack::mem::GlobalPodBuffer::new call void @_ZN9dyn_stack3mem15GlobalPodBuffer3new17h0bc965e576176338E(ptr noalias nocapture noundef nonnull sret(%"dyn_stack::mem::GlobalPodBuffer") align 8 dereferenceable(24) %_25, i64 noundef %_26.0, i64 noundef %_26.1) %self12 = load ptr, ptr %_25, align 8, !nonnull !3, !noundef !3 %16 = getelementptr inbounds %"dyn_stack::mem::GlobalMemBuffer", ptr %_25, i64 0, i32 1 %len = load i64, ptr %16, align 8, !noundef !3 tail call void @llvm.experimental.noalias.scope.decl(metadata !6425) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %bases.i) %_12.i.i.i.i = icmp eq i64 %duration.0, 0 %spec.select11.i.i = tail call i32 @llvm.umax.i32(i32 %duration.1, i32 1000000) %17 = select i1 %_12.i.i.i.i, i32 %spec.select11.i.i, i32 %duration.1 %_6.i = icmp ult i64 %n, 257 br i1 %_6.i, label %bb1.i50, label %bb3.i bb3.i: ; preds = %_ZN12concrete_fft9unordered23measure_fastest_scratch17hf9014b5f4291ab5cE.exit store i64 512, ptr %bases.i, align 8, !noalias !6428 %18 = getelementptr inbounds [2 x i64], ptr %bases.i, i64 0, i64 1 store i64 1024, ptr %18, align 8, !noalias !6428 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %algos.i), !noalias !6428 store i32 134744072, ptr %algos.i, align 4, !noalias !6428 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %avg_durations.i), !noalias !6428 %19 = getelementptr inbounds [4 x %"core::option::Option"], ptr %avg_durations.i, i64 0, i64 0, i32 1 store i32 1000000000, ptr %19, align 8, !noalias !6428 %20 = getelementptr inbounds [4 x %"core::option::Option"], ptr %avg_durations.i, i64 0, i64 1, i32 1 store i32 1000000000, ptr %20, align 8, !noalias !6428 %21 = getelementptr inbounds [4 x %"core::option::Option"], ptr %avg_durations.i, i64 0, i64 2, i32 1 store i32 1000000000, ptr %21, align 8, !noalias !6428 %22 = getelementptr inbounds [4 x %"core::option::Option"], ptr %avg_durations.i, i64 0, i64 3, i32 1 store i32 1000000000, ptr %22, align 8, !noalias !6428 %23 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6428 %_3.i.i.i = icmp eq i8 %23, -1 br i1 %_3.i.i.i, label %bb1.i.i.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i.i bb1.i50: ; preds = %_ZN12concrete_fft9unordered23measure_fastest_scratch17hf9014b5f4291ab5cE.exit call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %_9.i), !noalias !6428 ; invoke concrete_fft::ordered::measure_fastest invoke fastcc void @_ZN12concrete_fft7ordered15measure_fastest17h4f1bd38e78c4e9b4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %_9.i, i64 noundef %duration.0, i32 noundef %17, i64 noundef %n, ptr noalias noundef nonnull align 1 %self12, i64 noundef %len) to label %.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp .noexc: ; preds = %bb1.i50 %algo.i = load i8, ptr %_9.i, align 8, !range !6293, !noalias !6428, !noundef !3 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %_9.i), !noalias !6428 br label %bb17 bb1.i.i.i: ; preds = %bb3.i ; invoke pulp::x86::V4::__detect_is_available %_5.i.i.i51 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i.i.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp _5.i.i.i.noexc: ; preds = %bb1.i.i.i %24 = zext i1 %_5.i.i.i51 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i.i: ; preds = %_5.i.i.i.noexc, %bb3.i %available.0.i.i.i = phi i8 [ %24, %_5.i.i.i.noexc ], [ %23, %bb3.i ] %_0.i.not.i.i = icmp eq i8 %available.0.i.i.i, 0 br i1 %_0.i.not.i.i, label %bb2.i.i, label %_ZN12concrete_fft9unordered18get_fwd_process_x217h7b1fd36dbf7f3015E.exit.i bb2.i.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i.i %25 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6428 %_3.i1.i.i = icmp eq i8 %25, -1 br i1 %_3.i1.i.i, label %bb1.i4.i.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i.i bb1.i4.i.i: ; preds = %bb2.i.i ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i.i52 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.i.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp _5.i5.i.i.noexc: ; preds = %bb1.i4.i.i %26 = zext i1 %_5.i5.i.i52 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i.i: ; preds = %_5.i5.i.i.noexc, %bb2.i.i %available.0.i2.i.i = phi i8 [ %26, %_5.i5.i.i.noexc ], [ %25, %bb2.i.i ] %_0.i3.not.i.i = icmp eq i8 %available.0.i2.i.i, 0 %spec.select.i.i = select i1 %_0.i3.not.i.i, ptr @_ZN4core3ops8function6FnOnce9call_once17h8627f190de1074bfE, ptr @_ZN4core3ops8function6FnOnce9call_once17h958f24fcb64f21a5E br label %_ZN12concrete_fft9unordered18get_fwd_process_x217h7b1fd36dbf7f3015E.exit.i _ZN12concrete_fft9unordered18get_fwd_process_x217h7b1fd36dbf7f3015E.exit.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i.i, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i.i %_0.0.i.i = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17hc5f42ab7708c828bE, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i.i ], [ %spec.select.i.i, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i.i ] %27 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6428 %_3.i.i68.i = icmp eq i8 %27, -1 br i1 %_3.i.i68.i, label %bb1.i.i81.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i69.i bb1.i.i81.i: ; preds = %_ZN12concrete_fft9unordered18get_fwd_process_x217h7b1fd36dbf7f3015E.exit.i ; invoke pulp::x86::V4::__detect_is_available %_5.i.i82.i53 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i82.i.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp _5.i.i82.i.noexc: ; preds = %bb1.i.i81.i %28 = zext i1 %_5.i.i82.i53 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i69.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i69.i: ; preds = %_5.i.i82.i.noexc, %_ZN12concrete_fft9unordered18get_fwd_process_x217h7b1fd36dbf7f3015E.exit.i %available.0.i.i70.i = phi i8 [ %28, %_5.i.i82.i.noexc ], [ %27, %_ZN12concrete_fft9unordered18get_fwd_process_x217h7b1fd36dbf7f3015E.exit.i ] %_0.i.not.i71.i = icmp eq i8 %available.0.i.i70.i, 0 br i1 %_0.i.not.i71.i, label %bb2.i73.i, label %_ZN12concrete_fft9unordered18get_fwd_process_x417h08693980c8355e80E.exit.i bb2.i73.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i69.i %29 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6428 %_3.i1.i74.i = icmp eq i8 %29, -1 br i1 %_3.i1.i74.i, label %bb1.i4.i79.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i75.i bb1.i4.i79.i: ; preds = %bb2.i73.i ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i80.i54 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i80.i.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp _5.i5.i80.i.noexc: ; preds = %bb1.i4.i79.i %30 = zext i1 %_5.i5.i80.i54 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i75.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i75.i: ; preds = %_5.i5.i80.i.noexc, %bb2.i73.i %available.0.i2.i76.i = phi i8 [ %30, %_5.i5.i80.i.noexc ], [ %29, %bb2.i73.i ] %_0.i3.not.i77.i = icmp eq i8 %available.0.i2.i76.i, 0 %spec.select.i78.i = select i1 %_0.i3.not.i77.i, ptr @_ZN4core3ops8function6FnOnce9call_once17h2cebb053acc32075E, ptr @_ZN4core3ops8function6FnOnce9call_once17h4a5102123bb237f3E br label %_ZN12concrete_fft9unordered18get_fwd_process_x417h08693980c8355e80E.exit.i _ZN12concrete_fft9unordered18get_fwd_process_x417h08693980c8355e80E.exit.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i75.i, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i69.i %_0.0.i72.i = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17h71ef7fd3ea55d378E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i69.i ], [ %spec.select.i78.i, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i75.i ] %31 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1, !noalias !6428 %_3.i.i83.i = icmp eq i8 %31, -1 br i1 %_3.i.i83.i, label %bb1.i.i96.i, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i84.i bb1.i.i96.i: ; preds = %_ZN12concrete_fft9unordered18get_fwd_process_x417h08693980c8355e80E.exit.i ; invoke pulp::x86::V4::__detect_is_available %_5.i.i97.i55 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i97.i.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp _5.i.i97.i.noexc: ; preds = %bb1.i.i96.i %32 = zext i1 %_5.i.i97.i55 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i84.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i84.i: ; preds = %_5.i.i97.i.noexc, %_ZN12concrete_fft9unordered18get_fwd_process_x417h08693980c8355e80E.exit.i %available.0.i.i85.i = phi i8 [ %32, %_5.i.i97.i.noexc ], [ %31, %_ZN12concrete_fft9unordered18get_fwd_process_x417h08693980c8355e80E.exit.i ] %_0.i.not.i86.i = icmp eq i8 %available.0.i.i85.i, 0 br i1 %_0.i.not.i86.i, label %bb2.i88.i, label %bb9.lr.ph.i bb2.i88.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i84.i %33 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1, !noalias !6428 %_3.i1.i89.i = icmp eq i8 %33, -1 br i1 %_3.i1.i89.i, label %bb1.i4.i94.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i90.i bb1.i4.i94.i: ; preds = %bb2.i88.i ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i95.i56 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i95.i.noexc unwind label %cleanup.loopexit.split-lp.loopexit.split-lp _5.i5.i95.i.noexc: ; preds = %bb1.i4.i94.i %34 = zext i1 %_5.i5.i95.i56 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i90.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i90.i: ; preds = %_5.i5.i95.i.noexc, %bb2.i88.i %available.0.i2.i91.i = phi i8 [ %34, %_5.i5.i95.i.noexc ], [ %33, %bb2.i88.i ] %_0.i3.not.i92.i = icmp eq i8 %available.0.i2.i91.i, 0 %spec.select.i93.i = select i1 %_0.i3.not.i92.i, ptr @_ZN4core3ops8function6FnOnce9call_once17h8fb3d64614ebdcf8E, ptr @_ZN4core3ops8function6FnOnce9call_once17h9dcd09aca5020000E br label %bb9.lr.ph.i bb9.lr.ph.i: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i90.i, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i84.i %_0.0.i87.i = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17h98a2e0d7bc7ecf11E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i84.i ], [ %spec.select.i93.i, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i90.i ] %35 = getelementptr inbounds { i8, [7 x i8], %"core::time::Duration" }, ptr %_30.i, i64 0, i32 2 %36 = getelementptr inbounds { i8, [7 x i8], %"core::time::Duration" }, ptr %_30.i, i64 0, i32 2, i32 1 %addr.i.i.i.i.i = ptrtoint ptr %self12 to i64 %_9.i.i.i.i.i = add i64 %addr.i.i.i.i.i, 127 %aligned_address.i.i.i.i.i = and i64 %_9.i.i.i.i.i, -128 %byte_offset.i.i.i.i.i = sub i64 %aligned_address.i.i.i.i.i, %addr.i.i.i.i.i %_12.i.i.i.i.i = icmp ult i64 %byte_offset.i.i.i.i.i, 128 %_4.not.i.i.i.i.i = icmp ugt i64 %byte_offset.i.i.i.i.i, %len %len1.i.i.i.i = sub i64 %len, %byte_offset.i.i.i.i.i %37 = getelementptr inbounds i8, ptr %type_name.i.i.i.i.i, i64 8 %_71.i.i.i.i.i = lshr i64 %len1.i.i.i.i, 4 %data2.i.i.i.i = getelementptr inbounds i8, ptr %self12, i64 %byte_offset.i.i.i.i.i %38 = getelementptr inbounds i8, ptr %type_name.i.i.i.i103.i, i64 8 %39 = getelementptr inbounds i8, ptr %type_name.i.i.i.i135.i, i64 8 %begin_len.i.i.i155.i = shl i64 %n, 4 %_104.i = uitofp i64 %duration.0 to double %_107.i = uitofp i32 %17 to double %_106.i = fdiv double %_107.i, 1.000000e+09 %_53.i = fadd double %_106.i, %_104.i %40 = getelementptr inbounds i8, ptr %now.i, i64 8 %_27.i424 = icmp ult i64 %n, 512 br i1 %_27.i424, label %bb64.i.invoke, label %bb13.i.preheader bb13.i.preheader: ; preds = %bb9.lr.ph.i %_27.i = icmp ult i64 %n, 1024 br label %bb13.i "_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heb4484828ad56c1eE.exit.i": ; preds = %bb9.i br i1 %_27.i424, label %bb64.i.invoke, label %bb58.thread.i bb5.i2.i.i: ; preds = %bb7.backedge.i %_30.i.i.i = getelementptr inbounds %"core::option::Option", ptr %avg_durations.i, i64 1 call void @llvm.experimental.noalias.scope.decl(metadata !6430) call void @llvm.experimental.noalias.scope.decl(metadata !6433) call void @llvm.experimental.noalias.scope.decl(metadata !6435) call void @llvm.experimental.noalias.scope.decl(metadata !6438) %_3.val.i.i.i.i.i.i.i.i = load i64, ptr %avg_durations.i, align 8, !alias.scope !6440, !noalias !6441 %_3.val1.i.i.i.i.i.i.i.i = load i32, ptr %19, align 8, !range !6292, !alias.scope !6440, !noalias !6441, !noundef !3 %_4.val.i.i.i.i.i.i.i.i = load i64, ptr %_30.i.i.i, align 8, !alias.scope !6442, !noalias !6443 %41 = getelementptr inbounds %"core::option::Option", ptr %avg_durations.i, i64 1, i32 1 %_4.val2.i.i.i.i.i.i.i.i = load i32, ptr %41, align 8, !range !6292, !alias.scope !6442, !noalias !6443, !noundef !3 %42 = icmp ne i32 %_3.val1.i.i.i.i.i.i.i.i, 1000000000 %43 = icmp ne i32 %_4.val2.i.i.i.i.i.i.i.i, 1000000000 %44 = xor i1 %42, true %_15.i.i.i.i.i.i.i.i.i = and i1 %43, %44 br i1 %_15.i.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i", label %bb8.i.i.i.i.i.i.i.i.i bb8.i.i.i.i.i.i.i.i.i: ; preds = %bb5.i2.i.i %45 = xor i1 %42, %43 br i1 %45, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i", label %bb9.i.i.i.i.i.i.i.i.i bb9.i.i.i.i.i.i.i.i.i: ; preds = %bb8.i.i.i.i.i.i.i.i.i %brmerge.not.i.i.i.i.i.i.i.i.i = and i1 %42, %43 %_9.i.i.i.i.i.i.i.i.i.i = icmp uge i64 %_3.val.i.i.i.i.i.i.i.i, %_4.val.i.i.i.i.i.i.i.i %or.cond.not.i.i.i.i.i = select i1 %brmerge.not.i.i.i.i.i.i.i.i.i, i1 %_9.i.i.i.i.i.i.i.i.i.i, i1 false br i1 %or.cond.not.i.i.i.i.i, label %bb4.i.i.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" bb4.i.i.i.i.i.i.i.i.i.i: ; preds = %bb9.i.i.i.i.i.i.i.i.i %_12.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %_3.val.i.i.i.i.i.i.i.i, %_4.val.i.i.i.i.i.i.i.i br i1 %_12.i.i.i.i.i.i.i.i.i.i, label %bb5.i.i.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" bb5.i.i.i.i.i.i.i.i.i.i: ; preds = %bb4.i.i.i.i.i.i.i.i.i.i %_15.i.i.i.i.i.i.i.i.i.i = icmp ult i32 %_3.val1.i.i.i.i.i.i.i.i, %_4.val2.i.i.i.i.i.i.i.i br i1 %_15.i.i.i.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i", label %bb8.i.i.i.i.i.i.i.i.i.i bb8.i.i.i.i.i.i.i.i.i.i: ; preds = %bb5.i.i.i.i.i.i.i.i.i.i %_18.i.i.i.i.i.not.not.i.i.i.i.i = icmp eq i32 %_3.val1.i.i.i.i.i.i.i.i, %_4.val2.i.i.i.i.i.i.i.i %46 = select i1 %_18.i.i.i.i.i.not.not.i.i.i.i.i, ptr %avg_durations.i, ptr %_30.i.i.i br label %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" "_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i": ; preds = %bb8.i.i.i.i.i.i.i.i.i.i, %bb5.i.i.i.i.i.i.i.i.i.i, %bb4.i.i.i.i.i.i.i.i.i.i, %bb9.i.i.i.i.i.i.i.i.i, %bb8.i.i.i.i.i.i.i.i.i, %bb5.i2.i.i %_0.0.i.i.i.i.i.i.i.i.i = phi ptr [ %avg_durations.i, %bb5.i2.i.i ], [ %_30.i.i.i, %bb8.i.i.i.i.i.i.i.i.i ], [ %avg_durations.i, %bb9.i.i.i.i.i.i.i.i.i ], [ %_30.i.i.i, %bb4.i.i.i.i.i.i.i.i.i.i ], [ %46, %bb8.i.i.i.i.i.i.i.i.i.i ], [ %avg_durations.i, %bb5.i.i.i.i.i.i.i.i.i.i ] %_163319.i = getelementptr inbounds %"core::option::Option", ptr %avg_durations.i, i64 2 %47 = getelementptr inbounds i8, ptr %_0.0.i.i.i.i.i.i.i.i.i, i64 8 %48 = load i32, ptr %47, align 8, !range !6292, !noalias !6428, !noundef !3 %49 = icmp eq i32 %48, 1000000000 br i1 %49, label %bb64.i.invoke, label %bb6.lr.ph.i.i bb9.i: ; preds = %bb7.backedge.i br i1 %_27.i, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heb4484828ad56c1eE.exit.i", label %bb13.i bb13.i: ; preds = %bb13.i.preheader, %bb9.i %_0.i.i.i.i427 = phi i64 [ 1024, %bb9.i ], [ 512, %bb13.i.preheader ] %n_algos.0261.i426 = phi i64 [ 1, %bb9.i ], [ 0, %bb13.i.preheader ] %_6.not.i.i.i425 = phi i1 [ true, %bb9.i ], [ false, %bb13.i.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %_30.i), !noalias !6428 ; invoke concrete_fft::ordered::measure_fastest invoke fastcc void @_ZN12concrete_fft7ordered15measure_fastest17h4f1bd38e78c4e9b4E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %_30.i, i64 noundef %duration.0, i32 noundef %17, i64 noundef %_0.i.i.i.i427, ptr noalias noundef nonnull align 1 %self12, i64 noundef %len) to label %.noexc57 unwind label %cleanup.loopexit.split-lp.loopexit .noexc57: ; preds = %bb13.i %base_algo.i = load i8, ptr %_30.i, align 8, !range !6293, !noalias !6428, !noundef !3 %50 = load i64, ptr %35, align 8, !noalias !6428, !noundef !3 %51 = load i32, ptr %36, align 8, !range !6424, !noalias !6428, !noundef !3 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %_30.i), !noalias !6428 %52 = getelementptr inbounds [4 x i8], ptr %algos.i, i64 0, i64 %n_algos.0261.i426 store i8 %base_algo.i, ptr %52, align 1, !noalias !6428 %_36.i = icmp eq i64 %_0.i.i.i.i427, %n br i1 %_36.i, label %bb15.i, label %bb16.i bb16.i: ; preds = %.noexc57 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_40.i), !noalias !6428 ; invoke concrete_fft::ordered::get_fn_ptr invoke fastcc void @_ZN12concrete_fft7ordered10get_fn_ptr17h345a513ed1ede784E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(16) %_40.i, i8 noundef %base_algo.i, i64 noundef %_0.i.i.i.i427) to label %.noexc58 unwind label %cleanup.loopexit.split-lp.loopexit .noexc58: ; preds = %bb16.i %base_fn.i = load ptr, ptr %_40.i, align 8, !noalias !6428, !nonnull !3, !noundef !3 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_40.i), !noalias !6428 %_46.i = add i64 %_0.i.i.i.i427, %n call void @llvm.experimental.noalias.scope.decl(metadata !6446) call void @llvm.assume(i1 %_12.i.i.i.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i.i.i), !noalias !6449 store i64 %len, ptr %len.i.i.i.i.i, align 8, !noalias !6460 store i64 128, ptr %align.i.i.i.i.i, align 8, !noalias !6460 store i64 %byte_offset.i.i.i.i.i, ptr %align_offset.i.i.i.i.i, align 8, !noalias !6460 br i1 %_4.not.i.i.i.i.i, label %bb2.i.i.i.i.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i.i bb2.i.i.i.i.i: ; preds = %.noexc58 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i.i.i), !noalias !6460 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i.i.i), !noalias !6460 store ptr %align.i.i.i.i.i, ptr %_12.i5.i.i.i.i, align 8, !noalias !6460 %53 = getelementptr inbounds i8, ptr %_12.i5.i.i.i.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %53, align 8, !noalias !6460 %54 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i.i, i64 0, i64 1 store ptr %align_offset.i.i.i.i.i, ptr %54, align 8, !noalias !6460 %55 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %55, align 8, !noalias !6460 %56 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i.i, i64 0, i64 2 store ptr %len.i.i.i.i.i, ptr %56, align 8, !noalias !6460 %57 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %57, align 8, !noalias !6460 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i.i.i, align 8, !noalias !6460 br label %bb5.i.i.i.invoke _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i.i: ; preds = %.noexc58 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i.i), !noalias !6449 store i64 %len1.i.i.i.i, ptr %remaining_len.i.i.i.i.i, align 8, !noalias !6463 store i64 %_46.i, ptr %array_len.i.i.i.i.i, align 8, !noalias !6463 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i.i.i, align 8, !noalias !6463 store i64 25, ptr %37, align 8, !noalias !6463 %_6.not.i.i.i.i.i = icmp ult i64 %_71.i.i.i.i.i, %_46.i %58 = shl i64 %_46.i, 4 br i1 %_6.not.i.i.i.i.i, label %bb4.i.i.i.i.i, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i.i bb4.i.i.i.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i.i.i), !noalias !6463 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i.i.i), !noalias !6463 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i.i.i), !noalias !6463 store i64 %58, ptr %_24.i.i.i.i.i, align 8, !noalias !6463 store ptr %type_name.i.i.i.i.i, ptr %_15.i.i.i.i.i, align 8, !noalias !6463 %59 = getelementptr inbounds i8, ptr %_15.i.i.i.i.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %59, align 8, !noalias !6463 %60 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i.i, i64 0, i64 1 store ptr %remaining_len.i.i.i.i.i, ptr %60, align 8, !noalias !6463 %61 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %61, align 8, !noalias !6463 %62 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i.i, i64 0, i64 2 store ptr %array_len.i.i.i.i.i, ptr %62, align 8, !noalias !6463 %63 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %63, align 8, !noalias !6463 %64 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i.i, i64 0, i64 3 store ptr %_24.i.i.i.i.i, ptr %64, align 8, !noalias !6463 %65 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %65, align 8, !noalias !6463 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i.i.i, align 8, !noalias !6463 br label %bb5.i.i.i.invoke _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i.i.i), !noalias !6449 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i.i), !noalias !6449 %66 = icmp eq i64 %_46.i, 0 br i1 %66, label %bb18.i, label %bb3.preheader.i.i.i bb3.preheader.i.i.i: ; preds = %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i.i call void @llvm.memset.p0.i64(ptr nonnull align 8 %data2.i.i.i.i, i8 0, i64 %58, i1 false), !alias.scope !6466, !noalias !6469 br label %bb18.i bb18.i: ; preds = %bb3.preheader.i.i.i, %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit.i.i %mid_len.i.i.i.i = sub i64 %len1.i.i.i.i, %58 %mid.i.i.i.i = getelementptr inbounds i8, ptr %data2.i.i.i.i, i64 %58 call void @llvm.experimental.noalias.scope.decl(metadata !6470) %addr.i.i.i.i111.i = ptrtoint ptr %mid.i.i.i.i to i64 %_9.i.i.i.i112.i = add i64 %addr.i.i.i.i111.i, 127 %aligned_address.i.i.i.i113.i = and i64 %_9.i.i.i.i112.i, -128 %byte_offset.i.i.i.i114.i = sub i64 %aligned_address.i.i.i.i113.i, %addr.i.i.i.i111.i %_12.i.i.i.i115.i = icmp ult i64 %byte_offset.i.i.i.i114.i, 128 call void @llvm.assume(i1 %_12.i.i.i.i115.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i.i108.i), !noalias !6473 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i.i109.i), !noalias !6473 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i.i110.i), !noalias !6473 store i64 %mid_len.i.i.i.i, ptr %len.i.i.i.i110.i, align 8, !noalias !6484 store i64 128, ptr %align.i.i.i.i109.i, align 8, !noalias !6484 store i64 %byte_offset.i.i.i.i114.i, ptr %align_offset.i.i.i.i108.i, align 8, !noalias !6484 %_4.not.i.i.i.i116.i = icmp ugt i64 %byte_offset.i.i.i.i114.i, %mid_len.i.i.i.i br i1 %_4.not.i.i.i.i116.i, label %bb2.i.i.i.i128.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i117.i bb2.i.i.i.i128.i: ; preds = %bb18.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i.i107.i), !noalias !6484 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i.i106.i), !noalias !6484 store ptr %align.i.i.i.i109.i, ptr %_12.i5.i.i.i106.i, align 8, !noalias !6484 %67 = getelementptr inbounds i8, ptr %_12.i5.i.i.i106.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %67, align 8, !noalias !6484 %68 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i106.i, i64 0, i64 1 store ptr %align_offset.i.i.i.i108.i, ptr %68, align 8, !noalias !6484 %69 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i106.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %69, align 8, !noalias !6484 %70 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i106.i, i64 0, i64 2 store ptr %len.i.i.i.i110.i, ptr %70, align 8, !noalias !6484 %71 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i106.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %71, align 8, !noalias !6484 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i.i107.i, align 8, !noalias !6484 br label %bb5.i.i.i.invoke _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i117.i: ; preds = %bb18.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i.i108.i), !noalias !6473 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i.i109.i), !noalias !6473 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i.i110.i), !noalias !6473 %len1.i.i.i118.i = sub i64 %mid_len.i.i.i.i, %byte_offset.i.i.i.i114.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i.i103.i), !noalias !6473 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i.i104.i), !noalias !6473 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i105.i), !noalias !6473 store i64 %len1.i.i.i118.i, ptr %remaining_len.i.i.i.i105.i, align 8, !noalias !6487 store i64 %_0.i.i.i.i427, ptr %array_len.i.i.i.i104.i, align 8, !noalias !6487 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i.i103.i, align 8, !noalias !6487 store i64 25, ptr %38, align 8, !noalias !6487 %_71.i.i.i.i119.i = lshr i64 %len1.i.i.i118.i, 4 %_6.not.i.i.i.i120.i = icmp ult i64 %_71.i.i.i.i119.i, %_0.i.i.i.i427 br i1 %_6.not.i.i.i.i120.i, label %bb4.i.i.i.i127.i, label %bb19.i bb4.i.i.i.i127.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i117.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i.i102.i), !noalias !6487 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i.i101.i), !noalias !6487 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i.i100.i), !noalias !6487 %72 = shl nuw nsw i64 %_0.i.i.i.i427, 4 store i64 %72, ptr %_24.i.i.i.i100.i, align 8, !noalias !6487 store ptr %type_name.i.i.i.i103.i, ptr %_15.i.i.i.i101.i, align 8, !noalias !6487 %73 = getelementptr inbounds i8, ptr %_15.i.i.i.i101.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %73, align 8, !noalias !6487 %74 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i101.i, i64 0, i64 1 store ptr %remaining_len.i.i.i.i105.i, ptr %74, align 8, !noalias !6487 %75 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i101.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %75, align 8, !noalias !6487 %76 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i101.i, i64 0, i64 2 store ptr %array_len.i.i.i.i104.i, ptr %76, align 8, !noalias !6487 %77 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i101.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %77, align 8, !noalias !6487 %78 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i101.i, i64 0, i64 3 store ptr %_24.i.i.i.i100.i, ptr %78, align 8, !noalias !6487 %79 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i101.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %79, align 8, !noalias !6487 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i.i102.i, align 8, !noalias !6487 br label %bb5.i.i.i.invoke bb19.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i117.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i.i103.i), !noalias !6473 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i.i104.i), !noalias !6473 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i105.i), !noalias !6473 %data2.i.i.i122.i = getelementptr inbounds i8, ptr %mid.i.i.i.i, i64 %byte_offset.i.i.i.i114.i %begin_len.i.i.i123.i = shl nuw nsw i64 %_0.i.i.i.i427, 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %data2.i.i.i122.i, i8 0, i64 %begin_len.i.i.i123.i, i1 false), !alias.scope !6490, !noalias !6493 %mid_len.i.i.i125.i = sub i64 %len1.i.i.i118.i, %begin_len.i.i.i123.i %mid.i.i.i126.i = getelementptr inbounds i8, ptr %data2.i.i.i122.i, i64 %begin_len.i.i.i123.i call void @llvm.experimental.noalias.scope.decl(metadata !6494) %addr.i.i.i.i143.i = ptrtoint ptr %mid.i.i.i126.i to i64 %_9.i.i.i.i144.i = add i64 %addr.i.i.i.i143.i, 127 %aligned_address.i.i.i.i145.i = and i64 %_9.i.i.i.i144.i, -128 %byte_offset.i.i.i.i146.i = sub i64 %aligned_address.i.i.i.i145.i, %addr.i.i.i.i143.i %_12.i.i.i.i147.i = icmp ult i64 %byte_offset.i.i.i.i146.i, 128 call void @llvm.assume(i1 %_12.i.i.i.i147.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i.i140.i), !noalias !6497 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i.i141.i), !noalias !6497 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i.i142.i), !noalias !6497 store i64 %mid_len.i.i.i125.i, ptr %len.i.i.i.i142.i, align 8, !noalias !6508 store i64 128, ptr %align.i.i.i.i141.i, align 8, !noalias !6508 store i64 %byte_offset.i.i.i.i146.i, ptr %align_offset.i.i.i.i140.i, align 8, !noalias !6508 %_4.not.i.i.i.i148.i = icmp ugt i64 %byte_offset.i.i.i.i146.i, %mid_len.i.i.i125.i br i1 %_4.not.i.i.i.i148.i, label %bb2.i.i.i.i160.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i149.i bb2.i.i.i.i160.i: ; preds = %bb19.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i.i139.i), !noalias !6508 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i.i138.i), !noalias !6508 store ptr %align.i.i.i.i141.i, ptr %_12.i5.i.i.i138.i, align 8, !noalias !6508 %80 = getelementptr inbounds i8, ptr %_12.i5.i.i.i138.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %80, align 8, !noalias !6508 %81 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i138.i, i64 0, i64 1 store ptr %align_offset.i.i.i.i140.i, ptr %81, align 8, !noalias !6508 %82 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i138.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %82, align 8, !noalias !6508 %83 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i138.i, i64 0, i64 2 store ptr %len.i.i.i.i142.i, ptr %83, align 8, !noalias !6508 %84 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i.i138.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %84, align 8, !noalias !6508 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i.i139.i, align 8, !noalias !6508 br label %bb5.i.i.i.invoke _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i149.i: ; preds = %bb19.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i.i140.i), !noalias !6497 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i.i141.i), !noalias !6497 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i.i142.i), !noalias !6497 %len1.i.i.i150.i = sub i64 %mid_len.i.i.i125.i, %byte_offset.i.i.i.i146.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i.i135.i), !noalias !6497 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i.i136.i), !noalias !6497 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i137.i), !noalias !6497 store i64 %len1.i.i.i150.i, ptr %remaining_len.i.i.i.i137.i, align 8, !noalias !6511 store i64 %n, ptr %array_len.i.i.i.i136.i, align 8, !noalias !6511 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i.i135.i, align 8, !noalias !6511 store i64 25, ptr %39, align 8, !noalias !6511 %_71.i.i.i.i151.i = lshr i64 %len1.i.i.i150.i, 4 %_6.not.i.i.i.i152.i = icmp ult i64 %_71.i.i.i.i151.i, %n br i1 %_6.not.i.i.i.i152.i, label %bb4.i.i.i.i159.i, label %bb21.i bb4.i.i.i.i159.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i149.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i.i134.i), !noalias !6511 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i.i133.i), !noalias !6511 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i.i132.i), !noalias !6511 store i64 %begin_len.i.i.i155.i, ptr %_24.i.i.i.i132.i, align 8, !noalias !6511 store ptr %type_name.i.i.i.i135.i, ptr %_15.i.i.i.i133.i, align 8, !noalias !6511 %85 = getelementptr inbounds i8, ptr %_15.i.i.i.i133.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %85, align 8, !noalias !6511 %86 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i133.i, i64 0, i64 1 store ptr %remaining_len.i.i.i.i137.i, ptr %86, align 8, !noalias !6511 %87 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i133.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %87, align 8, !noalias !6511 %88 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i133.i, i64 0, i64 2 store ptr %array_len.i.i.i.i136.i, ptr %88, align 8, !noalias !6511 %89 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i133.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %89, align 8, !noalias !6511 %90 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i133.i, i64 0, i64 3 store ptr %_24.i.i.i.i132.i, ptr %90, align 8, !noalias !6511 %91 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i.i133.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %91, align 8, !noalias !6511 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i.i134.i, align 8, !noalias !6511 br label %bb5.i.i.i.invoke bb21.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i.i149.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i.i135.i), !noalias !6497 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i.i136.i), !noalias !6497 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i.i137.i), !noalias !6497 %data2.i.i.i154.i = getelementptr inbounds i8, ptr %mid.i.i.i126.i, i64 %byte_offset.i.i.i.i146.i call void @llvm.memset.p0.i64(ptr nonnull align 8 %data2.i.i.i154.i, i8 0, i64 %begin_len.i.i.i155.i, i1 false), !alias.scope !6514, !noalias !6517 %_109.i = uitofp i64 %50 to double %_112.i = uitofp i32 %51 to double %_111.i = fdiv double %_112.i, 1.000000e+09 %_56.i = fadd double %_111.i, %_109.i %_59.i = udiv i64 %n, %_0.i.i.i.i427 %_58.i = uitofp i64 %_59.i to double %_55.i = fmul double %_56.i, %_58.i %n_runs.i = fdiv double %_53.i, %_55.i %92 = call double @llvm.ceil.f64(double %n_runs.i) %n_runs27.i = call i32 @llvm.fptoui.sat.i32.f64(double %92) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %now.i), !noalias !6428 ; invoke std::time::Instant::now %93 = invoke { i64, i32 } @_ZN3std4time7Instant3now17hab1b16cc3dc6aeddE() to label %.noexc65 unwind label %cleanup.loopexit.split-lp.loopexit .noexc65: ; preds = %bb21.i %94 = extractvalue { i64, i32 } %93, 0 %95 = extractvalue { i64, i32 } %93, 1 store i64 %94, ptr %now.i, align 8, !noalias !6428 store i32 %95, ptr %40, align 8, !noalias !6428 %_114233.not.i = icmp eq i32 %n_runs27.i, 0 br i1 %_114233.not.i, label %bb53.i, label %bb44.i bb1.i.i: ; preds = %.noexc71 ; invoke std::time::Instant::elapsed %96 = invoke { i64, i32 } @_ZN3std4time7Instant7elapsed17h553679d4e3b86f9fE(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %now.i) to label %.noexc67 unwind label %cleanup.loopexit.split-lp.loopexit .noexc67: ; preds = %bb1.i.i %duration.1.i = extractvalue { i64, i32 } %96, 1 %duration.0.i = extractvalue { i64, i32 } %96, 0 %_5.i.i = zext i32 %n_runs27.i to i64 %secs.i.i = udiv i64 %duration.0.i, %_5.i.i %extra_secs.i.i = urem i64 %duration.0.i, %_5.i.i %_16.i.i = mul nuw nsw i64 %extra_secs.i.i, 1000000000 %extra_nanos.i.i = urem i32 %duration.1.i, %n_runs27.i %_17.i.i = zext i32 %extra_nanos.i.i to i64 %_15.i.i = add nuw nsw i64 %_16.i.i, %_17.i.i %_9.i.i = udiv i32 %duration.1.i, %n_runs27.i %_14.i.i = udiv i64 %_15.i.i, %_5.i.i %_13.i.i = trunc i64 %_14.i.i to i32 %97 = add i32 %_9.i.i, %_13.i.i %_3.i.i164.i = icmp ult i32 %97, 1000000000 br i1 %_3.i.i164.i, label %bb29.i, label %bb2.i.i.i bb2.i.i.i: ; preds = %.noexc67 %_7.i.i.i = udiv i32 %97, 1000000000 %nanos2.i.i.i = urem i32 %97, 1000000000 %rhs.i.i.i49 = zext nneg i32 %_7.i.i.i to i64 %98 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %secs.i.i, i64 %rhs.i.i.i49) %_17.1.i.i.i = extractvalue { i64, i1 } %98, 1 br i1 %_17.1.i.i.i, label %bb5.i.i.i, label %bb6.i.i.i bb6.i.i.i: ; preds = %bb2.i.i.i %_17.0.i.i.i = extractvalue { i64, i1 } %98, 0 br label %bb29.i bb5.i.i.i: ; preds = %bb2.i.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_10.i.i.i48), !noalias !6428 store ptr @alloc_b7c1c22a954085a45dacf7c670d25258, ptr %_10.i.i.i48, align 8, !noalias !6428 br label %bb5.i.i.i.invoke bb5.i.i.i.invoke: ; preds = %bb2.i.i.i.i.i, %bb4.i.i.i.i.i, %bb2.i.i.i.i128.i, %bb4.i.i.i.i127.i, %bb2.i.i.i.i160.i, %bb4.i.i.i.i159.i, %bb5.i.i.i %_8.i.i.i.i.i.sink533 = phi ptr [ %_8.i.i.i.i.i, %bb2.i.i.i.i.i ], [ %_11.i.i.i.i.i, %bb4.i.i.i.i.i ], [ %_8.i.i.i.i107.i, %bb2.i.i.i.i128.i ], [ %_11.i.i.i.i102.i, %bb4.i.i.i.i127.i ], [ %_8.i.i.i.i139.i, %bb2.i.i.i.i160.i ], [ %_11.i.i.i.i134.i, %bb4.i.i.i.i159.i ], [ %_10.i.i.i48, %bb5.i.i.i ] %.sink531 = phi i64 [ 4, %bb2.i.i.i.i.i ], [ 5, %bb4.i.i.i.i.i ], [ 4, %bb2.i.i.i.i128.i ], [ 5, %bb4.i.i.i.i127.i ], [ 4, %bb2.i.i.i.i160.i ], [ 5, %bb4.i.i.i.i159.i ], [ 1, %bb5.i.i.i ] %_12.i5.i.i.i.i.sink = phi ptr [ %_12.i5.i.i.i.i, %bb2.i.i.i.i.i ], [ %_15.i.i.i.i.i, %bb4.i.i.i.i.i ], [ %_12.i5.i.i.i106.i, %bb2.i.i.i.i128.i ], [ %_15.i.i.i.i101.i, %bb4.i.i.i.i127.i ], [ %_12.i5.i.i.i138.i, %bb2.i.i.i.i160.i ], [ %_15.i.i.i.i133.i, %bb4.i.i.i.i159.i ], [ @alloc_513570631223a12912d85da2bec3b15a, %bb5.i.i.i ] %.sink = phi i64 [ 3, %bb2.i.i.i.i.i ], [ 4, %bb4.i.i.i.i.i ], [ 3, %bb2.i.i.i.i128.i ], [ 4, %bb4.i.i.i.i127.i ], [ 3, %bb2.i.i.i.i160.i ], [ 4, %bb4.i.i.i.i159.i ], [ 0, %bb5.i.i.i ] %99 = phi ptr [ @alloc_affb4e630a58f255ee027bf99bbb4b6f, %bb2.i.i.i.i.i ], [ @alloc_affb4e630a58f255ee027bf99bbb4b6f, %bb4.i.i.i.i.i ], [ @alloc_2ad520fd496b99c1e1cbfc94caa2e58a, %bb2.i.i.i.i128.i ], [ @alloc_2ad520fd496b99c1e1cbfc94caa2e58a, %bb4.i.i.i.i127.i ], [ @alloc_5ac6ed7eac038ea1d84c55755c287937, %bb2.i.i.i.i160.i ], [ @alloc_5ac6ed7eac038ea1d84c55755c287937, %bb4.i.i.i.i159.i ], [ @alloc_949a62a310af3b81c0d50e48c5b3f1ee, %bb5.i.i.i ] %_8.i.i.i.i.i.sink533.sroa.phi = phi ptr [ %_8.i.i.i.i.i.sroa.gep, %bb2.i.i.i.i.i ], [ %_11.i.i.i.i.i.sroa.gep, %bb4.i.i.i.i.i ], [ %_8.i.i.i.i107.i.sroa.gep, %bb2.i.i.i.i128.i ], [ %_11.i.i.i.i102.i.sroa.gep, %bb4.i.i.i.i127.i ], [ %_8.i.i.i.i139.i.sroa.gep, %bb2.i.i.i.i160.i ], [ %_11.i.i.i.i134.i.sroa.gep, %bb4.i.i.i.i159.i ], [ %_10.i.i.i48.sroa.gep, %bb5.i.i.i ] %_8.i.i.i.i.i.sink533.sroa.phi687 = phi ptr [ %_8.i.i.i.i.i.sroa.gep688, %bb2.i.i.i.i.i ], [ %_11.i.i.i.i.i.sroa.gep689, %bb4.i.i.i.i.i ], [ %_8.i.i.i.i107.i.sroa.gep690, %bb2.i.i.i.i128.i ], [ %_11.i.i.i.i102.i.sroa.gep691, %bb4.i.i.i.i127.i ], [ %_8.i.i.i.i139.i.sroa.gep692, %bb2.i.i.i.i160.i ], [ %_11.i.i.i.i134.i.sroa.gep693, %bb4.i.i.i.i159.i ], [ %_10.i.i.i48.sroa.gep694, %bb5.i.i.i ] %_8.i.i.i.i.i.sink533.sroa.phi695 = phi ptr [ %_8.i.i.i.i.i.sroa.gep696, %bb2.i.i.i.i.i ], [ %_11.i.i.i.i.i.sroa.gep697, %bb4.i.i.i.i.i ], [ %_8.i.i.i.i107.i.sroa.gep698, %bb2.i.i.i.i128.i ], [ %_11.i.i.i.i102.i.sroa.gep699, %bb4.i.i.i.i127.i ], [ %_8.i.i.i.i139.i.sroa.gep700, %bb2.i.i.i.i160.i ], [ %_11.i.i.i.i134.i.sroa.gep701, %bb4.i.i.i.i159.i ], [ %_10.i.i.i48.sroa.gep702, %bb5.i.i.i ] %_8.i.i.i.i.i.sink533.sroa.phi703 = phi ptr [ %_8.i.i.i.i.i.sroa.gep704, %bb2.i.i.i.i.i ], [ %_11.i.i.i.i.i.sroa.gep705, %bb4.i.i.i.i.i ], [ %_8.i.i.i.i107.i.sroa.gep706, %bb2.i.i.i.i128.i ], [ %_11.i.i.i.i102.i.sroa.gep707, %bb4.i.i.i.i127.i ], [ %_8.i.i.i.i139.i.sroa.gep708, %bb2.i.i.i.i160.i ], [ %_11.i.i.i.i134.i.sroa.gep709, %bb4.i.i.i.i159.i ], [ %_10.i.i.i48.sroa.gep710, %bb5.i.i.i ] store i64 %.sink531, ptr %_8.i.i.i.i.i.sink533.sroa.phi, align 8, !noalias !6428 store ptr null, ptr %_8.i.i.i.i.i.sink533.sroa.phi687, align 8, !noalias !6428 store ptr %_12.i5.i.i.i.i.sink, ptr %_8.i.i.i.i.i.sink533.sroa.phi695, align 8, !noalias !6428 store i64 %.sink, ptr %_8.i.i.i.i.i.sink533.sroa.phi703, align 8, !noalias !6428 ; invoke core::panicking::panic_fmt invoke void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i.i.i.sink533, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %99) #22 to label %bb5.i.i.i.cont unwind label %cleanup.loopexit.split-lp.loopexit.split-lp bb5.i.i.i.cont: ; preds = %bb5.i.i.i.invoke unreachable bb53.i: ; preds = %.noexc65 ; invoke std::time::Instant::elapsed %100 = invoke { i64, i32 } @_ZN3std4time7Instant7elapsed17h553679d4e3b86f9fE(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %now.i) to label %.noexc69 unwind label %cleanup.loopexit.split-lp.loopexit.split-lp .noexc69: ; preds = %bb53.i ; invoke core::option::expect_failed invoke void @_ZN4core6option13expect_failed17h6b420a15b93b0984E(ptr noalias noundef nonnull readonly align 1 @alloc_1f06c28544b05a0f88a3fc9c8bdd6a58, i64 noundef 53, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e2819e4bcbdfa757c30e329c57bd5691) #22 to label %.noexc70 unwind label %cleanup.loopexit.split-lp.loopexit.split-lp .noexc70: ; preds = %.noexc69 unreachable bb29.i: ; preds = %bb6.i.i.i, %.noexc67 %_0.sroa.3.0.i.ph.i = phi i32 [ %97, %.noexc67 ], [ %nanos2.i.i.i, %bb6.i.i.i ] %_0.sroa.0.0.i.ph.i = phi i64 [ %secs.i.i, %.noexc67 ], [ %_17.0.i.i.i, %bb6.i.i.i ] %101 = getelementptr inbounds [4 x %"core::option::Option"], ptr %avg_durations.i, i64 0, i64 %n_algos.0261.i426 store i64 %_0.sroa.0.0.i.ph.i, ptr %101, align 8, !noalias !6428 %102 = getelementptr inbounds i8, ptr %101, i64 8 store i32 %_0.sroa.3.0.i.ph.i, ptr %102, align 8, !noalias !6428 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %now.i), !noalias !6428 br label %bb7.backedge.i bb7.backedge.i: ; preds = %bb15.i, %bb29.i br i1 %_6.not.i.i.i425, label %bb5.i2.i.i, label %bb9.i bb44.i: ; preds = %.noexc65, %.noexc71 %iter3.sroa.0.0234.i = phi i32 [ %_0.i.i, %.noexc71 ], [ 0, %.noexc65 ] ; invoke concrete_fft::unordered::fwd_depth invoke fastcc void @_ZN12concrete_fft9unordered9fwd_depth17h1f12811e1aba27a9E(ptr noalias noundef nonnull align 8 %data2.i.i.i154.i, i64 noundef %n, ptr noalias noundef nonnull readonly align 8 %data2.i.i.i.i, i64 noundef %_46.i, ptr noundef nonnull %base_fn.i, i64 noundef %_0.i.i.i.i427, ptr noalias noundef nonnull align 8 %data2.i.i.i122.i, i64 noundef %_0.i.i.i.i427, ptr noundef nonnull %_0.0.i.i, ptr noundef nonnull %_0.0.i72.i, ptr noundef nonnull %_0.0.i87.i) to label %.noexc71 unwind label %cleanup.loopexit .noexc71: ; preds = %bb44.i %_0.i.i = add nuw i32 %iter3.sroa.0.0234.i, 1 %exitcond.not.i = icmp eq i32 %_0.i.i, %n_runs27.i br i1 %exitcond.not.i, label %bb1.i.i, label %bb44.i bb15.i: ; preds = %.noexc57 %103 = getelementptr inbounds [4 x %"core::option::Option"], ptr %avg_durations.i, i64 0, i64 %n_algos.0261.i426 store i64 %50, ptr %103, align 8, !noalias !6428 %104 = getelementptr inbounds i8, ptr %103, i64 8 store i32 %51, ptr %104, align 8, !noalias !6428 br label %bb7.backedge.i bb58.thread.i: ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heb4484828ad56c1eE.exit.i" %_163.i = getelementptr inbounds %"core::option::Option", ptr %avg_durations.i, i64 1 %105 = load i32, ptr %19, align 8, !range !6292, !noalias !6428, !noundef !3 %106 = icmp eq i32 %105, 1000000000 br i1 %106, label %bb64.i.invoke, label %bb6.lr.ph.i.i bb6.lr.ph.i.i: ; preds = %bb58.thread.i, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" %_163321325.i = phi ptr [ %_163.i, %bb58.thread.i ], [ %_163319.i, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" ] %107 = phi i64 [ 1, %bb58.thread.i ], [ 2, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" ] %.in.i = phi ptr [ %avg_durations.i, %bb58.thread.i ], [ %_0.0.i.i.i.i.i.i.i.i.i, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" ] %108 = phi i32 [ %105, %bb58.thread.i ], [ %48, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" ] %109 = load i64, ptr %.in.i, align 8, !noalias !6428 br label %bb6.i.i bb6.i.i: ; preds = %bb9.i.i, %bb6.lr.ph.i.i %i.017.i.i = phi i64 [ 0, %bb6.lr.ph.i.i ], [ %_22.0.i.i, %bb9.i.i ] %_30.i1516.i.i = phi ptr [ %avg_durations.i, %bb6.lr.ph.i.i ], [ %_30.i.i169.i, %bb9.i.i ] %_30.i.i169.i = getelementptr inbounds %"core::option::Option", ptr %_30.i1516.i.i, i64 1 %110 = getelementptr i8, ptr %_30.i1516.i.i, i64 8 %.val5.i.i = load i32, ptr %110, align 8, !range !6292, !noalias !6518, !noundef !3 %111 = icmp eq i32 %.val5.i.i, 1000000000 br i1 %111, label %bb64.i.invoke, label %bb2.i.i170.i bb2.i.i170.i: ; preds = %bb6.i.i %.val.i.i = load i64, ptr %_30.i1516.i.i, align 8, !noalias !6518 %_9.i.i.i = icmp eq i64 %109, %.val.i.i %112 = icmp eq i32 %108, %.val5.i.i %or.cond.i.i = and i1 %112, %_9.i.i.i br i1 %or.cond.i.i, label %bb63.i, label %bb9.i.i bb9.i.i: ; preds = %bb2.i.i170.i %_22.0.i.i = add nuw nsw i64 %i.017.i.i, 1 %113 = icmp eq ptr %_30.i.i169.i, %_163321325.i br i1 %113, label %bb64.i.invoke, label %bb6.i.i bb63.i: ; preds = %bb2.i.i170.i %cond.i.i = icmp ult i64 %i.017.i.i, %107 call void @llvm.assume(i1 %cond.i.i) %_97.i = icmp ult i64 %i.017.i.i, 4 br i1 %_97.i, label %bb33.i, label %panic40.i.invoke, !prof !2180 bb33.i: ; preds = %bb63.i %114 = getelementptr inbounds [4 x i8], ptr %algos.i, i64 0, i64 %i.017.i.i %115 = load i8, ptr %114, align 1, !range !6522, !noalias !6428, !noundef !3 %116 = icmp eq i8 %115, 8 br i1 %116, label %bb64.i.invoke, label %bb65.i bb64.i.invoke: ; preds = %bb9.i.i, %bb6.i.i, %bb33.i, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i", %bb58.thread.i, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heb4484828ad56c1eE.exit.i", %bb9.lr.ph.i %117 = phi ptr [ @alloc_22460b73d0f7fdee7225299fde5b029a, %bb9.lr.ph.i ], [ @alloc_22460b73d0f7fdee7225299fde5b029a, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heb4484828ad56c1eE.exit.i" ], [ @alloc_1312267fc6527cdf35ba767b644ca73d, %bb58.thread.i ], [ @alloc_1312267fc6527cdf35ba767b644ca73d, %"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E.exit.i.i.i" ], [ @alloc_2420b864b0bffd768c5745a839437d48, %bb33.i ], [ @alloc_ae03e973fea8e622a2c224bccb02a0e7, %bb6.i.i ], [ @alloc_58e32998b4625961b670ebf41d4a8af6, %bb9.i.i ] ; invoke core::option::unwrap_failed invoke void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %117) #22 to label %bb64.i.cont unwind label %cleanup.loopexit.split-lp.loopexit.split-lp bb64.i.cont: ; preds = %bb64.i.invoke unreachable bb65.i: ; preds = %bb33.i %_99.i = icmp ult i64 %i.017.i.i, 2 br i1 %_99.i, label %bb34.i, label %panic40.i.invoke, !prof !2180 bb34.i: ; preds = %bb65.i %118 = getelementptr inbounds [2 x i64], ptr %bases.i, i64 0, i64 %i.017.i.i %_98.i = load i64, ptr %118, align 8, !noalias !6428, !noundef !3 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %avg_durations.i), !noalias !6428 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %algos.i), !noalias !6428 br label %bb17 panic40.i.invoke: ; preds = %bb65.i, %bb63.i %119 = phi i64 [ 4, %bb63.i ], [ 2, %bb65.i ] %120 = phi ptr [ @alloc_e48b756d1912c502591c96b0a6f8e5ff, %bb63.i ], [ @alloc_f0d0102bd2a65844ad38a919b286bec2, %bb65.i ] ; invoke core::panicking::panic_bounds_check invoke void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %i.017.i.i, i64 noundef %119, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %120) #22 to label %panic40.i.cont unwind label %cleanup.loopexit.split-lp.loopexit.split-lp panic40.i.cont: ; preds = %panic40.i.invoke unreachable bb5: ; preds = %bb4 %_10.not = icmp ugt i64 %base_n, %n br i1 %_10.not, label %bb8, label %bb7 bb6: ; preds = %bb4 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_47f9332e8b0f88a5f1b1c39d5d43a024, i64 noundef 42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_691990e8957f935589950b689d23796f) #22 unreachable bb8: ; preds = %bb5 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe928c4090004f2463e4844bad8ec9c9, i64 noundef 29, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_f3f13e2156ec97bab13fe57f76687913) #22 unreachable bb7: ; preds = %bb5 %_12 = icmp eq i64 %base_n, %n %_13 = icmp ugt i64 %base_n, 31 %or.cond = or i1 %_12, %_13 br i1 %or.cond, label %bb12, label %bb11 bb12: ; preds = %bb7 %121 = and i64 %base_n, 2047 %_15.not = icmp eq i64 %121, 0 br i1 %_15.not, label %bb14, label %bb19 bb11: ; preds = %bb7 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_7d65d51328ef359a47d2a1a34ac05ab0, i64 noundef 30, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_e5f5041d1d1330b63cafdc6f1bcd44ef) #22 unreachable bb14: ; preds = %bb12 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_47b483d9dcbbda38514940099886fd9b, i64 noundef 47, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_6eb6e2f6364f5fea5b2858aaaabbe156) #22 unreachable bb19: ; preds = %bb12, %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit104" %_155.0 = phi i8 [ %_21.sroa.5.0, %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit104" ], [ %base_algo11, %bb12 ] %_156.0 = phi i64 [ %_21.sroa.0.0, %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit104" ], [ %base_n, %bb12 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_29) ; call concrete_fft::ordered::get_fn_ptr call fastcc void @_ZN12concrete_fft7ordered10get_fn_ptr17h345a513ed1ede784E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(16) %_29, i8 noundef %_155.0, i64 noundef %_156.0) %122 = load <2 x ptr>, ptr %_29, align 16 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_29) %count = add i64 %_156.0, %n %123 = icmp eq i64 %count, 0 br i1 %123, label %switch.lookup, label %bb3.i.i.i.i.preheader.i bb3.i.i.i.i.preheader.i: ; preds = %bb19 ; call aligned_vec::raw::with_capacity_unchecked %_6.i.i = call noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef %count, i64 noundef 128, i64 noundef 16), !noalias !6523 %124 = icmp ne ptr %_6.i.i, null call void @llvm.assume(i1 %124) %min.iters.check = icmp ult i64 %count, 24 br i1 %min.iters.check, label %bb3.i.i.i.i.i.preheader, label %vector.scevcheck vector.scevcheck: ; preds = %bb3.i.i.i.i.preheader.i %125 = add i64 %_156.0, %n %126 = add i64 %125, -1 %mul.result = shl i64 %126, 4 %127 = getelementptr i8, ptr %_6.i.i, i64 %mul.result %128 = icmp ult ptr %127, %_6.i.i %scevgep = getelementptr i8, ptr %_6.i.i, i64 8 %mul.result568 = shl i64 %126, 4 %mul.overflow569 = icmp ugt i64 %126, 1152921504606846975 %129 = getelementptr i8, ptr %scevgep, i64 %mul.result568 %130 = icmp ult ptr %129, %scevgep %131 = or i1 %130, %mul.overflow569 %132 = or i1 %128, %131 br i1 %132, label %bb3.i.i.i.i.i.preheader, label %vector.ph vector.ph: ; preds = %vector.scevcheck %n.vec = and i64 %count, -16 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] %133 = or disjoint i64 %index, 4 %134 = or disjoint i64 %index, 8 %135 = or disjoint i64 %index, 12 %136 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i, i64 %index %137 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i, i64 %133 %138 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i, i64 %134 %139 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i, i64 %135 store <8 x double> , ptr %136, align 8, !noalias !6527 store <8 x double> , ptr %137, align 8, !noalias !6527 store <8 x double> , ptr %138, align 8, !noalias !6527 store <8 x double> , ptr %139, align 8, !noalias !6527 %index.next = add nuw i64 %index, 16 %140 = icmp eq i64 %index.next, %n.vec br i1 %140, label %middle.block, label %vector.body, !llvm.loop !6551 middle.block: ; preds = %vector.body %cmp.n = icmp eq i64 %count, %n.vec br i1 %cmp.n, label %bb3.i.i.i.i.preheader.i83, label %bb3.i.i.i.i.i.preheader bb3.i.i.i.i.i.preheader: ; preds = %vector.scevcheck, %bb3.i.i.i.i.preheader.i, %middle.block %_9.0.i.i.i.i3.i.i.i.i.i.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %bb3.i.i.i.i.preheader.i ], [ %n.vec, %middle.block ] %141 = add i64 %_156.0, %n %xtraiter = and i64 %141, 7 %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %bb3.i.i.i.i.i.prol.loopexit, label %bb3.i.i.i.i.i.prol bb3.i.i.i.i.i.prol: ; preds = %bb3.i.i.i.i.i.preheader, %bb3.i.i.i.i.i.prol %_9.0.i.i.i.i3.i.i.i.i.i.prol = phi i64 [ %_9.0.i.i.i.i.i.i.i.i.i.prol, %bb3.i.i.i.i.i.prol ], [ %_9.0.i.i.i.i3.i.i.i.i.i.ph, %bb3.i.i.i.i.i.preheader ] %prol.iter = phi i64 [ %prol.iter.next, %bb3.i.i.i.i.i.prol ], [ 0, %bb3.i.i.i.i.i.preheader ] %self1.i.i.i.i.i.i.i.i.i.i.i.prol = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i, i64 %_9.0.i.i.i.i3.i.i.i.i.i.prol store <2 x double> , ptr %self1.i.i.i.i.i.i.i.i.i.i.i.prol, align 8, !noalias !6527 %_9.0.i.i.i.i.i.i.i.i.i.prol = add nuw i64 %_9.0.i.i.i.i3.i.i.i.i.i.prol, 1 %prol.iter.next = add i64 %prol.iter, 1 %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter br i1 %prol.iter.cmp.not, label %bb3.i.i.i.i.i.prol.loopexit, label %bb3.i.i.i.i.i.prol, !llvm.loop !6552 bb3.i.i.i.i.i.prol.loopexit: ; preds = %bb3.i.i.i.i.i.prol, %bb3.i.i.i.i.i.preheader %_9.0.i.i.i.i3.i.i.i.i.i.unr = phi i64 [ %_9.0.i.i.i.i3.i.i.i.i.i.ph, %bb3.i.i.i.i.i.preheader ], [ %_9.0.i.i.i.i.i.i.i.i.i.prol, %bb3.i.i.i.i.i.prol ] %142 = sub i64 %_9.0.i.i.i.i3.i.i.i.i.i.ph, %141 %143 = icmp ugt i64 %142, -8 br i1 %143, label %bb3.i.i.i.i.preheader.i83, label %bb3.i.i.i.i.i.preheader.new bb3.i.i.i.i.i.preheader.new: ; preds = %bb3.i.i.i.i.i.prol.loopexit %invariant.gep = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 1 %invariant.gep752 = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 2 %invariant.gep754 = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 3 %invariant.gep756 = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 4 %invariant.gep758 = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 5 %invariant.gep760 = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 6 %invariant.gep762 = getelementptr %"num_complex::Complex", ptr %_6.i.i, i64 7 br label %bb3.i.i.i.i.i bb3.i.i.i.i.i: ; preds = %bb3.i.i.i.i.i, %bb3.i.i.i.i.i.preheader.new %_9.0.i.i.i.i3.i.i.i.i.i = phi i64 [ %_9.0.i.i.i.i3.i.i.i.i.i.unr, %bb3.i.i.i.i.i.preheader.new ], [ %_9.0.i.i.i.i.i.i.i.i.i.7, %bb3.i.i.i.i.i ] %self1.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %self1.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !6527 %gep = getelementptr %"num_complex::Complex", ptr %invariant.gep, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep, align 8, !noalias !6527 %gep753 = getelementptr %"num_complex::Complex", ptr %invariant.gep752, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep753, align 8, !noalias !6527 %gep755 = getelementptr %"num_complex::Complex", ptr %invariant.gep754, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep755, align 8, !noalias !6527 %gep757 = getelementptr %"num_complex::Complex", ptr %invariant.gep756, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep757, align 8, !noalias !6527 %gep759 = getelementptr %"num_complex::Complex", ptr %invariant.gep758, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep759, align 8, !noalias !6527 %gep761 = getelementptr %"num_complex::Complex", ptr %invariant.gep760, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep761, align 8, !noalias !6527 %gep763 = getelementptr %"num_complex::Complex", ptr %invariant.gep762, i64 %_9.0.i.i.i.i3.i.i.i.i.i store <2 x double> , ptr %gep763, align 8, !noalias !6527 %_9.0.i.i.i.i.i.i.i.i.i.7 = add nuw i64 %_9.0.i.i.i.i3.i.i.i.i.i, 8 %exitcond.not.i79.7 = icmp eq i64 %_9.0.i.i.i.i.i.i.i.i.i.7, %count br i1 %exitcond.not.i79.7, label %bb3.i.i.i.i.preheader.i83, label %bb3.i.i.i.i.i, !llvm.loop !6553 bb3.i.i.i.i.preheader.i83: ; preds = %bb3.i.i.i.i.i.prol.loopexit, %bb3.i.i.i.i.i, %middle.block ; invoke aligned_vec::raw::with_capacity_unchecked %_6.i.i8497 = invoke noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef %count, i64 noundef 128, i64 noundef 16) to label %_6.i.i84.noexc unwind label %cleanup15 _6.i.i84.noexc: ; preds = %bb3.i.i.i.i.preheader.i83 %144 = icmp ne ptr %_6.i.i8497, null call void @llvm.assume(i1 %144) %min.iters.check580 = icmp ult i64 %count, 24 br i1 %min.iters.check580, label %bb3.i.i.i.i.i88.preheader, label %vector.scevcheck570 vector.scevcheck570: ; preds = %_6.i.i84.noexc %145 = add i64 %_156.0, %n %146 = add i64 %145, -1 %mul.result572 = shl i64 %146, 4 %147 = getelementptr i8, ptr %_6.i.i8497, i64 %mul.result572 %148 = icmp ult ptr %147, %_6.i.i8497 %scevgep574 = getelementptr i8, ptr %_6.i.i8497, i64 8 %mul.result576 = shl i64 %146, 4 %mul.overflow577 = icmp ugt i64 %146, 1152921504606846975 %149 = getelementptr i8, ptr %scevgep574, i64 %mul.result576 %150 = icmp ult ptr %149, %scevgep574 %151 = or i1 %150, %mul.overflow577 %152 = or i1 %148, %151 br i1 %152, label %bb3.i.i.i.i.i88.preheader, label %vector.ph581 vector.ph581: ; preds = %vector.scevcheck570 %n.vec583 = and i64 %count, -16 br label %vector.body586 vector.body586: ; preds = %vector.body586, %vector.ph581 %index587 = phi i64 [ 0, %vector.ph581 ], [ %index.next588, %vector.body586 ] %153 = or disjoint i64 %index587, 4 %154 = or disjoint i64 %index587, 8 %155 = or disjoint i64 %index587, 12 %156 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i8497, i64 %index587 %157 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i8497, i64 %153 %158 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i8497, i64 %154 %159 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i8497, i64 %155 store <8 x double> , ptr %156, align 8, !noalias !6554 store <8 x double> , ptr %157, align 8, !noalias !6554 store <8 x double> , ptr %158, align 8, !noalias !6554 store <8 x double> , ptr %159, align 8, !noalias !6554 %index.next588 = add nuw i64 %index587, 16 %160 = icmp eq i64 %index.next588, %n.vec583 br i1 %160, label %middle.block578, label %vector.body586, !llvm.loop !6581 middle.block578: ; preds = %vector.body586 %cmp.n585 = icmp eq i64 %count, %n.vec583 br i1 %cmp.n585, label %switch.lookup, label %bb3.i.i.i.i.i88.preheader bb3.i.i.i.i.i88.preheader: ; preds = %vector.scevcheck570, %_6.i.i84.noexc, %middle.block578 %_9.0.i.i.i.i3.i.i.i.i.i89.ph = phi i64 [ 0, %vector.scevcheck570 ], [ 0, %_6.i.i84.noexc ], [ %n.vec583, %middle.block578 ] %161 = add i64 %_156.0, %n %xtraiter681 = and i64 %161, 7 %lcmp.mod682.not = icmp eq i64 %xtraiter681, 0 br i1 %lcmp.mod682.not, label %bb3.i.i.i.i.i88.prol.loopexit, label %bb3.i.i.i.i.i88.prol bb3.i.i.i.i.i88.prol: ; preds = %bb3.i.i.i.i.i88.preheader, %bb3.i.i.i.i.i88.prol %_9.0.i.i.i.i3.i.i.i.i.i89.prol = phi i64 [ %_9.0.i.i.i.i.i.i.i.i.i91.prol, %bb3.i.i.i.i.i88.prol ], [ %_9.0.i.i.i.i3.i.i.i.i.i89.ph, %bb3.i.i.i.i.i88.preheader ] %prol.iter683 = phi i64 [ %prol.iter683.next, %bb3.i.i.i.i.i88.prol ], [ 0, %bb3.i.i.i.i.i88.preheader ] %self1.i.i.i.i.i.i.i.i.i.i.i90.prol = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i8497, i64 %_9.0.i.i.i.i3.i.i.i.i.i89.prol store <2 x double> , ptr %self1.i.i.i.i.i.i.i.i.i.i.i90.prol, align 8, !noalias !6554 %_9.0.i.i.i.i.i.i.i.i.i91.prol = add nuw i64 %_9.0.i.i.i.i3.i.i.i.i.i89.prol, 1 %prol.iter683.next = add i64 %prol.iter683, 1 %prol.iter683.cmp.not = icmp eq i64 %prol.iter683.next, %xtraiter681 br i1 %prol.iter683.cmp.not, label %bb3.i.i.i.i.i88.prol.loopexit, label %bb3.i.i.i.i.i88.prol, !llvm.loop !6582 bb3.i.i.i.i.i88.prol.loopexit: ; preds = %bb3.i.i.i.i.i88.prol, %bb3.i.i.i.i.i88.preheader %_9.0.i.i.i.i3.i.i.i.i.i89.unr = phi i64 [ %_9.0.i.i.i.i3.i.i.i.i.i89.ph, %bb3.i.i.i.i.i88.preheader ], [ %_9.0.i.i.i.i.i.i.i.i.i91.prol, %bb3.i.i.i.i.i88.prol ] %162 = sub i64 %_9.0.i.i.i.i3.i.i.i.i.i89.ph, %161 %163 = icmp ugt i64 %162, -8 br i1 %163, label %switch.lookup, label %bb3.i.i.i.i.i88.preheader.new bb3.i.i.i.i.i88.preheader.new: ; preds = %bb3.i.i.i.i.i88.prol.loopexit %invariant.gep764 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 1 %invariant.gep766 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 2 %invariant.gep768 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 3 %invariant.gep770 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 4 %invariant.gep772 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 5 %invariant.gep774 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 6 %invariant.gep776 = getelementptr %"num_complex::Complex", ptr %_6.i.i8497, i64 7 br label %bb3.i.i.i.i.i88 bb3.i.i.i.i.i88: ; preds = %bb3.i.i.i.i.i88, %bb3.i.i.i.i.i88.preheader.new %_9.0.i.i.i.i3.i.i.i.i.i89 = phi i64 [ %_9.0.i.i.i.i3.i.i.i.i.i89.unr, %bb3.i.i.i.i.i88.preheader.new ], [ %_9.0.i.i.i.i.i.i.i.i.i91.7, %bb3.i.i.i.i.i88 ] %self1.i.i.i.i.i.i.i.i.i.i.i90 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i8497, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %self1.i.i.i.i.i.i.i.i.i.i.i90, align 8, !noalias !6554 %gep765 = getelementptr %"num_complex::Complex", ptr %invariant.gep764, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep765, align 8, !noalias !6554 %gep767 = getelementptr %"num_complex::Complex", ptr %invariant.gep766, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep767, align 8, !noalias !6554 %gep769 = getelementptr %"num_complex::Complex", ptr %invariant.gep768, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep769, align 8, !noalias !6554 %gep771 = getelementptr %"num_complex::Complex", ptr %invariant.gep770, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep771, align 8, !noalias !6554 %gep773 = getelementptr %"num_complex::Complex", ptr %invariant.gep772, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep773, align 8, !noalias !6554 %gep775 = getelementptr %"num_complex::Complex", ptr %invariant.gep774, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep775, align 8, !noalias !6554 %gep777 = getelementptr %"num_complex::Complex", ptr %invariant.gep776, i64 %_9.0.i.i.i.i3.i.i.i.i.i89 store <2 x double> , ptr %gep777, align 8, !noalias !6554 %_9.0.i.i.i.i.i.i.i.i.i91.7 = add nuw i64 %_9.0.i.i.i.i3.i.i.i.i.i89, 8 %exitcond.not.i92.7 = icmp eq i64 %_9.0.i.i.i.i.i.i.i.i.i91.7, %count br i1 %exitcond.not.i92.7, label %switch.lookup, label %bb3.i.i.i.i.i88, !llvm.loop !6583 cleanup.loopexit: ; preds = %bb44.i %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %cleanup cleanup.loopexit.split-lp.loopexit: ; preds = %bb1.i.i, %bb21.i, %bb16.i, %bb13.i %lpad.loopexit360 = landingpad { ptr, i32 } cleanup br label %cleanup cleanup.loopexit.split-lp.loopexit.split-lp: ; preds = %bb5.i.i.i.invoke, %bb64.i.invoke, %panic40.i.invoke, %.noexc69, %bb53.i, %bb1.i4.i94.i, %bb1.i.i96.i, %bb1.i4.i79.i, %bb1.i.i81.i, %bb1.i4.i.i, %bb1.i.i.i, %bb1.i50 %lpad.loopexit.split-lp361 = landingpad { ptr, i32 } cleanup br label %cleanup cleanup: ; preds = %cleanup.loopexit.split-lp.loopexit, %cleanup.loopexit.split-lp.loopexit.split-lp, %cleanup.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %cleanup.loopexit ], [ %lpad.loopexit360, %cleanup.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp361, %cleanup.loopexit.split-lp.loopexit.split-lp ] call void @llvm.experimental.noalias.scope.decl(metadata !6584) call void @llvm.experimental.noalias.scope.decl(metadata !6587) call void @llvm.experimental.noalias.scope.decl(metadata !6590) %164 = icmp eq i64 %len, 0 br i1 %164, label %bb52, label %bb1.i.i.i99 bb1.i.i.i99: ; preds = %cleanup %165 = getelementptr inbounds %"dyn_stack::mem::GlobalMemBuffer", ptr %_25, i64 0, i32 2 %align.i.i.i = load i64, ptr %165, align 8, !alias.scope !6593, !noundef !3 %166 = icmp ne i64 %align.i.i.i, 0 call void @llvm.assume(i1 %166) %167 = icmp ult i64 %align.i.i.i, -9223372036854775807 call void @llvm.assume(i1 %167) call void @__rust_dealloc(ptr noundef nonnull %self12, i64 noundef %len, i64 noundef %align.i.i.i) #23, !noalias !6593 br label %bb52 bb17: ; preds = %bb34.i, %.noexc %_21.sroa.5.0 = phi i8 [ %algo.i, %.noexc ], [ %115, %bb34.i ] %_21.sroa.0.0 = phi i64 [ %n, %.noexc ], [ %_98.i, %bb34.i ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %bases.i) call void @llvm.experimental.noalias.scope.decl(metadata !6594) call void @llvm.experimental.noalias.scope.decl(metadata !6597) call void @llvm.experimental.noalias.scope.decl(metadata !6600) %168 = icmp eq i64 %len, 0 br i1 %168, label %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit104", label %bb1.i.i.i101 bb1.i.i.i101: ; preds = %bb17 %169 = getelementptr inbounds %"dyn_stack::mem::GlobalMemBuffer", ptr %_25, i64 0, i32 2 %align.i.i.i103 = load i64, ptr %169, align 8, !alias.scope !6603, !noundef !3 %170 = icmp ne i64 %align.i.i.i103, 0 call void @llvm.assume(i1 %170) %171 = icmp ult i64 %align.i.i.i103, -9223372036854775807 call void @llvm.assume(i1 %171) call void @__rust_dealloc(ptr noundef nonnull %self12, i64 noundef %len, i64 noundef %align.i.i.i103) #23, !noalias !6603 br label %"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit104" "_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E.exit104": ; preds = %bb17, %bb1.i.i.i101 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %_25) br label %bb19 cleanup15: ; preds = %bb3.i.i.i.i.preheader.i83 %172 = landingpad { ptr, i32 } cleanup %.pre = shl nsw i64 %count, 4 br label %bb1.i.i.i.i306 switch.lookup: ; preds = %bb3.i.i.i.i.i88.prol.loopexit, %bb3.i.i.i.i.i88, %bb19, %middle.block578 %_0.sroa.0.0.i27.i323 = phi ptr [ inttoptr (i64 128 to ptr), %bb19 ], [ %_6.i.i, %middle.block578 ], [ %_6.i.i, %bb3.i.i.i.i.i88 ], [ %_6.i.i, %bb3.i.i.i.i.i88.prol.loopexit ] %_0.sroa.0.0.i27.i94 = phi ptr [ inttoptr (i64 128 to ptr), %bb19 ], [ %_6.i.i8497, %middle.block578 ], [ %_6.i.i8497, %bb3.i.i.i.i.i88 ], [ %_6.i.i8497, %bb3.i.i.i.i.i88.prol.loopexit ] %173 = sext i8 %_155.0 to i64 %switch.gep = getelementptr inbounds [8 x i64], ptr @switch.table._ZN12concrete_fft9unordered4Plan3new17h0e00385d94bb7a76E, i64 0, i64 %173 %switch.load = load i64, ptr %switch.gep, align 8 %174 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i = icmp eq i8 %174, -1 br i1 %_3.i.i, label %bb1.i.i119, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i bb1.i.i119: ; preds = %switch.lookup ; invoke pulp::x86::V4::__detect_is_available %_5.i.i120121 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i120.noexc unwind label %bb54.thread _5.i.i120.noexc: ; preds = %bb1.i.i119 %175 = zext i1 %_5.i.i120121 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i: ; preds = %_5.i.i120.noexc, %switch.lookup %available.0.i.i = phi i8 [ %175, %_5.i.i120.noexc ], [ %174, %switch.lookup ] %_0.i.not.i = icmp eq i8 %available.0.i.i, 0 br i1 %_0.i.not.i, label %bb4.i, label %bb28 bb4.i: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i %176 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i = icmp eq i8 %176, -1 br i1 %_3.i1.i, label %bb1.i4.i, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i bb1.i4.i: ; preds = %bb4.i ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i122 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc unwind label %bb54.thread _5.i5.i.noexc: ; preds = %bb1.i4.i %177 = zext i1 %_5.i5.i122 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i: ; preds = %_5.i5.i.noexc, %bb4.i %available.0.i2.i = phi i8 [ %177, %_5.i5.i.noexc ], [ %176, %bb4.i ] %_0.i3.not.i = icmp eq i8 %available.0.i2.i, 0 %..i = select i1 %_0.i3.not.i, i64 1, i64 2 br label %bb28 bb54: ; preds = %bb2.i.i.i.i %178 = landingpad { ptr, i32 } cleanup %179 = shl nsw i64 %n, 4 call void @__rust_dealloc(ptr noundef nonnull %_6.i.i131144, i64 noundef %179, i64 noundef 128) #23, !noalias !6604 br label %bb53 bb54.thread: ; preds = %bb23.i.invoke, %bb1.i.i119, %bb1.i4.i, %bb1.i123, %panic11.i, %bb3.i.i.i.i.preheader.i130 %180 = landingpad { ptr, i32 } cleanup br label %bb53 bb28: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i %_0.0.i = phi i64 [ %..i, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i ], [ 4, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i ] call void @llvm.experimental.noalias.scope.decl(metadata !6609) call void @llvm.experimental.noalias.scope.decl(metadata !6612) %_9.not47.i = icmp ult i64 %_156.0, %n br i1 %_9.not47.i, label %bb2.lr.ph.i, label %bb1.i123 bb2.lr.ph.i: ; preds = %bb28 %_13.i = shl i64 %_156.0, 1 %_15.i = shl i64 %_156.0, 2 br label %bb2.us.i bb2.us.i: ; preds = %tailrecurse.loopexit.us.i, %bb2.lr.ph.i %w_inv.1.tr51.us.i = phi i64 [ %mid5.us.i, %tailrecurse.loopexit.us.i ], [ %count, %bb2.lr.ph.i ] %w.1.tr50.us.i = phi i64 [ %184, %tailrecurse.loopexit.us.i ], [ %count, %bb2.lr.ph.i ] %w.0.tr49.us.i = phi ptr [ %183, %tailrecurse.loopexit.us.i ], [ %_0.sroa.0.0.i27.i323, %bb2.lr.ph.i ] %n.tr48.us.i = phi i64 [ %m24.us.i, %tailrecurse.loopexit.us.i ], [ %n, %bb2.lr.ph.i ] %_8.us.pn.i = uitofp i64 %n.tr48.us.i to double %theta52.us.i = fdiv double 2.000000e+00, %_8.us.pn.i %_12.us.i = icmp eq i64 %_13.i, %n.tr48.us.i %_14.us.i = icmp eq i64 %_15.i, %n.tr48.us.i %..us.i = select i1 %_14.us.i, i64 4, i64 8 %r.0.us.i = select i1 %_12.us.i, i64 2, i64 %..us.i %181 = select i1 %_14.us.i, i64 2, i64 3 %182 = select i1 %_12.us.i, i64 1, i64 %181 %m24.us.i = lshr i64 %n.tr48.us.i, %182 %_20.us.i = add nsw i64 %r.0.us.i, -1 %mid.us.i = mul i64 %_20.us.i, %m24.us.i %_71.not.us.i = icmp ugt i64 %mid.us.i, %w.1.tr50.us.i br i1 %_71.not.us.i, label %bb23.i, label %bb21.us.i bb21.us.i: ; preds = %bb2.us.i %183 = getelementptr inbounds %"num_complex::Complex", ptr %w.0.tr49.us.i, i64 %mid.us.i %184 = sub i64 %w.1.tr50.us.i, %mid.us.i %_78.not.us.i = icmp ugt i64 %mid.us.i, %w_inv.1.tr51.us.i br i1 %_78.not.us.i, label %bb26.i, label %bb24.us.i bb24.us.i: ; preds = %bb21.us.i %mid5.us.i = sub i64 %w_inv.1.tr51.us.i, %mid.us.i %185 = getelementptr inbounds %"num_complex::Complex", ptr %_0.sroa.0.0.i27.i94, i64 %mid5.us.i %_2842.us.not.i = icmp eq i64 %m24.us.i, 0 br i1 %_2842.us.not.i, label %tailrecurse.loopexit.us.i, label %bb12.preheader.us.us.i tailrecurse.loopexit.us.i: ; preds = %bb12.bb29_crit_edge.us.us.i, %bb24.us.i %_9.not.us.i = icmp ugt i64 %m24.us.i, %_156.0 br i1 %_9.not.us.i, label %bb2.us.i, label %bb1.i123 bb12.preheader.us.us.i: ; preds = %bb24.us.i, %bb12.bb29_crit_edge.us.us.i %p.043.us.us.i = phi i64 [ %211, %bb12.bb29_crit_edge.us.us.i ], [ 0, %bb24.us.i ] %_51.us.us.i = mul i64 %p.043.us.us.i, %_20.us.i br label %bb27.us.us.i bb27.us.us.i: ; preds = %bb12.loopexit.us.us.i, %bb12.preheader.us.us.i %iter.sroa.0.041.us.us.i = phi i64 [ 0, %bb12.preheader.us.us.i ], [ %_0.i.us.us.i, %bb12.loopexit.us.us.i ] %_0.i.us.us.i = add nuw i64 %iter.sroa.0.041.us.us.i, 1 %_50.us.us.i = add i64 %iter.sroa.0.041.us.us.i, %_51.us.us.i %_47.us.us.i = add nuw i64 %iter.sroa.0.041.us.us.i, %p.043.us.us.i br label %bb30.us.us.i bb30.us.us.i: ; preds = %bb16.us.us.i, %bb27.us.us.i %iter2.sroa.0.039.us.us.i = phi i64 [ 1, %bb27.us.us.i ], [ %_0.i23.us.us.i, %bb16.us.us.i ] %_56.us.us.i = add nsw i64 %iter2.sroa.0.039.us.us.i, -1 %_55.us.us.i = mul i64 %_56.us.us.i, %_0.0.i %idx.us.us.i = add i64 %_50.us.us.i, %_55.us.us.i %_60.us.us.i = icmp ult i64 %idx.us.us.i, %mid.us.i br i1 %_60.us.us.i, label %bb16.us.us.i, label %panic11.i, !prof !2180 bb16.us.us.i: ; preds = %bb30.us.us.i %_46.us.us.i = mul i64 %iter2.sroa.0.039.us.us.i, %_47.us.us.i %_45.us.us.i = uitofp i64 %_46.us.us.i to double %_44.us.us.i = fmul double %theta52.us.i, %_45.us.us.i %_5.i.us.us.i = fcmp olt double %_44.us.us.i, 0x4340000000000000 %az.i.us.us.i = fmul double %_44.us.us.i, 0.000000e+00 %.az.i.us.us.i = select i1 %_5.i.us.us.i, double %_44.us.us.i, double %az.i.us.us.i %186 = call double @llvm.floor.f64(double %.az.i.us.us.i) %_52.i.us.us.i = fcmp oeq double %.az.i.us.us.i, %186 %self1.i.us.us.i = fadd double %.az.i.us.us.i, %.az.i.us.us.i %187 = call double @llvm.round.f64(double %self1.i.us.us.i) %i.i.us.us.i = call i64 @llvm.fptosi.sat.i64.f64(double %187) %_48.i.us.us.i = and i64 %i.i.us.us.i, 1 %188 = icmp eq i64 %_48.i.us.us.i, 0 %_45.i.us.us.i = and i64 %i.i.us.us.i, 2 %189 = icmp eq i64 %_45.i.us.us.i, 0 %190 = call double @llvm.fma.f64(double %187, double -5.000000e-01, double %.az.i.us.us.i) %s3.i.us.us.i = fmul double %190, %190 %s16.i.us.us.i = fmul double %190, %s3.i.us.us.i %191 = call double @llvm.fma.f64(double %s3.i.us.us.i, double 0x3F3E3EED5CE53E6A, double 0xBF7E30063A029A73) %192 = call double @llvm.fma.f64(double %191, double %s3.i.us.us.i, double 0x3FB50782FCA38B8E) %193 = call double @llvm.fma.f64(double %192, double %s3.i.us.us.i, double 0xBFE32D2CCE2D535E) %194 = call double @llvm.fma.f64(double %193, double %s3.i.us.us.i, double 0x400466BC67758706) %195 = call double @llvm.fma.f64(double %194, double %s3.i.us.us.i, double 0xC014ABBCE625BE3E) %196 = fmul double %s16.i.us.us.i, %195 %197 = call double @llvm.fma.f64(double %190, double 0x400921FB54442D18, double %196) %198 = fsub double 0.000000e+00, %197 %s.0.i.us.us.i = select i1 %189, double %197, double %198 %199 = call double @llvm.fma.f64(double %s3.i.us.us.i, double 0xBF1B2F223DF6F197, double 0x3F5F9CE1F05EB467) %200 = call double @llvm.fma.f64(double %199, double %s3.i.us.us.i, double 0xBF9A6D1EEEE76526) %201 = call double @llvm.fma.f64(double %200, double %s3.i.us.us.i, double 0x3FCE1F506868296A) %202 = call double @llvm.fma.f64(double %201, double %s3.i.us.us.i, double 0xBFF55D3C7E3CB219) %203 = call double @llvm.fma.f64(double %202, double %s3.i.us.us.i, double 0x40103C1F081B5ABD) %204 = call double @llvm.fma.f64(double %203, double %s3.i.us.us.i, double 0xC013BD3CC9BE45DE) %205 = call double @llvm.fma.f64(double %204, double %s3.i.us.us.i, double 1.000000e+00) %206 = fsub double 0.000000e+00, %205 %c.0.i.us.us.i = select i1 %189, double %205, double %206 %s.1.i.us.us.i = select i1 %188, double %s.0.i.us.us.i, double %c.0.i.us.us.i %s.2.i.us.us.i = select i1 %_52.i.us.us.i, double %az.i.us.us.i, double %s.1.i.us.us.i %t18.i.us.us.i = fsub double 0.000000e+00, %s.0.i.us.us.i %c.1.i.us.us.i = select i1 %188, double %c.0.i.us.us.i, double %t18.i.us.us.i %_0.i23.us.us.i = add nuw nsw i64 %iter2.sroa.0.039.us.us.i, 1 %_58.us.us.i = fneg double %s.2.i.us.us.i %207 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %w.0.tr49.us.i, i64 0, i64 %idx.us.us.i store double %c.1.i.us.us.i, ptr %207, align 8, !alias.scope !6609, !noalias !6612 %208 = getelementptr inbounds i8, ptr %207, i64 8 store double %_58.us.us.i, ptr %208, align 8, !alias.scope !6609, !noalias !6612 %209 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %185, i64 0, i64 %idx.us.us.i store double %c.1.i.us.us.i, ptr %209, align 8, !alias.scope !6612, !noalias !6609 %210 = getelementptr inbounds i8, ptr %209, i64 8 store double %s.2.i.us.us.i, ptr %210, align 8, !alias.scope !6612, !noalias !6609 %exitcond.not.i124 = icmp eq i64 %_0.i23.us.us.i, %r.0.us.i br i1 %exitcond.not.i124, label %bb12.loopexit.us.us.i, label %bb30.us.us.i bb12.loopexit.us.us.i: ; preds = %bb16.us.us.i %exitcond82.not.i = icmp eq i64 %_0.i.us.us.i, %_0.0.i br i1 %exitcond82.not.i, label %bb12.bb29_crit_edge.us.us.i, label %bb27.us.us.i bb12.bb29_crit_edge.us.us.i: ; preds = %bb12.loopexit.us.us.i %211 = add nuw i64 %p.043.us.us.i, %_0.0.i %_28.us.us.i = icmp ult i64 %211, %m24.us.i br i1 %_28.us.us.i, label %bb12.preheader.us.us.i, label %tailrecurse.loopexit.us.i bb1.i123: ; preds = %tailrecurse.loopexit.us.i, %bb28 %n.tr.lcssa.i = phi i64 [ %n, %bb28 ], [ %m24.us.i, %tailrecurse.loopexit.us.i ] %w.0.tr.lcssa.i = phi ptr [ %_0.sroa.0.0.i27.i323, %bb28 ], [ %183, %tailrecurse.loopexit.us.i ] %w.1.tr.lcssa.i = phi i64 [ %count, %bb28 ], [ %184, %tailrecurse.loopexit.us.i ] %w_inv.1.tr.lcssa.i = phi i64 [ %count, %bb28 ], [ %mid5.us.i, %tailrecurse.loopexit.us.i ] ; invoke concrete_fft::fft_simd::init_wt invoke fastcc void @_ZN12concrete_fft8fft_simd7init_wt17ha286b79974ecae66E(i64 noundef %switch.load, i64 noundef %n.tr.lcssa.i, ptr noalias noundef nonnull align 8 %w.0.tr.lcssa.i, i64 noundef %w.1.tr.lcssa.i, ptr noalias noundef nonnull align 8 %_0.sroa.0.0.i27.i94, i64 noundef %w_inv.1.tr.lcssa.i) to label %bb29 unwind label %bb54.thread bb23.i: ; preds = %bb2.us.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_69.i), !noalias !6614 store ptr @alloc_2b3e40161faa82f936e1f97ea2aea002, ptr %_69.i, align 8, !noalias !6614 br label %bb23.i.invoke bb23.i.invoke: ; preds = %bb26.i, %bb23.i %_76.i.sink525 = phi ptr [ %_76.i, %bb26.i ], [ %_69.i, %bb23.i ] %212 = phi ptr [ @alloc_348fd65bf0eca10ac00e3881651a53b2, %bb26.i ], [ @alloc_5540c84a5b85a8d06bf4cc168a21e29b, %bb23.i ] %_76.i.sink525.sroa.phi = phi ptr [ %_76.i.sroa.gep, %bb26.i ], [ %_69.i.sroa.gep, %bb23.i ] %_76.i.sink525.sroa.phi711 = phi ptr [ %_76.i.sroa.gep712, %bb26.i ], [ %_69.i.sroa.gep713, %bb23.i ] %_76.i.sink525.sroa.phi714 = phi ptr [ %_76.i.sroa.gep715, %bb26.i ], [ %_69.i.sroa.gep716, %bb23.i ] %_76.i.sink525.sroa.phi717 = phi ptr [ %_76.i.sroa.gep718, %bb26.i ], [ %_69.i.sroa.gep719, %bb23.i ] store i64 1, ptr %_76.i.sink525.sroa.phi, align 8, !noalias !6614 store ptr null, ptr %_76.i.sink525.sroa.phi711, align 8, !noalias !6614 store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %_76.i.sink525.sroa.phi714, align 8, !noalias !6614 store i64 0, ptr %_76.i.sink525.sroa.phi717, align 8, !noalias !6614 ; invoke core::panicking::panic_fmt invoke void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_76.i.sink525, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %212) #22 to label %bb23.i.cont unwind label %bb54.thread bb23.i.cont: ; preds = %bb23.i.invoke unreachable bb26.i: ; preds = %bb21.us.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_76.i), !noalias !6614 store ptr @alloc_2b3e40161faa82f936e1f97ea2aea002, ptr %_76.i, align 8, !noalias !6614 br label %bb23.i.invoke panic11.i: ; preds = %bb30.us.us.i ; invoke core::panicking::panic_bounds_check invoke void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef %idx.us.us.i, i64 noundef %mid.us.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_2b453d9dfef93db1387dc62eedcb4c05) #22 to label %.noexc128 unwind label %bb54.thread .noexc128: ; preds = %panic11.i unreachable bb29: ; preds = %bb1.i123 %213 = icmp eq i64 %n, 0 br i1 %213, label %bb40, label %bb3.i.i.i.i.preheader.i130 bb3.i.i.i.i.preheader.i130: ; preds = %bb29 ; invoke aligned_vec::raw::with_capacity_unchecked %_6.i.i131144 = invoke noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef %n, i64 noundef 128, i64 noundef 16) to label %_6.i.i131.noexc unwind label %bb54.thread _6.i.i131.noexc: ; preds = %bb3.i.i.i.i.preheader.i130 %214 = icmp ne ptr %_6.i.i131144, null call void @llvm.assume(i1 %214) %min.iters.check599 = icmp ult i64 %n, 20 br i1 %min.iters.check599, label %bb3.i.i.i.i.i135.preheader, label %vector.scevcheck589 vector.scevcheck589: ; preds = %_6.i.i131.noexc %215 = add i64 %n, -1 %mul.result591 = shl i64 %215, 4 %216 = getelementptr i8, ptr %_6.i.i131144, i64 %mul.result591 %217 = icmp ult ptr %216, %_6.i.i131144 %scevgep593 = getelementptr i8, ptr %_6.i.i131144, i64 8 %mul.result595 = shl i64 %215, 4 %mul.overflow596 = icmp ugt i64 %215, 1152921504606846975 %218 = getelementptr i8, ptr %scevgep593, i64 %mul.result595 %219 = icmp ult ptr %218, %scevgep593 %220 = or i1 %219, %mul.overflow596 %221 = or i1 %217, %220 br i1 %221, label %bb3.i.i.i.i.i135.preheader, label %vector.ph600 vector.ph600: ; preds = %vector.scevcheck589 %n.vec602 = and i64 %n, -16 br label %vector.body605 vector.body605: ; preds = %vector.body605, %vector.ph600 %index606 = phi i64 [ 0, %vector.ph600 ], [ %index.next607, %vector.body605 ] %222 = or disjoint i64 %index606, 4 %223 = or disjoint i64 %index606, 8 %224 = or disjoint i64 %index606, 12 %225 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %index606 %226 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %222 %227 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %223 %228 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %224 store <8 x double> , ptr %225, align 8, !noalias !6615 store <8 x double> , ptr %226, align 8, !noalias !6615 store <8 x double> , ptr %227, align 8, !noalias !6615 store <8 x double> , ptr %228, align 8, !noalias !6615 %index.next607 = add nuw i64 %index606, 16 %229 = icmp eq i64 %index.next607, %n.vec602 br i1 %229, label %middle.block597, label %vector.body605, !llvm.loop !6642 middle.block597: ; preds = %vector.body605 %cmp.n604 = icmp eq i64 %n.vec602, %n br i1 %cmp.n604, label %bb35.preheader, label %bb3.i.i.i.i.i135.preheader bb3.i.i.i.i.i135.preheader: ; preds = %vector.scevcheck589, %_6.i.i131.noexc, %middle.block597 %_9.0.i.i.i.i3.i.i.i.i.i136.ph = phi i64 [ 0, %vector.scevcheck589 ], [ 0, %_6.i.i131.noexc ], [ %n.vec602, %middle.block597 ] %xtraiter684 = and i64 %n, 7 %lcmp.mod685.not = icmp eq i64 %xtraiter684, 0 br i1 %lcmp.mod685.not, label %bb3.i.i.i.i.i135.prol.loopexit, label %bb3.i.i.i.i.i135.prol bb3.i.i.i.i.i135.prol: ; preds = %bb3.i.i.i.i.i135.preheader, %bb3.i.i.i.i.i135.prol %_9.0.i.i.i.i3.i.i.i.i.i136.prol = phi i64 [ %_9.0.i.i.i.i.i.i.i.i.i138.prol, %bb3.i.i.i.i.i135.prol ], [ %_9.0.i.i.i.i3.i.i.i.i.i136.ph, %bb3.i.i.i.i.i135.preheader ] %prol.iter686 = phi i64 [ %prol.iter686.next, %bb3.i.i.i.i.i135.prol ], [ 0, %bb3.i.i.i.i.i135.preheader ] %self1.i.i.i.i.i.i.i.i.i.i.i137.prol = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %_9.0.i.i.i.i3.i.i.i.i.i136.prol store <2 x double> , ptr %self1.i.i.i.i.i.i.i.i.i.i.i137.prol, align 8, !noalias !6615 %_9.0.i.i.i.i.i.i.i.i.i138.prol = add nuw i64 %_9.0.i.i.i.i3.i.i.i.i.i136.prol, 1 %prol.iter686.next = add i64 %prol.iter686, 1 %prol.iter686.cmp.not = icmp eq i64 %prol.iter686.next, %xtraiter684 br i1 %prol.iter686.cmp.not, label %bb3.i.i.i.i.i135.prol.loopexit, label %bb3.i.i.i.i.i135.prol, !llvm.loop !6643 bb3.i.i.i.i.i135.prol.loopexit: ; preds = %bb3.i.i.i.i.i135.prol, %bb3.i.i.i.i.i135.preheader %_9.0.i.i.i.i3.i.i.i.i.i136.unr = phi i64 [ %_9.0.i.i.i.i3.i.i.i.i.i136.ph, %bb3.i.i.i.i.i135.preheader ], [ %_9.0.i.i.i.i.i.i.i.i.i138.prol, %bb3.i.i.i.i.i135.prol ] %230 = sub i64 %_9.0.i.i.i.i3.i.i.i.i.i136.ph, %n %231 = icmp ugt i64 %230, -8 br i1 %231, label %bb35.preheader, label %bb3.i.i.i.i.i135.preheader.new bb3.i.i.i.i.i135.preheader.new: ; preds = %bb3.i.i.i.i.i135.prol.loopexit %invariant.gep778 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 1 %invariant.gep780 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 2 %invariant.gep782 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 3 %invariant.gep784 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 4 %invariant.gep786 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 5 %invariant.gep788 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 6 %invariant.gep790 = getelementptr %"num_complex::Complex", ptr %_6.i.i131144, i64 7 br label %bb3.i.i.i.i.i135 bb3.i.i.i.i.i135: ; preds = %bb3.i.i.i.i.i135, %bb3.i.i.i.i.i135.preheader.new %_9.0.i.i.i.i3.i.i.i.i.i136 = phi i64 [ %_9.0.i.i.i.i3.i.i.i.i.i136.unr, %bb3.i.i.i.i.i135.preheader.new ], [ %_9.0.i.i.i.i.i.i.i.i.i138.7, %bb3.i.i.i.i.i135 ] %self1.i.i.i.i.i.i.i.i.i.i.i137 = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %self1.i.i.i.i.i.i.i.i.i.i.i137, align 8, !noalias !6615 %gep779 = getelementptr %"num_complex::Complex", ptr %invariant.gep778, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep779, align 8, !noalias !6615 %gep781 = getelementptr %"num_complex::Complex", ptr %invariant.gep780, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep781, align 8, !noalias !6615 %gep783 = getelementptr %"num_complex::Complex", ptr %invariant.gep782, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep783, align 8, !noalias !6615 %gep785 = getelementptr %"num_complex::Complex", ptr %invariant.gep784, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep785, align 8, !noalias !6615 %gep787 = getelementptr %"num_complex::Complex", ptr %invariant.gep786, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep787, align 8, !noalias !6615 %gep789 = getelementptr %"num_complex::Complex", ptr %invariant.gep788, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep789, align 8, !noalias !6615 %gep791 = getelementptr %"num_complex::Complex", ptr %invariant.gep790, i64 %_9.0.i.i.i.i3.i.i.i.i.i136 store <2 x double> , ptr %gep791, align 8, !noalias !6615 %_9.0.i.i.i.i.i.i.i.i.i138.7 = add nuw i64 %_9.0.i.i.i.i3.i.i.i.i.i136, 8 %exitcond.not.i139.7 = icmp eq i64 %_9.0.i.i.i.i.i.i.i.i.i138.7, %n br i1 %exitcond.not.i139.7, label %bb35.preheader, label %bb3.i.i.i.i.i135, !llvm.loop !6644 bb35.preheader: ; preds = %bb3.i.i.i.i.i135.prol.loopexit, %bb3.i.i.i.i.i135, %middle.block597 %_47 = uitofp i64 %n to double %theta = fdiv double -2.000000e+00, %_47 %end_or_len = getelementptr inbounds %"num_complex::Complex", ptr %_6.i.i131144, i64 %n %232 = add i64 %n, 1152921504606846975 %233 = and i64 %232, 1152921504606846975 %234 = add nuw nsw i64 %233, 1 %min.iters.check610 = icmp ult i64 %233, 3 br i1 %min.iters.check610, label %bb35.preheader648, label %vector.ph611 vector.ph611: ; preds = %bb35.preheader %n.vec613 = and i64 %234, 2305843009213693948 %235 = shl i64 %n.vec613, 4 %ind.end = getelementptr i8, ptr %_6.i.i131144, i64 %235 %broadcast.splatinsert = insertelement <4 x double> poison, double %theta, i64 0 %broadcast.splat = shufflevector <4 x double> %broadcast.splatinsert, <4 x double> poison, <4 x i32> zeroinitializer br label %vector.body617 vector.body617: ; preds = %vector.body617, %vector.ph611 %index618 = phi i64 [ 0, %vector.ph611 ], [ %index.next619, %vector.body617 ] %vec.ind = phi <4 x i64> [ , %vector.ph611 ], [ %vec.ind.next, %vector.body617 ] %236 = shl i64 %index618, 4 %next.gep = getelementptr i8, ptr %_6.i.i131144, i64 %236 %237 = uitofp <4 x i64> %vec.ind to <4 x double> %238 = fmul <4 x double> %broadcast.splat, %237 %239 = fmul <4 x double> %238, zeroinitializer %240 = call <4 x double> @llvm.fabs.v4f64(<4 x double> %238) %241 = fcmp olt <4 x double> %240, %242 = select <4 x i1> %241, <4 x double> %238, <4 x double> %239 %243 = fadd <4 x double> %242, %242 %244 = call <4 x double> @llvm.round.v4f64(<4 x double> %243) %245 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> %244) %246 = call <4 x double> @llvm.fma.v4f64(<4 x double> %244, <4 x double> , <4 x double> %242) %247 = fmul <4 x double> %246, %246 %248 = call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> ) %249 = call <4 x double> @llvm.fma.v4f64(<4 x double> %248, <4 x double> %247, <4 x double> ) %250 = call <4 x double> @llvm.fma.v4f64(<4 x double> %249, <4 x double> %247, <4 x double> ) %251 = call <4 x double> @llvm.fma.v4f64(<4 x double> %250, <4 x double> %247, <4 x double> ) %252 = call <4 x double> @llvm.fma.v4f64(<4 x double> %251, <4 x double> %247, <4 x double> ) %253 = call <4 x double> @llvm.fma.v4f64(<4 x double> %252, <4 x double> %247, <4 x double> ) %254 = call <4 x double> @llvm.fma.v4f64(<4 x double> %253, <4 x double> %247, <4 x double> ) %255 = call <4 x double> @llvm.fma.v4f64(<4 x double> %247, <4 x double> , <4 x double> ) %256 = call <4 x double> @llvm.fma.v4f64(<4 x double> %255, <4 x double> %247, <4 x double> ) %257 = call <4 x double> @llvm.fma.v4f64(<4 x double> %256, <4 x double> %247, <4 x double> ) %258 = call <4 x double> @llvm.fma.v4f64(<4 x double> %257, <4 x double> %247, <4 x double> ) %259 = call <4 x double> @llvm.fma.v4f64(<4 x double> %258, <4 x double> %247, <4 x double> ) %260 = fmul <4 x double> %246, %247 %261 = fmul <4 x double> %260, %259 %262 = call <4 x double> @llvm.fma.v4f64(<4 x double> %246, <4 x double> , <4 x double> %261) %263 = and <4 x i64> %245, %264 = icmp eq <4 x i64> %263, zeroinitializer %265 = fsub <4 x double> zeroinitializer, %262 %266 = fsub <4 x double> zeroinitializer, %254 %267 = select <4 x i1> %264, <4 x double> %254, <4 x double> %266 %268 = select <4 x i1> %264, <4 x double> %262, <4 x double> %265 %269 = and <4 x i64> %245, %270 = icmp eq <4 x i64> %269, zeroinitializer %271 = fsub <4 x double> zeroinitializer, %268 %272 = select <4 x i1> %270, <4 x double> %267, <4 x double> %271 %273 = select <4 x i1> %270, <4 x double> %268, <4 x double> %267 %274 = call <4 x double> @llvm.floor.v4f64(<4 x double> %242) %275 = fcmp oeq <4 x double> %242, %274 %276 = select <4 x i1> %275, <4 x double> %239, <4 x double> %273 %interleaved.vec = shufflevector <4 x double> %272, <4 x double> %276, <8 x i32> store <8 x double> %interleaved.vec, ptr %next.gep, align 8 %index.next619 = add nuw i64 %index618, 4 %vec.ind.next = add <4 x i64> %vec.ind, %277 = icmp eq i64 %index.next619, %n.vec613 br i1 %277, label %middle.block608, label %vector.body617, !llvm.loop !6645 middle.block608: ; preds = %vector.body617 %cmp.n616 = icmp eq i64 %234, %n.vec613 br i1 %cmp.n616, label %bb34, label %bb35.preheader648 bb35.preheader648: ; preds = %bb35.preheader, %middle.block608 %iter.sroa.7.0430.ph = phi i64 [ 0, %bb35.preheader ], [ %n.vec613, %middle.block608 ] %iter.sroa.0.0429.ph = phi ptr [ %_6.i.i131144, %bb35.preheader ], [ %ind.end, %middle.block608 ] br label %bb35 bb54.thread474: ; preds = %bb49 %278 = shl nsw i64 %n, 3 call void @__rust_dealloc(ptr noundef nonnull %this.sroa.0.0.i162487, i64 noundef %278, i64 noundef 128) #23, !noalias !6646 %279 = shl nsw i64 %n, 4 call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i141480482486, i64 noundef %279, i64 noundef 128) #23, !noalias !6604 br label %bb52 bb34: ; preds = %bb35, %middle.block608 br i1 %213, label %bb40, label %bb2.i.i.i.i bb2.i.i.i.i: ; preds = %bb34 ; invoke aligned_vec::raw::with_capacity_unchecked %_6.i.i160164 = invoke noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef %n, i64 noundef 128, i64 noundef 8) to label %bb39.lr.ph unwind label %bb54 bb39.lr.ph: ; preds = %bb2.i.i.i.i %280 = icmp ne ptr %_6.i.i160164, null call void @llvm.assume(i1 %280) %281 = shl nuw i64 %n, 3 call void @llvm.memset.p0.i64(ptr nonnull align 8 %_6.i.i160164, i8 0, i64 %281, i1 false), !noalias !6651 %end_or_len24 = getelementptr inbounds i64, ptr %_6.i.i160164, i64 %n %282 = call i64 @llvm.cttz.i64(i64 %_156.0, i1 false), !range !750 %283 = call i64 @llvm.cttz.i64(i64 %n, i1 true), !range !750 %284 = and i64 %282, 63 %notmask = shl nsw i64 -1, %284 %_148 = sub nsw i64 0, %282 %285 = and i64 %_148, 63 %_152 = sub nsw i64 0, %283 %286 = and i64 %_152, 63 %287 = add i64 %n, 2305843009213693951 %288 = and i64 %287, 2305843009213693951 %289 = add nuw nsw i64 %288, 1 %min.iters.check622 = icmp ult i64 %288, 15 br i1 %min.iters.check622, label %bb39.preheader, label %vector.ph623 vector.ph623: ; preds = %bb39.lr.ph %n.vec625 = and i64 %289, 4611686018427387888 %290 = shl i64 %n.vec625, 3 %ind.end627 = getelementptr i8, ptr %_6.i.i160164, i64 %290 %broadcast.splatinsert641 = insertelement <4 x i64> poison, i64 %285, i64 0 %broadcast.splat642 = shufflevector <4 x i64> %broadcast.splatinsert641, <4 x i64> poison, <4 x i32> zeroinitializer %broadcast.splatinsert643 = insertelement <4 x i64> poison, i64 %notmask, i64 0 %broadcast.splat644 = shufflevector <4 x i64> %broadcast.splatinsert643, <4 x i64> poison, <4 x i32> zeroinitializer %broadcast.splatinsert645 = insertelement <4 x i64> poison, i64 %286, i64 0 %broadcast.splat646 = shufflevector <4 x i64> %broadcast.splatinsert645, <4 x i64> poison, <4 x i32> zeroinitializer br label %vector.body630 vector.body630: ; preds = %vector.body630, %vector.ph623 %index631 = phi i64 [ 0, %vector.ph623 ], [ %index.next647, %vector.body630 ] %vec.ind632 = phi <4 x i64> [ , %vector.ph623 ], [ %vec.ind.next636, %vector.body630 ] %step.add = add <4 x i64> %vec.ind632, %step.add633 = add <4 x i64> %vec.ind632, %step.add634 = add <4 x i64> %vec.ind632, %291 = shl i64 %index631, 3 %next.gep637 = getelementptr i8, ptr %_6.i.i160164, i64 %291 %292 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %vec.ind632) %293 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %step.add) %294 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %step.add633) %295 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %step.add634) %296 = lshr <4 x i64> %292, %broadcast.splat642 %297 = lshr <4 x i64> %293, %broadcast.splat642 %298 = lshr <4 x i64> %294, %broadcast.splat642 %299 = lshr <4 x i64> %295, %broadcast.splat642 %300 = and <4 x i64> %vec.ind632, %broadcast.splat644 %301 = and <4 x i64> %step.add, %broadcast.splat644 %302 = and <4 x i64> %step.add633, %broadcast.splat644 %303 = and <4 x i64> %step.add634, %broadcast.splat644 %304 = or <4 x i64> %296, %300 %305 = or <4 x i64> %297, %301 %306 = or <4 x i64> %298, %302 %307 = or <4 x i64> %299, %303 %308 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %304) %309 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %305) %310 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %306) %311 = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %307) %312 = lshr <4 x i64> %308, %broadcast.splat646 %313 = lshr <4 x i64> %309, %broadcast.splat646 %314 = lshr <4 x i64> %310, %broadcast.splat646 %315 = lshr <4 x i64> %311, %broadcast.splat646 %316 = getelementptr i64, ptr %next.gep637, i64 4 %317 = getelementptr i64, ptr %next.gep637, i64 8 %318 = getelementptr i64, ptr %next.gep637, i64 12 store <4 x i64> %312, ptr %next.gep637, align 8 store <4 x i64> %313, ptr %316, align 8 store <4 x i64> %314, ptr %317, align 8 store <4 x i64> %315, ptr %318, align 8 %index.next647 = add nuw i64 %index631, 16 %vec.ind.next636 = add <4 x i64> %vec.ind632, %319 = icmp eq i64 %index.next647, %n.vec625 br i1 %319, label %middle.block620, label %vector.body630, !llvm.loop !6673 middle.block620: ; preds = %vector.body630 %cmp.n629 = icmp eq i64 %289, %n.vec625 br i1 %cmp.n629, label %bb40, label %bb39.preheader bb39.preheader: ; preds = %bb39.lr.ph, %middle.block620 %iter4.sroa.7.0432.ph = phi i64 [ 0, %bb39.lr.ph ], [ %n.vec625, %middle.block620 ] %iter4.sroa.0.0431.ph = phi ptr [ %_6.i.i160164, %bb39.lr.ph ], [ %ind.end627, %middle.block620 ] br label %bb39 bb49: ; preds = %cleanup26, %bb1.i.i.i.i300 br i1 %213, label %bb52, label %bb54.thread474 bb40: ; preds = %bb39, %middle.block620, %bb29, %bb34 %this.sroa.0.0.i162487 = phi ptr [ inttoptr (i64 128 to ptr), %bb34 ], [ inttoptr (i64 128 to ptr), %bb29 ], [ %_6.i.i160164, %middle.block620 ], [ %_6.i.i160164, %bb39 ] %_0.sroa.0.0.i27.i141480482486 = phi ptr [ %_6.i.i131144, %bb34 ], [ inttoptr (i64 128 to ptr), %bb29 ], [ %_6.i.i131144, %middle.block620 ], [ %_6.i.i131144, %bb39 ] %320 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i189 = icmp eq i8 %320, -1 br i1 %_3.i.i189, label %bb1.i.i201, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i190 bb1.i.i201: ; preds = %bb40 ; invoke pulp::x86::V4::__detect_is_available %_5.i.i202203 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i202.noexc unwind label %cleanup26 _5.i.i202.noexc: ; preds = %bb1.i.i201 %321 = zext i1 %_5.i.i202203 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i190 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i190: ; preds = %_5.i.i202.noexc, %bb40 %available.0.i.i191 = phi i8 [ %321, %_5.i.i202.noexc ], [ %320, %bb40 ] %_0.i.not.i192 = icmp eq i8 %available.0.i.i191, 0 br i1 %_0.i.not.i192, label %bb2.i195, label %bb41 bb2.i195: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i190 %322 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i196 = icmp eq i8 %322, -1 br i1 %_3.i1.i196, label %bb1.i4.i200, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i197 bb1.i4.i200: ; preds = %bb2.i195 ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i205 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc204 unwind label %cleanup26 _5.i5.i.noexc204: ; preds = %bb1.i4.i200 %323 = zext i1 %_5.i5.i205 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i197 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i197: ; preds = %_5.i5.i.noexc204, %bb2.i195 %available.0.i2.i198 = phi i8 [ %323, %_5.i5.i.noexc204 ], [ %322, %bb2.i195 ] %_0.i3.not.i199 = icmp eq i8 %available.0.i2.i198, 0 %spec.select.i = select i1 %_0.i3.not.i199, ptr @_ZN4core3ops8function6FnOnce9call_once17h8627f190de1074bfE, ptr @_ZN4core3ops8function6FnOnce9call_once17h958f24fcb64f21a5E br label %bb41 bb39: ; preds = %bb39.preheader, %bb39 %iter4.sroa.7.0432 = phi i64 [ %_8.0.i183, %bb39 ], [ %iter4.sroa.7.0432.ph, %bb39.preheader ] %iter4.sroa.0.0431 = phi ptr [ %_30.i.i181, %bb39 ], [ %iter4.sroa.0.0431.ph, %bb39.preheader ] %_8.0.i183 = add nuw nsw i64 %iter4.sroa.7.0432, 1 %_30.i.i181 = getelementptr inbounds i64, ptr %iter4.sroa.0.0431, i64 1 %324 = call i64 @llvm.bitreverse.i64(i64 %iter4.sroa.7.0432) %bottom_bits = lshr i64 %324, %285 %_145 = and i64 %iter4.sroa.7.0432, %notmask %i_rev = or i64 %bottom_bits, %_145 %325 = call i64 @llvm.bitreverse.i64(i64 %i_rev) %_76 = lshr i64 %325, %286 store i64 %_76, ptr %iter4.sroa.0.0431, align 8 %326 = icmp eq ptr %_30.i.i181, %end_or_len24 br i1 %326, label %bb40, label %bb39, !llvm.loop !6674 cleanup26: ; preds = %bb1.i4.i293, %bb1.i.i294, %bb1.i4.i275, %bb1.i.i276, %bb1.i4.i257, %bb1.i.i258, %bb1.i4.i239, %bb1.i.i240, %bb1.i4.i221, %bb1.i.i222, %bb1.i4.i200, %bb1.i.i201 %327 = landingpad { ptr, i32 } cleanup br i1 %123, label %bb49, label %bb1.i.i.i.i300 bb41: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i197, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i190 %_0.0.i194 = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17hc5f42ab7708c828bE, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i190 ], [ %spec.select.i, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i197 ] %328 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i209 = icmp eq i8 %328, -1 br i1 %_3.i.i209, label %bb1.i.i222, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i210 bb1.i.i222: ; preds = %bb41 ; invoke pulp::x86::V4::__detect_is_available %_5.i.i223224 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i223.noexc unwind label %cleanup26 _5.i.i223.noexc: ; preds = %bb1.i.i222 %329 = zext i1 %_5.i.i223224 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i210 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i210: ; preds = %_5.i.i223.noexc, %bb41 %available.0.i.i211 = phi i8 [ %329, %_5.i.i223.noexc ], [ %328, %bb41 ] %_0.i.not.i212 = icmp eq i8 %available.0.i.i211, 0 br i1 %_0.i.not.i212, label %bb2.i215, label %bb42 bb2.i215: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i210 %330 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i216 = icmp eq i8 %330, -1 br i1 %_3.i1.i216, label %bb1.i4.i221, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i217 bb1.i4.i221: ; preds = %bb2.i215 ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i226 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc225 unwind label %cleanup26 _5.i5.i.noexc225: ; preds = %bb1.i4.i221 %331 = zext i1 %_5.i5.i226 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i217 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i217: ; preds = %_5.i5.i.noexc225, %bb2.i215 %available.0.i2.i218 = phi i8 [ %331, %_5.i5.i.noexc225 ], [ %330, %bb2.i215 ] %_0.i3.not.i219 = icmp eq i8 %available.0.i2.i218, 0 %spec.select.i220 = select i1 %_0.i3.not.i219, ptr @_ZN4core3ops8function6FnOnce9call_once17h2cebb053acc32075E, ptr @_ZN4core3ops8function6FnOnce9call_once17h4a5102123bb237f3E br label %bb42 bb42: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i217, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i210 %_0.0.i214 = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17h71ef7fd3ea55d378E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i210 ], [ %spec.select.i220, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i217 ] %332 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i227 = icmp eq i8 %332, -1 br i1 %_3.i.i227, label %bb1.i.i240, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i228 bb1.i.i240: ; preds = %bb42 ; invoke pulp::x86::V4::__detect_is_available %_5.i.i241242 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i241.noexc unwind label %cleanup26 _5.i.i241.noexc: ; preds = %bb1.i.i240 %333 = zext i1 %_5.i.i241242 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i228 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i228: ; preds = %_5.i.i241.noexc, %bb42 %available.0.i.i229 = phi i8 [ %333, %_5.i.i241.noexc ], [ %332, %bb42 ] %_0.i.not.i230 = icmp eq i8 %available.0.i.i229, 0 br i1 %_0.i.not.i230, label %bb2.i233, label %bb43 bb2.i233: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i228 %334 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i234 = icmp eq i8 %334, -1 br i1 %_3.i1.i234, label %bb1.i4.i239, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i235 bb1.i4.i239: ; preds = %bb2.i233 ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i244 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc243 unwind label %cleanup26 _5.i5.i.noexc243: ; preds = %bb1.i4.i239 %335 = zext i1 %_5.i5.i244 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i235 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i235: ; preds = %_5.i5.i.noexc243, %bb2.i233 %available.0.i2.i236 = phi i8 [ %335, %_5.i5.i.noexc243 ], [ %334, %bb2.i233 ] %_0.i3.not.i237 = icmp eq i8 %available.0.i2.i236, 0 %spec.select.i238 = select i1 %_0.i3.not.i237, ptr @_ZN4core3ops8function6FnOnce9call_once17h8fb3d64614ebdcf8E, ptr @_ZN4core3ops8function6FnOnce9call_once17h9dcd09aca5020000E br label %bb43 bb43: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i235, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i228 %_0.0.i232 = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17h98a2e0d7bc7ecf11E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i228 ], [ %spec.select.i238, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i235 ] %336 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i245 = icmp eq i8 %336, -1 br i1 %_3.i.i245, label %bb1.i.i258, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i246 bb1.i.i258: ; preds = %bb43 ; invoke pulp::x86::V4::__detect_is_available %_5.i.i259260 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i259.noexc unwind label %cleanup26 _5.i.i259.noexc: ; preds = %bb1.i.i258 %337 = zext i1 %_5.i.i259260 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i246 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i246: ; preds = %_5.i.i259.noexc, %bb43 %available.0.i.i247 = phi i8 [ %337, %_5.i.i259.noexc ], [ %336, %bb43 ] %_0.i.not.i248 = icmp eq i8 %available.0.i.i247, 0 br i1 %_0.i.not.i248, label %bb2.i251, label %bb44 bb2.i251: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i246 %338 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i252 = icmp eq i8 %338, -1 br i1 %_3.i1.i252, label %bb1.i4.i257, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i253 bb1.i4.i257: ; preds = %bb2.i251 ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i262 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc261 unwind label %cleanup26 _5.i5.i.noexc261: ; preds = %bb1.i4.i257 %339 = zext i1 %_5.i5.i262 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i253 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i253: ; preds = %_5.i5.i.noexc261, %bb2.i251 %available.0.i2.i254 = phi i8 [ %339, %_5.i5.i.noexc261 ], [ %338, %bb2.i251 ] %_0.i3.not.i255 = icmp eq i8 %available.0.i2.i254, 0 %spec.select.i256 = select i1 %_0.i3.not.i255, ptr @_ZN4core3ops8function6FnOnce9call_once17h49e1aab93503da34E, ptr @_ZN4core3ops8function6FnOnce9call_once17h9283ae853b64937dE br label %bb44 bb44: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i253, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i246 %_0.0.i250 = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17h318cf9026bb13870E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i246 ], [ %spec.select.i256, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i253 ] %340 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i263 = icmp eq i8 %340, -1 br i1 %_3.i.i263, label %bb1.i.i276, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i264 bb1.i.i276: ; preds = %bb44 ; invoke pulp::x86::V4::__detect_is_available %_5.i.i277278 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i277.noexc unwind label %cleanup26 _5.i.i277.noexc: ; preds = %bb1.i.i276 %341 = zext i1 %_5.i.i277278 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i264 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i264: ; preds = %_5.i.i277.noexc, %bb44 %available.0.i.i265 = phi i8 [ %341, %_5.i.i277.noexc ], [ %340, %bb44 ] %_0.i.not.i266 = icmp eq i8 %available.0.i.i265, 0 br i1 %_0.i.not.i266, label %bb2.i269, label %bb45 bb2.i269: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i264 %342 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i270 = icmp eq i8 %342, -1 br i1 %_3.i1.i270, label %bb1.i4.i275, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i271 bb1.i4.i275: ; preds = %bb2.i269 ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i280 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc279 unwind label %cleanup26 _5.i5.i.noexc279: ; preds = %bb1.i4.i275 %343 = zext i1 %_5.i5.i280 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i271 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i271: ; preds = %_5.i5.i.noexc279, %bb2.i269 %available.0.i2.i272 = phi i8 [ %343, %_5.i5.i.noexc279 ], [ %342, %bb2.i269 ] %_0.i3.not.i273 = icmp eq i8 %available.0.i2.i272, 0 %spec.select.i274 = select i1 %_0.i3.not.i273, ptr @_ZN4core3ops8function6FnOnce9call_once17h1725b205673979f9E, ptr @_ZN4core3ops8function6FnOnce9call_once17hd394cd621ed4c802E br label %bb45 bb45: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i271, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i264 %_0.0.i268 = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17h16c70899b49d8857E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i264 ], [ %spec.select.i274, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i271 ] %344 = load atomic i8, ptr @_ZN4pulp3x862V418__static_available9AVAILABLE17h472c14c46f4882adE monotonic, align 1 %_3.i.i281 = icmp eq i8 %344, -1 br i1 %_3.i.i281, label %bb1.i.i294, label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i282 bb1.i.i294: ; preds = %bb45 ; invoke pulp::x86::V4::__detect_is_available %_5.i.i295296 = invoke noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() to label %_5.i.i295.noexc unwind label %cleanup26 _5.i.i295.noexc: ; preds = %bb1.i.i294 %345 = zext i1 %_5.i.i295296 to i8 br label %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i282 _ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i282: ; preds = %_5.i.i295.noexc, %bb45 %available.0.i.i283 = phi i8 [ %345, %_5.i.i295.noexc ], [ %344, %bb45 ] %_0.i.not.i284 = icmp eq i8 %available.0.i.i283, 0 br i1 %_0.i.not.i284, label %bb2.i287, label %bb46 bb2.i287: ; preds = %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i282 %346 = load atomic i8, ptr @_ZN4pulp3x862V318__static_available9AVAILABLE17h4688ed523efc59b3E monotonic, align 1 %_3.i1.i288 = icmp eq i8 %346, -1 br i1 %_3.i1.i288, label %bb1.i4.i293, label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i289 bb1.i4.i293: ; preds = %bb2.i287 ; invoke pulp::x86::V3::__detect_is_available %_5.i5.i298 = invoke noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() to label %_5.i5.i.noexc297 unwind label %cleanup26 _5.i5.i.noexc297: ; preds = %bb1.i4.i293 %347 = zext i1 %_5.i5.i298 to i8 br label %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i289 _ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i289: ; preds = %_5.i5.i.noexc297, %bb2.i287 %available.0.i2.i290 = phi i8 [ %347, %_5.i5.i.noexc297 ], [ %346, %bb2.i287 ] %_0.i3.not.i291 = icmp eq i8 %available.0.i2.i290, 0 %spec.select.i292 = select i1 %_0.i3.not.i291, ptr @_ZN4core3ops8function6FnOnce9call_once17h5b4d4673b4a9cda8E, ptr @_ZN4core3ops8function6FnOnce9call_once17h1fa4449d1f3169d2E br label %bb46 bb46: ; preds = %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i289, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i282 %_0.0.i286 = phi ptr [ @_ZN4core3ops8function6FnOnce9call_once17ha6cac99d127333e4E, %_ZN4pulp3x862V412is_available17hf50338d9fc432e40E.exit.i282 ], [ %spec.select.i292, %_ZN4pulp3x862V312is_available17hc54cfe8d6453715fE.exit.i289 ] store ptr %_0.sroa.0.0.i27.i141480482486, ptr %_0, align 8 %348 = getelementptr inbounds i8, ptr %_0, i64 8 store i64 %n, ptr %348, align 8 %349 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 1 store ptr %this.sroa.0.0.i162487, ptr %349, align 8 %350 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 1, i32 0, i32 0, i32 1 store i64 %n, ptr %350, align 8 %351 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 2 store ptr %_0.sroa.0.0.i27.i323, ptr %351, align 8 %352 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 2, i32 0, i32 0, i32 1 store i64 %count, ptr %352, align 8 %353 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 3 store ptr %_0.sroa.0.0.i27.i94, ptr %353, align 8 %354 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 3, i32 0, i32 0, i32 1 store i64 %count, ptr %354, align 8 %355 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 4 store ptr %_0.0.i194, ptr %355, align 8 %356 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 5 store ptr %_0.0.i214, ptr %356, align 8 %357 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 6 store ptr %_0.0.i232, ptr %357, align 8 %358 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 7 store ptr %_0.0.i250, ptr %358, align 8 %359 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 8 store ptr %_0.0.i268, ptr %359, align 8 %360 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 9 store ptr %_0.0.i286, ptr %360, align 8 %361 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 12 store i64 %_156.0, ptr %361, align 8 %362 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 10 store <2 x ptr> %122, ptr %362, align 8 %363 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 14 store i8 %_155.0, ptr %363, align 8 %364 = getelementptr inbounds %"unordered::Plan", ptr %_0, i64 0, i32 13 store i64 %n, ptr %364, align 8 ret void bb1.i.i.i.i300: ; preds = %cleanup26 %365 = shl nsw i64 %count, 4 call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i94, i64 noundef %365, i64 noundef 128) #23, !noalias !6675 call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i323, i64 noundef %365, i64 noundef 128) #23, !noalias !6680 br label %bb49 bb35: ; preds = %bb35.preheader648, %bb35 %iter.sroa.7.0430 = phi i64 [ %_8.0.i, %bb35 ], [ %iter.sroa.7.0430.ph, %bb35.preheader648 ] %iter.sroa.0.0429 = phi ptr [ %_30.i.i, %bb35 ], [ %iter.sroa.0.0429.ph, %bb35.preheader648 ] %_8.0.i = add nuw nsw i64 %iter.sroa.7.0430, 1 %_30.i.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.sroa.0.0429, i64 1 %_61 = uitofp i64 %iter.sroa.7.0430 to double %_60 = fmul double %theta, %_61 %az.i = fmul double %_60, 0.000000e+00 %366 = call double @llvm.fabs.f64(double %_60) %_5.i = fcmp olt double %366, 0x4340000000000000 %.az.i = select i1 %_5.i, double %_60, double %az.i %self1.i = fadd double %.az.i, %.az.i %367 = call double @llvm.round.f64(double %self1.i) %i.i165 = call i64 @llvm.fptosi.sat.i64.f64(double %367) %368 = call double @llvm.fma.f64(double %367, double -5.000000e-01, double %.az.i) %s3.i = fmul double %368, %368 %369 = call double @llvm.fma.f64(double %s3.i, double 0xBF1B2F223DF6F197, double 0x3F5F9CE1F05EB467) %370 = call double @llvm.fma.f64(double %369, double %s3.i, double 0xBF9A6D1EEEE76526) %371 = call double @llvm.fma.f64(double %370, double %s3.i, double 0x3FCE1F506868296A) %372 = call double @llvm.fma.f64(double %371, double %s3.i, double 0xBFF55D3C7E3CB219) %373 = call double @llvm.fma.f64(double %372, double %s3.i, double 0x40103C1F081B5ABD) %374 = call double @llvm.fma.f64(double %373, double %s3.i, double 0xC013BD3CC9BE45DE) %375 = call double @llvm.fma.f64(double %374, double %s3.i, double 1.000000e+00) %376 = call double @llvm.fma.f64(double %s3.i, double 0x3F3E3EED5CE53E6A, double 0xBF7E30063A029A73) %377 = call double @llvm.fma.f64(double %376, double %s3.i, double 0x3FB50782FCA38B8E) %378 = call double @llvm.fma.f64(double %377, double %s3.i, double 0xBFE32D2CCE2D535E) %379 = call double @llvm.fma.f64(double %378, double %s3.i, double 0x400466BC67758706) %380 = call double @llvm.fma.f64(double %379, double %s3.i, double 0xC014ABBCE625BE3E) %s16.i = fmul double %368, %s3.i %381 = fmul double %s16.i, %380 %382 = call double @llvm.fma.f64(double %368, double 0x400921FB54442D18, double %381) %_45.i = and i64 %i.i165, 2 %383 = icmp eq i64 %_45.i, 0 %384 = fsub double 0.000000e+00, %382 %385 = fsub double 0.000000e+00, %375 %c.0.i = select i1 %383, double %375, double %385 %s.0.i = select i1 %383, double %382, double %384 %_48.i = and i64 %i.i165, 1 %386 = icmp eq i64 %_48.i, 0 %t18.i = fsub double 0.000000e+00, %s.0.i %c.1.i = select i1 %386, double %c.0.i, double %t18.i %s.1.i = select i1 %386, double %s.0.i, double %c.0.i %387 = call double @llvm.floor.f64(double %.az.i) %_52.i = fcmp oeq double %.az.i, %387 %s.2.i = select i1 %_52.i, double %az.i, double %s.1.i store double %c.1.i, ptr %iter.sroa.0.0429, align 8 %388 = getelementptr inbounds i8, ptr %iter.sroa.0.0429, i64 8 store double %s.2.i, ptr %388, align 8 %389 = icmp eq ptr %_30.i.i, %end_or_len br i1 %389, label %bb34, label %bb35, !llvm.loop !6685 bb53: ; preds = %bb54, %bb54.thread %.pn.pn.pn336 = phi { ptr, i32 } [ %180, %bb54.thread ], [ %178, %bb54 ] br i1 %123, label %bb52, label %bb1.i.i.i.i303 bb1.i.i.i.i303: ; preds = %bb53 %390 = shl nsw i64 %count, 4 call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i94, i64 noundef %390, i64 noundef 128) #23, !noalias !6686 br label %bb1.i.i.i.i306 bb52: ; preds = %bb49, %bb54.thread474, %bb53, %bb1.i.i.i.i306, %bb1.i.i.i99, %cleanup %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.phi, %cleanup ], [ %lpad.phi, %bb1.i.i.i99 ], [ %.pn.pn.pn.pn330355, %bb1.i.i.i.i306 ], [ %.pn.pn.pn336, %bb53 ], [ %327, %bb54.thread474 ], [ %327, %bb49 ] resume { ptr, i32 } %.pn.pn.pn.pn.pn bb1.i.i.i.i306: ; preds = %cleanup15, %bb1.i.i.i.i303 %.pre-phi = phi i64 [ %.pre, %cleanup15 ], [ %390, %bb1.i.i.i.i303 ] %_0.sroa.0.0.i27.i319329356 = phi ptr [ %_6.i.i, %cleanup15 ], [ %_0.sroa.0.0.i27.i323, %bb1.i.i.i.i303 ] %.pn.pn.pn.pn330355 = phi { ptr, i32 } [ %172, %cleanup15 ], [ %.pn.pn.pn336, %bb1.i.i.i.i303 ] call void @__rust_dealloc(ptr noundef nonnull %_0.sroa.0.0.i27.i319329356, i64 noundef %.pre-phi, i64 noundef 128) #23, !noalias !6691 br label %bb52 } ; concrete_fft::unordered::Plan::fft_scratch ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define { i64, i64 } @_ZN12concrete_fft9unordered4Plan11fft_scratch17h0d8d148441490cbdE(ptr noalias nocapture noundef readonly align 8 dereferenceable(152) %self) unnamed_addr #11 { start: %0 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 12 %_2 = load i64, ptr %0, align 8, !noundef !3 %_18.1.i = icmp ugt i64 %_2, 1152921504606846975 %_0.sroa.0.0.i = select i1 %_18.1.i, i64 0, i64 128 %_18.0.i = shl i64 %_2, 4 %1 = insertvalue { i64, i64 } poison, i64 %_0.sroa.0.0.i, 0 %2 = insertvalue { i64, i64 } %1, i64 %_18.0.i, 1 ret { i64, i64 } %2 } ; concrete_fft::unordered::Plan::fwd ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft9unordered4Plan3fwd17h8debadcf82bfa663E(ptr noalias nocapture noundef readonly align 8 dereferenceable(152) %self, ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 1 %stack.0, i64 noundef %stack.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_24.i.i.i = alloca i64, align 8 %_15.i.i.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i = alloca i64, align 8 %remaining_len.i.i.i = alloca i64, align 8 %_12.i5.i.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i = alloca i64, align 8 %align.i.i.i = alloca i64, align 8 %len.i.i.i = alloca i64, align 8 %_12 = alloca %"core::option::Option>", align 8 %_7 = alloca i64, align 8 %_5 = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_5) %0 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 13 %1 = load i64, ptr %0, align 8, !noundef !3 store i64 %1, ptr %_5, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_7) store i64 %buf.1, ptr %_7, align 8 %_8 = icmp eq i64 %1, %buf.1 br i1 %_8, label %bb1, label %bb2 bb2: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12) store ptr null, ptr %_12, align 8 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_5, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_7, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_86d6454de431c621dc87a6776e0ff7ff) #22 unreachable bb1: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_7) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_5) %2 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 12 %_24 = load i64, ptr %2, align 8, !noundef !3 %addr.i.i.i = ptrtoint ptr %stack.0 to i64 %_9.i.i.i = add i64 %addr.i.i.i, 127 %aligned_address.i.i.i = and i64 %_9.i.i.i, -128 %byte_offset.i.i.i = sub i64 %aligned_address.i.i.i, %addr.i.i.i %_12.i.i.i = icmp ult i64 %byte_offset.i.i.i, 128 tail call void @llvm.assume(i1 %_12.i.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6696 store i64 %stack.1, ptr %len.i.i.i, align 8, !noalias !6705 store i64 128, ptr %align.i.i.i, align 8, !noalias !6705 store i64 %byte_offset.i.i.i, ptr %align_offset.i.i.i, align 8, !noalias !6705 %_4.not.i.i.i = icmp ugt i64 %byte_offset.i.i.i, %stack.1 br i1 %_4.not.i.i.i, label %bb2.i.i.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i bb2.i.i.i: ; preds = %bb1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i), !noalias !6705 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i), !noalias !6705 store ptr %align.i.i.i, ptr %_12.i5.i.i, align 8, !noalias !6705 %3 = getelementptr inbounds i8, ptr %_12.i5.i.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %3, align 8, !noalias !6705 %4 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1 store ptr %align_offset.i.i.i, ptr %4, align 8, !noalias !6705 %5 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %5, align 8, !noalias !6705 %6 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2 store ptr %len.i.i.i, ptr %6, align 8, !noalias !6705 %7 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %7, align 8, !noalias !6705 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i, align 8, !noalias !6705 %8 = getelementptr inbounds i8, ptr %_8.i.i.i, i64 8 store i64 4, ptr %8, align 8, !noalias !6705 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 2 store ptr null, ptr %9, align 8, !noalias !6705 %10 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1 store ptr %_12.i5.i.i, ptr %10, align 8, !noalias !6705 %11 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1, i32 1 store i64 3, ptr %11, align 8, !noalias !6705 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_a325cd44180ca81be07c363cf3e65625) #22, !noalias !6708 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i: ; preds = %bb1 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6696 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6696 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6696 %len1.i.i = sub i64 %stack.1, %byte_offset.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6696 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6696 store i64 %len1.i.i, ptr %remaining_len.i.i.i, align 8, !noalias !6709 store i64 %_24, ptr %array_len.i.i.i, align 8, !noalias !6709 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i, align 8, !noalias !6709 %12 = getelementptr inbounds i8, ptr %type_name.i.i.i, i64 8 store i64 25, ptr %12, align 8, !noalias !6709 %_71.i.i.i = lshr i64 %len1.i.i, 4 %_6.not.i.i.i = icmp ult i64 %_71.i.i.i, %_24 br i1 %_6.not.i.i.i, label %bb4.i.i.i, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit bb4.i.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i), !noalias !6709 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i), !noalias !6709 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i), !noalias !6709 %13 = shl i64 %_24, 4 store i64 %13, ptr %_24.i.i.i, align 8, !noalias !6709 store ptr %type_name.i.i.i, ptr %_15.i.i.i, align 8, !noalias !6709 %14 = getelementptr inbounds i8, ptr %_15.i.i.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %14, align 8, !noalias !6709 %15 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1 store ptr %remaining_len.i.i.i, ptr %15, align 8, !noalias !6709 %16 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %16, align 8, !noalias !6709 %17 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2 store ptr %array_len.i.i.i, ptr %17, align 8, !noalias !6709 %18 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %18, align 8, !noalias !6709 %19 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3 store ptr %_24.i.i.i, ptr %19, align 8, !noalias !6709 %20 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %20, align 8, !noalias !6709 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i, align 8, !noalias !6709 %21 = getelementptr inbounds i8, ptr %_11.i.i.i, i64 8 store i64 5, ptr %21, align 8, !noalias !6709 %22 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 2 store ptr null, ptr %22, align 8, !noalias !6709 %23 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1 store ptr %_15.i.i.i, ptr %23, align 8, !noalias !6709 %24 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1, i32 1 store i64 4, ptr %24, align 8, !noalias !6709 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_a325cd44180ca81be07c363cf3e65625) #22, !noalias !6708 unreachable _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6696 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6696 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6696 %data2.i.i = getelementptr inbounds i8, ptr %stack.0, i64 %byte_offset.i.i.i %25 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 2 %self.0 = load ptr, ptr %25, align 8, !nonnull !3, !noundef !3 %26 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 2, i32 0, i32 0, i32 1 %self.1 = load i64, ptr %26, align 8, !noundef !3 %27 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 10 %_18 = load ptr, ptr %27, align 8, !nonnull !3, !noundef !3 %28 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 4 %_21 = load ptr, ptr %28, align 8, !nonnull !3, !noundef !3 %29 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 5 %_22 = load ptr, ptr %29, align 8, !nonnull !3, !noundef !3 %30 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 6 %_23 = load ptr, ptr %30, align 8, !nonnull !3, !noundef !3 ; call concrete_fft::unordered::fwd_depth tail call fastcc void @_ZN12concrete_fft9unordered9fwd_depth17h1f12811e1aba27a9E(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull readonly align 8 %self.0, i64 noundef %self.1, ptr noundef nonnull %_18, i64 noundef %_24, ptr noalias noundef nonnull align 8 %data2.i.i, i64 noundef %_24, ptr noundef nonnull %_21, ptr noundef nonnull %_22, ptr noundef nonnull %_23) ret void } ; concrete_fft::unordered::Plan::fwd_monomial ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft9unordered4Plan12fwd_monomial17h1c61474572300538E(ptr noalias noundef readonly align 8 dereferenceable(152) %self, i64 noundef %degree, ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_33.i.i = alloca %"core::option::Option>", align 8 %_27.i.i = alloca i64, align 8 %n.i.i = alloca i64, align 8 %_14.i.i = alloca %"core::option::Option>", align 8 %_9.i.i = alloca i64, align 8 %_7.i.i = alloca i64, align 8 %_33.i = alloca %"core::option::Option>", align 8 %_27.i = alloca i64, align 8 %n.i = alloca i64, align 8 %_14.i = alloca %"core::option::Option>", align 8 %_9.i = alloca i64, align 8 %_7.i = alloca i64, align 8 %f.i = alloca %"::vectorize::Impl>", align 8 %0 = load atomic i8, ptr @_ZN4pulp4Arch18__static_available9AVAILABLE17h17923c2266a5df53E monotonic, align 1 %_3.i = icmp eq i8 %0, -1 br i1 %_3.i, label %bb1.i3, label %_ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit bb1.i3: ; preds = %start ; call pulp::Arch::__detect_is_available %_5.i = tail call noundef i8 @_ZN4pulp4Arch21__detect_is_available17h982496a1559d88daE() br label %_ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit _ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit: ; preds = %start, %bb1.i3 %available.0.i = phi i8 [ %_5.i, %bb1.i3 ], [ %0, %start ] %1 = icmp ne i8 %available.0.i, -1 tail call void @llvm.assume(i1 %1) switch i8 %available.0.i, label %bb1.i [ i8 0, label %bb5.i i8 1, label %bb4.i i8 2, label %bb3.i ] bb1.i: ; preds = %_ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit unreachable bb5.i: ; preds = %_ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_7.i), !noalias !6712 %2 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 13 %3 = load i64, ptr %2, align 8, !noalias !6712, !noundef !3 store i64 %3, ptr %_7.i, align 8, !noalias !6712 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_9.i), !noalias !6712 store i64 %buf.1, ptr %_9.i, align 8, !noalias !6712 %_10.i = icmp eq i64 %3, %buf.1 br i1 %_10.i, label %bb1.i4, label %bb2.i bb2.i: ; preds = %bb5.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_14.i), !noalias !6712 store ptr null, ptr %_14.i, align 8, !noalias !6712 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_7.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_9.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_14.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_43efcd11700c07ac74aba018a6284297) #22 unreachable bb1.i4: ; preds = %bb5.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_9.i), !noalias !6712 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_7.i), !noalias !6712 %_15.i = icmp ugt i64 %buf.1, %degree br i1 %_15.i, label %bb3.i6, label %bb4.i5 bb4.i5: ; preds = %bb1.i4 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_b664c7a4a3eefca7bfb9186b14833af4, i64 noundef 42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_48204a8f2dcffebc600b6086120a294b) #22, !noalias !6712 unreachable bb3.i6: ; preds = %bb1.i4 %self.0.i = load ptr, ptr %self, align 8, !noalias !6712, !nonnull !3, !noundef !3 %4 = getelementptr inbounds i8, ptr %self, i64 8 %self.1.i = load i64, ptr %4, align 8, !noalias !6712, !noundef !3 %5 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 1 %self.017.i = load ptr, ptr %5, align 8, !noalias !6712, !nonnull !3, !noundef !3 %6 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 1, i32 0, i32 0, i32 1 %self.118.i = load i64, ptr %6, align 8, !noalias !6712, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i), !noalias !6712 store i64 %buf.1, ptr %n.i, align 8, !noalias !6712 %7 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 12 %base_n.i = load i64, ptr %7, align 8, !noalias !6712, !noundef !3 %n_mask.i = add i64 %buf.1, -1 %8 = tail call i64 @llvm.ctpop.i64(i64 %buf.1), !range !750 %9 = icmp eq i64 %8, 1 br i1 %9, label %bb5.i7, label %bb6.i bb5.i7: ; preds = %bb3.i6 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_27.i), !noalias !6712 store i64 %self.1.i, ptr %_27.i, align 8, !noalias !6712 %_29.i = icmp eq i64 %self.1.i, %buf.1 br i1 %_29.i, label %bb7.i, label %bb8.i bb6.i: ; preds = %bb3.i6 ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf, i64 noundef 37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_0426b419837a8055dfeadaee9ff1adb0) #22, !noalias !6712 unreachable bb8.i: ; preds = %bb5.i7 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_33.i), !noalias !6712 store ptr null, ptr %_33.i, align 8, !noalias !6712 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_27.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_33.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_21d6ac4e98ab2512bf59a22af475cadd) #22 unreachable bb7.i: ; preds = %bb5.i7 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_27.i), !noalias !6712 %_36.i = icmp eq i64 %base_n.i, 0 br i1 %_36.i, label %panic.i, label %bb9.i, !prof !751 bb9.i: ; preds = %bb7.i %_34.i = udiv i64 %buf.1, %base_n.i switch i64 %_34.i, label %bb10.i [ i64 1, label %bb14.i.preheader i64 2, label %bb32.i ] panic.i: ; preds = %bb7.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @str.0, i64 noundef 25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_640be1ca528f6a352bdf5246e81818da) #22, !noalias !6712 unreachable bb10.i: ; preds = %bb9.i %_0.0.sroa.speculated.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %buf.1, i64 %self.118.i) %_2.i50.not = icmp eq i64 %self.118.i, 0 br i1 %_2.i50.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", label %bb29.i.preheader bb29.i.preheader: ; preds = %bb10.i %xtraiter83 = and i64 %_0.0.sroa.speculated.i.i.i, 3 %10 = icmp ult i64 %_0.0.sroa.speculated.i.i.i, 4 br i1 %10, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa", label %bb29.i.preheader.new bb29.i.preheader.new: ; preds = %bb29.i.preheader %unroll_iter86 = and i64 %_0.0.sroa.speculated.i.i.i, -4 br label %bb29.i bb14.i.preheader: ; preds = %bb9.i %end_or_len.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %buf.1 br label %bb16.i bb16.i: ; preds = %bb16.i, %bb14.i.preheader %iter.i.sroa.7.049 = phi i64 [ %_8.0.i, %bb16.i ], [ 0, %bb14.i.preheader ] %iter.i.sroa.0.048 = phi ptr [ %_30.i.i, %bb16.i ], [ %buf.0, %bb14.i.preheader ] %_47.i = mul i64 %iter.i.sroa.7.049, %degree %_46.i = and i64 %_47.i, %n_mask.i %_8.0.i = add nuw nsw i64 %iter.i.sroa.7.049, 1 %_30.i.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.048, i64 1 %11 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_46.i %12 = load <2 x double>, ptr %11, align 8, !noalias !6712 store <2 x double> %12, ptr %iter.i.sroa.0.048, align 8, !noalias !6717 %13 = icmp eq ptr %_30.i.i, %end_or_len.i br i1 %13, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", label %bb16.i bb32.i: ; preds = %bb9.i %mid28.i = lshr i64 %buf.1, 1 %14 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %mid28.i %15 = sub i64 %buf.1, %mid28.i %_0.0.sroa.speculated.i.i.i10 = tail call noundef i64 @llvm.umin.i64(i64 %mid28.i, i64 %15) %_2.i.i.i.i45.not = icmp eq i64 %_0.0.sroa.speculated.i.i.i10, 0 br i1 %_2.i.i.i.i45.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", label %bb24.i.preheader bb24.i.preheader: ; preds = %bb32.i %xtraiter78 = and i64 %_0.0.sroa.speculated.i.i.i10, 1 %16 = icmp eq i64 %_0.0.sroa.speculated.i.i.i10, 1 br i1 %16, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit71.unr-lcssa", label %bb24.i.preheader.new bb24.i.preheader.new: ; preds = %bb24.i.preheader %unroll_iter81 = and i64 %_0.0.sroa.speculated.i.i.i10, 9223372036854775806 br label %bb24.i bb24.i: ; preds = %bb24.i, %bb24.i.preheader.new %iter6.i.sroa.14.047 = phi i64 [ 0, %bb24.i.preheader.new ], [ %_8.0.i15.1, %bb24.i ] %niter82 = phi i64 [ 0, %bb24.i.preheader.new ], [ %niter82.next.1, %bb24.i ] %_8.0.i15 = or disjoint i64 %iter6.i.sroa.14.047, 1 %_3.i2.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %iter6.i.sroa.14.047 %_66.i = shl nuw i64 %iter6.i.sroa.14.047, 1 %_65.i = mul i64 %_66.i, %degree %_64.i = and i64 %_65.i, %n_mask.i %_3.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter6.i.sroa.14.047 %17 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_64.i %18 = load <2 x double>, ptr %17, align 8, !noalias !6712 store <2 x double> %18, ptr %_3.i.i.i.i.i, align 8, !noalias !6712 %_72.i = or disjoint i64 %_66.i, 1 %_71.i = mul i64 %_72.i, %degree %_70.i = and i64 %_71.i, %n_mask.i %19 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_70.i %20 = load <2 x double>, ptr %19, align 8, !noalias !6712 store <2 x double> %20, ptr %_3.i2.i.i.i.i, align 8, !noalias !6712 %_8.0.i15.1 = add nuw nsw i64 %iter6.i.sroa.14.047, 2 %_3.i2.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %_8.0.i15 %_66.i.1 = shl nuw i64 %_8.0.i15, 1 %_65.i.1 = mul i64 %_66.i.1, %degree %_64.i.1 = and i64 %_65.i.1, %n_mask.i %_3.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %_8.0.i15 %21 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_64.i.1 %22 = load <2 x double>, ptr %21, align 8, !noalias !6712 store <2 x double> %22, ptr %_3.i.i.i.i.i.1, align 8, !noalias !6712 %_72.i.1 = or disjoint i64 %_66.i.1, 1 %_71.i.1 = mul i64 %_72.i.1, %degree %_70.i.1 = and i64 %_71.i.1, %n_mask.i %23 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_70.i.1 %24 = load <2 x double>, ptr %23, align 8, !noalias !6712 store <2 x double> %24, ptr %_3.i2.i.i.i.i.1, align 8, !noalias !6712 %niter82.next.1 = add i64 %niter82, 2 %niter82.ncmp.1 = icmp eq i64 %niter82.next.1, %unroll_iter81 br i1 %niter82.ncmp.1, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit71.unr-lcssa", label %bb24.i bb29.i: ; preds = %bb29.i, %bb29.i.preheader.new %iter8.i.sroa.8.051 = phi i64 [ 0, %bb29.i.preheader.new ], [ %34, %bb29.i ] %niter87 = phi i64 [ 0, %bb29.i.preheader.new ], [ %niter87.next.3, %bb29.i ] %_3.i2.i = getelementptr inbounds i64, ptr %self.017.i, i64 %iter8.i.sroa.8.051 %idx.i = load i64, ptr %_3.i2.i, align 8, !noalias !6717, !noundef !3 %_86.i = mul i64 %idx.i, %degree %_85.i = and i64 %_86.i, %n_mask.i %_3.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter8.i.sroa.8.051 %25 = or disjoint i64 %iter8.i.sroa.8.051, 1 %26 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i %27 = load <2 x double>, ptr %26, align 8, !noalias !6712 store <2 x double> %27, ptr %_3.i.i, align 8, !noalias !6717 %_3.i2.i.1 = getelementptr inbounds i64, ptr %self.017.i, i64 %25 %idx.i.1 = load i64, ptr %_3.i2.i.1, align 8, !noalias !6717, !noundef !3 %_86.i.1 = mul i64 %idx.i.1, %degree %_85.i.1 = and i64 %_86.i.1, %n_mask.i %_3.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %25 %28 = or disjoint i64 %iter8.i.sroa.8.051, 2 %29 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.1 %30 = load <2 x double>, ptr %29, align 8, !noalias !6712 store <2 x double> %30, ptr %_3.i.i.1, align 8, !noalias !6717 %_3.i2.i.2 = getelementptr inbounds i64, ptr %self.017.i, i64 %28 %idx.i.2 = load i64, ptr %_3.i2.i.2, align 8, !noalias !6717, !noundef !3 %_86.i.2 = mul i64 %idx.i.2, %degree %_85.i.2 = and i64 %_86.i.2, %n_mask.i %_3.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %28 %31 = or disjoint i64 %iter8.i.sroa.8.051, 3 %32 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.2 %33 = load <2 x double>, ptr %32, align 8, !noalias !6712 store <2 x double> %33, ptr %_3.i.i.2, align 8, !noalias !6717 %_3.i2.i.3 = getelementptr inbounds i64, ptr %self.017.i, i64 %31 %idx.i.3 = load i64, ptr %_3.i2.i.3, align 8, !noalias !6717, !noundef !3 %_86.i.3 = mul i64 %idx.i.3, %degree %_85.i.3 = and i64 %_86.i.3, %n_mask.i %_3.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %31 %34 = add nuw i64 %iter8.i.sroa.8.051, 4 %35 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.3 %36 = load <2 x double>, ptr %35, align 8, !noalias !6712 store <2 x double> %36, ptr %_3.i.i.3, align 8, !noalias !6717 %niter87.next.3 = add i64 %niter87, 4 %niter87.ncmp.3 = icmp eq i64 %niter87.next.3, %unroll_iter86 br i1 %niter87.ncmp.3, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa", label %bb29.i "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa": ; preds = %bb29.i, %bb29.i.preheader %iter8.i.sroa.8.051.unr = phi i64 [ 0, %bb29.i.preheader ], [ %34, %bb29.i ] %lcmp.mod85.not = icmp eq i64 %xtraiter83, 0 br i1 %lcmp.mod85.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", label %bb29.i.epil bb29.i.epil: ; preds = %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa", %bb29.i.epil %iter8.i.sroa.8.051.epil = phi i64 [ %37, %bb29.i.epil ], [ %iter8.i.sroa.8.051.unr, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa" ] %epil.iter84 = phi i64 [ %epil.iter84.next, %bb29.i.epil ], [ 0, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa" ] %_3.i2.i.epil = getelementptr inbounds i64, ptr %self.017.i, i64 %iter8.i.sroa.8.051.epil %idx.i.epil = load i64, ptr %_3.i2.i.epil, align 8, !noalias !6717, !noundef !3 %_86.i.epil = mul i64 %idx.i.epil, %degree %_85.i.epil = and i64 %_86.i.epil, %n_mask.i %_3.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter8.i.sroa.8.051.epil %37 = add nuw i64 %iter8.i.sroa.8.051.epil, 1 %38 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_85.i.epil %39 = load <2 x double>, ptr %38, align 8, !noalias !6712 store <2 x double> %39, ptr %_3.i.i.epil, align 8, !noalias !6717 %epil.iter84.next = add i64 %epil.iter84, 1 %epil.iter84.cmp.not = icmp eq i64 %epil.iter84.next, %xtraiter83 br i1 %epil.iter84.cmp.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", label %bb29.i.epil, !llvm.loop !6718 "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit71.unr-lcssa": ; preds = %bb24.i, %bb24.i.preheader %iter6.i.sroa.14.047.unr = phi i64 [ 0, %bb24.i.preheader ], [ %_8.0.i15.1, %bb24.i ] %lcmp.mod80.not = icmp eq i64 %xtraiter78, 0 br i1 %lcmp.mod80.not, label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", label %bb24.i.epil bb24.i.epil: ; preds = %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit71.unr-lcssa" %_3.i2.i.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %14, i64 %iter6.i.sroa.14.047.unr %_66.i.epil = shl nuw i64 %iter6.i.sroa.14.047.unr, 1 %_65.i.epil = mul i64 %_66.i.epil, %degree %_64.i.epil = and i64 %_65.i.epil, %n_mask.i %_3.i.i.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter6.i.sroa.14.047.unr %40 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_64.i.epil %41 = load <2 x double>, ptr %40, align 8, !noalias !6712 store <2 x double> %41, ptr %_3.i.i.i.i.i.epil, align 8, !noalias !6712 %_72.i.epil = or disjoint i64 %_66.i.epil, 1 %_71.i.epil = mul i64 %_72.i.epil, %degree %_70.i.epil = and i64 %_71.i.epil, %n_mask.i %42 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i, i64 0, i64 %_70.i.epil %43 = load <2 x double>, ptr %42, align 8, !noalias !6712 store <2 x double> %43, ptr %_3.i2.i.i.i.i.epil, align 8, !noalias !6712 br label %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit" "_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit": ; preds = %bb24.i.epil, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit71.unr-lcssa", %bb16.i, %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit.loopexit.unr-lcssa", %bb29.i.epil, %bb32.i, %bb10.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i), !noalias !6712 br label %_ZN4pulp3x869ArchInner8dispatch17hca6b72e7bdf64060E.exit bb4.i: ; preds = %_ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_7.i.i), !noalias !6719 %44 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 13 %45 = load i64, ptr %44, align 8, !noalias !6719, !noundef !3 store i64 %45, ptr %_7.i.i, align 8, !noalias !6719 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_9.i.i), !noalias !6719 store i64 %buf.1, ptr %_9.i.i, align 8, !noalias !6719 %_10.i.i = icmp eq i64 %45, %buf.1 br i1 %_10.i.i, label %bb1.i.i, label %bb2.i.i bb2.i.i: ; preds = %bb4.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_14.i.i), !noalias !6719 store ptr null, ptr %_14.i.i, align 8, !noalias !6719 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_7.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_9.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_14.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_43efcd11700c07ac74aba018a6284297) #22 unreachable bb1.i.i: ; preds = %bb4.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_9.i.i), !noalias !6719 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_7.i.i), !noalias !6719 %_15.i.i = icmp ult i64 %degree, %buf.1 br i1 %_15.i.i, label %bb3.i.i, label %bb4.i.i bb4.i.i: ; preds = %bb1.i.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_b664c7a4a3eefca7bfb9186b14833af4, i64 noundef 42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_48204a8f2dcffebc600b6086120a294b) #22, !noalias !6719 unreachable bb3.i.i: ; preds = %bb1.i.i %self.0.i.i = load ptr, ptr %self, align 8, !noalias !6719, !nonnull !3, !noundef !3 %46 = getelementptr inbounds i8, ptr %self, i64 8 %self.1.i.i = load i64, ptr %46, align 8, !noalias !6719, !noundef !3 %47 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 1 %self.017.i.i = load ptr, ptr %47, align 8, !noalias !6719, !nonnull !3, !noundef !3 %48 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 1, i32 0, i32 0, i32 1 %self.118.i.i = load i64, ptr %48, align 8, !noalias !6719, !noundef !3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %n.i.i), !noalias !6719 store i64 %buf.1, ptr %n.i.i, align 8, !noalias !6719 %49 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 12 %base_n.i.i = load i64, ptr %49, align 8, !noalias !6719, !noundef !3 %n_mask.i.i = add i64 %buf.1, -1 %50 = tail call i64 @llvm.ctpop.i64(i64 %buf.1), !range !750 %51 = icmp eq i64 %50, 1 br i1 %51, label %bb5.i.i, label %bb6.i.i bb5.i.i: ; preds = %bb3.i.i call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_27.i.i), !noalias !6719 store i64 %self.1.i.i, ptr %_27.i.i, align 8, !noalias !6719 %_29.i.i = icmp eq i64 %self.1.i.i, %buf.1 br i1 %_29.i.i, label %bb7.i.i, label %bb8.i.i bb6.i.i: ; preds = %bb3.i.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @alloc_fe7fc80288d14c26f72f9dc1fa9e2dcf, i64 noundef 37, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_0426b419837a8055dfeadaee9ff1adb0) #22, !noalias !6719 unreachable bb8.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_33.i.i), !noalias !6719 store ptr null, ptr %_33.i.i, align 8, !noalias !6719 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_27.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %n.i.i, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_33.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_21d6ac4e98ab2512bf59a22af475cadd) #22 unreachable bb7.i.i: ; preds = %bb5.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_27.i.i), !noalias !6719 %_36.i.i = icmp eq i64 %base_n.i.i, 0 br i1 %_36.i.i, label %panic.i.i, label %bb9.i.i, !prof !751 bb9.i.i: ; preds = %bb7.i.i %_34.i.i = udiv i64 %buf.1, %base_n.i.i switch i64 %_34.i.i, label %bb10.i.i [ i64 1, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.i" i64 2, label %bb32.i.i ] panic.i.i: ; preds = %bb7.i.i ; call core::panicking::panic tail call void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1 @str.0, i64 noundef 25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_640be1ca528f6a352bdf5246e81818da) #22, !noalias !6719 unreachable bb10.i.i: ; preds = %bb9.i.i %_0.0.sroa.speculated.i.i.i.i = tail call noundef i64 @llvm.umin.i64(i64 %buf.1, i64 %self.118.i.i) %_2.i933.not.i = icmp eq i64 %self.118.i.i, 0 br i1 %_2.i933.not.i, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, label %bb29.i.i.preheader bb29.i.i.preheader: ; preds = %bb10.i.i %xtraiter74 = and i64 %_0.0.sroa.speculated.i.i.i.i, 3 %52 = icmp ult i64 %_0.0.sroa.speculated.i.i.i.i, 4 br i1 %52, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa, label %bb29.i.i.preheader.new bb29.i.i.preheader.new: ; preds = %bb29.i.i.preheader %unroll_iter76 = and i64 %_0.0.sroa.speculated.i.i.i.i, -4 br label %bb29.i.i "_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.i": ; preds = %bb9.i.i %end_or_len.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %buf.1 br label %bb16.i.i bb16.i.i: ; preds = %bb16.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.i" %iter.i.sroa.0.032.i = phi ptr [ %_30.i.i.i, %bb16.i.i ], [ %buf.0, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.i" ] %iter.i.sroa.7.031.i = phi i64 [ %_8.0.i.i, %bb16.i.i ], [ 0, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5453996bcc90253bE.exit.preheader.i" ] %_47.i.i = mul i64 %iter.i.sroa.7.031.i, %degree %_46.i.i = and i64 %_47.i.i, %n_mask.i.i %_8.0.i.i = add nuw nsw i64 %iter.i.sroa.7.031.i, 1 %_30.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %iter.i.sroa.0.032.i, i64 1 %53 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_46.i.i %54 = load <2 x double>, ptr %53, align 8, !noalias !6719 store <2 x double> %54, ptr %iter.i.sroa.0.032.i, align 8, !noalias !6726 %55 = icmp eq ptr %_30.i.i.i, %end_or_len.i.i br i1 %55, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, label %bb16.i.i bb32.i.i: ; preds = %bb9.i.i %mid28.i.i = lshr i64 %buf.1, 1 %56 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %mid28.i.i %57 = sub i64 %buf.1, %mid28.i.i %_0.0.sroa.speculated.i.i.i3.i = tail call noundef i64 @llvm.umin.i64(i64 %mid28.i.i, i64 %57) %_2.i.i.i.i28.not.i = icmp eq i64 %_0.0.sroa.speculated.i.i.i3.i, 0 br i1 %_2.i.i.i.i28.not.i, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, label %bb24.i.i.preheader bb24.i.i.preheader: ; preds = %bb32.i.i %xtraiter = and i64 %_0.0.sroa.speculated.i.i.i3.i, 1 %58 = icmp eq i64 %_0.0.sroa.speculated.i.i.i3.i, 1 br i1 %58, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit73.unr-lcssa, label %bb24.i.i.preheader.new bb24.i.i.preheader.new: ; preds = %bb24.i.i.preheader %unroll_iter = and i64 %_0.0.sroa.speculated.i.i.i3.i, 9223372036854775806 br label %bb24.i.i bb24.i.i: ; preds = %bb24.i.i, %bb24.i.i.preheader.new %iter6.i.sroa.14.030.i = phi i64 [ 0, %bb24.i.i.preheader.new ], [ %_8.0.i8.i.1, %bb24.i.i ] %niter = phi i64 [ 0, %bb24.i.i.preheader.new ], [ %niter.next.1, %bb24.i.i ] %_8.0.i8.i = or disjoint i64 %iter6.i.sroa.14.030.i, 1 %_3.i2.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %56, i64 %iter6.i.sroa.14.030.i %_66.i.i = shl nuw i64 %iter6.i.sroa.14.030.i, 1 %_65.i.i = mul i64 %_66.i.i, %degree %_64.i.i = and i64 %_65.i.i, %n_mask.i.i %_3.i.i.i.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter6.i.sroa.14.030.i %59 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_64.i.i %60 = load <2 x double>, ptr %59, align 8, !noalias !6719 store <2 x double> %60, ptr %_3.i.i.i.i.i.i, align 8, !noalias !6719 %_72.i.i = or disjoint i64 %_66.i.i, 1 %_71.i.i = mul i64 %_72.i.i, %degree %_70.i.i = and i64 %_71.i.i, %n_mask.i.i %61 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_70.i.i %62 = load <2 x double>, ptr %61, align 8, !noalias !6719 store <2 x double> %62, ptr %_3.i2.i.i.i.i.i, align 8, !noalias !6719 %_8.0.i8.i.1 = add nuw nsw i64 %iter6.i.sroa.14.030.i, 2 %_3.i2.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %56, i64 %_8.0.i8.i %_66.i.i.1 = shl nuw i64 %_8.0.i8.i, 1 %_65.i.i.1 = mul i64 %_66.i.i.1, %degree %_64.i.i.1 = and i64 %_65.i.i.1, %n_mask.i.i %_3.i.i.i.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %_8.0.i8.i %63 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_64.i.i.1 %64 = load <2 x double>, ptr %63, align 8, !noalias !6719 store <2 x double> %64, ptr %_3.i.i.i.i.i.i.1, align 8, !noalias !6719 %_72.i.i.1 = or disjoint i64 %_66.i.i.1, 1 %_71.i.i.1 = mul i64 %_72.i.i.1, %degree %_70.i.i.1 = and i64 %_71.i.i.1, %n_mask.i.i %65 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_70.i.i.1 %66 = load <2 x double>, ptr %65, align 8, !noalias !6719 store <2 x double> %66, ptr %_3.i2.i.i.i.i.i.1, align 8, !noalias !6719 %niter.next.1 = add i64 %niter, 2 %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter br i1 %niter.ncmp.1, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit73.unr-lcssa, label %bb24.i.i bb29.i.i: ; preds = %bb29.i.i, %bb29.i.i.preheader.new %iter8.i.sroa.8.034.i = phi i64 [ 0, %bb29.i.i.preheader.new ], [ %76, %bb29.i.i ] %niter77 = phi i64 [ 0, %bb29.i.i.preheader.new ], [ %niter77.next.3, %bb29.i.i ] %_3.i2.i.i = getelementptr inbounds i64, ptr %self.017.i.i, i64 %iter8.i.sroa.8.034.i %idx.i.i = load i64, ptr %_3.i2.i.i, align 8, !noalias !6726, !noundef !3 %_86.i.i = mul i64 %idx.i.i, %degree %_85.i.i = and i64 %_86.i.i, %n_mask.i.i %_3.i.i.i = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter8.i.sroa.8.034.i %67 = or disjoint i64 %iter8.i.sroa.8.034.i, 1 %68 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_85.i.i %69 = load <2 x double>, ptr %68, align 8, !noalias !6719 store <2 x double> %69, ptr %_3.i.i.i, align 8, !noalias !6726 %_3.i2.i.i.1 = getelementptr inbounds i64, ptr %self.017.i.i, i64 %67 %idx.i.i.1 = load i64, ptr %_3.i2.i.i.1, align 8, !noalias !6726, !noundef !3 %_86.i.i.1 = mul i64 %idx.i.i.1, %degree %_85.i.i.1 = and i64 %_86.i.i.1, %n_mask.i.i %_3.i.i.i.1 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %67 %70 = or disjoint i64 %iter8.i.sroa.8.034.i, 2 %71 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_85.i.i.1 %72 = load <2 x double>, ptr %71, align 8, !noalias !6719 store <2 x double> %72, ptr %_3.i.i.i.1, align 8, !noalias !6726 %_3.i2.i.i.2 = getelementptr inbounds i64, ptr %self.017.i.i, i64 %70 %idx.i.i.2 = load i64, ptr %_3.i2.i.i.2, align 8, !noalias !6726, !noundef !3 %_86.i.i.2 = mul i64 %idx.i.i.2, %degree %_85.i.i.2 = and i64 %_86.i.i.2, %n_mask.i.i %_3.i.i.i.2 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %70 %73 = or disjoint i64 %iter8.i.sroa.8.034.i, 3 %74 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_85.i.i.2 %75 = load <2 x double>, ptr %74, align 8, !noalias !6719 store <2 x double> %75, ptr %_3.i.i.i.2, align 8, !noalias !6726 %_3.i2.i.i.3 = getelementptr inbounds i64, ptr %self.017.i.i, i64 %73 %idx.i.i.3 = load i64, ptr %_3.i2.i.i.3, align 8, !noalias !6726, !noundef !3 %_86.i.i.3 = mul i64 %idx.i.i.3, %degree %_85.i.i.3 = and i64 %_86.i.i.3, %n_mask.i.i %_3.i.i.i.3 = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %73 %76 = add nuw i64 %iter8.i.sroa.8.034.i, 4 %77 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_85.i.i.3 %78 = load <2 x double>, ptr %77, align 8, !noalias !6719 store <2 x double> %78, ptr %_3.i.i.i.3, align 8, !noalias !6726 %niter77.next.3 = add i64 %niter77, 4 %niter77.ncmp.3 = icmp eq i64 %niter77.next.3, %unroll_iter76 br i1 %niter77.ncmp.3, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa, label %bb29.i.i _ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa: ; preds = %bb29.i.i, %bb29.i.i.preheader %iter8.i.sroa.8.034.i.unr = phi i64 [ 0, %bb29.i.i.preheader ], [ %76, %bb29.i.i ] %lcmp.mod75.not = icmp eq i64 %xtraiter74, 0 br i1 %lcmp.mod75.not, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, label %bb29.i.i.epil bb29.i.i.epil: ; preds = %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa, %bb29.i.i.epil %iter8.i.sroa.8.034.i.epil = phi i64 [ %79, %bb29.i.i.epil ], [ %iter8.i.sroa.8.034.i.unr, %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa ] %epil.iter = phi i64 [ %epil.iter.next, %bb29.i.i.epil ], [ 0, %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa ] %_3.i2.i.i.epil = getelementptr inbounds i64, ptr %self.017.i.i, i64 %iter8.i.sroa.8.034.i.epil %idx.i.i.epil = load i64, ptr %_3.i2.i.i.epil, align 8, !noalias !6726, !noundef !3 %_86.i.i.epil = mul i64 %idx.i.i.epil, %degree %_85.i.i.epil = and i64 %_86.i.i.epil, %n_mask.i.i %_3.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter8.i.sroa.8.034.i.epil %79 = add nuw i64 %iter8.i.sroa.8.034.i.epil, 1 %80 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_85.i.i.epil %81 = load <2 x double>, ptr %80, align 8, !noalias !6719 store <2 x double> %81, ptr %_3.i.i.i.epil, align 8, !noalias !6726 %epil.iter.next = add i64 %epil.iter, 1 %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter74 br i1 %epil.iter.cmp.not, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, label %bb29.i.i.epil, !llvm.loop !6727 _ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit73.unr-lcssa: ; preds = %bb24.i.i, %bb24.i.i.preheader %iter6.i.sroa.14.030.i.unr = phi i64 [ 0, %bb24.i.i.preheader ], [ %_8.0.i8.i.1, %bb24.i.i ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0 br i1 %lcmp.mod.not, label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, label %bb24.i.i.epil bb24.i.i.epil: ; preds = %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit73.unr-lcssa %_3.i2.i.i.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %56, i64 %iter6.i.sroa.14.030.i.unr %_66.i.i.epil = shl nuw i64 %iter6.i.sroa.14.030.i.unr, 1 %_65.i.i.epil = mul i64 %_66.i.i.epil, %degree %_64.i.i.epil = and i64 %_65.i.i.epil, %n_mask.i.i %_3.i.i.i.i.i.i.epil = getelementptr inbounds %"num_complex::Complex", ptr %buf.0, i64 %iter6.i.sroa.14.030.i.unr %82 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_64.i.i.epil %83 = load <2 x double>, ptr %82, align 8, !noalias !6719 store <2 x double> %83, ptr %_3.i.i.i.i.i.i.epil, align 8, !noalias !6719 %_72.i.i.epil = or disjoint i64 %_66.i.i.epil, 1 %_71.i.i.epil = mul i64 %_72.i.i.epil, %degree %_70.i.i.epil = and i64 %_71.i.i.epil, %n_mask.i.i %84 = getelementptr inbounds [0 x %"num_complex::Complex"], ptr %self.0.i.i, i64 0, i64 %_70.i.i.epil %85 = load <2 x double>, ptr %84, align 8, !noalias !6719 store <2 x double> %85, ptr %_3.i2.i.i.i.i.i.epil, align 8, !noalias !6719 br label %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit _ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit: ; preds = %bb24.i.i.epil, %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit73.unr-lcssa, %bb16.i.i, %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit.loopexit.unr-lcssa, %bb29.i.i.epil, %bb10.i.i, %bb32.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %n.i.i), !noalias !6719 br label %_ZN4pulp3x869ArchInner8dispatch17hca6b72e7bdf64060E.exit bb3.i: ; preds = %_ZN4pulp4Arch3new17h7d8dd77ea2184fc2E.exit call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %f.i), !noalias !6717 store ptr %self, ptr %f.i, align 8, !noalias !6717 %op1.i.sroa.4.0.f.i.sroa_idx = getelementptr inbounds i8, ptr %f.i, i64 8 store ptr %buf.0, ptr %op1.i.sroa.4.0.f.i.sroa_idx, align 8, !noalias !6717 %op1.i.sroa.5.0.f.i.sroa_idx = getelementptr inbounds i8, ptr %f.i, i64 16 store i64 %buf.1, ptr %op1.i.sroa.5.0.f.i.sroa_idx, align 8, !noalias !6717 %op1.i.sroa.6.0.f.i.sroa_idx = getelementptr inbounds i8, ptr %f.i, i64 24 store i64 %degree, ptr %op1.i.sroa.6.0.f.i.sroa_idx, align 8, !noalias !6717 ; call pulp::x86::V4::vectorize::__impl call fastcc void @_ZN4pulp3x862V49vectorize6__impl17h4d1dc5e870b3d955E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %f.i), !noalias !6717 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %f.i), !noalias !6717 br label %_ZN4pulp3x869ArchInner8dispatch17hca6b72e7bdf64060E.exit _ZN4pulp3x869ArchInner8dispatch17hca6b72e7bdf64060E.exit: ; preds = %"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E.exit", %_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E.exit, %bb3.i ret void } ; concrete_fft::unordered::Plan::inv ; Function Attrs: nonlazybind uwtable define void @_ZN12concrete_fft9unordered4Plan3inv17hadd1917995ac1fbeE(ptr noalias nocapture noundef readonly align 8 dereferenceable(152) %self, ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull align 1 %stack.0, i64 noundef %stack.1) unnamed_addr #0 personality ptr @rust_eh_personality { start: %_24.i.i.i = alloca i64, align 8 %_15.i.i.i = alloca [4 x %"core::fmt::rt::Argument<'_>"], align 8 %_11.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %type_name.i.i.i = alloca { ptr, i64 }, align 8 %array_len.i.i.i = alloca i64, align 8 %remaining_len.i.i.i = alloca i64, align 8 %_12.i5.i.i = alloca [3 x %"core::fmt::rt::Argument<'_>"], align 8 %_8.i.i.i = alloca %"core::fmt::Arguments<'_>", align 8 %align_offset.i.i.i = alloca i64, align 8 %align.i.i.i = alloca i64, align 8 %len.i.i.i = alloca i64, align 8 %_12 = alloca %"core::option::Option>", align 8 %_7 = alloca i64, align 8 %_5 = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_5) %0 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 13 %1 = load i64, ptr %0, align 8, !noundef !3 store i64 %1, ptr %_5, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_7) store i64 %buf.1, ptr %_7, align 8 %_8 = icmp eq i64 %1, %buf.1 br i1 %_8, label %bb1, label %bb2 bb2: ; preds = %start call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12) store ptr null, ptr %_12, align 8 ; call core::panicking::assert_failed call fastcc void @_ZN4core9panicking13assert_failed17hd4d40312a7a6c064E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_5, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %_7, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_c84814423ac606c67b2b2f78da85d79d) #22 unreachable bb1: ; preds = %start call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_7) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_5) %2 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 12 %_24 = load i64, ptr %2, align 8, !noundef !3 %addr.i.i.i = ptrtoint ptr %stack.0 to i64 %_9.i.i.i = add i64 %addr.i.i.i, 127 %aligned_address.i.i.i = and i64 %_9.i.i.i, -128 %byte_offset.i.i.i = sub i64 %aligned_address.i.i.i, %addr.i.i.i %_12.i.i.i = icmp ult i64 %byte_offset.i.i.i, 128 tail call void @llvm.assume(i1 %_12.i.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6728 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6728 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6728 store i64 %stack.1, ptr %len.i.i.i, align 8, !noalias !6737 store i64 128, ptr %align.i.i.i, align 8, !noalias !6737 store i64 %byte_offset.i.i.i, ptr %align_offset.i.i.i, align 8, !noalias !6737 %_4.not.i.i.i = icmp ugt i64 %byte_offset.i.i.i, %stack.1 br i1 %_4.not.i.i.i, label %bb2.i.i.i, label %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i bb2.i.i.i: ; preds = %bb1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i.i), !noalias !6737 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_12.i5.i.i), !noalias !6737 store ptr %align.i.i.i, ptr %_12.i5.i.i, align 8, !noalias !6737 %3 = getelementptr inbounds i8, ptr %_12.i5.i.i, i64 8 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %3, align 8, !noalias !6737 %4 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1 store ptr %align_offset.i.i.i, ptr %4, align 8, !noalias !6737 %5 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %5, align 8, !noalias !6737 %6 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2 store ptr %len.i.i.i, ptr %6, align 8, !noalias !6737 %7 = getelementptr inbounds [3 x %"core::fmt::rt::Argument<'_>"], ptr %_12.i5.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %7, align 8, !noalias !6737 store ptr @alloc_7477c3d7abef718869dfed4e3c236330, ptr %_8.i.i.i, align 8, !noalias !6737 %8 = getelementptr inbounds i8, ptr %_8.i.i.i, i64 8 store i64 4, ptr %8, align 8, !noalias !6737 %9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 2 store ptr null, ptr %9, align 8, !noalias !6737 %10 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1 store ptr %_12.i5.i.i, ptr %10, align 8, !noalias !6737 %11 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i.i, i64 0, i32 1, i32 1 store i64 3, ptr %11, align 8, !noalias !6737 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_8.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_09dab78c7562f28dcce399d7d96d34c2) #22, !noalias !6740 unreachable _ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i: ; preds = %bb1 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align_offset.i.i.i), !noalias !6728 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %align.i.i.i), !noalias !6728 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %len.i.i.i), !noalias !6728 %len1.i.i = sub i64 %stack.1, %byte_offset.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6728 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6728 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6728 store i64 %len1.i.i, ptr %remaining_len.i.i.i, align 8, !noalias !6741 store i64 %_24, ptr %array_len.i.i.i, align 8, !noalias !6741 store ptr @alloc_2320ba13188a3f2e49598825f428fda4, ptr %type_name.i.i.i, align 8, !noalias !6741 %12 = getelementptr inbounds i8, ptr %type_name.i.i.i, i64 8 store i64 25, ptr %12, align 8, !noalias !6741 %_71.i.i.i = lshr i64 %len1.i.i, 4 %_6.not.i.i.i = icmp ult i64 %_71.i.i.i, %_24 br i1 %_6.not.i.i.i, label %bb4.i.i.i, label %_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit bb4.i.i.i: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_11.i.i.i), !noalias !6741 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %_15.i.i.i), !noalias !6741 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_24.i.i.i), !noalias !6741 %13 = shl i64 %_24, 4 store i64 %13, ptr %_24.i.i.i, align 8, !noalias !6741 store ptr %type_name.i.i.i, ptr %_15.i.i.i, align 8, !noalias !6741 %14 = getelementptr inbounds i8, ptr %_15.i.i.i, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2adde4a5692bd223E", ptr %14, align 8, !noalias !6741 %15 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1 store ptr %remaining_len.i.i.i, ptr %15, align 8, !noalias !6741 %16 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 1, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %16, align 8, !noalias !6741 %17 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2 store ptr %array_len.i.i.i, ptr %17, align 8, !noalias !6741 %18 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 2, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %18, align 8, !noalias !6741 %19 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3 store ptr %_24.i.i.i, ptr %19, align 8, !noalias !6741 %20 = getelementptr inbounds [4 x %"core::fmt::rt::Argument<'_>"], ptr %_15.i.i.i, i64 0, i64 3, i32 1 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE", ptr %20, align 8, !noalias !6741 store ptr @alloc_eb25b5dc9a883efb3919fa7bd45e7374, ptr %_11.i.i.i, align 8, !noalias !6741 %21 = getelementptr inbounds i8, ptr %_11.i.i.i, i64 8 store i64 5, ptr %21, align 8, !noalias !6741 %22 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 2 store ptr null, ptr %22, align 8, !noalias !6741 %23 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1 store ptr %_15.i.i.i, ptr %23, align 8, !noalias !6741 %24 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_11.i.i.i, i64 0, i32 1, i32 1 store i64 4, ptr %24, align 8, !noalias !6741 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef nonnull readonly align 8 dereferenceable(48) %_11.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @alloc_09dab78c7562f28dcce399d7d96d34c2) #22, !noalias !6740 unreachable _ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE.exit: ; preds = %_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %type_name.i.i.i), !noalias !6728 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %array_len.i.i.i), !noalias !6728 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %remaining_len.i.i.i), !noalias !6728 %data2.i.i = getelementptr inbounds i8, ptr %stack.0, i64 %byte_offset.i.i.i %25 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 3 %self.0 = load ptr, ptr %25, align 8, !nonnull !3, !noundef !3 %26 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 3, i32 0, i32 0, i32 1 %self.1 = load i64, ptr %26, align 8, !noundef !3 %27 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 11 %_18 = load ptr, ptr %27, align 8, !nonnull !3, !noundef !3 %28 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 7 %_21 = load ptr, ptr %28, align 8, !nonnull !3, !noundef !3 %29 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 8 %_22 = load ptr, ptr %29, align 8, !nonnull !3, !noundef !3 %30 = getelementptr inbounds %"unordered::Plan", ptr %self, i64 0, i32 9 %_23 = load ptr, ptr %30, align 8, !nonnull !3, !noundef !3 ; call concrete_fft::unordered::inv_depth tail call fastcc void @_ZN12concrete_fft9unordered9inv_depth17h8e989f8d58729d6eE(ptr noalias noundef nonnull align 8 %buf.0, i64 noundef %buf.1, ptr noalias noundef nonnull readonly align 8 %self.0, i64 noundef %self.1, ptr noundef nonnull %_18, i64 noundef %_24, ptr noalias noundef nonnull align 8 %data2.i.i, i64 noundef %_24, ptr noundef nonnull %_21, ptr noundef nonnull %_22, ptr noundef nonnull %_23) ret void } ; ::fmt ; Function Attrs: inlinehint nonlazybind uwtable define internal noundef zeroext i1 @"_ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E"(ptr noalias nocapture noundef readonly align 1 dereferenceable(1) %self, ptr noalias noundef align 8 dereferenceable(64) %f) unnamed_addr #1 { start: %0 = load i8, ptr %self, align 1, !range !6293, !noundef !3 %1 = zext nneg i8 %0 to i64 %switch.gep = getelementptr inbounds [8 x i64], ptr @"switch.table._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E", i64 0, i64 %1 %switch.load = load i64, ptr %switch.gep, align 8 %2 = zext nneg i8 %0 to i64 %reltable.shift = shl i64 %2, 2 %reltable.intrinsic = call ptr @llvm.load.relative.i64(ptr @"reltable._ZN67_$LT$concrete_fft..ordered..FftAlgo$u20$as$u20$core..fmt..Debug$GT$3fmt17hc5e676d309714e39E", i64 %reltable.shift) ; call core::fmt::Formatter::write_str %_0 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17hf215c0611b2fb985E(ptr noalias noundef nonnull align 8 dereferenceable(64) %f, ptr noalias noundef nonnull readonly align 1 %reltable.intrinsic, i64 noundef %switch.load) ret i1 %_0 } ; Function Attrs: nonlazybind uwtable declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #0 ; core::panicking::panic ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking5panic17h722671e99466d98bE(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; core::slice::index::slice_end_index_len_fail ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core5slice5index24slice_end_index_len_fail17hec92f8c818923428E(i64 noundef, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #12 ; aligned_vec::raw::with_capacity_unchecked ; Function Attrs: nonlazybind uwtable declare noundef ptr @_ZN11aligned_vec3raw23with_capacity_unchecked17he55c6cd9b572b205E(i64 noundef, i64 noundef, i64 noundef) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #13 ; ::fmt ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17h1a79630b9923a4c7E"(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #0 ; core::fmt::num::imp::::fmt ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h7ddd82e46386d07fE"(ptr noalias noundef readonly align 8 dereferenceable(8), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #0 ; core::fmt::num::::fmt ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$usize$GT$3fmt17h89a30fb843638fecE"(ptr noalias noundef readonly align 8 dereferenceable(8), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #0 ; core::fmt::num::::fmt ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17h1790d9aa2b3be9e9E"(ptr noalias noundef readonly align 8 dereferenceable(8), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.cttz.i64(i64, i1 immarg) #12 ; core::panicking::panic_bounds_check ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking18panic_bounds_check17hd2d32c0890a3c1a7E(i64 noundef, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; core::panicking::panic_fmt ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking9panic_fmt17h84fe838425b94a4eE(ptr noalias nocapture noundef readonly align 8 dereferenceable(48), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) declare <4 x double> @llvm.x86.fma.vfmaddsub.pd.256(<4 x double>, <4 x double>, <4 x double>) unnamed_addr #14 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) declare <8 x double> @llvm.x86.avx512.vfmaddsub.pd.512(<8 x double>, <8 x double>, <8 x double>, i32 immarg) unnamed_addr #14 ; core::panicking::assert_failed_inner ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking19assert_failed_inner17ha3526db27dddbb9aE(i8 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), ptr noalias nocapture noundef readonly align 8 dereferenceable(48), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; pulp::x86::V3::__detect_is_available ; Function Attrs: noinline nonlazybind uwtable declare noundef zeroext i1 @_ZN4pulp3x862V321__detect_is_available17h9409b1cdd55ac4daE() unnamed_addr #8 ; pulp::x86::V4::__detect_is_available ; Function Attrs: noinline nonlazybind uwtable declare noundef zeroext i1 @_ZN4pulp3x862V421__detect_is_available17hb77cb81cedc6da2bE() unnamed_addr #8 ; pulp::Arch::__detect_is_available ; Function Attrs: noinline nonlazybind uwtable declare noundef i8 @_ZN4pulp4Arch21__detect_is_available17h982496a1559d88daE() unnamed_addr #8 ; Function Attrs: nounwind nonlazybind allockind("free") uwtable declare void @__rust_dealloc(ptr allocptr noundef, i64 noundef, i64 noundef) unnamed_addr #15 ; ::fmt ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN61_$LT$bytemuck..PodCastError$u20$as$u20$core..fmt..Display$GT$3fmt17h2c201cc7938c20d4E"(ptr noalias noundef readonly align 1 dereferenceable(1), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.ctpop.i64(i64) #12 ; dyn_stack::stack_req::unwrap ; Function Attrs: nonlazybind uwtable declare noundef i64 @_ZN9dyn_stack9stack_req6unwrap17h7497bfda46caa13bE(i64 noundef, i64) unnamed_addr #0 ; dyn_stack::stack_req::round_up_pow2 ; Function Attrs: nonlazybind uwtable declare noundef i64 @_ZN9dyn_stack9stack_req13round_up_pow217hb9599eff7d97c78cE(i64 noundef, i64 noundef) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare double @llvm.fma.f64(double, double, double) #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare double @llvm.fabs.f64(double) #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare double @llvm.round.f64(double) #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.fptosi.sat.i64.f64(double) #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare double @llvm.floor.f64(double) #12 ; core::option::unwrap_failed ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core6option13unwrap_failed17h59088e8144660404E(ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; std::time::Instant::now ; Function Attrs: nonlazybind uwtable declare { i64, i32 } @_ZN3std4time7Instant3now17hab1b16cc3dc6aeddE() unnamed_addr #0 ; std::time::Instant::elapsed ; Function Attrs: nonlazybind uwtable declare { i64, i32 } @_ZN3std4time7Instant7elapsed17h553679d4e3b86f9fE(ptr noalias noundef readonly align 8 dereferenceable(16)) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare double @llvm.ceil.f64(double) #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i128 @llvm.fptoui.sat.i128.f64(double) #12 ; core::fmt::Formatter::debug_struct ; Function Attrs: nonlazybind uwtable declare void @_ZN4core3fmt9Formatter12debug_struct17hd73751d7fb4f2f1fE(ptr noalias nocapture noundef sret(%"core::fmt::builders::DebugStruct<'_, '_>") align 8 dereferenceable(16), ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef nonnull readonly align 1, i64 noundef) unnamed_addr #0 ; core::fmt::builders::DebugStruct::field ; Function Attrs: nonlazybind uwtable declare noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17hd8ccd7f398ada389E(ptr noalias noundef align 8 dereferenceable(16), ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #0 ; core::fmt::builders::DebugStruct::finish ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17hbeda9600f5f5968bE(ptr noalias noundef align 8 dereferenceable(16)) unnamed_addr #0 ; dyn_stack::mem::GlobalPodBuffer::new ; Function Attrs: nonlazybind uwtable declare void @_ZN9dyn_stack3mem15GlobalPodBuffer3new17h0bc965e576176338E(ptr noalias nocapture noundef sret(%"dyn_stack::mem::GlobalPodBuffer") align 8 dereferenceable(24), i64 noundef, i64 noundef) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #16 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.fptoui.sat.i32.f64(double) #12 ; core::option::expect_failed ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core6option13expect_failed17h6b420a15b93b0984E(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.bitreverse.i64(i64) #12 ; core::fmt::Formatter::write_str ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17hf215c0611b2fb985E(ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef nonnull readonly align 1, i64 noundef) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #17 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #17 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #18 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umax.i32(i32, i32) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x double> @llvm.fma.v4f64(<4 x double>, <4 x double>, <4 x double>) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <2 x double> @llvm.fma.v2f64(<2 x double>, <2 x double>, <2 x double>) #19 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(read) declare <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr>, i32 immarg, <4 x i1>, <4 x double>) #20 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(read) declare <2 x double> @llvm.masked.gather.v2f64.v2p0(<2 x ptr>, i32 immarg, <2 x i1>, <2 x double>) #20 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x double> @llvm.fabs.v4f64(<4 x double>) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x double> @llvm.round.v4f64(<4 x double>) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double>) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x double> @llvm.floor.v4f64(<4 x double>) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare <4 x i64> @llvm.bitreverse.v4i64(<4 x i64>) #19 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: read) declare ptr @llvm.load.relative.i64(ptr, i64) #21 attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #1 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #2 = { inlinehint noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #3 = { inlinehint nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #4 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #5 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #6 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a,+sse,+sse2,+fxsr,+sse3,+ssse3,+sse4.1,+sse4.2,+crc32,+popcnt,+avx,+avx2,+bmi,+bmi2,+fma,+lzcnt,+avx512f,+avx512bw,+avx512cd,+avx512dq,+avx512vl" } attributes #7 = { inlinehint noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a,+sse,+sse2,+fxsr,+sse3,+ssse3,+sse4.1,+sse4.2,+crc32,+popcnt,+avx,+avx2,+bmi,+bmi2,+fma,+lzcnt,+avx512f,+avx512bw,+avx512cd,+avx512dq,+avx512vl" } attributes #8 = { noinline nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #9 = { noinline noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #10 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #11 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #12 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } attributes #14 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } attributes #15 = { nounwind nonlazybind allockind("free") uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="skylake" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,+invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,-clzero,-mwaitx,-lwp,+lzcnt,-sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,-sse4a" } attributes #16 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #17 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #18 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } attributes #19 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #20 = { nocallback nofree nosync nounwind willreturn memory(read) } attributes #21 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } attributes #22 = { noreturn } attributes #23 = { nounwind } !llvm.module.flags = !{!0, !1} !llvm.ident = !{!2} !0 = !{i32 8, !"PIC Level", i32 2} !1 = !{i32 2, !"RtLibUseGOT", i32 1} !2 = !{!"rustc version 1.78.0-nightly (a84bb95a1 2024-02-13)"} !3 = !{} !4 = !{i64 8} !5 = !{!6} !6 = distinct !{!6, !7, !"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E: %f"} !7 = distinct !{!7, !"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E"} !8 = !{!9} !9 = distinct !{!9, !7, !"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hce8dfaace4d77ff6E: %self"} !10 = !{i64 1} !11 = !{!12, !14} !12 = distinct !{!12, !13, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hb6f1bd6b6107f7d3E: %z.0"} !13 = distinct !{!13, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hb6f1bd6b6107f7d3E"} !14 = distinct !{!14, !13, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hb6f1bd6b6107f7d3E: %w.0"} !15 = !{!16} !16 = distinct !{!16, !17, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE: %z.0"} !17 = distinct !{!17, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE"} !18 = !{!19} !19 = distinct !{!19, !17, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h9916b95d12c0163fE: %w.0"} !20 = distinct !{!20, !21, !22} !21 = !{!"llvm.loop.isvectorized", i32 1} !22 = !{!"llvm.loop.unroll.runtime.disable"} !23 = !{!16, !19} !24 = distinct !{!24, !21} !25 = !{!26} !26 = distinct !{!26, !27, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h181323534c1e5ef5E: %z.0"} !27 = distinct !{!27, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h181323534c1e5ef5E"} !28 = !{!29} !29 = distinct !{!29, !27, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h181323534c1e5ef5E: %w.0"} !30 = !{!26, !29} !31 = !{!32, !34, !36, !38, !26, !29} !32 = distinct !{!32, !33, !"_ZN12concrete_fft9unordered14inv_process_x817h334002a1b0cc12fdE: %w.0"} !33 = distinct !{!33, !"_ZN12concrete_fft9unordered14inv_process_x817h334002a1b0cc12fdE"} !34 = distinct !{!34, !35, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd3a3fc0a2d632e9dE: %_1"} !35 = distinct !{!35, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd3a3fc0a2d632e9dE"} !36 = distinct !{!36, !37, !"_ZN4core3ops8function6FnOnce9call_once17hdf105e9b28efedf3E: %_1"} !37 = distinct !{!37, !"_ZN4core3ops8function6FnOnce9call_once17hdf105e9b28efedf3E"} !38 = distinct !{!38, !39, !"_ZN4pulp3x862V39vectorize6__impl17h14b52c6364147822E: %f"} !39 = distinct !{!39, !"_ZN4pulp3x862V39vectorize6__impl17h14b52c6364147822E"} !40 = !{!34, !36, !38, !26, !29} !41 = !{!34, !36, !38, !26} !42 = !{!34, !36, !38, !29} !43 = !{!44} !44 = distinct !{!44, !45, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E: %z.0"} !45 = distinct !{!45, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E"} !46 = !{!47} !47 = distinct !{!47, !45, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h2f4088c3805a1196E: %w.0"} !48 = distinct !{!48, !21, !22} !49 = !{!44, !47} !50 = distinct !{!50, !21} !51 = !{!52, !54} !52 = distinct !{!52, !53, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha0fd83e95eee54c8E: %z.0"} !53 = distinct !{!53, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha0fd83e95eee54c8E"} !54 = distinct !{!54, !53, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha0fd83e95eee54c8E: %w.0"} !55 = !{!56} !56 = distinct !{!56, !57, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E: %z.0"} !57 = distinct !{!57, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E"} !58 = !{!59} !59 = distinct !{!59, !57, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h70302a4af356af25E: %w.0"} !60 = distinct !{!60, !21, !22} !61 = distinct !{!61, !21} !62 = !{!63} !63 = distinct !{!63, !64, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h1d5cf2a32f59bd75E: %z.0"} !64 = distinct !{!64, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h1d5cf2a32f59bd75E"} !65 = !{!66} !66 = distinct !{!66, !64, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h1d5cf2a32f59bd75E: %w.0"} !67 = !{!63, !66} !68 = !{!69, !71, !73, !75, !63, !66} !69 = distinct !{!69, !70, !"_ZN12concrete_fft9unordered14fwd_process_x417h9aa47c256137be22E: %w.0"} !70 = distinct !{!70, !"_ZN12concrete_fft9unordered14fwd_process_x417h9aa47c256137be22E"} !71 = distinct !{!71, !72, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdcab420f198ef316E: %_1"} !72 = distinct !{!72, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdcab420f198ef316E"} !73 = distinct !{!73, !74, !"_ZN4core3ops8function6FnOnce9call_once17hb7a6e98deedcbb91E: %_1"} !74 = distinct !{!74, !"_ZN4core3ops8function6FnOnce9call_once17hb7a6e98deedcbb91E"} !75 = distinct !{!75, !76, !"_ZN4pulp3x862V39vectorize6__impl17ha7c797d4b1067451E: %f"} !76 = distinct !{!76, !"_ZN4pulp3x862V39vectorize6__impl17ha7c797d4b1067451E"} !77 = !{!71, !73, !75, !63, !66} !78 = !{!71, !73, !75, !63} !79 = !{!71, !73, !75, !66} !80 = !{!81} !81 = distinct !{!81, !82, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E: %z.0"} !82 = distinct !{!82, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E"} !83 = !{!84} !84 = distinct !{!84, !82, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h6aed534b7bca6bd9E: %w.0"} !85 = distinct !{!85, !21, !22} !86 = !{!81, !84} !87 = distinct !{!87, !21} !88 = !{!89, !91} !89 = distinct !{!89, !90, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hbd963fec13970a20E: %z.0"} !90 = distinct !{!90, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hbd963fec13970a20E"} !91 = distinct !{!91, !90, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$17hbd963fec13970a20E: %w.0"} !92 = !{!93} !93 = distinct !{!93, !94, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E: %z.0"} !94 = distinct !{!94, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E"} !95 = !{!96} !96 = distinct !{!96, !94, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha761a251a866ff74E: %w.0"} !97 = distinct !{!97, !21, !22} !98 = distinct !{!98, !21} !99 = !{!100} !100 = distinct !{!100, !101, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E: %z.0"} !101 = distinct !{!101, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E"} !102 = !{!103} !103 = distinct !{!103, !101, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17h5e604c4364911502E: %w.0"} !104 = distinct !{!104, !21, !22} !105 = !{!100, !103} !106 = distinct !{!106, !21} !107 = !{!108} !108 = distinct !{!108, !109, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE: %z.0"} !109 = distinct !{!109, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE"} !110 = !{!111} !111 = distinct !{!111, !109, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$17ha6e880aa0fe251feE: %w.0"} !112 = !{!108, !111} !113 = !{!114, !116, !118, !120, !108, !111} !114 = distinct !{!114, !115, !"_ZN12concrete_fft9unordered14inv_process_x217ha4cad84359f2af7aE: %w.0"} !115 = distinct !{!115, !"_ZN12concrete_fft9unordered14inv_process_x217ha4cad84359f2af7aE"} !116 = distinct !{!116, !117, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h621f2091ec4b9846E: %_1"} !117 = distinct !{!117, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h621f2091ec4b9846E"} !118 = distinct !{!118, !119, !"_ZN4core3ops8function6FnOnce9call_once17haca87f51dcb37cb7E: %_1"} !119 = distinct !{!119, !"_ZN4core3ops8function6FnOnce9call_once17haca87f51dcb37cb7E"} !120 = distinct !{!120, !121, !"_ZN4pulp3x862V39vectorize6__impl17h0a5b96978a283fecE: %f"} !121 = distinct !{!121, !"_ZN4pulp3x862V39vectorize6__impl17h0a5b96978a283fecE"} !122 = !{!116, !118, !120, !108, !111} !123 = !{!116, !118, !120, !108} !124 = !{!116, !118, !120, !111} !125 = !{!126} !126 = distinct !{!126, !127, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E: %z.0"} !127 = distinct !{!127, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E"} !128 = !{!129} !129 = distinct !{!129, !127, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17h5e711580977bc919E: %w.0"} !130 = !{!126, !129} !131 = !{!132, !134, !136, !138, !126, !129} !132 = distinct !{!132, !133, !"_ZN12concrete_fft9unordered14fwd_process_x217h59a1a3352f8935cfE: %w.0"} !133 = distinct !{!133, !"_ZN12concrete_fft9unordered14fwd_process_x217h59a1a3352f8935cfE"} !134 = distinct !{!134, !135, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h8ba7cc11f6896f6cE: %_1"} !135 = distinct !{!135, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h8ba7cc11f6896f6cE"} !136 = distinct !{!136, !137, !"_ZN4core3ops8function6FnOnce9call_once17h7af7f191f102942dE: %_1"} !137 = distinct !{!137, !"_ZN4core3ops8function6FnOnce9call_once17h7af7f191f102942dE"} !138 = distinct !{!138, !139, !"_ZN4pulp3x862V39vectorize6__impl17h89a456302b3894bbE: %f"} !139 = distinct !{!139, !"_ZN4pulp3x862V39vectorize6__impl17h89a456302b3894bbE"} !140 = !{!134, !136, !138, !126, !129} !141 = !{!134, !136, !138, !126} !142 = !{!134, !136, !138, !129} !143 = !{!144, !146} !144 = distinct !{!144, !145, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17hd78930d977f44ab0E: %z.0"} !145 = distinct !{!145, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17hd78930d977f44ab0E"} !146 = distinct !{!146, !145, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17hd78930d977f44ab0E: %w.0"} !147 = !{!148} !148 = distinct !{!148, !149, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17heb18d5d7acab7bbbE: %z.0"} !149 = distinct !{!149, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17heb18d5d7acab7bbbE"} !150 = !{!151} !151 = distinct !{!151, !149, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$17heb18d5d7acab7bbbE: %w.0"} !152 = !{!148, !151} !153 = !{!154, !156, !158, !160, !148, !151} !154 = distinct !{!154, !155, !"_ZN12concrete_fft9unordered14fwd_process_x817h2236efd34caee1d4E: %w.0"} !155 = distinct !{!155, !"_ZN12concrete_fft9unordered14fwd_process_x817h2236efd34caee1d4E"} !156 = distinct !{!156, !157, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h00820f748045034fE: %_1"} !157 = distinct !{!157, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h00820f748045034fE"} !158 = distinct !{!158, !159, !"_ZN4core3ops8function6FnOnce9call_once17h485ca9de9801ac99E: %_1"} !159 = distinct !{!159, !"_ZN4core3ops8function6FnOnce9call_once17h485ca9de9801ac99E"} !160 = distinct !{!160, !161, !"_ZN4pulp3x862V39vectorize6__impl17h98101c3bf69c7be1E: %f"} !161 = distinct !{!161, !"_ZN4pulp3x862V39vectorize6__impl17h98101c3bf69c7be1E"} !162 = !{!156, !158, !160, !148, !151} !163 = !{!156, !158, !160, !148} !164 = !{!156, !158, !160, !151} !165 = !{!166, !168} !166 = distinct !{!166, !167, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17he354c68fd13d0a30E: %z.0"} !167 = distinct !{!167, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17he354c68fd13d0a30E"} !168 = distinct !{!168, !167, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$17he354c68fd13d0a30E: %w.0"} !169 = !{!170, !172} !170 = distinct !{!170, !171, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17he4a46004ab83fa72E: %z.0"} !171 = distinct !{!171, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17he4a46004ab83fa72E"} !172 = distinct !{!172, !171, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$17he4a46004ab83fa72E: %w.0"} !173 = !{!174} !174 = distinct !{!174, !175, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h34d3520e23250c7fE: %z.0"} !175 = distinct !{!175, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h34d3520e23250c7fE"} !176 = !{!177} !177 = distinct !{!177, !175, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$17h34d3520e23250c7fE: %w.0"} !178 = !{!174, !177} !179 = !{!180, !182, !184, !186, !174, !177} !180 = distinct !{!180, !181, !"_ZN12concrete_fft9unordered14inv_process_x417h945cae8e98d90671E: %w.0"} !181 = distinct !{!181, !"_ZN12concrete_fft9unordered14inv_process_x417h945cae8e98d90671E"} !182 = distinct !{!182, !183, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h65f727d49aeb8ae9E: %_1"} !183 = distinct !{!183, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h65f727d49aeb8ae9E"} !184 = distinct !{!184, !185, !"_ZN4core3ops8function6FnOnce9call_once17hef84f0a41b6e9788E: %_1"} !185 = distinct !{!185, !"_ZN4core3ops8function6FnOnce9call_once17hef84f0a41b6e9788E"} !186 = distinct !{!186, !187, !"_ZN4pulp3x862V39vectorize6__impl17h857f866dcfd940a9E: %f"} !187 = distinct !{!187, !"_ZN4pulp3x862V39vectorize6__impl17h857f866dcfd940a9E"} !188 = !{!182, !184, !186, !174, !177} !189 = !{!182, !184, !186, !174} !190 = !{!182, !184, !186, !177} !191 = !{!192} !192 = distinct !{!192, !193, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276d91c1196a6fd0E: %self"} !193 = distinct !{!193, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276d91c1196a6fd0E"} !194 = !{!195, !197, !198, !200, !192} !195 = distinct !{!195, !196, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w_init.0"} !196 = distinct !{!196, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE"} !197 = distinct !{!197, !196, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w.0"} !198 = distinct !{!198, !199, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E: %w_init.0"} !199 = distinct !{!199, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E"} !200 = distinct !{!200, !199, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E: %w.0"} !201 = !{!202} !202 = distinct !{!202, !203, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !203 = distinct !{!203, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !204 = !{!205} !205 = distinct !{!205, !203, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !206 = !{!207} !207 = distinct !{!207, !203, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !208 = !{!202, !205, !192} !209 = !{!202, !207, !192} !210 = !{!205, !207, !192} !211 = !{!212} !212 = distinct !{!212, !213, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !213 = distinct !{!213, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !214 = !{!215} !215 = distinct !{!215, !213, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !216 = !{!217} !217 = distinct !{!217, !213, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !218 = !{!212, !215, !192} !219 = !{!212, !217, !192} !220 = !{!215, !217, !192} !221 = !{!222} !222 = distinct !{!222, !223, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h959053c419601e5dE: %self"} !223 = distinct !{!223, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h959053c419601e5dE"} !224 = !{!225, !227, !228, !230, !222} !225 = distinct !{!225, !226, !"_ZN12concrete_fft4dif417stockham_dif4_end17hda2b93939147ec9bE: %x.0"} !226 = distinct !{!226, !"_ZN12concrete_fft4dif417stockham_dif4_end17hda2b93939147ec9bE"} !227 = distinct !{!227, !226, !"_ZN12concrete_fft4dif417stockham_dif4_end17hda2b93939147ec9bE: %y.0"} !228 = distinct !{!228, !229, !"_ZN138_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8d0eaa19f3ac8b30E: %x.0"} !229 = distinct !{!229, !"_ZN138_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8d0eaa19f3ac8b30E"} !230 = distinct !{!230, !229, !"_ZN138_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8d0eaa19f3ac8b30E: %y.0"} !231 = !{!232} !232 = distinct !{!232, !233, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22d70895b818d2cfE: %self"} !233 = distinct !{!233, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22d70895b818d2cfE"} !234 = !{!235, !237, !232} !235 = distinct !{!235, !236, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w_init.0"} !236 = distinct !{!236, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE"} !237 = distinct !{!237, !236, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w.0"} !238 = !{!239} !239 = distinct !{!239, !240, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !240 = distinct !{!240, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !241 = !{!242} !242 = distinct !{!242, !240, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !243 = !{!239, !244, !232} !244 = distinct !{!244, !240, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !245 = !{!244, !242, !232} !246 = !{!247} !247 = distinct !{!247, !248, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3ee014fbe1dfa1b5E: %self"} !248 = distinct !{!248, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3ee014fbe1dfa1b5E"} !249 = !{!250, !252, !247} !250 = distinct !{!250, !251, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !251 = distinct !{!251, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !252 = distinct !{!252, !251, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !253 = !{!254} !254 = distinct !{!254, !255, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !255 = distinct !{!255, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !256 = !{!257} !257 = distinct !{!257, !255, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !258 = !{!259} !259 = distinct !{!259, !255, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !260 = !{!254, !257, !247} !261 = !{!254, !259, !247} !262 = !{!257, !259, !247} !263 = !{!264} !264 = distinct !{!264, !265, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !265 = distinct !{!265, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !266 = !{!267} !267 = distinct !{!267, !265, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !268 = !{!269} !269 = distinct !{!269, !265, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !270 = !{!264, !267, !247} !271 = !{!264, !269, !247} !272 = !{!267, !269, !247} !273 = !{!274} !274 = distinct !{!274, !275, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !275 = distinct !{!275, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !276 = !{!277} !277 = distinct !{!277, !275, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !278 = !{!279} !279 = distinct !{!279, !275, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !280 = !{!274, !277, !247} !281 = !{!274, !279, !247} !282 = !{!277, !279, !247} !283 = !{!284} !284 = distinct !{!284, !285, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4e0b1b224aedc237E: %self"} !285 = distinct !{!285, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4e0b1b224aedc237E"} !286 = !{!287, !289, !290, !292, !284} !287 = distinct !{!287, !288, !"_ZN12concrete_fft4dif817stockham_dif8_end17hceff7fa37c20b23fE: %x.0"} !288 = distinct !{!288, !"_ZN12concrete_fft4dif817stockham_dif8_end17hceff7fa37c20b23fE"} !289 = distinct !{!289, !288, !"_ZN12concrete_fft4dif817stockham_dif8_end17hceff7fa37c20b23fE: %y.0"} !290 = distinct !{!290, !291, !"_ZN174_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had648e871ac89af5E: %x.0"} !291 = distinct !{!291, !"_ZN174_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had648e871ac89af5E"} !292 = distinct !{!292, !291, !"_ZN174_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had648e871ac89af5E: %y.0"} !293 = !{!294} !294 = distinct !{!294, !295, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h956c2a14cbd93768E: %self"} !295 = distinct !{!295, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h956c2a14cbd93768E"} !296 = !{!297} !297 = distinct !{!297, !298, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2c2edd8fcb513ea3E: %self"} !298 = distinct !{!298, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2c2edd8fcb513ea3E"} !299 = !{!300} !300 = distinct !{!300, !301, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !301 = distinct !{!301, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !302 = !{!303} !303 = distinct !{!303, !301, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !304 = !{!305} !305 = distinct !{!305, !301, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !306 = !{!303, !305, !297} !307 = !{!300, !303, !297} !308 = !{!300, !305, !297} !309 = !{!310} !310 = distinct !{!310, !311, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haf1101f32e2dd85dE: %self"} !311 = distinct !{!311, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haf1101f32e2dd85dE"} !312 = !{!313} !313 = distinct !{!313, !314, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h232b49312da17a17E: %self"} !314 = distinct !{!314, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h232b49312da17a17E"} !315 = !{!316, !318, !313} !316 = distinct !{!316, !317, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w_init.0"} !317 = distinct !{!317, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E"} !318 = distinct !{!318, !317, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w.0"} !319 = !{!320} !320 = distinct !{!320, !321, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !321 = distinct !{!321, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !322 = !{!323} !323 = distinct !{!323, !321, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !324 = !{!325} !325 = distinct !{!325, !321, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !326 = !{!320, !323, !313} !327 = !{!320, !325, !313} !328 = !{!323, !325, !313} !329 = !{!330} !330 = distinct !{!330, !331, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4905e9c3f9abdf58E: %self"} !331 = distinct !{!331, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4905e9c3f9abdf58E"} !332 = !{!333} !333 = distinct !{!333, !334, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !334 = distinct !{!334, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !335 = !{!336} !336 = distinct !{!336, !334, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !337 = !{!338} !338 = distinct !{!338, !334, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !339 = !{!333, !336, !330} !340 = !{!336, !338, !330} !341 = !{!333, !338, !330} !342 = !{!343} !343 = distinct !{!343, !344, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !344 = distinct !{!344, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !345 = !{!346} !346 = distinct !{!346, !344, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !347 = !{!348} !348 = distinct !{!348, !344, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !349 = !{!343, !346, !330} !350 = !{!346, !348, !330} !351 = !{!343, !348, !330} !352 = !{!353} !353 = distinct !{!353, !354, !"_ZN4core3ops8function6FnOnce9call_once17h691067e4c17ec3d4E: %_1"} !354 = distinct !{!354, !"_ZN4core3ops8function6FnOnce9call_once17h691067e4c17ec3d4E"} !355 = !{!356} !356 = distinct !{!356, !357, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hf9e62e781eebae9bE: %_1"} !357 = distinct !{!357, !"_ZN12concrete_fft9unordered18get_inv_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hf9e62e781eebae9bE"} !358 = !{!356, !353} !359 = !{!360, !356, !353} !360 = distinct !{!360, !361, !"_ZN12concrete_fft9unordered14inv_process_x417h368911c895b28071E: %w.0"} !361 = distinct !{!361, !"_ZN12concrete_fft9unordered14inv_process_x417h368911c895b28071E"} !362 = !{!363} !363 = distinct !{!363, !364, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54e21c6295472606E: %self"} !364 = distinct !{!364, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54e21c6295472606E"} !365 = !{!366} !366 = distinct !{!366, !367, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !367 = distinct !{!367, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !368 = !{!369} !369 = distinct !{!369, !367, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !370 = !{!371} !371 = distinct !{!371, !367, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !372 = !{!369, !371, !363} !373 = !{!366, !369, !363} !374 = !{!366, !371, !363} !375 = !{!376} !376 = distinct !{!376, !377, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %x.0"} !377 = distinct !{!377, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE"} !378 = !{!379} !379 = distinct !{!379, !377, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %y.0"} !380 = !{!381} !381 = distinct !{!381, !377, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %w.0"} !382 = !{!376, !379, !363} !383 = !{!379, !381, !363} !384 = !{!376, !381, !363} !385 = !{!386} !386 = distinct !{!386, !387, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b428eede1bef8e9E: %self"} !387 = distinct !{!387, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b428eede1bef8e9E"} !388 = !{!389, !391, !392, !394, !386} !389 = distinct !{!389, !390, !"_ZN12concrete_fft4dit417stockham_dit4_end17h935e5acce3843cecE: %x.0"} !390 = distinct !{!390, !"_ZN12concrete_fft4dit417stockham_dit4_end17h935e5acce3843cecE"} !391 = distinct !{!391, !390, !"_ZN12concrete_fft4dit417stockham_dit4_end17h935e5acce3843cecE: %y.0"} !392 = distinct !{!392, !393, !"_ZN140_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h951da38a74d77bffE: %x.0"} !393 = distinct !{!393, !"_ZN140_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h951da38a74d77bffE"} !394 = distinct !{!394, !393, !"_ZN140_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h951da38a74d77bffE: %y.0"} !395 = !{!396} !396 = distinct !{!396, !397, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h51ac92f2ddc13327E: %self"} !397 = distinct !{!397, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h51ac92f2ddc13327E"} !398 = !{!399} !399 = distinct !{!399, !400, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !400 = distinct !{!400, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !401 = !{!402} !402 = distinct !{!402, !400, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !403 = !{!404} !404 = distinct !{!404, !400, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !405 = !{!399, !402, !396} !406 = !{!402, !404, !396} !407 = !{!399, !404, !396} !408 = !{!409} !409 = distinct !{!409, !410, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h615eb9a93cc0ea66E: %self"} !410 = distinct !{!410, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h615eb9a93cc0ea66E"} !411 = !{!412, !414, !409} !412 = distinct !{!412, !413, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE: %w_init.0"} !413 = distinct !{!413, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE"} !414 = distinct !{!414, !413, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE: %w.0"} !415 = !{!416} !416 = distinct !{!416, !417, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8e316c9fd8544433E: %self"} !417 = distinct !{!417, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8e316c9fd8544433E"} !418 = !{!419} !419 = distinct !{!419, !420, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %x.0"} !420 = distinct !{!420, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E"} !421 = !{!422} !422 = distinct !{!422, !420, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %y.0"} !423 = !{!424} !424 = distinct !{!424, !420, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %w.0"} !425 = !{!419, !422, !416} !426 = !{!419, !424, !416} !427 = !{!422, !424, !416} !428 = !{!429} !429 = distinct !{!429, !430, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !430 = distinct !{!430, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !431 = !{!432} !432 = distinct !{!432, !430, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !433 = !{!434} !434 = distinct !{!434, !430, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !435 = !{!429, !432, !416} !436 = !{!429, !434, !416} !437 = !{!432, !434, !416} !438 = !{!439} !439 = distinct !{!439, !440, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9f5d0e9560fd6aeE: %self"} !440 = distinct !{!440, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9f5d0e9560fd6aeE"} !441 = !{!442} !442 = distinct !{!442, !443, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !443 = distinct !{!443, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !444 = !{!445} !445 = distinct !{!445, !443, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !446 = !{!447} !447 = distinct !{!447, !443, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !448 = !{!445, !447, !439} !449 = !{!442, !445, !439} !450 = !{!442, !447, !439} !451 = !{!452} !452 = distinct !{!452, !453, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h993d3592f37dab98E: %self"} !453 = distinct !{!453, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h993d3592f37dab98E"} !454 = !{!455, !457, !452} !455 = distinct !{!455, !456, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E: %w_init.0"} !456 = distinct !{!456, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E"} !457 = distinct !{!457, !456, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E: %w.0"} !458 = !{!459} !459 = distinct !{!459, !460, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !460 = distinct !{!460, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !461 = !{!462} !462 = distinct !{!462, !460, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !463 = !{!464} !464 = distinct !{!464, !460, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !465 = !{!459, !462, !452} !466 = !{!459, !464, !452} !467 = !{!462, !464, !452} !468 = !{!469} !469 = distinct !{!469, !470, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h89d11bbc21766ee7E: %self"} !470 = distinct !{!470, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h89d11bbc21766ee7E"} !471 = !{!472} !472 = distinct !{!472, !473, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !473 = distinct !{!473, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !474 = !{!475} !475 = distinct !{!475, !473, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !476 = !{!477} !477 = distinct !{!477, !473, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !478 = !{!472, !475, !469} !479 = !{!475, !477, !469} !480 = !{!472, !477, !469} !481 = !{!482} !482 = distinct !{!482, !483, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7019927d01aa602fE: %self"} !483 = distinct !{!483, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7019927d01aa602fE"} !484 = !{!485, !487, !482} !485 = distinct !{!485, !486, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w_init.0"} !486 = distinct !{!486, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE"} !487 = distinct !{!487, !486, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w.0"} !488 = !{!489} !489 = distinct !{!489, !490, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !490 = distinct !{!490, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !491 = !{!492} !492 = distinct !{!492, !490, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !493 = !{!494} !494 = distinct !{!494, !490, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !495 = !{!489, !492, !482} !496 = !{!489, !494, !482} !497 = !{!492, !494, !482} !498 = !{!499} !499 = distinct !{!499, !500, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !500 = distinct !{!500, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !501 = !{!502} !502 = distinct !{!502, !500, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !503 = !{!504} !504 = distinct !{!504, !500, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !505 = !{!499, !502, !482} !506 = !{!499, !504, !482} !507 = !{!502, !504, !482} !508 = !{!509} !509 = distinct !{!509, !510, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hefdd0c9243b53db4E: %self"} !510 = distinct !{!510, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hefdd0c9243b53db4E"} !511 = !{!512, !514, !509} !512 = distinct !{!512, !513, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !513 = distinct !{!513, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !514 = distinct !{!514, !513, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !515 = !{!516} !516 = distinct !{!516, !517, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !517 = distinct !{!517, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !518 = !{!519} !519 = distinct !{!519, !517, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !520 = !{!521} !521 = distinct !{!521, !517, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !522 = !{!516, !519, !509} !523 = !{!516, !521, !509} !524 = !{!519, !521, !509} !525 = !{!526} !526 = distinct !{!526, !527, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !527 = distinct !{!527, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !528 = !{!529} !529 = distinct !{!529, !527, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !530 = !{!531} !531 = distinct !{!531, !527, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !532 = !{!526, !529, !509} !533 = !{!526, !531, !509} !534 = !{!529, !531, !509} !535 = !{!536} !536 = distinct !{!536, !537, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !537 = distinct !{!537, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !538 = !{!539} !539 = distinct !{!539, !537, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !540 = !{!541} !541 = distinct !{!541, !537, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !542 = !{!536, !539, !509} !543 = !{!536, !541, !509} !544 = !{!539, !541, !509} !545 = !{!546} !546 = distinct !{!546, !547, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !547 = distinct !{!547, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !548 = !{!549} !549 = distinct !{!549, !547, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !550 = !{!551} !551 = distinct !{!551, !547, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !552 = !{!546, !549, !509} !553 = !{!546, !551, !509} !554 = !{!549, !551, !509} !555 = !{!556} !556 = distinct !{!556, !557, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d0d35243c81783E: %self"} !557 = distinct !{!557, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d0d35243c81783E"} !558 = !{!559, !561, !562, !564, !556} !559 = distinct !{!559, !560, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE: %w_init.0"} !560 = distinct !{!560, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE"} !561 = distinct !{!561, !560, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE: %w.0"} !562 = distinct !{!562, !563, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E: %w_init.0"} !563 = distinct !{!563, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E"} !564 = distinct !{!564, !563, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E: %w.0"} !565 = !{!566} !566 = distinct !{!566, !567, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !567 = distinct !{!567, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !568 = !{!569} !569 = distinct !{!569, !567, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !570 = !{!571} !571 = distinct !{!571, !567, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !572 = !{!566, !569, !556} !573 = !{!566, !571, !556} !574 = !{!569, !571, !556} !575 = !{!576} !576 = distinct !{!576, !577, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !577 = distinct !{!577, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !578 = !{!579} !579 = distinct !{!579, !577, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !580 = !{!581} !581 = distinct !{!581, !577, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !582 = !{!576, !579, !556} !583 = !{!576, !581, !556} !584 = !{!579, !581, !556} !585 = !{!586} !586 = distinct !{!586, !587, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !587 = distinct !{!587, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !588 = !{!589} !589 = distinct !{!589, !587, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !590 = !{!591} !591 = distinct !{!591, !587, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !592 = !{!586, !589, !556} !593 = !{!586, !591, !556} !594 = !{!589, !591, !556} !595 = !{!596} !596 = distinct !{!596, !597, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h64814aedd472078dE: %self"} !597 = distinct !{!597, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h64814aedd472078dE"} !598 = !{!599, !601, !596} !599 = distinct !{!599, !600, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !600 = distinct !{!600, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !601 = distinct !{!601, !600, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !602 = !{!603} !603 = distinct !{!603, !604, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !604 = distinct !{!604, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !605 = !{!606} !606 = distinct !{!606, !604, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !607 = !{!608} !608 = distinct !{!608, !604, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !609 = !{!603, !606, !596} !610 = !{!603, !608, !596} !611 = !{!606, !608, !596} !612 = !{!613} !613 = distinct !{!613, !614, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !614 = distinct !{!614, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !615 = !{!616} !616 = distinct !{!616, !614, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !617 = !{!618} !618 = distinct !{!618, !614, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !619 = !{!613, !616, !596} !620 = !{!613, !618, !596} !621 = !{!616, !618, !596} !622 = !{!623} !623 = distinct !{!623, !624, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf761f7f1cfcd0f35E: %self"} !624 = distinct !{!624, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf761f7f1cfcd0f35E"} !625 = !{!626} !626 = distinct !{!626, !627, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !627 = distinct !{!627, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !628 = !{!629} !629 = distinct !{!629, !627, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !630 = !{!631} !631 = distinct !{!631, !627, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !632 = !{!629, !631, !623} !633 = !{!626, !629, !623} !634 = !{!626, !631, !623} !635 = !{!636} !636 = distinct !{!636, !637, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !637 = distinct !{!637, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !638 = !{!639} !639 = distinct !{!639, !637, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !640 = !{!641} !641 = distinct !{!641, !637, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !642 = !{!636, !639, !623} !643 = !{!639, !641, !623} !644 = !{!636, !641, !623} !645 = !{!646} !646 = distinct !{!646, !647, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hff07759497004a85E: %self"} !647 = distinct !{!647, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hff07759497004a85E"} !648 = !{!649} !649 = distinct !{!649, !650, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !650 = distinct !{!650, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !651 = !{!652} !652 = distinct !{!652, !650, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !653 = !{!654} !654 = distinct !{!654, !650, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !655 = !{!652, !654, !646} !656 = !{!649, !652, !646} !657 = !{!649, !654, !646} !658 = !{!659} !659 = distinct !{!659, !660, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !660 = distinct !{!660, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !661 = !{!662} !662 = distinct !{!662, !660, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !663 = !{!664} !664 = distinct !{!664, !660, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !665 = !{!659, !662, !646} !666 = !{!662, !664, !646} !667 = !{!659, !664, !646} !668 = !{!669} !669 = distinct !{!669, !670, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e9e0fab8af5b893E: %self"} !670 = distinct !{!670, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e9e0fab8af5b893E"} !671 = !{!672, !674, !669} !672 = distinct !{!672, !673, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h067e6331878700bbE: %w_init.0"} !673 = distinct !{!673, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h067e6331878700bbE"} !674 = distinct !{!674, !673, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h067e6331878700bbE: %w.0"} !675 = !{!676} !676 = distinct !{!676, !677, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7160c07f5a250904E: %self"} !677 = distinct !{!677, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7160c07f5a250904E"} !678 = !{!679, !681, !676} !679 = distinct !{!679, !680, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w_init.0"} !680 = distinct !{!680, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE"} !681 = distinct !{!681, !680, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w.0"} !682 = !{!683} !683 = distinct !{!683, !684, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !684 = distinct !{!684, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !685 = !{!686} !686 = distinct !{!686, !684, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !687 = !{!688} !688 = distinct !{!688, !684, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !689 = !{!683, !686, !676} !690 = !{!683, !688, !676} !691 = !{!686, !688, !676} !692 = !{!693} !693 = distinct !{!693, !694, !"_ZN4core3ops8function6FnOnce9call_once17h3e75d28184bff808E: %_1"} !694 = distinct !{!694, !"_ZN4core3ops8function6FnOnce9call_once17h3e75d28184bff808E"} !695 = !{!696} !696 = distinct !{!696, !697, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h5c534f48be02c6e4E: %_1"} !697 = distinct !{!697, !"_ZN12concrete_fft9unordered18get_inv_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h5c534f48be02c6e4E"} !698 = !{!696, !693} !699 = !{!700, !696, !693} !700 = distinct !{!700, !701, !"_ZN12concrete_fft9unordered14inv_process_x817h0d314c5b12fc97caE: %w.0"} !701 = distinct !{!701, !"_ZN12concrete_fft9unordered14inv_process_x817h0d314c5b12fc97caE"} !702 = !{!703} !703 = distinct !{!703, !704, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd08c13289905abf8E: %self"} !704 = distinct !{!704, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd08c13289905abf8E"} !705 = !{!706} !706 = distinct !{!706, !707, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !707 = distinct !{!707, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !708 = !{!709} !709 = distinct !{!709, !707, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !710 = !{!711} !711 = distinct !{!711, !707, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !712 = !{!706, !709, !703} !713 = !{!706, !711, !703} !714 = !{!709, !711, !703} !715 = !{!716} !716 = distinct !{!716, !717, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !717 = distinct !{!717, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !718 = !{!719} !719 = distinct !{!719, !717, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !720 = !{!721} !721 = distinct !{!721, !717, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !722 = !{!716, !719, !703} !723 = !{!716, !721, !703} !724 = !{!719, !721, !703} !725 = !{!726} !726 = distinct !{!726, !727, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !727 = distinct !{!727, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !728 = !{!729} !729 = distinct !{!729, !727, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !730 = !{!731} !731 = distinct !{!731, !727, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !732 = !{!726, !729, !703} !733 = !{!726, !731, !703} !734 = !{!729, !731, !703} !735 = !{!736} !736 = distinct !{!736, !737, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !737 = distinct !{!737, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !738 = !{!739} !739 = distinct !{!739, !737, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !740 = !{!741} !741 = distinct !{!741, !737, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !742 = !{!736, !739, !703} !743 = !{!736, !741, !703} !744 = !{!739, !741, !703} !745 = !{!746, !748} !746 = distinct !{!746, !747, !"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E: %self"} !747 = distinct !{!747, !"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h7349b77356c65460E"} !748 = distinct !{!748, !749, !"_ZN110_$LT$$LT$pulp..x86..V4$u20$as$u20$pulp..Simd$GT$..vectorize..Impl$LT$Op$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h87086a028c4540d1E: %self"} !749 = distinct !{!749, !"_ZN110_$LT$$LT$pulp..x86..V4$u20$as$u20$pulp..Simd$GT$..vectorize..Impl$LT$Op$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h87086a028c4540d1E"} !750 = !{i64 0, i64 65} !751 = !{!"branch_weights", i32 1, i32 2000} !752 = !{!748} !753 = distinct !{!753, !754} !754 = !{!"llvm.loop.unroll.disable"} !755 = distinct !{!755, !754} !756 = !{!757} !757 = distinct !{!757, !758, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h250beacc74639c98E: %self"} !758 = distinct !{!758, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h250beacc74639c98E"} !759 = !{!760, !762, !757} !760 = distinct !{!760, !761, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E: %w_init.0"} !761 = distinct !{!761, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E"} !762 = distinct !{!762, !761, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h67069ed60e105f52E: %w.0"} !763 = !{!764} !764 = distinct !{!764, !765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !765 = distinct !{!765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !766 = !{!767} !767 = distinct !{!767, !765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !768 = !{!769} !769 = distinct !{!769, !765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !770 = !{!764, !767, !757} !771 = !{!764, !769, !757} !772 = !{!767, !769, !757} !773 = !{!774} !774 = distinct !{!774, !775, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4fb8b8a1fc8b151cE: %self"} !775 = distinct !{!775, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4fb8b8a1fc8b151cE"} !776 = !{!777, !779, !780, !782, !774} !777 = distinct !{!777, !778, !"_ZN12concrete_fft5dit1618stockham_dit16_end17h7f5b3068772f1f89E: %x.0"} !778 = distinct !{!778, !"_ZN12concrete_fft5dit1618stockham_dit16_end17h7f5b3068772f1f89E"} !779 = distinct !{!779, !778, !"_ZN12concrete_fft5dit1618stockham_dit16_end17h7f5b3068772f1f89E: %y.0"} !780 = distinct !{!780, !781, !"_ZN212_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3af627724b203beE: %x.0"} !781 = distinct !{!781, !"_ZN212_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3af627724b203beE"} !782 = distinct !{!782, !781, !"_ZN212_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3af627724b203beE: %y.0"} !783 = !{!784} !784 = distinct !{!784, !785, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h76ac5b9b0b1b9c19E: %self"} !785 = distinct !{!785, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h76ac5b9b0b1b9c19E"} !786 = !{!787} !787 = distinct !{!787, !788, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !788 = distinct !{!788, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !789 = !{!790} !790 = distinct !{!790, !788, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !791 = !{!792} !792 = distinct !{!792, !788, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !793 = !{!790, !792, !784} !794 = !{!787, !790, !784} !795 = !{!787, !792, !784} !796 = !{!797} !797 = distinct !{!797, !798, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !798 = distinct !{!798, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !799 = !{!800} !800 = distinct !{!800, !798, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !801 = !{!802} !802 = distinct !{!802, !798, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !803 = !{!797, !800, !784} !804 = !{!800, !802, !784} !805 = !{!797, !802, !784} !806 = !{!807} !807 = distinct !{!807, !808, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !808 = distinct !{!808, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !809 = !{!810} !810 = distinct !{!810, !808, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !811 = !{!812} !812 = distinct !{!812, !808, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !813 = !{!807, !810, !784} !814 = !{!810, !812, !784} !815 = !{!807, !812, !784} !816 = !{!817} !817 = distinct !{!817, !818, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb2e954265b2d0bc6E: %self"} !818 = distinct !{!818, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb2e954265b2d0bc6E"} !819 = !{!820} !820 = distinct !{!820, !821, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd8484de615c6eef3E: %self"} !821 = distinct !{!821, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd8484de615c6eef3E"} !822 = !{!823} !823 = distinct !{!823, !824, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !824 = distinct !{!824, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !825 = !{!826} !826 = distinct !{!826, !824, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !827 = !{!828} !828 = distinct !{!828, !824, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !829 = !{!823, !826, !820} !830 = !{!826, !828, !820} !831 = !{!823, !828, !820} !832 = !{!833} !833 = distinct !{!833, !834, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !834 = distinct !{!834, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !835 = !{!836} !836 = distinct !{!836, !834, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !837 = !{!838} !838 = distinct !{!838, !834, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !839 = !{!833, !836, !820} !840 = !{!836, !838, !820} !841 = !{!833, !838, !820} !842 = !{!843} !843 = distinct !{!843, !844, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !844 = distinct !{!844, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !845 = !{!846} !846 = distinct !{!846, !844, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !847 = !{!848} !848 = distinct !{!848, !844, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !849 = !{!843, !846, !820} !850 = !{!846, !848, !820} !851 = !{!843, !848, !820} !852 = !{!853} !853 = distinct !{!853, !854, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !854 = distinct !{!854, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !855 = !{!856} !856 = distinct !{!856, !854, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !857 = !{!858} !858 = distinct !{!858, !854, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !859 = !{!853, !856, !820} !860 = !{!856, !858, !820} !861 = !{!853, !858, !820} !862 = !{!863} !863 = distinct !{!863, !864, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5e76983334bcfdE: %self"} !864 = distinct !{!864, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5e76983334bcfdE"} !865 = !{!866} !866 = distinct !{!866, !867, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !867 = distinct !{!867, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !868 = !{!869} !869 = distinct !{!869, !867, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !870 = !{!871} !871 = distinct !{!871, !867, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !872 = !{!869, !871, !863} !873 = !{!866, !869, !863} !874 = !{!866, !871, !863} !875 = !{!876} !876 = distinct !{!876, !877, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !877 = distinct !{!877, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !878 = !{!879} !879 = distinct !{!879, !877, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !880 = !{!881} !881 = distinct !{!881, !877, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !882 = !{!876, !879, !863} !883 = !{!879, !881, !863} !884 = !{!876, !881, !863} !885 = !{!886} !886 = distinct !{!886, !887, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !887 = distinct !{!887, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !888 = !{!889} !889 = distinct !{!889, !887, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !890 = !{!891} !891 = distinct !{!891, !887, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !892 = !{!886, !889, !863} !893 = !{!889, !891, !863} !894 = !{!886, !891, !863} !895 = !{!896} !896 = distinct !{!896, !897, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc22a53b54fa72a09E: %self"} !897 = distinct !{!897, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc22a53b54fa72a09E"} !898 = !{!899, !901, !902, !904, !896} !899 = distinct !{!899, !900, !"_ZN12concrete_fft5dif1618stockham_dif16_end17h3a0fc503a759b5e7E: %x.0"} !900 = distinct !{!900, !"_ZN12concrete_fft5dif1618stockham_dif16_end17h3a0fc503a759b5e7E"} !901 = distinct !{!901, !900, !"_ZN12concrete_fft5dif1618stockham_dif16_end17h3a0fc503a759b5e7E: %y.0"} !902 = distinct !{!902, !903, !"_ZN212_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hafb5b965a77caa86E: %x.0"} !903 = distinct !{!903, !"_ZN212_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hafb5b965a77caa86E"} !904 = distinct !{!904, !903, !"_ZN212_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hafb5b965a77caa86E: %y.0"} !905 = !{!906} !906 = distinct !{!906, !907, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc1463974e042c31E: %self"} !907 = distinct !{!907, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc1463974e042c31E"} !908 = !{!909, !911, !906} !909 = distinct !{!909, !910, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w_init.0"} !910 = distinct !{!910, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE"} !911 = distinct !{!911, !910, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w.0"} !912 = !{!913} !913 = distinct !{!913, !914, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !914 = distinct !{!914, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !915 = !{!916} !916 = distinct !{!916, !914, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !917 = !{!913, !918, !906} !918 = distinct !{!918, !914, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !919 = !{!918, !916, !906} !920 = !{!921} !921 = distinct !{!921, !922, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85804e54d2c326a2E: %self"} !922 = distinct !{!922, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85804e54d2c326a2E"} !923 = !{!924, !926, !921} !924 = distinct !{!924, !925, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !925 = distinct !{!925, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !926 = distinct !{!926, !925, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !927 = !{!928} !928 = distinct !{!928, !929, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !929 = distinct !{!929, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !930 = !{!931} !931 = distinct !{!931, !929, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !932 = !{!933} !933 = distinct !{!933, !929, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !934 = !{!928, !931, !921} !935 = !{!928, !933, !921} !936 = !{!931, !933, !921} !937 = !{!938} !938 = distinct !{!938, !939, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !939 = distinct !{!939, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !940 = !{!941} !941 = distinct !{!941, !939, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !942 = !{!943} !943 = distinct !{!943, !939, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !944 = !{!938, !941, !921} !945 = !{!938, !943, !921} !946 = !{!941, !943, !921} !947 = !{!948} !948 = distinct !{!948, !949, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !949 = distinct !{!949, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !950 = !{!951} !951 = distinct !{!951, !949, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !952 = !{!953} !953 = distinct !{!953, !949, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !954 = !{!948, !951, !921} !955 = !{!948, !953, !921} !956 = !{!951, !953, !921} !957 = !{!958} !958 = distinct !{!958, !959, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd508d2fa2e635f2cE: %self"} !959 = distinct !{!959, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd508d2fa2e635f2cE"} !960 = !{!961, !963, !958} !961 = distinct !{!961, !962, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE: %w_init.0"} !962 = distinct !{!962, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE"} !963 = distinct !{!963, !962, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE: %w.0"} !964 = !{!965} !965 = distinct !{!965, !966, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !966 = distinct !{!966, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !967 = !{!968} !968 = distinct !{!968, !966, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !969 = !{!970} !970 = distinct !{!970, !966, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !971 = !{!965, !968, !958} !972 = !{!965, !970, !958} !973 = !{!968, !970, !958} !974 = !{!975} !975 = distinct !{!975, !976, !"_ZN4core3ops8function6FnOnce9call_once17hfcc0d1543194d6e7E: %_1"} !976 = distinct !{!976, !"_ZN4core3ops8function6FnOnce9call_once17hfcc0d1543194d6e7E"} !977 = !{!978} !978 = distinct !{!978, !979, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17ha42c5d8cfbd5afd6E: %_1"} !979 = distinct !{!979, !"_ZN12concrete_fft9unordered18get_fwd_process_x428_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17ha42c5d8cfbd5afd6E"} !980 = !{!978, !975} !981 = !{!982, !978, !975} !982 = distinct !{!982, !983, !"_ZN12concrete_fft9unordered14fwd_process_x417hc2688178cd1710dfE: %w.0"} !983 = distinct !{!983, !"_ZN12concrete_fft9unordered14fwd_process_x417hc2688178cd1710dfE"} !984 = !{!985} !985 = distinct !{!985, !986, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4d58864e05fa8140E: %self"} !986 = distinct !{!986, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4d58864e05fa8140E"} !987 = !{!988} !988 = distinct !{!988, !989, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !989 = distinct !{!989, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !990 = !{!991} !991 = distinct !{!991, !989, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !992 = !{!993} !993 = distinct !{!993, !989, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !994 = !{!988, !991, !985} !995 = !{!991, !993, !985} !996 = !{!988, !993, !985} !997 = !{!998} !998 = distinct !{!998, !999, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !999 = distinct !{!999, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1000 = !{!1001} !1001 = distinct !{!1001, !999, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1002 = !{!1003} !1003 = distinct !{!1003, !999, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1004 = !{!998, !1001, !985} !1005 = !{!1001, !1003, !985} !1006 = !{!998, !1003, !985} !1007 = !{!1008} !1008 = distinct !{!1008, !1009, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3649d30513dd8aaE: %self"} !1009 = distinct !{!1009, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3649d30513dd8aaE"} !1010 = !{!1011, !1013, !1014, !1016, !1008} !1011 = distinct !{!1011, !1012, !"_ZN12concrete_fft4dit817stockham_dit8_end17h012270c520f9732cE: %x.0"} !1012 = distinct !{!1012, !"_ZN12concrete_fft4dit817stockham_dit8_end17h012270c520f9732cE"} !1013 = distinct !{!1013, !1012, !"_ZN12concrete_fft4dit817stockham_dit8_end17h012270c520f9732cE: %y.0"} !1014 = distinct !{!1014, !1015, !"_ZN176_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb635fb687b576452E: %x.0"} !1015 = distinct !{!1015, !"_ZN176_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb635fb687b576452E"} !1016 = distinct !{!1016, !1015, !"_ZN176_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb635fb687b576452E: %y.0"} !1017 = !{!1018} !1018 = distinct !{!1018, !1019, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3bdb52f890d97450E: %self"} !1019 = distinct !{!1019, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3bdb52f890d97450E"} !1020 = !{!1021} !1021 = distinct !{!1021, !1022, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !1022 = distinct !{!1022, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !1023 = !{!1024} !1024 = distinct !{!1024, !1022, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !1025 = !{!1026} !1026 = distinct !{!1026, !1022, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !1027 = !{!1024, !1026, !1018} !1028 = !{!1021, !1024, !1018} !1029 = !{!1021, !1026, !1018} !1030 = !{!1031} !1031 = distinct !{!1031, !1032, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1f3ddbdf44637131E: %self"} !1032 = distinct !{!1032, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1f3ddbdf44637131E"} !1033 = !{!1034} !1034 = distinct !{!1034, !1035, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1035 = distinct !{!1035, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1036 = !{!1037} !1037 = distinct !{!1037, !1035, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1038 = !{!1039} !1039 = distinct !{!1039, !1035, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1040 = !{!1034, !1037, !1031} !1041 = !{!1037, !1039, !1031} !1042 = !{!1034, !1039, !1031} !1043 = !{!1044} !1044 = distinct !{!1044, !1045, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1045 = distinct !{!1045, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1046 = !{!1047} !1047 = distinct !{!1047, !1045, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1048 = !{!1049} !1049 = distinct !{!1049, !1045, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1050 = !{!1044, !1047, !1031} !1051 = !{!1047, !1049, !1031} !1052 = !{!1044, !1049, !1031} !1053 = !{!1054} !1054 = distinct !{!1054, !1055, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1055 = distinct !{!1055, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1056 = !{!1057} !1057 = distinct !{!1057, !1055, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1058 = !{!1059} !1059 = distinct !{!1059, !1055, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1060 = !{!1054, !1057, !1031} !1061 = !{!1057, !1059, !1031} !1062 = !{!1054, !1059, !1031} !1063 = !{!1064} !1064 = distinct !{!1064, !1065, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h933d1702db091472E: %self"} !1065 = distinct !{!1065, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h933d1702db091472E"} !1066 = !{!1067, !1069, !1064} !1067 = distinct !{!1067, !1068, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !1068 = distinct !{!1068, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !1069 = distinct !{!1069, !1068, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !1070 = !{!1071} !1071 = distinct !{!1071, !1072, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1072 = distinct !{!1072, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1073 = !{!1074} !1074 = distinct !{!1074, !1072, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1075 = !{!1076} !1076 = distinct !{!1076, !1072, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1077 = !{!1071, !1074, !1064} !1078 = !{!1071, !1076, !1064} !1079 = !{!1074, !1076, !1064} !1080 = !{!1081} !1081 = distinct !{!1081, !1082, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1082 = distinct !{!1082, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1083 = !{!1084} !1084 = distinct !{!1084, !1082, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1085 = !{!1086} !1086 = distinct !{!1086, !1082, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1087 = !{!1081, !1084, !1064} !1088 = !{!1081, !1086, !1064} !1089 = !{!1084, !1086, !1064} !1090 = !{!1091} !1091 = distinct !{!1091, !1092, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1092 = distinct !{!1092, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1093 = !{!1094} !1094 = distinct !{!1094, !1092, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1095 = !{!1096} !1096 = distinct !{!1096, !1092, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1097 = !{!1091, !1094, !1064} !1098 = !{!1091, !1096, !1064} !1099 = !{!1094, !1096, !1064} !1100 = !{!1101} !1101 = distinct !{!1101, !1102, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1102 = distinct !{!1102, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1103 = !{!1104} !1104 = distinct !{!1104, !1102, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1105 = !{!1106} !1106 = distinct !{!1106, !1102, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1107 = !{!1101, !1104, !1064} !1108 = !{!1101, !1106, !1064} !1109 = !{!1104, !1106, !1064} !1110 = !{!1111} !1111 = distinct !{!1111, !1112, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0bc2333acc2e9e25E: %self"} !1112 = distinct !{!1112, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0bc2333acc2e9e25E"} !1113 = !{!1114} !1114 = distinct !{!1114, !1115, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1115 = distinct !{!1115, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1116 = !{!1117} !1117 = distinct !{!1117, !1115, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1118 = !{!1119} !1119 = distinct !{!1119, !1115, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1120 = !{!1114, !1117, !1111} !1121 = !{!1114, !1119, !1111} !1122 = !{!1117, !1119, !1111} !1123 = !{!1124} !1124 = distinct !{!1124, !1125, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1125 = distinct !{!1125, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1126 = !{!1127} !1127 = distinct !{!1127, !1125, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1128 = !{!1129} !1129 = distinct !{!1129, !1125, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1130 = !{!1124, !1127, !1111} !1131 = !{!1124, !1129, !1111} !1132 = !{!1127, !1129, !1111} !1133 = !{!1134} !1134 = distinct !{!1134, !1135, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1135 = distinct !{!1135, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1136 = !{!1137} !1137 = distinct !{!1137, !1135, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1138 = !{!1139} !1139 = distinct !{!1139, !1135, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1140 = !{!1134, !1137, !1111} !1141 = !{!1134, !1139, !1111} !1142 = !{!1137, !1139, !1111} !1143 = !{!1144} !1144 = distinct !{!1144, !1145, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1145 = distinct !{!1145, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1146 = !{!1147} !1147 = distinct !{!1147, !1145, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1148 = !{!1149} !1149 = distinct !{!1149, !1145, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1150 = !{!1144, !1147, !1111} !1151 = !{!1144, !1149, !1111} !1152 = !{!1147, !1149, !1111} !1153 = !{!1154} !1154 = distinct !{!1154, !1155, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6507a07e789687eE: %self"} !1155 = distinct !{!1155, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6507a07e789687eE"} !1156 = !{!1157} !1157 = distinct !{!1157, !1158, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !1158 = distinct !{!1158, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !1159 = !{!1160} !1160 = distinct !{!1160, !1158, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !1161 = !{!1162} !1162 = distinct !{!1162, !1158, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !1163 = !{!1160, !1162, !1154} !1164 = !{!1157, !1160, !1154} !1165 = !{!1157, !1162, !1154} !1166 = !{!1167} !1167 = distinct !{!1167, !1168, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E: %self"} !1168 = distinct !{!1168, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06e126333d9fda22E"} !1169 = !{!1170, !1172, !1173, !1175, !1167} !1170 = distinct !{!1170, !1171, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE: %w_init.0"} !1171 = distinct !{!1171, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE"} !1172 = distinct !{!1172, !1171, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE: %w.0"} !1173 = distinct !{!1173, !1174, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E: %w_init.0"} !1174 = distinct !{!1174, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E"} !1175 = distinct !{!1175, !1174, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E: %w.0"} !1176 = !{!1177} !1177 = distinct !{!1177, !1178, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1178 = distinct !{!1178, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1179 = !{!1180} !1180 = distinct !{!1180, !1178, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1181 = !{!1182} !1182 = distinct !{!1182, !1178, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1183 = !{!1177, !1180, !1167} !1184 = !{!1177, !1182, !1167} !1185 = !{!1180, !1182, !1167} !1186 = !{!1187} !1187 = distinct !{!1187, !1188, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1188 = distinct !{!1188, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1189 = !{!1190} !1190 = distinct !{!1190, !1188, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1191 = !{!1192} !1192 = distinct !{!1192, !1188, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1193 = !{!1187, !1190, !1167} !1194 = !{!1187, !1192, !1167} !1195 = !{!1190, !1192, !1167} !1196 = !{!1197} !1197 = distinct !{!1197, !1198, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1198 = distinct !{!1198, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1199 = !{!1200} !1200 = distinct !{!1200, !1198, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1201 = !{!1202} !1202 = distinct !{!1202, !1198, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1203 = !{!1197, !1200, !1167} !1204 = !{!1197, !1202, !1167} !1205 = !{!1200, !1202, !1167} !1206 = !{!1207} !1207 = distinct !{!1207, !1208, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E: %self"} !1208 = distinct !{!1208, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h22b1913e38398b12E"} !1209 = !{!1210} !1210 = distinct !{!1210, !1211, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !1211 = distinct !{!1211, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !1212 = !{!1213} !1213 = distinct !{!1213, !1211, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !1214 = !{!1215} !1215 = distinct !{!1215, !1211, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !1216 = !{!1210, !1213, !1207} !1217 = !{!1210, !1215, !1207} !1218 = !{!1213, !1215, !1207} !1219 = !{!1220} !1220 = distinct !{!1220, !1221, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !1221 = distinct !{!1221, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !1222 = !{!1223} !1223 = distinct !{!1223, !1221, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !1224 = !{!1225} !1225 = distinct !{!1225, !1221, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !1226 = !{!1220, !1223, !1207} !1227 = !{!1220, !1225, !1207} !1228 = !{!1223, !1225, !1207} !1229 = !{!1230} !1230 = distinct !{!1230, !1231, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81b7cfcf146d6a45E: %self"} !1231 = distinct !{!1231, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81b7cfcf146d6a45E"} !1232 = !{!1233} !1233 = distinct !{!1233, !1234, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbb8cd5a8ca1cea8bE: %self"} !1234 = distinct !{!1234, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbb8cd5a8ca1cea8bE"} !1235 = !{!1236} !1236 = distinct !{!1236, !1237, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1237 = distinct !{!1237, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1238 = !{!1239} !1239 = distinct !{!1239, !1237, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1240 = !{!1241} !1241 = distinct !{!1241, !1237, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1242 = !{!1236, !1239, !1233} !1243 = !{!1239, !1241, !1233} !1244 = !{!1236, !1241, !1233} !1245 = !{!1246} !1246 = distinct !{!1246, !1247, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1247 = distinct !{!1247, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1248 = !{!1249} !1249 = distinct !{!1249, !1247, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1250 = !{!1251} !1251 = distinct !{!1251, !1247, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1252 = !{!1246, !1249, !1233} !1253 = !{!1249, !1251, !1233} !1254 = !{!1246, !1251, !1233} !1255 = !{!1256} !1256 = distinct !{!1256, !1257, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1257 = distinct !{!1257, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1258 = !{!1259} !1259 = distinct !{!1259, !1257, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1260 = !{!1261} !1261 = distinct !{!1261, !1257, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1262 = !{!1256, !1259, !1233} !1263 = !{!1259, !1261, !1233} !1264 = !{!1256, !1261, !1233} !1265 = !{!1266} !1266 = distinct !{!1266, !1267, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h114f4419fcae1a9bE: %self"} !1267 = distinct !{!1267, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h114f4419fcae1a9bE"} !1268 = !{!1269, !1271, !1266} !1269 = distinct !{!1269, !1270, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE: %w_init.0"} !1270 = distinct !{!1270, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE"} !1271 = distinct !{!1271, !1270, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE: %w.0"} !1272 = !{!1273} !1273 = distinct !{!1273, !1274, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha22c42d06dc0de1aE: %self"} !1274 = distinct !{!1274, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha22c42d06dc0de1aE"} !1275 = !{!1276} !1276 = distinct !{!1276, !1277, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %x.0"} !1277 = distinct !{!1277, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E"} !1278 = !{!1279} !1279 = distinct !{!1279, !1277, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %y.0"} !1280 = !{!1281} !1281 = distinct !{!1281, !1277, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %w.0"} !1282 = !{!1276, !1279, !1273} !1283 = !{!1276, !1281, !1273} !1284 = !{!1279, !1281, !1273} !1285 = !{!1286} !1286 = distinct !{!1286, !1287, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !1287 = distinct !{!1287, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !1288 = !{!1289} !1289 = distinct !{!1289, !1287, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !1290 = !{!1291} !1291 = distinct !{!1291, !1287, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !1292 = !{!1286, !1289, !1273} !1293 = !{!1286, !1291, !1273} !1294 = !{!1289, !1291, !1273} !1295 = !{!1296} !1296 = distinct !{!1296, !1297, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he8cd0946196f6e0cE: %self"} !1297 = distinct !{!1297, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he8cd0946196f6e0cE"} !1298 = !{!1299} !1299 = distinct !{!1299, !1300, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1300 = distinct !{!1300, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1301 = !{!1302} !1302 = distinct !{!1302, !1300, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1303 = !{!1304} !1304 = distinct !{!1304, !1300, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1305 = !{!1299, !1302, !1296} !1306 = !{!1302, !1304, !1296} !1307 = !{!1299, !1304, !1296} !1308 = !{!1309} !1309 = distinct !{!1309, !1310, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1310 = distinct !{!1310, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1311 = !{!1312} !1312 = distinct !{!1312, !1310, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1313 = !{!1314} !1314 = distinct !{!1314, !1310, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1315 = !{!1309, !1312, !1296} !1316 = !{!1312, !1314, !1296} !1317 = !{!1309, !1314, !1296} !1318 = !{!1319} !1319 = distinct !{!1319, !1320, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1320 = distinct !{!1320, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1321 = !{!1322} !1322 = distinct !{!1322, !1320, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1323 = !{!1324} !1324 = distinct !{!1324, !1320, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1325 = !{!1319, !1322, !1296} !1326 = !{!1322, !1324, !1296} !1327 = !{!1319, !1324, !1296} !1328 = !{!1329} !1329 = distinct !{!1329, !1330, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1330 = distinct !{!1330, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1331 = !{!1332} !1332 = distinct !{!1332, !1330, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1333 = !{!1334} !1334 = distinct !{!1334, !1330, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1335 = !{!1329, !1332, !1296} !1336 = !{!1332, !1334, !1296} !1337 = !{!1329, !1334, !1296} !1338 = !{!1339} !1339 = distinct !{!1339, !1340, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5e679b89a681da54E: %self"} !1340 = distinct !{!1340, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5e679b89a681da54E"} !1341 = !{!1342} !1342 = distinct !{!1342, !1343, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1343 = distinct !{!1343, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1344 = !{!1345} !1345 = distinct !{!1345, !1343, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1346 = !{!1347} !1347 = distinct !{!1347, !1343, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1348 = !{!1345, !1347, !1339} !1349 = !{!1342, !1345, !1339} !1350 = !{!1342, !1347, !1339} !1351 = !{!1352} !1352 = distinct !{!1352, !1353, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %x.0"} !1353 = distinct !{!1353, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE"} !1354 = !{!1355} !1355 = distinct !{!1355, !1353, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %y.0"} !1356 = !{!1357} !1357 = distinct !{!1357, !1353, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %w.0"} !1358 = !{!1352, !1355, !1339} !1359 = !{!1355, !1357, !1339} !1360 = !{!1352, !1357, !1339} !1361 = !{!1362} !1362 = distinct !{!1362, !1363, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9dabd11bd978a069E: %self"} !1363 = distinct !{!1363, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9dabd11bd978a069E"} !1364 = !{!1365} !1365 = distinct !{!1365, !1366, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1366 = distinct !{!1366, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1367 = !{!1368} !1368 = distinct !{!1368, !1366, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1369 = !{!1370} !1370 = distinct !{!1370, !1366, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1371 = !{!1368, !1370, !1362} !1372 = !{!1365, !1368, !1362} !1373 = !{!1365, !1370, !1362} !1374 = !{!1375} !1375 = distinct !{!1375, !1376, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf1696029727d7327E: %self"} !1376 = distinct !{!1376, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf1696029727d7327E"} !1377 = !{!1378, !1380, !1375} !1378 = distinct !{!1378, !1379, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w_init.0"} !1379 = distinct !{!1379, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE"} !1380 = distinct !{!1380, !1379, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hedd8f8ee80dd777dE: %w.0"} !1381 = !{!1382} !1382 = distinct !{!1382, !1383, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !1383 = distinct !{!1383, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !1384 = !{!1385} !1385 = distinct !{!1385, !1383, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !1386 = !{!1387} !1387 = distinct !{!1387, !1383, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !1388 = !{!1382, !1385, !1375} !1389 = !{!1382, !1387, !1375} !1390 = !{!1385, !1387, !1375} !1391 = !{!1392} !1392 = distinct !{!1392, !1393, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !1393 = distinct !{!1393, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !1394 = !{!1395} !1395 = distinct !{!1395, !1393, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !1396 = !{!1397} !1397 = distinct !{!1397, !1393, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !1398 = !{!1392, !1395, !1375} !1399 = !{!1392, !1397, !1375} !1400 = !{!1395, !1397, !1375} !1401 = !{!1402} !1402 = distinct !{!1402, !1403, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E: %self"} !1403 = distinct !{!1403, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc073b4b0fde60947E"} !1404 = !{!1405, !1407, !1408, !1410, !1402} !1405 = distinct !{!1405, !1406, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE: %w_init.0"} !1406 = distinct !{!1406, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE"} !1407 = distinct !{!1407, !1406, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h65be05df58222c5bE: %w.0"} !1408 = distinct !{!1408, !1409, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E: %w_init.0"} !1409 = distinct !{!1409, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E"} !1410 = distinct !{!1410, !1409, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h81b68a46037fc510E: %w.0"} !1411 = !{!1412} !1412 = distinct !{!1412, !1413, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1413 = distinct !{!1413, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1414 = !{!1415} !1415 = distinct !{!1415, !1413, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1416 = !{!1417} !1417 = distinct !{!1417, !1413, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1418 = !{!1412, !1415, !1402} !1419 = !{!1412, !1417, !1402} !1420 = !{!1415, !1417, !1402} !1421 = !{!1422} !1422 = distinct !{!1422, !1423, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1423 = distinct !{!1423, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1424 = !{!1425} !1425 = distinct !{!1425, !1423, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1426 = !{!1427} !1427 = distinct !{!1427, !1423, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1428 = !{!1422, !1425, !1402} !1429 = !{!1422, !1427, !1402} !1430 = !{!1425, !1427, !1402} !1431 = !{!1432} !1432 = distinct !{!1432, !1433, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1433 = distinct !{!1433, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1434 = !{!1435} !1435 = distinct !{!1435, !1433, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1436 = !{!1437} !1437 = distinct !{!1437, !1433, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1438 = !{!1432, !1435, !1402} !1439 = !{!1432, !1437, !1402} !1440 = !{!1435, !1437, !1402} !1441 = !{!1442} !1442 = distinct !{!1442, !1443, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f57aa9b76bee49cE: %self"} !1443 = distinct !{!1443, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f57aa9b76bee49cE"} !1444 = !{!1445, !1447, !1448, !1450, !1442} !1445 = distinct !{!1445, !1446, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w_init.0"} !1446 = distinct !{!1446, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E"} !1447 = distinct !{!1447, !1446, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w.0"} !1448 = distinct !{!1448, !1449, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE: %w_init.0"} !1449 = distinct !{!1449, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE"} !1450 = distinct !{!1450, !1449, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE: %w.0"} !1451 = !{!1452} !1452 = distinct !{!1452, !1453, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %x.0"} !1453 = distinct !{!1453, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E"} !1454 = !{!1455} !1455 = distinct !{!1455, !1453, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %y.0"} !1456 = !{!1457} !1457 = distinct !{!1457, !1453, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %w.0"} !1458 = !{!1452, !1455, !1442} !1459 = !{!1452, !1457, !1442} !1460 = !{!1455, !1457, !1442} !1461 = !{!1462} !1462 = distinct !{!1462, !1463, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !1463 = distinct !{!1463, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !1464 = !{!1465} !1465 = distinct !{!1465, !1463, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !1466 = !{!1467} !1467 = distinct !{!1467, !1463, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !1468 = !{!1462, !1465, !1442} !1469 = !{!1462, !1467, !1442} !1470 = !{!1465, !1467, !1442} !1471 = !{!1472} !1472 = distinct !{!1472, !1473, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E: %self"} !1473 = distinct !{!1473, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0d759faeb9131391E"} !1474 = !{!1475} !1475 = distinct !{!1475, !1476, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !1476 = distinct !{!1476, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !1477 = !{!1478} !1478 = distinct !{!1478, !1476, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !1479 = !{!1480} !1480 = distinct !{!1480, !1476, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !1481 = !{!1475, !1478, !1472} !1482 = !{!1475, !1480, !1472} !1483 = !{!1478, !1480, !1472} !1484 = !{!1485} !1485 = distinct !{!1485, !1486, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !1486 = distinct !{!1486, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !1487 = !{!1488} !1488 = distinct !{!1488, !1486, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !1489 = !{!1490} !1490 = distinct !{!1490, !1486, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !1491 = !{!1485, !1488, !1472} !1492 = !{!1485, !1490, !1472} !1493 = !{!1488, !1490, !1472} !1494 = !{!1495} !1495 = distinct !{!1495, !1496, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1196ceae3004ee67E: %self"} !1496 = distinct !{!1496, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1196ceae3004ee67E"} !1497 = !{!1498} !1498 = distinct !{!1498, !1499, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !1499 = distinct !{!1499, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !1500 = !{!1501} !1501 = distinct !{!1501, !1499, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !1502 = !{!1503} !1503 = distinct !{!1503, !1499, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !1504 = !{!1501, !1503, !1495} !1505 = !{!1498, !1501, !1495} !1506 = !{!1498, !1503, !1495} !1507 = !{!1508} !1508 = distinct !{!1508, !1509, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17heac7008f031c5a2dE: %self"} !1509 = distinct !{!1509, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17heac7008f031c5a2dE"} !1510 = !{!1511} !1511 = distinct !{!1511, !1512, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !1512 = distinct !{!1512, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !1513 = !{!1514} !1514 = distinct !{!1514, !1512, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !1515 = !{!1516} !1516 = distinct !{!1516, !1512, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !1517 = !{!1514, !1516, !1508} !1518 = !{!1511, !1514, !1508} !1519 = !{!1511, !1516, !1508} !1520 = !{!1521} !1521 = distinct !{!1521, !1522, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !1522 = distinct !{!1522, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !1523 = !{!1524} !1524 = distinct !{!1524, !1522, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !1525 = !{!1526} !1526 = distinct !{!1526, !1522, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !1527 = !{!1521, !1524, !1508} !1528 = !{!1524, !1526, !1508} !1529 = !{!1521, !1526, !1508} !1530 = !{!1531} !1531 = distinct !{!1531, !1532, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6d98b9dc7d112faE: %self"} !1532 = distinct !{!1532, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6d98b9dc7d112faE"} !1533 = !{!1534} !1534 = distinct !{!1534, !1535, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !1535 = distinct !{!1535, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !1536 = !{!1537} !1537 = distinct !{!1537, !1535, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !1538 = !{!1539} !1539 = distinct !{!1539, !1535, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !1540 = !{!1537, !1539, !1531} !1541 = !{!1534, !1537, !1531} !1542 = !{!1534, !1539, !1531} !1543 = !{!1544} !1544 = distinct !{!1544, !1545, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !1545 = distinct !{!1545, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !1546 = !{!1547} !1547 = distinct !{!1547, !1545, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !1548 = !{!1549} !1549 = distinct !{!1549, !1545, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !1550 = !{!1544, !1547, !1531} !1551 = !{!1547, !1549, !1531} !1552 = !{!1544, !1549, !1531} !1553 = !{!1554} !1554 = distinct !{!1554, !1555, !"_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E: %_1"} !1555 = distinct !{!1555, !"_ZN4core3ops8function6FnOnce9call_once17h08d46aa855cbb3d1E"} !1556 = !{!1557} !1557 = distinct !{!1557, !1558, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he30a6565a085dcf4E: %_1"} !1558 = distinct !{!1558, !"_ZN12concrete_fft9unordered18get_fwd_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he30a6565a085dcf4E"} !1559 = !{!1557, !1554} !1560 = !{!1561, !1557, !1554} !1561 = distinct !{!1561, !1562, !"_ZN12concrete_fft9unordered14fwd_process_x217hdb9da8076750e782E: %w.0"} !1562 = distinct !{!1562, !"_ZN12concrete_fft9unordered14fwd_process_x217hdb9da8076750e782E"} !1563 = !{!1564} !1564 = distinct !{!1564, !1565, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5a62728f70186f01E: %self"} !1565 = distinct !{!1565, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5a62728f70186f01E"} !1566 = !{!1567} !1567 = distinct !{!1567, !1568, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1568 = distinct !{!1568, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1569 = !{!1570} !1570 = distinct !{!1570, !1568, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1571 = !{!1572} !1572 = distinct !{!1572, !1568, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1573 = !{!1567, !1570, !1564} !1574 = !{!1570, !1572, !1564} !1575 = !{!1567, !1572, !1564} !1576 = !{!1577} !1577 = distinct !{!1577, !1578, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1578 = distinct !{!1578, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1579 = !{!1580} !1580 = distinct !{!1580, !1578, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1581 = !{!1582} !1582 = distinct !{!1582, !1578, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1583 = !{!1577, !1580, !1564} !1584 = !{!1580, !1582, !1564} !1585 = !{!1577, !1582, !1564} !1586 = !{!1587} !1587 = distinct !{!1587, !1588, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1588 = distinct !{!1588, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1589 = !{!1590} !1590 = distinct !{!1590, !1588, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1591 = !{!1592} !1592 = distinct !{!1592, !1588, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1593 = !{!1587, !1590, !1564} !1594 = !{!1590, !1592, !1564} !1595 = !{!1587, !1592, !1564} !1596 = !{!1597} !1597 = distinct !{!1597, !1598, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04f32a4e00b9d891E: %self"} !1598 = distinct !{!1598, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04f32a4e00b9d891E"} !1599 = !{!1600, !1602, !1597} !1600 = distinct !{!1600, !1601, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !1601 = distinct !{!1601, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !1602 = distinct !{!1602, !1601, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !1603 = !{!1604} !1604 = distinct !{!1604, !1605, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1605 = distinct !{!1605, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1606 = !{!1607} !1607 = distinct !{!1607, !1605, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1608 = !{!1604, !1609, !1597} !1609 = distinct !{!1609, !1605, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1610 = !{!1609, !1607, !1597} !1611 = !{!1612} !1612 = distinct !{!1612, !1613, !"_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E: %_1"} !1613 = distinct !{!1613, !"_ZN4core3ops8function6FnOnce9call_once17hbd8bbeaeb6fdd359E"} !1614 = !{!1615} !1615 = distinct !{!1615, !1616, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h82b4889ebf5790f3E: %_1"} !1616 = distinct !{!1616, !"_ZN12concrete_fft9unordered18get_inv_process_x228_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h82b4889ebf5790f3E"} !1617 = !{!1615, !1612} !1618 = !{!1619, !1615, !1612} !1619 = distinct !{!1619, !1620, !"_ZN12concrete_fft9unordered14inv_process_x217hcbf4c31bbc49f63aE: %w.0"} !1620 = distinct !{!1620, !"_ZN12concrete_fft9unordered14inv_process_x217hcbf4c31bbc49f63aE"} !1621 = !{!1622} !1622 = distinct !{!1622, !1623, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h29619756e668962bE: %self"} !1623 = distinct !{!1623, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h29619756e668962bE"} !1624 = !{!1625} !1625 = distinct !{!1625, !1626, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1626 = distinct !{!1626, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1627 = !{!1628} !1628 = distinct !{!1628, !1626, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1629 = !{!1630} !1630 = distinct !{!1630, !1626, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1631 = !{!1625, !1628, !1622} !1632 = !{!1628, !1630, !1622} !1633 = !{!1625, !1630, !1622} !1634 = !{!1635} !1635 = distinct !{!1635, !1636, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1636 = distinct !{!1636, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1637 = !{!1638} !1638 = distinct !{!1638, !1636, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1639 = !{!1640} !1640 = distinct !{!1640, !1636, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1641 = !{!1635, !1638, !1622} !1642 = !{!1638, !1640, !1622} !1643 = !{!1635, !1640, !1622} !1644 = !{!1645} !1645 = distinct !{!1645, !1646, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h491896e6015246d1E: %self"} !1646 = distinct !{!1646, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h491896e6015246d1E"} !1647 = !{!1648} !1648 = distinct !{!1648, !1649, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1649 = distinct !{!1649, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1650 = !{!1651} !1651 = distinct !{!1651, !1649, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1652 = !{!1653} !1653 = distinct !{!1653, !1649, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1654 = !{!1651, !1653, !1645} !1655 = !{!1648, !1651, !1645} !1656 = !{!1648, !1653, !1645} !1657 = !{!1658} !1658 = distinct !{!1658, !1659, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %x.0"} !1659 = distinct !{!1659, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE"} !1660 = !{!1661} !1661 = distinct !{!1661, !1659, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %y.0"} !1662 = !{!1663} !1663 = distinct !{!1663, !1659, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %w.0"} !1664 = !{!1658, !1661, !1645} !1665 = !{!1661, !1663, !1645} !1666 = !{!1658, !1663, !1645} !1667 = !{!1668} !1668 = distinct !{!1668, !1669, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hde61bb2171809abaE: %self"} !1669 = distinct !{!1669, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hde61bb2171809abaE"} !1670 = !{!1671} !1671 = distinct !{!1671, !1672, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1672 = distinct !{!1672, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1673 = !{!1674} !1674 = distinct !{!1674, !1672, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1675 = !{!1676} !1676 = distinct !{!1676, !1672, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1677 = !{!1671, !1674, !1668} !1678 = !{!1674, !1676, !1668} !1679 = !{!1671, !1676, !1668} !1680 = !{!1681} !1681 = distinct !{!1681, !1682, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1682 = distinct !{!1682, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1683 = !{!1684} !1684 = distinct !{!1684, !1682, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1685 = !{!1686} !1686 = distinct !{!1686, !1682, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1687 = !{!1681, !1684, !1668} !1688 = !{!1684, !1686, !1668} !1689 = !{!1681, !1686, !1668} !1690 = !{!1691} !1691 = distinct !{!1691, !1692, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1692 = distinct !{!1692, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1693 = !{!1694} !1694 = distinct !{!1694, !1692, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1695 = !{!1696} !1696 = distinct !{!1696, !1692, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1697 = !{!1691, !1694, !1668} !1698 = !{!1694, !1696, !1668} !1699 = !{!1691, !1696, !1668} !1700 = !{!1701} !1701 = distinct !{!1701, !1702, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1702 = distinct !{!1702, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1703 = !{!1704} !1704 = distinct !{!1704, !1702, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1705 = !{!1706} !1706 = distinct !{!1706, !1702, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1707 = !{!1701, !1704, !1668} !1708 = !{!1704, !1706, !1668} !1709 = !{!1701, !1706, !1668} !1710 = !{!1711} !1711 = distinct !{!1711, !1712, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he45b5cae52a104b8E: %self"} !1712 = distinct !{!1712, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he45b5cae52a104b8E"} !1713 = !{!1714} !1714 = distinct !{!1714, !1715, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1715 = distinct !{!1715, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1716 = !{!1717} !1717 = distinct !{!1717, !1715, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1718 = !{!1719} !1719 = distinct !{!1719, !1715, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1720 = !{!1714, !1717, !1711} !1721 = !{!1717, !1719, !1711} !1722 = !{!1714, !1719, !1711} !1723 = !{!1724} !1724 = distinct !{!1724, !1725, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1725 = distinct !{!1725, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1726 = !{!1727} !1727 = distinct !{!1727, !1725, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1728 = !{!1729} !1729 = distinct !{!1729, !1725, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1730 = !{!1724, !1727, !1711} !1731 = !{!1727, !1729, !1711} !1732 = !{!1724, !1729, !1711} !1733 = !{!1734} !1734 = distinct !{!1734, !1735, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7d8143f35bc879a8E: %self"} !1735 = distinct !{!1735, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7d8143f35bc879a8E"} !1736 = !{!1737} !1737 = distinct !{!1737, !1738, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1738 = distinct !{!1738, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1739 = !{!1740} !1740 = distinct !{!1740, !1738, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1741 = !{!1742} !1742 = distinct !{!1742, !1738, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1743 = !{!1740, !1742, !1734} !1744 = !{!1737, !1740, !1734} !1745 = !{!1737, !1742, !1734} !1746 = !{!1747} !1747 = distinct !{!1747, !1748, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %x.0"} !1748 = distinct !{!1748, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE"} !1749 = !{!1750} !1750 = distinct !{!1750, !1748, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %y.0"} !1751 = !{!1752} !1752 = distinct !{!1752, !1748, !"_ZN12concrete_fft5dif1621stockham_core_generic17hacf64aa5761bd95fE: %w.0"} !1753 = !{!1747, !1750, !1734} !1754 = !{!1750, !1752, !1734} !1755 = !{!1747, !1752, !1734} !1756 = !{!1757} !1757 = distinct !{!1757, !1758, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdca88b7098fddad9E: %self"} !1758 = distinct !{!1758, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdca88b7098fddad9E"} !1759 = !{!1760, !1762, !1757} !1760 = distinct !{!1760, !1761, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE: %w_init.0"} !1761 = distinct !{!1761, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE"} !1762 = distinct !{!1762, !1761, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he3ee516e7d55854eE: %w.0"} !1763 = !{!1764} !1764 = distinct !{!1764, !1765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !1765 = distinct !{!1765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !1766 = !{!1767} !1767 = distinct !{!1767, !1765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !1768 = !{!1769} !1769 = distinct !{!1769, !1765, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !1770 = !{!1764, !1767, !1757} !1771 = !{!1764, !1769, !1757} !1772 = !{!1767, !1769, !1757} !1773 = !{!1774} !1774 = distinct !{!1774, !1775, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8589aed18570cd0aE: %self"} !1775 = distinct !{!1775, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8589aed18570cd0aE"} !1776 = !{!1777, !1779, !1774} !1777 = distinct !{!1777, !1778, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !1778 = distinct !{!1778, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !1779 = distinct !{!1779, !1778, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !1780 = !{!1781} !1781 = distinct !{!1781, !1782, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1782 = distinct !{!1782, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1783 = !{!1784} !1784 = distinct !{!1784, !1782, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1785 = !{!1781, !1786, !1774} !1786 = distinct !{!1786, !1782, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1787 = !{!1786, !1784, !1774} !1788 = !{!1789} !1789 = distinct !{!1789, !1790, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h14bc1243b83a1875E: %self"} !1790 = distinct !{!1790, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h14bc1243b83a1875E"} !1791 = !{!1792} !1792 = distinct !{!1792, !1793, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1793 = distinct !{!1793, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1794 = !{!1795} !1795 = distinct !{!1795, !1793, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1796 = !{!1797} !1797 = distinct !{!1797, !1793, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1798 = !{!1795, !1797, !1789} !1799 = !{!1792, !1795, !1789} !1800 = !{!1792, !1797, !1789} !1801 = !{!1802} !1802 = distinct !{!1802, !1803, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf786ea452b98fe11E: %self"} !1803 = distinct !{!1803, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf786ea452b98fe11E"} !1804 = !{!1805} !1805 = distinct !{!1805, !1806, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !1806 = distinct !{!1806, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !1807 = !{!1808} !1808 = distinct !{!1808, !1806, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !1809 = !{!1810} !1810 = distinct !{!1810, !1806, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !1811 = !{!1808, !1810, !1802} !1812 = !{!1805, !1808, !1802} !1813 = !{!1805, !1810, !1802} !1814 = !{!1815} !1815 = distinct !{!1815, !1816, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !1816 = distinct !{!1816, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !1817 = !{!1818} !1818 = distinct !{!1818, !1816, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !1819 = !{!1820} !1820 = distinct !{!1820, !1816, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !1821 = !{!1815, !1818, !1802} !1822 = !{!1818, !1820, !1802} !1823 = !{!1815, !1820, !1802} !1824 = !{!1825} !1825 = distinct !{!1825, !1826, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab4e004548e212e9E: %self"} !1826 = distinct !{!1826, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab4e004548e212e9E"} !1827 = !{!1828} !1828 = distinct !{!1828, !1829, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1829 = distinct !{!1829, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1830 = !{!1831} !1831 = distinct !{!1831, !1829, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1832 = !{!1833} !1833 = distinct !{!1833, !1829, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1834 = !{!1828, !1831, !1825} !1835 = !{!1831, !1833, !1825} !1836 = !{!1828, !1833, !1825} !1837 = !{!1838} !1838 = distinct !{!1838, !1839, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1839 = distinct !{!1839, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1840 = !{!1841} !1841 = distinct !{!1841, !1839, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1842 = !{!1843} !1843 = distinct !{!1843, !1839, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1844 = !{!1838, !1841, !1825} !1845 = !{!1841, !1843, !1825} !1846 = !{!1838, !1843, !1825} !1847 = !{!1848} !1848 = distinct !{!1848, !1849, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0ad08f9affb3cd32E: %self"} !1849 = distinct !{!1849, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0ad08f9affb3cd32E"} !1850 = !{!1851, !1853, !1848} !1851 = distinct !{!1851, !1852, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w_init.0"} !1852 = distinct !{!1852, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E"} !1853 = distinct !{!1853, !1852, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he283cbf3f8a17c33E: %w.0"} !1854 = !{!1855} !1855 = distinct !{!1855, !1856, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %x.0"} !1856 = distinct !{!1856, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE"} !1857 = !{!1858} !1858 = distinct !{!1858, !1856, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %y.0"} !1859 = !{!1860} !1860 = distinct !{!1860, !1856, !"_ZN12concrete_fft4dit421stockham_core_generic17h7a39b5eba321517eE: %w.0"} !1861 = !{!1855, !1858, !1848} !1862 = !{!1855, !1860, !1848} !1863 = !{!1858, !1860, !1848} !1864 = !{!1865} !1865 = distinct !{!1865, !1866, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %x.0"} !1866 = distinct !{!1866, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E"} !1867 = !{!1868} !1868 = distinct !{!1868, !1866, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %y.0"} !1869 = !{!1870} !1870 = distinct !{!1870, !1866, !"_ZN12concrete_fft4dit417stockham_core_1x417hf4df13fed205da97E: %w_init.0"} !1871 = !{!1865, !1868, !1848} !1872 = !{!1865, !1870, !1848} !1873 = !{!1868, !1870, !1848} !1874 = !{!1875} !1875 = distinct !{!1875, !1876, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce6117a7f3f609e1E: %self"} !1876 = distinct !{!1876, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce6117a7f3f609e1E"} !1877 = !{!1878, !1880, !1875} !1878 = distinct !{!1878, !1879, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w_init.0"} !1879 = distinct !{!1879, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE"} !1880 = distinct !{!1880, !1879, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w.0"} !1881 = !{!1882} !1882 = distinct !{!1882, !1883, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !1883 = distinct !{!1883, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !1884 = !{!1885} !1885 = distinct !{!1885, !1883, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !1886 = !{!1887} !1887 = distinct !{!1887, !1883, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !1888 = !{!1882, !1885, !1875} !1889 = !{!1882, !1887, !1875} !1890 = !{!1885, !1887, !1875} !1891 = !{!1892} !1892 = distinct !{!1892, !1893, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93f60c7fca2857dcE: %self"} !1893 = distinct !{!1893, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93f60c7fca2857dcE"} !1894 = !{!1895} !1895 = distinct !{!1895, !1896, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1896 = distinct !{!1896, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1897 = !{!1898} !1898 = distinct !{!1898, !1896, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1899 = !{!1900} !1900 = distinct !{!1900, !1896, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1901 = !{!1898, !1900, !1892} !1902 = !{!1895, !1898, !1892} !1903 = !{!1895, !1900, !1892} !1904 = !{!1905} !1905 = distinct !{!1905, !1906, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93db5a6cbd7d8eecE: %self"} !1906 = distinct !{!1906, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h93db5a6cbd7d8eecE"} !1907 = !{!1908} !1908 = distinct !{!1908, !1909, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !1909 = distinct !{!1909, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !1910 = !{!1911} !1911 = distinct !{!1911, !1909, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !1912 = !{!1913} !1913 = distinct !{!1913, !1909, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !1914 = !{!1908, !1911, !1905} !1915 = !{!1911, !1913, !1905} !1916 = !{!1908, !1913, !1905} !1917 = !{!1918} !1918 = distinct !{!1918, !1919, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1919 = distinct !{!1919, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1920 = !{!1921} !1921 = distinct !{!1921, !1919, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1922 = !{!1923} !1923 = distinct !{!1923, !1919, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1924 = !{!1918, !1921, !1905} !1925 = !{!1921, !1923, !1905} !1926 = !{!1918, !1923, !1905} !1927 = !{!1928} !1928 = distinct !{!1928, !1929, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1929 = distinct !{!1929, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1930 = !{!1931} !1931 = distinct !{!1931, !1929, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1932 = !{!1933} !1933 = distinct !{!1933, !1929, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1934 = !{!1928, !1931, !1905} !1935 = !{!1931, !1933, !1905} !1936 = !{!1928, !1933, !1905} !1937 = !{!1938} !1938 = distinct !{!1938, !1939, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !1939 = distinct !{!1939, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !1940 = !{!1941} !1941 = distinct !{!1941, !1939, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !1942 = !{!1943} !1943 = distinct !{!1943, !1939, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !1944 = !{!1938, !1941, !1905} !1945 = !{!1941, !1943, !1905} !1946 = !{!1938, !1943, !1905} !1947 = !{!1948} !1948 = distinct !{!1948, !1949, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd3651cd2654ed5b9E: %self"} !1949 = distinct !{!1949, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd3651cd2654ed5b9E"} !1950 = !{!1951, !1953, !1954, !1956, !1948} !1951 = distinct !{!1951, !1952, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w_init.0"} !1952 = distinct !{!1952, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E"} !1953 = distinct !{!1953, !1952, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w.0"} !1954 = distinct !{!1954, !1955, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE: %w_init.0"} !1955 = distinct !{!1955, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE"} !1956 = distinct !{!1956, !1955, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8a1b4192021bb5aeE: %w.0"} !1957 = !{!1958} !1958 = distinct !{!1958, !1959, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %x.0"} !1959 = distinct !{!1959, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E"} !1960 = !{!1961} !1961 = distinct !{!1961, !1959, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %y.0"} !1962 = !{!1963} !1963 = distinct !{!1963, !1959, !"_ZN12concrete_fft5dit1621stockham_core_generic17hcd271bf817362290E: %w.0"} !1964 = !{!1958, !1961, !1948} !1965 = !{!1958, !1963, !1948} !1966 = !{!1961, !1963, !1948} !1967 = !{!1968} !1968 = distinct !{!1968, !1969, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !1969 = distinct !{!1969, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !1970 = !{!1971} !1971 = distinct !{!1971, !1969, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !1972 = !{!1973} !1973 = distinct !{!1973, !1969, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !1974 = !{!1968, !1971, !1948} !1975 = !{!1968, !1973, !1948} !1976 = !{!1971, !1973, !1948} !1977 = !{!1978} !1978 = distinct !{!1978, !1979, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfab32900b217d0beE: %self"} !1979 = distinct !{!1979, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfab32900b217d0beE"} !1980 = !{!1981} !1981 = distinct !{!1981, !1982, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !1982 = distinct !{!1982, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !1983 = !{!1984} !1984 = distinct !{!1984, !1982, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !1985 = !{!1986} !1986 = distinct !{!1986, !1982, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !1987 = !{!1984, !1986, !1978} !1988 = !{!1981, !1984, !1978} !1989 = !{!1981, !1986, !1978} !1990 = !{!1991} !1991 = distinct !{!1991, !1992, !"_ZN4core3ops8function6FnOnce9call_once17h2fdac5807a19719bE: %_1"} !1992 = distinct !{!1992, !"_ZN4core3ops8function6FnOnce9call_once17h2fdac5807a19719bE"} !1993 = !{!1994} !1994 = distinct !{!1994, !1995, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hb2a2a777bf438f9fE: %_1"} !1995 = distinct !{!1995, !"_ZN12concrete_fft9unordered18get_fwd_process_x828_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hb2a2a777bf438f9fE"} !1996 = !{!1994, !1991} !1997 = !{!1998, !1994, !1991} !1998 = distinct !{!1998, !1999, !"_ZN12concrete_fft9unordered14fwd_process_x817h85fd56df8c4662b7E: %w.0"} !1999 = distinct !{!1999, !"_ZN12concrete_fft9unordered14fwd_process_x817h85fd56df8c4662b7E"} !2000 = !{!2001} !2001 = distinct !{!2001, !2002, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83c6b72a78a4249E: %self"} !2002 = distinct !{!2002, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83c6b72a78a4249E"} !2003 = !{!2004} !2004 = distinct !{!2004, !2005, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !2005 = distinct !{!2005, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !2006 = !{!2007} !2007 = distinct !{!2007, !2005, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !2008 = !{!2009} !2009 = distinct !{!2009, !2005, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !2010 = !{!2004, !2007, !2001} !2011 = !{!2007, !2009, !2001} !2012 = !{!2004, !2009, !2001} !2013 = !{!2014} !2014 = distinct !{!2014, !2015, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !2015 = distinct !{!2015, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !2016 = !{!2017} !2017 = distinct !{!2017, !2015, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !2018 = !{!2019} !2019 = distinct !{!2019, !2015, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !2020 = !{!2014, !2017, !2001} !2021 = !{!2017, !2019, !2001} !2022 = !{!2014, !2019, !2001} !2023 = !{!2024} !2024 = distinct !{!2024, !2025, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !2025 = distinct !{!2025, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !2026 = !{!2027} !2027 = distinct !{!2027, !2025, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !2028 = !{!2029} !2029 = distinct !{!2029, !2025, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !2030 = !{!2024, !2027, !2001} !2031 = !{!2027, !2029, !2001} !2032 = !{!2024, !2029, !2001} !2033 = !{!2034} !2034 = distinct !{!2034, !2035, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h747255713c4e61b2E: %self"} !2035 = distinct !{!2035, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h747255713c4e61b2E"} !2036 = !{!2037, !2039, !2034} !2037 = distinct !{!2037, !2038, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w_init.0"} !2038 = distinct !{!2038, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E"} !2039 = distinct !{!2039, !2038, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h440f1f394f4cefa7E: %w.0"} !2040 = !{!2041} !2041 = distinct !{!2041, !2042, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %x.0"} !2042 = distinct !{!2042, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE"} !2043 = !{!2044} !2044 = distinct !{!2044, !2042, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %y.0"} !2045 = !{!2046} !2046 = distinct !{!2046, !2042, !"_ZN12concrete_fft5dit1617stockham_core_1x417h61393aaf9c94561bE: %w_init.0"} !2047 = !{!2041, !2044, !2034} !2048 = !{!2041, !2046, !2034} !2049 = !{!2044, !2046, !2034} !2050 = !{!2051} !2051 = distinct !{!2051, !2052, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h891bcacafe25efbcE: %self"} !2052 = distinct !{!2052, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h891bcacafe25efbcE"} !2053 = !{!2054, !2056, !2057, !2059, !2051} !2054 = distinct !{!2054, !2055, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w_init.0"} !2055 = distinct !{!2055, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE"} !2056 = distinct !{!2056, !2055, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h4066bdd74411fddfE: %w.0"} !2057 = distinct !{!2057, !2058, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E: %w_init.0"} !2058 = distinct !{!2058, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E"} !2059 = distinct !{!2059, !2058, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9f12428b97e41f64E: %w.0"} !2060 = !{!2061} !2061 = distinct !{!2061, !2062, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !2062 = distinct !{!2062, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !2063 = !{!2064} !2064 = distinct !{!2064, !2062, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !2065 = !{!2066} !2066 = distinct !{!2066, !2062, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !2067 = !{!2061, !2064, !2051} !2068 = !{!2061, !2066, !2051} !2069 = !{!2064, !2066, !2051} !2070 = !{!2071} !2071 = distinct !{!2071, !2072, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !2072 = distinct !{!2072, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !2073 = !{!2074} !2074 = distinct !{!2074, !2072, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !2075 = !{!2076} !2076 = distinct !{!2076, !2072, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !2077 = !{!2071, !2074, !2051} !2078 = !{!2071, !2076, !2051} !2079 = !{!2074, !2076, !2051} !2080 = !{!2081} !2081 = distinct !{!2081, !2082, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfdb9c8bbb9739c47E: %self"} !2082 = distinct !{!2082, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfdb9c8bbb9739c47E"} !2083 = !{!2084} !2084 = distinct !{!2084, !2085, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %x.0"} !2085 = distinct !{!2085, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE"} !2086 = !{!2087} !2087 = distinct !{!2087, !2085, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %y.0"} !2088 = !{!2089} !2089 = distinct !{!2089, !2085, !"_ZN12concrete_fft4dif417stockham_core_1x417h0d835836100492eaE: %w_init.0"} !2090 = !{!2084, !2087, !2081} !2091 = !{!2087, !2089, !2081} !2092 = !{!2084, !2089, !2081} !2093 = !{!2094} !2094 = distinct !{!2094, !2095, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %x.0"} !2095 = distinct !{!2095, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE"} !2096 = !{!2097} !2097 = distinct !{!2097, !2095, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %y.0"} !2098 = !{!2099} !2099 = distinct !{!2099, !2095, !"_ZN12concrete_fft4dif421stockham_core_generic17hd1ce721f23150daeE: %w.0"} !2100 = !{!2094, !2097, !2081} !2101 = !{!2097, !2099, !2081} !2102 = !{!2094, !2099, !2081} !2103 = !{!2104} !2104 = distinct !{!2104, !2105, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfa604c8ac4ee2b7fE: %self"} !2105 = distinct !{!2105, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfa604c8ac4ee2b7fE"} !2106 = !{!2107} !2107 = distinct !{!2107, !2108, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %x.0"} !2108 = distinct !{!2108, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E"} !2109 = !{!2110} !2110 = distinct !{!2110, !2108, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %y.0"} !2111 = !{!2112} !2112 = distinct !{!2112, !2108, !"_ZN12concrete_fft4dif817stockham_core_1x417he9cc531c92cb8058E: %w_init.0"} !2113 = !{!2110, !2112, !2104} !2114 = !{!2107, !2110, !2104} !2115 = !{!2107, !2112, !2104} !2116 = !{!2117} !2117 = distinct !{!2117, !2118, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %x.0"} !2118 = distinct !{!2118, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE"} !2119 = !{!2120} !2120 = distinct !{!2120, !2118, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %y.0"} !2121 = !{!2122} !2122 = distinct !{!2122, !2118, !"_ZN12concrete_fft4dif821stockham_core_generic17h0e07ac2ebe4b57cbE: %w.0"} !2123 = !{!2117, !2120, !2104} !2124 = !{!2120, !2122, !2104} !2125 = !{!2117, !2122, !2104} !2126 = !{!2127} !2127 = distinct !{!2127, !2128, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h27fd805b456bf019E: %self"} !2128 = distinct !{!2128, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h27fd805b456bf019E"} !2129 = !{!2130} !2130 = distinct !{!2130, !2131, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %x.0"} !2131 = distinct !{!2131, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E"} !2132 = !{!2133} !2133 = distinct !{!2133, !2131, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %y.0"} !2134 = !{!2135} !2135 = distinct !{!2135, !2131, !"_ZN12concrete_fft5dif1617stockham_core_1x417hfb283ffbd6f9eae5E: %w_init.0"} !2136 = !{!2133, !2135, !2127} !2137 = !{!2130, !2133, !2127} !2138 = !{!2130, !2135, !2127} !2139 = !{!2140} !2140 = distinct !{!2140, !2141, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc10ad160d6b2deb1E: %self"} !2141 = distinct !{!2141, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc10ad160d6b2deb1E"} !2142 = !{!2143, !2145, !2146, !2148, !2140} !2143 = distinct !{!2143, !2144, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE: %w_init.0"} !2144 = distinct !{!2144, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE"} !2145 = distinct !{!2145, !2144, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h8c18050d4bc54d2aE: %w.0"} !2146 = distinct !{!2146, !2147, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E: %w_init.0"} !2147 = distinct !{!2147, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E"} !2148 = distinct !{!2148, !2147, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he1ccd481cea64c44E: %w.0"} !2149 = !{!2150} !2150 = distinct !{!2150, !2151, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !2151 = distinct !{!2151, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !2152 = !{!2153} !2153 = distinct !{!2153, !2151, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !2154 = !{!2155} !2155 = distinct !{!2155, !2151, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !2156 = !{!2150, !2153, !2140} !2157 = !{!2150, !2155, !2140} !2158 = !{!2153, !2155, !2140} !2159 = !{!2160} !2160 = distinct !{!2160, !2161, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %x.0"} !2161 = distinct !{!2161, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E"} !2162 = !{!2163} !2163 = distinct !{!2163, !2161, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %y.0"} !2164 = !{!2165} !2165 = distinct !{!2165, !2161, !"_ZN12concrete_fft4dit821stockham_core_generic17h19869aa7a02187e4E: %w.0"} !2166 = !{!2160, !2163, !2140} !2167 = !{!2160, !2165, !2140} !2168 = !{!2163, !2165, !2140} !2169 = !{!2170} !2170 = distinct !{!2170, !2171, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %x.0"} !2171 = distinct !{!2171, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE"} !2172 = !{!2173} !2173 = distinct !{!2173, !2171, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %y.0"} !2174 = !{!2175} !2175 = distinct !{!2175, !2171, !"_ZN12concrete_fft4dit817stockham_core_1x417h7f8ddcff3da1e08dE: %w_init.0"} !2176 = !{!2170, !2173, !2140} !2177 = !{!2170, !2175, !2140} !2178 = !{!2173, !2175, !2140} !2179 = distinct !{!2179, !21, !22} !2180 = !{!"branch_weights", i32 2000, i32 1} !2181 = distinct !{!2181, !22, !21} !2182 = !{!2183} !2183 = distinct !{!2183, !2184, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c20015d44478827E: %self"} !2184 = distinct !{!2184, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c20015d44478827E"} !2185 = !{!2186, !2183} !2186 = distinct !{!2186, !2187, !"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h343de97d2ea8bf13E: %w_init.0"} !2187 = distinct !{!2187, !"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h343de97d2ea8bf13E"} !2188 = distinct !{!2188, !21, !22} !2189 = distinct !{!2189, !21, !22} !2190 = distinct !{!2190, !21, !22} !2191 = !{!2192, !2194} !2192 = distinct !{!2192, !2193, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f49e7e5bcc55f86E: %self"} !2193 = distinct !{!2193, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f49e7e5bcc55f86E"} !2194 = distinct !{!2194, !2195, !"_ZN4pulp3x862V39vectorize6__impl17h58419a5537a4f4b0E: %f"} !2195 = distinct !{!2195, !"_ZN4pulp3x862V39vectorize6__impl17h58419a5537a4f4b0E"} !2196 = !{!2197} !2197 = distinct !{!2197, !2198, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !2198 = distinct !{!2198, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !2199 = !{!2200} !2200 = distinct !{!2200, !2198, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !2201 = !{!2202} !2202 = distinct !{!2202, !2198, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !2203 = !{!2200, !2202, !2192, !2194} !2204 = !{!2197, !2200, !2192, !2194} !2205 = !{!2197, !2202, !2192, !2194} !2206 = !{!2207} !2207 = distinct !{!2207, !2208, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !2208 = distinct !{!2208, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !2209 = !{!2210, !2211, !2192, !2194} !2210 = distinct !{!2210, !2208, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !2211 = distinct !{!2211, !2208, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !2212 = !{!2213, !2215} !2213 = distinct !{!2213, !2214, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7ccf387e54d93af5E: %self"} !2214 = distinct !{!2214, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7ccf387e54d93af5E"} !2215 = distinct !{!2215, !2216, !"_ZN4pulp3x862V39vectorize6__impl17h53d55315def54accE: %f"} !2216 = distinct !{!2216, !"_ZN4pulp3x862V39vectorize6__impl17h53d55315def54accE"} !2217 = !{!2218} !2218 = distinct !{!2218, !2219, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !2219 = distinct !{!2219, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !2220 = !{!2221} !2221 = distinct !{!2221, !2219, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !2222 = !{!2223} !2223 = distinct !{!2223, !2219, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !2224 = !{!2218, !2221, !2213, !2215} !2225 = !{!2221, !2223, !2213, !2215} !2226 = !{!2218, !2223, !2213, !2215} !2227 = !{!2228} !2228 = distinct !{!2228, !2229, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !2229 = distinct !{!2229, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !2230 = !{!2231, !2232, !2213, !2215} !2231 = distinct !{!2231, !2229, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !2232 = distinct !{!2232, !2229, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !2233 = !{!2234, !2236} !2234 = distinct !{!2234, !2235, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac0f5487a2c58b48E: %self"} !2235 = distinct !{!2235, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac0f5487a2c58b48E"} !2236 = distinct !{!2236, !2237, !"_ZN4pulp3x862V39vectorize6__impl17h23b92ccb63cfb253E: %f"} !2237 = distinct !{!2237, !"_ZN4pulp3x862V39vectorize6__impl17h23b92ccb63cfb253E"} !2238 = !{!2239, !2241, !2234, !2236} !2239 = distinct !{!2239, !2240, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !2240 = distinct !{!2240, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !2241 = distinct !{!2241, !2240, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !2242 = !{!2243} !2243 = distinct !{!2243, !2244, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2244 = distinct !{!2244, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2245 = !{!2246} !2246 = distinct !{!2246, !2244, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2247 = !{!2243, !2248, !2234, !2236} !2248 = distinct !{!2248, !2244, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2249 = !{!2248, !2246, !2234, !2236} !2250 = !{!2251, !2253} !2251 = distinct !{!2251, !2252, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0cd7597888ae7560E: %self"} !2252 = distinct !{!2252, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0cd7597888ae7560E"} !2253 = distinct !{!2253, !2254, !"_ZN4pulp3x862V39vectorize6__impl17h87c4294fd5467f94E: %f"} !2254 = distinct !{!2254, !"_ZN4pulp3x862V39vectorize6__impl17h87c4294fd5467f94E"} !2255 = !{!2256, !2258, !2251, !2253} !2256 = distinct !{!2256, !2257, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !2257 = distinct !{!2257, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !2258 = distinct !{!2258, !2257, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !2259 = !{!2260} !2260 = distinct !{!2260, !2261, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2261 = distinct !{!2261, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2262 = !{!2263} !2263 = distinct !{!2263, !2261, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2264 = !{!2265} !2265 = distinct !{!2265, !2261, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2266 = !{!2260, !2263, !2251, !2253} !2267 = !{!2260, !2265, !2251, !2253} !2268 = !{!2263, !2265, !2251, !2253} !2269 = !{!2270} !2270 = distinct !{!2270, !2271, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2271 = distinct !{!2271, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2272 = !{!2273} !2273 = distinct !{!2273, !2271, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2274 = !{!2275} !2275 = distinct !{!2275, !2271, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2276 = !{!2270, !2273, !2251, !2253} !2277 = !{!2270, !2275, !2251, !2253} !2278 = !{!2273, !2275, !2251, !2253} !2279 = !{!2280} !2280 = distinct !{!2280, !2281, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2281 = distinct !{!2281, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2282 = !{!2283} !2283 = distinct !{!2283, !2281, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2284 = !{!2285} !2285 = distinct !{!2285, !2281, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2286 = !{!2280, !2283, !2251, !2253} !2287 = !{!2280, !2285, !2251, !2253} !2288 = !{!2283, !2285, !2251, !2253} !2289 = !{!2290} !2290 = distinct !{!2290, !2291, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2291 = distinct !{!2291, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2292 = !{!2293} !2293 = distinct !{!2293, !2291, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2294 = !{!2295} !2295 = distinct !{!2295, !2291, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2296 = !{!2290, !2293, !2251, !2253} !2297 = !{!2290, !2295, !2251, !2253} !2298 = !{!2293, !2295, !2251, !2253} !2299 = !{!2300, !2302} !2300 = distinct !{!2300, !2301, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6b9fe3630ab0f66E: %self"} !2301 = distinct !{!2301, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb6b9fe3630ab0f66E"} !2302 = distinct !{!2302, !2303, !"_ZN4pulp3x862V39vectorize6__impl17ha9146513adeba59eE: %f"} !2303 = distinct !{!2303, !"_ZN4pulp3x862V39vectorize6__impl17ha9146513adeba59eE"} !2304 = !{!2305, !2307, !2308, !2310, !2300, !2302} !2305 = distinct !{!2305, !2306, !"_ZN12concrete_fft4dif217stockham_dif2_end17h986fca129251082aE: %x.0"} !2306 = distinct !{!2306, !"_ZN12concrete_fft4dif217stockham_dif2_end17h986fca129251082aE"} !2307 = distinct !{!2307, !2306, !"_ZN12concrete_fft4dif217stockham_dif2_end17h986fca129251082aE: %y.0"} !2308 = distinct !{!2308, !2309, !"_ZN104_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Zero$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h52e953fb6667e415E: %x.0"} !2309 = distinct !{!2309, !"_ZN104_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Zero$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h52e953fb6667e415E"} !2310 = distinct !{!2310, !2309, !"_ZN104_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Zero$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h52e953fb6667e415E: %y.0"} !2311 = !{!2312, !2314} !2312 = distinct !{!2312, !2313, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdc633f326f052254E: %self"} !2313 = distinct !{!2313, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdc633f326f052254E"} !2314 = distinct !{!2314, !2315, !"_ZN4pulp3x862V39vectorize6__impl17ha66dd617e7afd1f5E: %f"} !2315 = distinct !{!2315, !"_ZN4pulp3x862V39vectorize6__impl17ha66dd617e7afd1f5E"} !2316 = !{!2317, !2319, !2312, !2314} !2317 = distinct !{!2317, !2318, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w_init.0"} !2318 = distinct !{!2318, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE"} !2319 = distinct !{!2319, !2318, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w.0"} !2320 = !{!2321} !2321 = distinct !{!2321, !2322, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !2322 = distinct !{!2322, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !2323 = !{!2324} !2324 = distinct !{!2324, !2322, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !2325 = !{!2326} !2326 = distinct !{!2326, !2322, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !2327 = !{!2321, !2324, !2312, !2314} !2328 = !{!2321, !2326, !2312, !2314} !2329 = !{!2324, !2326, !2312, !2314} !2330 = !{!2331} !2331 = distinct !{!2331, !2332, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !2332 = distinct !{!2332, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !2333 = !{!2334} !2334 = distinct !{!2334, !2332, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !2335 = !{!2336} !2336 = distinct !{!2336, !2332, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !2337 = !{!2331, !2334, !2312, !2314} !2338 = !{!2331, !2336, !2312, !2314} !2339 = !{!2334, !2336, !2312, !2314} !2340 = !{!2341} !2341 = distinct !{!2341, !2342, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d9a3c8fc7134b1bE: %self"} !2342 = distinct !{!2342, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d9a3c8fc7134b1bE"} !2343 = !{!2344, !2346} !2344 = distinct !{!2344, !2345, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7a15e402ab09b67E: %self"} !2345 = distinct !{!2345, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7a15e402ab09b67E"} !2346 = distinct !{!2346, !2347, !"_ZN4pulp3x862V39vectorize6__impl17h8dfa0a00e62f8ceaE: %f"} !2347 = distinct !{!2347, !"_ZN4pulp3x862V39vectorize6__impl17h8dfa0a00e62f8ceaE"} !2348 = !{!2349, !2351, !2352, !2354, !2344, !2346} !2349 = distinct !{!2349, !2350, !"_ZN12concrete_fft4dit217stockham_dit2_end17h479ab5e37647e20bE: %x.0"} !2350 = distinct !{!2350, !"_ZN12concrete_fft4dit217stockham_dit2_end17h479ab5e37647e20bE"} !2351 = distinct !{!2351, !2350, !"_ZN12concrete_fft4dit217stockham_dit2_end17h479ab5e37647e20bE: %y.0"} !2352 = distinct !{!2352, !2353, !"_ZN104_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Zero$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcc2d3a18fb68f35fE: %x.0"} !2353 = distinct !{!2353, !"_ZN104_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Zero$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcc2d3a18fb68f35fE"} !2354 = distinct !{!2354, !2353, !"_ZN104_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Zero$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hcc2d3a18fb68f35fE: %y.0"} !2355 = !{!2356} !2356 = distinct !{!2356, !2357, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7cfb5d566205f874E: %self"} !2357 = distinct !{!2357, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7cfb5d566205f874E"} !2358 = !{!2359, !2356} !2359 = distinct !{!2359, !2360, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h587c410742f9af3aE: %w_init.0"} !2360 = distinct !{!2360, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h587c410742f9af3aE"} !2361 = distinct !{!2361, !21, !22} !2362 = distinct !{!2362, !21, !22} !2363 = distinct !{!2363, !21, !22} !2364 = !{!2365} !2365 = distinct !{!2365, !2366, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d053731be7bce4fE: %self"} !2366 = distinct !{!2366, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d053731be7bce4fE"} !2367 = distinct !{!2367, !21, !22} !2368 = distinct !{!2368, !21, !22} !2369 = distinct !{!2369, !21, !22} !2370 = distinct !{!2370, !21, !22} !2371 = !{!2372, !2374} !2372 = distinct !{!2372, !2373, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8be9b6afa5325d5bE: %self"} !2373 = distinct !{!2373, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8be9b6afa5325d5bE"} !2374 = distinct !{!2374, !2375, !"_ZN4pulp3x862V39vectorize6__impl17h5a6e9729e79a172dE: %f"} !2375 = distinct !{!2375, !"_ZN4pulp3x862V39vectorize6__impl17h5a6e9729e79a172dE"} !2376 = !{!2377, !2379, !2372, !2374} !2377 = distinct !{!2377, !2378, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !2378 = distinct !{!2378, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !2379 = distinct !{!2379, !2378, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !2380 = !{!2381} !2381 = distinct !{!2381, !2382, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2382 = distinct !{!2382, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2383 = !{!2384} !2384 = distinct !{!2384, !2382, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2385 = !{!2386} !2386 = distinct !{!2386, !2382, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2387 = !{!2381, !2384, !2372, !2374} !2388 = !{!2381, !2386, !2372, !2374} !2389 = !{!2384, !2386, !2372, !2374} !2390 = !{!2391} !2391 = distinct !{!2391, !2392, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2392 = distinct !{!2392, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2393 = !{!2394} !2394 = distinct !{!2394, !2392, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2395 = !{!2396} !2396 = distinct !{!2396, !2392, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2397 = !{!2391, !2394, !2372, !2374} !2398 = !{!2391, !2396, !2372, !2374} !2399 = !{!2394, !2396, !2372, !2374} !2400 = !{!2401} !2401 = distinct !{!2401, !2402, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2402 = distinct !{!2402, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2403 = !{!2404} !2404 = distinct !{!2404, !2402, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2405 = !{!2406} !2406 = distinct !{!2406, !2402, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2407 = !{!2401, !2404, !2372, !2374} !2408 = !{!2401, !2406, !2372, !2374} !2409 = !{!2404, !2406, !2372, !2374} !2410 = !{!2411, !2413} !2411 = distinct !{!2411, !2412, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8aeebd30bdc62378E: %self"} !2412 = distinct !{!2412, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8aeebd30bdc62378E"} !2413 = distinct !{!2413, !2414, !"_ZN4pulp3x862V39vectorize6__impl17haebbf119c62e509aE: %f"} !2414 = distinct !{!2414, !"_ZN4pulp3x862V39vectorize6__impl17haebbf119c62e509aE"} !2415 = !{!2416, !2418, !2411, !2413} !2416 = distinct !{!2416, !2417, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E: %w_init.0"} !2417 = distinct !{!2417, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E"} !2418 = distinct !{!2418, !2417, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E: %w.0"} !2419 = !{!2420} !2420 = distinct !{!2420, !2421, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !2421 = distinct !{!2421, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !2422 = !{!2423} !2423 = distinct !{!2423, !2421, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !2424 = !{!2420, !2425, !2411, !2413} !2425 = distinct !{!2425, !2421, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !2426 = !{!2425, !2423, !2411, !2413} !2427 = !{!2428} !2428 = distinct !{!2428, !2429, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce52b3f78a02fe54E: %self"} !2429 = distinct !{!2429, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce52b3f78a02fe54E"} !2430 = !{!2431, !2433} !2431 = distinct !{!2431, !2432, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h647f2c0971b901baE: %self"} !2432 = distinct !{!2432, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h647f2c0971b901baE"} !2433 = distinct !{!2433, !2434, !"_ZN4pulp3x862V39vectorize6__impl17h5cb523fb9dd0da84E: %f"} !2434 = distinct !{!2434, !"_ZN4pulp3x862V39vectorize6__impl17h5cb523fb9dd0da84E"} !2435 = !{!2436} !2436 = distinct !{!2436, !2437, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !2437 = distinct !{!2437, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !2438 = !{!2439} !2439 = distinct !{!2439, !2437, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !2440 = !{!2441} !2441 = distinct !{!2441, !2437, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !2442 = !{!2439, !2441, !2431, !2433} !2443 = !{!2436, !2439, !2431, !2433} !2444 = !{!2436, !2441, !2431, !2433} !2445 = !{!2446} !2446 = distinct !{!2446, !2447, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6190583105f7af99E: %self"} !2447 = distinct !{!2447, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6190583105f7af99E"} !2448 = !{!2449} !2449 = distinct !{!2449, !2450, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4c623acfd33347a6E: %self"} !2450 = distinct !{!2450, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4c623acfd33347a6E"} !2451 = distinct !{!2451, !21, !22} !2452 = distinct !{!2452, !21, !22} !2453 = distinct !{!2453, !21, !22} !2454 = !{!2455} !2455 = distinct !{!2455, !2456, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h90466c504973d094E: %self"} !2456 = distinct !{!2456, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h90466c504973d094E"} !2457 = distinct !{!2457, !21, !22} !2458 = distinct !{!2458, !21, !22} !2459 = distinct !{!2459, !21, !22} !2460 = !{!2461, !2463} !2461 = distinct !{!2461, !2462, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3cdc09e94d6a78E: %self"} !2462 = distinct !{!2462, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3cdc09e94d6a78E"} !2463 = distinct !{!2463, !2464, !"_ZN4pulp3x862V39vectorize6__impl17h63f28bd9fa0d8c87E: %f"} !2464 = distinct !{!2464, !"_ZN4pulp3x862V39vectorize6__impl17h63f28bd9fa0d8c87E"} !2465 = !{!2466, !2468, !2469, !2471, !2472, !2474, !2461, !2463} !2466 = distinct !{!2466, !2467, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w_init.0"} !2467 = distinct !{!2467, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE"} !2468 = distinct !{!2468, !2467, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w.0"} !2469 = distinct !{!2469, !2470, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3096c93b79344a8E: %w_init.0"} !2470 = distinct !{!2470, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3096c93b79344a8E"} !2471 = distinct !{!2471, !2470, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3096c93b79344a8E: %w.0"} !2472 = distinct !{!2472, !2473, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE: %w_init.0"} !2473 = distinct !{!2473, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE"} !2474 = distinct !{!2474, !2473, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE: %w.0"} !2475 = !{!2476} !2476 = distinct !{!2476, !2477, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2477 = distinct !{!2477, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2478 = !{!2479} !2479 = distinct !{!2479, !2477, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2480 = !{!2481} !2481 = distinct !{!2481, !2477, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2482 = !{!2476, !2479, !2461, !2463} !2483 = !{!2476, !2481, !2461, !2463} !2484 = !{!2479, !2481, !2461, !2463} !2485 = !{!2486} !2486 = distinct !{!2486, !2487, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2487 = distinct !{!2487, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2488 = !{!2489} !2489 = distinct !{!2489, !2487, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2490 = !{!2491} !2491 = distinct !{!2491, !2487, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2492 = !{!2486, !2489, !2461, !2463} !2493 = !{!2486, !2491, !2461, !2463} !2494 = !{!2489, !2491, !2461, !2463} !2495 = !{!2496} !2496 = distinct !{!2496, !2497, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2497 = distinct !{!2497, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2498 = !{!2499} !2499 = distinct !{!2499, !2497, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2500 = !{!2501} !2501 = distinct !{!2501, !2497, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2502 = !{!2496, !2499, !2461, !2463} !2503 = !{!2496, !2501, !2461, !2463} !2504 = !{!2499, !2501, !2461, !2463} !2505 = !{!2506} !2506 = distinct !{!2506, !2507, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha834bdd3442cd5b9E: %self"} !2507 = distinct !{!2507, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha834bdd3442cd5b9E"} !2508 = !{!2509, !2506} !2509 = distinct !{!2509, !2510, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2490641ebbbda406E: %w_init.0"} !2510 = distinct !{!2510, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2490641ebbbda406E"} !2511 = distinct !{!2511, !21, !22} !2512 = !{!2513, !2506} !2513 = distinct !{!2513, !2514, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec66254c3d2c2925E: %w_init.0"} !2514 = distinct !{!2514, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec66254c3d2c2925E"} !2515 = distinct !{!2515, !21, !22} !2516 = !{!2517, !2513, !2506} !2517 = distinct !{!2517, !2518, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E: %w_init.0"} !2518 = distinct !{!2518, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E"} !2519 = !{!2520, !2513, !2506} !2520 = distinct !{!2520, !2521, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E: %w_init.0"} !2521 = distinct !{!2521, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E"} !2522 = !{!2523, !2525, !2513, !2506} !2523 = distinct !{!2523, !2524, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !2524 = distinct !{!2524, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !2525 = distinct !{!2525, !2526, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE: %w_init.0"} !2526 = distinct !{!2526, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE"} !2527 = !{!2525, !2513, !2506} !2528 = !{!2529, !2513, !2506} !2529 = distinct !{!2529, !2530, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !2530 = distinct !{!2530, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !2531 = distinct !{!2531, !21, !22} !2532 = distinct !{!2532, !21, !22} !2533 = distinct !{!2533, !21, !22} !2534 = distinct !{!2534, !21, !22} !2535 = distinct !{!2535, !21, !22} !2536 = distinct !{!2536, !21, !22} !2537 = distinct !{!2537, !21, !22} !2538 = !{!2539} !2539 = distinct !{!2539, !2540, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6534ec5e17f35000E: %self"} !2540 = distinct !{!2540, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6534ec5e17f35000E"} !2541 = !{!2542} !2542 = distinct !{!2542, !2543, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9af7cb8eda23c51bE: %self"} !2543 = distinct !{!2543, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9af7cb8eda23c51bE"} !2544 = !{!2545, !2547, !2542} !2545 = distinct !{!2545, !2546, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !2546 = distinct !{!2546, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !2547 = distinct !{!2547, !2548, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E: %w.0"} !2548 = distinct !{!2548, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E"} !2549 = distinct !{!2549, !21, !22} !2550 = distinct !{!2550, !21, !22} !2551 = distinct !{!2551, !21, !22} !2552 = distinct !{!2552, !21, !22} !2553 = !{!2554, !2556} !2554 = distinct !{!2554, !2555, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h57e69618e9e632f2E: %self"} !2555 = distinct !{!2555, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h57e69618e9e632f2E"} !2556 = distinct !{!2556, !2557, !"_ZN4pulp3x862V39vectorize6__impl17h4acd6677bd91742fE: %f"} !2557 = distinct !{!2557, !"_ZN4pulp3x862V39vectorize6__impl17h4acd6677bd91742fE"} !2558 = !{!2559} !2559 = distinct !{!2559, !2560, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2560 = distinct !{!2560, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2561 = !{!2562} !2562 = distinct !{!2562, !2560, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2563 = !{!2564} !2564 = distinct !{!2564, !2560, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2565 = !{!2559, !2562, !2554, !2556} !2566 = !{!2559, !2564, !2554, !2556} !2567 = !{!2562, !2564, !2554, !2556} !2568 = !{!2569} !2569 = distinct !{!2569, !2570, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2570 = distinct !{!2570, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2571 = !{!2572} !2572 = distinct !{!2572, !2570, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2573 = !{!2574} !2574 = distinct !{!2574, !2570, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2575 = !{!2569, !2572, !2554, !2556} !2576 = !{!2569, !2574, !2554, !2556} !2577 = !{!2572, !2574, !2554, !2556} !2578 = !{!2579} !2579 = distinct !{!2579, !2580, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2580 = distinct !{!2580, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2581 = !{!2582} !2582 = distinct !{!2582, !2580, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2583 = !{!2584} !2584 = distinct !{!2584, !2580, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2585 = !{!2579, !2582, !2554, !2556} !2586 = !{!2579, !2584, !2554, !2556} !2587 = !{!2582, !2584, !2554, !2556} !2588 = !{!2589} !2589 = distinct !{!2589, !2590, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2590 = distinct !{!2590, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2591 = !{!2592} !2592 = distinct !{!2592, !2590, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2593 = !{!2594} !2594 = distinct !{!2594, !2590, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2595 = !{!2589, !2592, !2554, !2556} !2596 = !{!2589, !2594, !2554, !2556} !2597 = !{!2592, !2594, !2554, !2556} !2598 = !{!2599} !2599 = distinct !{!2599, !2600, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0020b6fe264758d3E: %self"} !2600 = distinct !{!2600, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0020b6fe264758d3E"} !2601 = !{!2602, !2599} !2602 = distinct !{!2602, !2603, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E: %w_init.0"} !2603 = distinct !{!2603, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E"} !2604 = !{!2605, !2607} !2605 = distinct !{!2605, !2606, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf597784d77bc048eE: %self"} !2606 = distinct !{!2606, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf597784d77bc048eE"} !2607 = distinct !{!2607, !2608, !"_ZN4pulp3x862V39vectorize6__impl17h04d867cd13f19071E: %f"} !2608 = distinct !{!2608, !"_ZN4pulp3x862V39vectorize6__impl17h04d867cd13f19071E"} !2609 = !{!2610, !2612, !2605, !2607} !2610 = distinct !{!2610, !2611, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w_init.0"} !2611 = distinct !{!2611, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E"} !2612 = distinct !{!2612, !2611, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w.0"} !2613 = !{!2614} !2614 = distinct !{!2614, !2615, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !2615 = distinct !{!2615, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !2616 = !{!2617} !2617 = distinct !{!2617, !2615, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !2618 = !{!2619} !2619 = distinct !{!2619, !2615, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !2620 = !{!2614, !2617, !2605, !2607} !2621 = !{!2614, !2619, !2605, !2607} !2622 = !{!2617, !2619, !2605, !2607} !2623 = !{!2624} !2624 = distinct !{!2624, !2625, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !2625 = distinct !{!2625, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !2626 = !{!2627} !2627 = distinct !{!2627, !2625, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !2628 = !{!2629} !2629 = distinct !{!2629, !2625, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !2630 = !{!2624, !2627, !2605, !2607} !2631 = !{!2624, !2629, !2605, !2607} !2632 = !{!2627, !2629, !2605, !2607} !2633 = !{!2634} !2634 = distinct !{!2634, !2635, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !2635 = distinct !{!2635, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !2636 = !{!2637} !2637 = distinct !{!2637, !2635, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !2638 = !{!2639} !2639 = distinct !{!2639, !2635, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !2640 = !{!2634, !2637, !2605, !2607} !2641 = !{!2634, !2639, !2605, !2607} !2642 = !{!2637, !2639, !2605, !2607} !2643 = !{!2644} !2644 = distinct !{!2644, !2645, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66f221637cf1ec7bE: %self"} !2645 = distinct !{!2645, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66f221637cf1ec7bE"} !2646 = !{!2647, !2644} !2647 = distinct !{!2647, !2648, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h587c410742f9af3aE: %w_init.0"} !2648 = distinct !{!2648, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h587c410742f9af3aE"} !2649 = distinct !{!2649, !21, !22} !2650 = distinct !{!2650, !21, !22} !2651 = distinct !{!2651, !21, !22} !2652 = !{!2653} !2653 = distinct !{!2653, !2654, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h80ddaa3cf1f1ed7fE: %self"} !2654 = distinct !{!2654, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h80ddaa3cf1f1ed7fE"} !2655 = !{!2656, !2653} !2656 = distinct !{!2656, !2657, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E: %w_init.0"} !2657 = distinct !{!2657, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E"} !2658 = !{!2659, !2653} !2659 = distinct !{!2659, !2660, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE: %w_init.0"} !2660 = distinct !{!2660, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE"} !2661 = !{!2662, !2659, !2653} !2662 = distinct !{!2662, !2663, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !2663 = distinct !{!2663, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !2664 = !{!2665, !2653} !2665 = distinct !{!2665, !2666, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !2666 = distinct !{!2666, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !2667 = !{!2668} !2668 = distinct !{!2668, !2669, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc24bc493703fcf5cE: %self"} !2669 = distinct !{!2669, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc24bc493703fcf5cE"} !2670 = !{!2671, !2668} !2671 = distinct !{!2671, !2672, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !2672 = distinct !{!2672, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !2673 = !{!2674, !2676} !2674 = distinct !{!2674, !2675, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d940a834171f867E: %self"} !2675 = distinct !{!2675, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d940a834171f867E"} !2676 = distinct !{!2676, !2677, !"_ZN4pulp3x862V39vectorize6__impl17he05e7be7d04fb1caE: %f"} !2677 = distinct !{!2677, !"_ZN4pulp3x862V39vectorize6__impl17he05e7be7d04fb1caE"} !2678 = !{!2679, !2681, !2682, !2684, !2674, !2676} !2679 = distinct !{!2679, !2680, !"_ZN12concrete_fft4dif417stockham_dif4_end17had6d828513340080E: %x.0"} !2680 = distinct !{!2680, !"_ZN12concrete_fft4dif417stockham_dif4_end17had6d828513340080E"} !2681 = distinct !{!2681, !2680, !"_ZN12concrete_fft4dif417stockham_dif4_end17had6d828513340080E: %y.0"} !2682 = distinct !{!2682, !2683, !"_ZN138_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h96309a624bb3a854E: %x.0"} !2683 = distinct !{!2683, !"_ZN138_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h96309a624bb3a854E"} !2684 = distinct !{!2684, !2683, !"_ZN138_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h96309a624bb3a854E: %y.0"} !2685 = !{!2686} !2686 = distinct !{!2686, !2687, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h15fcfe819503bf3bE: %self"} !2687 = distinct !{!2687, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h15fcfe819503bf3bE"} !2688 = distinct !{!2688, !21, !22} !2689 = !{!2690} !2690 = distinct !{!2690, !2691, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf378812bbde9ba6fE: %self"} !2691 = distinct !{!2691, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf378812bbde9ba6fE"} !2692 = !{!2693, !2690} !2693 = distinct !{!2693, !2694, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE: %w.0"} !2694 = distinct !{!2694, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE"} !2695 = distinct !{!2695, !21, !22} !2696 = distinct !{!2696, !21, !22} !2697 = distinct !{!2697, !21, !22} !2698 = !{!2699, !2701} !2699 = distinct !{!2699, !2700, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hebf84e574d27c36aE: %self"} !2700 = distinct !{!2700, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hebf84e574d27c36aE"} !2701 = distinct !{!2701, !2702, !"_ZN4pulp3x862V39vectorize6__impl17hb24c9c5637c64835E: %f"} !2702 = distinct !{!2702, !"_ZN4pulp3x862V39vectorize6__impl17hb24c9c5637c64835E"} !2703 = !{!2704, !2706, !2707, !2709, !2699, !2701} !2704 = distinct !{!2704, !2705, !"_ZN12concrete_fft5dif1618stockham_dif16_end17hff7a0e3822f9cb4bE: %x.0"} !2705 = distinct !{!2705, !"_ZN12concrete_fft5dif1618stockham_dif16_end17hff7a0e3822f9cb4bE"} !2706 = distinct !{!2706, !2705, !"_ZN12concrete_fft5dif1618stockham_dif16_end17hff7a0e3822f9cb4bE: %y.0"} !2707 = distinct !{!2707, !2708, !"_ZN212_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h294c5ad5c6d96f26E: %x.0"} !2708 = distinct !{!2708, !"_ZN212_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h294c5ad5c6d96f26E"} !2709 = distinct !{!2709, !2708, !"_ZN212_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h294c5ad5c6d96f26E: %y.0"} !2710 = !{!2711, !2713} !2711 = distinct !{!2711, !2712, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf5c03591484eaafbE: %self"} !2712 = distinct !{!2712, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf5c03591484eaafbE"} !2713 = distinct !{!2713, !2714, !"_ZN4pulp3x862V39vectorize6__impl17h0522a01da8134359E: %f"} !2714 = distinct !{!2714, !"_ZN4pulp3x862V39vectorize6__impl17h0522a01da8134359E"} !2715 = !{!2716, !2718, !2719, !2721, !2711, !2713} !2716 = distinct !{!2716, !2717, !"_ZN12concrete_fft4dit817stockham_dit8_end17h98ed6216e71779a1E: %x.0"} !2717 = distinct !{!2717, !"_ZN12concrete_fft4dit817stockham_dit8_end17h98ed6216e71779a1E"} !2718 = distinct !{!2718, !2717, !"_ZN12concrete_fft4dit817stockham_dit8_end17h98ed6216e71779a1E: %y.0"} !2719 = distinct !{!2719, !2720, !"_ZN174_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha2f64511bc3389c4E: %x.0"} !2720 = distinct !{!2720, !"_ZN174_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha2f64511bc3389c4E"} !2721 = distinct !{!2721, !2720, !"_ZN174_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha2f64511bc3389c4E: %y.0"} !2722 = !{!2723, !2725} !2723 = distinct !{!2723, !2724, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9b32f835e85879bE: %self"} !2724 = distinct !{!2724, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf9b32f835e85879bE"} !2725 = distinct !{!2725, !2726, !"_ZN4pulp3x862V39vectorize6__impl17h2e507a1b933d0d9aE: %f"} !2726 = distinct !{!2726, !"_ZN4pulp3x862V39vectorize6__impl17h2e507a1b933d0d9aE"} !2727 = !{!2728, !2730, !2731, !2733, !2734, !2736, !2723, !2725} !2728 = distinct !{!2728, !2729, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w_init.0"} !2729 = distinct !{!2729, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE"} !2730 = distinct !{!2730, !2729, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w.0"} !2731 = distinct !{!2731, !2732, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3096c93b79344a8E: %w_init.0"} !2732 = distinct !{!2732, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3096c93b79344a8E"} !2733 = distinct !{!2733, !2732, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd3096c93b79344a8E: %w.0"} !2734 = distinct !{!2734, !2735, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE: %w_init.0"} !2735 = distinct !{!2735, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE"} !2736 = distinct !{!2736, !2735, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hfa5dc90e128a4c8aE: %w.0"} !2737 = !{!2738} !2738 = distinct !{!2738, !2739, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2739 = distinct !{!2739, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2740 = !{!2741} !2741 = distinct !{!2741, !2739, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2742 = !{!2743} !2743 = distinct !{!2743, !2739, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2744 = !{!2738, !2741, !2723, !2725} !2745 = !{!2738, !2743, !2723, !2725} !2746 = !{!2741, !2743, !2723, !2725} !2747 = !{!2748} !2748 = distinct !{!2748, !2749, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2749 = distinct !{!2749, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2750 = !{!2751} !2751 = distinct !{!2751, !2749, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2752 = !{!2753} !2753 = distinct !{!2753, !2749, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2754 = !{!2748, !2751, !2723, !2725} !2755 = !{!2748, !2753, !2723, !2725} !2756 = !{!2751, !2753, !2723, !2725} !2757 = !{!2758} !2758 = distinct !{!2758, !2759, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2759 = distinct !{!2759, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2760 = !{!2761} !2761 = distinct !{!2761, !2759, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2762 = !{!2763} !2763 = distinct !{!2763, !2759, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2764 = !{!2758, !2761, !2723, !2725} !2765 = !{!2758, !2763, !2723, !2725} !2766 = !{!2761, !2763, !2723, !2725} !2767 = !{!2768} !2768 = distinct !{!2768, !2769, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h289aa277febf4d58E: %self"} !2769 = distinct !{!2769, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h289aa277febf4d58E"} !2770 = !{!2771, !2773} !2771 = distinct !{!2771, !2772, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdaa9ef0fde5a9804E: %self"} !2772 = distinct !{!2772, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdaa9ef0fde5a9804E"} !2773 = distinct !{!2773, !2774, !"_ZN4pulp3x862V39vectorize6__impl17hb961567869dfd5b8E: %f"} !2774 = distinct !{!2774, !"_ZN4pulp3x862V39vectorize6__impl17hb961567869dfd5b8E"} !2775 = !{!2776} !2776 = distinct !{!2776, !2777, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2777 = distinct !{!2777, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2778 = !{!2779} !2779 = distinct !{!2779, !2777, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2780 = !{!2776, !2781, !2771, !2773} !2781 = distinct !{!2781, !2777, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2782 = !{!2781, !2779, !2771, !2773} !2783 = !{!2784} !2784 = distinct !{!2784, !2785, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2785 = distinct !{!2785, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2786 = !{!2787} !2787 = distinct !{!2787, !2785, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2788 = !{!2784, !2789, !2771, !2773} !2789 = distinct !{!2789, !2785, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2790 = !{!2789, !2787, !2771, !2773} !2791 = !{!2792, !2794} !2792 = distinct !{!2792, !2793, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c71f7fc63e76ae4E: %self"} !2793 = distinct !{!2793, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0c71f7fc63e76ae4E"} !2794 = distinct !{!2794, !2795, !"_ZN4pulp3x862V39vectorize6__impl17h77454429a0e32469E: %f"} !2795 = distinct !{!2795, !"_ZN4pulp3x862V39vectorize6__impl17h77454429a0e32469E"} !2796 = !{!2797} !2797 = distinct !{!2797, !2798, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !2798 = distinct !{!2798, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !2799 = !{!2800} !2800 = distinct !{!2800, !2798, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !2801 = !{!2802} !2802 = distinct !{!2802, !2798, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !2803 = !{!2797, !2800, !2792, !2794} !2804 = !{!2800, !2802, !2792, !2794} !2805 = !{!2797, !2802, !2792, !2794} !2806 = !{!2807} !2807 = distinct !{!2807, !2808, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !2808 = distinct !{!2808, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !2809 = !{!2810} !2810 = distinct !{!2810, !2808, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !2811 = !{!2812} !2812 = distinct !{!2812, !2808, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !2813 = !{!2807, !2810, !2792, !2794} !2814 = !{!2810, !2812, !2792, !2794} !2815 = !{!2807, !2812, !2792, !2794} !2816 = !{!2817} !2817 = distinct !{!2817, !2818, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !2818 = distinct !{!2818, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !2819 = !{!2820} !2820 = distinct !{!2820, !2818, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !2821 = !{!2822} !2822 = distinct !{!2822, !2818, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !2823 = !{!2817, !2820, !2792, !2794} !2824 = !{!2820, !2822, !2792, !2794} !2825 = !{!2817, !2822, !2792, !2794} !2826 = !{!2827} !2827 = distinct !{!2827, !2828, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he00138afd0c3d81cE: %self"} !2828 = distinct !{!2828, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he00138afd0c3d81cE"} !2829 = !{!2830} !2830 = distinct !{!2830, !2831, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h326f0cfcd7e99560E: %self"} !2831 = distinct !{!2831, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h326f0cfcd7e99560E"} !2832 = distinct !{!2832, !21, !22} !2833 = distinct !{!2833, !21, !22} !2834 = distinct !{!2834, !21, !22} !2835 = !{!2836} !2836 = distinct !{!2836, !2837, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h159cc031fcc17358E: %self"} !2837 = distinct !{!2837, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h159cc031fcc17358E"} !2838 = !{!2839, !2841} !2839 = distinct !{!2839, !2840, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha2e39a61b370676bE: %self"} !2840 = distinct !{!2840, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha2e39a61b370676bE"} !2841 = distinct !{!2841, !2842, !"_ZN4pulp3x862V39vectorize6__impl17he97dcd90256d5e38E: %f"} !2842 = distinct !{!2842, !"_ZN4pulp3x862V39vectorize6__impl17he97dcd90256d5e38E"} !2843 = !{!2844} !2844 = distinct !{!2844, !2845, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !2845 = distinct !{!2845, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !2846 = !{!2847} !2847 = distinct !{!2847, !2845, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !2848 = !{!2849} !2849 = distinct !{!2849, !2845, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !2850 = !{!2844, !2847, !2839, !2841} !2851 = !{!2844, !2849, !2839, !2841} !2852 = !{!2847, !2849, !2839, !2841} !2853 = !{!2854} !2854 = distinct !{!2854, !2855, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !2855 = distinct !{!2855, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !2856 = !{!2857} !2857 = distinct !{!2857, !2855, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !2858 = !{!2859} !2859 = distinct !{!2859, !2855, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !2860 = !{!2854, !2857, !2839, !2841} !2861 = !{!2854, !2859, !2839, !2841} !2862 = !{!2857, !2859, !2839, !2841} !2863 = !{!2864, !2866} !2864 = distinct !{!2864, !2865, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h949f58a154457380E: %self"} !2865 = distinct !{!2865, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h949f58a154457380E"} !2866 = distinct !{!2866, !2867, !"_ZN4pulp3x862V39vectorize6__impl17h4106aa31dd2ec361E: %f"} !2867 = distinct !{!2867, !"_ZN4pulp3x862V39vectorize6__impl17h4106aa31dd2ec361E"} !2868 = !{!2869} !2869 = distinct !{!2869, !2870, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !2870 = distinct !{!2870, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !2871 = !{!2872} !2872 = distinct !{!2872, !2870, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !2873 = !{!2874} !2874 = distinct !{!2874, !2870, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !2875 = !{!2872, !2874, !2864, !2866} !2876 = !{!2869, !2872, !2864, !2866} !2877 = !{!2869, !2874, !2864, !2866} !2878 = !{!2879, !2881} !2879 = distinct !{!2879, !2880, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1705b2dbd667ba9E: %self"} !2880 = distinct !{!2880, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1705b2dbd667ba9E"} !2881 = distinct !{!2881, !2882, !"_ZN4pulp3x862V39vectorize6__impl17h950f03fc57d5974aE: %f"} !2882 = distinct !{!2882, !"_ZN4pulp3x862V39vectorize6__impl17h950f03fc57d5974aE"} !2883 = !{!2884} !2884 = distinct !{!2884, !2885, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !2885 = distinct !{!2885, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !2886 = !{!2887} !2887 = distinct !{!2887, !2885, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !2888 = !{!2889} !2889 = distinct !{!2889, !2885, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !2890 = !{!2887, !2889, !2879, !2881} !2891 = !{!2884, !2887, !2879, !2881} !2892 = !{!2884, !2889, !2879, !2881} !2893 = !{!2894} !2894 = distinct !{!2894, !2895, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %x.0"} !2895 = distinct !{!2895, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE"} !2896 = !{!2897} !2897 = distinct !{!2897, !2895, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %y.0"} !2898 = !{!2899} !2899 = distinct !{!2899, !2895, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %w.0"} !2900 = !{!2894, !2897, !2879, !2881} !2901 = !{!2897, !2899, !2879, !2881} !2902 = !{!2894, !2899, !2879, !2881} !2903 = !{!2904, !2906} !2904 = distinct !{!2904, !2905, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc2f12f8d363c03cbE: %self"} !2905 = distinct !{!2905, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc2f12f8d363c03cbE"} !2906 = distinct !{!2906, !2907, !"_ZN4pulp3x862V39vectorize6__impl17h4d01292e02b59c99E: %f"} !2907 = distinct !{!2907, !"_ZN4pulp3x862V39vectorize6__impl17h4d01292e02b59c99E"} !2908 = !{!2909} !2909 = distinct !{!2909, !2910, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !2910 = distinct !{!2910, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !2911 = !{!2912} !2912 = distinct !{!2912, !2910, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !2913 = !{!2914, !2912, !2904, !2906} !2914 = distinct !{!2914, !2910, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !2915 = !{!2909, !2914, !2904, !2906} !2916 = !{!2917} !2917 = distinct !{!2917, !2918, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !2918 = distinct !{!2918, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !2919 = !{!2920, !2921, !2904, !2906} !2920 = distinct !{!2920, !2918, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !2921 = distinct !{!2921, !2918, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !2922 = !{!2923} !2923 = distinct !{!2923, !2924, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !2924 = distinct !{!2924, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !2925 = !{!2926, !2927, !2904, !2906} !2926 = distinct !{!2926, !2924, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !2927 = distinct !{!2927, !2924, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !2928 = !{!2929} !2929 = distinct !{!2929, !2930, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06769798836fa3ebE: %self"} !2930 = distinct !{!2930, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h06769798836fa3ebE"} !2931 = distinct !{!2931, !21, !22} !2932 = !{!2933, !2929} !2933 = distinct !{!2933, !2934, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE: %w_init.0"} !2934 = distinct !{!2934, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE"} !2935 = distinct !{!2935, !21, !22} !2936 = distinct !{!2936, !21, !22} !2937 = !{!2938} !2938 = distinct !{!2938, !2939, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E: %self"} !2939 = distinct !{!2939, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h000c547d37a026e6E"} !2940 = !{!2941, !2938} !2941 = distinct !{!2941, !2942, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE: %w.0"} !2942 = distinct !{!2942, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE"} !2943 = distinct !{!2943, !21, !22} !2944 = !{!2945, !2947} !2945 = distinct !{!2945, !2946, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54c11bd08fc8f197E: %self"} !2946 = distinct !{!2946, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h54c11bd08fc8f197E"} !2947 = distinct !{!2947, !2948, !"_ZN4pulp3x862V39vectorize6__impl17h25f1079b88d16e7bE: %f"} !2948 = distinct !{!2948, !"_ZN4pulp3x862V39vectorize6__impl17h25f1079b88d16e7bE"} !2949 = !{!2950, !2952, !2945, !2947} !2950 = distinct !{!2950, !2951, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE: %w_init.0"} !2951 = distinct !{!2951, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE"} !2952 = distinct !{!2952, !2951, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE: %w.0"} !2953 = !{!2954} !2954 = distinct !{!2954, !2955, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !2955 = distinct !{!2955, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !2956 = !{!2957} !2957 = distinct !{!2957, !2955, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !2958 = !{!2959} !2959 = distinct !{!2959, !2955, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !2960 = !{!2954, !2957, !2945, !2947} !2961 = !{!2954, !2959, !2945, !2947} !2962 = !{!2957, !2959, !2945, !2947} !2963 = !{!2964, !2966} !2964 = distinct !{!2964, !2965, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6eb56010ebfc72cE: %self"} !2965 = distinct !{!2965, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6eb56010ebfc72cE"} !2966 = distinct !{!2966, !2967, !"_ZN4pulp3x862V39vectorize6__impl17hf320dd0597b5255aE: %f"} !2967 = distinct !{!2967, !"_ZN4pulp3x862V39vectorize6__impl17hf320dd0597b5255aE"} !2968 = !{!2969} !2969 = distinct !{!2969, !2970, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !2970 = distinct !{!2970, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !2971 = !{!2972} !2972 = distinct !{!2972, !2970, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !2973 = !{!2969, !2974, !2964, !2966} !2974 = distinct !{!2974, !2970, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !2975 = !{!2974, !2972, !2964, !2966} !2976 = !{!2977} !2977 = distinct !{!2977, !2978, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !2978 = distinct !{!2978, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !2979 = !{!2980} !2980 = distinct !{!2980, !2978, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !2981 = !{!2977, !2982, !2964, !2966} !2982 = distinct !{!2982, !2978, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !2983 = !{!2982, !2980, !2964, !2966} !2984 = !{!2985} !2985 = distinct !{!2985, !2986, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0a472a9c68a274c0E: %self"} !2986 = distinct !{!2986, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0a472a9c68a274c0E"} !2987 = !{!2988, !2985} !2988 = distinct !{!2988, !2989, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE: %w_init.0"} !2989 = distinct !{!2989, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE"} !2990 = !{!2991, !2988, !2985} !2991 = distinct !{!2991, !2992, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !2992 = distinct !{!2992, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !2993 = !{!2994, !2985} !2994 = distinct !{!2994, !2995, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !2995 = distinct !{!2995, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !2996 = !{!2997, !2999} !2997 = distinct !{!2997, !2998, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf50fa2ff64b7fdE: %self"} !2998 = distinct !{!2998, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf50fa2ff64b7fdE"} !2999 = distinct !{!2999, !3000, !"_ZN4pulp3x862V39vectorize6__impl17hb5d047132924f7c1E: %f"} !3000 = distinct !{!3000, !"_ZN4pulp3x862V39vectorize6__impl17hb5d047132924f7c1E"} !3001 = !{!3002, !3004, !2997, !2999} !3002 = distinct !{!3002, !3003, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E: %w_init.0"} !3003 = distinct !{!3003, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E"} !3004 = distinct !{!3004, !3003, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hecef7c34cab1c993E: %w.0"} !3005 = !{!3006} !3006 = distinct !{!3006, !3007, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !3007 = distinct !{!3007, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !3008 = !{!3009} !3009 = distinct !{!3009, !3007, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !3010 = !{!3006, !3011, !2997, !2999} !3011 = distinct !{!3011, !3007, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !3012 = !{!3011, !3009, !2997, !2999} !3013 = !{!3014, !3016} !3014 = distinct !{!3014, !3015, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f3b508f748144c4E: %self"} !3015 = distinct !{!3015, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f3b508f748144c4E"} !3016 = distinct !{!3016, !3017, !"_ZN4pulp3x862V39vectorize6__impl17h630642c7c06afb1aE: %f"} !3017 = distinct !{!3017, !"_ZN4pulp3x862V39vectorize6__impl17h630642c7c06afb1aE"} !3018 = !{!3019} !3019 = distinct !{!3019, !3020, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !3020 = distinct !{!3020, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !3021 = !{!3022} !3022 = distinct !{!3022, !3020, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !3023 = !{!3024} !3024 = distinct !{!3024, !3020, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !3025 = !{!3022, !3024, !3014, !3016} !3026 = !{!3019, !3022, !3014, !3016} !3027 = !{!3019, !3024, !3014, !3016} !3028 = !{!3029} !3029 = distinct !{!3029, !3030, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3030 = distinct !{!3030, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3031 = !{!3032} !3032 = distinct !{!3032, !3030, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3033 = !{!3034} !3034 = distinct !{!3034, !3030, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3035 = !{!3029, !3032, !3014, !3016} !3036 = !{!3032, !3034, !3014, !3016} !3037 = !{!3029, !3034, !3014, !3016} !3038 = !{!3039} !3039 = distinct !{!3039, !3040, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3040 = distinct !{!3040, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3041 = !{!3042} !3042 = distinct !{!3042, !3040, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3043 = !{!3044} !3044 = distinct !{!3044, !3040, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3045 = !{!3039, !3042, !3014, !3016} !3046 = !{!3042, !3044, !3014, !3016} !3047 = !{!3039, !3044, !3014, !3016} !3048 = !{!3049} !3049 = distinct !{!3049, !3050, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3050 = distinct !{!3050, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3051 = !{!3052} !3052 = distinct !{!3052, !3050, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3053 = !{!3054} !3054 = distinct !{!3054, !3050, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3055 = !{!3049, !3052, !3014, !3016} !3056 = !{!3052, !3054, !3014, !3016} !3057 = !{!3049, !3054, !3014, !3016} !3058 = !{!3059} !3059 = distinct !{!3059, !3060, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3060 = distinct !{!3060, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3061 = !{!3062} !3062 = distinct !{!3062, !3060, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3063 = !{!3064} !3064 = distinct !{!3064, !3060, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3065 = !{!3059, !3062, !3014, !3016} !3066 = !{!3062, !3064, !3014, !3016} !3067 = !{!3059, !3064, !3014, !3016} !3068 = !{!3069} !3069 = distinct !{!3069, !3070, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3070 = distinct !{!3070, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3071 = !{!3072} !3072 = distinct !{!3072, !3070, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3073 = !{!3074} !3074 = distinct !{!3074, !3070, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3075 = !{!3069, !3072, !3014, !3016} !3076 = !{!3072, !3074, !3014, !3016} !3077 = !{!3069, !3074, !3014, !3016} !3078 = !{!3079} !3079 = distinct !{!3079, !3080, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3080 = distinct !{!3080, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3081 = !{!3082} !3082 = distinct !{!3082, !3080, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3083 = !{!3084} !3084 = distinct !{!3084, !3080, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3085 = !{!3082, !3084, !3014, !3016} !3086 = !{!3079, !3084, !3014, !3016} !3087 = !{!3079, !3082, !3014, !3016} !3088 = !{!3089} !3089 = distinct !{!3089, !3090, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3090 = distinct !{!3090, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3091 = !{!3092} !3092 = distinct !{!3092, !3090, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3093 = !{!3092, !3094, !3014, !3016} !3094 = distinct !{!3094, !3090, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3095 = !{!3089, !3094, !3014, !3016} !3096 = !{!3097, !3099} !3097 = distinct !{!3097, !3098, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb284566f36e92311E: %self"} !3098 = distinct !{!3098, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb284566f36e92311E"} !3099 = distinct !{!3099, !3100, !"_ZN4pulp3x862V39vectorize6__impl17h1d66b4dfe9d05afdE: %f"} !3100 = distinct !{!3100, !"_ZN4pulp3x862V39vectorize6__impl17h1d66b4dfe9d05afdE"} !3101 = !{!3102, !3104, !3097, !3099} !3102 = distinct !{!3102, !3103, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w_init.0"} !3103 = distinct !{!3103, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE"} !3104 = distinct !{!3104, !3103, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w.0"} !3105 = !{!3106} !3106 = distinct !{!3106, !3107, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !3107 = distinct !{!3107, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !3108 = !{!3109} !3109 = distinct !{!3109, !3107, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !3110 = !{!3106, !3111, !3097, !3099} !3111 = distinct !{!3111, !3107, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !3112 = !{!3111, !3109, !3097, !3099} !3113 = !{!3114, !3116} !3114 = distinct !{!3114, !3115, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f4f90b38a31bfa1E: %self"} !3115 = distinct !{!3115, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9f4f90b38a31bfa1E"} !3116 = distinct !{!3116, !3117, !"_ZN4pulp3x862V39vectorize6__impl17hf57ea0281e640413E: %f"} !3117 = distinct !{!3117, !"_ZN4pulp3x862V39vectorize6__impl17hf57ea0281e640413E"} !3118 = !{!3119, !3121, !3114, !3116} !3119 = distinct !{!3119, !3120, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w_init.0"} !3120 = distinct !{!3120, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE"} !3121 = distinct !{!3121, !3120, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w.0"} !3122 = !{!3123} !3123 = distinct !{!3123, !3124, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !3124 = distinct !{!3124, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !3125 = !{!3126} !3126 = distinct !{!3126, !3124, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !3127 = !{!3128} !3128 = distinct !{!3128, !3124, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !3129 = !{!3123, !3126, !3114, !3116} !3130 = !{!3123, !3128, !3114, !3116} !3131 = !{!3126, !3128, !3114, !3116} !3132 = !{!3133} !3133 = distinct !{!3133, !3134, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2100e95f7ed13ccaE: %self"} !3134 = distinct !{!3134, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2100e95f7ed13ccaE"} !3135 = !{!3136, !3133} !3136 = distinct !{!3136, !3137, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0c72a7628298af24E: %w_init.0"} !3137 = distinct !{!3137, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0c72a7628298af24E"} !3138 = distinct !{!3138, !21, !22} !3139 = distinct !{!3139, !21, !22} !3140 = distinct !{!3140, !21, !22} !3141 = !{!3142, !3133} !3142 = distinct !{!3142, !3143, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE: %w_init.0"} !3143 = distinct !{!3143, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE"} !3144 = distinct !{!3144, !21, !22} !3145 = distinct !{!3145, !21, !22} !3146 = !{!3147} !3147 = distinct !{!3147, !3148, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc49b53f5f5663c9fE: %self"} !3148 = distinct !{!3148, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc49b53f5f5663c9fE"} !3149 = !{!3150, !3152, !3147} !3150 = distinct !{!3150, !3151, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E: %w.0"} !3151 = distinct !{!3151, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E"} !3152 = distinct !{!3152, !3153, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E: %w.0"} !3153 = distinct !{!3153, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E"} !3154 = distinct !{!3154, !21, !22} !3155 = distinct !{!3155, !21, !22} !3156 = distinct !{!3156, !21, !22} !3157 = distinct !{!3157, !21, !22} !3158 = distinct !{!3158, !21, !22} !3159 = distinct !{!3159, !21, !22} !3160 = distinct !{!3160, !21, !22} !3161 = distinct !{!3161, !21, !22} !3162 = distinct !{!3162, !21, !22} !3163 = distinct !{!3163, !21, !22} !3164 = distinct !{!3164, !21, !22} !3165 = distinct !{!3165, !21, !22} !3166 = distinct !{!3166, !21, !22} !3167 = distinct !{!3167, !21, !22} !3168 = distinct !{!3168, !21, !22} !3169 = distinct !{!3169, !21, !22} !3170 = distinct !{!3170, !21, !22} !3171 = distinct !{!3171, !21, !22} !3172 = !{!3173} !3173 = distinct !{!3173, !3174, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h682f84e84eee1ec5E: %self"} !3174 = distinct !{!3174, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h682f84e84eee1ec5E"} !3175 = !{!3176, !3173} !3176 = distinct !{!3176, !3177, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE: %w.0"} !3177 = distinct !{!3177, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE"} !3178 = !{!3179, !3181} !3179 = distinct !{!3179, !3180, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8384b8b2a1e49544E: %self"} !3180 = distinct !{!3180, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8384b8b2a1e49544E"} !3181 = distinct !{!3181, !3182, !"_ZN4pulp3x862V39vectorize6__impl17h38425f95ec6537b6E: %f"} !3182 = distinct !{!3182, !"_ZN4pulp3x862V39vectorize6__impl17h38425f95ec6537b6E"} !3183 = !{!3184, !3186, !3179, !3181} !3184 = distinct !{!3184, !3185, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w_init.0"} !3185 = distinct !{!3185, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE"} !3186 = distinct !{!3186, !3185, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w.0"} !3187 = !{!3188} !3188 = distinct !{!3188, !3189, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !3189 = distinct !{!3189, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !3190 = !{!3191} !3191 = distinct !{!3191, !3189, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !3192 = !{!3188, !3193, !3179, !3181} !3193 = distinct !{!3193, !3189, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !3194 = !{!3193, !3191, !3179, !3181} !3195 = !{!3196, !3198} !3196 = distinct !{!3196, !3197, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h40f2d6d98755807fE: %self"} !3197 = distinct !{!3197, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h40f2d6d98755807fE"} !3198 = distinct !{!3198, !3199, !"_ZN4pulp3x862V39vectorize6__impl17ha7d092878e784caaE: %f"} !3199 = distinct !{!3199, !"_ZN4pulp3x862V39vectorize6__impl17ha7d092878e784caaE"} !3200 = !{!3201, !3203, !3196, !3198} !3201 = distinct !{!3201, !3202, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE: %w_init.0"} !3202 = distinct !{!3202, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE"} !3203 = distinct !{!3203, !3202, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE: %w.0"} !3204 = !{!3205} !3205 = distinct !{!3205, !3206, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !3206 = distinct !{!3206, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !3207 = !{!3208} !3208 = distinct !{!3208, !3206, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !3209 = !{!3210} !3210 = distinct !{!3210, !3206, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !3211 = !{!3205, !3208, !3196, !3198} !3212 = !{!3205, !3210, !3196, !3198} !3213 = !{!3208, !3210, !3196, !3198} !3214 = !{!3215, !3217} !3215 = distinct !{!3215, !3216, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0b3d028d7e88fa8dE: %self"} !3216 = distinct !{!3216, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0b3d028d7e88fa8dE"} !3217 = distinct !{!3217, !3218, !"_ZN4pulp3x862V39vectorize6__impl17h030fd5d2672250b2E: %f"} !3218 = distinct !{!3218, !"_ZN4pulp3x862V39vectorize6__impl17h030fd5d2672250b2E"} !3219 = !{!3220} !3220 = distinct !{!3220, !3221, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !3221 = distinct !{!3221, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !3222 = !{!3223} !3223 = distinct !{!3223, !3221, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !3224 = !{!3225, !3223, !3215, !3217} !3225 = distinct !{!3225, !3221, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !3226 = !{!3220, !3225, !3215, !3217} !3227 = !{!3228} !3228 = distinct !{!3228, !3229, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !3229 = distinct !{!3229, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !3230 = !{!3231} !3231 = distinct !{!3231, !3229, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !3232 = !{!3228, !3233, !3215, !3217} !3233 = distinct !{!3233, !3229, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !3234 = !{!3233, !3231, !3215, !3217} !3235 = !{!3236, !3238} !3236 = distinct !{!3236, !3237, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6affdf671539b6dE: %self"} !3237 = distinct !{!3237, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd6affdf671539b6dE"} !3238 = distinct !{!3238, !3239, !"_ZN4pulp3x862V39vectorize6__impl17h77be328d152ce819E: %f"} !3239 = distinct !{!3239, !"_ZN4pulp3x862V39vectorize6__impl17h77be328d152ce819E"} !3240 = !{!3241} !3241 = distinct !{!3241, !3242, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !3242 = distinct !{!3242, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !3243 = !{!3244} !3244 = distinct !{!3244, !3242, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !3245 = !{!3246} !3246 = distinct !{!3246, !3242, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !3247 = !{!3241, !3244, !3236, !3238} !3248 = !{!3244, !3246, !3236, !3238} !3249 = !{!3241, !3246, !3236, !3238} !3250 = !{!3251} !3251 = distinct !{!3251, !3252, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3252 = distinct !{!3252, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3253 = !{!3254, !3255, !3236, !3238} !3254 = distinct !{!3254, !3252, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3255 = distinct !{!3255, !3252, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3256 = !{!3257, !3259} !3257 = distinct !{!3257, !3258, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e0c8475003a93eaE: %self"} !3258 = distinct !{!3258, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0e0c8475003a93eaE"} !3259 = distinct !{!3259, !3260, !"_ZN4pulp3x862V39vectorize6__impl17ha97357ec3ccad4b4E: %f"} !3260 = distinct !{!3260, !"_ZN4pulp3x862V39vectorize6__impl17ha97357ec3ccad4b4E"} !3261 = !{!3262} !3262 = distinct !{!3262, !3263, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !3263 = distinct !{!3263, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !3264 = !{!3265} !3265 = distinct !{!3265, !3263, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !3266 = !{!3267} !3267 = distinct !{!3267, !3263, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !3268 = !{!3265, !3267, !3257, !3259} !3269 = !{!3262, !3265, !3257, !3259} !3270 = !{!3262, !3267, !3257, !3259} !3271 = !{!3272} !3272 = distinct !{!3272, !3273, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %x.0"} !3273 = distinct !{!3273, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE"} !3274 = !{!3275} !3275 = distinct !{!3275, !3273, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %y.0"} !3276 = !{!3277} !3277 = distinct !{!3277, !3273, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %w.0"} !3278 = !{!3272, !3275, !3257, !3259} !3279 = !{!3275, !3277, !3257, !3259} !3280 = !{!3272, !3277, !3257, !3259} !3281 = !{!3282} !3282 = distinct !{!3282, !3283, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he6e11a02917ff897E: %self"} !3283 = distinct !{!3283, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he6e11a02917ff897E"} !3284 = !{!3285, !3282} !3285 = distinct !{!3285, !3286, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h27792322b9550c6eE: %w_init.0"} !3286 = distinct !{!3286, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h27792322b9550c6eE"} !3287 = distinct !{!3287, !21, !22} !3288 = distinct !{!3288, !21, !22} !3289 = distinct !{!3289, !21, !22} !3290 = !{!3291, !3293} !3291 = distinct !{!3291, !3292, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he5b4118b1753e72eE: %self"} !3292 = distinct !{!3292, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he5b4118b1753e72eE"} !3293 = distinct !{!3293, !3294, !"_ZN4pulp3x862V39vectorize6__impl17h31a715d5b04d5283E: %f"} !3294 = distinct !{!3294, !"_ZN4pulp3x862V39vectorize6__impl17h31a715d5b04d5283E"} !3295 = !{!3296, !3298, !3299, !3301, !3291, !3293} !3296 = distinct !{!3296, !3297, !"_ZN12concrete_fft4dit417stockham_dit4_end17h6dca9d6b2a905aaaE: %x.0"} !3297 = distinct !{!3297, !"_ZN12concrete_fft4dit417stockham_dit4_end17h6dca9d6b2a905aaaE"} !3298 = distinct !{!3298, !3297, !"_ZN12concrete_fft4dit417stockham_dit4_end17h6dca9d6b2a905aaaE: %y.0"} !3299 = distinct !{!3299, !3300, !"_ZN140_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hda41591fa41cc33dE: %x.0"} !3300 = distinct !{!3300, !"_ZN140_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hda41591fa41cc33dE"} !3301 = distinct !{!3301, !3300, !"_ZN140_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hda41591fa41cc33dE: %y.0"} !3302 = !{!3303} !3303 = distinct !{!3303, !3304, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5856e63a967edbadE: %self"} !3304 = distinct !{!3304, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5856e63a967edbadE"} !3305 = distinct !{!3305, !21, !22} !3306 = distinct !{!3306, !21, !22} !3307 = distinct !{!3307, !21, !22} !3308 = !{!3309} !3309 = distinct !{!3309, !3310, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7b76ee6598233f3aE: %self"} !3310 = distinct !{!3310, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7b76ee6598233f3aE"} !3311 = distinct !{!3311, !21, !22} !3312 = distinct !{!3312, !21, !22} !3313 = distinct !{!3313, !21, !22} !3314 = !{!3315, !3317} !3315 = distinct !{!3315, !3316, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haa8534d83b89b49fE: %self"} !3316 = distinct !{!3316, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haa8534d83b89b49fE"} !3317 = distinct !{!3317, !3318, !"_ZN4pulp3x862V39vectorize6__impl17ha4c63867a4cc0deaE: %f"} !3318 = distinct !{!3318, !"_ZN4pulp3x862V39vectorize6__impl17ha4c63867a4cc0deaE"} !3319 = !{!3320} !3320 = distinct !{!3320, !3321, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !3321 = distinct !{!3321, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !3322 = !{!3323} !3323 = distinct !{!3323, !3321, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !3324 = !{!3325} !3325 = distinct !{!3325, !3321, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !3326 = !{!3320, !3323, !3315, !3317} !3327 = !{!3323, !3325, !3315, !3317} !3328 = !{!3320, !3325, !3315, !3317} !3329 = !{!3330} !3330 = distinct !{!3330, !3331, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3331 = distinct !{!3331, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3332 = !{!3333} !3333 = distinct !{!3333, !3331, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3334 = !{!3335} !3335 = distinct !{!3335, !3331, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3336 = !{!3330, !3333, !3315, !3317} !3337 = !{!3333, !3335, !3315, !3317} !3338 = !{!3330, !3335, !3315, !3317} !3339 = !{!3340} !3340 = distinct !{!3340, !3341, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3341 = distinct !{!3341, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3342 = !{!3343} !3343 = distinct !{!3343, !3341, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3344 = !{!3345} !3345 = distinct !{!3345, !3341, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3346 = !{!3340, !3343, !3315, !3317} !3347 = !{!3343, !3345, !3315, !3317} !3348 = !{!3340, !3345, !3315, !3317} !3349 = !{!3350} !3350 = distinct !{!3350, !3351, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc2e0c544888cf62aE: %self"} !3351 = distinct !{!3351, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc2e0c544888cf62aE"} !3352 = !{!3353, !3355, !3350} !3353 = distinct !{!3353, !3354, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E: %w.0"} !3354 = distinct !{!3354, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E"} !3355 = distinct !{!3355, !3356, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E: %w.0"} !3356 = distinct !{!3356, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E"} !3357 = !{!3358, !3360} !3358 = distinct !{!3358, !3359, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8d4a6104e861229dE: %self"} !3359 = distinct !{!3359, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8d4a6104e861229dE"} !3360 = distinct !{!3360, !3361, !"_ZN4pulp3x862V39vectorize6__impl17h648745757e1b574aE: %f"} !3361 = distinct !{!3361, !"_ZN4pulp3x862V39vectorize6__impl17h648745757e1b574aE"} !3362 = !{!3363} !3363 = distinct !{!3363, !3364, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !3364 = distinct !{!3364, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !3365 = !{!3366} !3366 = distinct !{!3366, !3364, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !3367 = !{!3368} !3368 = distinct !{!3368, !3364, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !3369 = !{!3363, !3366, !3358, !3360} !3370 = !{!3363, !3368, !3358, !3360} !3371 = !{!3366, !3368, !3358, !3360} !3372 = !{!3373} !3373 = distinct !{!3373, !3374, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !3374 = distinct !{!3374, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !3375 = !{!3376} !3376 = distinct !{!3376, !3374, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !3377 = !{!3378} !3378 = distinct !{!3378, !3374, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !3379 = !{!3373, !3376, !3358, !3360} !3380 = !{!3373, !3378, !3358, !3360} !3381 = !{!3376, !3378, !3358, !3360} !3382 = !{!3383} !3383 = distinct !{!3383, !3384, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !3384 = distinct !{!3384, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !3385 = !{!3386} !3386 = distinct !{!3386, !3384, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !3387 = !{!3388} !3388 = distinct !{!3388, !3384, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !3389 = !{!3383, !3386, !3358, !3360} !3390 = !{!3383, !3388, !3358, !3360} !3391 = !{!3386, !3388, !3358, !3360} !3392 = !{!3393} !3393 = distinct !{!3393, !3394, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !3394 = distinct !{!3394, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !3395 = !{!3396} !3396 = distinct !{!3396, !3394, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !3397 = !{!3398} !3398 = distinct !{!3398, !3394, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !3399 = !{!3393, !3396, !3358, !3360} !3400 = !{!3393, !3398, !3358, !3360} !3401 = !{!3396, !3398, !3358, !3360} !3402 = !{!3403} !3403 = distinct !{!3403, !3404, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdb43cc004e5cbc0aE: %self"} !3404 = distinct !{!3404, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdb43cc004e5cbc0aE"} !3405 = !{!3406, !3403} !3406 = distinct !{!3406, !3407, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE: %w_init.0"} !3407 = distinct !{!3407, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE"} !3408 = !{!3409} !3409 = distinct !{!3409, !3410, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he077a3eb2f2d6775E: %self"} !3410 = distinct !{!3410, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he077a3eb2f2d6775E"} !3411 = !{!3412, !3409} !3412 = distinct !{!3412, !3413, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE: %w.0"} !3413 = distinct !{!3413, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE"} !3414 = distinct !{!3414, !21, !22} !3415 = distinct !{!3415, !21, !22} !3416 = distinct !{!3416, !21, !22} !3417 = !{!3418, !3420} !3418 = distinct !{!3418, !3419, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1c0c2f31dd37d7d2E: %self"} !3419 = distinct !{!3419, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1c0c2f31dd37d7d2E"} !3420 = distinct !{!3420, !3421, !"_ZN4pulp3x862V39vectorize6__impl17ha8aff4275509000fE: %f"} !3421 = distinct !{!3421, !"_ZN4pulp3x862V39vectorize6__impl17ha8aff4275509000fE"} !3422 = !{!3423, !3418, !3420} !3423 = distinct !{!3423, !3424, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h86376cd128a66147E: %w.0"} !3424 = distinct !{!3424, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h86376cd128a66147E"} !3425 = !{!3426} !3426 = distinct !{!3426, !3427, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3427 = distinct !{!3427, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3428 = !{!3429} !3429 = distinct !{!3429, !3427, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3430 = !{!3431} !3431 = distinct !{!3431, !3427, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3432 = !{!3426, !3429, !3418, !3420} !3433 = !{!3429, !3431, !3418, !3420} !3434 = !{!3426, !3431, !3418, !3420} !3435 = !{!3436} !3436 = distinct !{!3436, !3437, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3437 = distinct !{!3437, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3438 = !{!3439} !3439 = distinct !{!3439, !3437, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3440 = !{!3441} !3441 = distinct !{!3441, !3437, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3442 = !{!3436, !3439, !3418, !3420} !3443 = !{!3439, !3441, !3418, !3420} !3444 = !{!3436, !3441, !3418, !3420} !3445 = !{!3446} !3446 = distinct !{!3446, !3447, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3447 = distinct !{!3447, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3448 = !{!3449} !3449 = distinct !{!3449, !3447, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3450 = !{!3451} !3451 = distinct !{!3451, !3447, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3452 = !{!3446, !3449, !3418, !3420} !3453 = !{!3449, !3451, !3418, !3420} !3454 = !{!3446, !3451, !3418, !3420} !3455 = !{!3456} !3456 = distinct !{!3456, !3457, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3457 = distinct !{!3457, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3458 = !{!3459} !3459 = distinct !{!3459, !3457, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3460 = !{!3461} !3461 = distinct !{!3461, !3457, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3462 = !{!3456, !3459, !3418, !3420} !3463 = !{!3459, !3461, !3418, !3420} !3464 = !{!3456, !3461, !3418, !3420} !3465 = !{!3466} !3466 = distinct !{!3466, !3467, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3467 = distinct !{!3467, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3468 = !{!3469} !3469 = distinct !{!3469, !3467, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3470 = !{!3471} !3471 = distinct !{!3471, !3467, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3472 = !{!3466, !3469, !3418, !3420} !3473 = !{!3469, !3471, !3418, !3420} !3474 = !{!3466, !3471, !3418, !3420} !3475 = !{!3476} !3476 = distinct !{!3476, !3477, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3477 = distinct !{!3477, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3478 = !{!3479} !3479 = distinct !{!3479, !3477, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3480 = !{!3481} !3481 = distinct !{!3481, !3477, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3482 = !{!3479, !3481, !3418, !3420} !3483 = !{!3476, !3481, !3418, !3420} !3484 = !{!3476, !3479, !3418, !3420} !3485 = !{!3486} !3486 = distinct !{!3486, !3487, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3487 = distinct !{!3487, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3488 = !{!3489} !3489 = distinct !{!3489, !3487, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3490 = !{!3489, !3491, !3418, !3420} !3491 = distinct !{!3491, !3487, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3492 = !{!3486, !3491, !3418, !3420} !3493 = !{!3494} !3494 = distinct !{!3494, !3495, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3495 = distinct !{!3495, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3496 = !{!3497} !3497 = distinct !{!3497, !3495, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3498 = !{!3497, !3499, !3418, !3420} !3499 = distinct !{!3499, !3495, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3500 = !{!3494, !3499, !3418, !3420} !3501 = !{!3502, !3504} !3502 = distinct !{!3502, !3503, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81a66a975f34401dE: %self"} !3503 = distinct !{!3503, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81a66a975f34401dE"} !3504 = distinct !{!3504, !3505, !"_ZN4pulp3x862V39vectorize6__impl17h3d9781e7a5da917cE: %f"} !3505 = distinct !{!3505, !"_ZN4pulp3x862V39vectorize6__impl17h3d9781e7a5da917cE"} !3506 = !{!3507} !3507 = distinct !{!3507, !3508, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !3508 = distinct !{!3508, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !3509 = !{!3510} !3510 = distinct !{!3510, !3508, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !3511 = !{!3512} !3512 = distinct !{!3512, !3508, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !3513 = !{!3507, !3510, !3502, !3504} !3514 = !{!3510, !3512, !3502, !3504} !3515 = !{!3507, !3512, !3502, !3504} !3516 = !{!3517} !3517 = distinct !{!3517, !3518, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3518 = distinct !{!3518, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3519 = !{!3520} !3520 = distinct !{!3520, !3518, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3521 = !{!3522} !3522 = distinct !{!3522, !3518, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3523 = !{!3517, !3520, !3502, !3504} !3524 = !{!3520, !3522, !3502, !3504} !3525 = !{!3517, !3522, !3502, !3504} !3526 = !{!3527} !3527 = distinct !{!3527, !3528, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3528 = distinct !{!3528, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3529 = !{!3530} !3530 = distinct !{!3530, !3528, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3531 = !{!3532} !3532 = distinct !{!3532, !3528, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3533 = !{!3527, !3530, !3502, !3504} !3534 = !{!3530, !3532, !3502, !3504} !3535 = !{!3527, !3532, !3502, !3504} !3536 = !{!3537, !3539} !3537 = distinct !{!3537, !3538, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h766ef5da6f59b75cE: %self"} !3538 = distinct !{!3538, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h766ef5da6f59b75cE"} !3539 = distinct !{!3539, !3540, !"_ZN4pulp3x862V39vectorize6__impl17h1cc6be3f739dd34dE: %f"} !3540 = distinct !{!3540, !"_ZN4pulp3x862V39vectorize6__impl17h1cc6be3f739dd34dE"} !3541 = !{!3542, !3544, !3537, !3539} !3542 = distinct !{!3542, !3543, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w_init.0"} !3543 = distinct !{!3543, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE"} !3544 = distinct !{!3544, !3543, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w.0"} !3545 = !{!3546} !3546 = distinct !{!3546, !3547, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !3547 = distinct !{!3547, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !3548 = !{!3549} !3549 = distinct !{!3549, !3547, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !3550 = !{!3551} !3551 = distinct !{!3551, !3547, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !3552 = !{!3546, !3549, !3537, !3539} !3553 = !{!3546, !3551, !3537, !3539} !3554 = !{!3549, !3551, !3537, !3539} !3555 = !{!3556} !3556 = distinct !{!3556, !3557, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7a68cecdb36a0754E: %self"} !3557 = distinct !{!3557, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7a68cecdb36a0754E"} !3558 = !{!3559, !3556} !3559 = distinct !{!3559, !3560, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE: %w.0"} !3560 = distinct !{!3560, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE"} !3561 = distinct !{!3561, !21, !22} !3562 = distinct !{!3562, !21, !22} !3563 = distinct !{!3563, !21, !22} !3564 = distinct !{!3564, !21, !22} !3565 = !{!3566} !3566 = distinct !{!3566, !3567, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h12f3bfc3fb0f60d1E: %self"} !3567 = distinct !{!3567, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h12f3bfc3fb0f60d1E"} !3568 = !{!3569, !3571} !3569 = distinct !{!3569, !3570, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cea042f0332dfa5E: %self"} !3570 = distinct !{!3570, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cea042f0332dfa5E"} !3571 = distinct !{!3571, !3572, !"_ZN4pulp3x862V39vectorize6__impl17h1ecf167b25455729E: %f"} !3572 = distinct !{!3572, !"_ZN4pulp3x862V39vectorize6__impl17h1ecf167b25455729E"} !3573 = !{!3574} !3574 = distinct !{!3574, !3575, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !3575 = distinct !{!3575, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !3576 = !{!3577} !3577 = distinct !{!3577, !3575, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !3578 = !{!3579} !3579 = distinct !{!3579, !3575, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !3580 = !{!3574, !3577, !3569, !3571} !3581 = !{!3577, !3579, !3569, !3571} !3582 = !{!3574, !3579, !3569, !3571} !3583 = !{!3584} !3584 = distinct !{!3584, !3585, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3585 = distinct !{!3585, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3586 = !{!3587} !3587 = distinct !{!3587, !3585, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3588 = !{!3589} !3589 = distinct !{!3589, !3585, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3590 = !{!3584, !3587, !3569, !3571} !3591 = !{!3587, !3589, !3569, !3571} !3592 = !{!3584, !3589, !3569, !3571} !3593 = !{!3594, !3596} !3594 = distinct !{!3594, !3595, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f01a5240591ea3fE: %self"} !3595 = distinct !{!3595, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f01a5240591ea3fE"} !3596 = distinct !{!3596, !3597, !"_ZN4pulp3x862V39vectorize6__impl17h744a7d1c7a23bc18E: %f"} !3597 = distinct !{!3597, !"_ZN4pulp3x862V39vectorize6__impl17h744a7d1c7a23bc18E"} !3598 = !{!3599} !3599 = distinct !{!3599, !3600, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !3600 = distinct !{!3600, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !3601 = !{!3602} !3602 = distinct !{!3602, !3600, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !3603 = !{!3604} !3604 = distinct !{!3604, !3600, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !3605 = !{!3602, !3604, !3594, !3596} !3606 = !{!3599, !3602, !3594, !3596} !3607 = !{!3599, !3604, !3594, !3596} !3608 = !{!3609} !3609 = distinct !{!3609, !3610, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5962a323d60790c5E: %self"} !3610 = distinct !{!3610, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5962a323d60790c5E"} !3611 = !{!3612, !3609} !3612 = distinct !{!3612, !3613, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE: %w.0"} !3613 = distinct !{!3613, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE"} !3614 = !{!3615, !3617} !3615 = distinct !{!3615, !3616, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04878fbf1b9f1b1bE: %self"} !3616 = distinct !{!3616, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04878fbf1b9f1b1bE"} !3617 = distinct !{!3617, !3618, !"_ZN4pulp3x862V39vectorize6__impl17hdf4a87c0df2b2670E: %f"} !3618 = distinct !{!3618, !"_ZN4pulp3x862V39vectorize6__impl17hdf4a87c0df2b2670E"} !3619 = !{!3620} !3620 = distinct !{!3620, !3621, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !3621 = distinct !{!3621, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !3622 = !{!3623} !3623 = distinct !{!3623, !3621, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !3624 = !{!3625} !3625 = distinct !{!3625, !3621, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !3626 = !{!3620, !3623, !3615, !3617} !3627 = !{!3623, !3625, !3615, !3617} !3628 = !{!3620, !3625, !3615, !3617} !3629 = !{!3630} !3630 = distinct !{!3630, !3631, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3631 = distinct !{!3631, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3632 = !{!3633} !3633 = distinct !{!3633, !3631, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3634 = !{!3635} !3635 = distinct !{!3635, !3631, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3636 = !{!3630, !3633, !3615, !3617} !3637 = !{!3633, !3635, !3615, !3617} !3638 = !{!3630, !3635, !3615, !3617} !3639 = !{!3640} !3640 = distinct !{!3640, !3641, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3641 = distinct !{!3641, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3642 = !{!3643} !3643 = distinct !{!3643, !3641, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3644 = !{!3645} !3645 = distinct !{!3645, !3641, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3646 = !{!3640, !3643, !3615, !3617} !3647 = !{!3643, !3645, !3615, !3617} !3648 = !{!3640, !3645, !3615, !3617} !3649 = !{!3650} !3650 = distinct !{!3650, !3651, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !3651 = distinct !{!3651, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !3652 = !{!3653} !3653 = distinct !{!3653, !3651, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !3654 = !{!3655} !3655 = distinct !{!3655, !3651, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !3656 = !{!3650, !3653, !3615, !3617} !3657 = !{!3653, !3655, !3615, !3617} !3658 = !{!3650, !3655, !3615, !3617} !3659 = !{!3660} !3660 = distinct !{!3660, !3661, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7eb09e3f2c70b7afE: %self"} !3661 = distinct !{!3661, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7eb09e3f2c70b7afE"} !3662 = !{!3663, !3665} !3663 = distinct !{!3663, !3664, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1a50cc573f07fb7E: %self"} !3664 = distinct !{!3664, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb1a50cc573f07fb7E"} !3665 = distinct !{!3665, !3666, !"_ZN4pulp3x862V39vectorize6__impl17h4a6a74d5a85523dfE: %f"} !3666 = distinct !{!3666, !"_ZN4pulp3x862V39vectorize6__impl17h4a6a74d5a85523dfE"} !3667 = !{!3668, !3670, !3671, !3673, !3663, !3665} !3668 = distinct !{!3668, !3669, !"_ZN12concrete_fft4dif817stockham_dif8_end17hc0858501204046acE: %x.0"} !3669 = distinct !{!3669, !"_ZN12concrete_fft4dif817stockham_dif8_end17hc0858501204046acE"} !3670 = distinct !{!3670, !3669, !"_ZN12concrete_fft4dif817stockham_dif8_end17hc0858501204046acE: %y.0"} !3671 = distinct !{!3671, !3672, !"_ZN174_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0a4065be8df66557E: %x.0"} !3672 = distinct !{!3672, !"_ZN174_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0a4065be8df66557E"} !3673 = distinct !{!3673, !3672, !"_ZN174_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0a4065be8df66557E: %y.0"} !3674 = !{!3675, !3677} !3675 = distinct !{!3675, !3676, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc78a0adcd7165209E: %self"} !3676 = distinct !{!3676, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc78a0adcd7165209E"} !3677 = distinct !{!3677, !3678, !"_ZN4pulp3x862V39vectorize6__impl17h803752b2deee81d8E: %f"} !3678 = distinct !{!3678, !"_ZN4pulp3x862V39vectorize6__impl17h803752b2deee81d8E"} !3679 = !{!3680, !3682, !3675, !3677} !3680 = distinct !{!3680, !3681, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w_init.0"} !3681 = distinct !{!3681, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE"} !3682 = distinct !{!3682, !3681, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w.0"} !3683 = !{!3684} !3684 = distinct !{!3684, !3685, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !3685 = distinct !{!3685, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !3686 = !{!3687} !3687 = distinct !{!3687, !3685, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !3688 = !{!3689} !3689 = distinct !{!3689, !3685, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !3690 = !{!3684, !3687, !3675, !3677} !3691 = !{!3684, !3689, !3675, !3677} !3692 = !{!3687, !3689, !3675, !3677} !3693 = !{!3694} !3694 = distinct !{!3694, !3695, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !3695 = distinct !{!3695, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !3696 = !{!3697} !3697 = distinct !{!3697, !3695, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !3698 = !{!3699} !3699 = distinct !{!3699, !3695, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !3700 = !{!3694, !3697, !3675, !3677} !3701 = !{!3694, !3699, !3675, !3677} !3702 = !{!3697, !3699, !3675, !3677} !3703 = !{!3704, !3706} !3704 = distinct !{!3704, !3705, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeb566c3bb86e4a5E: %self"} !3705 = distinct !{!3705, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeb566c3bb86e4a5E"} !3706 = distinct !{!3706, !3707, !"_ZN4pulp3x862V39vectorize6__impl17h707ef9a59e52df58E: %f"} !3707 = distinct !{!3707, !"_ZN4pulp3x862V39vectorize6__impl17h707ef9a59e52df58E"} !3708 = !{!3709} !3709 = distinct !{!3709, !3710, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !3710 = distinct !{!3710, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !3711 = !{!3712} !3712 = distinct !{!3712, !3710, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !3713 = !{!3714} !3714 = distinct !{!3714, !3710, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !3715 = !{!3712, !3714, !3704, !3706} !3716 = !{!3709, !3712, !3704, !3706} !3717 = !{!3709, !3714, !3704, !3706} !3718 = !{!3719} !3719 = distinct !{!3719, !3720, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !3720 = distinct !{!3720, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !3721 = !{!3722} !3722 = distinct !{!3722, !3720, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !3723 = !{!3724} !3724 = distinct !{!3724, !3720, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !3725 = !{!3719, !3722, !3704, !3706} !3726 = !{!3722, !3724, !3704, !3706} !3727 = !{!3719, !3724, !3704, !3706} !3728 = !{!3729} !3729 = distinct !{!3729, !3730, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !3730 = distinct !{!3730, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !3731 = !{!3732} !3732 = distinct !{!3732, !3730, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !3733 = !{!3734} !3734 = distinct !{!3734, !3730, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !3735 = !{!3729, !3732, !3704, !3706} !3736 = !{!3732, !3734, !3704, !3706} !3737 = !{!3729, !3734, !3704, !3706} !3738 = !{!3739, !3741} !3739 = distinct !{!3739, !3740, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h19fb94144ffe64a3E: %self"} !3740 = distinct !{!3740, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h19fb94144ffe64a3E"} !3741 = distinct !{!3741, !3742, !"_ZN4pulp3x862V39vectorize6__impl17h7c5ceb1e421f218fE: %f"} !3742 = distinct !{!3742, !"_ZN4pulp3x862V39vectorize6__impl17h7c5ceb1e421f218fE"} !3743 = !{!3744, !3746, !3747, !3749, !3739, !3741} !3744 = distinct !{!3744, !3745, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w_init.0"} !3745 = distinct !{!3745, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE"} !3746 = distinct !{!3746, !3745, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w.0"} !3747 = distinct !{!3747, !3748, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E: %w_init.0"} !3748 = distinct !{!3748, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E"} !3749 = distinct !{!3749, !3748, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E: %w.0"} !3750 = !{!3751} !3751 = distinct !{!3751, !3752, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %x.0"} !3752 = distinct !{!3752, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE"} !3753 = !{!3754} !3754 = distinct !{!3754, !3752, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %y.0"} !3755 = !{!3756} !3756 = distinct !{!3756, !3752, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %w.0"} !3757 = !{!3751, !3754, !3739, !3741} !3758 = !{!3751, !3756, !3739, !3741} !3759 = !{!3754, !3756, !3739, !3741} !3760 = !{!3761} !3761 = distinct !{!3761, !3762, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !3762 = distinct !{!3762, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !3763 = !{!3764} !3764 = distinct !{!3764, !3762, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !3765 = !{!3766} !3766 = distinct !{!3766, !3762, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !3767 = !{!3761, !3764, !3739, !3741} !3768 = !{!3761, !3766, !3739, !3741} !3769 = !{!3764, !3766, !3739, !3741} !3770 = !{!3771, !3773} !3771 = distinct !{!3771, !3772, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h732d02817a6ce6d4E: %self"} !3772 = distinct !{!3772, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h732d02817a6ce6d4E"} !3773 = distinct !{!3773, !3774, !"_ZN4pulp3x862V39vectorize6__impl17hadfda68c5c121ae7E: %f"} !3774 = distinct !{!3774, !"_ZN4pulp3x862V39vectorize6__impl17hadfda68c5c121ae7E"} !3775 = !{!3776, !3778, !3779, !3781, !3771, !3773} !3776 = distinct !{!3776, !3777, !"_ZN12concrete_fft5dit1618stockham_dit16_end17h0426ed1df3ca2063E: %x.0"} !3777 = distinct !{!3777, !"_ZN12concrete_fft5dit1618stockham_dit16_end17h0426ed1df3ca2063E"} !3778 = distinct !{!3778, !3777, !"_ZN12concrete_fft5dit1618stockham_dit16_end17h0426ed1df3ca2063E: %y.0"} !3779 = distinct !{!3779, !3780, !"_ZN212_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h87250c4e624413d2E: %x.0"} !3780 = distinct !{!3780, !"_ZN212_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h87250c4e624413d2E"} !3781 = distinct !{!3781, !3780, !"_ZN212_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Zero$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h87250c4e624413d2E: %y.0"} !3782 = !{!3783} !3783 = distinct !{!3783, !3784, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f830c567d47de59E: %self"} !3784 = distinct !{!3784, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f830c567d47de59E"} !3785 = !{!3786, !3788, !3783} !3786 = distinct !{!3786, !3787, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !3787 = distinct !{!3787, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !3788 = distinct !{!3788, !3789, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E: %w.0"} !3789 = distinct !{!3789, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E"} !3790 = !{!3791} !3791 = distinct !{!3791, !3792, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1333e3299595c58dE: %self"} !3792 = distinct !{!3792, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1333e3299595c58dE"} !3793 = !{!3794, !3791} !3794 = distinct !{!3794, !3795, !"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h343de97d2ea8bf13E: %w_init.0"} !3795 = distinct !{!3795, !"_ZN188_$LT$concrete_fft..dif8..Dif8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h343de97d2ea8bf13E"} !3796 = distinct !{!3796, !21, !22} !3797 = distinct !{!3797, !21, !22} !3798 = distinct !{!3798, !21, !22} !3799 = !{!3800, !3802} !3800 = distinct !{!3800, !3801, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha4ee790aede61fa9E: %self"} !3801 = distinct !{!3801, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha4ee790aede61fa9E"} !3802 = distinct !{!3802, !3803, !"_ZN4pulp3x862V39vectorize6__impl17h5fda561623a94ad7E: %f"} !3803 = distinct !{!3803, !"_ZN4pulp3x862V39vectorize6__impl17h5fda561623a94ad7E"} !3804 = !{!3805} !3805 = distinct !{!3805, !3806, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !3806 = distinct !{!3806, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !3807 = !{!3808} !3808 = distinct !{!3808, !3806, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !3809 = !{!3810} !3810 = distinct !{!3810, !3806, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !3811 = !{!3808, !3810, !3800, !3802} !3812 = !{!3805, !3808, !3800, !3802} !3813 = !{!3805, !3810, !3800, !3802} !3814 = !{!3815} !3815 = distinct !{!3815, !3816, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3816 = distinct !{!3816, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3817 = !{!3818} !3818 = distinct !{!3818, !3816, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3819 = !{!3820} !3820 = distinct !{!3820, !3816, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3821 = !{!3815, !3818, !3800, !3802} !3822 = !{!3818, !3820, !3800, !3802} !3823 = !{!3815, !3820, !3800, !3802} !3824 = !{!3825} !3825 = distinct !{!3825, !3826, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3826 = distinct !{!3826, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3827 = !{!3828} !3828 = distinct !{!3828, !3826, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3829 = !{!3830, !3828, !3800, !3802} !3830 = distinct !{!3830, !3826, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3831 = !{!3825, !3830, !3800, !3802} !3832 = !{!3833} !3833 = distinct !{!3833, !3834, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !3834 = distinct !{!3834, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !3835 = !{!3836, !3837, !3800, !3802} !3836 = distinct !{!3836, !3834, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !3837 = distinct !{!3837, !3834, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !3838 = !{!3839} !3839 = distinct !{!3839, !3840, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he38dca1900a6a8f3E: %self"} !3840 = distinct !{!3840, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he38dca1900a6a8f3E"} !3841 = !{!3842} !3842 = distinct !{!3842, !3843, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0927c7a61c68d3d1E: %self"} !3843 = distinct !{!3843, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0927c7a61c68d3d1E"} !3844 = !{!3845, !3847, !3842} !3845 = distinct !{!3845, !3846, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !3846 = distinct !{!3846, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !3847 = distinct !{!3847, !3848, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E: %w.0"} !3848 = distinct !{!3848, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E"} !3849 = distinct !{!3849, !21, !22} !3850 = distinct !{!3850, !21, !22} !3851 = distinct !{!3851, !21, !22} !3852 = distinct !{!3852, !21, !22} !3853 = !{!3854, !3856} !3854 = distinct !{!3854, !3855, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1adc2f5204063020E: %self"} !3855 = distinct !{!3855, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1adc2f5204063020E"} !3856 = distinct !{!3856, !3857, !"_ZN4pulp3x862V39vectorize6__impl17hf765d98339f1b60fE: %f"} !3857 = distinct !{!3857, !"_ZN4pulp3x862V39vectorize6__impl17hf765d98339f1b60fE"} !3858 = !{!3859, !3861, !3854, !3856} !3859 = distinct !{!3859, !3860, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w_init.0"} !3860 = distinct !{!3860, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE"} !3861 = distinct !{!3861, !3860, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w.0"} !3862 = !{!3863} !3863 = distinct !{!3863, !3864, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !3864 = distinct !{!3864, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !3865 = !{!3866} !3866 = distinct !{!3866, !3864, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !3867 = !{!3868} !3868 = distinct !{!3868, !3864, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !3869 = !{!3863, !3866, !3854, !3856} !3870 = !{!3863, !3868, !3854, !3856} !3871 = !{!3866, !3868, !3854, !3856} !3872 = !{!3873, !3875} !3873 = distinct !{!3873, !3874, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85739ce8b1294261E: %self"} !3874 = distinct !{!3874, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85739ce8b1294261E"} !3875 = distinct !{!3875, !3876, !"_ZN4pulp3x862V39vectorize6__impl17h21df8e805f61acafE: %f"} !3876 = distinct !{!3876, !"_ZN4pulp3x862V39vectorize6__impl17h21df8e805f61acafE"} !3877 = !{!3878} !3878 = distinct !{!3878, !3879, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !3879 = distinct !{!3879, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !3880 = !{!3881} !3881 = distinct !{!3881, !3879, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !3882 = !{!3883} !3883 = distinct !{!3883, !3879, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !3884 = !{!3881, !3883, !3873, !3875} !3885 = !{!3878, !3881, !3873, !3875} !3886 = !{!3878, !3883, !3873, !3875} !3887 = !{!3888} !3888 = distinct !{!3888, !3889, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !3889 = distinct !{!3889, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !3890 = !{!3891} !3891 = distinct !{!3891, !3889, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !3892 = !{!3893} !3893 = distinct !{!3893, !3889, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !3894 = !{!3888, !3891, !3873, !3875} !3895 = !{!3891, !3893, !3873, !3875} !3896 = !{!3888, !3893, !3873, !3875} !3897 = !{!3898} !3898 = distinct !{!3898, !3899, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !3899 = distinct !{!3899, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !3900 = !{!3901} !3901 = distinct !{!3901, !3899, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !3902 = !{!3903} !3903 = distinct !{!3903, !3899, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !3904 = !{!3898, !3901, !3873, !3875} !3905 = !{!3901, !3903, !3873, !3875} !3906 = !{!3898, !3903, !3873, !3875} !3907 = !{!3908} !3908 = distinct !{!3908, !3909, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb0d7ecb07dfc6a1dE: %self"} !3909 = distinct !{!3909, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb0d7ecb07dfc6a1dE"} !3910 = !{!3911, !3908} !3911 = distinct !{!3911, !3912, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !3912 = distinct !{!3912, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !3913 = !{!3914, !3916} !3914 = distinct !{!3914, !3915, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88104d1e3637d1bcE: %self"} !3915 = distinct !{!3915, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88104d1e3637d1bcE"} !3916 = distinct !{!3916, !3917, !"_ZN4pulp3x862V39vectorize6__impl17h074367c7ba5a48c3E: %f"} !3917 = distinct !{!3917, !"_ZN4pulp3x862V39vectorize6__impl17h074367c7ba5a48c3E"} !3918 = !{!3919} !3919 = distinct !{!3919, !3920, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !3920 = distinct !{!3920, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !3921 = !{!3922} !3922 = distinct !{!3922, !3920, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !3923 = !{!3924} !3924 = distinct !{!3924, !3920, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !3925 = !{!3922, !3924, !3914, !3916} !3926 = !{!3919, !3922, !3914, !3916} !3927 = !{!3919, !3924, !3914, !3916} !3928 = !{!3929} !3929 = distinct !{!3929, !3930, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !3930 = distinct !{!3930, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !3931 = !{!3932} !3932 = distinct !{!3932, !3930, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !3933 = !{!3934} !3934 = distinct !{!3934, !3930, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !3935 = !{!3929, !3932, !3914, !3916} !3936 = !{!3932, !3934, !3914, !3916} !3937 = !{!3929, !3934, !3914, !3916} !3938 = !{!3939} !3939 = distinct !{!3939, !3940, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb76341e22d43e2baE: %self"} !3940 = distinct !{!3940, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb76341e22d43e2baE"} !3941 = distinct !{!3941, !21, !22} !3942 = !{!3943} !3943 = distinct !{!3943, !3944, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h314248ec9e9b94d2E: %self"} !3944 = distinct !{!3944, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h314248ec9e9b94d2E"} !3945 = distinct !{!3945, !21, !22} !3946 = distinct !{!3946, !21, !22} !3947 = !{!3948, !3950} !3948 = distinct !{!3948, !3949, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h86280e01578e7513E: %self"} !3949 = distinct !{!3949, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h86280e01578e7513E"} !3950 = distinct !{!3950, !3951, !"_ZN4pulp3x862V39vectorize6__impl17h73c521489e4fb7d8E: %f"} !3951 = distinct !{!3951, !"_ZN4pulp3x862V39vectorize6__impl17h73c521489e4fb7d8E"} !3952 = !{!3953, !3955, !3956, !3958, !3948, !3950} !3953 = distinct !{!3953, !3954, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w_init.0"} !3954 = distinct !{!3954, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE"} !3955 = distinct !{!3955, !3954, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h824d1dab4df807ebE: %w.0"} !3956 = distinct !{!3956, !3957, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E: %w_init.0"} !3957 = distinct !{!3957, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E"} !3958 = distinct !{!3958, !3957, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha343174a08b26d95E: %w.0"} !3959 = !{!3960} !3960 = distinct !{!3960, !3961, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %x.0"} !3961 = distinct !{!3961, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE"} !3962 = !{!3963} !3963 = distinct !{!3963, !3961, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %y.0"} !3964 = !{!3965} !3965 = distinct !{!3965, !3961, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %w.0"} !3966 = !{!3960, !3963, !3948, !3950} !3967 = !{!3960, !3965, !3948, !3950} !3968 = !{!3963, !3965, !3948, !3950} !3969 = !{!3970} !3970 = distinct !{!3970, !3971, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !3971 = distinct !{!3971, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !3972 = !{!3973} !3973 = distinct !{!3973, !3971, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !3974 = !{!3975} !3975 = distinct !{!3975, !3971, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !3976 = !{!3970, !3973, !3948, !3950} !3977 = !{!3970, !3975, !3948, !3950} !3978 = !{!3973, !3975, !3948, !3950} !3979 = !{!3980} !3980 = distinct !{!3980, !3981, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648c5fb9f49f8abaE: %self"} !3981 = distinct !{!3981, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648c5fb9f49f8abaE"} !3982 = !{!3983, !3985, !3980} !3983 = distinct !{!3983, !3984, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !3984 = distinct !{!3984, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !3985 = distinct !{!3985, !3986, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E: %w.0"} !3986 = distinct !{!3986, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E"} !3987 = distinct !{!3987, !21, !22} !3988 = distinct !{!3988, !21, !22} !3989 = distinct !{!3989, !21, !22} !3990 = !{!3991, !3993} !3991 = distinct !{!3991, !3992, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h284d126042212387E: %self"} !3992 = distinct !{!3992, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h284d126042212387E"} !3993 = distinct !{!3993, !3994, !"_ZN4pulp3x862V39vectorize6__impl17hd976fc2696daa6e0E: %f"} !3994 = distinct !{!3994, !"_ZN4pulp3x862V39vectorize6__impl17hd976fc2696daa6e0E"} !3995 = !{!3996, !3998, !3991, !3993} !3996 = distinct !{!3996, !3997, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w_init.0"} !3997 = distinct !{!3997, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE"} !3998 = distinct !{!3998, !3997, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h29012877a4bf3a6dE: %w.0"} !3999 = !{!4000} !4000 = distinct !{!4000, !4001, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !4001 = distinct !{!4001, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !4002 = !{!4003} !4003 = distinct !{!4003, !4001, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !4004 = !{!4000, !4005, !3991, !3993} !4005 = distinct !{!4005, !4001, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !4006 = !{!4005, !4003, !3991, !3993} !4007 = !{!4008} !4008 = distinct !{!4008, !4009, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha86ee5bb0ba3e0acE: %self"} !4009 = distinct !{!4009, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha86ee5bb0ba3e0acE"} !4010 = !{!4011} !4011 = distinct !{!4011, !4012, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc0897372f2e6673E: %self"} !4012 = distinct !{!4012, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc0897372f2e6673E"} !4013 = !{!4014, !4011} !4014 = distinct !{!4014, !4015, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h43f79bd8363741acE: %w_init.0"} !4015 = distinct !{!4015, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h43f79bd8363741acE"} !4016 = distinct !{!4016, !21, !22} !4017 = distinct !{!4017, !21, !22} !4018 = !{!4019, !4011} !4019 = distinct !{!4019, !4020, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E: %w_init.0"} !4020 = distinct !{!4020, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E"} !4021 = distinct !{!4021, !21, !22} !4022 = distinct !{!4022, !21, !22} !4023 = !{!4024, !4026} !4024 = distinct !{!4024, !4025, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h962e1d5bd2c39febE: %self"} !4025 = distinct !{!4025, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h962e1d5bd2c39febE"} !4026 = distinct !{!4026, !4027, !"_ZN4pulp3x862V39vectorize6__impl17h795de192162edd78E: %f"} !4027 = distinct !{!4027, !"_ZN4pulp3x862V39vectorize6__impl17h795de192162edd78E"} !4028 = !{!4029} !4029 = distinct !{!4029, !4030, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !4030 = distinct !{!4030, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !4031 = !{!4032} !4032 = distinct !{!4032, !4030, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !4033 = !{!4034, !4032, !4024, !4026} !4034 = distinct !{!4034, !4030, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !4035 = !{!4029, !4034, !4024, !4026} !4036 = !{!4037} !4037 = distinct !{!4037, !4038, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !4038 = distinct !{!4038, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !4039 = !{!4040, !4041, !4024, !4026} !4040 = distinct !{!4040, !4038, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !4041 = distinct !{!4041, !4038, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !4042 = !{!4043} !4043 = distinct !{!4043, !4044, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !4044 = distinct !{!4044, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !4045 = !{!4046, !4047, !4024, !4026} !4046 = distinct !{!4046, !4044, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !4047 = distinct !{!4047, !4044, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !4048 = !{!4049, !4051} !4049 = distinct !{!4049, !4050, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h36b030ae452fec63E: %self"} !4050 = distinct !{!4050, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h36b030ae452fec63E"} !4051 = distinct !{!4051, !4052, !"_ZN4pulp3x862V39vectorize6__impl17h58d0f958afc52a3bE: %f"} !4052 = distinct !{!4052, !"_ZN4pulp3x862V39vectorize6__impl17h58d0f958afc52a3bE"} !4053 = !{!4054} !4054 = distinct !{!4054, !4055, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !4055 = distinct !{!4055, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !4056 = !{!4057} !4057 = distinct !{!4057, !4055, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !4058 = !{!4059} !4059 = distinct !{!4059, !4055, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !4060 = !{!4054, !4057, !4049, !4051} !4061 = !{!4057, !4059, !4049, !4051} !4062 = !{!4054, !4059, !4049, !4051} !4063 = !{!4064, !4066} !4064 = distinct !{!4064, !4065, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h78cce769f95956c4E: %self"} !4065 = distinct !{!4065, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h78cce769f95956c4E"} !4066 = distinct !{!4066, !4067, !"_ZN4pulp3x862V39vectorize6__impl17hf5527f91c4e3c6c3E: %f"} !4067 = distinct !{!4067, !"_ZN4pulp3x862V39vectorize6__impl17hf5527f91c4e3c6c3E"} !4068 = !{!4069, !4071, !4064, !4066} !4069 = distinct !{!4069, !4070, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !4070 = distinct !{!4070, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !4071 = distinct !{!4071, !4070, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !4072 = !{!4073} !4073 = distinct !{!4073, !4074, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !4074 = distinct !{!4074, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !4075 = !{!4076} !4076 = distinct !{!4076, !4074, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !4077 = !{!4078} !4078 = distinct !{!4078, !4074, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !4079 = !{!4073, !4076, !4064, !4066} !4080 = !{!4073, !4078, !4064, !4066} !4081 = !{!4076, !4078, !4064, !4066} !4082 = !{!4083} !4083 = distinct !{!4083, !4084, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !4084 = distinct !{!4084, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !4085 = !{!4086} !4086 = distinct !{!4086, !4084, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !4087 = !{!4088} !4088 = distinct !{!4088, !4084, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !4089 = !{!4083, !4086, !4064, !4066} !4090 = !{!4083, !4088, !4064, !4066} !4091 = !{!4086, !4088, !4064, !4066} !4092 = !{!4093, !4095} !4093 = distinct !{!4093, !4094, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648ae7d336dbb0e3E: %self"} !4094 = distinct !{!4094, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h648ae7d336dbb0e3E"} !4095 = distinct !{!4095, !4096, !"_ZN4pulp3x862V39vectorize6__impl17h37d9d35918ee1bddE: %f"} !4096 = distinct !{!4096, !"_ZN4pulp3x862V39vectorize6__impl17h37d9d35918ee1bddE"} !4097 = !{!4098} !4098 = distinct !{!4098, !4099, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !4099 = distinct !{!4099, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !4100 = !{!4101} !4101 = distinct !{!4101, !4099, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !4102 = !{!4103} !4103 = distinct !{!4103, !4099, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !4104 = !{!4098, !4101, !4093, !4095} !4105 = !{!4101, !4103, !4093, !4095} !4106 = !{!4098, !4103, !4093, !4095} !4107 = !{!4108} !4108 = distinct !{!4108, !4109, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !4109 = distinct !{!4109, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !4110 = !{!4111} !4111 = distinct !{!4111, !4109, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !4112 = !{!4113} !4113 = distinct !{!4113, !4109, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !4114 = !{!4108, !4111, !4093, !4095} !4115 = !{!4111, !4113, !4093, !4095} !4116 = !{!4108, !4113, !4093, !4095} !4117 = !{!4118} !4118 = distinct !{!4118, !4119, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !4119 = distinct !{!4119, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !4120 = !{!4121} !4121 = distinct !{!4121, !4119, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !4122 = !{!4123} !4123 = distinct !{!4123, !4119, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !4124 = !{!4118, !4121, !4093, !4095} !4125 = !{!4121, !4123, !4093, !4095} !4126 = !{!4118, !4123, !4093, !4095} !4127 = !{!4128} !4128 = distinct !{!4128, !4129, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5767819714ebba72E: %self"} !4129 = distinct !{!4129, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5767819714ebba72E"} !4130 = distinct !{!4130, !21, !22} !4131 = !{!4132, !4128} !4132 = distinct !{!4132, !4133, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE: %w_init.0"} !4133 = distinct !{!4133, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE"} !4134 = distinct !{!4134, !21, !22} !4135 = distinct !{!4135, !21, !22} !4136 = !{!4137} !4137 = distinct !{!4137, !4138, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h02a10ddf3b78d13eE: %self"} !4138 = distinct !{!4138, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h02a10ddf3b78d13eE"} !4139 = distinct !{!4139, !21, !22} !4140 = distinct !{!4140, !21, !22} !4141 = !{!4142, !4144} !4142 = distinct !{!4142, !4143, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he7f6dafe6514ea57E: %self"} !4143 = distinct !{!4143, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he7f6dafe6514ea57E"} !4144 = distinct !{!4144, !4145, !"_ZN4pulp3x862V39vectorize6__impl17h65c4a4e8ee21de48E: %f"} !4145 = distinct !{!4145, !"_ZN4pulp3x862V39vectorize6__impl17h65c4a4e8ee21de48E"} !4146 = !{!4147} !4147 = distinct !{!4147, !4148, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !4148 = distinct !{!4148, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !4149 = !{!4150} !4150 = distinct !{!4150, !4148, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !4151 = !{!4152} !4152 = distinct !{!4152, !4148, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !4153 = !{!4150, !4152, !4142, !4144} !4154 = !{!4147, !4150, !4142, !4144} !4155 = !{!4147, !4152, !4142, !4144} !4156 = !{!4157} !4157 = distinct !{!4157, !4158, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %x.0"} !4158 = distinct !{!4158, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE"} !4159 = !{!4160} !4160 = distinct !{!4160, !4158, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %y.0"} !4161 = !{!4162} !4162 = distinct !{!4162, !4158, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %w.0"} !4163 = !{!4157, !4160, !4142, !4144} !4164 = !{!4160, !4162, !4142, !4144} !4165 = !{!4157, !4162, !4142, !4144} !4166 = !{!4167, !4169} !4167 = distinct !{!4167, !4168, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0794a425e21d536eE: %self"} !4168 = distinct !{!4168, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0794a425e21d536eE"} !4169 = distinct !{!4169, !4170, !"_ZN4pulp3x862V39vectorize6__impl17h22a2f9f1f1e81dd8E: %f"} !4170 = distinct !{!4170, !"_ZN4pulp3x862V39vectorize6__impl17h22a2f9f1f1e81dd8E"} !4171 = !{!4172, !4174, !4175, !4177, !4178, !4180, !4167, !4169} !4172 = distinct !{!4172, !4173, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w_init.0"} !4173 = distinct !{!4173, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E"} !4174 = distinct !{!4174, !4173, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w.0"} !4175 = distinct !{!4175, !4176, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE: %w_init.0"} !4176 = distinct !{!4176, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE"} !4177 = distinct !{!4177, !4176, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE: %w.0"} !4178 = distinct !{!4178, !4179, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E: %w_init.0"} !4179 = distinct !{!4179, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E"} !4180 = distinct !{!4180, !4179, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb02b5863e351a2b1E: %w.0"} !4181 = !{!4182} !4182 = distinct !{!4182, !4183, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4183 = distinct !{!4183, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4184 = !{!4185} !4185 = distinct !{!4185, !4183, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4186 = !{!4182, !4187, !4167, !4169} !4187 = distinct !{!4187, !4183, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4188 = !{!4185, !4187, !4167, !4169} !4189 = !{!4190} !4190 = distinct !{!4190, !4191, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4191 = distinct !{!4191, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4192 = !{!4193} !4193 = distinct !{!4193, !4191, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4194 = !{!4190, !4195, !4167, !4169} !4195 = distinct !{!4195, !4191, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4196 = !{!4193, !4195, !4167, !4169} !4197 = !{!4198} !4198 = distinct !{!4198, !4199, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4199 = distinct !{!4199, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4200 = !{!4201} !4201 = distinct !{!4201, !4199, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4202 = !{!4203} !4203 = distinct !{!4203, !4199, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4204 = !{!4198, !4203, !4167, !4169} !4205 = !{!4201, !4203, !4167, !4169} !4206 = !{!4198, !4201, !4167, !4169} !4207 = !{!4208} !4208 = distinct !{!4208, !4209, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4209 = distinct !{!4209, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4210 = !{!4211} !4211 = distinct !{!4211, !4209, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4212 = !{!4213} !4213 = distinct !{!4213, !4209, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4214 = !{!4208, !4211, !4167, !4169} !4215 = !{!4208, !4213, !4167, !4169} !4216 = !{!4211, !4213, !4167, !4169} !4217 = !{!4218} !4218 = distinct !{!4218, !4219, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4219 = distinct !{!4219, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4220 = !{!4221} !4221 = distinct !{!4221, !4219, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4222 = !{!4223} !4223 = distinct !{!4223, !4219, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4224 = !{!4218, !4221, !4167, !4169} !4225 = !{!4218, !4223, !4167, !4169} !4226 = !{!4221, !4223, !4167, !4169} !4227 = !{!4228} !4228 = distinct !{!4228, !4229, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4229 = distinct !{!4229, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4230 = !{!4231} !4231 = distinct !{!4231, !4229, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4232 = !{!4233} !4233 = distinct !{!4233, !4229, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4234 = !{!4228, !4231, !4167, !4169} !4235 = !{!4228, !4233, !4167, !4169} !4236 = !{!4231, !4233, !4167, !4169} !4237 = !{!4238} !4238 = distinct !{!4238, !4239, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4239 = distinct !{!4239, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4240 = !{!4241} !4241 = distinct !{!4241, !4239, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4242 = !{!4243} !4243 = distinct !{!4243, !4239, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4244 = !{!4238, !4241, !4167, !4169} !4245 = !{!4238, !4243, !4167, !4169} !4246 = !{!4241, !4243, !4167, !4169} !4247 = !{!4248} !4248 = distinct !{!4248, !4249, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4249 = distinct !{!4249, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4250 = !{!4251} !4251 = distinct !{!4251, !4249, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4252 = !{!4253} !4253 = distinct !{!4253, !4249, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4254 = !{!4248, !4251, !4167, !4169} !4255 = !{!4248, !4253, !4167, !4169} !4256 = !{!4251, !4253, !4167, !4169} !4257 = !{!4258} !4258 = distinct !{!4258, !4259, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h174da8cbb124a474E: %self"} !4259 = distinct !{!4259, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h174da8cbb124a474E"} !4260 = !{!4261} !4261 = distinct !{!4261, !4262, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88d9a001bb4fce67E: %self"} !4262 = distinct !{!4262, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h88d9a001bb4fce67E"} !4263 = distinct !{!4263, !21, !22} !4264 = distinct !{!4264, !21, !22} !4265 = !{!4266, !4268} !4266 = distinct !{!4266, !4267, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5951d26f92667650E: %self"} !4267 = distinct !{!4267, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5951d26f92667650E"} !4268 = distinct !{!4268, !4269, !"_ZN4pulp3x862V39vectorize6__impl17hed346dbf9f10e565E: %f"} !4269 = distinct !{!4269, !"_ZN4pulp3x862V39vectorize6__impl17hed346dbf9f10e565E"} !4270 = !{!4271, !4273, !4266, !4268} !4271 = distinct !{!4271, !4272, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w_init.0"} !4272 = distinct !{!4272, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE"} !4273 = distinct !{!4273, !4272, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w.0"} !4274 = !{!4275} !4275 = distinct !{!4275, !4276, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !4276 = distinct !{!4276, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !4277 = !{!4278} !4278 = distinct !{!4278, !4276, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !4279 = !{!4280} !4280 = distinct !{!4280, !4276, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !4281 = !{!4275, !4278, !4266, !4268} !4282 = !{!4275, !4280, !4266, !4268} !4283 = !{!4278, !4280, !4266, !4268} !4284 = !{!4285} !4285 = distinct !{!4285, !4286, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4286 = distinct !{!4286, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4287 = !{!4288} !4288 = distinct !{!4288, !4286, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4289 = !{!4290} !4290 = distinct !{!4290, !4286, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4291 = !{!4285, !4288, !4266, !4268} !4292 = !{!4285, !4290, !4266, !4268} !4293 = !{!4288, !4290, !4266, !4268} !4294 = !{!4295} !4295 = distinct !{!4295, !4296, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h318487a5ac09de9fE: %self"} !4296 = distinct !{!4296, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h318487a5ac09de9fE"} !4297 = distinct !{!4297, !21, !22} !4298 = distinct !{!4298, !21, !22} !4299 = distinct !{!4299, !21, !22} !4300 = distinct !{!4300, !21, !22} !4301 = distinct !{!4301, !21, !22} !4302 = distinct !{!4302, !21, !22} !4303 = distinct !{!4303, !21, !22} !4304 = distinct !{!4304, !21, !22} !4305 = distinct !{!4305, !21, !22} !4306 = distinct !{!4306, !21, !22} !4307 = !{!4308, !4310} !4308 = distinct !{!4308, !4309, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8bce7fc9a69e52e2E: %self"} !4309 = distinct !{!4309, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8bce7fc9a69e52e2E"} !4310 = distinct !{!4310, !4311, !"_ZN4pulp3x862V39vectorize6__impl17h92dccd29cf28433bE: %f"} !4311 = distinct !{!4311, !"_ZN4pulp3x862V39vectorize6__impl17h92dccd29cf28433bE"} !4312 = !{!4313} !4313 = distinct !{!4313, !4314, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !4314 = distinct !{!4314, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !4315 = !{!4316} !4316 = distinct !{!4316, !4314, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !4317 = !{!4318} !4318 = distinct !{!4318, !4314, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !4319 = !{!4316, !4318, !4308, !4310} !4320 = !{!4313, !4316, !4308, !4310} !4321 = !{!4313, !4318, !4308, !4310} !4322 = !{!4323, !4325} !4323 = distinct !{!4323, !4324, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4cb5e34006055706E: %self"} !4324 = distinct !{!4324, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4cb5e34006055706E"} !4325 = distinct !{!4325, !4326, !"_ZN4pulp3x862V39vectorize6__impl17h4667cbd151bf1f9fE: %f"} !4326 = distinct !{!4326, !"_ZN4pulp3x862V39vectorize6__impl17h4667cbd151bf1f9fE"} !4327 = !{!4328} !4328 = distinct !{!4328, !4329, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !4329 = distinct !{!4329, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !4330 = !{!4331} !4331 = distinct !{!4331, !4329, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !4332 = !{!4333} !4333 = distinct !{!4333, !4329, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !4334 = !{!4331, !4333, !4323, !4325} !4335 = !{!4328, !4331, !4323, !4325} !4336 = !{!4328, !4333, !4323, !4325} !4337 = !{!4338, !4340} !4338 = distinct !{!4338, !4339, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3310093d6fe0fde9E: %self"} !4339 = distinct !{!4339, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3310093d6fe0fde9E"} !4340 = distinct !{!4340, !4341, !"_ZN4pulp3x862V39vectorize6__impl17h323ffbac68869d84E: %f"} !4341 = distinct !{!4341, !"_ZN4pulp3x862V39vectorize6__impl17h323ffbac68869d84E"} !4342 = !{!4343} !4343 = distinct !{!4343, !4344, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !4344 = distinct !{!4344, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !4345 = !{!4346} !4346 = distinct !{!4346, !4344, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !4347 = !{!4348} !4348 = distinct !{!4348, !4344, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !4349 = !{!4346, !4348, !4338, !4340} !4350 = !{!4343, !4346, !4338, !4340} !4351 = !{!4343, !4348, !4338, !4340} !4352 = !{!4353} !4353 = distinct !{!4353, !4354, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !4354 = distinct !{!4354, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !4355 = !{!4356} !4356 = distinct !{!4356, !4354, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !4357 = !{!4358} !4358 = distinct !{!4358, !4354, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !4359 = !{!4353, !4356, !4338, !4340} !4360 = !{!4356, !4358, !4338, !4340} !4361 = !{!4353, !4358, !4338, !4340} !4362 = !{!4363} !4363 = distinct !{!4363, !4364, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4ce62ae27c94a852E: %self"} !4364 = distinct !{!4364, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4ce62ae27c94a852E"} !4365 = distinct !{!4365, !21, !22} !4366 = distinct !{!4366, !21, !22} !4367 = distinct !{!4367, !21, !22} !4368 = distinct !{!4368, !21, !22} !4369 = !{!4370, !4372} !4370 = distinct !{!4370, !4371, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04523917d718e5a5E: %self"} !4371 = distinct !{!4371, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h04523917d718e5a5E"} !4372 = distinct !{!4372, !4373, !"_ZN4pulp3x862V39vectorize6__impl17hbcbef548ee243e17E: %f"} !4373 = distinct !{!4373, !"_ZN4pulp3x862V39vectorize6__impl17hbcbef548ee243e17E"} !4374 = !{!4375} !4375 = distinct !{!4375, !4376, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !4376 = distinct !{!4376, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !4377 = !{!4378} !4378 = distinct !{!4378, !4376, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !4379 = !{!4380} !4380 = distinct !{!4380, !4376, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !4381 = !{!4378, !4380, !4370, !4372} !4382 = !{!4375, !4378, !4370, !4372} !4383 = !{!4375, !4380, !4370, !4372} !4384 = !{!4385, !4387} !4385 = distinct !{!4385, !4386, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2e3e5be5e98cfcacE: %self"} !4386 = distinct !{!4386, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2e3e5be5e98cfcacE"} !4387 = distinct !{!4387, !4388, !"_ZN4pulp3x862V39vectorize6__impl17h6cb39869f3535bb0E: %f"} !4388 = distinct !{!4388, !"_ZN4pulp3x862V39vectorize6__impl17h6cb39869f3535bb0E"} !4389 = !{!4390} !4390 = distinct !{!4390, !4391, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !4391 = distinct !{!4391, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !4392 = !{!4393} !4393 = distinct !{!4393, !4391, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !4394 = !{!4395} !4395 = distinct !{!4395, !4391, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !4396 = !{!4390, !4393, !4385, !4387} !4397 = !{!4393, !4395, !4385, !4387} !4398 = !{!4390, !4395, !4385, !4387} !4399 = !{!4400} !4400 = distinct !{!4400, !4401, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc84e03ba774e18b1E: %self"} !4401 = distinct !{!4401, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc84e03ba774e18b1E"} !4402 = !{!4403, !4400} !4403 = distinct !{!4403, !4404, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE: %w_init.0"} !4404 = distinct !{!4404, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE"} !4405 = !{!4406, !4408} !4406 = distinct !{!4406, !4407, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f52c8b0154fbdc6E: %self"} !4407 = distinct !{!4407, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3f52c8b0154fbdc6E"} !4408 = distinct !{!4408, !4409, !"_ZN4pulp3x862V39vectorize6__impl17h11b50460a244f258E: %f"} !4409 = distinct !{!4409, !"_ZN4pulp3x862V39vectorize6__impl17h11b50460a244f258E"} !4410 = !{!4411, !4413, !4406, !4408} !4411 = distinct !{!4411, !4412, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE: %w_init.0"} !4412 = distinct !{!4412, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE"} !4413 = distinct !{!4413, !4412, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2fbc80407935ebaaE: %w.0"} !4414 = !{!4415} !4415 = distinct !{!4415, !4416, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !4416 = distinct !{!4416, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !4417 = !{!4418} !4418 = distinct !{!4418, !4416, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !4419 = !{!4420} !4420 = distinct !{!4420, !4416, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !4421 = !{!4415, !4418, !4406, !4408} !4422 = !{!4415, !4420, !4406, !4408} !4423 = !{!4418, !4420, !4406, !4408} !4424 = !{!4425, !4427} !4425 = distinct !{!4425, !4426, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5f105aae49c79eE: %self"} !4426 = distinct !{!4426, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hac5f105aae49c79eE"} !4427 = distinct !{!4427, !4428, !"_ZN4pulp3x862V39vectorize6__impl17hb3cf44e41dff2aa8E: %f"} !4428 = distinct !{!4428, !"_ZN4pulp3x862V39vectorize6__impl17hb3cf44e41dff2aa8E"} !4429 = !{!4430, !4432, !4425, !4427} !4430 = distinct !{!4430, !4431, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !4431 = distinct !{!4431, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !4432 = distinct !{!4432, !4431, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !4433 = !{!4434} !4434 = distinct !{!4434, !4435, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !4435 = distinct !{!4435, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !4436 = !{!4437} !4437 = distinct !{!4437, !4435, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !4438 = !{!4439} !4439 = distinct !{!4439, !4435, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !4440 = !{!4434, !4437, !4425, !4427} !4441 = !{!4434, !4439, !4425, !4427} !4442 = !{!4437, !4439, !4425, !4427} !4443 = !{!4444} !4444 = distinct !{!4444, !4445, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !4445 = distinct !{!4445, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !4446 = !{!4447} !4447 = distinct !{!4447, !4445, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !4448 = !{!4449} !4449 = distinct !{!4449, !4445, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !4450 = !{!4444, !4447, !4425, !4427} !4451 = !{!4444, !4449, !4425, !4427} !4452 = !{!4447, !4449, !4425, !4427} !4453 = !{!4454} !4454 = distinct !{!4454, !4455, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !4455 = distinct !{!4455, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !4456 = !{!4457} !4457 = distinct !{!4457, !4455, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !4458 = !{!4459} !4459 = distinct !{!4459, !4455, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !4460 = !{!4454, !4457, !4425, !4427} !4461 = !{!4454, !4459, !4425, !4427} !4462 = !{!4457, !4459, !4425, !4427} !4463 = !{!4464} !4464 = distinct !{!4464, !4465, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha7f6a68041999cadE: %self"} !4465 = distinct !{!4465, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha7f6a68041999cadE"} !4466 = !{!4467, !4464} !4467 = distinct !{!4467, !4468, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E: %w.0"} !4468 = distinct !{!4468, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E"} !4469 = !{!4470} !4470 = distinct !{!4470, !4471, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hcf224e3c6b5c8991E: %self"} !4471 = distinct !{!4471, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hcf224e3c6b5c8991E"} !4472 = !{!4473, !4470} !4473 = distinct !{!4473, !4474, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0c72a7628298af24E: %w_init.0"} !4474 = distinct !{!4474, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h0c72a7628298af24E"} !4475 = distinct !{!4475, !21, !22} !4476 = distinct !{!4476, !21, !22} !4477 = distinct !{!4477, !21, !22} !4478 = !{!4479, !4470} !4479 = distinct !{!4479, !4480, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE: %w_init.0"} !4480 = distinct !{!4480, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h7d336df28cd61fdaE"} !4481 = distinct !{!4481, !21, !22} !4482 = distinct !{!4482, !21, !22} !4483 = !{!4484} !4484 = distinct !{!4484, !4485, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc0230b72832270fbE: %self"} !4485 = distinct !{!4485, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc0230b72832270fbE"} !4486 = !{!4487, !4484} !4487 = distinct !{!4487, !4488, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE: %w.0"} !4488 = distinct !{!4488, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE"} !4489 = distinct !{!4489, !21, !22} !4490 = distinct !{!4490, !21, !22} !4491 = distinct !{!4491, !21, !22} !4492 = !{!4493, !4495} !4493 = distinct !{!4493, !4494, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha88dc170a332df7fE: %self"} !4494 = distinct !{!4494, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha88dc170a332df7fE"} !4495 = distinct !{!4495, !4496, !"_ZN4pulp3x862V39vectorize6__impl17h06b838377b020075E: %f"} !4496 = distinct !{!4496, !"_ZN4pulp3x862V39vectorize6__impl17h06b838377b020075E"} !4497 = !{!4498, !4500, !4493, !4495} !4498 = distinct !{!4498, !4499, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w_init.0"} !4499 = distinct !{!4499, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E"} !4500 = distinct !{!4500, !4499, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w.0"} !4501 = !{!4502} !4502 = distinct !{!4502, !4503, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !4503 = distinct !{!4503, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !4504 = !{!4505} !4505 = distinct !{!4505, !4503, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !4506 = !{!4507} !4507 = distinct !{!4507, !4503, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !4508 = !{!4502, !4505, !4493, !4495} !4509 = !{!4502, !4507, !4493, !4495} !4510 = !{!4505, !4507, !4493, !4495} !4511 = !{!4512} !4512 = distinct !{!4512, !4513, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !4513 = distinct !{!4513, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !4514 = !{!4515} !4515 = distinct !{!4515, !4513, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !4516 = !{!4517} !4517 = distinct !{!4517, !4513, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !4518 = !{!4512, !4515, !4493, !4495} !4519 = !{!4512, !4517, !4493, !4495} !4520 = !{!4515, !4517, !4493, !4495} !4521 = !{!4522} !4522 = distinct !{!4522, !4523, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4523 = distinct !{!4523, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4524 = !{!4525} !4525 = distinct !{!4525, !4523, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4526 = !{!4527} !4527 = distinct !{!4527, !4523, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4528 = !{!4522, !4525, !4493, !4495} !4529 = !{!4522, !4527, !4493, !4495} !4530 = !{!4525, !4527, !4493, !4495} !4531 = !{!4532} !4532 = distinct !{!4532, !4533, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h32ac2a5aa198f293E: %self"} !4533 = distinct !{!4533, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h32ac2a5aa198f293E"} !4534 = !{!4535, !4537} !4535 = distinct !{!4535, !4536, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h456f9c74a2835791E: %self"} !4536 = distinct !{!4536, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h456f9c74a2835791E"} !4537 = distinct !{!4537, !4538, !"_ZN4pulp3x862V39vectorize6__impl17h51a6d054d8245fabE: %f"} !4538 = distinct !{!4538, !"_ZN4pulp3x862V39vectorize6__impl17h51a6d054d8245fabE"} !4539 = !{!4540} !4540 = distinct !{!4540, !4541, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !4541 = distinct !{!4541, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !4542 = !{!4543} !4543 = distinct !{!4543, !4541, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !4544 = !{!4545} !4545 = distinct !{!4545, !4541, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !4546 = !{!4540, !4543, !4535, !4537} !4547 = !{!4543, !4545, !4535, !4537} !4548 = !{!4540, !4545, !4535, !4537} !4549 = !{!4550, !4552} !4550 = distinct !{!4550, !4551, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc47731e60238e8bcE: %self"} !4551 = distinct !{!4551, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc47731e60238e8bcE"} !4552 = distinct !{!4552, !4553, !"_ZN4pulp3x862V39vectorize6__impl17hd40af08fcba119b3E: %f"} !4553 = distinct !{!4553, !"_ZN4pulp3x862V39vectorize6__impl17hd40af08fcba119b3E"} !4554 = !{!4555, !4557, !4550, !4552} !4555 = distinct !{!4555, !4556, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w_init.0"} !4556 = distinct !{!4556, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E"} !4557 = distinct !{!4557, !4556, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w.0"} !4558 = !{!4559} !4559 = distinct !{!4559, !4560, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4560 = distinct !{!4560, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4561 = !{!4562} !4562 = distinct !{!4562, !4560, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4563 = !{!4559, !4564, !4550, !4552} !4564 = distinct !{!4564, !4560, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4565 = !{!4564, !4562, !4550, !4552} !4566 = !{!4567, !4569} !4567 = distinct !{!4567, !4568, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17head6b3b7b7b7f7dbE: %self"} !4568 = distinct !{!4568, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17head6b3b7b7b7f7dbE"} !4569 = distinct !{!4569, !4570, !"_ZN4pulp3x862V39vectorize6__impl17h956c4f6772f749bbE: %f"} !4570 = distinct !{!4570, !"_ZN4pulp3x862V39vectorize6__impl17h956c4f6772f749bbE"} !4571 = !{!4572, !4574, !4567, !4569} !4572 = distinct !{!4572, !4573, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w_init.0"} !4573 = distinct !{!4573, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE"} !4574 = distinct !{!4574, !4573, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17he921ab4b62f4777aE: %w.0"} !4575 = !{!4576} !4576 = distinct !{!4576, !4577, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4577 = distinct !{!4577, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4578 = !{!4579} !4579 = distinct !{!4579, !4577, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4580 = !{!4576, !4581, !4567, !4569} !4581 = distinct !{!4581, !4577, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4582 = !{!4581, !4579, !4567, !4569} !4583 = !{!4584, !4586} !4584 = distinct !{!4584, !4585, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h21941d2012c615e3E: %self"} !4585 = distinct !{!4585, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h21941d2012c615e3E"} !4586 = distinct !{!4586, !4587, !"_ZN4pulp3x862V39vectorize6__impl17ha3f02a7c48d16568E: %f"} !4587 = distinct !{!4587, !"_ZN4pulp3x862V39vectorize6__impl17ha3f02a7c48d16568E"} !4588 = !{!4589, !4591, !4592, !4594, !4584, !4586} !4589 = distinct !{!4589, !4590, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w_init.0"} !4590 = distinct !{!4590, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E"} !4591 = distinct !{!4591, !4590, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w.0"} !4592 = distinct !{!4592, !4593, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE: %w_init.0"} !4593 = distinct !{!4593, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE"} !4594 = distinct !{!4594, !4593, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE: %w.0"} !4595 = !{!4596} !4596 = distinct !{!4596, !4597, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4597 = distinct !{!4597, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4598 = !{!4599, !4600, !4584, !4586} !4599 = distinct !{!4599, !4597, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4600 = distinct !{!4600, !4597, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4601 = !{!4602} !4602 = distinct !{!4602, !4603, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4603 = distinct !{!4603, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4604 = !{!4605} !4605 = distinct !{!4605, !4603, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4606 = !{!4607, !4605, !4584, !4586} !4607 = distinct !{!4607, !4603, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4608 = !{!4602, !4607, !4584, !4586} !4609 = !{!4610} !4610 = distinct !{!4610, !4611, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !4611 = distinct !{!4611, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !4612 = !{!4613} !4613 = distinct !{!4613, !4611, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !4614 = !{!4615} !4615 = distinct !{!4615, !4611, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !4616 = !{!4610, !4613, !4584, !4586} !4617 = !{!4610, !4615, !4584, !4586} !4618 = !{!4613, !4615, !4584, !4586} !4619 = !{!4620} !4620 = distinct !{!4620, !4621, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !4621 = distinct !{!4621, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !4622 = !{!4623} !4623 = distinct !{!4623, !4621, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !4624 = !{!4625} !4625 = distinct !{!4625, !4621, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !4626 = !{!4620, !4625, !4584, !4586} !4627 = !{!4620, !4623, !4584, !4586} !4628 = !{!4623, !4625, !4584, !4586} !4629 = !{!4630} !4630 = distinct !{!4630, !4631, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h866e4270123d6eeeE: %self"} !4631 = distinct !{!4631, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h866e4270123d6eeeE"} !4632 = !{!4633} !4633 = distinct !{!4633, !4634, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h574d0affc09c7ecbE: %self"} !4634 = distinct !{!4634, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h574d0affc09c7ecbE"} !4635 = !{!4636} !4636 = distinct !{!4636, !4637, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h736611521f88ea24E: %self"} !4637 = distinct !{!4637, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h736611521f88ea24E"} !4638 = distinct !{!4638, !21, !22} !4639 = distinct !{!4639, !21, !22} !4640 = distinct !{!4640, !21, !22} !4641 = distinct !{!4641, !21, !22} !4642 = !{!4643} !4643 = distinct !{!4643, !4644, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h38b75c1d4511d0edE: %self"} !4644 = distinct !{!4644, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h38b75c1d4511d0edE"} !4645 = distinct !{!4645, !21, !22} !4646 = distinct !{!4646, !21, !22} !4647 = distinct !{!4647, !21, !22} !4648 = distinct !{!4648, !21, !22} !4649 = distinct !{!4649, !21, !22} !4650 = !{!4651} !4651 = distinct !{!4651, !4652, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2c17044027950131E: %self"} !4652 = distinct !{!4652, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2c17044027950131E"} !4653 = !{!4654, !4656, !4651} !4654 = distinct !{!4654, !4655, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E: %w.0"} !4655 = distinct !{!4655, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E"} !4656 = distinct !{!4656, !4657, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E: %w.0"} !4657 = distinct !{!4657, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E"} !4658 = !{!4659} !4659 = distinct !{!4659, !4660, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he47d8ce97dbdd321E: %self"} !4660 = distinct !{!4660, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he47d8ce97dbdd321E"} !4661 = !{!4662, !4664} !4662 = distinct !{!4662, !4663, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4486a5dbdbe93c11E: %self"} !4663 = distinct !{!4663, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4486a5dbdbe93c11E"} !4664 = distinct !{!4664, !4665, !"_ZN4pulp3x862V39vectorize6__impl17hef578b025657c2dbE: %f"} !4665 = distinct !{!4665, !"_ZN4pulp3x862V39vectorize6__impl17hef578b025657c2dbE"} !4666 = !{!4667} !4667 = distinct !{!4667, !4668, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !4668 = distinct !{!4668, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !4669 = !{!4670} !4670 = distinct !{!4670, !4668, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !4671 = !{!4672} !4672 = distinct !{!4672, !4668, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !4673 = !{!4670, !4672, !4662, !4664} !4674 = !{!4667, !4670, !4662, !4664} !4675 = !{!4667, !4672, !4662, !4664} !4676 = !{!4677} !4677 = distinct !{!4677, !4678, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %x.0"} !4678 = distinct !{!4678, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE"} !4679 = !{!4680} !4680 = distinct !{!4680, !4678, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %y.0"} !4681 = !{!4682} !4682 = distinct !{!4682, !4678, !"_ZN12concrete_fft5dif1621stockham_core_generic17h14e12f044230655fE: %w.0"} !4683 = !{!4677, !4680, !4662, !4664} !4684 = !{!4680, !4682, !4662, !4664} !4685 = !{!4677, !4682, !4662, !4664} !4686 = !{!4687, !4689} !4687 = distinct !{!4687, !4688, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7338e4c18d7c0cc6E: %self"} !4688 = distinct !{!4688, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h7338e4c18d7c0cc6E"} !4689 = distinct !{!4689, !4690, !"_ZN4pulp3x862V39vectorize6__impl17h495e5dda410f8b30E: %f"} !4690 = distinct !{!4690, !"_ZN4pulp3x862V39vectorize6__impl17h495e5dda410f8b30E"} !4691 = !{!4692} !4692 = distinct !{!4692, !4693, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !4693 = distinct !{!4693, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !4694 = !{!4695} !4695 = distinct !{!4695, !4693, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !4696 = !{!4697} !4697 = distinct !{!4697, !4693, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !4698 = !{!4695, !4697, !4687, !4689} !4699 = !{!4692, !4695, !4687, !4689} !4700 = !{!4692, !4697, !4687, !4689} !4701 = !{!4702} !4702 = distinct !{!4702, !4703, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !4703 = distinct !{!4703, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !4704 = !{!4705} !4705 = distinct !{!4705, !4703, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !4706 = !{!4707} !4707 = distinct !{!4707, !4703, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !4708 = !{!4702, !4705, !4687, !4689} !4709 = !{!4705, !4707, !4687, !4689} !4710 = !{!4702, !4707, !4687, !4689} !4711 = !{!4712, !4714} !4712 = distinct !{!4712, !4713, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3c9b1e5804ede2fE: %self"} !4713 = distinct !{!4713, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc3c9b1e5804ede2fE"} !4714 = distinct !{!4714, !4715, !"_ZN4pulp3x862V39vectorize6__impl17h2fb9c763c375ac0cE: %f"} !4715 = distinct !{!4715, !"_ZN4pulp3x862V39vectorize6__impl17h2fb9c763c375ac0cE"} !4716 = !{!4717} !4717 = distinct !{!4717, !4718, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !4718 = distinct !{!4718, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !4719 = !{!4720} !4720 = distinct !{!4720, !4718, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !4721 = !{!4722} !4722 = distinct !{!4722, !4718, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !4723 = !{!4717, !4720, !4712, !4714} !4724 = !{!4717, !4722, !4712, !4714} !4725 = !{!4720, !4722, !4712, !4714} !4726 = !{!4727} !4727 = distinct !{!4727, !4728, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4728 = distinct !{!4728, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4729 = !{!4730} !4730 = distinct !{!4730, !4728, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4731 = !{!4732} !4732 = distinct !{!4732, !4728, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4733 = !{!4727, !4730, !4712, !4714} !4734 = !{!4727, !4732, !4712, !4714} !4735 = !{!4730, !4732, !4712, !4714} !4736 = !{!4737} !4737 = distinct !{!4737, !4738, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4459645737208226E: %self"} !4738 = distinct !{!4738, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4459645737208226E"} !4739 = !{!4740, !4742} !4740 = distinct !{!4740, !4741, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h82418278c0d19b86E: %self"} !4741 = distinct !{!4741, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h82418278c0d19b86E"} !4742 = distinct !{!4742, !4743, !"_ZN4pulp3x862V39vectorize6__impl17h5b2f271ebca2fdd7E: %f"} !4743 = distinct !{!4743, !"_ZN4pulp3x862V39vectorize6__impl17h5b2f271ebca2fdd7E"} !4744 = !{!4745, !4747, !4740, !4742} !4745 = distinct !{!4745, !4746, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w_init.0"} !4746 = distinct !{!4746, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E"} !4747 = distinct !{!4747, !4746, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc6cf404414c83a33E: %w.0"} !4748 = !{!4749} !4749 = distinct !{!4749, !4750, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4750 = distinct !{!4750, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4751 = !{!4752} !4752 = distinct !{!4752, !4750, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4753 = !{!4749, !4754, !4740, !4742} !4754 = distinct !{!4754, !4750, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4755 = !{!4754, !4752, !4740, !4742} !4756 = !{!4757, !4759} !4757 = distinct !{!4757, !4758, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd1e956cb8c0cd385E: %self"} !4758 = distinct !{!4758, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd1e956cb8c0cd385E"} !4759 = distinct !{!4759, !4760, !"_ZN4pulp3x862V39vectorize6__impl17h1c3d93bc955b8d34E: %f"} !4760 = distinct !{!4760, !"_ZN4pulp3x862V39vectorize6__impl17h1c3d93bc955b8d34E"} !4761 = !{!4762} !4762 = distinct !{!4762, !4763, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !4763 = distinct !{!4763, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !4764 = !{!4765} !4765 = distinct !{!4765, !4763, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !4766 = !{!4767} !4767 = distinct !{!4767, !4763, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !4768 = !{!4762, !4765, !4757, !4759} !4769 = !{!4765, !4767, !4757, !4759} !4770 = !{!4762, !4767, !4757, !4759} !4771 = !{!4772} !4772 = distinct !{!4772, !4773, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !4773 = distinct !{!4773, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !4774 = !{!4775} !4775 = distinct !{!4775, !4773, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !4776 = !{!4777} !4777 = distinct !{!4777, !4773, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !4778 = !{!4772, !4775, !4757, !4759} !4779 = !{!4775, !4777, !4757, !4759} !4780 = !{!4772, !4777, !4757, !4759} !4781 = !{!4782} !4782 = distinct !{!4782, !4783, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !4783 = distinct !{!4783, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !4784 = !{!4785} !4785 = distinct !{!4785, !4783, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !4786 = !{!4787} !4787 = distinct !{!4787, !4783, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !4788 = !{!4782, !4785, !4757, !4759} !4789 = !{!4785, !4787, !4757, !4759} !4790 = !{!4782, !4787, !4757, !4759} !4791 = !{!4792} !4792 = distinct !{!4792, !4793, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !4793 = distinct !{!4793, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !4794 = !{!4795} !4795 = distinct !{!4795, !4793, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !4796 = !{!4797} !4797 = distinct !{!4797, !4793, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !4798 = !{!4792, !4795, !4757, !4759} !4799 = !{!4795, !4797, !4757, !4759} !4800 = !{!4792, !4797, !4757, !4759} !4801 = !{!4802} !4802 = distinct !{!4802, !4803, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd0ebde7ee5b6b802E: %self"} !4803 = distinct !{!4803, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd0ebde7ee5b6b802E"} !4804 = distinct !{!4804, !21, !22} !4805 = distinct !{!4805, !21, !22} !4806 = !{!4807, !4809} !4807 = distinct !{!4807, !4808, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce795478eb4aa4f4E: %self"} !4808 = distinct !{!4808, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hce795478eb4aa4f4E"} !4809 = distinct !{!4809, !4810, !"_ZN4pulp3x862V39vectorize6__impl17h9efe06f4f9abb32bE: %f"} !4810 = distinct !{!4810, !"_ZN4pulp3x862V39vectorize6__impl17h9efe06f4f9abb32bE"} !4811 = !{!4812, !4814, !4807, !4809} !4812 = distinct !{!4812, !4813, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w_init.0"} !4813 = distinct !{!4813, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE"} !4814 = distinct !{!4814, !4813, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w.0"} !4815 = !{!4816} !4816 = distinct !{!4816, !4817, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %x.0"} !4817 = distinct !{!4817, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE"} !4818 = !{!4819} !4819 = distinct !{!4819, !4817, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %y.0"} !4820 = !{!4821} !4821 = distinct !{!4821, !4817, !"_ZN12concrete_fft4dit821stockham_core_generic17h4aa32bcbd51d50cdE: %w.0"} !4822 = !{!4816, !4819, !4807, !4809} !4823 = !{!4816, !4821, !4807, !4809} !4824 = !{!4819, !4821, !4807, !4809} !4825 = !{!4826} !4826 = distinct !{!4826, !4827, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !4827 = distinct !{!4827, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !4828 = !{!4829} !4829 = distinct !{!4829, !4827, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !4830 = !{!4831} !4831 = distinct !{!4831, !4827, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !4832 = !{!4826, !4829, !4807, !4809} !4833 = !{!4826, !4831, !4807, !4809} !4834 = !{!4829, !4831, !4807, !4809} !4835 = !{!4836} !4836 = distinct !{!4836, !4837, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h613023b8e72eca2eE: %self"} !4837 = distinct !{!4837, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h613023b8e72eca2eE"} !4838 = !{!4839, !4836} !4839 = distinct !{!4839, !4840, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc613b51e397db38bE: %w_init.0"} !4840 = distinct !{!4840, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc613b51e397db38bE"} !4841 = distinct !{!4841, !21, !22} !4842 = !{!4843, !4839, !4836} !4843 = distinct !{!4843, !4844, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2490641ebbbda406E: %w_init.0"} !4844 = distinct !{!4844, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2490641ebbbda406E"} !4845 = distinct !{!4845, !21, !22} !4846 = !{!4847, !4836} !4847 = distinct !{!4847, !4848, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec66254c3d2c2925E: %w_init.0"} !4848 = distinct !{!4848, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec66254c3d2c2925E"} !4849 = !{!4850, !4847, !4836} !4850 = distinct !{!4850, !4851, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E: %w_init.0"} !4851 = distinct !{!4851, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E"} !4852 = !{!4853, !4847, !4836} !4853 = distinct !{!4853, !4854, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E: %w_init.0"} !4854 = distinct !{!4854, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E"} !4855 = !{!4856, !4858, !4847, !4836} !4856 = distinct !{!4856, !4857, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !4857 = distinct !{!4857, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !4858 = distinct !{!4858, !4859, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE: %w_init.0"} !4859 = distinct !{!4859, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE"} !4860 = distinct !{!4860, !21, !22} !4861 = !{!4858, !4847, !4836} !4862 = distinct !{!4862, !21, !22} !4863 = distinct !{!4863, !21, !22} !4864 = distinct !{!4864, !21, !22} !4865 = distinct !{!4865, !21, !22} !4866 = distinct !{!4866, !21, !22} !4867 = distinct !{!4867, !21, !22} !4868 = distinct !{!4868, !21, !22} !4869 = !{!4870, !4847, !4836} !4870 = distinct !{!4870, !4871, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !4871 = distinct !{!4871, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !4872 = distinct !{!4872, !21, !22} !4873 = distinct !{!4873, !21, !22} !4874 = distinct !{!4874, !21, !22} !4875 = distinct !{!4875, !21, !22} !4876 = distinct !{!4876, !21, !22} !4877 = distinct !{!4877, !21, !22} !4878 = distinct !{!4878, !21, !22} !4879 = !{!4880, !4882} !4880 = distinct !{!4880, !4881, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1a2a14d20a8b35a1E: %self"} !4881 = distinct !{!4881, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1a2a14d20a8b35a1E"} !4882 = distinct !{!4882, !4883, !"_ZN4pulp3x862V39vectorize6__impl17h13e7a391fa6a78beE: %f"} !4883 = distinct !{!4883, !"_ZN4pulp3x862V39vectorize6__impl17h13e7a391fa6a78beE"} !4884 = !{!4885} !4885 = distinct !{!4885, !4886, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %x.0"} !4886 = distinct !{!4886, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE"} !4887 = !{!4888} !4888 = distinct !{!4888, !4886, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %y.0"} !4889 = !{!4890} !4890 = distinct !{!4890, !4886, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %w.0"} !4891 = !{!4885, !4888, !4880, !4882} !4892 = !{!4885, !4890, !4880, !4882} !4893 = !{!4888, !4890, !4880, !4882} !4894 = !{!4895} !4895 = distinct !{!4895, !4896, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !4896 = distinct !{!4896, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !4897 = !{!4898} !4898 = distinct !{!4898, !4896, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !4899 = !{!4900} !4900 = distinct !{!4900, !4896, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !4901 = !{!4895, !4898, !4880, !4882} !4902 = !{!4895, !4900, !4880, !4882} !4903 = !{!4898, !4900, !4880, !4882} !4904 = !{!4905} !4905 = distinct !{!4905, !4906, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h661d000a7faa756bE: %self"} !4906 = distinct !{!4906, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h661d000a7faa756bE"} !4907 = !{!4908, !4910} !4908 = distinct !{!4908, !4909, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h296b602ff2d62b86E: %self"} !4909 = distinct !{!4909, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h296b602ff2d62b86E"} !4910 = distinct !{!4910, !4911, !"_ZN4pulp3x862V39vectorize6__impl17hf5dff622f4d0faaeE: %f"} !4911 = distinct !{!4911, !"_ZN4pulp3x862V39vectorize6__impl17hf5dff622f4d0faaeE"} !4912 = !{!4913} !4913 = distinct !{!4913, !4914, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !4914 = distinct !{!4914, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !4915 = !{!4916} !4916 = distinct !{!4916, !4914, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !4917 = !{!4918} !4918 = distinct !{!4918, !4914, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !4919 = !{!4913, !4916, !4908, !4910} !4920 = !{!4916, !4918, !4908, !4910} !4921 = !{!4913, !4918, !4908, !4910} !4922 = !{!4923} !4923 = distinct !{!4923, !4924, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !4924 = distinct !{!4924, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !4925 = !{!4926} !4926 = distinct !{!4926, !4924, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !4927 = !{!4928} !4928 = distinct !{!4928, !4924, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !4929 = !{!4923, !4926, !4908, !4910} !4930 = !{!4926, !4928, !4908, !4910} !4931 = !{!4923, !4928, !4908, !4910} !4932 = !{!4933} !4933 = distinct !{!4933, !4934, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab6228bc00a08f73E: %self"} !4934 = distinct !{!4934, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hab6228bc00a08f73E"} !4935 = !{!4936, !4933} !4936 = distinct !{!4936, !4937, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E: %w.0"} !4937 = distinct !{!4937, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E"} !4938 = distinct !{!4938, !21, !22} !4939 = distinct !{!4939, !21, !22} !4940 = distinct !{!4940, !21, !22} !4941 = !{!4942} !4942 = distinct !{!4942, !4943, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he791476a00b05da5E: %self"} !4943 = distinct !{!4943, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he791476a00b05da5E"} !4944 = !{!4945, !4947, !4942} !4945 = distinct !{!4945, !4946, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !4946 = distinct !{!4946, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !4947 = distinct !{!4947, !4948, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E: %w.0"} !4948 = distinct !{!4948, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E"} !4949 = !{!4950} !4950 = distinct !{!4950, !4951, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hea6b943eb9c5516cE: %self"} !4951 = distinct !{!4951, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hea6b943eb9c5516cE"} !4952 = !{!4953, !4950} !4953 = distinct !{!4953, !4954, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !4954 = distinct !{!4954, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !4955 = !{!4956} !4956 = distinct !{!4956, !4957, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81917cb06bf852eaE: %self"} !4957 = distinct !{!4957, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h81917cb06bf852eaE"} !4958 = !{!4959, !4961, !4956} !4959 = distinct !{!4959, !4960, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E: %w.0"} !4960 = distinct !{!4960, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E"} !4961 = distinct !{!4961, !4962, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E: %w.0"} !4962 = distinct !{!4962, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hd1ad343d47f10ac6E"} !4963 = distinct !{!4963, !21, !22} !4964 = distinct !{!4964, !21, !22} !4965 = distinct !{!4965, !21, !22} !4966 = distinct !{!4966, !21, !22} !4967 = distinct !{!4967, !21, !22} !4968 = distinct !{!4968, !21, !22} !4969 = !{!4970} !4970 = distinct !{!4970, !4971, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4f641d2efb6a8fb8E: %self"} !4971 = distinct !{!4971, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4f641d2efb6a8fb8E"} !4972 = distinct !{!4972, !21, !22} !4973 = !{!4974, !4970} !4974 = distinct !{!4974, !4975, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E: %w_init.0"} !4975 = distinct !{!4975, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E"} !4976 = distinct !{!4976, !21, !22} !4977 = distinct !{!4977, !21, !22} !4978 = !{!4979} !4979 = distinct !{!4979, !4980, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d7c59160a352c66E: %self"} !4980 = distinct !{!4980, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d7c59160a352c66E"} !4981 = !{!4982, !4979} !4982 = distinct !{!4982, !4983, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec66254c3d2c2925E: %w_init.0"} !4983 = distinct !{!4983, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec66254c3d2c2925E"} !4984 = distinct !{!4984, !21, !22} !4985 = !{!4986, !4982, !4979} !4986 = distinct !{!4986, !4987, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E: %w_init.0"} !4987 = distinct !{!4987, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E"} !4988 = distinct !{!4988, !21, !22} !4989 = !{!4990, !4982, !4979} !4990 = distinct !{!4990, !4991, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E: %w_init.0"} !4991 = distinct !{!4991, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E"} !4992 = !{!4993, !4995, !4982, !4979} !4993 = distinct !{!4993, !4994, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !4994 = distinct !{!4994, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !4995 = distinct !{!4995, !4996, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE: %w_init.0"} !4996 = distinct !{!4996, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE"} !4997 = !{!4998, !4982, !4979} !4998 = distinct !{!4998, !4999, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !4999 = distinct !{!4999, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !5000 = !{!4995, !4982, !4979} !5001 = distinct !{!5001, !21, !22} !5002 = distinct !{!5002, !21, !22} !5003 = distinct !{!5003, !21, !22} !5004 = !{!5005, !5007} !5005 = distinct !{!5005, !5006, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3bbe3c00d9254eE: %self"} !5006 = distinct !{!5006, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d3bbe3c00d9254eE"} !5007 = distinct !{!5007, !5008, !"_ZN4pulp3x862V39vectorize6__impl17hfe3cb4a54b3da2eeE: %f"} !5008 = distinct !{!5008, !"_ZN4pulp3x862V39vectorize6__impl17hfe3cb4a54b3da2eeE"} !5009 = !{!5010, !5012, !5005, !5007} !5010 = distinct !{!5010, !5011, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE: %w_init.0"} !5011 = distinct !{!5011, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE"} !5012 = distinct !{!5012, !5011, !"_ZN226_$LT$concrete_fft..dit16..Dit16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h856a79b853441e2bE: %w.0"} !5013 = !{!5014} !5014 = distinct !{!5014, !5015, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !5015 = distinct !{!5015, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !5016 = !{!5017} !5017 = distinct !{!5017, !5015, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !5018 = !{!5019} !5019 = distinct !{!5019, !5015, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !5020 = !{!5014, !5017, !5005, !5007} !5021 = !{!5014, !5019, !5005, !5007} !5022 = !{!5017, !5019, !5005, !5007} !5023 = !{!5024, !5026} !5024 = distinct !{!5024, !5025, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h870c5c12dfc12b9fE: %self"} !5025 = distinct !{!5025, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h870c5c12dfc12b9fE"} !5026 = distinct !{!5026, !5027, !"_ZN4pulp3x862V39vectorize6__impl17h00b49cc188c45380E: %f"} !5027 = distinct !{!5027, !"_ZN4pulp3x862V39vectorize6__impl17h00b49cc188c45380E"} !5028 = !{!5029} !5029 = distinct !{!5029, !5030, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !5030 = distinct !{!5030, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !5031 = !{!5032} !5032 = distinct !{!5032, !5030, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !5033 = !{!5034} !5034 = distinct !{!5034, !5030, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !5035 = !{!5032, !5034, !5024, !5026} !5036 = !{!5029, !5032, !5024, !5026} !5037 = !{!5029, !5034, !5024, !5026} !5038 = !{!5039} !5039 = distinct !{!5039, !5040, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h681c14cc3713a305E: %self"} !5040 = distinct !{!5040, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h681c14cc3713a305E"} !5041 = distinct !{!5041, !21, !22} !5042 = distinct !{!5042, !21, !22} !5043 = distinct !{!5043, !21, !22} !5044 = !{!5045} !5045 = distinct !{!5045, !5046, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8f7aaa8069f32e26E: %self"} !5046 = distinct !{!5046, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8f7aaa8069f32e26E"} !5047 = distinct !{!5047, !21, !22} !5048 = distinct !{!5048, !21, !22} !5049 = distinct !{!5049, !21, !22} !5050 = !{!5051} !5051 = distinct !{!5051, !5052, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc5369b50ade302faE: %self"} !5052 = distinct !{!5052, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc5369b50ade302faE"} !5053 = !{!5054, !5051} !5054 = distinct !{!5054, !5055, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !5055 = distinct !{!5055, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !5056 = !{!5057, !5051} !5057 = distinct !{!5057, !5058, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !5058 = distinct !{!5058, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !5059 = !{!5060} !5060 = distinct !{!5060, !5061, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9db63aca6c536c43E: %self"} !5061 = distinct !{!5061, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9db63aca6c536c43E"} !5062 = !{!5063, !5060} !5063 = distinct !{!5063, !5064, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E: %w.0"} !5064 = distinct !{!5064, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E"} !5065 = distinct !{!5065, !21, !22} !5066 = distinct !{!5066, !21, !22} !5067 = distinct !{!5067, !21, !22} !5068 = !{!5069} !5069 = distinct !{!5069, !5070, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc6a1550e1f56a960E: %self"} !5070 = distinct !{!5070, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc6a1550e1f56a960E"} !5071 = distinct !{!5071, !21, !22} !5072 = distinct !{!5072, !21, !22} !5073 = !{!5074, !5076} !5074 = distinct !{!5074, !5075, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb646b42618336878E: %self"} !5075 = distinct !{!5075, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb646b42618336878E"} !5076 = distinct !{!5076, !5077, !"_ZN4pulp3x862V39vectorize6__impl17h4a79dc9b12ae7b7eE: %f"} !5077 = distinct !{!5077, !"_ZN4pulp3x862V39vectorize6__impl17h4a79dc9b12ae7b7eE"} !5078 = !{!5079} !5079 = distinct !{!5079, !5080, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !5080 = distinct !{!5080, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !5081 = !{!5082} !5082 = distinct !{!5082, !5080, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !5083 = !{!5084} !5084 = distinct !{!5084, !5080, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !5085 = !{!5082, !5084, !5074, !5076} !5086 = !{!5079, !5082, !5074, !5076} !5087 = !{!5079, !5084, !5074, !5076} !5088 = !{!5089} !5089 = distinct !{!5089, !5090, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc1eea503a6678e7E: %self"} !5090 = distinct !{!5090, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hfc1eea503a6678e7E"} !5091 = !{!5092, !5089} !5092 = distinct !{!5092, !5093, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h27792322b9550c6eE: %w_init.0"} !5093 = distinct !{!5093, !"_ZN226_$LT$concrete_fft..dif16..Dif16$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h27792322b9550c6eE"} !5094 = distinct !{!5094, !21, !22} !5095 = distinct !{!5095, !21, !22} !5096 = distinct !{!5096, !21, !22} !5097 = !{!5098, !5100} !5098 = distinct !{!5098, !5099, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haebd1e0642612d12E: %self"} !5099 = distinct !{!5099, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haebd1e0642612d12E"} !5100 = distinct !{!5100, !5101, !"_ZN4pulp3x862V39vectorize6__impl17h31df6eef189f99c2E: %f"} !5101 = distinct !{!5101, !"_ZN4pulp3x862V39vectorize6__impl17h31df6eef189f99c2E"} !5102 = !{!5103, !5105, !5098, !5100} !5103 = distinct !{!5103, !5104, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w_init.0"} !5104 = distinct !{!5104, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E"} !5105 = distinct !{!5105, !5104, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w.0"} !5106 = !{!5107} !5107 = distinct !{!5107, !5108, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5108 = distinct !{!5108, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5109 = !{!5110} !5110 = distinct !{!5110, !5108, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5111 = !{!5112, !5110, !5098, !5100} !5112 = distinct !{!5112, !5108, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5113 = !{!5107, !5112, !5098, !5100} !5114 = !{!5115} !5115 = distinct !{!5115, !5116, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !5116 = distinct !{!5116, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !5117 = !{!5118} !5118 = distinct !{!5118, !5116, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !5119 = !{!5115, !5120, !5098, !5100} !5120 = distinct !{!5120, !5116, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !5121 = !{!5120, !5118, !5098, !5100} !5122 = !{!5123, !5125} !5123 = distinct !{!5123, !5124, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66bc4cfc9b192a36E: %self"} !5124 = distinct !{!5124, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h66bc4cfc9b192a36E"} !5125 = distinct !{!5125, !5126, !"_ZN4pulp3x862V39vectorize6__impl17h465ee1b66937e3c7E: %f"} !5126 = distinct !{!5126, !"_ZN4pulp3x862V39vectorize6__impl17h465ee1b66937e3c7E"} !5127 = !{!5128, !5130, !5123, !5125} !5128 = distinct !{!5128, !5129, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !5129 = distinct !{!5129, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !5130 = distinct !{!5130, !5129, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !5131 = !{!5132} !5132 = distinct !{!5132, !5133, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !5133 = distinct !{!5133, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !5134 = !{!5135} !5135 = distinct !{!5135, !5133, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !5136 = !{!5137} !5137 = distinct !{!5137, !5133, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !5138 = !{!5132, !5135, !5123, !5125} !5139 = !{!5132, !5137, !5123, !5125} !5140 = !{!5135, !5137, !5123, !5125} !5141 = !{!5142} !5142 = distinct !{!5142, !5143, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !5143 = distinct !{!5143, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !5144 = !{!5145} !5145 = distinct !{!5145, !5143, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !5146 = !{!5147} !5147 = distinct !{!5147, !5143, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !5148 = !{!5142, !5145, !5123, !5125} !5149 = !{!5142, !5147, !5123, !5125} !5150 = !{!5145, !5147, !5123, !5125} !5151 = !{!5152} !5152 = distinct !{!5152, !5153, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h602bc23c7f2f6befE: %self"} !5153 = distinct !{!5153, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h602bc23c7f2f6befE"} !5154 = distinct !{!5154, !21, !22} !5155 = distinct !{!5155, !21, !22} !5156 = !{!5157} !5157 = distinct !{!5157, !5158, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he3bb9ec940be1afcE: %self"} !5158 = distinct !{!5158, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17he3bb9ec940be1afcE"} !5159 = !{!5160} !5160 = distinct !{!5160, !5161, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4090b796bb028d5aE: %self"} !5161 = distinct !{!5161, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4090b796bb028d5aE"} !5162 = distinct !{!5162, !21, !22} !5163 = distinct !{!5163, !21, !22} !5164 = distinct !{!5164, !21, !22} !5165 = distinct !{!5165, !21, !22} !5166 = distinct !{!5166, !21, !22} !5167 = !{!5168} !5168 = distinct !{!5168, !5169, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha6d549b26c20fc8eE: %self"} !5169 = distinct !{!5169, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha6d549b26c20fc8eE"} !5170 = !{!5171, !5168} !5171 = distinct !{!5171, !5172, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E: %w_init.0"} !5172 = distinct !{!5172, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E"} !5173 = !{!5174, !5176} !5174 = distinct !{!5174, !5175, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hcd7b139735ac0685E: %self"} !5175 = distinct !{!5175, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hcd7b139735ac0685E"} !5176 = distinct !{!5176, !5177, !"_ZN4pulp3x862V39vectorize6__impl17h65a1dd76a5e5494bE: %f"} !5177 = distinct !{!5177, !"_ZN4pulp3x862V39vectorize6__impl17h65a1dd76a5e5494bE"} !5178 = !{!5179} !5179 = distinct !{!5179, !5180, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !5180 = distinct !{!5180, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !5181 = !{!5182} !5182 = distinct !{!5182, !5180, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !5183 = !{!5184} !5184 = distinct !{!5184, !5180, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !5185 = !{!5182, !5184, !5174, !5176} !5186 = !{!5179, !5182, !5174, !5176} !5187 = !{!5179, !5184, !5174, !5176} !5188 = !{!5189, !5191} !5189 = distinct !{!5189, !5190, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf746fcb80c8230dfE: %self"} !5190 = distinct !{!5190, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hf746fcb80c8230dfE"} !5191 = distinct !{!5191, !5192, !"_ZN4pulp3x862V39vectorize6__impl17h2c1bdbb7ebe1d1a4E: %f"} !5192 = distinct !{!5192, !"_ZN4pulp3x862V39vectorize6__impl17h2c1bdbb7ebe1d1a4E"} !5193 = !{!5194} !5194 = distinct !{!5194, !5195, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !5195 = distinct !{!5195, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !5196 = !{!5197} !5197 = distinct !{!5197, !5195, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !5198 = !{!5199} !5199 = distinct !{!5199, !5195, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !5200 = !{!5194, !5197, !5189, !5191} !5201 = !{!5197, !5199, !5189, !5191} !5202 = !{!5194, !5199, !5189, !5191} !5203 = !{!5204} !5204 = distinct !{!5204, !5205, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !5205 = distinct !{!5205, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !5206 = !{!5207} !5207 = distinct !{!5207, !5205, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !5208 = !{!5209} !5209 = distinct !{!5209, !5205, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !5210 = !{!5204, !5207, !5189, !5191} !5211 = !{!5207, !5209, !5189, !5191} !5212 = !{!5204, !5209, !5189, !5191} !5213 = !{!5214} !5214 = distinct !{!5214, !5215, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !5215 = distinct !{!5215, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !5216 = !{!5217} !5217 = distinct !{!5217, !5215, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !5218 = !{!5219} !5219 = distinct !{!5219, !5215, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !5220 = !{!5214, !5217, !5189, !5191} !5221 = !{!5217, !5219, !5189, !5191} !5222 = !{!5214, !5219, !5189, !5191} !5223 = !{!5224} !5224 = distinct !{!5224, !5225, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !5225 = distinct !{!5225, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !5226 = !{!5227} !5227 = distinct !{!5227, !5225, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !5228 = !{!5229} !5229 = distinct !{!5229, !5225, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !5230 = !{!5224, !5227, !5189, !5191} !5231 = !{!5227, !5229, !5189, !5191} !5232 = !{!5224, !5229, !5189, !5191} !5233 = !{!5234, !5236} !5234 = distinct !{!5234, !5235, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4385e076c41213a0E: %self"} !5235 = distinct !{!5235, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4385e076c41213a0E"} !5236 = distinct !{!5236, !5237, !"_ZN4pulp3x862V39vectorize6__impl17h63631257781517cfE: %f"} !5237 = distinct !{!5237, !"_ZN4pulp3x862V39vectorize6__impl17h63631257781517cfE"} !5238 = !{!5239} !5239 = distinct !{!5239, !5240, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !5240 = distinct !{!5240, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !5241 = !{!5242} !5242 = distinct !{!5242, !5240, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !5243 = !{!5244} !5244 = distinct !{!5244, !5240, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !5245 = !{!5242, !5244, !5234, !5236} !5246 = !{!5239, !5242, !5234, !5236} !5247 = !{!5239, !5244, !5234, !5236} !5248 = !{!5249} !5249 = distinct !{!5249, !5250, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9626e8d008602f44E: %self"} !5250 = distinct !{!5250, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9626e8d008602f44E"} !5251 = !{!5252, !5249} !5252 = distinct !{!5252, !5253, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE: %w.0"} !5253 = distinct !{!5253, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE"} !5254 = !{!5255} !5255 = distinct !{!5255, !5256, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276261ebc11e24efE: %self"} !5256 = distinct !{!5256, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h276261ebc11e24efE"} !5257 = !{!5258, !5260} !5258 = distinct !{!5258, !5259, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h812f84688ab971b7E: %self"} !5259 = distinct !{!5259, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h812f84688ab971b7E"} !5260 = distinct !{!5260, !5261, !"_ZN4pulp3x862V39vectorize6__impl17h6d5810ef1ea96493E: %f"} !5261 = distinct !{!5261, !"_ZN4pulp3x862V39vectorize6__impl17h6d5810ef1ea96493E"} !5262 = !{!5263} !5263 = distinct !{!5263, !5264, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !5264 = distinct !{!5264, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !5265 = !{!5266} !5266 = distinct !{!5266, !5264, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !5267 = !{!5268} !5268 = distinct !{!5268, !5264, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !5269 = !{!5263, !5266, !5258, !5260} !5270 = !{!5266, !5268, !5258, !5260} !5271 = !{!5263, !5268, !5258, !5260} !5272 = !{!5273} !5273 = distinct !{!5273, !5274, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd97e29127c588bdcE: %self"} !5274 = distinct !{!5274, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd97e29127c588bdcE"} !5275 = distinct !{!5275, !21, !22} !5276 = distinct !{!5276, !21, !22} !5277 = distinct !{!5277, !21, !22} !5278 = !{!5279} !5279 = distinct !{!5279, !5280, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h827cd0313eb2b082E: %self"} !5280 = distinct !{!5280, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h827cd0313eb2b082E"} !5281 = !{!5282} !5282 = distinct !{!5282, !5283, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb9f9f73025ee6c01E: %self"} !5283 = distinct !{!5283, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb9f9f73025ee6c01E"} !5284 = !{!5285, !5282} !5285 = distinct !{!5285, !5286, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE: %w.0"} !5286 = distinct !{!5286, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h549eb02e3ba46d7eE"} !5287 = distinct !{!5287, !21, !22} !5288 = distinct !{!5288, !21, !22} !5289 = distinct !{!5289, !21, !22} !5290 = distinct !{!5290, !21, !22} !5291 = !{!5292} !5292 = distinct !{!5292, !5293, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cffd88972bbb2bbE: %self"} !5293 = distinct !{!5293, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1cffd88972bbb2bbE"} !5294 = !{!5295, !5292} !5295 = distinct !{!5295, !5296, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h43f79bd8363741acE: %w_init.0"} !5296 = distinct !{!5296, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h43f79bd8363741acE"} !5297 = distinct !{!5297, !21, !22} !5298 = distinct !{!5298, !21, !22} !5299 = !{!5300, !5292} !5300 = distinct !{!5300, !5301, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E: %w_init.0"} !5301 = distinct !{!5301, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E"} !5302 = distinct !{!5302, !21, !22} !5303 = distinct !{!5303, !21, !22} !5304 = !{!5305, !5307} !5305 = distinct !{!5305, !5306, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbce57d3d54978c75E: %self"} !5306 = distinct !{!5306, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbce57d3d54978c75E"} !5307 = distinct !{!5307, !5308, !"_ZN4pulp3x862V39vectorize6__impl17h8a056132390bbdbdE: %f"} !5308 = distinct !{!5308, !"_ZN4pulp3x862V39vectorize6__impl17h8a056132390bbdbdE"} !5309 = !{!5310} !5310 = distinct !{!5310, !5311, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !5311 = distinct !{!5311, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !5312 = !{!5313} !5313 = distinct !{!5313, !5311, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !5314 = !{!5315} !5315 = distinct !{!5315, !5311, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !5316 = !{!5313, !5315, !5305, !5307} !5317 = !{!5310, !5313, !5305, !5307} !5318 = !{!5310, !5315, !5305, !5307} !5319 = !{!5320} !5320 = distinct !{!5320, !5321, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h697ff29f6e66df68E: %self"} !5321 = distinct !{!5321, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h697ff29f6e66df68E"} !5322 = !{!5323} !5323 = distinct !{!5323, !5324, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8db98e7fdac22727E: %self"} !5324 = distinct !{!5324, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8db98e7fdac22727E"} !5325 = !{!5326} !5326 = distinct !{!5326, !5327, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f425dc3b8ed5791E: %self"} !5327 = distinct !{!5327, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5f425dc3b8ed5791E"} !5328 = !{!5329, !5326} !5329 = distinct !{!5329, !5330, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE: %w.0"} !5330 = distinct !{!5330, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9cfa6121f931ebabE"} !5331 = !{!5332, !5334} !5332 = distinct !{!5332, !5333, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h28af729c642de060E: %self"} !5333 = distinct !{!5333, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h28af729c642de060E"} !5334 = distinct !{!5334, !5335, !"_ZN4pulp3x862V39vectorize6__impl17h79884735fd752401E: %f"} !5335 = distinct !{!5335, !"_ZN4pulp3x862V39vectorize6__impl17h79884735fd752401E"} !5336 = !{!5337} !5337 = distinct !{!5337, !5338, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5338 = distinct !{!5338, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5339 = !{!5340} !5340 = distinct !{!5340, !5338, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5341 = !{!5337, !5342, !5332, !5334} !5342 = distinct !{!5342, !5338, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5343 = !{!5342, !5340, !5332, !5334} !5344 = !{!5345} !5345 = distinct !{!5345, !5346, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !5346 = distinct !{!5346, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !5347 = !{!5348} !5348 = distinct !{!5348, !5346, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !5349 = !{!5345, !5350, !5332, !5334} !5350 = distinct !{!5350, !5346, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !5351 = !{!5350, !5348, !5332, !5334} !5352 = !{!5353} !5353 = distinct !{!5353, !5354, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h083e981ab7047bdaE: %self"} !5354 = distinct !{!5354, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h083e981ab7047bdaE"} !5355 = distinct !{!5355, !21, !22} !5356 = distinct !{!5356, !21, !22} !5357 = !{!5358} !5358 = distinct !{!5358, !5359, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d2cf2d9cd09788eE: %self"} !5359 = distinct !{!5359, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h9d2cf2d9cd09788eE"} !5360 = !{!5361, !5358} !5361 = distinct !{!5361, !5362, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE: %w.0"} !5362 = distinct !{!5362, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE"} !5363 = distinct !{!5363, !21, !22} !5364 = distinct !{!5364, !21, !22} !5365 = distinct !{!5365, !21, !22} !5366 = !{!5367, !5369} !5367 = distinct !{!5367, !5368, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d2fcfc2e841281E: %self"} !5368 = distinct !{!5368, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd9d2fcfc2e841281E"} !5369 = distinct !{!5369, !5370, !"_ZN4pulp3x862V39vectorize6__impl17he0455c40f7cf3a64E: %f"} !5370 = distinct !{!5370, !"_ZN4pulp3x862V39vectorize6__impl17he0455c40f7cf3a64E"} !5371 = !{!5372} !5372 = distinct !{!5372, !5373, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !5373 = distinct !{!5373, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !5374 = !{!5375} !5375 = distinct !{!5375, !5373, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !5376 = !{!5377} !5377 = distinct !{!5377, !5373, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !5378 = !{!5375, !5377, !5367, !5369} !5379 = !{!5372, !5375, !5367, !5369} !5380 = !{!5372, !5377, !5367, !5369} !5381 = !{!5382, !5384} !5382 = distinct !{!5382, !5383, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb84daf5b3938a87cE: %self"} !5383 = distinct !{!5383, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb84daf5b3938a87cE"} !5384 = distinct !{!5384, !5385, !"_ZN4pulp3x862V39vectorize6__impl17h63513bac15f671b2E: %f"} !5385 = distinct !{!5385, !"_ZN4pulp3x862V39vectorize6__impl17h63513bac15f671b2E"} !5386 = !{!5387} !5387 = distinct !{!5387, !5388, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !5388 = distinct !{!5388, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !5389 = !{!5390} !5390 = distinct !{!5390, !5388, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !5391 = !{!5392} !5392 = distinct !{!5392, !5388, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !5393 = !{!5390, !5392, !5382, !5384} !5394 = !{!5387, !5390, !5382, !5384} !5395 = !{!5387, !5392, !5382, !5384} !5396 = !{!5397} !5397 = distinct !{!5397, !5398, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !5398 = distinct !{!5398, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !5399 = !{!5400} !5400 = distinct !{!5400, !5398, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !5401 = !{!5402} !5402 = distinct !{!5402, !5398, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !5403 = !{!5397, !5400, !5382, !5384} !5404 = !{!5400, !5402, !5382, !5384} !5405 = !{!5397, !5402, !5382, !5384} !5406 = !{!5407} !5407 = distinct !{!5407, !5408, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h80cad53a10a151acE: %self"} !5408 = distinct !{!5408, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h80cad53a10a151acE"} !5409 = distinct !{!5409, !21, !22} !5410 = !{!5411, !5407} !5411 = distinct !{!5411, !5412, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E: %w_init.0"} !5412 = distinct !{!5412, !"_ZN152_$LT$concrete_fft..dif4..Dif4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h025ea2823e70d736E"} !5413 = distinct !{!5413, !21, !22} !5414 = distinct !{!5414, !21, !22} !5415 = !{!5416} !5416 = distinct !{!5416, !5417, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb5559594a5e99741E: %self"} !5417 = distinct !{!5417, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb5559594a5e99741E"} !5418 = !{!5419} !5419 = distinct !{!5419, !5420, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83837a445f6e7f6E: %self"} !5420 = distinct !{!5420, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17ha83837a445f6e7f6E"} !5421 = !{!5422, !5419} !5422 = distinct !{!5422, !5423, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E: %w_init.0"} !5423 = distinct !{!5423, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1d4b217247be6156E"} !5424 = distinct !{!5424, !21, !22} !5425 = !{!5426, !5419} !5426 = distinct !{!5426, !5427, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E: %w_init.0"} !5427 = distinct !{!5427, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h9920e3325f9aacb0E"} !5428 = distinct !{!5428, !21, !22} !5429 = !{!5430, !5419} !5430 = distinct !{!5430, !5431, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE: %w_init.0"} !5431 = distinct !{!5431, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha9c2c38d00a9b58cE"} !5432 = !{!5433, !5419} !5433 = distinct !{!5433, !5434, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E: %w_init.0"} !5434 = distinct !{!5434, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb96a0ac1ce1c0f57E"} !5435 = !{!5436, !5430, !5419} !5436 = distinct !{!5436, !5437, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E: %w_init.0"} !5437 = distinct !{!5437, !"_ZN116_$LT$concrete_fft..dif2..Dif2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h045a430bc8e9f751E"} !5438 = distinct !{!5438, !21, !22} !5439 = !{!5440} !5440 = distinct !{!5440, !5441, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h411f213ea0c82441E: %self"} !5441 = distinct !{!5441, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h411f213ea0c82441E"} !5442 = !{!5443, !5440} !5443 = distinct !{!5443, !5444, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E: %w.0"} !5444 = distinct !{!5444, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hb6b416d05cd02de1E"} !5445 = !{!5446, !5448} !5446 = distinct !{!5446, !5447, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hecc515fa6a7c4bd4E: %self"} !5447 = distinct !{!5447, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hecc515fa6a7c4bd4E"} !5448 = distinct !{!5448, !5449, !"_ZN4pulp3x862V39vectorize6__impl17h9fe2b7520b7babe0E: %f"} !5449 = distinct !{!5449, !"_ZN4pulp3x862V39vectorize6__impl17h9fe2b7520b7babe0E"} !5450 = !{!5451, !5453, !5446, !5448} !5451 = distinct !{!5451, !5452, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !5452 = distinct !{!5452, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !5453 = distinct !{!5453, !5452, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !5454 = !{!5455} !5455 = distinct !{!5455, !5456, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !5456 = distinct !{!5456, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !5457 = !{!5458} !5458 = distinct !{!5458, !5456, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !5459 = !{!5455, !5460, !5446, !5448} !5460 = distinct !{!5460, !5456, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !5461 = !{!5460, !5458, !5446, !5448} !5462 = !{!5463} !5463 = distinct !{!5463, !5464, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h303a84c6cf53c16aE: %self"} !5464 = distinct !{!5464, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h303a84c6cf53c16aE"} !5465 = distinct !{!5465, !21, !22} !5466 = distinct !{!5466, !21, !22} !5467 = distinct !{!5467, !21, !22} !5468 = !{!5469, !5471} !5469 = distinct !{!5469, !5470, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h92b1eaee3e49a90eE: %self"} !5470 = distinct !{!5470, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h92b1eaee3e49a90eE"} !5471 = distinct !{!5471, !5472, !"_ZN4pulp3x862V39vectorize6__impl17hb0b0ec52a5c1156dE: %f"} !5472 = distinct !{!5472, !"_ZN4pulp3x862V39vectorize6__impl17hb0b0ec52a5c1156dE"} !5473 = !{!5474} !5474 = distinct !{!5474, !5475, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !5475 = distinct !{!5475, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !5476 = !{!5477} !5477 = distinct !{!5477, !5475, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !5478 = !{!5479} !5479 = distinct !{!5479, !5475, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !5480 = !{!5477, !5479, !5469, !5471} !5481 = !{!5474, !5477, !5469, !5471} !5482 = !{!5474, !5479, !5469, !5471} !5483 = !{!5484, !5486} !5484 = distinct !{!5484, !5485, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h35afb684d75f7c2dE: %self"} !5485 = distinct !{!5485, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h35afb684d75f7c2dE"} !5486 = distinct !{!5486, !5487, !"_ZN4pulp3x862V39vectorize6__impl17hf562486948d9b48eE: %f"} !5487 = distinct !{!5487, !"_ZN4pulp3x862V39vectorize6__impl17hf562486948d9b48eE"} !5488 = !{!5489} !5489 = distinct !{!5489, !5490, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %x.0"} !5490 = distinct !{!5490, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE"} !5491 = !{!5492} !5492 = distinct !{!5492, !5490, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %y.0"} !5493 = !{!5494} !5494 = distinct !{!5494, !5490, !"_ZN12concrete_fft5dit1621stockham_core_generic17h91af5c8311d148caE: %w.0"} !5495 = !{!5489, !5492, !5484, !5486} !5496 = !{!5489, !5494, !5484, !5486} !5497 = !{!5492, !5494, !5484, !5486} !5498 = !{!5499} !5499 = distinct !{!5499, !5500, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %x.0"} !5500 = distinct !{!5500, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE"} !5501 = !{!5502} !5502 = distinct !{!5502, !5500, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %y.0"} !5503 = !{!5504} !5504 = distinct !{!5504, !5500, !"_ZN12concrete_fft5dit1617stockham_core_1x217hbcd6506990e0e0efE: %w_init.0"} !5505 = !{!5499, !5502, !5484, !5486} !5506 = !{!5499, !5504, !5484, !5486} !5507 = !{!5502, !5504, !5484, !5486} !5508 = !{!5509, !5511} !5509 = distinct !{!5509, !5510, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h72516d9913b34c01E: %self"} !5510 = distinct !{!5510, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h72516d9913b34c01E"} !5511 = distinct !{!5511, !5512, !"_ZN4pulp3x862V39vectorize6__impl17h5cf070537c688668E: %f"} !5512 = distinct !{!5512, !"_ZN4pulp3x862V39vectorize6__impl17h5cf070537c688668E"} !5513 = !{!5514, !5516, !5509, !5511} !5514 = distinct !{!5514, !5515, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w_init.0"} !5515 = distinct !{!5515, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E"} !5516 = distinct !{!5516, !5515, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w.0"} !5517 = !{!5518} !5518 = distinct !{!5518, !5519, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !5519 = distinct !{!5519, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !5520 = !{!5521} !5521 = distinct !{!5521, !5519, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !5522 = !{!5518, !5523, !5509, !5511} !5523 = distinct !{!5523, !5519, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !5524 = !{!5523, !5521, !5509, !5511} !5525 = !{!5526} !5526 = distinct !{!5526, !5527, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b7f02898b452865E: %self"} !5527 = distinct !{!5527, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3b7f02898b452865E"} !5528 = distinct !{!5528, !21, !22} !5529 = distinct !{!5529, !21, !22} !5530 = distinct !{!5530, !21, !22} !5531 = !{!5532, !5534} !5532 = distinct !{!5532, !5533, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8558fa0df430fce1E: %self"} !5533 = distinct !{!5533, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h8558fa0df430fce1E"} !5534 = distinct !{!5534, !5535, !"_ZN4pulp3x862V39vectorize6__impl17h00f3506c41e4aa0bE: %f"} !5535 = distinct !{!5535, !"_ZN4pulp3x862V39vectorize6__impl17h00f3506c41e4aa0bE"} !5536 = !{!5537, !5539, !5532, !5534} !5537 = distinct !{!5537, !5538, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w_init.0"} !5538 = distinct !{!5538, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE"} !5539 = distinct !{!5539, !5538, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hec387c0da30dc2cdE: %w.0"} !5540 = !{!5541} !5541 = distinct !{!5541, !5542, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !5542 = distinct !{!5542, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !5543 = !{!5544} !5544 = distinct !{!5544, !5542, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !5545 = !{!5546} !5546 = distinct !{!5546, !5542, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !5547 = !{!5541, !5544, !5532, !5534} !5548 = !{!5541, !5546, !5532, !5534} !5549 = !{!5544, !5546, !5532, !5534} !5550 = !{!5551} !5551 = distinct !{!5551, !5552, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !5552 = distinct !{!5552, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !5553 = !{!5554} !5554 = distinct !{!5554, !5552, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !5555 = !{!5556} !5556 = distinct !{!5556, !5552, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !5557 = !{!5551, !5554, !5532, !5534} !5558 = !{!5551, !5556, !5532, !5534} !5559 = !{!5554, !5556, !5532, !5534} !5560 = !{!5561} !5561 = distinct !{!5561, !5562, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %x.0"} !5562 = distinct !{!5562, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE"} !5563 = !{!5564} !5564 = distinct !{!5564, !5562, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %y.0"} !5565 = !{!5566} !5566 = distinct !{!5566, !5562, !"_ZN12concrete_fft4dit421stockham_core_generic17ha86ce4e5a714c74fE: %w.0"} !5567 = !{!5561, !5564, !5532, !5534} !5568 = !{!5561, !5566, !5532, !5534} !5569 = !{!5564, !5566, !5532, !5534} !5570 = !{!5571} !5571 = distinct !{!5571, !5572, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %x.0"} !5572 = distinct !{!5572, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E"} !5573 = !{!5574} !5574 = distinct !{!5574, !5572, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %y.0"} !5575 = !{!5576} !5576 = distinct !{!5576, !5572, !"_ZN12concrete_fft4dit417stockham_core_1x217h4839e913c62222b7E: %w_init.0"} !5577 = !{!5571, !5574, !5532, !5534} !5578 = !{!5571, !5576, !5532, !5534} !5579 = !{!5574, !5576, !5532, !5534} !5580 = !{!5581, !5583} !5581 = distinct !{!5581, !5582, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4bdbc4ca68c5e24cE: %self"} !5582 = distinct !{!5582, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h4bdbc4ca68c5e24cE"} !5583 = distinct !{!5583, !5584, !"_ZN4pulp3x862V39vectorize6__impl17h41d5a7603d62d529E: %f"} !5584 = distinct !{!5584, !"_ZN4pulp3x862V39vectorize6__impl17h41d5a7603d62d529E"} !5585 = !{!5586} !5586 = distinct !{!5586, !5587, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !5587 = distinct !{!5587, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !5588 = !{!5589} !5589 = distinct !{!5589, !5587, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !5590 = !{!5591} !5591 = distinct !{!5591, !5587, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !5592 = !{!5589, !5591, !5581, !5583} !5593 = !{!5586, !5589, !5581, !5583} !5594 = !{!5586, !5591, !5581, !5583} !5595 = !{!5596} !5596 = distinct !{!5596, !5597, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5597 = distinct !{!5597, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5598 = !{!5599} !5599 = distinct !{!5599, !5597, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5600 = !{!5601} !5601 = distinct !{!5601, !5597, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5602 = !{!5596, !5599, !5581, !5583} !5603 = !{!5599, !5601, !5581, !5583} !5604 = !{!5596, !5601, !5581, !5583} !5605 = !{!5606} !5606 = distinct !{!5606, !5607, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5607 = distinct !{!5607, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5608 = !{!5609} !5609 = distinct !{!5609, !5607, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5610 = !{!5611} !5611 = distinct !{!5611, !5607, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5612 = !{!5606, !5609, !5581, !5583} !5613 = !{!5609, !5611, !5581, !5583} !5614 = !{!5606, !5611, !5581, !5583} !5615 = !{!5616} !5616 = distinct !{!5616, !5617, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5617 = distinct !{!5617, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5618 = !{!5619} !5619 = distinct !{!5619, !5617, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5620 = !{!5621} !5621 = distinct !{!5621, !5617, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5622 = !{!5616, !5619, !5581, !5583} !5623 = !{!5619, !5621, !5581, !5583} !5624 = !{!5616, !5621, !5581, !5583} !5625 = !{!5626} !5626 = distinct !{!5626, !5627, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5627 = distinct !{!5627, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5628 = !{!5629} !5629 = distinct !{!5629, !5627, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5630 = !{!5631} !5631 = distinct !{!5631, !5627, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5632 = !{!5626, !5629, !5581, !5583} !5633 = !{!5629, !5631, !5581, !5583} !5634 = !{!5626, !5631, !5581, !5583} !5635 = !{!5636} !5636 = distinct !{!5636, !5637, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5637 = distinct !{!5637, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5638 = !{!5639} !5639 = distinct !{!5639, !5637, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5640 = !{!5641} !5641 = distinct !{!5641, !5637, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5642 = !{!5636, !5639, !5581, !5583} !5643 = !{!5639, !5641, !5581, !5583} !5644 = !{!5636, !5641, !5581, !5583} !5645 = !{!5646} !5646 = distinct !{!5646, !5647, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5647 = distinct !{!5647, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5648 = !{!5649} !5649 = distinct !{!5649, !5647, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5650 = !{!5651} !5651 = distinct !{!5651, !5647, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5652 = !{!5646, !5649, !5581, !5583} !5653 = !{!5649, !5651, !5581, !5583} !5654 = !{!5646, !5651, !5581, !5583} !5655 = !{!5656} !5656 = distinct !{!5656, !5657, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E: %self"} !5657 = distinct !{!5657, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hdd1eeacdafc163f5E"} !5658 = !{!5659, !5656} !5659 = distinct !{!5659, !5660, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE: %w.0"} !5660 = distinct !{!5660, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h676fe6f5bd74f12eE"} !5661 = distinct !{!5661, !21, !22} !5662 = !{!5663, !5665} !5663 = distinct !{!5663, !5664, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc4bc2f2d05e77492E: %self"} !5664 = distinct !{!5664, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc4bc2f2d05e77492E"} !5665 = distinct !{!5665, !5666, !"_ZN4pulp3x862V39vectorize6__impl17he8930741207810c2E: %f"} !5666 = distinct !{!5666, !"_ZN4pulp3x862V39vectorize6__impl17he8930741207810c2E"} !5667 = !{!5668, !5670, !5663, !5665} !5668 = distinct !{!5668, !5669, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w_init.0"} !5669 = distinct !{!5669, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE"} !5670 = distinct !{!5670, !5669, !"_ZN188_$LT$concrete_fft..dit8..Dit8$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17hc984218580dd2b2cE: %w.0"} !5671 = !{!5672} !5672 = distinct !{!5672, !5673, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %x.0"} !5673 = distinct !{!5673, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E"} !5674 = !{!5675} !5675 = distinct !{!5675, !5673, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %y.0"} !5676 = !{!5677} !5677 = distinct !{!5677, !5673, !"_ZN12concrete_fft4dit817stockham_core_1x217h80f14a2d01459b59E: %w_init.0"} !5678 = !{!5672, !5675, !5663, !5665} !5679 = !{!5672, !5677, !5663, !5665} !5680 = !{!5675, !5677, !5663, !5665} !5681 = !{!5682, !5684} !5682 = distinct !{!5682, !5683, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h028efe583df79011E: %self"} !5683 = distinct !{!5683, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h028efe583df79011E"} !5684 = distinct !{!5684, !5685, !"_ZN4pulp3x862V39vectorize6__impl17h7c15aac03eda2aecE: %f"} !5685 = distinct !{!5685, !"_ZN4pulp3x862V39vectorize6__impl17h7c15aac03eda2aecE"} !5686 = !{!5687} !5687 = distinct !{!5687, !5688, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !5688 = distinct !{!5688, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !5689 = !{!5690} !5690 = distinct !{!5690, !5688, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !5691 = !{!5692} !5692 = distinct !{!5692, !5688, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !5693 = !{!5690, !5692, !5682, !5684} !5694 = !{!5687, !5690, !5682, !5684} !5695 = !{!5687, !5692, !5682, !5684} !5696 = !{!5697, !5699} !5697 = distinct !{!5697, !5698, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeaa6233d31c234bE: %self"} !5698 = distinct !{!5698, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hbeaa6233d31c234bE"} !5699 = distinct !{!5699, !5700, !"_ZN4pulp3x862V39vectorize6__impl17hf8b843b75df1d5b2E: %f"} !5700 = distinct !{!5700, !"_ZN4pulp3x862V39vectorize6__impl17hf8b843b75df1d5b2E"} !5701 = !{!5702} !5702 = distinct !{!5702, !5703, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !5703 = distinct !{!5703, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !5704 = !{!5705} !5705 = distinct !{!5705, !5703, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !5706 = !{!5707} !5707 = distinct !{!5707, !5703, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !5708 = !{!5705, !5707, !5697, !5699} !5709 = !{!5702, !5705, !5697, !5699} !5710 = !{!5702, !5707, !5697, !5699} !5711 = !{!5712} !5712 = distinct !{!5712, !5713, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !5713 = distinct !{!5713, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !5714 = !{!5715} !5715 = distinct !{!5715, !5713, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !5716 = !{!5717} !5717 = distinct !{!5717, !5713, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !5718 = !{!5712, !5715, !5697, !5699} !5719 = !{!5715, !5717, !5697, !5699} !5720 = !{!5712, !5717, !5697, !5699} !5721 = !{!5722, !5724} !5722 = distinct !{!5722, !5723, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7dd8608a2d7b11aE: %self"} !5723 = distinct !{!5723, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hc7dd8608a2d7b11aE"} !5724 = distinct !{!5724, !5725, !"_ZN4pulp3x862V39vectorize6__impl17he4b32a8a14b20eedE: %f"} !5725 = distinct !{!5725, !"_ZN4pulp3x862V39vectorize6__impl17he4b32a8a14b20eedE"} !5726 = !{!5727} !5727 = distinct !{!5727, !5728, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %x.0"} !5728 = distinct !{!5728, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE"} !5729 = !{!5730} !5730 = distinct !{!5730, !5728, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %y.0"} !5731 = !{!5732} !5732 = distinct !{!5732, !5728, !"_ZN12concrete_fft4dif817stockham_core_1x217h1e2e48e54131e70eE: %w_init.0"} !5733 = !{!5730, !5732, !5722, !5724} !5734 = !{!5727, !5730, !5722, !5724} !5735 = !{!5727, !5732, !5722, !5724} !5736 = !{!5737} !5737 = distinct !{!5737, !5738, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %x.0"} !5738 = distinct !{!5738, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E"} !5739 = !{!5740} !5740 = distinct !{!5740, !5738, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %y.0"} !5741 = !{!5742} !5742 = distinct !{!5742, !5738, !"_ZN12concrete_fft4dif821stockham_core_generic17hcd21aaa53043e4b9E: %w.0"} !5743 = !{!5737, !5740, !5722, !5724} !5744 = !{!5740, !5742, !5722, !5724} !5745 = !{!5737, !5742, !5722, !5724} !5746 = !{!5747} !5747 = distinct !{!5747, !5748, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85cc0df8e6080c4cE: %self"} !5748 = distinct !{!5748, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h85cc0df8e6080c4cE"} !5749 = !{!5750, !5752} !5750 = distinct !{!5750, !5751, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf194373e615f94E: %self"} !5751 = distinct !{!5751, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hccf194373e615f94E"} !5752 = distinct !{!5752, !5753, !"_ZN4pulp3x862V39vectorize6__impl17h235d87eb0a350715E: %f"} !5753 = distinct !{!5753, !"_ZN4pulp3x862V39vectorize6__impl17h235d87eb0a350715E"} !5754 = !{!5755} !5755 = distinct !{!5755, !5756, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %x.0"} !5756 = distinct !{!5756, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E"} !5757 = !{!5758} !5758 = distinct !{!5758, !5756, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %y.0"} !5759 = !{!5760} !5760 = distinct !{!5760, !5756, !"_ZN12concrete_fft4dif217stockham_core_1x217h641b72d4f73917a6E: %w_init.0"} !5761 = !{!5758, !5760, !5750, !5752} !5762 = !{!5755, !5758, !5750, !5752} !5763 = !{!5755, !5760, !5750, !5752} !5764 = !{!5765} !5765 = distinct !{!5765, !5766, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5766 = distinct !{!5766, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5767 = !{!5768} !5768 = distinct !{!5768, !5766, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5769 = !{!5770} !5770 = distinct !{!5770, !5766, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5771 = !{!5765, !5768, !5750, !5752} !5772 = !{!5768, !5770, !5750, !5752} !5773 = !{!5765, !5770, !5750, !5752} !5774 = !{!5775} !5775 = distinct !{!5775, !5776, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5776 = distinct !{!5776, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5777 = !{!5778} !5778 = distinct !{!5778, !5776, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5779 = !{!5780} !5780 = distinct !{!5780, !5776, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5781 = !{!5775, !5778, !5750, !5752} !5782 = !{!5778, !5780, !5750, !5752} !5783 = !{!5775, !5780, !5750, !5752} !5784 = !{!5785} !5785 = distinct !{!5785, !5786, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5786 = distinct !{!5786, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5787 = !{!5788} !5788 = distinct !{!5788, !5786, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5789 = !{!5790} !5790 = distinct !{!5790, !5786, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5791 = !{!5785, !5788, !5750, !5752} !5792 = !{!5788, !5790, !5750, !5752} !5793 = !{!5785, !5790, !5750, !5752} !5794 = !{!5795} !5795 = distinct !{!5795, !5796, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5796 = distinct !{!5796, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5797 = !{!5798} !5798 = distinct !{!5798, !5796, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5799 = !{!5800} !5800 = distinct !{!5800, !5796, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5801 = !{!5795, !5798, !5750, !5752} !5802 = !{!5798, !5800, !5750, !5752} !5803 = !{!5795, !5800, !5750, !5752} !5804 = !{!5805} !5805 = distinct !{!5805, !5806, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %x.0"} !5806 = distinct !{!5806, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE"} !5807 = !{!5808} !5808 = distinct !{!5808, !5806, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %y.0"} !5809 = !{!5810} !5810 = distinct !{!5810, !5806, !"_ZN12concrete_fft4dif221stockham_core_generic17hffe2831dca7928daE: %w.0"} !5811 = !{!5805, !5808, !5750, !5752} !5812 = !{!5808, !5810, !5750, !5752} !5813 = !{!5805, !5810, !5750, !5752} !5814 = !{!5815} !5815 = distinct !{!5815, !5816, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haffcec96b3c36ce7E: %self"} !5816 = distinct !{!5816, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17haffcec96b3c36ce7E"} !5817 = distinct !{!5817, !21, !22} !5818 = distinct !{!5818, !21, !22} !5819 = !{!5820} !5820 = distinct !{!5820, !5821, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2cc712f772be0bf9E: %self"} !5821 = distinct !{!5821, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2cc712f772be0bf9E"} !5822 = !{!5823, !5825, !5820} !5823 = distinct !{!5823, !5824, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE: %w.0"} !5824 = distinct !{!5824, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h2c5f2e01cf34ce6bE"} !5825 = distinct !{!5825, !5826, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E: %w.0"} !5826 = distinct !{!5826, !"_ZN152_$LT$concrete_fft..dit4..Dit4$LT$concrete_fft..nat..Successor$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17had5e354413e75d01E"} !5827 = distinct !{!5827, !21, !22} !5828 = distinct !{!5828, !21, !22} !5829 = distinct !{!5829, !21, !22} !5830 = !{!5831, !5833} !5831 = distinct !{!5831, !5832, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd06d218d598bfe5aE: %self"} !5832 = distinct !{!5832, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hd06d218d598bfe5aE"} !5833 = distinct !{!5833, !5834, !"_ZN4pulp3x862V39vectorize6__impl17ha81d97481a669378E: %f"} !5834 = distinct !{!5834, !"_ZN4pulp3x862V39vectorize6__impl17ha81d97481a669378E"} !5835 = !{!5836} !5836 = distinct !{!5836, !5837, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5837 = distinct !{!5837, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5838 = !{!5839} !5839 = distinct !{!5839, !5837, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5840 = !{!5836, !5841, !5831, !5833} !5841 = distinct !{!5841, !5837, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5842 = !{!5839, !5841, !5831, !5833} !5843 = !{!5844} !5844 = distinct !{!5844, !5845, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5845 = distinct !{!5845, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5846 = !{!5847} !5847 = distinct !{!5847, !5845, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5848 = !{!5849} !5849 = distinct !{!5849, !5845, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5850 = !{!5844, !5849, !5831, !5833} !5851 = !{!5847, !5849, !5831, !5833} !5852 = !{!5844, !5847, !5831, !5833} !5853 = !{!5854} !5854 = distinct !{!5854, !5855, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5855 = distinct !{!5855, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5856 = !{!5857} !5857 = distinct !{!5857, !5855, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5858 = !{!5859} !5859 = distinct !{!5859, !5855, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5860 = !{!5854, !5857, !5831, !5833} !5861 = !{!5854, !5859, !5831, !5833} !5862 = !{!5857, !5859, !5831, !5833} !5863 = !{!5864} !5864 = distinct !{!5864, !5865, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5865 = distinct !{!5865, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5866 = !{!5867} !5867 = distinct !{!5867, !5865, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5868 = !{!5869} !5869 = distinct !{!5869, !5865, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5870 = !{!5864, !5867, !5831, !5833} !5871 = !{!5864, !5869, !5831, !5833} !5872 = !{!5867, !5869, !5831, !5833} !5873 = !{!5874} !5874 = distinct !{!5874, !5875, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5875 = distinct !{!5875, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5876 = !{!5877} !5877 = distinct !{!5877, !5875, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5878 = !{!5879} !5879 = distinct !{!5879, !5875, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5880 = !{!5874, !5877, !5831, !5833} !5881 = !{!5874, !5879, !5831, !5833} !5882 = !{!5877, !5879, !5831, !5833} !5883 = !{!5884} !5884 = distinct !{!5884, !5885, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5885 = distinct !{!5885, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5886 = !{!5887} !5887 = distinct !{!5887, !5885, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5888 = !{!5889} !5889 = distinct !{!5889, !5885, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5890 = !{!5884, !5887, !5831, !5833} !5891 = !{!5884, !5889, !5831, !5833} !5892 = !{!5887, !5889, !5831, !5833} !5893 = !{!5894} !5894 = distinct !{!5894, !5895, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5895 = distinct !{!5895, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5896 = !{!5897} !5897 = distinct !{!5897, !5895, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5898 = !{!5899} !5899 = distinct !{!5899, !5895, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5900 = !{!5894, !5897, !5831, !5833} !5901 = !{!5894, !5899, !5831, !5833} !5902 = !{!5897, !5899, !5831, !5833} !5903 = !{!5904} !5904 = distinct !{!5904, !5905, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !5905 = distinct !{!5905, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !5906 = !{!5907} !5907 = distinct !{!5907, !5905, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !5908 = !{!5909} !5909 = distinct !{!5909, !5905, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !5910 = !{!5904, !5909, !5831, !5833} !5911 = !{!5904, !5907, !5831, !5833} !5912 = !{!5907, !5909, !5831, !5833} !5913 = !{!5914, !5916} !5914 = distinct !{!5914, !5915, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d5aac2d18767b72E: %self"} !5915 = distinct !{!5915, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h6d5aac2d18767b72E"} !5916 = distinct !{!5916, !5917, !"_ZN4pulp3x862V39vectorize6__impl17h7d96d29c50f17a62E: %f"} !5917 = distinct !{!5917, !"_ZN4pulp3x862V39vectorize6__impl17h7d96d29c50f17a62E"} !5918 = !{!5919} !5919 = distinct !{!5919, !5920, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %x.0"} !5920 = distinct !{!5920, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E"} !5921 = !{!5922} !5922 = distinct !{!5922, !5920, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %y.0"} !5923 = !{!5924} !5924 = distinct !{!5924, !5920, !"_ZN12concrete_fft5dif1617stockham_core_1x217h4b91739e38ddb284E: %w_init.0"} !5925 = !{!5922, !5924, !5914, !5916} !5926 = !{!5919, !5922, !5914, !5916} !5927 = !{!5919, !5924, !5914, !5916} !5928 = !{!5929} !5929 = distinct !{!5929, !5930, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1ba3bf740612660eE: %self"} !5930 = distinct !{!5930, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h1ba3bf740612660eE"} !5931 = !{!5932, !5929} !5932 = distinct !{!5932, !5933, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E: %w.0"} !5933 = distinct !{!5933, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h1dfd647d59582569E"} !5934 = !{!5935} !5935 = distinct !{!5935, !5936, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h17310d29872128f5E: %self"} !5936 = distinct !{!5936, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h17310d29872128f5E"} !5937 = !{!5938, !5940} !5938 = distinct !{!5938, !5939, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d8db5c209f801f1E: %self"} !5939 = distinct !{!5939, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h2d8db5c209f801f1E"} !5940 = distinct !{!5940, !5941, !"_ZN4pulp3x862V39vectorize6__impl17hb69db3710d693773E: %f"} !5941 = distinct !{!5941, !"_ZN4pulp3x862V39vectorize6__impl17hb69db3710d693773E"} !5942 = !{!5943} !5943 = distinct !{!5943, !5944, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5944 = distinct !{!5944, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5945 = !{!5946} !5946 = distinct !{!5946, !5944, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5947 = !{!5948} !5948 = distinct !{!5948, !5944, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5949 = !{!5943, !5946, !5938, !5940} !5950 = !{!5943, !5948, !5938, !5940} !5951 = !{!5946, !5948, !5938, !5940} !5952 = !{!5953} !5953 = distinct !{!5953, !5954, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5954 = distinct !{!5954, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5955 = !{!5956} !5956 = distinct !{!5956, !5954, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5957 = !{!5958} !5958 = distinct !{!5958, !5954, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5959 = !{!5953, !5956, !5938, !5940} !5960 = !{!5953, !5958, !5938, !5940} !5961 = !{!5956, !5958, !5938, !5940} !5962 = !{!5963} !5963 = distinct !{!5963, !5964, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5964 = distinct !{!5964, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5965 = !{!5966} !5966 = distinct !{!5966, !5964, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5967 = !{!5968} !5968 = distinct !{!5968, !5964, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5969 = !{!5963, !5966, !5938, !5940} !5970 = !{!5963, !5968, !5938, !5940} !5971 = !{!5966, !5968, !5938, !5940} !5972 = !{!5973} !5973 = distinct !{!5973, !5974, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5974 = distinct !{!5974, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5975 = !{!5976} !5976 = distinct !{!5976, !5974, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5977 = !{!5978} !5978 = distinct !{!5978, !5974, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5979 = !{!5973, !5976, !5938, !5940} !5980 = !{!5973, !5978, !5938, !5940} !5981 = !{!5976, !5978, !5938, !5940} !5982 = !{!5983} !5983 = distinct !{!5983, !5984, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !5984 = distinct !{!5984, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !5985 = !{!5986} !5986 = distinct !{!5986, !5984, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !5987 = !{!5988} !5988 = distinct !{!5988, !5984, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !5989 = !{!5983, !5986, !5938, !5940} !5990 = !{!5983, !5988, !5938, !5940} !5991 = !{!5986, !5988, !5938, !5940} !5992 = !{!5993} !5993 = distinct !{!5993, !5994, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !5994 = distinct !{!5994, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !5995 = !{!5996} !5996 = distinct !{!5996, !5994, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !5997 = !{!5998} !5998 = distinct !{!5998, !5994, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !5999 = !{!5993, !5998, !5938, !5940} !6000 = !{!5993, !5996, !5938, !5940} !6001 = !{!5996, !5998, !5938, !5940} !6002 = !{!6003} !6003 = distinct !{!6003, !6004, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h205768f7b0546127E: %self"} !6004 = distinct !{!6004, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h205768f7b0546127E"} !6005 = !{!6006, !6008} !6006 = distinct !{!6006, !6007, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0177a04c8539dec0E: %self"} !6007 = distinct !{!6007, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h0177a04c8539dec0E"} !6008 = distinct !{!6008, !6009, !"_ZN4pulp3x862V39vectorize6__impl17ha9a1b1e579192160E: %f"} !6009 = distinct !{!6009, !"_ZN4pulp3x862V39vectorize6__impl17ha9a1b1e579192160E"} !6010 = !{!6011, !6013, !6014, !6016, !6006, !6008} !6011 = distinct !{!6011, !6012, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w_init.0"} !6012 = distinct !{!6012, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E"} !6013 = distinct !{!6013, !6012, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17h946234efdcf70292E: %w.0"} !6014 = distinct !{!6014, !6015, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE: %w_init.0"} !6015 = distinct !{!6015, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE"} !6016 = distinct !{!6016, !6015, !"_ZN116_$LT$concrete_fft..dit2..Dit2$LT$concrete_fft..nat..Successor$LT$N$GT$$GT$$u20$as$u20$concrete_fft..RecursiveFft$GT$16fft_recurse_impl17ha3ea6be0c1c179ecE: %w.0"} !6017 = !{!6018} !6018 = distinct !{!6018, !6019, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !6019 = distinct !{!6019, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !6020 = !{!6021} !6021 = distinct !{!6021, !6019, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !6022 = !{!6023} !6023 = distinct !{!6023, !6019, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !6024 = !{!6018, !6021, !6006, !6008} !6025 = !{!6018, !6023, !6006, !6008} !6026 = !{!6021, !6023, !6006, !6008} !6027 = !{!6028} !6028 = distinct !{!6028, !6029, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !6029 = distinct !{!6029, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !6030 = !{!6031} !6031 = distinct !{!6031, !6029, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !6032 = !{!6033} !6033 = distinct !{!6033, !6029, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !6034 = !{!6028, !6031, !6006, !6008} !6035 = !{!6028, !6033, !6006, !6008} !6036 = !{!6031, !6033, !6006, !6008} !6037 = !{!6038} !6038 = distinct !{!6038, !6039, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !6039 = distinct !{!6039, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !6040 = !{!6041} !6041 = distinct !{!6041, !6039, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !6042 = !{!6043} !6043 = distinct !{!6043, !6039, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !6044 = !{!6038, !6041, !6006, !6008} !6045 = !{!6038, !6043, !6006, !6008} !6046 = !{!6041, !6043, !6006, !6008} !6047 = !{!6048} !6048 = distinct !{!6048, !6049, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !6049 = distinct !{!6049, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !6050 = !{!6051} !6051 = distinct !{!6051, !6049, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !6052 = !{!6053} !6053 = distinct !{!6053, !6049, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !6054 = !{!6048, !6051, !6006, !6008} !6055 = !{!6048, !6053, !6006, !6008} !6056 = !{!6051, !6053, !6006, !6008} !6057 = !{!6058} !6058 = distinct !{!6058, !6059, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !6059 = distinct !{!6059, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !6060 = !{!6061} !6061 = distinct !{!6061, !6059, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !6062 = !{!6063} !6063 = distinct !{!6063, !6059, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !6064 = !{!6058, !6061, !6006, !6008} !6065 = !{!6058, !6063, !6006, !6008} !6066 = !{!6061, !6063, !6006, !6008} !6067 = !{!6068} !6068 = distinct !{!6068, !6069, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %x.0"} !6069 = distinct !{!6069, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E"} !6070 = !{!6071} !6071 = distinct !{!6071, !6069, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %y.0"} !6072 = !{!6073} !6073 = distinct !{!6073, !6069, !"_ZN12concrete_fft4dit221stockham_core_generic17hc2fef8fb5a489249E: %w.0"} !6074 = !{!6068, !6071, !6006, !6008} !6075 = !{!6068, !6073, !6006, !6008} !6076 = !{!6071, !6073, !6006, !6008} !6077 = !{!6078} !6078 = distinct !{!6078, !6079, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %x.0"} !6079 = distinct !{!6079, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E"} !6080 = !{!6081} !6081 = distinct !{!6081, !6079, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %y.0"} !6082 = !{!6083} !6083 = distinct !{!6083, !6079, !"_ZN12concrete_fft4dit217stockham_core_1x217h2c1be491e5f69c97E: %w_init.0"} !6084 = !{!6078, !6083, !6006, !6008} !6085 = !{!6078, !6081, !6006, !6008} !6086 = !{!6081, !6083, !6006, !6008} !6087 = !{!6088, !6090} !6088 = distinct !{!6088, !6089, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb16e7533cceabc80E: %self"} !6089 = distinct !{!6089, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17hb16e7533cceabc80E"} !6090 = distinct !{!6090, !6091, !"_ZN4pulp3x862V39vectorize6__impl17h0be331f5928054d1E: %f"} !6091 = distinct !{!6091, !"_ZN4pulp3x862V39vectorize6__impl17h0be331f5928054d1E"} !6092 = !{!6093} !6093 = distinct !{!6093, !6094, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %x.0"} !6094 = distinct !{!6094, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E"} !6095 = !{!6096} !6096 = distinct !{!6096, !6094, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %y.0"} !6097 = !{!6098} !6098 = distinct !{!6098, !6094, !"_ZN12concrete_fft4dif417stockham_core_1x217h50875bef5227e681E: %w_init.0"} !6099 = !{!6093, !6096, !6088, !6090} !6100 = !{!6096, !6098, !6088, !6090} !6101 = !{!6093, !6098, !6088, !6090} !6102 = !{!6103} !6103 = distinct !{!6103, !6104, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !6104 = distinct !{!6104, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !6105 = !{!6106} !6106 = distinct !{!6106, !6104, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !6107 = !{!6108} !6108 = distinct !{!6108, !6104, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !6109 = !{!6103, !6106, !6088, !6090} !6110 = !{!6106, !6108, !6088, !6090} !6111 = !{!6103, !6108, !6088, !6090} !6112 = !{!6113} !6113 = distinct !{!6113, !6114, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !6114 = distinct !{!6114, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !6115 = !{!6116} !6116 = distinct !{!6116, !6114, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !6117 = !{!6118} !6118 = distinct !{!6118, !6114, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !6119 = !{!6113, !6116, !6088, !6090} !6120 = !{!6116, !6118, !6088, !6090} !6121 = !{!6113, !6118, !6088, !6090} !6122 = !{!6123} !6123 = distinct !{!6123, !6124, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %x.0"} !6124 = distinct !{!6124, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E"} !6125 = !{!6126} !6126 = distinct !{!6126, !6124, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %y.0"} !6127 = !{!6128} !6128 = distinct !{!6128, !6124, !"_ZN12concrete_fft4dif421stockham_core_generic17h7ff65ddf5a395d72E: %w.0"} !6129 = !{!6123, !6126, !6088, !6090} !6130 = !{!6126, !6128, !6088, !6090} !6131 = !{!6123, !6128, !6088, !6090} !6132 = !{!6133} !6133 = distinct !{!6133, !6134, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3100b0c193518661E: %self"} !6134 = distinct !{!6134, !"_ZN123_$LT$concrete_fft..fn_ptr..$u7b$$u7b$closure$u7d$$u7d$..Impl$LT$_$C$N$C$c64xN$C$Simd$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h3100b0c193518661E"} !6135 = !{!6136} !6136 = distinct !{!6136, !6137, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: %self.0"} !6137 = distinct !{!6137, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E"} !6138 = !{!6139, !6141, !6142, !6143, !6145, !6146, !6147, !6136, !6148} !6139 = distinct !{!6139, !6140, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6140 = distinct !{!6140, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6141 = distinct !{!6141, !6140, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6142 = distinct !{!6142, !6140, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6143 = distinct !{!6143, !6144, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6144 = distinct !{!6144, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6145 = distinct !{!6145, !6144, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6146 = distinct !{!6146, !6144, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6147 = distinct !{!6147, !6137, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: %_0"} !6148 = distinct !{!6148, !6137, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: argument 2"} !6149 = !{!6150, !6139, !6141, !6142, !6143, !6145, !6146, !6147, !6136, !6148} !6150 = distinct !{!6150, !6151, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6151 = distinct !{!6151, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6152 = !{!6139, !6143, !6147} !6153 = !{!6154, !6139, !6141, !6142, !6143, !6145, !6146, !6147, !6136, !6148} !6154 = distinct !{!6154, !6155, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6155 = distinct !{!6155, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6156 = !{!6157, !6136} !6157 = distinct !{!6157, !6158, !"_ZN9dyn_stack19init_pod_array_with17hbcfa4267bfffa82aE: %array.0"} !6158 = distinct !{!6158, !"_ZN9dyn_stack19init_pod_array_with17hbcfa4267bfffa82aE"} !6159 = !{!6147, !6148} !6160 = !{!6161} !6161 = distinct !{!6161, !6162, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: %self.0"} !6162 = distinct !{!6162, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E"} !6163 = !{!6164, !6166, !6167, !6168, !6170, !6171, !6172, !6161, !6173} !6164 = distinct !{!6164, !6165, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6165 = distinct !{!6165, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6166 = distinct !{!6166, !6165, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6167 = distinct !{!6167, !6165, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6168 = distinct !{!6168, !6169, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6169 = distinct !{!6169, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6170 = distinct !{!6170, !6169, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6171 = distinct !{!6171, !6169, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6172 = distinct !{!6172, !6162, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: %_0"} !6173 = distinct !{!6173, !6162, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: argument 2"} !6174 = !{!6175, !6164, !6166, !6167, !6168, !6170, !6171, !6172, !6161, !6173} !6175 = distinct !{!6175, !6176, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6176 = distinct !{!6176, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6177 = !{!6178, !6164, !6166, !6167, !6168, !6170, !6171, !6172, !6161, !6173} !6178 = distinct !{!6178, !6179, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6179 = distinct !{!6179, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6180 = !{!6181, !6161} !6181 = distinct !{!6181, !6182, !"_ZN9dyn_stack19init_pod_array_with17hbcfa4267bfffa82aE: %array.0"} !6182 = distinct !{!6182, !"_ZN9dyn_stack19init_pod_array_with17hbcfa4267bfffa82aE"} !6183 = !{!6172, !6173} !6184 = !{!6185} !6185 = distinct !{!6185, !6186, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: %self.0"} !6186 = distinct !{!6186, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E"} !6187 = !{!6188, !6190, !6191, !6192, !6194, !6195, !6196, !6185, !6197} !6188 = distinct !{!6188, !6189, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6189 = distinct !{!6189, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6190 = distinct !{!6190, !6189, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6191 = distinct !{!6191, !6189, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6192 = distinct !{!6192, !6193, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6193 = distinct !{!6193, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6194 = distinct !{!6194, !6193, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6195 = distinct !{!6195, !6193, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6196 = distinct !{!6196, !6186, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: %_0"} !6197 = distinct !{!6197, !6186, !"_ZN9dyn_stack8PodStack17make_aligned_with17h099b49702fed14b4E: argument 2"} !6198 = !{!6199, !6188, !6190, !6191, !6192, !6194, !6195, !6196, !6185, !6197} !6199 = distinct !{!6199, !6200, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6200 = distinct !{!6200, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6201 = !{!6202, !6188, !6190, !6191, !6192, !6194, !6195, !6196, !6185, !6197} !6202 = distinct !{!6202, !6203, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6203 = distinct !{!6203, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6204 = !{!6205, !6185} !6205 = distinct !{!6205, !6206, !"_ZN9dyn_stack19init_pod_array_with17hbcfa4267bfffa82aE: %array.0"} !6206 = distinct !{!6206, !"_ZN9dyn_stack19init_pod_array_with17hbcfa4267bfffa82aE"} !6207 = !{!6196, !6197} !6208 = !{!6209, !6211} !6209 = distinct !{!6209, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0"} !6210 = distinct !{!6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E"} !6211 = distinct !{!6211, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x"} !6212 = distinct !{!6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E"} !6213 = !{!6214, !6215} !6214 = distinct !{!6214, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1"} !6215 = distinct !{!6215, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y"} !6216 = !{!6217, !6218} !6217 = distinct !{!6217, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0:It1"} !6218 = distinct !{!6218, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x:It1"} !6219 = !{!6220, !6221} !6220 = distinct !{!6220, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1:It1"} !6221 = distinct !{!6221, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y:It1"} !6222 = !{!6223, !6224} !6223 = distinct !{!6223, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0:It2"} !6224 = distinct !{!6224, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x:It2"} !6225 = !{!6226, !6227} !6226 = distinct !{!6226, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1:It2"} !6227 = distinct !{!6227, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y:It2"} !6228 = !{!6229, !6230} !6229 = distinct !{!6229, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0:It3"} !6230 = distinct !{!6230, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x:It3"} !6231 = !{!6232, !6233} !6232 = distinct !{!6232, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1:It3"} !6233 = distinct !{!6233, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y:It3"} !6234 = !{!6235, !6236} !6235 = distinct !{!6235, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0:It4"} !6236 = distinct !{!6236, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x:It4"} !6237 = !{!6238, !6239} !6238 = distinct !{!6238, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1:It4"} !6239 = distinct !{!6239, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y:It4"} !6240 = !{!6241, !6242} !6241 = distinct !{!6241, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0:It5"} !6242 = distinct !{!6242, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x:It5"} !6243 = !{!6244, !6245} !6244 = distinct !{!6244, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1:It5"} !6245 = distinct !{!6245, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y:It5"} !6246 = !{!6247, !6248} !6247 = distinct !{!6247, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 0:It6"} !6248 = distinct !{!6248, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %x:It6"} !6249 = !{!6250, !6251} !6250 = distinct !{!6250, !6210, !"_ZN4core3cmp6min_by17hfe7847618b9ca712E: argument 1:It6"} !6251 = distinct !{!6251, !6212, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h787b16b1c2f28c53E: %y:It6"} !6252 = !{!6253, !6255} !6253 = distinct !{!6253, !6254, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8position17h48eaf0f595311e52E: %self"} !6254 = distinct !{!6254, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8position17h48eaf0f595311e52E"} !6255 = distinct !{!6255, !6254, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8position17h48eaf0f595311e52E: argument 1"} !6256 = !{!6257, !6259, !6260, !6261} !6257 = distinct !{!6257, !6258, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %buf.0"} !6258 = distinct !{!6258, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E"} !6259 = distinct !{!6259, !6258, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %twiddles_init.0"} !6260 = distinct !{!6260, !6258, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %twiddles.0"} !6261 = distinct !{!6261, !6258, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %stack.0"} !6262 = !{!6263, !6265, !6266, !6267} !6263 = distinct !{!6263, !6264, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %buf.0"} !6264 = distinct !{!6264, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E"} !6265 = distinct !{!6265, !6264, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %twiddles_init.0"} !6266 = distinct !{!6266, !6264, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %twiddles.0"} !6267 = distinct !{!6267, !6264, !"_ZN12concrete_fft7ordered14measure_n_runs17hb476b923413dbc97E: %stack.0"} !6268 = !{!6269} !6269 = distinct !{!6269, !6270, !"_ZN12concrete_fft4dif217fft_impl_dispatch17h4a1e3191548e5576E: %_0"} !6270 = distinct !{!6270, !"_ZN12concrete_fft4dif217fft_impl_dispatch17h4a1e3191548e5576E"} !6271 = !{!6272} !6272 = distinct !{!6272, !6273, !"_ZN12concrete_fft4dit217fft_impl_dispatch17heff8fda48c8f9fc7E: %_0"} !6273 = distinct !{!6273, !"_ZN12concrete_fft4dit217fft_impl_dispatch17heff8fda48c8f9fc7E"} !6274 = !{!6275} !6275 = distinct !{!6275, !6276, !"_ZN12concrete_fft4dif417fft_impl_dispatch17h78b0f251e370c3beE: %_0"} !6276 = distinct !{!6276, !"_ZN12concrete_fft4dif417fft_impl_dispatch17h78b0f251e370c3beE"} !6277 = !{!6278} !6278 = distinct !{!6278, !6279, !"_ZN12concrete_fft4dit417fft_impl_dispatch17h27a5a9d706d41d9fE: %_0"} !6279 = distinct !{!6279, !"_ZN12concrete_fft4dit417fft_impl_dispatch17h27a5a9d706d41d9fE"} !6280 = !{!6281} !6281 = distinct !{!6281, !6282, !"_ZN12concrete_fft4dif817fft_impl_dispatch17hdf475cc67dcf06eeE: %_0"} !6282 = distinct !{!6282, !"_ZN12concrete_fft4dif817fft_impl_dispatch17hdf475cc67dcf06eeE"} !6283 = !{!6284} !6284 = distinct !{!6284, !6285, !"_ZN12concrete_fft4dit817fft_impl_dispatch17h40e9d9b3f14089bdE: %_0"} !6285 = distinct !{!6285, !"_ZN12concrete_fft4dit817fft_impl_dispatch17h40e9d9b3f14089bdE"} !6286 = !{!6287} !6287 = distinct !{!6287, !6288, !"_ZN12concrete_fft5dif1617fft_impl_dispatch17h7acbdc237a6ea275E: %_0"} !6288 = distinct !{!6288, !"_ZN12concrete_fft5dif1617fft_impl_dispatch17h7acbdc237a6ea275E"} !6289 = !{!6290} !6290 = distinct !{!6290, !6291, !"_ZN12concrete_fft5dit1617fft_impl_dispatch17h085f93227370b4daE: %_0"} !6291 = distinct !{!6291, !"_ZN12concrete_fft5dit1617fft_impl_dispatch17h085f93227370b4daE"} !6292 = !{i32 0, i32 1000000001} !6293 = !{i8 0, i8 8} !6294 = !{!6295, !6297} !6295 = distinct !{!6295, !6296, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %_0"} !6296 = distinct !{!6296, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E"} !6297 = distinct !{!6297, !6296, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %iter"} !6298 = !{!6299, !6301, !6303, !6305, !6307, !6309, !6311, !6313, !6315, !6316, !6318, !6319, !6321, !6295, !6297} !6299 = distinct !{!6299, !6300, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE: %_2"} !6300 = distinct !{!6300, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE"} !6301 = distinct !{!6301, !6302, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE: %item"} !6302 = distinct !{!6302, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE"} !6303 = distinct !{!6303, !6304, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE: %_1"} !6304 = distinct !{!6304, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE"} !6305 = distinct !{!6305, !6306, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E: %_1"} !6306 = distinct !{!6306, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E"} !6307 = distinct !{!6307, !6308, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE: %_1"} !6308 = distinct !{!6308, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE"} !6309 = distinct !{!6309, !6310, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E: %_1"} !6310 = distinct !{!6310, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E"} !6311 = distinct !{!6311, !6312, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E: %f"} !6312 = distinct !{!6312, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E"} !6313 = distinct !{!6313, !6314, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %self"} !6314 = distinct !{!6314, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E"} !6315 = distinct !{!6315, !6314, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %fold"} !6316 = distinct !{!6316, !6317, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %self"} !6317 = distinct !{!6317, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E"} !6318 = distinct !{!6318, !6317, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %fold"} !6319 = distinct !{!6319, !6320, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %self"} !6320 = distinct !{!6320, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E"} !6321 = distinct !{!6321, !6320, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %f"} !6322 = !{!6323} !6323 = distinct !{!6323, !6324, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E: %_1"} !6324 = distinct !{!6324, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E"} !6325 = !{!6326} !6326 = distinct !{!6326, !6327, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E: %_1"} !6327 = distinct !{!6327, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E"} !6328 = !{!6329} !6329 = distinct !{!6329, !6330, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E: %self"} !6330 = distinct !{!6330, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E"} !6331 = !{!6329, !6326, !6323} !6332 = !{!6333} !6333 = distinct !{!6333, !6334, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E: %_1"} !6334 = distinct !{!6334, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E"} !6335 = !{!6336} !6336 = distinct !{!6336, !6337, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E: %_1"} !6337 = distinct !{!6337, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E"} !6338 = !{!6339} !6339 = distinct !{!6339, !6340, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E: %self"} !6340 = distinct !{!6340, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E"} !6341 = !{!6339, !6336, !6333} !6342 = !{!6343, !6345} !6343 = distinct !{!6343, !6344, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6344 = distinct !{!6344, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6345 = distinct !{!6345, !6346, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6346 = distinct !{!6346, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6347 = !{!6348, !6350} !6348 = distinct !{!6348, !6349, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6349 = distinct !{!6349, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6350 = distinct !{!6350, !6351, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6351 = distinct !{!6351, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6352 = !{!6353, !6355, !6357, !6359, !6361, !6363, !6365, !6367, !6369, !6370, !6372, !6373, !6375, !6376, !6378} !6353 = distinct !{!6353, !6354, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE: %_2"} !6354 = distinct !{!6354, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE"} !6355 = distinct !{!6355, !6356, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE: %item"} !6356 = distinct !{!6356, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE"} !6357 = distinct !{!6357, !6358, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE: %_1"} !6358 = distinct !{!6358, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE"} !6359 = distinct !{!6359, !6360, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E: %_1"} !6360 = distinct !{!6360, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E"} !6361 = distinct !{!6361, !6362, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE: %_1"} !6362 = distinct !{!6362, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE"} !6363 = distinct !{!6363, !6364, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E: %_1"} !6364 = distinct !{!6364, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E"} !6365 = distinct !{!6365, !6366, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E: %f"} !6366 = distinct !{!6366, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E"} !6367 = distinct !{!6367, !6368, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %self"} !6368 = distinct !{!6368, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E"} !6369 = distinct !{!6369, !6368, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %fold"} !6370 = distinct !{!6370, !6371, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %self"} !6371 = distinct !{!6371, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E"} !6372 = distinct !{!6372, !6371, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %fold"} !6373 = distinct !{!6373, !6374, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %self"} !6374 = distinct !{!6374, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E"} !6375 = distinct !{!6375, !6374, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %f"} !6376 = distinct !{!6376, !6377, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %_0"} !6377 = distinct !{!6377, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E"} !6378 = distinct !{!6378, !6377, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %iter"} !6379 = !{!6380, !6382, !6383, !6384, !6386, !6387} !6380 = distinct !{!6380, !6381, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6381 = distinct !{!6381, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6382 = distinct !{!6382, !6381, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6383 = distinct !{!6383, !6381, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6384 = distinct !{!6384, !6385, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6385 = distinct !{!6385, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6386 = distinct !{!6386, !6385, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6387 = distinct !{!6387, !6385, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6388 = !{!6389, !6380, !6382, !6383, !6384, !6386, !6387} !6389 = distinct !{!6389, !6390, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6390 = distinct !{!6390, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6391 = !{!6380, !6384} !6392 = !{!6393, !6380, !6382, !6383, !6384, !6386, !6387} !6393 = distinct !{!6393, !6394, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6394 = distinct !{!6394, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6395 = !{!6396, !6398, !6399, !6400, !6402, !6403} !6396 = distinct !{!6396, !6397, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6397 = distinct !{!6397, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6398 = distinct !{!6398, !6397, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6399 = distinct !{!6399, !6397, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6400 = distinct !{!6400, !6401, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6401 = distinct !{!6401, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6402 = distinct !{!6402, !6401, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6403 = distinct !{!6403, !6401, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6404 = !{!6405, !6396, !6398, !6399, !6400, !6402, !6403} !6405 = distinct !{!6405, !6406, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6406 = distinct !{!6406, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6407 = !{!6396, !6400} !6408 = !{!6409, !6396, !6398, !6399, !6400, !6402, !6403} !6409 = distinct !{!6409, !6410, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6410 = distinct !{!6410, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6411 = !{!6412, !6414, !6415} !6412 = distinct !{!6412, !6413, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E: %_0"} !6413 = distinct !{!6413, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E"} !6414 = distinct !{!6414, !6413, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E: %self.0"} !6415 = distinct !{!6415, !6413, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E: argument 2"} !6416 = !{!6412, !6414} !6417 = !{!6418, !6420, !6421} !6418 = distinct !{!6418, !6419, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E: %_0"} !6419 = distinct !{!6419, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E"} !6420 = distinct !{!6420, !6419, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E: %self.0"} !6421 = distinct !{!6421, !6419, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16chunks_exact_mut17hb0392476ef2afc26E: argument 2"} !6422 = !{!6418, !6420} !6423 = !{i8 0, i8 2} !6424 = !{i32 0, i32 1000000000} !6425 = !{!6426} !6426 = distinct !{!6426, !6427, !"_ZN12concrete_fft9unordered15measure_fastest17h4e9a47213e729c2aE: argument 1"} !6427 = distinct !{!6427, !"_ZN12concrete_fft9unordered15measure_fastest17h4e9a47213e729c2aE"} !6428 = !{!6429, !6426} !6429 = distinct !{!6429, !6427, !"_ZN12concrete_fft9unordered15measure_fastest17h4e9a47213e729c2aE: %_0"} !6430 = !{!6431} !6431 = distinct !{!6431, !6432, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E: %x"} !6432 = distinct !{!6432, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E"} !6433 = !{!6434} !6434 = distinct !{!6434, !6432, !"_ZN4core4iter6traits8iterator8Iterator6min_by4fold28_$u7b$$u7b$closure$u7d$$u7d$17h6f18c0f38a12e859E: %y"} !6435 = !{!6436} !6436 = distinct !{!6436, !6437, !"_ZN4core3cmp6min_by17h14b6a9a63c9f01e2E: argument 0"} !6437 = distinct !{!6437, !"_ZN4core3cmp6min_by17h14b6a9a63c9f01e2E"} !6438 = !{!6439} !6439 = distinct !{!6439, !6437, !"_ZN4core3cmp6min_by17h14b6a9a63c9f01e2E: argument 1"} !6440 = !{!6436, !6431} !6441 = !{!6439, !6434, !6429, !6426} !6442 = !{!6439, !6434} !6443 = !{!6436, !6431, !6444, !6429, !6426} !6444 = distinct !{!6444, !6445, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc8d367adc3f3d56bE: %init"} !6445 = distinct !{!6445, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc8d367adc3f3d56bE"} !6446 = !{!6447} !6447 = distinct !{!6447, !6448, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: %self.0"} !6448 = distinct !{!6448, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E"} !6449 = !{!6450, !6452, !6453, !6454, !6456, !6457, !6458, !6447, !6459, !6429, !6426} !6450 = distinct !{!6450, !6451, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6451 = distinct !{!6451, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6452 = distinct !{!6452, !6451, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6453 = distinct !{!6453, !6451, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6454 = distinct !{!6454, !6455, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6455 = distinct !{!6455, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6456 = distinct !{!6456, !6455, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6457 = distinct !{!6457, !6455, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6458 = distinct !{!6458, !6448, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: %_0"} !6459 = distinct !{!6459, !6448, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: argument 2"} !6460 = !{!6461, !6450, !6452, !6453, !6454, !6456, !6457, !6458, !6447, !6459, !6429, !6426} !6461 = distinct !{!6461, !6462, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6462 = distinct !{!6462, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6463 = !{!6464, !6450, !6452, !6453, !6454, !6456, !6457, !6458, !6447, !6459, !6429, !6426} !6464 = distinct !{!6464, !6465, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6465 = distinct !{!6465, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6466 = !{!6467, !6447, !6426} !6467 = distinct !{!6467, !6468, !"_ZN9dyn_stack19init_pod_array_with17h368c214f35e9fc8fE: %array.0"} !6468 = distinct !{!6468, !"_ZN9dyn_stack19init_pod_array_with17h368c214f35e9fc8fE"} !6469 = !{!6458, !6459, !6429} !6470 = !{!6471} !6471 = distinct !{!6471, !6472, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: %self.0"} !6472 = distinct !{!6472, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E"} !6473 = !{!6474, !6476, !6477, !6478, !6480, !6481, !6482, !6471, !6483, !6429, !6426} !6474 = distinct !{!6474, !6475, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6475 = distinct !{!6475, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6476 = distinct !{!6476, !6475, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6477 = distinct !{!6477, !6475, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6478 = distinct !{!6478, !6479, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6479 = distinct !{!6479, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6480 = distinct !{!6480, !6479, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6481 = distinct !{!6481, !6479, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6482 = distinct !{!6482, !6472, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: %_0"} !6483 = distinct !{!6483, !6472, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: argument 2"} !6484 = !{!6485, !6474, !6476, !6477, !6478, !6480, !6481, !6482, !6471, !6483, !6429, !6426} !6485 = distinct !{!6485, !6486, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6486 = distinct !{!6486, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6487 = !{!6488, !6474, !6476, !6477, !6478, !6480, !6481, !6482, !6471, !6483, !6429, !6426} !6488 = distinct !{!6488, !6489, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6489 = distinct !{!6489, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6490 = !{!6491, !6471, !6426} !6491 = distinct !{!6491, !6492, !"_ZN9dyn_stack19init_pod_array_with17h368c214f35e9fc8fE: %array.0"} !6492 = distinct !{!6492, !"_ZN9dyn_stack19init_pod_array_with17h368c214f35e9fc8fE"} !6493 = !{!6482, !6483, !6429} !6494 = !{!6495} !6495 = distinct !{!6495, !6496, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: %self.0"} !6496 = distinct !{!6496, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E"} !6497 = !{!6498, !6500, !6501, !6502, !6504, !6505, !6506, !6495, !6507, !6429, !6426} !6498 = distinct !{!6498, !6499, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6499 = distinct !{!6499, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6500 = distinct !{!6500, !6499, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6501 = distinct !{!6501, !6499, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6502 = distinct !{!6502, !6503, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6503 = distinct !{!6503, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6504 = distinct !{!6504, !6503, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6505 = distinct !{!6505, !6503, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6506 = distinct !{!6506, !6496, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: %_0"} !6507 = distinct !{!6507, !6496, !"_ZN9dyn_stack8PodStack17make_aligned_with17h397e42f031c7da56E: argument 2"} !6508 = !{!6509, !6498, !6500, !6501, !6502, !6504, !6505, !6506, !6495, !6507, !6429, !6426} !6509 = distinct !{!6509, !6510, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6510 = distinct !{!6510, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6511 = !{!6512, !6498, !6500, !6501, !6502, !6504, !6505, !6506, !6495, !6507, !6429, !6426} !6512 = distinct !{!6512, !6513, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6513 = distinct !{!6513, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6514 = !{!6515, !6495, !6426} !6515 = distinct !{!6515, !6516, !"_ZN9dyn_stack19init_pod_array_with17h368c214f35e9fc8fE: %array.0"} !6516 = distinct !{!6516, !"_ZN9dyn_stack19init_pod_array_with17h368c214f35e9fc8fE"} !6517 = !{!6506, !6507, !6429} !6518 = !{!6519, !6521, !6429, !6426} !6519 = distinct !{!6519, !6520, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8position17h47ff2fa5cf2be2caE: %self"} !6520 = distinct !{!6520, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8position17h47ff2fa5cf2be2caE"} !6521 = distinct !{!6521, !6520, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8position17h47ff2fa5cf2be2caE: argument 1"} !6522 = !{i8 0, i8 9} !6523 = !{!6524, !6526} !6524 = distinct !{!6524, !6525, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %_0"} !6525 = distinct !{!6525, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E"} !6526 = distinct !{!6526, !6525, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %iter"} !6527 = !{!6528, !6530, !6532, !6534, !6536, !6538, !6540, !6542, !6544, !6545, !6547, !6548, !6550, !6524, !6526} !6528 = distinct !{!6528, !6529, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE: %_2"} !6529 = distinct !{!6529, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE"} !6530 = distinct !{!6530, !6531, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE: %item"} !6531 = distinct !{!6531, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE"} !6532 = distinct !{!6532, !6533, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE: %_1"} !6533 = distinct !{!6533, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE"} !6534 = distinct !{!6534, !6535, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E: %_1"} !6535 = distinct !{!6535, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E"} !6536 = distinct !{!6536, !6537, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE: %_1"} !6537 = distinct !{!6537, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE"} !6538 = distinct !{!6538, !6539, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E: %_1"} !6539 = distinct !{!6539, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E"} !6540 = distinct !{!6540, !6541, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E: %f"} !6541 = distinct !{!6541, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E"} !6542 = distinct !{!6542, !6543, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %self"} !6543 = distinct !{!6543, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E"} !6544 = distinct !{!6544, !6543, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %fold"} !6545 = distinct !{!6545, !6546, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %self"} !6546 = distinct !{!6546, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E"} !6547 = distinct !{!6547, !6546, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %fold"} !6548 = distinct !{!6548, !6549, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %self"} !6549 = distinct !{!6549, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E"} !6550 = distinct !{!6550, !6549, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %f"} !6551 = distinct !{!6551, !21, !22} !6552 = distinct !{!6552, !754} !6553 = distinct !{!6553, !21} !6554 = !{!6555, !6557, !6559, !6561, !6563, !6565, !6567, !6569, !6571, !6572, !6574, !6575, !6577, !6578, !6580} !6555 = distinct !{!6555, !6556, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE: %_2"} !6556 = distinct !{!6556, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE"} !6557 = distinct !{!6557, !6558, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE: %item"} !6558 = distinct !{!6558, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE"} !6559 = distinct !{!6559, !6560, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE: %_1"} !6560 = distinct !{!6560, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE"} !6561 = distinct !{!6561, !6562, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E: %_1"} !6562 = distinct !{!6562, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E"} !6563 = distinct !{!6563, !6564, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE: %_1"} !6564 = distinct !{!6564, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE"} !6565 = distinct !{!6565, !6566, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E: %_1"} !6566 = distinct !{!6566, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E"} !6567 = distinct !{!6567, !6568, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E: %f"} !6568 = distinct !{!6568, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E"} !6569 = distinct !{!6569, !6570, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %self"} !6570 = distinct !{!6570, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E"} !6571 = distinct !{!6571, !6570, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %fold"} !6572 = distinct !{!6572, !6573, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %self"} !6573 = distinct !{!6573, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E"} !6574 = distinct !{!6574, !6573, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %fold"} !6575 = distinct !{!6575, !6576, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %self"} !6576 = distinct !{!6576, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E"} !6577 = distinct !{!6577, !6576, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %f"} !6578 = distinct !{!6578, !6579, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %_0"} !6579 = distinct !{!6579, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E"} !6580 = distinct !{!6580, !6579, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %iter"} !6581 = distinct !{!6581, !21, !22} !6582 = distinct !{!6582, !754} !6583 = distinct !{!6583, !21} !6584 = !{!6585} !6585 = distinct !{!6585, !6586, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E: %_1"} !6586 = distinct !{!6586, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E"} !6587 = !{!6588} !6588 = distinct !{!6588, !6589, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E: %_1"} !6589 = distinct !{!6589, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E"} !6590 = !{!6591} !6591 = distinct !{!6591, !6592, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E: %self"} !6592 = distinct !{!6592, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E"} !6593 = !{!6591, !6588, !6585} !6594 = !{!6595} !6595 = distinct !{!6595, !6596, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E: %_1"} !6596 = distinct !{!6596, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalPodBuffer$GT$17h5d64a807d500f494E"} !6597 = !{!6598} !6598 = distinct !{!6598, !6599, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E: %_1"} !6599 = distinct !{!6599, !"_ZN4core3ptr52drop_in_place$LT$dyn_stack..mem..GlobalMemBuffer$GT$17h7a8c09e6eb9646e2E"} !6600 = !{!6601} !6601 = distinct !{!6601, !6602, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E: %self"} !6602 = distinct !{!6602, !"_ZN73_$LT$dyn_stack..mem..GlobalMemBuffer$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfe3141c57a467650E"} !6603 = !{!6601, !6598, !6595} !6604 = !{!6605, !6607} !6605 = distinct !{!6605, !6606, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6606 = distinct !{!6606, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6607 = distinct !{!6607, !6608, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6608 = distinct !{!6608, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6609 = !{!6610} !6610 = distinct !{!6610, !6611, !"_ZN12concrete_fft9unordered13init_twiddles17h819872a1d72fb7c4E: %w.0"} !6611 = distinct !{!6611, !"_ZN12concrete_fft9unordered13init_twiddles17h819872a1d72fb7c4E"} !6612 = !{!6613} !6613 = distinct !{!6613, !6611, !"_ZN12concrete_fft9unordered13init_twiddles17h819872a1d72fb7c4E: %w_inv.0"} !6614 = !{!6610, !6613} !6615 = !{!6616, !6618, !6620, !6622, !6624, !6626, !6628, !6630, !6632, !6633, !6635, !6636, !6638, !6639, !6641} !6616 = distinct !{!6616, !6617, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE: %_2"} !6617 = distinct !{!6617, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl28_$u7b$$u7b$closure$u7d$$u7d$17hdc73c8e2a8666bdcE"} !6618 = distinct !{!6618, !6619, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE: %item"} !6619 = distinct !{!6619, !"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h547e5005aabee77bE"} !6620 = distinct !{!6620, !6621, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE: %_1"} !6621 = distinct !{!6621, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17ha97e48a17520999bE"} !6622 = distinct !{!6622, !6623, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E: %_1"} !6623 = distinct !{!6623, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17hffec700b85b708b7E"} !6624 = distinct !{!6624, !6625, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE: %_1"} !6625 = distinct !{!6625, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h93bb5440be89b40fE"} !6626 = distinct !{!6626, !6627, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E: %_1"} !6627 = distinct !{!6627, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hf88311345424e7d2E"} !6628 = distinct !{!6628, !6629, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E: %f"} !6629 = distinct !{!6629, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17he0d7cbdf22bd6ea0E"} !6630 = distinct !{!6630, !6631, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %self"} !6631 = distinct !{!6631, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E"} !6632 = distinct !{!6632, !6631, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h8bfdb49e7b431195E: %fold"} !6633 = distinct !{!6633, !6634, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %self"} !6634 = distinct !{!6634, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E"} !6635 = distinct !{!6635, !6634, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hdd87ddac6ba2ca54E: %fold"} !6636 = distinct !{!6636, !6637, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %self"} !6637 = distinct !{!6637, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E"} !6638 = distinct !{!6638, !6637, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hceca510df05a3424E: %f"} !6639 = distinct !{!6639, !6640, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %_0"} !6640 = distinct !{!6640, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E"} !6641 = distinct !{!6641, !6640, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17he1c49b86223f20e1E: %iter"} !6642 = distinct !{!6642, !21, !22} !6643 = distinct !{!6643, !754} !6644 = distinct !{!6644, !21} !6645 = distinct !{!6645, !21, !22} !6646 = !{!6647, !6649} !6647 = distinct !{!6647, !6648, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6648 = distinct !{!6648, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6649 = distinct !{!6649, !6650, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6650 = distinct !{!6650, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6651 = !{!6652, !6654, !6656, !6658, !6660, !6662, !6664, !6665, !6667, !6668, !6670, !6671} !6652 = distinct !{!6652, !6653, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h42a7c94314e19da1E: %_1"} !6653 = distinct !{!6653, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h42a7c94314e19da1E"} !6654 = distinct !{!6654, !6655, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17h3e3bac6bef2856b7E: %_1"} !6655 = distinct !{!6655, !"_ZN4core3ops9try_trait26NeverShortCircuit$LT$T$GT$10wrap_mut_228_$u7b$$u7b$closure$u7d$$u7d$17h3e3bac6bef2856b7E"} !6656 = distinct !{!6656, !6657, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h2975ae44786b4740E: %_1"} !6657 = distinct !{!6657, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17h2975ae44786b4740E"} !6658 = distinct !{!6658, !6659, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hd1df817810c0b03fE: %_1"} !6659 = distinct !{!6659, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold5check28_$u7b$$u7b$closure$u7d$$u7d$17hd1df817810c0b03fE"} !6660 = distinct !{!6660, !6661, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17hb37b8571acecc695E: %f"} !6661 = distinct !{!6661, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17hb37b8571acecc695E"} !6662 = distinct !{!6662, !6663, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h13763b4ce442dcafE: %self"} !6663 = distinct !{!6663, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h13763b4ce442dcafE"} !6664 = distinct !{!6664, !6663, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h13763b4ce442dcafE: %fold"} !6665 = distinct !{!6665, !6666, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h203dbc99ddfd4c56E: %self"} !6666 = distinct !{!6666, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h203dbc99ddfd4c56E"} !6667 = distinct !{!6667, !6666, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h203dbc99ddfd4c56E: %fold"} !6668 = distinct !{!6668, !6669, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hbccee285864435e2E: %self"} !6669 = distinct !{!6669, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hbccee285864435e2E"} !6670 = distinct !{!6670, !6669, !"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..adapters..take..SpecTake$GT$9spec_fold17hbccee285864435e2E: %f"} !6671 = distinct !{!6671, !6672, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17h1caf53a4bddce88fE: %_0"} !6672 = distinct !{!6672, !"_ZN11aligned_vec17AVec$LT$T$C$A$GT$14from_iter_impl17h1caf53a4bddce88fE"} !6673 = distinct !{!6673, !21, !22} !6674 = distinct !{!6674, !22, !21} !6675 = !{!6676, !6678} !6676 = distinct !{!6676, !6677, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6677 = distinct !{!6677, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6678 = distinct !{!6678, !6679, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6679 = distinct !{!6679, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6680 = !{!6681, !6683} !6681 = distinct !{!6681, !6682, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6682 = distinct !{!6682, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6683 = distinct !{!6683, !6684, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6684 = distinct !{!6684, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6685 = distinct !{!6685, !22, !21} !6686 = !{!6687, !6689} !6687 = distinct !{!6687, !6688, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6688 = distinct !{!6688, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6689 = distinct !{!6689, !6690, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6690 = distinct !{!6690, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6691 = !{!6692, !6694} !6692 = distinct !{!6692, !6693, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E: %self"} !6693 = distinct !{!6693, !"_ZN64_$LT$aligned_vec..AllocDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aba45c3d387aad4E"} !6694 = distinct !{!6694, !6695, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E: %_1"} !6695 = distinct !{!6695, !"_ZN4core3ptr43drop_in_place$LT$aligned_vec..AllocDrop$GT$17h3e3ea9e2237ed769E"} !6696 = !{!6697, !6699, !6700, !6701, !6703, !6704} !6697 = distinct !{!6697, !6698, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6698 = distinct !{!6698, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6699 = distinct !{!6699, !6698, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6700 = distinct !{!6700, !6698, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6701 = distinct !{!6701, !6702, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6702 = distinct !{!6702, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6703 = distinct !{!6703, !6702, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6704 = distinct !{!6704, !6702, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6705 = !{!6706, !6697, !6699, !6700, !6701, !6703, !6704} !6706 = distinct !{!6706, !6707, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6707 = distinct !{!6707, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6708 = !{!6697, !6701} !6709 = !{!6710, !6697, !6699, !6700, !6701, !6703, !6704} !6710 = distinct !{!6710, !6711, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6711 = distinct !{!6711, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"} !6712 = !{!6713, !6715} !6713 = distinct !{!6713, !6714, !"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E: %self"} !6714 = distinct !{!6714, !"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h4c9a0c1a3f0c78e9E"} !6715 = distinct !{!6715, !6716, !"_ZN4pulp3x869ArchInner8dispatch17hca6b72e7bdf64060E: %op"} !6716 = distinct !{!6716, !"_ZN4pulp3x869ArchInner8dispatch17hca6b72e7bdf64060E"} !6717 = !{!6715} !6718 = distinct !{!6718, !754} !6719 = !{!6720, !6722, !6724, !6715} !6720 = distinct !{!6720, !6721, !"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h2f892d86af2e19ddE: %self"} !6721 = distinct !{!6721, !"_ZN84_$LT$concrete_fft..unordered..Plan..fwd_monomial..Impl$u20$as$u20$pulp..WithSimd$GT$9with_simd17h2f892d86af2e19ddE"} !6722 = distinct !{!6722, !6723, !"_ZN110_$LT$$LT$pulp..x86..V3$u20$as$u20$pulp..Simd$GT$..vectorize..Impl$LT$Op$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5c74a845c537d3f5E: %self"} !6723 = distinct !{!6723, !"_ZN110_$LT$$LT$pulp..x86..V3$u20$as$u20$pulp..Simd$GT$..vectorize..Impl$LT$Op$GT$$u20$as$u20$pulp..NullaryFnOnce$GT$4call17h5c74a845c537d3f5E"} !6724 = distinct !{!6724, !6725, !"_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E: %f"} !6725 = distinct !{!6725, !"_ZN4pulp3x862V39vectorize6__impl17ha5ca6bec032b6040E"} !6726 = !{!6722, !6724, !6715} !6727 = distinct !{!6727, !754} !6728 = !{!6729, !6731, !6732, !6733, !6735, !6736} !6729 = distinct !{!6729, !6730, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %_0"} !6730 = distinct !{!6730, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E"} !6731 = distinct !{!6731, !6730, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: %buffer.0"} !6732 = distinct !{!6732, !6730, !"_ZN9dyn_stack8PodStack12split_buffer17hcb4376b39f67a640E: argument 2"} !6733 = distinct !{!6733, !6734, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %_0"} !6734 = distinct !{!6734, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE"} !6735 = distinct !{!6735, !6734, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: %self.0"} !6736 = distinct !{!6736, !6734, !"_ZN9dyn_stack8PodStack16make_aligned_raw17he50b39eed42693acE: argument 2"} !6737 = !{!6738, !6729, !6731, !6732, !6733, !6735, !6736} !6738 = distinct !{!6738, !6739, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE: argument 0"} !6739 = distinct !{!6739, !"_ZN9dyn_stack35check_enough_space_for_align_offset17h258d609519610abaE"} !6740 = !{!6729, !6733} !6741 = !{!6742, !6729, !6731, !6732, !6733, !6735, !6736} !6742 = distinct !{!6742, !6743, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E: argument 0"} !6743 = distinct !{!6743, !"_ZN9dyn_stack28check_enough_space_for_array17hd30c434ccc0bb746E"}